:root {
  --bg:#030712;
  --bg2:#071329;
  --panel:rgba(7,18,39,.88);
  --panel2:#0a1730;
  --line:#18355f;
  --text:#eef6ff;
  --muted:#8ca1bd;
  --cyan:#16d9ff;
  --blue:#2878ff;
  --purple:#9b45ff;
  --glow:0 0 40px rgba(22,217,255,.13)
}
* {
  box-sizing:border-box
}

body {
  margin:0;
  
  
  
  }
body:before {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  
  background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);
  
  }
a {
  text-decoration:none;
  }
button {
  font:inherit;
  cursor:pointer
}
.header {
  position:sticky;
  top:0;
  z-index:20;
  
  
  
  
  display:flex;
  align-items:center;
  
  }
.logo img {
  
  
  
  display:block
}
.nav {
  display:flex;
  
  margin-left:auto
}

.nav a:hover,.nav a.active {
  color:#fff;
  background:rgba(31,101,205,.12);
  box-shadow:inset 0 -2px var(--cyan)
}
.menu {
  display:none;
  background:none;
  border:0;
  
  }
.wrap {
  
  margin:auto
}
.hero {
  
  display:grid;
  
  align-items:center;
  
  position:relative
}
.eyebrow {
  font-size:10px;
  letter-spacing:2px;
  font-weight:900;
  }
.eyebrow i {
  display:inline-block;
  
  
  border-radius:50%;
  
  
  }
.hero h1 {
  font:900 clamp(55px,8vw,110px)/.85 Sora,Inter,sans-serif;
  
  
  }


.actions {
  display:flex;
  
  }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  
  
  font-size:10px;
  font-weight:900;
  letter-spacing:.8px;
  
  }



.hero-art {
  
  display:grid;
  place-items:center;
  position:relative
}
.hero-art:before {
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(20,201,255,.18),rgba(125,50,255,.08),transparent 68%);
  }
.hero-art img {
  position:relative;
  
  
  object-fit:contain;
  
  }
@keyframes float {
  50% {
    transform:translateY(-10px)
  }
}
.ip {
  
  display:flex;
  align-items:center;
  justify-content:space-between;
  
  
  
  
  }
.ip small {
  display:block;
  
  
  
  }

.ip button {
  border:1px solid #2875bc;
  background:#0b2440;
  color:#fff;
  border-radius:5px;
  
  font-size:9px;
  font-weight:900
}



.section-title small {
  color:var(--cyan);
  font-size:9px;
  font-weight:900;
  letter-spacing:2px
}
.section-title h1,.section-title h2 {
  font:800 42px Sora;
  }
.section-title p {
  
  
  margin:0
}
.grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}



.card h3 {
  font:800 23px Sora;
  }


.hero-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:25px
}
.stat {
  border:1px solid var(--line);
  background:#071225;
  padding:17px
}
.stat strong {
  display:block;
  font:800 25px Sora
}




.products {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}
.product {
  text-align:center;
  
  
  
  }

.product .big {
  font-size:55px;
  margin:22px 0;
  color:#b862ff
}
.product h3 {
  font:800 27px Sora
}
.product strong {
  display:block;
  font:800 25px Sora;
  }
.product button {
  border:1px solid var(--line);
  
  
  padding:10px 18px;
  font-size:9px;
  font-weight:900
}
.community {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  }

.discord h3 {
  font:800 38px Sora;
  }
.discord em {
  
  font-style:normal
}
.discord p {
  
  
  max-width:500px
}
.stats-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px
}
.stats-grid .stat {
  min-height:140px
}
.team {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px
}
.member {
  text-align:center;
  
  
  }
.avatar {
  
  
  border-radius:10px;
  margin:auto;
  display:grid;
  place-items:center;
  font:900 30px Sora;
  background:linear-gradient(135deg,#122a43,#151326);
  color:var(--cyan);
  border:1px solid #2b4e76
}


.support {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}

.support .num {
  
  font:800 11px Sora
}

.footer-inner {
  
  margin:auto;
  
  display:grid;
  
  }

.footer p,.footer a {
  color:#72849e;
  font-size:10px
}

.footer h4 {
  font-size:9px;
  letter-spacing:1.5px
}
.bottom {
  
  
  display:flex;
  justify-content:space-between;
  
  }
@media(max-width:900px) {
  .nav {
    display:none
  }
  .nav.open {
    display:flex;
    position:absolute;
    
    left:0;
    right:0;
    flex-direction:column;
    
    
    }
  .nav a {
    padding:13px
  }
  .menu {
    display:block;
    margin-left:auto
  }
  
  
  .grid {
    grid-template-columns:1fr 1fr
  }
  .products {
    grid-template-columns:1fr 1fr
  }
  .team {
    grid-template-columns:1fr 1fr
  }
  .community {
    grid-template-columns:1fr
  }
  .support {
    grid-template-columns:1fr 1fr
  }
  }
@media(max-width:560px) {
  
  
  .page,.section {
    padding:55px 0
  }
  
  
  .hero-art {
    height:300px
  }
  .hero-art img {
    max-height:300px
  }
  .ip {
    flex-direction:column;
    align-items:stretch;
    gap:9px
  }
  .ip button {
    width:100%
  }
  .actions {
    flex-direction:column
  }
  .hero-stats,.grid,.products,.team,.support {
    grid-template-columns:1fr
  }
  
  .stats-grid {
    grid-template-columns:1fr
  }
  
  .bottom {
    flex-direction:column;
    gap:7px
  }}
/* ===== ACCOUNT SYSTEM ===== */

.auth-login-btn {
  
  
  
  
  
  
  
  
  transition:.2s
}

.auth-user {
  display:flex;
  align-items:center;
  
  
  
  
  
  color:#fff;
  
  
  cursor:pointer
}
.auth-avatar {
  
  
  
  display:grid;
  place-items:center;
  
  font:900 13px Sora,sans-serif;
  }

.auth-dropdown {
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  
  
  
  
  
  
  opacity:0;
  transform:translateY(-8px) scale(.98);
  pointer-events:none;
  transition:.18s;
  z-index:80
}
.auth-dropdown.open {
  opacity:1;
  transform:none;
  pointer-events:auto
}

.auth-dropdown-head small {
  display:block;
  
  
  }
.auth-dropdown-head strong {
  display:block;
  
  }
.auth-dropdown a,.auth-dropdown button {
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  color:#9db0c8;
  padding:10px;
  border-radius:5px;
  font-size:9px;
  font-weight:800
}
.auth-dropdown a:hover,.auth-dropdown button:hover {
  
  color:#fff
}
.auth-dropdown .logout {
  color:#ff7080
}
.auth-overlay {
  position:fixed;
  inset:0;
  
  
  display:grid;
  place-items:center;
  padding:20px;
  z-index:100;
  opacity:0;
  visibility:hidden;
  transition:.22s
}
.auth-overlay.open {
  opacity:1;
  visibility:visible
}
.auth-modal {
  width:min(470px,100%);
  
  
  
  
  
  transform:translateY(16px) scale(.97);
  transition:.22s
}
.auth-overlay.open .auth-modal {
  transform:none
}
.auth-modal-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px
}
.auth-kicker {
  color:var(--cyan);
  font-size:8px;
  font-weight:900;
  letter-spacing:2px
}
.auth-modal h2 {
  font:800 28px Sora,sans-serif;
  margin:7px 0 5px
}
.auth-modal p {
  font-size:10px;
  color:var(--muted);
  margin:0 0 20px
}
.auth-close {
  border:1px solid #244364;
  background:#08182c;
  
  width:32px;
  height:32px;
  border-radius:6px;
  }
.auth-close:hover {
  
  border-color:var(--cyan)
}
.auth-switch {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
  background:#061123;
  border:1px solid #18365b;
  padding:4px;
  border-radius:7px;
  margin-bottom:18px
}
.auth-switch button {
  border:0;
  background:transparent;
  
  padding:9px;
  font-size:9px;
  }
.auth-switch button.active {
  background:#102747;
  color:#fff;
  border:1px solid #265f96;
  border-radius:5px
}
.auth-form {
  display:none
}
.auth-form.active {
  display:block
}
.auth-field {
  margin-bottom:13px
}
.auth-field label {
  display:block;
  font-size:8px;
  color:#7890ae;
  font-weight:900;
  letter-spacing:1px;
  margin-bottom:6px
}
.auth-field input {
  width:100%;
  border:1px solid #1d3c62;
  background:#050e1d;
  color:#fff;
  border-radius:6px;
  padding:12px;
  font-size:12px;
  outline:0;
  transition:.18s
}
.auth-field input:focus {
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(22,217,255,.08)
}
.auth-submit {
  
  margin-top:3px
}
.auth-error {
  min-height:18px;
  
  
  font-weight:800;
  margin:7px 0 0
}
.auth-note {
  margin-top:13px;
  padding:10px;
  background:#061225;
  border:1px solid #163456;
  border-radius:6px;
  color:#7189a5;
  font-size:8px
}
.auth-note b {
  color:#a9c3e1
}
.auth-loading {
  opacity:.65;
  pointer-events:none
}
@media(max-width:900px) {
  .auth-user>span:not(.auth-avatar) {
    display:none
  }
  .auth-dropdown {
    right:-5px
  }}
@media(max-width:560px) {
  .auth-login-btn {
    padding:9px 10px;
    font-size:8px
  }
  .auth-modal {
    padding:20px
  }
  .auth-modal h2 {
    font-size:24px
  }}
@media(max-width:900px) {
  .header .menu {
    margin-left:0
  }}
.admin-tools {
  margin-bottom:14px
}
.admin-kicker {
  font-size:8px;
  font-weight:900;
  
  }
.admin-error {
  min-height:16px;
  
  font-size:9px;
  font-weight:800;
  margin-top:8px
}
.team-loading {
  grid-column:1/-1;
  color:#7187a4
}
.member {
  position:relative
}
.admin-overview {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:14px
}
.admin-success {
  
  
  
  font-weight:800;
  }
.admin-empty {
  padding:30px;
  text-align:center;
  color:#7187a5;
  font-size:10px
}
.team-avatar-img {
  
  
  
  
  
  
  
  box-shadow:0 0 20px rgba(22,217,255,.11)
}
@media(max-width:560px) {
  .admin-overview {
    grid-template-columns:1fr
  }}
.admin-nav-link {
  display:none
}
.admin-nav-link.visible {
  display:inline-flex
}



.admin-field textarea {
  
  
  
  
  
  
  
  
  font:10px Inter;
  }
.admin-field textarea:focus {
  border-color:var(--cyan)
}
.admin-users {
  display:flex;
  flex-direction:column;
  gap:7px;
  max-height:300px;
  overflow:auto
}
.admin-user-row {
  
  grid-template-columns:32px 1fr auto;
  
  
  
  
  
  }
.mini-avatar {
  
  
  
  
  
  
  font:800 12px Sora
}






.maintenance-status {
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid #273c55;
  background:#061124;
  border-radius:6px;
  margin:14px 0;
  
  }
.maintenance-status .status-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:#5d7088
}
.maintenance-status.active {
  border-color:#7d52bf;
  
  background:#140d26
}
.maintenance-status.active .status-dot {
  
  box-shadow:0 0 14px #bd68ff
}

.member:hover {
  transform:translateY(-2px)
}
.maintenance-admin-note .btn {
  display:inline-flex
}
.maintenance-admin-note a {
  text-decoration:none
}
.admin-action-row select {
  margin-left:auto;
  background:#071426;
  color:#eaf4ff;
  border:1px solid #244365;
  border-radius:5px;
  padding:7px 9px;
  font-size:8px;
  font-weight:800
}
.danger-btn {
  
  
  
  
  
  font-size:7px;
  font-weight:900;
  }


.admin-action-row {
  gap:8px
}
@media(max-width:700px) {
  .admin-action-row {
    flex-wrap:wrap
  }
  .admin-action-row select {
    margin-left:0
  }}
/* ===== SHARDLINE — PREMIUM MODERN REDESIGN =====
   Less cyberpunk, more premium gaming / Minecraft network.
*/
:root {
  --bg:#0b0f16;
  --bg-soft:#101722;
  --panel:#141b26;
  --panel-2:#18212d;
  --border:#273342;
  --text:#f2f5f8;
  --muted:#8d9aaa;
  --accent:#8d6cff;
  --accent-2:#6f58d9;
  --success:#4fc58a;
  --danger:#d95b70;
  --shadow:0 18px 45px rgba(0,0,0,.24);
}
html {
  scroll-behavior:smooth
}


a {
  color:inherit
}
h1,h2,h3,.logo{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.025em;
}
h1,h2,h3 {
  font-weight:800
}

.card,.panel,.box,.member{
  background:linear-gradient(145deg,rgba(24,33,45,.96),rgba(16,23,34,.96));
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  border-radius:12px;
}
.card:hover,.panel:hover,.member:hover{
  border-color:#39475a;
  transform:translateY(-2px);
}
.btn,.button,button {
  border-radius:8px;
  font-family:Inter,system-ui,sans-serif;
  letter-spacing:0;
  text-transform:none;
}
.btn.primary,.button.primary {
  background:var(--accent);
  border:1px solid #9d83ff;
  box-shadow:0 8px 22px rgba(141,108,255,.18);
}
.btn.primary:hover,.button.primary:hover {
  background:#9b7dff
}
.btn.secondary,.button.secondary {
  background:#18212d;
  border:1px solid #334154;
  color:#e7ebf0;
}
.btn.secondary:hover,.button.secondary:hover {
  background:#202b39
}
input,textarea,select {
  background:#0e151f;
  color:#edf1f5;
  border:1px solid #2b3949;
  border-radius:8px;
  font-family:Inter,system-ui,sans-serif;
}
input:focus,textarea:focus,select:focus {
  border-color:#8064e8;
  box-shadow:0 0 0 3px rgba(128,100,232,.12);
  outline:none;
}
.role-badge {
  background:#202938;
  
  
  
}
.status-dot {
  
  box-shadow:none
}

.description,small {
  color:var(--muted)
}
.section-title{
  font-weight:800
}
.admin-kicker {
  color:#a994ff;
  letter-spacing:.08em;
}

footer{
  background:#080c12;
  border-top:1px solid rgba(255,255,255,.06);
}
footer a:hover {
  color:#b39fff
}
.maintenance-page {
  background:linear-gradient(180deg,#0b0f16,#101722);
}
.maintenance-admin-note {
  background:#141b26;
  border:1px solid #273342;
  box-shadow:none;
}
.danger-btn {
  
  border-color:#57303b;
  
}





@media(max-width:700px) {
  .card,.panel,.box,.member{
    border-radius:10px
  }}
.permission-matrix {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px
}
.permission-role {
  display:grid;
  grid-template-columns:140px 1fr;
  gap:10px;
  align-items:center;
  background:#0a121b;
  border:1px solid var(--line-soft);
  border-radius:7px;
  }


.permission-list span {
  
  
  
  border:1px solid #2b3e52;
  
  
  font-weight:700
}
.permission-list span:first-child {
  color:#c6bcff
}
@media(max-width:760px) {
  .permission-matrix {
    grid-template-columns:1fr
  }
  .permission-role {
    grid-template-columns:1fr
  }}
.team-loading {
  padding:30px
}
/* ===== PROFILE ===== */
.profile-shell {
  max-width:980px;
  margin:0 auto
}
.profile-grid {
  display:grid;
  grid-template-columns:300px 1fr;
  gap:14px
}
.profile-card {
  background:linear-gradient(145deg,rgba(9,24,48,.96),rgba(4,12,27,.96));
  border:1px solid var(--line);
  border-radius:10px;
  padding:24px;
  box-shadow:var(--glow)
}
.profile-preview {
  text-align:center;
  align-self:start
}
.profile-avatar-wrap {
  width:120px;
  height:120px;
  margin:4px auto 18px;
  position:relative
}
.profile-avatar,.profile-initial {
  width:120px;
  height:120px;
  border-radius:16px;
  object-fit:cover;
  border:1px solid #2d5c8b
}
.profile-initial {
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#147fff,#913fff);
  font:900 42px Sora;
  }
.profile-preview h3 {
  font:800 19px Sora;
  margin:0 0 7px
}
.profile-preview>span {
  font-size:8px;
  color:#b16cff;
  font-weight:900;
  letter-spacing:1px
}
.profile-preview p {
  font-size:9px;
  color:#657c99;
  margin:10px 0 18px
}
.profile-upload-btn {
  display:block;
  border:1px solid #2a5e92;
  background:#0a1d34;
  color:#dce9f7;
  border-radius:6px;
  padding:11px;
  font-size:9px;
  font-weight:900;
  cursor:pointer
}
.profile-upload-btn:hover {
  border-color:var(--cyan);
  color:#fff
}
.profile-upload-btn input {
  display:none
}
.profile-card-head span {
  display:block;
  color:var(--cyan);
  font-size:8px;
  font-weight:900;
  letter-spacing:1.5px
}
.profile-card-head strong {
  display:block;
  font:800 20px Sora;
  margin-top:5px
}
.profile-field {
  display:block;
  margin-top:17px;
  color:#7890ae;
  
  font-weight:900;
  }
.profile-field small {
  color:#526b88
}
.profile-field input {
  display:block;
  width:100%;
  box-sizing:border-box;
  margin-top:7px;
  border:1px solid #1d3c62;
  background:#050e1d;
  color:#fff;
  border-radius:6px;
  padding:12px;
  font-size:11px;
  outline:none
}
.profile-field input:focus {
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(22,217,255,.08)
}
.profile-divider {
  height:1px;
  
  margin:25px 0 20px
}
.profile-hint {
  font-size:9px;
  color:#617a99;
  line-height:1.6;
  margin:8px 0 0
}
.profile-card form .btn {
  margin-top:20px
}
.profile-message {
  min-height:18px;
  margin:0 0 12px;
  font-size:9px;
  font-weight:900
}
.profile-message.success {
  color:#68e9c1
}
.profile-message.error {
  color:#ff7180
}
.auth-avatar {
  overflow:hidden
}
.auth-avatar img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
/* ===== MODERN FONT UPDATE ===== */

h1,h2,h3,h4,.logo,.nav a,.btn,.section-title h1,.section-title h2,.profile-card-head strong,.profile-preview h3 {
  font-family:'Sora',sans-serif;
}

h1,h2,h3 {
  letter-spacing:-.02em
}
.game-mode-grid {
  grid-template-columns:repeat(2,1fr)
}
.mode-challenges .icon {
  color:#f4b84a
}
.mode-dungeons .icon {
  color:#c98cff
}
.mode-skypvp .icon {
  color:#ff657c
}
.mode-city .icon {
  color:#25d7df
}

@media(max-width:560px) {
  .game-mode-grid {
    grid-template-columns:1fr
  }}
.rank-products {
  grid-template-columns:repeat(3,1fr)
}
.rank-products .product {
  min-height:315px
}

.rank-rifter .big {
  color:#62a8ff
}
.rank-cardinal .big {
  color:#8e9cff
}
.rank-immortal .big {
  color:#b26dff
}
.rank-integrity .big {
  color:#d6e7ff
}
.rank-underworld .big {
  color:#ff6b9d
}
.rank-shadows .big {
  color:#c77dff
}
.rank-products .product:hover {
  transform:translateY(-5px);
  border-color:#3477b8;
  box-shadow:0 18px 45px rgba(15,120,220,.1)
}
@media(max-width:900px) {
  .rank-products {
    grid-template-columns:1fr 1fr
  }}
@media(max-width:560px) {
  .rank-products {
    grid-template-columns:1fr
  }}
/* ===== NEW SHARDLINE CRYSTAL LOGO ===== */
.header .logo {
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.header .logo img {
  width:54px;
  height:54px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 0 12px rgba(30,190,255,.18));
}
.footer-logo img {
  
  
  object-fit:contain;
  display:block;
  
}
@media(max-width:700px) {
  .header .logo {
    width:50px;
    height:50px
  }
  .header .logo img {
    width:48px;
    height:48px
  }}
.tool-btn {
  border:1px solid #315477;
  background:#0b1b31;
  color:#cfe0f2;
  border-radius:5px;
  padding:8px 10px;
  font-size:8px;
  font-weight:800;
  cursor:pointer
}
.tool-btn:hover {
  border-color:#16d9ff;
  color:#fff
}
.team-loading small {
  display:block;
  margin-top:8px;
  color:#ff7788;
  font-size:9px;
  font-weight:700
}
.stats-grid .stat strong {
  min-height:34px;
  display:block
}
#serverStatus {
  font-size:20px
}
/* ===== ADMIN PANEL REDESIGN ===== */
.admin-page {
  padding-top:34px;
  padding-bottom:60px
}
.admin-hero {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  
  
  
  
  
  }
.admin-hero h1 {
  
  font-family:Sora,sans-serif;
  
  }

.admin-hero p {
  margin:0;
  
  max-width:650px
}
.admin-kicker,.admin-panel-head>div>span {
  font-size:9px;
  font-weight:800;
  letter-spacing:2px;
  }
.admin-refresh {
  border:1px solid #2c4663;
  background:#111f31;
  color:#e8f1fb;
  padding:12px 16px;
  border-radius:7px;
  font-size:9px;
  font-weight:800;
  cursor:pointer
}
.admin-refresh:hover,.admin-btn:hover {
  border-color:#26d8ff;
  transform:translateY(-1px)
}
.admin-stat-grid {
  display:grid;
  
  gap:12px;
  margin-bottom:14px
}
.admin-stat-card {
  padding:20px;
  border:1px solid #203752;
  border-radius:12px;
  background:#0c1726
}

.admin-stat-card strong {
  display:block;
  
  font-family:Sora,sans-serif;
  
  color:#f2f7ff
}


.admin-dashboard-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}
.admin-panel-card {
  min-width:0;
  padding:22px;
  border:1px solid #203752;
  border-radius:12px;
  background:#0c1726;
  box-shadow:0 10px 35px rgba(0,0,0,.13)
}
.admin-wide {
  grid-column:span 2
}
.admin-panel-head {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px
}
.admin-panel-head h2 {
  margin:5px 0;
  font-family:Sora,sans-serif;
  font-size:20px;
  color:#eef5ff
}
.admin-panel-head p {
  margin:0;
  color:#7187a2;
  font-size:11px;
  line-height:1.5
}
.admin-panel-icon {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  
  
  }
.admin-control-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px
}
.admin-toggle-card {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid #1e3650;
  border-radius:9px;
  background:#091421;
  cursor:pointer
}
.admin-toggle-card input {
  display:none
}
.toggle-ui {
  width:38px;
  height:21px;
  border-radius:20px;
  background:#1b2a3b;
  position:relative;
  flex:none;
  transition:.2s
}
.toggle-ui:after {
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#71839a;
  transition:.2s
}
.admin-toggle-card input:checked+.toggle-ui {
  background:#147d9b
}
.admin-toggle-card input:checked+.toggle-ui:after {
  left:20px;
  background:#fff
}
.admin-toggle-card b {
  display:block;
  color:#eaf2fb;
  font-size:11px
}
.admin-toggle-card small {
  display:block;
  color:#71849b;
  font-size:9px;
  margin-top:3px
}
.admin-field {
  display:block;
  margin:12px 0
}
.admin-field>span {
  display:block;
  font-size:8px;
  font-weight:800;
  letter-spacing:1.3px;
  color:#7189a5;
  margin-bottom:6px
}
.admin-field textarea {
  width:100%;
  min-height:80px;
  box-sizing:border-box;
  resize:vertical;
  padding:12px;
  border:1px solid #25415e;
  border-radius:8px;
  background:#071321;
  color:#e8f1fb;
  outline:none
}
.admin-field textarea:focus,.admin-search input:focus {
  border-color:#2bd9ff
}
.admin-action-line {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.admin-btn {
  border:1px solid #27435e;
  background:#0a1725;
  color:#dce8f5;
  border-radius:7px;
  padding:10px 12px;
  font-size:8px;
  font-weight:800;
  letter-spacing:.4px;
  cursor:pointer;
  text-decoration:none;
  transition:.18s
}
.admin-btn.primary {
  background:linear-gradient(90deg,#1aaed2,#2d7df4);
  border-color:#2bd9ff;
  color:#fff
}
.admin-btn.danger {
  color:#ff8895;
  border-color:#61303a
}


.admin-search {
  display:flex;
  gap:8px;
  margin-bottom:12px
}
.admin-search input {
  flex:1;
  min-width:0;
  padding:11px 12px;
  border:1px solid #25415e;
  border-radius:7px;
  background:#071321;
  color:#fff;
  outline:none
}
.admin-user-list {
  display:grid;
  gap:6px;
  max-height:430px;
  overflow:auto
}
.admin-user-row {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:1px solid #182e46;
  border-radius:7px;
  background:#091522
}
.admin-user-row>div:nth-child(2) {
  min-width:0;
  flex:1
}
.admin-user-row strong {
  display:block;
  color:#eaf2fb;
  font-size:11px
}
.admin-user-row small {
  display:block;
  color:#6f829a;
  font-size:9px;
  margin-top:2px
}
.admin-user-row select {
  border:1px solid #294764;
  background:#0b1a2b;
  color:#dbe8f6;
  border-radius:5px;
  padding:7px;
  font-size:8px;
  font-weight:700
}
.mini-avatar {
  width:30px;
  height:30px;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:#142940;
  color:#3bdcff;
  font-weight:800;
  font-size:11px;
  flex:none
}
.role-badge {
  padding:5px 7px;
  border:1px solid #27425e;
  border-radius:5px;
  color:#8fa5be;
  font-size:7px;
  font-weight:800;
  white-space:nowrap
}
.role-badge.admin {
  color:#e5b7ff;
  border-color:#67448c
}
.tool-btn,.danger-btn {
  flex:none
}
.self-label {
  font-size:8px;
  color:#5d738b;
  font-weight:800
}
.admin-links-card {
  margin-top:14px
}
.admin-links {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.maintenance-status {
  font-size:8px;
  color:#778ca5
}
.maintenance-status.active {
  color:#ffb2bb
}
.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#71839a;
  margin-right:6px
}
.maintenance-status.active .status-dot {
  background:#ff6373
}
.admin-success {
  
  
  margin-top:8px;
  min-height:12px
}
.admin-error {
  padding:14px;
  border:1px solid #5b2c38;
  background:#1b1117;
  border-radius:8px;
  color:#ff9eaa
}
.permission-matrix.compact {
  max-height:300px;
  overflow:auto
}
.permission-role {
  padding:8px 0;
  border-bottom:1px solid #172d43
}
.permission-role:last-child {
  border-bottom:0
}
.permission-role strong {
  font-size:10px
}
.permission-role small {
  display:block;
  color:#617790;
  font-size:8px
}
.permission-list {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:5px
}
.permission-list span {
  font-size:7px;
  padding:4px 6px;
  border-radius:4px;
  background:#122337;
  color:#91a8c1
}
@media(max-width:900px) {
  .admin-stat-grid {
    grid-template-columns:1fr 1fr
  }
  .admin-dashboard-grid {
    grid-template-columns:1fr
  }
  .admin-wide {
    grid-column:span 1
  }}
@media(max-width:600px) {
  .admin-stat-grid {
    grid-template-columns:1fr 1fr
  }
  .admin-hero {
    align-items:flex-start;
    flex-direction:column;
    padding:20px
  }
  .admin-hero h1 {
    font-size:31px
  }
  .admin-control-grid {
    grid-template-columns:1fr
  }
  .admin-action-line {
    align-items:stretch;
    flex-direction:column
  }
  .admin-user-row {
    flex-wrap:wrap
  }
  .admin-user-row select {
    margin-left:auto
  }}
/* ===== SHARDLINE CUSTOM CONFIRM MODALS ===== */
.sl-modal-backdrop {
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(3,9,17,.72);
  backdrop-filter:blur(8px);
  opacity:0;
  transition:opacity .15s ease
}
.sl-modal-backdrop.open {
  opacity:1
}
.sl-modal-backdrop.closing {
  opacity:0
}
.sl-modal {
  width:min(470px,100%);
  display:flex;
  gap:16px;
  padding:22px;
  border:1px solid #29445f;
  border-radius:14px;
  background:linear-gradient(145deg,#111d2d,#0a1421);
  box-shadow:0 28px 80px rgba(0,0,0,.55);
  transform:translateY(8px) scale(.98);
  transition:transform .15s ease
}
.sl-modal-backdrop.open .sl-modal {
  transform:none
}
.sl-modal-icon {
  width:42px;
  height:42px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#102c3c;
  border:1px solid #1bc8e8;
  
  font-size:20px;
  font-weight:800
}
.sl-modal-icon.danger {
  background:#321b22;
  border-color:#7a3442;
  color:#ff7788
}
.sl-modal-content {
  min-width:0;
  flex:1
}
.sl-modal-kicker {
  font-size:8px;
  letter-spacing:1.8px;
  font-weight:800;
  color:#38d8ff
}
.sl-modal h3 {
  margin:5px 0 7px;
  font-family:Sora,Inter,sans-serif;
  font-size:19px;
  color:#f1f6fc
}
.sl-modal p {
  margin:0;
  color:#8498ae;
  font-size:11px;
  line-height:1.55
}
.sl-modal-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:18px
}
.sl-modal-btn {
  border:1px solid #29455f;
  border-radius:7px;
  padding:10px 14px;
  font-size:8px;
  font-weight:800;
  letter-spacing:.5px;
  cursor:pointer;
  background:#0d1b2b;
  color:#dbe8f4
}
.sl-modal-btn:hover {
  border-color:#37d8ff;
  transform:translateY(-1px)
}
.sl-modal-btn.primary {
  background:linear-gradient(90deg,#13b9d7,#287ff1);
  border-color:#2cdcff;
  color:#fff
}
.sl-modal-btn.danger {
  background:#411c25;
  border-color:#813846;
  color:#ffb5bf
}
@media(max-width:520px) {
  .sl-modal {
    padding:18px
  }
  .sl-modal-icon {
    width:36px;
    height:36px
  }
  .sl-modal-actions {
    flex-direction:column-reverse
  }
  .sl-modal-btn {
    width:100%
  }}
/* Account management upgrades */
.admin-search-extended {
  align-items:center
}
.admin-filter {
  min-width:125px;
  padding:10px 9px;
  border:1px solid #25415e;
  border-radius:7px;
  background:#071321;
  color:#dce8f5;
  font-size:8px;
  font-weight:800;
  outline:none
}
.admin-filter:focus {
  border-color:#2bd9ff
}
.admin-user-summary {
  display:flex;
  align-items:center;
  gap:6px;
  margin:-4px 0 10px;
  color:#637992;
  font-size:9px
}
.admin-user-summary span:first-child {
  color:#dbe8f5;
  font-weight:800
}
.admin-summary-sep {
  color:#29435e
}
.admin-account-card {
  padding:12px
}
.admin-account-main {
  flex:1;
  }
.admin-account-main small {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.account-status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border-radius:5px;
  font-size:7px;
  font-weight:800;
  white-space:nowrap
}
.account-status i {
  width:5px;
  height:5px;
  border-radius:50%;
  display:block
}
.account-status.active {
  background:#102d29;
  color:#68ddb0
}
.account-status.active i {
  background:#48d39b
}
.account-status.locked {
  background:#321d24;
  color:#ff9aa8
}
.account-status.locked i {
  background:#ff6577
}
.admin-icon-btn {
  width:30px;
  height:30px;
  border:1px solid #29445f;
  background:#0b1827;
  color:#7edcff;
  border-radius:6px;
  font-size:7px;
  font-weight:800;
  cursor:pointer
}
.admin-icon-btn:hover {
  border-color:#2bd9ff;
  color:#fff
}

.admin-action-row .mini-avatar {
  width:30px;
  height:30px
}
@media(max-width:1000px) {
  .admin-search-extended {
    flex-wrap:wrap
  }
  .admin-search-extended input {
    flex:1 1 100%
  }
  .admin-filter {
    flex:1
  }
  .admin-account-card .account-status {
    display:none
  }}
@media(max-width:650px) {
  .admin-filter {
    min-width:0
  }
  .admin-user-summary {
    flex-wrap:wrap
  }
  .admin-account-card {
    align-items:flex-start;
    flex-wrap:wrap
  }
  .admin-account-main {
    min-width:calc(100% - 45px)
  }
  .admin-account-card .role-badge {
    margin-left:40px
  }
  .admin-account-card .account-manage {
    margin-left:40px
  }}
/* ===== EXTRA ADMIN FUNCTIONS ===== */
.admin-bulk-bar {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  padding:10px 11px;
  margin-bottom:8px;
  
  
  }
.admin-bulk-bar label {
  display:flex;
  align-items:center;
  gap:7px;
  color:#a9bbce;
  font-size:8px;
  font-weight:800
}
.admin-bulk-bar input {
  accent-color:#8d6cff
}
.admin-bulk-bar>span {
  font-size:8px;
  color:#6f849d;
  margin-right:auto
}
.admin-bulk-bar select {
  padding:8px 9px;
  font-size:8px
}
.user-select {
  width:18px;
  display:grid;
  place-items:center
}
.user-select input {
  display:none
}
.user-select span {
  width:13px;
  height:13px;
  border:1px solid #34516e;
  border-radius:4px;
  background:#091522;
  cursor:pointer
}
.user-select input:checked+span {
  background:#8d6cff;
  border-color:#a894ff;
  box-shadow:inset 0 0 0 3px #091522
}
.admin-account-card {
  grid-template-columns:18px 32px 1fr auto auto auto auto
}

.role-stat {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid #1c344c;
  border-radius:7px;
  background:#091522
}
.role-stat strong {
  font-size:16px;
  color:#edf5ff
}
.role-stat span {
  font-size:7px;
  font-weight:900;
  color:#8398b1;
  overflow:hidden;
  text-overflow:ellipsis
}
@media(max-width:1000px) {
  .admin-account-card {
    grid-template-columns:18px 32px 1fr auto
  }
  .admin-account-card .account-manage,.admin-account-card .admin-icon-btn {
    grid-column:auto
  }
  .admin-account-card .role-badge {
    grid-column:3
  }
  .admin-account-card .account-status {
    grid-column:3
  }}
@media(max-width:650px) {
  .admin-account-card {
    grid-template-columns:18px 32px 1fr
  }
  .admin-account-card .role-badge,.admin-account-card .account-status,.admin-account-card .account-manage,.admin-account-card .admin-icon-btn {
    grid-column:3;
    justify-self:start
  }}
/* =========================================================
   SHARDLINE GENERAL POLISH
   Cleaner community-gaming look, less "cyber", more premium.
   ========================================================= */
:root {
  --bg:#070d16;
  --bg2:#0c1421;
  --panel:#0b1522;
  --panel2:#101d2c;
  --line:#21384f;
  --line-soft:#172a3d;
  --text:#f2f6fb;
  --muted:#91a4ba;
  --cyan:#20d7f4;
  --blue:#3b8cff;
  --purple:#8d6cff;
  --success:#55d49a;
  --danger:#ff6d7d;
  --glow:0 14px 45px rgba(0,0,0,.22)
}

body {
  
  
  letter-spacing:.01em;
}
body:before {
  opacity:.018;
  background-size:110px 110px;
  mask-image:linear-gradient(to bottom,#000 0%,transparent 70%);
}

:focus-visible {
  outline:2px solid var(--cyan);
  outline-offset:3px
}










.hero-art:before {
  opacity:.65;
  filter:blur(20px)
}
.btn {
  border-radius:7px;
  transition:transform .18s,background .18s,border-color .18s,box-shadow .18s
}


.card,.product,.member,.stat,.discord {
  box-shadow:none;
  border-color:var(--line);
  background:linear-gradient(145deg,#0d1826,#0a131f);
}
.card:hover,.product:hover,.member:hover {
  transform:translateY(-3px);
  border-color:#315474;
  box-shadow:0 14px 30px rgba(0,0,0,.2);
}
.card h3,.product h3 {
  letter-spacing:-.3px
}
.section-title {
  border-left-width:2px
}


.product strong {
  color:#fff
}
.product button {
  border-radius:6px;
  color:#dce8f5;
  background:#102236;
  transition:.18s;
}
.product button:hover {
  border-color:#35648b;
  background:#152b43;
  color:#fff
}

.footer {
  
  border-top-color:#17293b;
}

.footer-logo img {
  opacity:.95
}
.auth-login-btn {
  
  border-color:#2a4965;
}

.auth-user {
  
  border-color:#29465f
}
.auth-dropdown {
  
  border-color:#27445d
}
.auth-dropdown a:hover,.auth-dropdown button:hover {
  background:#102235
}
.auth-modal {
  
  border-color:#315574
}

/* Mode navigation dropdown */
.nav-mode {
  position:relative
}
.nav-mode>a {
  display:flex;
  align-items:center;
  gap:6px
}
.nav-mode>a:after {
  content:"⌄";
  font-size:9px;
  color:#657c96;
  transition:.15s
}
.nav-mode:hover>a:after {
  color:var(--cyan)
}
.nav-mode-menu {
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:205px;
  
  
  
  
  
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  transition:.16s;
  z-index:60;
}
.nav-mode:hover .nav-mode-menu,.nav-mode.open .nav-mode-menu {
  opacity:1;
  visibility:visible;
  transform:none
}
.nav-mode-menu a {
  
  align-items:center;
  gap:9px;
  width:100%;
  
  
  box-shadow:none;
  background:transparent;
  
  
}

.nav-mode-menu a span {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#2fd6ef;
  display:block
}
.nav-mode-menu a:nth-child(2) span {
  background:#9a75ff
}
.nav-mode-menu a:nth-child(3) span {
  background:#ffb64a
}
.nav-mode-menu a:nth-child(4) span {
  background:#6ed49b
}

.menu:after {
  content:"☰";
  font-size:23px
}
.toast {
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:150;
  min-width:250px;
  max-width:calc(100vw - 44px);
  padding:12px 14px;
  
  
  
  
  
  
  font-weight:700;
  transform:translateY(15px);
  opacity:0;
  pointer-events:none;
  transition:.2s
}
.toast.show {
  transform:none;
  opacity:1
}


@media(max-width:900px) {
  .header {
    position:sticky
  }
  .nav.open {
    
    
    border-bottom-color:#243d53
  }
  .nav-mode-menu {
    position:static;
    display:none;
    margin-top:4px;
    box-shadow:none
  }
  .nav-mode.open .nav-mode-menu {
    display:block;
    opacity:1;
    visibility:visible
  }}
@media(max-width:560px) {
  
  .logo img {
    width:118px;
    }
  .hero h1 {
    letter-spacing:-1.5px
  }
  .section-title {
    padding-left:12px
  }
  .section-title h1,.section-title h2 {
    font-size:32px
  }
  .toast {
    right:12px;
    bottom:12px
  }}
/* =========================================================
   COOKIE CONSENT
   ========================================================= */
.cookie-banner {
  position:fixed;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:220;
  display:none;
  max-width:920px;
  margin:auto;
  padding:20px;
  background:#0b1724;
  border:1px solid #2a465e;
  border-radius:12px;
  box-shadow:0 22px 60px rgba(0,0,0,.45);
}
.cookie-banner.show {
  display:block
}
.cookie-banner h3 {
  margin:0 0 7px;
  font:800 17px Sora,sans-serif
}
.cookie-banner p {
  margin:0;
  color:#9cafc3;
  font-size:10px;
  line-height:1.65;
  max-width:760px
}
.cookie-banner a {
  color:#61dff5;
  text-decoration:underline
}
.cookie-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px
}
.cookie-btn {
  border:1px solid #2b4962;
  background:#102235;
  color:#dce8f5;
  border-radius:7px;
  padding:10px 14px;
  font-size:9px;
  font-weight:900;
}
.cookie-btn:hover {
  background:#162c43;
  border-color:#3b6282
}
.cookie-btn.primary {
  background:#1b79c5;
  border-color:#3e9fe0;
  color:#fff
}
.cookie-btn.primary:hover {
  background:#248bd9
}
.cookie-btn.subtle {
  background:transparent;
  color:#9cafc3
}
.cookie-settings {
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:210;
  display:none;
  
  
  
  border-radius:50%;
  width:44px;
  height:44px;
  font-size:17px;
  }
.cookie-settings.show {
  display:block
}

.cookie-modal {
  position:fixed;
  inset:0;
  z-index:230;
  display:none;
  place-items:center;
  padding:18px;
  background:rgba(2,6,12,.74);
  backdrop-filter:blur(7px)
}
.cookie-modal.show {
  display:grid
}
.cookie-panel {
  width:min(560px,100%);
  max-height:90vh;
  overflow:auto;
  background:#0b1724;
  border:1px solid #2d4d67;
  border-radius:12px;
  box-shadow:0 25px 80px rgba(0,0,0,.5);
  padding:24px
}
.cookie-panel h2 {
  font:800 22px Sora;
  margin:0 0 7px
}
.cookie-panel>p {
  color:#91a4ba;
  font-size:10px;
  line-height:1.6
}
.cookie-row {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding:14px 0;
  border-top:1px solid #1c3145
}
.cookie-row strong {
  font-size:11px
}
.cookie-row small {
  display:block;
  color:#8398ad;
  font-size:9px;
  line-height:1.5;
  margin-top:3px
}
.cookie-toggle {
  flex:0 0 auto;
  width:42px;
  height:24px;
  border-radius:20px;
  border:1px solid #35536a;
  background:#17293a;
  position:relative;
  cursor:pointer
}
.cookie-toggle:after {
  content:"";
  position:absolute;
  width:18px;
  height:18px;
  top:2px;
  left:2px;
  border-radius:50%;
  background:#aebdcc;
  transition:.18s
}

.cookie-toggle.on:after {
  transform:translateX(18px);
  background:#fff
}
.cookie-toggle.locked {
  opacity:.55;
  cursor:not-allowed
}
.cookie-panel-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:18px
}
@media(max-width:560px) {
  .cookie-banner {
    left:10px;
    right:10px;
    bottom:10px;
    padding:16px
  }
  .cookie-actions .cookie-btn {
    flex:1 1 45%
  }
  .cookie-settings {
    right:12px;
    bottom:12px
  }}
.cookie-btn.reject {
  border-color:#5a3640;
  color:#ffb6c0
}
.cookie-btn.reject:hover {
  background:#29151b;
  border-color:#8a4c59
}
/* Legal pages */
.legal-page {
  
  min-height:calc(100vh - 150px)
}
.legal-wrap {
  width:min(900px,100%);
  margin:auto
}
.legal-kicker {
  font-size:9px;
  letter-spacing:2px;
  font-weight:900;
  
  margin-bottom:12px
}
.legal-wrap h1 {
  font:800 clamp(34px,5vw,58px) Sora,sans-serif;
  
  margin:0 0 12px
}
.legal-intro {
  
  
  
  margin:0 0 30px
}
.legal-card {
  
  margin:0 0 12px;
  background:linear-gradient(145deg,#0d1826,#0a131f);
  border:1px solid #21384f;
  border-radius:10px
}
.legal-card h2 {
  font:800 17px Sora,sans-serif;
  margin:0 0 11px;
  color:#f2f6fb
}
.legal-card p {
  font-size:10px;
  line-height:1.75;
  color:#9badbf;
  margin:0 0 8px
}
.legal-card p:last-child {
  margin-bottom:0
}
.legal-card strong {
  color:#eaf3fb
}
.health-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}
.health-item {
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px;
  border:1px solid #20354b;
  background:#091421;
  border-radius:9px
}
.health-item>div {
  min-width:0;
  flex:1
}
.health-item b {
  display:block;
  font-size:11px;
  color:#edf5fb
}
.health-item small {
  display:block;
  color:#71879d;
  font-size:9px;
  margin-top:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.health-item strong {
  font-size:8px;
  letter-spacing:1px
}
.health-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  flex:0 0 auto
}
.health-dot.ok {
  background:#39d99a;
  box-shadow:0 0 10px #39d99a
}
.health-dot.bad {
  background:#ff6477;
  box-shadow:0 0 10px #ff6477
}
.health-dot.pending {
  background:#71879d
}
@media(max-width:800px) {
  .health-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }}
@media(max-width:480px) {
  .health-grid {
    grid-template-columns:1fr
  }}
.team-avatar-img {
  width:75px;
  height:75px;
  border-radius:10px;
  margin:auto;
  display:block;
  object-fit:cover;
  border:1px solid #2b4e76;
  background:#071326
}
/* ===== ACCOUNT DASHBOARD / WEBSITE FEATURES ===== */

.account-heading {
  padding:10px 0 25px;
  
  
  }
.account-heading h1 {
  font:800 39px Sora;
  }
.account-heading p {
  
  
  margin:0
}
.account-kicker {
  font-size:9px;
  letter-spacing:1.8px;
  font-weight:900;
  color:var(--cyan)
}
.account-layout {
  display:grid;
  grid-template-columns:245px 1fr;
  
  align-items:start
}
.account-sidebar {
  position:sticky;
  top:96px;
  
  
  
  }
.account-sidebar-title {
  font-size:9px;
  font-weight:900;
  color:#7790ad;
  letter-spacing:1.5px;
  padding:12px 10px 8px
}
.account-sidebar a {
  display:block;
  padding:9px 10px;
  color:#9caec3;
  font-size:10px;
  border-radius:5px
}
.account-sidebar a:hover,.account-sidebar a.active {
  background:#0b1d35;
  color:#fff
}
.account-sidebar a::first-letter {
  color:var(--cyan)
}

.account-main {
  display:grid;
  gap:14px
}
.account-panel {
  border:1px solid var(--line);
  background:linear-gradient(145deg,rgba(8,20,41,.94),rgba(4,11,25,.96));
  border-radius:8px;
  padding:22px;
  box-shadow:0 0 35px rgba(22,217,255,.035)
}
.account-profile-head {
  display:flex;
  align-items:center;
  gap:15px;
  padding-bottom:20px;
  border-bottom:1px solid #18304e
}
.account-user-avatar {
  width:62px;
  height:62px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#10243d;
  border:1px solid #2b4e76;
  color:var(--cyan);
  font:800 25px Sora;
  overflow:hidden
}
.account-user-avatar img {
  width:100%;
  height:100%;
  object-fit:cover
}
.account-profile-head h2 {
  font:800 21px Sora;
  margin:4px 0
}
.account-profile-head p {
  margin:0;
  color:#9c73ff;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase
}
.account-edit {
  margin-left:auto
}
.account-stat-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  
  margin-top:12px
}

.account-stat-grid span {
  font-size:8px;
  color:#69819e;
  letter-spacing:1px;
  font-weight:900
}
.account-stat-grid strong {
  display:block;
  font:800 24px Sora;
  margin:5px 0
}
.account-stat-grid small {
  font-size:8px;
  color:#607894
}
.account-panel-head {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:18px
}
.account-panel-head span {
  font-size:8px;
  color:var(--cyan);
  letter-spacing:1.5px;
  font-weight:900
}
.account-panel-head h2 {
  font:800 23px Sora;
  margin:5px 0
}
.account-panel-head p {
  margin:0;
  color:var(--muted);
  font-size:10px
}
.connection-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px
}
.connection-card {
  display:grid;
  grid-template-columns:82px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  
  padding:10px;
  background:#061225;
  border:1px solid #193b62;
  border-radius:7px;
  overflow:hidden
}
.connection-icon {
  width:82px;
  height:82px;
  display:grid;
  place-items:center;
  
  
  color:var(--cyan);
  font-weight:900;
  font-size:25px
}
.connection-icon.discord {
  color:#a879ff
}
.connection-icon.minecraft {
  color:#68d96c
}
.connection-card b {
  display:block;
  font-size:10px;
  color:#f1f6fb;
  white-space:nowrap
}
.connection-card small {
  display:block;
  color:#68809d;
  font-size:8px;
  margin-top:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.connection-state,.connection-action {
  font-size:7px;
  font-weight:900;
  letter-spacing:.5px;
  white-space:nowrap
}
.connection-state.active {
  color:#62e36b
}
.connection-state.pending {
  color:#e7ba58
}
.connection-action {
  color:#62e36b;
  border:1px solid #265c32;
  padding:6px 8px;
  border-radius:4px;
  text-decoration:none
}
.connection-action:hover {
  background:#0a2412
}
@media(max-width:1050px) {
  .connection-card {
    grid-template-columns:64px minmax(0,1fr);
    min-height:64px
  }
  .connection-icon {
    width:64px;
    height:64px
  }
  .connection-card .connection-state,.connection-card .connection-action {
    grid-column:2;
    justify-self:start
  }}
.report-form {
  display:grid;
  grid-template-columns:1fr 180px;
  gap:12px
}
.report-form label {
  display:block;
  color:#7188a5;
  font-size:8px;
  font-weight:900;
  letter-spacing:1px
}
.report-form label:nth-child(3) {
  grid-column:1/-1
}
.report-form input,.report-form select,.report-form textarea {
  width:100%;
  margin-top:6px;
  background:#061225;
  border:1px solid #204366;
  border-radius:6px;
  color:#eaf3fc;
  padding:11px;
  font:inherit;
  font-size:10px;
  outline:none
}
.report-form textarea {
  min-height:110px;
  resize:vertical
}
.report-form input:focus,.report-form select:focus,.report-form textarea:focus {
  border-color:#319fe4;
  box-shadow:0 0 0 2px rgba(22,217,255,.07)
}
.report-form .btn {
  justify-self:start
}
.account-subhead {
  border-top:1px solid #17304f;
  margin-top:22px;
  padding-top:16px;
  color:#7188a5;
  font-size:8px;
  font-weight:900;
  letter-spacing:1px
}
.report-list,.reward-list,.news-list {
  display:grid;
  gap:7px;
  margin-top:10px
}
.report-row,.reward-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:12px;
  background:#061225;
  border:1px solid #183657;
  border-radius:6px
}
.report-row b,.reward-row b {
  font-size:10px
}
.report-row small,.reward-row small {
  display:block;
  color:#69819d;
  font-size:8px;
  margin-top:4px
}
.report-status {
  font-size:7px;
  font-weight:900;
  padding:5px 7px;
  border-radius:4px;
  border:1px solid #244363
}
.report-status.pending {
  color:#e7ba58
}
.report-status.confirmed {
  color:#62e36b;
  border-color:#285c33
}
.report-status.rejected {
  color:#ff7182;
  border-color:#67323b
}
.reward-pill {
  color:#64e36c;
  font-size:9px
}
.reward-row>span {
  color:#617894;
  font-size:8px
}
.account-empty {
  padding:25px;
  text-align:center;
  color:#627994;
  border:1px dashed #1b3858;
  border-radius:6px;
  font-size:9px
}
.server-status-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:8px
}
.server-status-card {
  min-height:80px;
  padding:16px;
  background:#061225;
  border:1px solid #183657;
  border-radius:6px
}
.server-status-card b {
  display:block;
  font:800 18px Sora
}
.server-status-card small {
  display:block;
  color:#69819d;
  font-size:8px;
  margin-top:5px
}
.server-status-card i {
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  margin-right:7px
}
.server-status-card i.online {
  background:#55df6b;
  box-shadow:0 0 12px rgba(85,223,107,.45)
}
.server-status-card i.offline {
  background:#ff6476
}
.server-status.loading {
  padding:25px;
  text-align:center;
  color:#67809e;
  font-size:9px;
  border:1px dashed #1b3858;
  border-radius:6px
}
.news-row {
  padding:14px;
  background:#061225;
  border:1px solid #183657;
  border-radius:6px
}
.news-row small {
  color:var(--cyan);
  font-size:8px
}
.news-row h3 {
  font:700 15px Sora;
  margin:7px 0
}
.news-row p {
  color:#8ca1bd;
  font-size:10px;
  line-height:1.6;
  margin:0;
  white-space:pre-wrap
}
.account-message {
  min-height:0;
  margin-bottom:0;
  font-size:9px
}
.account-message.success,.account-message.error {
  padding:10px 12px;
  border:1px solid #285d36;
  border-radius:6px;
  background:#081a11;
  color:#6be17a;
  margin-bottom:12px
}
.account-message.error {
  border-color:#6a3040;
  background:#1b0b12;
  color:#ff7889
}
@media(max-width:900px) {
  .account-layout {
    grid-template-columns:1fr
  }
  .account-sidebar {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .account-sidebar-title {
    grid-column:1/-1
  }
  .connection-grid {
    grid-template-columns:1fr 1fr
  }
  .account-stat-grid {
    grid-template-columns:1fr 1fr
  }
  .server-status-grid {
    grid-template-columns:1fr 1fr
  }}
@media(max-width:560px) {
  .account-page {
    padding-top:35px
  }
  .account-sidebar {
    display:block
  }
  .account-sidebar a {
    display:inline-block;
    width:49%
  }
  .account-profile-head {
    align-items:flex-start;
    flex-wrap:wrap
  }
  .account-edit {
    margin-left:0;
    width:100%
  }
  .connection-grid,.account-stat-grid,.server-status-grid,.report-form {
    grid-template-columns:1fr
  }
  .report-form label:nth-child(3) {
    grid-column:auto
  }
  .report-form .btn {
    width:100%
  }
  .account-panel {
    padding:16px
  }}
.admin-report-row {
  display:grid;
  grid-template-columns:1fr 330px;
  gap:15px;
  padding:14px;
  background:#061225;
  border:1px solid #183657;
  border-radius:7px;
  margin-bottom:7px
}
.admin-report-row b {
  font-size:10px
}
.admin-report-row small {
  display:block;
  color:#68809d;
  font-size:8px;
  margin-top:4px
}
.admin-report-row p {
  color:#8ca1bd;
  font-size:9px;
  line-height:1.5;
  margin:9px 0 0;
  white-space:pre-wrap
}
.admin-report-controls {
  display:grid;
  grid-template-columns:1fr 80px;
  gap:6px;
  align-content:start
}
.admin-report-controls select,.admin-report-controls input {
  width:100%;
  background:#071326;
  border:1px solid #204366;
  border-radius:5px;
  color:#dce9f4;
  padding:8px;
  font-size:9px
}
.admin-report-controls input[data-note] {
  grid-column:1/-1
}
.admin-report-controls button {
  grid-column:1/-1
}
.admin-report-controls option {
  background:#071326
}
@media(max-width:800px) {
  .admin-report-row {
    grid-template-columns:1fr
  }
  .admin-report-controls {
    grid-template-columns:1fr 90px
  }}
/* ===== ACCOUNT DROPDOWN — UPDATED ===== */

.auth-dropdown-head {
  display:flex;
  align-items:center;
  gap:11px;
  
  
  
}
.auth-dropdown-avatar {
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:7px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,#123050,#17142e);
  border:1px solid #2b587f;
  color:var(--cyan);
  font:800 16px Sora,sans-serif;
}
.auth-dropdown-avatar img {
  width:100%;
  height:100%;
  object-fit:cover
}
.auth-dropdown-user {
  min-width:0
}
.auth-dropdown-user small {
  display:block;
  color:#68829f;
  font-size:7px;
  letter-spacing:1.2px;
  font-weight:900;
}
.auth-dropdown-user strong {
  display:block;
  color:#fff;
  font-size:11px;
  margin:3px 0 3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.auth-dropdown-user .auth-role {
  display:inline-block;
  color:var(--cyan);
  font-size:7px;
  font-weight:900;
  letter-spacing:.7px;
}
.auth-dropdown-section {
  padding:5px 0;
  border-bottom:1px solid rgba(23,53,83,.65);
}
.auth-dropdown-section:last-of-type {
  border-bottom:0
}
.auth-menu-link {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:9px 9px;
  color:#9aadc3;
  border-radius:6px;
  transition:.16s;
}
.auth-menu-link:hover {
  
  
  transform:translateX(2px);
}

.auth-menu-icon {
  width:25px;
  height:25px;
  min-width:25px;
  display:grid;
  place-items:center;
  
  
  
  
  font-size:11px;
  font-weight:900;
}



.auth-admin-section {
  
  
  
  margin:5px 0;
  padding:5px;
}
.auth-dropdown-label {
  color:#a967ff;
  font-size:7px;
  font-weight:900;
  letter-spacing:1.3px;
  padding:5px 6px 3px;
}
.auth-admin-section .auth-menu-link {
  padding:8px 5px
}

.auth-dropdown-footer {
  padding:5px 2px 1px;
}
.auth-dropdown-footer .logout {
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  padding:9px 9px;
  border:1px solid transparent;
  background:transparent;
  
  font-size:8px;
  font-weight:900;
  letter-spacing:.6px;
}

.auth-dropdown-footer .logout span {
  font-size:13px
}
@media(max-width:560px) {
  .auth-dropdown {
    position:fixed;
    right:10px;
    top:65px;
    width:min(285px,calc(100vw - 20px))
  }}
.connection-action {
  background:transparent;
  font:inherit;
  cursor:pointer
}
.connection-action:disabled {
  opacity:.5;
  cursor:not-allowed
}
/* Account connections — real service logos, no screenshot/image UI */
.connection-card {
  min-height:104px
}
.connection-icon {
  
  border-color:#20476c
}
.connection-icon img {
  width:64px;
  height:64px;
  object-fit:contain;
  border-radius:10px
}


.connection-security-note {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:18px;
  
  }
.connection-security-note span:first-child {
  
  font-size:16px
}
@media(max-width:1050px) {
  .connection-icon img {
    width:50px;
    height:50px
  }
  
  }
/* Real brand logos in connection cards */
.connection-icon.website,
.connection-icon.discord,
.connection-icon.minecraft {
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.connection-icon.website img {
  width:76px;
  height:76px;
  object-fit:contain;
  border-radius:8px;
}
.connection-icon.discord img {
  width:64px;
  height:64px;
  object-fit:contain;
  border-radius:10px;
}
.connection-icon.minecraft img {
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:8px;
}
@media(max-width:1050px) {
  .connection-icon.website img {
    width:58px;
    height:58px
  }
  .connection-icon.discord img {
    width:50px;
    height:50px
  }
  .connection-icon.minecraft img {
    width:56px;
    height:56px
  }}
/* Account deletion / danger zone */
.profile-danger-zone {
  margin-top:14px;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:1px solid rgba(255,73,91,.28);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(65,12,23,.20),rgba(15,12,22,.10));
}
.profile-danger-zone h3 {
  margin:5px 0 6px;
  color:#f2f5fa;
  font-size:15px
}
.profile-danger-zone p {
  margin:0;
  max-width:720px;
  color:#8b9bb0;
  font-size:9px;
  line-height:1.7
}
.danger-kicker {
  color:#ff6374;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.1px
}
.danger-btn {
  border:1px solid rgba(255,73,91,.5);
  background:rgba(130,17,34,.18);
  color:#ff7180;
  border-radius:5px;
  padding:10px 13px;
  font:900 8px Sora,sans-serif;
  letter-spacing:.7px;
  cursor:pointer;
  white-space:nowrap;
}
.danger-btn:hover {
  background:rgba(155,20,40,.28);
  border-color:#ff6374
}
.danger-btn:disabled {
  opacity:.5;
  cursor:not-allowed
}
.delete-modal[hidden] {
  display:none
}
.delete-modal {
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:20px
}
.delete-modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(1,7,16,.78);
  backdrop-filter:blur(5px)
}
.delete-modal-card {
  position:relative;
  width:min(470px,100%);
  padding:24px;
  border:1px solid #4b2430;
  border-radius:10px;
  background:#071222;
  box-shadow:0 30px 100px rgba(0,0,0,.65)
}
.delete-modal-card h2 {
  margin:6px 0 8px;
  color:#fff;
  font-size:22px
}
.delete-modal-card>p {
  margin:0 0 16px;
  color:#8da0b6;
  font-size:10px;
  line-height:1.7
}
.delete-modal-close {
  position:absolute;
  top:10px;
  right:12px;
  border:0;
  background:transparent;
  color:#8192a7;
  font-size:22px;
  cursor:pointer
}
.delete-modal-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:16px
}
.delete-modal .profile-message {
  min-height:0;
  margin:0 0 10px
}
@media(max-width:650px) {
  .profile-danger-zone {
    flex-direction:column;
    align-items:flex-start
  }
  .delete-modal-actions {
    flex-direction:column-reverse
  }
  .delete-modal-actions button {
    width:100%
  }}

/* ============================================================
   SHARDLINE — THEME LAYER
   Konsolidierte Design-Schicht. Ersetzt die früheren, mehrfach
   übereinandergelegten Override-Blöcke.

   Aufbau:
   01 Tokens · 02 Basis & Typografie · 03 Layout-Rhythmus
   04 Header · 05 Buttons & Formulare · 06 Hero
   07 Sektionen & Cards · 08 Spielmodi · 09 Server & Tabellen
   10 Shop · 11 Community · 12 Team · 13 Support · 14 Footer
   15 Auth · 16 Account · 17 Profil · 18 Admin
   19 Modals & Overlays · 20 Rechtliches · 21 A11y · 22 Responsive
   ============================================================ */

/* ---------- 01 TOKENS ---------- */
:root{
  /* Flächen */
  --sl-bg:#0a1017;
  --sl-bg-2:#0d141d;
  --sl-surface:#121b27;
  --sl-surface-2:#16202e;
  --sl-surface-3:#1c2735;
  --sl-line:#223040;
  --sl-line-strong:#31435a;

  /* Text */
  --sl-text:#eef3f8;
  --sl-text-2:#a6b4c4;
  --sl-text-3:#7a8a9c;

  /* Akzent — ruhig, kein Neon */
  --sl-accent:#4fb0d6;
  --sl-accent-soft:#6cc4e8;
  --sl-accent-wash:rgba(79,176,214,.10);
  --sl-accent-line:rgba(79,176,214,.30);

  --sl-success:#57c08e;
  --sl-warn:#d8a445;
  --sl-danger:#df6c7d;

  /* Radien */
  --sl-r-xs:6px;
  --sl-r-sm:8px;
  --sl-r:12px;
  --sl-r-lg:16px;

  /* Schatten */
  --sl-shadow-1:0 1px 2px rgba(0,0,0,.28);
  --sl-shadow-2:0 10px 28px rgba(0,0,0,.32);
  --sl-shadow-3:0 24px 60px rgba(0,0,0,.42);

  /* Rhythmus */
  --sl-gap:18px;
  --sl-section:96px;

  --sl-ease:cubic-bezier(.4,.14,.3,1);

  /* Aliase für Altbestand */
  --bg:var(--sl-bg);
  --bg2:var(--sl-bg-2);
  --panel:var(--sl-surface);
  --panel2:var(--sl-surface-2);
  --line:var(--sl-line);
  --text:var(--sl-text);
  --muted:var(--sl-text-2);
  --cyan:var(--sl-accent);
  --blue:var(--sl-accent);
  --purple:var(--sl-accent);
  --success:var(--sl-success);
  --danger:var(--sl-danger);
  --glow:none;

  /* Aliase aus früheren Redesign-Blöcken */
  --accent:var(--sl-accent);
  --accent-2:var(--sl-accent-soft);
  --border:var(--sl-line);
  --bg-soft:var(--sl-bg-2);
  --panel-2:var(--sl-surface-2);
  --line-soft:var(--sl-line);
  --shadow:none;
}

/* ---------- 02 BASIS & TYPOGRAFIE ---------- */
html{background:var(--sl-bg)}

body{
  background:var(--sl-bg);
  color:var(--sl-text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body:before{display:none}

h1,h2,h3,h4{
  font-family:Sora,Inter,system-ui,sans-serif;
  color:var(--sl-text);
  line-height:1.14;
  letter-spacing:-.02em;
  text-shadow:none;
  text-wrap:balance;
}
p{text-wrap:pretty}

/* Fließtext bleibt Inter/Normal — frühere Blöcke vererbten Sora/800 in Absätze */
p,li,span,small,label,td,input,textarea,select,button{font-family:Inter,system-ui,sans-serif}
.section-title p,.account-heading p,.admin-hero p,.hero p,.discord p,.card p,
.legal-intro,.footer p,.product p,.member p{
  font-family:Inter,system-ui,sans-serif;
  font-weight:400;
  letter-spacing:normal;
}

/* Footer immer am Seitenende, auch bei kurzen Seiten */
body{min-height:100vh;display:flex;flex-direction:column}
body>main,body>.legal-page,body>.account-page,body>.admin-page{flex:1 0 auto}
.footer,footer{margin-top:auto}

/* Ein einziger Label-Stil für alle Kleinstschriften der Seite */
.eyebrow,.section-title small,.admin-kicker,.account-kicker,.legal-kicker,
.auth-kicker,.sl-modal-kicker,.danger-kicker,.account-sidebar-title,
.auth-dropdown-label,.footer h4{
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sl-accent-soft);
}
.footer h4,.account-sidebar-title,.auth-dropdown-label{color:var(--sl-text-3)}

::selection{background:rgba(79,176,214,.28);color:#fff}

/* Dezente Scrollbar statt Systemgrau */
*{scrollbar-width:thin;scrollbar-color:#2a3a4d transparent}
::-webkit-scrollbar{width:10px;height:8px}
::-webkit-scrollbar-thumb{background:#22303f;border-radius:10px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#334760}
::-webkit-scrollbar-track{background:transparent}

/* ---------- 03 LAYOUT-RHYTHMUS ---------- */
.wrap{width:min(1200px,92vw)}
.section{padding:var(--sl-section) 0}
.page{padding:72px 0 var(--sl-section)}
.grid,.products,.team,.support,.rank-products,.game-mode-grid{gap:var(--sl-gap)}

/* ---------- 04 HEADER ---------- */
.header{
  height:76px;
  gap:28px;
  padding:0 max(24px,4vw);
  background:rgba(10,16,23,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--sl-line);
  box-shadow:none;
}
.header .logo,.logo{width:auto;height:auto}
.logo img{
  width:auto;
  height:46px;
  object-fit:contain;
  transition:opacity .18s var(--sl-ease);
}
.logo img{filter:none}
.logo:hover img{opacity:.82}

.nav{gap:2px}
.nav a{
  position:relative;
  font-family:Inter,system-ui,sans-serif;
  padding:9px 13px;
  border-radius:var(--sl-r-xs);
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  color:var(--sl-text-2);
  background:none;
  box-shadow:none;
  transition:color .18s var(--sl-ease),background .18s var(--sl-ease);
}
.nav a:hover{color:var(--sl-text);background:rgba(255,255,255,.045);box-shadow:none}
.nav a.active{color:var(--sl-text);background:rgba(255,255,255,.05);box-shadow:none}
.nav a.active:after{
  content:"";
  position:absolute;
  left:13px;right:13px;bottom:2px;
  height:2px;border-radius:2px;
  background:var(--sl-accent);
}
.menu{color:var(--sl-text-2);font-size:22px;border-radius:var(--sl-r-xs);padding:4px 8px}
.menu:hover{color:var(--sl-text);background:rgba(255,255,255,.05)}

/* Modi-Dropdown in der Navigation */
.nav-mode-menu{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  box-shadow:var(--sl-shadow-3);
  padding:6px;
}
.nav-mode-menu a{
  display:block;
  padding:9px 12px;
  border-radius:var(--sl-r-xs);
  font-size:12.5px;
  letter-spacing:.02em;
  color:var(--sl-text-2);
}
.nav-mode-menu a:hover{background:var(--sl-surface-2);color:var(--sl-text)}

/* ---------- 05 BUTTONS & FORMULARE ---------- */
.btn,.admin-btn,.admin-refresh,.tool-btn,.cookie-btn,.auth-submit,
.product button,.ip button,.connection-action,.profile-upload-btn,
.account-edit,.sl-modal-btn,.admin-icon-btn{
  font-family:Inter,system-ui,sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.01em;
  border-radius:var(--sl-r-sm);
  transition:background .18s var(--sl-ease),border-color .18s var(--sl-ease),
             transform .18s var(--sl-ease),color .18s var(--sl-ease);
}
.btn{
  padding:12px 20px;
  border:1px solid var(--sl-line-strong);
  background:var(--sl-surface-2);
  color:var(--sl-text);
  box-shadow:none;
}
.btn:hover{background:var(--sl-surface-3);border-color:#3d5470;transform:none}
.btn.primary{
  background:var(--sl-accent);
  border-color:var(--sl-accent);
  color:#06131b;
  font-weight:700;
  box-shadow:none;
}
.btn.primary:hover{background:var(--sl-accent-soft);border-color:var(--sl-accent-soft);transform:none;box-shadow:none}
.btn.secondary{background:transparent;border-color:var(--sl-line-strong);color:var(--sl-text)}
.btn.secondary:hover{background:var(--sl-surface-2)}

.admin-btn,.admin-refresh,.tool-btn,.account-edit,.connection-action,
.profile-upload-btn,.product button,.ip button,.admin-icon-btn{
  padding:10px 16px;
  border:1px solid var(--sl-line-strong);
  background:var(--sl-surface-2);
  color:var(--sl-text);
}
.admin-btn:hover,.admin-refresh:hover,.tool-btn:hover,.account-edit:hover,
.connection-action:hover,.profile-upload-btn:hover,.product button:hover,
.ip button:hover,.admin-icon-btn:hover{
  background:var(--sl-surface-3);
  border-color:#3d5470;
  color:var(--sl-text);
  transform:none;
}
.danger-btn,.reject{
  border:1px solid rgba(223,108,125,.34);
  background:rgba(223,108,125,.09);
  color:#f0a2ac;
  border-radius:var(--sl-r-sm);
  font-size:13px;
  font-weight:600;
}
.danger-btn:hover,.reject:hover{
  background:rgba(223,108,125,.16);
  border-color:rgba(223,108,125,.5);
  color:#ffc3cb;
}

input,select,textarea,
.auth-field input,.admin-field input,.admin-field select,.admin-field textarea,
.profile-field input,.profile-field textarea,.admin-search,.admin-filter,
.user-select,.report-form input,.report-form textarea,.report-form select{
  font-family:inherit;
  font-size:14px;
  color:var(--sl-text);
  background:var(--sl-bg-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  padding:11px 13px;
  transition:border-color .18s var(--sl-ease),background .18s var(--sl-ease);
}
input::placeholder,textarea::placeholder{color:var(--sl-text-3)}
input:hover,select:hover,textarea:hover{border-color:var(--sl-line-strong)}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--sl-accent);
  background:var(--sl-surface);
}
label,.auth-field label,.admin-field label,.profile-field label{
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--sl-text-3);
  text-transform:uppercase;
}

/* ---------- 06 HERO ---------- */
.hero{background:none}
.hero{
  min-height:0;
  padding:64px 0 40px;
  gap:56px;
  grid-template-columns:1.02fr .98fr;
}
.eyebrow{color:var(--sl-accent-soft)}
.eyebrow i{
  width:6px;height:6px;
  background:var(--sl-accent);
  box-shadow:none;
  margin-right:9px;
  vertical-align:middle;
}
.hero h1{
  font-size:clamp(48px,7vw,88px);
  line-height:.94;
  letter-spacing:-.035em;
  margin:16px 0 18px;
  text-shadow:none;
}
.hero h1 span{color:var(--sl-accent)}
.hero h1 b{font-weight:inherit;color:var(--sl-text-3)}
.hero p{
  font-size:16px;
  line-height:1.7;
  color:var(--sl-text-2);
  max-width:52ch;
}

.hero-art{height:auto}
.hero-art:before{display:none}
.hero-art img{
  width:min(390px,100%);
  max-height:390px;
  filter:none;
  animation:none;
}

.ip{
  margin-top:28px;
  max-width:440px;
  padding:10px 10px 10px 16px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  gap:14px;
}
.ip small{
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--sl-text-3);
  margin-bottom:1px;
}
.ip code{
  font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace;
  font-size:17px;
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--sl-text);
}
.ip button{padding:10px 16px;white-space:nowrap}
.ip button.copied{
  background:rgba(87,192,142,.12);
  border-color:rgba(87,192,142,.4);
  color:#8ddcb6;
}
.actions{margin-top:28px;gap:12px}

/* ---------- 07 SEKTIONEN & CARDS ---------- */
.section-title{
  border-left:0;
  padding-left:0;
  margin-bottom:36px;
  max-width:64ch;
}
.section-title h1,.section-title h2{
  font-size:clamp(30px,3.6vw,42px);
  letter-spacing:-.03em;
  margin:10px 0 10px;
}
.section-title p{font-size:15.5px;color:var(--sl-text-2);line-height:1.65}

.card{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  padding:28px;
  box-shadow:none;
  transition:border-color .2s var(--sl-ease),background .2s var(--sl-ease),transform .2s var(--sl-ease);
}
.card:hover{
  background:var(--sl-surface-2);
  border-color:var(--sl-line-strong);
  transform:translateY(-2px);
}
/* Icon als ruhiger Chip statt freistehendes Glyph */
.icon{
  display:inline-grid;
  place-items:center;
  width:46px;height:46px;
  border-radius:var(--sl-r-sm);
  background:var(--sl-accent-wash);
  border:1px solid var(--sl-accent-line);
  font-size:20px;
  line-height:1;
  color:var(--sl-accent-soft);
  text-shadow:none;
}
.card h3{font-size:19px;letter-spacing:-.01em;margin:18px 0 8px}
.card p{font-size:14.5px;line-height:1.65;color:var(--sl-text-2);margin:0}
.card a{
  display:inline-block;
  margin-top:16px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--sl-accent-soft);
  border-bottom:1px solid transparent;
  transition:border-color .18s var(--sl-ease);
}
.card a:hover{border-bottom-color:var(--sl-accent-line)}

/* ---------- 08 SPIELMODI ---------- */
.mode{min-height:0}
.game-mode-grid .mode{min-height:0;padding:30px}
.mode .icon{width:50px;height:50px;font-size:22px}
.mode-challenges .icon,.mode-dungeons .icon,.mode-skypvp .icon,.mode-city .icon{
  color:var(--sl-accent-soft);
}

/* ---------- 09 SERVER, STATS & TABELLEN ---------- */
.stat,.admin-stat-card,.role-stat,.health-item,.server-status-card{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  padding:20px 22px;
  box-shadow:none;
}
.stat{display:flex;flex-direction:column;justify-content:center;gap:2px}
.stat strong{font-size:28px;letter-spacing:-.02em;line-height:1.2}
.stat span{font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--sl-text-3)}
.hero-stats,.stats-grid{gap:var(--sl-gap)}
.status-dot,.health-dot{box-shadow:none;background:var(--sl-success)}
.status-dot.offline,.status-dot.bad,.health-dot.bad{background:var(--sl-danger)}
.online,.ok{color:var(--sl-success)}
.offline,.bad{color:var(--sl-danger)}

/* ---------- 10 SHOP ---------- */
.product{
  min-height:0;
  padding:32px 26px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  box-shadow:none;
  transition:border-color .2s var(--sl-ease),background .2s var(--sl-ease),transform .2s var(--sl-ease);
}
.product:hover,.rank-products .product:hover{
  background:var(--sl-surface-2);
  border-color:var(--sl-line-strong);
  transform:translateY(-2px);
  box-shadow:none;
}
.product.featured{
  border-color:var(--sl-accent-line);
  background:linear-gradient(180deg,rgba(79,176,214,.05),transparent 60%),var(--sl-surface);
  box-shadow:none;
}
.product>span:first-child{
  display:block;
  margin-bottom:4px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sl-accent-soft);
}
.product .big,.rank-products .product .big,
.rank-rifter .big,.rank-cardinal .big,.rank-immortal .big,
.rank-integrity .big,.rank-underworld .big,.rank-shadows .big{
  font-size:40px;
  margin:16px 0;
  color:var(--sl-accent-soft);
}
.product h3{font-size:21px;margin:0}
.product strong{font-size:24px;margin:16px 0 20px;letter-spacing:-.02em}
.rank-products .product strong{font-size:24px}
.product button{width:100%;justify-content:center}

/* ---------- 11 COMMUNITY ---------- */
.community{gap:var(--sl-gap)}
.discord{
  padding:40px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}
.discord h3{font-size:32px;letter-spacing:-.03em;margin:14px 0 12px}
.discord em{color:var(--sl-accent-soft)}
.discord p{font-size:15.5px;line-height:1.65;color:var(--sl-text-2)}

.news-row,.panel,.box,.legal-card{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}

/* ---------- 12 TEAM ---------- */
.member{
  padding:28px 22px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  transition:border-color .2s var(--sl-ease),background .2s var(--sl-ease);
}
.member:hover{background:var(--sl-surface-2);border-color:var(--sl-line-strong)}
.avatar,.account-user-avatar,.profile-avatar,.mini-avatar,
.auth-dropdown-avatar,.profile-preview .profile-initial{
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-accent-soft);
  border-radius:var(--sl-r);
  box-shadow:none;
}
.avatar{width:72px;height:72px;font-size:26px}
.member h3{font-size:17px;margin:16px 0 4px}
.member span{
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  color:var(--sl-text-3);
}

/* ---------- 13 SUPPORT ---------- */
.support .card{min-height:0}
.support .num{
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--sl-accent-soft);
}

/* ---------- 14 FOOTER ---------- */
.footer{
  margin-top:0;
  background:var(--sl-bg-2);
  border-top:1px solid var(--sl-line);
}
.footer-inner{
  width:min(1200px,92vw);
  padding:56px 0 40px;
  grid-template-columns:1.7fr repeat(4,minmax(0,1fr));
  gap:40px 28px;
  align-items:start;
}
.footer-logo img{width:auto;height:52px;margin-bottom:14px}
.footer-logo p{
  font-size:12px;
  font-weight:600;
  letter-spacing:.1em;
  color:var(--sl-text-3);
  max-width:26ch;
  line-height:1.7;
}
.footer h4{margin:0 0 14px;color:var(--sl-text)}
.footer a{
  display:block;
  margin:0 0 10px;
  font-size:14px;
  color:var(--sl-text-2);
  transition:color .18s var(--sl-ease);
}
.footer a:hover{color:var(--sl-text)}
.footer p{font-size:14px;color:var(--sl-text-2)}
.bottom{
  border-top:1px solid var(--sl-line);
  padding:20px 0;
  font-size:12.5px;
  color:var(--sl-text-3);
  letter-spacing:.02em;
}

/* ---------- 15 AUTH ---------- */
.auth-login-btn{
  padding:9px 18px;
  border:1px solid var(--sl-accent);
  background:transparent;
  color:var(--sl-accent-soft);
  border-radius:var(--sl-r-sm);
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.02em;
  box-shadow:none;
}
.auth-login-btn:hover{
  background:var(--sl-accent);
  border-color:var(--sl-accent);
  color:#06131b;
  transform:none;
  box-shadow:none;
}
.auth-user{
  gap:9px;
  padding:5px 11px 5px 5px;
  font-size:13px;
  font-weight:600;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  box-shadow:none;
}
.auth-user:hover{background:var(--sl-surface-2);border-color:var(--sl-line-strong)}
.auth-avatar{
  width:28px;height:28px;
  border-radius:var(--sl-r-xs);
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-accent-soft);
  font-size:12px;
  box-shadow:none;
}
.auth-user .chevron{color:var(--sl-text-3);font-size:10px}

.auth-dropdown{
  width:250px;
  padding:7px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  box-shadow:var(--sl-shadow-3);
  backdrop-filter:none;
}
.auth-dropdown-head{
  padding:11px 12px;
  border-bottom:1px solid var(--sl-line);
  margin-bottom:6px;
}
.auth-dropdown-head small{font-size:11px;letter-spacing:.1em;color:var(--sl-text-3)}
.auth-dropdown-head strong{font-size:14px;color:var(--sl-text);margin-top:3px}
.auth-role{color:var(--sl-accent-soft);font-size:11.5px;font-weight:600}
.auth-dropdown .auth-menu-link,.auth-dropdown-footer .logout{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  text-align:left;
  border:1px solid transparent;
  background:transparent;
  border-radius:var(--sl-r-xs);
  padding:9px 10px;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:0;
  color:var(--sl-text-2);
  transform:none;
}
.auth-menu-link b{
  display:block;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.02em;
  color:inherit;
}
.auth-menu-link small{display:block;margin-top:1px}
.auth-menu-link:hover{background:var(--sl-surface-2);color:var(--sl-text)}
.auth-menu-link.featured{background:var(--sl-accent-wash);color:var(--sl-text)}
.auth-menu-link small{font-size:11.5px;color:var(--sl-text-3)}
.auth-menu-link:hover small{color:var(--sl-text-2)}
.auth-menu-icon{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  color:var(--sl-accent-soft);
  border-radius:var(--sl-r-xs);
}
.auth-admin-section{
  background:var(--sl-bg-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.auth-admin-section .auth-menu-icon{color:var(--sl-accent-soft);border-color:var(--sl-line-strong)}
.auth-dropdown-footer{border-top:1px solid var(--sl-line);margin-top:6px;padding-top:6px}
.auth-dropdown-footer .logout{color:#eda2ac}
.auth-dropdown-footer .logout:hover{
  background:rgba(223,108,125,.10);
  border-color:transparent;
  color:#ffc3cb;
}

/* Login-/Register-Modal */
.auth-overlay{background:rgba(6,10,15,.72);backdrop-filter:blur(3px)}
.auth-modal{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-lg);
  box-shadow:var(--sl-shadow-3);
  padding:32px;
}
.auth-modal h2{font-size:26px;letter-spacing:-.025em}
.auth-note,.auth-switch{font-size:13.5px;color:var(--sl-text-2)}
.auth-switch button{color:var(--sl-accent-soft);font-weight:600}
.auth-submit{
  width:100%;
  padding:13px;
  background:var(--sl-accent);
  border:1px solid var(--sl-accent);
  color:#06131b;
  font-weight:700;
}
.auth-submit:hover{background:var(--sl-accent-soft)}
.auth-error{
  background:rgba(223,108,125,.09);
  border:1px solid rgba(223,108,125,.3);
  color:#f0a2ac;
  border-radius:var(--sl-r-sm);
  font-size:13.5px;
  padding:9px 12px;
}
/* Ohne Meldung kein leerer roter Balken unter dem Knopf. Die alte Regel
   setzte min-height:18px, wodurch der Kasten immer sichtbar war und aussah,
   als sei etwas schiefgegangen. */
.auth-error:empty{
  min-height:0;
  padding:0;
  border:0;
  background:none;
  margin:0;
}
.admin-success{
  background:rgba(87,192,142,.09);
  border:1px solid rgba(87,192,142,.3);
  color:#8ddcb6;
  border-radius:var(--sl-r-sm);
  font-size:13.5px;
}
.auth-close{color:var(--sl-text-3);font-size:20px}
.auth-close:hover{color:var(--sl-text)}

/* ---------- 16 ACCOUNT ---------- */
.account-page{padding:56px 0 var(--sl-section)}
.account-heading{
  border-left:0;
  padding-left:0;
  margin-bottom:32px;
}
.account-heading h1{font-size:clamp(30px,3.6vw,40px);letter-spacing:-.03em;margin:8px 0 8px}
.account-heading p{font-size:15.5px;color:var(--sl-text-2)}
.account-layout{gap:var(--sl-gap)}
.account-panel,.profile-card,
.admin-panel-card,.admin-account-card,.connection-card,.account-manage,.admin-links-card,.profile-shell{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  box-shadow:none;
}
.account-panel-head,.profile-card-head,.admin-panel-head{
  border-bottom:1px solid var(--sl-line);
  padding-bottom:16px;
  margin-bottom:20px;
}
.account-panel-head h2,.admin-panel-head h2{
  font-size:19px;
  letter-spacing:-.015em;
  margin:0;
}
.account-panel-head p,.admin-panel-head p,
.profile-card-head p,.account-profile-head p{
  font-size:14px;
  line-height:1.6;
  color:var(--sl-text-2);
  margin:6px 0 0;
}
.account-panel-head>div>span,.admin-panel-head>div>span,
.account-profile-head .account-kicker{
  display:block;
  margin-bottom:6px;
}

/* Kennzahlen-Kacheln im Dashboard */
.account-stat-grid>div{
  padding:18px 20px;
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.account-stat-grid>div span{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--sl-text-3);
}
.account-stat-grid>div strong{
  display:block;
  margin:8px 0 2px;
  font-family:Sora,Inter,sans-serif;
  font-size:28px;
  letter-spacing:-.02em;
  color:var(--sl-text);
}
.account-stat-grid>div small{font-size:13px;color:var(--sl-text-3)}

.account-subhead,.admin-empty,.account-empty,.profile-hint,.team-loading,.loading{
  font-size:14px;
  color:var(--sl-text-3);
}
.account-sidebar{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  padding:18px;
}
.account-sidebar a,.admin-nav-link,.admin-links a{
  display:block;
  padding:10px 12px;
  border-radius:var(--sl-r-xs);
  font-size:14px;
  color:var(--sl-text-2);
  transition:background .18s var(--sl-ease),color .18s var(--sl-ease);
}
.account-sidebar a:hover,.admin-nav-link:hover,.admin-links a:hover{
  background:var(--sl-surface-2);
  color:var(--sl-text);
}
.account-sidebar a.active{background:var(--sl-accent-wash);color:var(--sl-text)}
.account-admin-link{color:var(--sl-accent-soft)}
.account-stat-grid{gap:var(--sl-gap)}
.account-status,.role-badge,.report-status,.connection-state,.reward-pill,
.permission-role,.maintenance-status,.self-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 11px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-text-2);
}
.account-status.on,.connection-state.on,.report-status.confirmed,.role-badge.admin{
  background:rgba(87,192,142,.10);
  border-color:rgba(87,192,142,.3);
  color:#8ddcb6;
}
.report-status.pending,.account-status.pending{
  background:rgba(216,164,69,.10);
  border-color:rgba(216,164,69,.3);
  color:#e8c583;
}
.report-status.rejected,.account-status.locked,.locked{
  background:rgba(223,108,125,.10);
  border-color:rgba(223,108,125,.3);
  color:#f0a2ac;
}
.connection-icon{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  box-shadow:none;
}
.connection-security-note{font-size:13px;color:var(--sl-text-3)}
.connection-security-note span:first-child{color:var(--sl-accent-soft)}
.connection-grid,.admin-control-grid,.admin-dashboard-grid,.health-grid,.role-stats,.profile-grid{
  gap:var(--sl-gap);
}
.profile-danger-zone,.admin-account-card.danger{
  background:rgba(223,108,125,.05);
  border:1px solid rgba(223,108,125,.24);
  border-radius:var(--sl-r);
}
.profile-divider{border-color:var(--sl-line);background:var(--sl-line)}
.account-message,.profile-message,.admin-error{
  border-radius:var(--sl-r-sm);
  font-size:13.5px;
}
.account-message.error,.profile-message.error,.admin-error{
  background:rgba(223,108,125,.09);
  border:1px solid rgba(223,108,125,.3);
  color:#f0a2ac;
}
.account-message.success,.profile-message.success{
  
  border:1px solid rgba(87,192,142,.3);
  color:#8ddcb6;
}

/* Meldungen schweben statt oben zu kleben.
   Der Meldungskasten sitzt im Markup ganz oben auf der Kontoseite, das
   Reportformular liegt rund 2000 Pixel weiter unten. Erfolgs- und
   Fehlermeldung erschienen dadurch weit ausserhalb des Sichtfelds — das
   Absenden sah aus, als passiere gar nichts. */
.account-message.success,.account-message.error,
.profile-message.success,.profile-message.error{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:120;
  width:max-content;
  max-width:min(92vw,480px);
  margin:0;
  padding:12px 16px;
  text-align:center;
  box-shadow:0 12px 32px rgba(0,0,0,.5);
}
/* Undurchsichtig, weil der Kasten jetzt ueber dem Seiteninhalt liegt. */
.account-message.error,.profile-message.error{background:#23111a}
.account-message.success,.profile-message.success{background:#0d2018}

/* ---------- 17 PROFIL ---------- */
.profile-preview h3{font-size:19px;letter-spacing:-.015em}
.profile-initial{color:var(--sl-accent-soft)}

/* ---------- 18 ADMIN ---------- */
.admin-page{padding:40px 0 var(--sl-section)}
.admin-guard .admin-hero{display:block}
.admin-hero{
  padding:30px 32px;
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-lg);
  background:var(--sl-surface);
  box-shadow:none;
  margin:0 0 28px;
}
.admin-hero h1{font-size:clamp(28px,3.4vw,38px);letter-spacing:-.03em;margin:8px 0 10px}
.admin-hero h1 em{font-style:normal;color:var(--sl-accent-soft)}
.admin-hero p{font-size:15px;color:var(--sl-text-2)}
.admin-kicker,.admin-panel-head>div>span{color:var(--sl-accent-soft)}
.admin-stat-grid,.admin-stat-card{gap:var(--sl-gap)}
.admin-stat-card span{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--sl-text-3)}
.admin-stat-card strong{font-size:30px;letter-spacing:-.02em;margin:8px 0 2px}
.admin-stat-card small{font-size:13px;color:var(--sl-text-3)}
.admin-stat-accent{
  border-color:var(--sl-accent-line);
  background:linear-gradient(180deg,rgba(79,176,214,.05),transparent 60%),var(--sl-surface);
}
.admin-user-row,.admin-report-row,.report-row,.reward-row,.health-item{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  font-size:14px;
}
.admin-user-row:hover,.admin-report-row:hover{
  border-color:var(--sl-line-strong);
  background:var(--sl-surface-3);
}
.admin-user-summary,.admin-summary-sep{color:var(--sl-text-3);font-size:13px}
.admin-bulk-bar{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.admin-toggle-card,.toggle-ui,.cookie-row{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.cookie-toggle.on{background:var(--sl-accent);border-color:var(--sl-accent)}
.admin-panel-icon{
  background:var(--sl-accent-wash);
  border:1px solid var(--sl-accent-line);
  color:var(--sl-accent-soft);
  border-radius:var(--sl-r-sm);
}
.permission-matrix,.permission-list{font-size:14px}
.maintenance-admin-note{font-size:13.5px;color:var(--sl-text-3)}

/* ---------- 19 MODALS, TOASTS & COOKIES ---------- */
.sl-modal-backdrop,.delete-modal-backdrop{background:rgba(6,10,15,.72);backdrop-filter:blur(3px)}
.sl-modal,.delete-modal-card,.cookie-banner,.cookie-panel,.cookie-modal{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-lg);
  box-shadow:var(--sl-shadow-3);
}
.sl-modal h3,.delete-modal-card h3,.cookie-banner h3{
  font-size:20px;
  letter-spacing:-.02em;
  margin:0 0 10px;
}
.sl-modal-content,.cookie-banner p,.delete-modal-card p{
  font-size:14.5px;
  line-height:1.65;
  color:var(--sl-text-2);
}
.sl-modal-icon{color:var(--sl-accent-soft)}
.sl-modal-btn,.cookie-btn{padding:11px 18px;border-radius:var(--sl-r-sm);font-size:13px}
.cookie-btn.primary,.sl-modal-btn.primary{
  background:var(--sl-accent);
  border:1px solid var(--sl-accent);
  color:#06131b;
  font-weight:700;
}
.cookie-btn.primary:hover,.sl-modal-btn.primary:hover{background:var(--sl-accent-soft)}
.cookie-btn.secondary,.cookie-btn.subtle,.sl-modal-btn.secondary{
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-text);
}
.cookie-btn.secondary:hover,.cookie-btn.subtle:hover,.sl-modal-btn.secondary:hover{
  background:var(--sl-surface-3);
}
.cookie-settings{
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  color:var(--sl-text-2);
  box-shadow:var(--sl-shadow-2);
}
.cookie-settings:hover{border-color:var(--sl-line-strong);color:var(--sl-text)}
.toast{
  background:var(--sl-surface);
  border:1px solid var(--sl-line-strong);
  border-radius:var(--sl-r-sm);
  box-shadow:var(--sl-shadow-2);
  font-size:14px;
  color:var(--sl-text);
}
.toast.success{border-color:rgba(87,192,142,.4)}
.toast.error{border-color:rgba(223,108,125,.4)}

/* ---------- 20 RECHTLICHES ---------- */
.legal-page{padding:72px 20px var(--sl-section)}
.legal-wrap h1{font-size:clamp(32px,4.4vw,50px);letter-spacing:-.03em}
.legal-kicker{color:var(--sl-accent-soft)}
.legal-intro{font-size:16px;line-height:1.7;color:var(--sl-text-2)}
.legal-card{padding:26px;margin-bottom:var(--sl-gap)}
.legal-card h2,.legal-card h3{font-size:19px;letter-spacing:-.015em}
.legal-card p,.legal-card li{font-size:14.5px;line-height:1.7;color:var(--sl-text-2)}

/* ---------- 21 BEDIENBARKEIT ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--sl-accent);
  outline-offset:2px;
  border-radius:var(--sl-r-xs);
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }}

/* ---------- 22 RESPONSIVE ---------- */
@media(max-width:1080px){
  .footer-inner{grid-template-columns:1.5fr repeat(2,minmax(0,1fr));gap:36px 28px}}
@media(max-width:900px){
  :root{--sl-section:72px}
  .hero{grid-template-columns:1fr;padding:48px 0 56px;gap:32px}
  .hero-art{order:-1;height:auto}
  .hero-art img{width:min(300px,70%);max-height:300px}
  .nav.open{
    background:var(--sl-surface);
    border-bottom:1px solid var(--sl-line);
    top:76px;
    padding:10px;
    gap:2px;
  }
  .nav.open a{padding:12px 14px}
  .footer-inner{grid-template-columns:1fr 1fr;gap:32px 24px}}
@media(max-width:560px){
  :root{--sl-section:60px;--sl-gap:14px}
  .header{height:66px;padding:0 18px;gap:14px}
  .logo img{height:38px}
  .hero{min-height:0;padding:36px 0 48px}
  .hero h1{font-size:clamp(38px,12vw,52px)}
  .hero p{font-size:15px}
  .ip{max-width:none}
  .card,.product,.member,.discord{padding:22px}
  .admin-hero{padding:22px}
  .footer-inner{grid-template-columns:1fr;gap:28px}
  .footer-logo p{max-width:none}}

/* ============================================================
   23 ADMINPANEL — GRUPPEN, DIAGRAMME, SICHERHEIT, DETAILANSICHT
   Ergänzt Abschnitt 18. Die Diagrammfarben sind gegen die dunkle
   Paneelfläche geprüft: Kontrast und Farbfehlsichtigkeit.
   ============================================================ */

:root{
  --viz-1:#2f93bd;   /* Registrierungen, Fehlversuche */
  --viz-2:#c98500;   /* Reports */
}

/* Benutzerzeile in der Kontoliste.
   Sie war als Raster gedacht, wurde aber von einem späteren
   `display:flex` überschrieben — dadurch traf `>div:nth-child(2){flex:1}`
   das Avatar statt des Namens und zog es in die Breite. */

.admin-user-row.admin-account-card > *{flex:none}
.admin-user-row.admin-account-card .mini-avatar{width:32px;height:32px}
.admin-account-main{min-width:0}
@media(max-width:1000px){
  .admin-user-row.admin-account-card{grid-template-columns:18px 32px minmax(0,1fr) auto}
}
@media(max-width:650px){
  .admin-user-row.admin-account-card{grid-template-columns:18px 32px minmax(0,1fr)}
}

/* Kennzahlenreihe passt sich der Kartenzahl an (vier oder fünf). */
.admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}

/* Rangkacheln füllen die Breite, statt in zwei schmalen Spalten zu stehen. */
.role-stats{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));
  gap:10px;
}

/* ---------- Sprungleiste ---------- */
.admin-sectionnav{
  position:sticky;
  top:76px;
  z-index:15;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 28px;
  padding:8px;
  background:rgba(10,16,23,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}
.admin-sectionnav a{
  padding:8px 14px;
  border-radius:var(--sl-r-xs);
  font-size:13px;
  font-weight:600;
  color:var(--sl-text-2);
  transition:background .18s var(--sl-ease),color .18s var(--sl-ease);
}
.admin-sectionnav a:hover{background:var(--sl-surface-2);color:var(--sl-text)}
.admin-sectionnav a.active{background:var(--sl-accent-wash);color:var(--sl-accent-soft)}

/* ---------- Gruppen ---------- */
.admin-group{margin-bottom:44px;scroll-margin-top:150px}
.admin-group-head{
  display:flex;
  align-items:baseline;
  gap:14px;
  flex-wrap:wrap;
  padding-bottom:12px;
  margin-bottom:18px;
  border-bottom:1px solid var(--sl-line);
}
.admin-group-head h2{font-size:20px;letter-spacing:-.015em;margin:0}
.admin-group-head p{margin:0;font-size:14px;color:var(--sl-text-3)}

.admin-panel-grid{
  display:grid;
  /* auto-fit statt fester Spalten: ein allein stehendes Paneel füllt die Zeile,
     statt eine leere Hälfte danebenzulassen. */
  grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));
  gap:var(--sl-gap);
  align-items:start;
}
.admin-panel-grid .admin-wide{grid-column:1 / -1}
.admin-panel-grid > *{min-width:0}

/* Schnellaktionen als Raster statt als lange Spalte */
.admin-action-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:10px;
}
.admin-action-list .admin-btn{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  text-align:left;
}
.admin-action-list .admin-btn.danger{
  border-color:rgba(223,108,125,.3);
  color:#f0a2ac;
}
.admin-action-list .admin-btn.danger:hover{
  background:rgba(223,108,125,.1);
  border-color:rgba(223,108,125,.45);
}

/* Breite Inhalte scrollen im eigenen Kasten, nie die Seite */
.scroll-x{overflow-x:auto;max-width:100%}
.admin-panel-card,.admin-control-grid,.health-grid{min-width:0}
.admin-user-list{min-width:0;overflow-x:auto}

.link-like{
  background:none;
  border:0;
  padding:0;
  font:inherit;
  font-weight:600;
  color:var(--sl-text);
  text-align:left;
  cursor:pointer;
  border-bottom:1px solid transparent;
}
.link-like:hover{color:var(--sl-accent-soft);border-bottom-color:var(--sl-accent-line)}

/* ---------- Diagramme ---------- */
.chart-frame{min-height:60px}
.chart-pair{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--sl-gap);
}
.chart-cell{margin:0;min-width:0}
.chart-cell figcaption{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px 10px;
  margin-bottom:10px;
}
.chart-cell figcaption b{font-size:14px;font-weight:600;color:var(--sl-text)}
.chart-swatch{width:10px;height:10px;border-radius:2px;align-self:center;flex:none}
.chart-note{font-size:12.5px;color:var(--sl-text-3)}
.chart-plot{position:relative}
.chart-plot svg{display:block}
.chart-axis{
  font-family:Inter,system-ui,sans-serif;
  font-size:10px;
  fill:var(--sl-text-3);
}
.chart-hit:hover{fill:rgba(255,255,255,.035)}
.chart-tip{
  position:absolute;
  top:-4px;
  transform:translate(-50%,-100%);
  padding:6px 9px;
  border-radius:var(--sl-r-xs);
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  box-shadow:var(--sl-shadow-2);
  pointer-events:none;
  white-space:nowrap;
  z-index:5;
}
.chart-tip b{display:block;font-size:13px;color:var(--sl-text)}
.chart-tip span{font-size:11.5px;color:var(--sl-text-3)}

.chart-table{margin-top:16px}
.chart-table summary{cursor:pointer;font-size:12.5px;color:var(--sl-text-3);padding:6px 0}
.chart-table summary:hover{color:var(--sl-text-2)}
.chart-table table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.chart-table th,.chart-table td{
  text-align:left;
  padding:6px 12px 6px 0;
  border-bottom:1px solid var(--sl-line);
  font-variant-numeric:tabular-nums;
}
.chart-table th{
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sl-text-3);
  font-weight:600;
}
.chart-table td{color:var(--sl-text-2)}

/* ---------- Sicherheitsübersicht ---------- */
.security-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.security-stats > div{
  padding:14px 16px;
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.security-stats span{
  display:block;
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--sl-text-3);
}
.security-stats strong{
  display:block;
  margin-top:6px;
  font-family:Sora,Inter,sans-serif;
  font-size:24px;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.security-stats strong.is-warn{color:#e8c583}
.security-stats strong.is-alert{color:#f0a2ac}

.security-rule{font-size:13px;color:var(--sl-text-3);margin:0 0 18px}
.security-cols{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--sl-gap);
  margin-bottom:22px;
}
.security-title{
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--sl-text-3);
  margin:0 0 10px;
}
.security-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 13px;
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  margin-bottom:8px;
  font-size:14px;
}
.security-row.compact{padding:9px 12px}
.security-row > div{flex:1;min-width:0}
.security-row b{display:block;font-weight:600;color:var(--sl-text)}
.security-row small{display:block;font-size:12.5px;color:var(--sl-text-3);margin-top:1px}
.security-retry{
  font-size:12.5px;
  color:var(--sl-text-3);
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.security-count{
  font-family:Sora,Inter,sans-serif;
  font-size:17px;
  font-variant-numeric:tabular-nums;
  color:var(--sl-text-2);
}
.pill-state{
  flex:none;
  padding:3px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-text-2);
}
.pill-state.warn{
  background:rgba(216,164,69,.1);
  border-color:rgba(216,164,69,.32);
  color:#e8c583;
}

/* ---------- Detailansicht eines Accounts ---------- */
body.has-modal{overflow:hidden}

.user-detail-backdrop{
  position:fixed;
  inset:0;
  z-index:200;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(6,10,15,.72);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.user-detail-backdrop[hidden]{display:none}
.user-detail{
  width:min(680px,100%);
  max-height:min(86vh,900px);
  overflow-y:auto;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-lg);
  box-shadow:var(--sl-shadow-3);
}
.user-detail-head{
  position:sticky;
  top:0;
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:22px 24px 16px;
  background:var(--sl-surface);
  border-bottom:1px solid var(--sl-line);
}
.user-detail-head > div:nth-child(2){flex:1;min-width:0}
.user-detail-head h2{font-size:22px;letter-spacing:-.02em;margin:4px 0}
.user-detail-head p{margin:0;font-size:13.5px;color:var(--sl-text-3)}
.user-detail-head .mini-avatar{
  width:46px;
  height:46px;
  flex:none;
  display:grid;
  place-items:center;
  font-family:Sora,Inter,sans-serif;
  font-size:19px;
}
.user-detail-body{padding:20px 24px 26px}
.user-detail-body .security-title:not(:first-child){margin-top:22px}

.detail-facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:10px;
  margin-bottom:12px;
}
.detail-facts > div{
  padding:12px 14px;
  background:var(--sl-surface-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.detail-facts span{
  display:block;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--sl-text-3);
}
.detail-facts strong{
  display:block;
  margin-top:5px;
  font-size:15px;
  font-weight:600;
  color:var(--sl-text);
  overflow-wrap:anywhere;
}
.detail-ban{
  padding:14px 16px;
  margin-bottom:16px;
  background:rgba(223,108,125,.07);
  border:1px solid rgba(223,108,125,.28);
  border-radius:var(--sl-r-sm);
}
.detail-ban b{display:block;color:#f0a2ac;font-weight:600;margin-bottom:3px}
.detail-ban p{margin:0;font-size:13.5px;color:var(--sl-text-2)}

/* Sperrdialog: Eingabefelder im Modal */
.sl-modal .admin-field{display:block;margin:14px 0 0;text-align:left}
.sl-modal .admin-field span{
  display:block;
  margin-bottom:5px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sl-text-3);
}
.sl-modal .admin-field input,
.sl-modal .admin-field select{width:100%}

@media(max-width:900px){
  .admin-sectionnav{top:0;border-radius:0;margin-left:-4vw;margin-right:-4vw;border-left:0;border-right:0}
  .admin-panel-grid{grid-template-columns:1fr}
  .admin-group{scroll-margin-top:110px}
}
@media(max-width:560px){
  .admin-sectionnav{gap:2px;padding:6px}
  .admin-sectionnav a{padding:7px 10px;font-size:12px}
  .security-row{flex-wrap:wrap}
  .user-detail-head{padding:18px 18px 14px}
  .user-detail-body{padding:16px 18px 22px}
}
/* ============================================================
   24  BEDIENBARKEIT
   Nachträglich ergänzt: Sprunglink, sichtbare Fokusrahmen auf
   allen Bedienelementen, ausreichend große Berührflächen.
   ============================================================ */

/* Sprunglink — unsichtbar, bis er den Fokus bekommt. */
.skip-link{
  position:absolute;
  left:12px;
  top:-100px;
  z-index:200;
  padding:10px 16px;
  border-radius:var(--sl-r-sm);
  background:var(--sl-accent);
  color:#06131b;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{ top:12px }
/* Das Sprungziel selbst soll keinen Rahmen zeigen. */
main:focus{ outline:none }

/* Jedes Bedienelement bekommt bei Tastaturfokus einen sichtbaren Rahmen.
   Vorher fehlte er auf einigen Knöpfen ganz. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible{
  outline:2px solid var(--sl-accent);
  outline-offset:2px;
}

/* Fußzeilen- und Navigationslinks waren auf dem Handy nur 23 Pixel hoch —
   unter der empfohlenen Mindestgröße für Berührflächen. */
@media (max-width:900px){
  .footer-links a,
  .footer-nav a,
  .footer a{
    display:inline-block;
    padding-block:5px;
  }
}

/* ---------- 25  FAQ ---------- */
.faq-list{
  display:grid;
  gap:10px;
  max-width:860px;
}
.faq-item{
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  background:var(--sl-surface);
  overflow:hidden;
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:16px 52px 16px 18px;
  position:relative;
  font-weight:600;
  font-size:15.5px;
  color:var(--sl-text);
}
.faq-item summary::-webkit-details-marker{ display:none }
/* Pluszeichen, das sich beim Aufklappen dreht. */
.faq-item summary::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  translate:0 -50%;
  font-size:20px;
  line-height:1;
  color:var(--sl-accent);
  transition:rotate .18s ease;
}
.faq-item[open] summary::after{ rotate:45deg }
.faq-item summary:hover{ background:var(--sl-surface-2) }
.faq-item p{
  margin:0;
  padding:0 18px 18px;
  font-size:15px;
  line-height:1.7;
  color:var(--sl-text-2);
}
.faq-item p a{ color:var(--sl-accent) }
.faq-item[open]{ border-color:var(--sl-line-strong) }

@media (prefers-reduced-motion:reduce){
  .faq-item summary::after{ transition:none }
}

/* =========================================================
   ACCOUNTS — Benutzerliste

   Suche und Aktionen standen vorher in zwei Karten untereinander und
   zeigten dieselben Accounts doppelt. Es gibt jetzt eine Liste; die
   Aktionen klappen unter der jeweiligen Zeile auf.

   Dieser Block steht bewusst am Ende der Datei: die Zeile hat ueber die
   Jahre aus mehreren Abschnitten Regeln geerbt (u. a. bekam das
   Auswahlkaestchen die Rahmen eines Eingabefeldes). Hier wird ihr
   Aussehen an einer Stelle festgelegt.
   ========================================================= */

.admin-account-item{ display:grid; gap:6px }

/* ---------- Zeile ---------- */
.admin-user-row.admin-account-card{
  display:grid;
  grid-template-columns:22px 38px minmax(0,1fr) 88px 136px auto auto;
  align-items:center;
  gap:16px;
  padding:12px 16px;
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-md, 12px);
  background:var(--sl-surface-2);
  position:relative;
  overflow:hidden;
  transition:border-color .18s var(--sl-ease), background .18s var(--sl-ease);
}
/* Farbiger Streifen am linken Rand, erscheint beim Ueberfahren. */
.admin-user-row.admin-account-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:2px;
  background:var(--sl-accent);
  opacity:0;
  transition:opacity .18s var(--sl-ease);
}
.admin-user-row.admin-account-card:hover{
  border-color:var(--sl-line-strong);
  background:var(--sl-surface-3);
}
.admin-user-row.admin-account-card:hover::before{ opacity:1 }
/* Zeile mit offener Aktionsleiste bleibt sichtbar hervorgehoben. */
.admin-account-item:has(.admin-account-drawer:not([hidden])) .admin-account-card{
  border-color:var(--sl-accent);
  background:var(--sl-surface-3);
}
.admin-account-item:has(.admin-account-drawer:not([hidden])) .admin-account-card::before{ opacity:1 }

/* ---------- Auswahlkaestchen ---------- */
/* Zuruecksetzen: die allgemeine Formularregel gab dem Label Rahmen und
   Innenabstand eines Eingabefeldes — daher der angeschnittene Kasten. */
.admin-account-card .user-select{
  width:22px;
  height:22px;
  padding:0;
  margin:0;
  border:0;
  background:none;
  border-radius:0;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.admin-account-card .user-select input{ display:none }
.admin-account-card .user-select span{
  width:16px;
  height:16px;
  border:1.5px solid var(--sl-line-strong);
  border-radius:5px;
  background:var(--sl-bg-2);
  box-shadow:none;
  transition:border-color .15s var(--sl-ease), background .15s var(--sl-ease);
}
.admin-account-card .user-select:hover span{ border-color:var(--sl-accent) }
.admin-account-card .user-select input:checked+span{
  background:var(--sl-accent);
  border-color:var(--sl-accent);
  box-shadow:inset 0 0 0 3px var(--sl-surface-2);
}

/* ---------- Avatar ---------- */
.admin-account-card .mini-avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
  color:var(--sl-text-2);
  font:600 15px/1 Sora,Inter,system-ui,sans-serif;
  flex:none;
}

/* ---------- Name und Zusatzangaben ---------- */
.admin-account-card .admin-account-main{ min-width:0 }
.admin-account-card .link-like{
  font-size:15px;
  font-weight:600;
  color:var(--sl-text);
  letter-spacing:0;
  cursor:pointer;
}
.admin-account-card .link-like:hover{ color:var(--sl-accent) }
.admin-account-card .admin-account-main small{
  display:block;
  margin-top:3px;
  font-size:12.5px;
  color:var(--sl-text-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ---------- Status ---------- */
/* Ruhiger Punkt mit Text statt einer bunten Kapsel: der Status ist eine
   Nebeninformation, der Rang die wichtigere. */
.admin-account-card .account-status{
  /* Der gemeinsame Kapsel-Stil weiter oben gab dem Status einen Rahmen —
     hier bewusst zurueckgesetzt, sonst stehen zwei Kapseln nebeneinander. */
  justify-self:end;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0;
  background:none;
  border:0;
  border-radius:0;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
}
.admin-account-card .account-status i{ width:7px; height:7px; border-radius:50% }
.admin-account-card .account-status.active{ color:#63c6a0 }
.admin-account-card .account-status.active i{ background:#4bb98f }
.admin-account-card .account-status.locked{ color:#df8b98 }
.admin-account-card .account-status.locked i{ background:#d9697c }

/* ---------- Rang ---------- */
.admin-account-card .role-badge{
  justify-self:end;
  max-width:100%;
  padding:5px 12px;
  border:1px solid var(--sl-line-strong);
  border-radius:999px;
  background:var(--sl-bg-2);
  color:var(--sl-text-2);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-account-card .role-badge.admin{
  border-color:rgba(141,108,255,.42);
  background:rgba(141,108,255,.12);
  color:#bda6ff;
}

/* ---------- Knoepfe ---------- */
.admin-account-card .account-manage{
  padding:9px 15px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  white-space:nowrap;
}
.admin-account-card .admin-icon-btn{
  width:34px;
  height:34px;
  padding:0;
  font-size:11px;
  font-weight:700;
  color:var(--sl-text-3);
}
.admin-account-card .admin-icon-btn:hover{ color:var(--sl-text) }
.account-manage[aria-expanded="true"]{
  border-color:var(--sl-accent);
  background:var(--sl-surface-3);
  color:var(--sl-text);
}

/* ---------- Aufklappbare Aktionsleiste ---------- */
.admin-account-drawer{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  margin:0 0 2px 26px;
  padding:13px 16px;
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-accent);
  border-radius:var(--sl-r-md, 12px);
  background:var(--sl-bg-2);
}
/* Muss nach der display-Regel stehen, sonst bleibt die Zeile aufgeklappt. */
.admin-account-drawer[hidden]{ display:none }
.admin-account-drawer select{
  min-width:170px;
  margin:0;
  padding:9px 12px;
  font-size:12.5px;
  font-weight:600;
}
.admin-account-drawer .tool-btn,
.admin-account-drawer .danger-btn{
  padding:9px 14px;
  font-size:12px;
  font-weight:600;
}
/* Loeschen nach rechts absetzen, damit es nicht neben den harmlosen
   Aktionen steht und versehentlich getroffen wird. */
.admin-account-drawer .danger-btn{ margin-left:auto }
.admin-account-drawer .self-label{
  margin:0;
  font-size:12.5px;
  font-weight:500;
  color:var(--sl-text-3);
}

/* ---------- Schmale Fenster ---------- */
/* Ab hier keine festen Spalten mehr: Status und Rang ruecken an die
   Knoepfe heran, der Name wird bei Bedarf gekuerzt. Alles bleibt in einer
   Zeile — mit festen Spalten entstand hier eine grosse Luecke. */
@media (max-width:1080px){
  .admin-user-row.admin-account-card{
    /* Mindestbreite fuer den Namen, damit er bei einem langen
       Sperrhinweis nicht auf wenige Zeichen zusammenfaellt. */
    grid-template-columns:22px 38px minmax(150px,1fr) auto auto auto auto;
    gap:12px;
  }
  /* grid-column:auto hebt eine aeltere Regel weiter oben auf, die beide
     unter 1000px in Spalte 3 und damit auf eigene Zeilen schob. */
  .admin-account-card .account-status{ grid-column:auto; justify-self:end }
  .admin-account-card .role-badge{ grid-column:auto; justify-self:end }
  .admin-account-card .account-manage,
  .admin-account-card .admin-icon-btn{ grid-column:auto }
}
@media (max-width:760px){
  /* Auf schmalen Fenstern als umbrechende Reihe statt als Raster: Name oben,
     Status, Rang und Knoepfe gemeinsam in der zweiten Zeile. Als Raster
     bekam sonst jedes Element eine eigene Zeile und die Karte wurde
     unnoetig hoch. */
  .admin-user-row.admin-account-card{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 12px;
    padding:14px;
  }
  .admin-account-card .admin-account-main{ flex:1 1 calc(100% - 90px) }
  .admin-account-card .account-status{ justify-self:auto; order:3 }
  .admin-account-card .role-badge{ justify-self:auto; order:4; margin-right:auto }
  .admin-account-card .account-manage{ order:5 }
  .admin-account-card .admin-icon-btn{ order:6 }

  .admin-account-drawer{ margin-left:0 }
  .admin-account-drawer > *{ flex:1 1 100% }
  .admin-account-drawer .danger-btn{ margin-left:0 }

  /* Die Filter wurden auf "AL" zusammengequetscht. */
  .admin-search-extended .admin-filter,
  .admin-search-extended .admin-btn{ flex:1 1 100%; min-width:0 }
}

/* =========================================================
   BEDIENBARKEIT — Nachbesserungen aus dem Prüfbericht

   Dieser Block steht am Ende, damit er die vielen älteren
   Abschnitte der Datei sicher überschreibt. Alle Werte sind
   nach WCAG 2.1 nachgerechnet, nicht geschätzt.
   ========================================================= */

:root{
  /* A4 — Rahmen von Bedienelementen.
     Vorher #31435a: nur 1,63:1 auf --sl-surface-2. WCAG verlangt 3:1 für
     die Umrisse von Eingabefeldern, Auswahlkästchen und Knöpfen.
     #5d7595 erreicht 3,47:1 auf --sl-surface-2 und 3,19:1 im
     Überfahren-Zustand. */
  --sl-line-strong:#5d7595;

  /* A6 — Nebentext (Meta-Zeilen, Zusatzangaben).
     Vorher #7a8a9c: 4,27:1 auf --sl-surface-3, knapp unter den
     geforderten 4,5:1. #8593a4 kommt auf 4,82:1 und bleibt auf allen
     Flächen über der Grenze. */
  --sl-text-3:#8593a4;
}

/* ---------------------------------------------------------
   A3 — Fünf Stellen rendern mit 8 Pixeln.

   Im Browser gemessen, nicht aus dem Quelltext abgelesen: die meisten
   der über hundert Kleinstwerte in dieser Datei sind längst
   überschrieben, diese fünf aber nicht. Am unglücklichsten war das
   Label der Profilfelder — es sagt, was einzutragen ist.
   --------------------------------------------------------- */
.report-row small,
.connection-card small,
.news-row small,
.reward-row small{
  font-size:12.5px;
  line-height:1.5;
}
.profile-field{
  font-size:12.5px;
  letter-spacing:.06em;
}
/* Der Eingabetext selbst bleibt in Lesegröße. */
.profile-field input,
.profile-field textarea,
.profile-field select{
  font-size:15px;
  letter-spacing:0;
}
.profile-field small{
  font-size:11.5px;
  letter-spacing:.04em;
}

/* ---------------------------------------------------------
   A5 — Überschriftenebenen.

   Auf shop, gamemodes, server und community sprang die Gliederung von
   h1 direkt auf h3. Die Zwischenebene heißt jetzt h2; damit das Aussehen
   unverändert bleibt, gelten hier dieselben Größen wie zuvor für h3.
   --------------------------------------------------------- */
.card h2{ font-size:19px; letter-spacing:-.01em; margin:18px 0 8px }
.product h2{ font-size:21px; margin:0 }
.discord h2{ font-size:32px; letter-spacing:-.03em; margin:14px 0 12px }
.member h2{ font-size:17px; margin:16px 0 4px }

/* =========================================================
   NEUE FUNKTIONEN — Ankündigungen und Report-Verlauf
   ========================================================= */

/* ---------- Adminbereich: Ankündigungen ---------- */
.admin-news-form{
  display:grid;
  gap:14px;
  padding:18px;
  margin-bottom:14px;
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-accent);
  border-radius:var(--sl-r-sm);
  background:var(--sl-bg-2);
}
.admin-news-form[hidden]{ display:none }
.admin-news-form textarea{ resize:vertical; min-height:120px; line-height:1.6 }
/* .admin-field gibt seinen Eingabefeldern sonst eine feste Breite — das
   Titelfeld stand dadurch schmal neben einem seitenbreiten Textfeld. */
.admin-news-form .admin-field{ display:grid; gap:6px }
.admin-news-form .admin-field input,
.admin-news-form .admin-field textarea{ width:100%; max-width:none; min-width:0 }
.admin-news-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:10px }
.admin-news-meldung{ font-size:13px; color:var(--sl-text-3) }

.admin-news-row{
  display:grid;
  grid-template-columns:38px minmax(150px,1fr) auto auto auto;
  align-items:center;
  gap:14px;
}
.admin-news-main{ min-width:0 }
.admin-news-main strong{
  display:block; font-size:15px; color:var(--sl-text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.admin-news-main small{ display:block; margin-top:3px; font-size:12.5px; color:var(--sl-text-3) }
@media (max-width:760px){
  .admin-news-row{ display:flex; flex-wrap:wrap }
  .admin-news-main{ flex:1 1 100% }
}

/* ---------- Konto: Hinweis auf bearbeitete Reports ---------- */
.report-hinweis{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  padding:14px 16px;
  margin-bottom:10px;
  border:1px solid var(--sl-accent-line);
  border-radius:var(--sl-r-sm);
  background:var(--sl-accent-wash);
  font-size:14.5px;
  color:var(--sl-text);
}
.report-hinweis[hidden]{ display:none }

/* ---------- Konto: aufklappbarer Report-Verlauf ---------- */
.report-aufklappbar{ display:block; padding:0 }
.report-aufklappbar>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
}
.report-aufklappbar>summary::-webkit-details-marker{ display:none }
/* Eigener Pfeil, damit er in beiden Zuständen an derselben Stelle sitzt. */
.report-aufklappbar>summary::after{
  content:"▾";
  color:var(--sl-text-3);
  font-size:13px;
  transition:rotate .18s var(--sl-ease);
}
.report-aufklappbar[open]>summary::after{ rotate:180deg }
.report-aufklappbar[open]>summary{ border-bottom:1px solid var(--sl-line) }
.report-aufklappbar>summary:hover{ background:var(--sl-surface-3) }

.report-verlauf{ padding:16px }
.report-verlauf ol{
  list-style:none;
  margin:0;
  padding:0 0 0 20px;
  border-left:1px solid var(--sl-line-strong);
  display:grid;
  gap:16px;
}
.report-verlauf li{ position:relative }
/* Punkt auf der Zeitachse */
.report-verlauf li::before{
  content:"";
  position:absolute;
  left:-25px; top:7px;
  width:9px; height:9px;
  border-radius:50%;
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
}
.report-verlauf li:last-child::before{
  background:var(--sl-accent);
  border-color:var(--sl-accent);
}
.report-verlauf-zeit{
  display:block;
  font-size:12.5px;
  color:var(--sl-text-3);
  margin-bottom:2px;
}
.report-verlauf b{ font-size:13.5px; letter-spacing:.04em; color:var(--sl-text) }
.report-verlauf p{
  margin:6px 0 0;
  font-size:14.5px;
  line-height:1.6;
  color:var(--sl-text-2);
}
.report-verlauf-leer{ color:var(--sl-text-3); font-size:14px }
.report-verlauf-belohnung{
  margin:18px 0 0;
  padding-top:14px;
  border-top:1px solid var(--sl-line);
  font-size:14.5px;
  color:var(--sl-text-2);
}
.report-verlauf-belohnung strong{ color:var(--sl-accent) }

@media (prefers-reduced-motion:reduce){
  .report-aufklappbar>summary::after{ transition:none }
}

/* =========================================================
   STARTSEITE — Live-Zahl, Zahlenband, Ankündigungen
   ========================================================= */

.hero-live{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:14px 0 0;
  padding:7px 14px;
  border:1px solid rgba(87,192,142,.3);
  border-radius:999px;
  background:rgba(87,192,142,.09);
  font-size:13.5px;
  font-weight:600;
  color:#8ddcb6;
}
.hero-live[hidden]{ display:none }
.hero-live-punkt{
  width:8px; height:8px; border-radius:50%;
  background:var(--sl-success);
  box-shadow:0 0 0 0 rgba(87,192,142,.55);
  animation:sl-puls 2.4s var(--sl-ease) infinite;
}
@keyframes sl-puls{
  0%   { box-shadow:0 0 0 0 rgba(87,192,142,.5) }
  70%  { box-shadow:0 0 0 8px rgba(87,192,142,0) }
  100% { box-shadow:0 0 0 0 rgba(87,192,142,0) }
}
.hero-live.ist-offline{
  border-color:rgba(223,108,125,.3);
  background:rgba(223,108,125,.09);
  color:#f0a2ac;
}
.hero-live.ist-offline .hero-live-punkt{ background:var(--sl-danger); animation:none; box-shadow:none }

.zahlenband-abschnitt{ padding-top:0 }
.zahlenband{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1px;
  background:var(--sl-line);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  overflow:hidden;
}
.zahl-kachel{ background:var(--sl-surface); padding:26px 22px; text-align:center }
.zahl-kachel strong{
  display:block;
  font-family:Sora,Inter,system-ui,sans-serif;
  font-size:38px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.02em;
  color:var(--sl-text);
  font-variant-numeric:tabular-nums;
}
.zahl-kachel span{
  display:block;
  margin-top:9px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.1em;
  color:var(--sl-text-3);
}

.startnews{ display:grid; gap:14px }
.startnews-eintrag{
  padding:22px 24px;
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  background:var(--sl-surface);
  transition:border-color .18s var(--sl-ease);
}
.startnews-eintrag:hover{ border-color:var(--sl-line-strong) }
.startnews-eintrag time{
  display:block;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--sl-accent);
  margin-bottom:8px;
}
.startnews-eintrag h3{ margin:0 0 8px; font-size:21px; letter-spacing:-.01em; color:var(--sl-text) }
.startnews-eintrag p{ margin:0; max-width:70ch; font-size:15.5px; line-height:1.7; color:var(--sl-text-2) }
.startnews-mehr{ margin:18px 0 0 }
.startnews-mehr a{ font-size:13.5px; font-weight:600; letter-spacing:.06em; color:var(--sl-accent); text-decoration:none }
.startnews-mehr a:hover{ text-decoration:underline }

/* =========================================================
   SERVERSEITE — Spielerzahl der letzten 24 Stunden

   Eine Reihe, deshalb keine Legende im Kasten: die Überschrift benennt
   sie, die Fußzeile sagt die Einheit. Raster und Achsen bleiben
   zurückhaltend, Beschriftungen tragen Textfarben statt der Kurvenfarbe.
   ========================================================= */

.verlauf-karte{ margin-top:22px }
.verlauf-unter{ margin:6px 0 0; color:var(--sl-text-2); font-size:15px }

.verlauf-kennzahlen{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:12px;
  margin:20px 0 8px;
}
.verlauf-kennzahlen .stat strong{ font-variant-numeric:tabular-nums }

.verlauf-figur{ margin:14px 0 0 }
.verlauf-buehne{
  position:relative;
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
  background:var(--sl-bg-2);
  padding:10px 8px 4px;
  min-height:210px;
}
.verlauf-buehne svg{ display:block; width:100%; height:230px; touch-action:none }
.verlauf-hinweis{
  margin:0; padding:78px 16px; text-align:center;
  color:var(--sl-text-3); font-size:14.5px;
}

.verlauf-raster{ stroke:var(--sl-line); stroke-width:1 }
.verlauf-achse{ fill:var(--sl-text-3); font-size:13px; font-family:Inter,system-ui,sans-serif }
.verlauf-flaeche{ fill:var(--sl-accent); opacity:.14 }
.verlauf-linie{ fill:none; stroke:var(--sl-accent); stroke-width:2; stroke-linejoin:round; stroke-linecap:round }
/* Der letzte Wert ist der interessanteste — mit einem Ring vom Untergrund abgesetzt. */
.verlauf-ende{ fill:var(--sl-accent); stroke:var(--sl-bg-2); stroke-width:2 }
.verlauf-kreuz{ stroke:var(--sl-line-strong); stroke-width:1; stroke-dasharray:3 4 }
.verlauf-punkt{ fill:var(--sl-accent); stroke:var(--sl-bg-2); stroke-width:2 }

.verlauf-tipp{
  position:absolute;
  top:12px;
  display:grid;
  gap:2px;
  padding:9px 12px;
  border:1px solid var(--sl-line-strong);
  border-radius:var(--sl-r-sm);
  background:var(--sl-surface-2);
  box-shadow:var(--sl-shadow-2);
  font-size:13px;
  color:var(--sl-text-2);
  pointer-events:none;
  white-space:nowrap;
}
.verlauf-tipp[hidden]{ display:none }
.verlauf-tipp b{ color:var(--sl-text); font-size:13.5px }

.verlauf-legende{
  display:flex; align-items:center; gap:8px;
  margin-top:10px;
  font-size:13px; color:var(--sl-text-3);
}
.verlauf-marke{ width:14px; height:3px; border-radius:2px; background:var(--sl-accent) }

.verlauf-tabelle{ margin-top:14px }
.verlauf-tabelle summary{
  cursor:pointer; font-size:13.5px; font-weight:600;
  color:var(--sl-text-3); padding:6px 0;
}
.verlauf-tabelle summary:hover{ color:var(--sl-text-2) }
.verlauf-tabelle-rahmen{ overflow-x:auto; margin-top:8px }
.verlauf-tabelle table{ width:100%; border-collapse:collapse; font-size:14px }
.verlauf-tabelle caption{ text-align:left; padding-bottom:8px; color:var(--sl-text-3); font-size:13px }
.verlauf-tabelle th,.verlauf-tabelle td{
  padding:8px 12px; text-align:right;
  border-bottom:1px solid var(--sl-line);
  font-variant-numeric:tabular-nums;
}
.verlauf-tabelle th[scope="row"]{ text-align:left; color:var(--sl-text-2); font-weight:500 }
.verlauf-tabelle thead th{ color:var(--sl-text-3); font-size:12.5px; letter-spacing:.06em; font-weight:600 }

@media (max-width:650px){
  .zahl-kachel strong{ font-size:30px }
  .verlauf-buehne svg{ height:200px }
}
@media (prefers-reduced-motion:reduce){
  .hero-live-punkt{ animation:none }
  .startnews-eintrag{ transition:none }
}

/* =========================================================
   TEAMSEITE

   Vorher: zehn identische Karten, alles mittig, der Rang als
   kleine graue Zeile. Jetzt nach Bereichen gruppiert — die
   Rangfolge gab es schon, sie war nur unsichtbar.
   ========================================================= */

.team-gruppe{ margin:0 0 44px }
.team-gruppe:last-child{ margin-bottom:0 }

.team-gruppe-kopf{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px 12px;
  padding-bottom:14px;
  margin-bottom:18px;
  border-bottom:1px solid var(--sl-line);
}
.team-gruppe-kopf h2{
  margin:0;
  font-family:Sora,Inter,system-ui,sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--sl-text);
}
.team-gruppe-zahl{
  display:inline-grid;
  place-items:center;
  min-width:22px; height:22px;
  padding:0 7px;
  border:1px solid var(--sl-line-strong);
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--sl-text-3);
}
.team-gruppe-kopf p{
  flex:1 1 100%;
  margin:0;
  font-size:14.5px;
  color:var(--sl-text-3);
}

.team-raster{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:14px;
}

.team-karte{
  display:grid;
  gap:14px;
  align-content:start;
  padding:20px;
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  background:var(--sl-surface);
  transition:border-color .18s var(--sl-ease), background .18s var(--sl-ease);
}
.team-karte:hover{
  border-color:var(--sl-line-strong);
  background:var(--sl-surface-2);
}
/* Die Leitung hebt sich ab — ein Akzent, nicht vier verschiedene Farben. */
.team-karte.ist-leitung{ border-color:var(--sl-accent-line) }
.team-karte.ist-leitung:hover{ border-color:var(--sl-accent) }

.team-karte-kopf{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  align-items:center;
  gap:14px;
}

.team-bild{
  width:56px; height:56px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:var(--sl-surface-3);
  border:1px solid var(--sl-line-strong);
}
.team-bild img{ width:100%; height:100%; object-fit:cover; display:block }
.team-bild-buchstabe{
  font-family:Sora,Inter,system-ui,sans-serif;
  font-size:22px;
  font-weight:600;
  color:var(--sl-text-2);
}
.team-karte.ist-leitung .team-bild{
  border-color:var(--sl-accent);
  box-shadow:0 0 0 3px var(--sl-accent-wash);
}
.team-karte.ist-leitung .team-bild-buchstabe{ color:var(--sl-accent) }

.team-karte-namen{ min-width:0 }
.team-karte-namen h3{
  margin:0 0 6px;
  font-size:18px;
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--sl-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.team-rolle{
  display:inline-block;
  max-width:100%;
  padding:4px 11px;
  border:1px solid var(--sl-line-strong);
  border-radius:999px;
  background:var(--sl-bg-2);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--sl-text-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.team-karte.ist-leitung .team-rolle{
  border-color:var(--sl-accent-line);
  background:var(--sl-accent-wash);
  color:var(--sl-accent);
}

.team-karte p{
  margin:0;
  font-size:14.5px;
  line-height:1.65;
  color:var(--sl-text-2);
}
.team-ohne-text{ color:var(--sl-text-3); font-style:italic }

.team-leer{
  padding:40px 22px;
  border:1px dashed var(--sl-line-strong);
  border-radius:var(--sl-r);
  text-align:center;
  color:var(--sl-text-3);
  font-size:15px;
}
.team-leer small{ display:block; margin-top:8px; font-size:13px }

@media (max-width:520px){
  .team-raster{ grid-template-columns:1fr }
  .team-karte{ padding:18px }
}
@media (prefers-reduced-motion:reduce){
  .team-karte{ transition:none }
}

/* =========================================================
   RANG-ICONS

   Ersetzen die Zeichen ◆ ◎ ✦, die vorher als Symbole herhalten
   mussten. Als Inline-SVG erben sie über currentColor die Farbe
   der Kapsel, in der sie stehen.
   ========================================================= */
.rang-icon{
  flex:none;
  width:15px; height:15px;
  /* Optisch auf die Grundlinie der Versalien setzen. */
  margin-top:-1px;
  opacity:.85;
}

/* Kapseln, die ein Icon enthalten, brauchen etwas mehr Luft links. */
.team-rolle,
.role-badge{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.team-rolle{ padding-left:9px }
.role-badge{ padding-left:9px }
.role-badge .rang-icon{ width:14px; height:14px }

.team-karte.ist-leitung .rang-icon{ opacity:1 }

/* Marke bei den Ankündigungen: Lautsprecher wenn sichtbar,
   Blatt Papier wenn Entwurf. */
.news-marke{ color:var(--sl-text-3) }
.admin-news-row .account-status.active + .admin-btn{ margin-left:0 }

/* ============================================================
   NEUE ADMINFUNKTIONEN
   Teamseite pflegen · Reportfilter · interne Notizen · Sicherung
   Farben und Radien kommen ausschliesslich aus den Tokens oben.
   ============================================================ */

/* Nur fuer Screenreader — sichtbare Beschriftungen wuerden die Zeilen
   sprengen, ohne sie fehlt der Bezug zwischen Feld und Person. */
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;border:0;
}

/* ---------- Teamseite pflegen ---------- */
.admin-team-liste{display:flex;flex-direction:column;gap:8px;margin-top:4px}

.admin-team-rang{
  margin:16px 0 2px;
  display:flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;letter-spacing:.08em;
  color:var(--sl-text-3);text-transform:uppercase;
}
.admin-team-rang:first-child{margin-top:0}
.admin-team-rang svg{width:14px;height:14px;flex:0 0 auto}

.admin-team-zeile{
  display:grid;
  grid-template-columns:auto minmax(140px,1fr) minmax(0,2.2fr) auto;
  align-items:center;gap:14px;
  padding:10px 14px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
/* Wer nicht auf der Teamseite steht, soll im Adminpanel sofort als solcher
   erkennbar sein — ohne die Zeile unlesbar zu machen. */
.admin-team-zeile.ist-versteckt{background:var(--sl-bg-2);border-style:dashed}
.admin-team-zeile.ist-versteckt .admin-team-person strong{color:var(--sl-text-3)}

.admin-team-reihung{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  font-size:11px;color:var(--sl-text-3);font-variant-numeric:tabular-nums;
}
.admin-team-reihung .admin-icon-btn{width:24px;height:20px;padding:0;line-height:1}
.admin-team-reihung .admin-icon-btn[disabled]{opacity:.25;cursor:default}

.admin-team-person{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-team-person strong{font-size:14px;color:var(--sl-text)}
.admin-team-person small{font-size:11px;color:var(--sl-text-3);text-transform:none;letter-spacing:0}

.admin-team-text{margin:0}
.admin-team-text input{width:100%}

.admin-team-schalter{
  display:flex;align-items:center;gap:7px;
  font-size:11px;letter-spacing:.05em;color:var(--sl-text-3);white-space:nowrap;
}
/* Die globale Feldregel weiter oben gibt JEDEM input Polsterung und Rahmen.
   Bei einer Checkbox schneidet das den Haken ab. */
.admin-team-schalter input[type="checkbox"],
.admin-notiz-anheften input[type="checkbox"]{
  width:16px;height:16px;padding:0;margin:0;
  border-radius:var(--sl-r-xs);
  accent-color:var(--sl-accent);
  flex:0 0 auto;
}

.admin-team-hinweis{
  font-size:12px;color:var(--sl-text-3);
  text-transform:none;letter-spacing:0;
}

@media (max-width:760px){
  .admin-team-zeile{
    grid-template-columns:auto 1fr auto;
    grid-template-areas:"reihung person schalter" "text text text";
    row-gap:10px;
  }
  .admin-team-reihung{grid-area:reihung;flex-direction:row;gap:6px}
  .admin-team-person{grid-area:person}
  .admin-team-schalter{grid-area:schalter}
  .admin-team-text{grid-area:text}
}

/* ---------- Seitenweise blaettern (Reports) ---------- */
.admin-seiten{
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin-top:16px;
  font-size:12px;color:var(--sl-text-3);
  font-variant-numeric:tabular-nums;
}
.admin-seiten .admin-btn[disabled]{opacity:.4;cursor:default}

/* ---------- Interne Notizen ---------- */
.detail-hinweis{
  margin:0 0 10px;font-size:12px;color:var(--sl-text-3);
}
.admin-notiz-form{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.admin-notiz-form .admin-field{margin:0}
.admin-notiz-form textarea{width:100%;resize:vertical;min-height:56px}

.admin-notiz-aktionen{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:12px;color:var(--sl-text-3);
}
.admin-notiz-anheften{
  display:flex;align-items:center;gap:7px;
  font-size:11px;letter-spacing:.05em;color:var(--sl-text-3);
}

.admin-notiz{
  padding:11px 13px;margin-bottom:8px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-line-strong);
  border-radius:var(--sl-r-sm);
}
.admin-notiz.ist-angeheftet{border-left-color:var(--sl-accent)}
.admin-notiz p{
  margin:0 0 6px;font-size:13px;line-height:1.55;
  color:var(--sl-text);white-space:pre-wrap;overflow-wrap:anywhere;
}
.admin-notiz-fuss{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.admin-notiz-fuss small{
  font-size:11px;color:var(--sl-text-3);text-transform:none;letter-spacing:0;
}
.admin-notiz-fuss .admin-icon-btn{width:24px;height:24px;padding:0;line-height:1}

/* ---------- Datensicherung ---------- */
.admin-details{margin-top:12px}
.admin-details>summary{
  cursor:pointer;list-style:none;
  padding:8px 0;
  font-size:12px;font-weight:600;letter-spacing:.05em;
  color:var(--sl-text-2);text-transform:uppercase;
}
.admin-details>summary::-webkit-details-marker{display:none}
.admin-details>summary::before{content:"▸ ";color:var(--sl-text-3)}
.admin-details[open]>summary::before{content:"▾ "}
.admin-details>summary:hover{color:var(--sl-text)}

/* Ein ausgegrauter Knopf muss auch ausgegraut aussehen — "ÄNDERUNGEN
   SPEICHERN" war ohne Änderungen zwar deaktiviert, sah aber einladend aus. */
.admin-btn[disabled],.admin-btn[disabled]:hover{
  opacity:.42;
  cursor:default;
  filter:saturate(.5);
}

/* ============================================================
   BEWERBUNGSBEREICH
   Öffentliche Seite, Konto und Adminpanel. Farben und Radien
   ausschliesslich aus den Tokens weiter oben.
   ============================================================ */

/* ---------- Ablauf in drei Schritten ---------- */
.bewerb-ablauf{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  list-style:none;margin:0 0 44px;padding:0;
}
.bewerb-ablauf li{
  padding:18px 20px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}
.bewerb-ablauf span{
  display:block;margin-bottom:8px;
  font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--sl-accent);
}
.bewerb-ablauf b{display:block;margin-bottom:4px;font-size:15px;color:var(--sl-text)}
.bewerb-ablauf p{margin:0;font-size:13px;line-height:1.55;color:var(--sl-text-2)}

/* ---------- Offene Stellen ---------- */
.bewerb-gruppe{margin-bottom:40px}
.bewerb-gruppe>h2{
  margin:0 0 14px;
  font-size:12px;font-weight:700;letter-spacing:.1em;
  color:var(--sl-text-3);text-transform:uppercase;
}
.bewerb-raster{
  display:grid;gap:16px;
  /* auto-fit statt auto-fill: eine Gruppe hat oft nur zwei Stellen. Mit
     auto-fill blieben die leeren Spalten stehen und die zwei Karten
     klebten schmal am linken Rand. */
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
}
.bewerb-karte{
  display:flex;flex-direction:column;gap:12px;
  padding:20px 22px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
  transition:border-color .18s var(--sl-ease);
}
.bewerb-karte:hover{border-color:var(--sl-line-strong)}
.bewerb-karte-kopf{display:flex;align-items:center;gap:9px}
.bewerb-karte-kopf h3{margin:0;font-size:17px;color:var(--sl-text);flex:1}
.bewerb-marke{display:inline-flex;color:var(--sl-accent)}
.bewerb-marke svg{width:17px;height:17px}
.bewerb-alter{
  padding:3px 9px;border-radius:100px;
  background:var(--sl-bg-2);border:1px solid var(--sl-line);
  font-size:11px;letter-spacing:.04em;color:var(--sl-text-3);white-space:nowrap;
}
.bewerb-karte>p{margin:0;font-size:13px;line-height:1.6;color:var(--sl-text-2)}
.bewerb-karte .btn{margin-top:auto;text-align:center}

.bewerb-vor>summary{
  cursor:pointer;list-style:none;padding:4px 0;
  font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--sl-text-3);
}
.bewerb-vor>summary::-webkit-details-marker{display:none}
.bewerb-vor>summary::before{content:"▸ "}
.bewerb-vor[open]>summary::before{content:"▾ "}
.bewerb-vor>summary:hover{color:var(--sl-text-2)}
.bewerb-vor ul{margin:6px 0 0;padding-left:18px}
.bewerb-vor li{font-size:12.5px;line-height:1.65;color:var(--sl-text-2)}

.bewerb-keine,.bewerb-hinweis{
  padding:24px 26px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-accent);
  border-radius:var(--sl-r);
}
.bewerb-keine b,.bewerb-hinweis b{display:block;margin-bottom:6px;font-size:16px;color:var(--sl-text)}
.bewerb-keine p,.bewerb-hinweis p{margin:0;font-size:13.5px;line-height:1.65;color:var(--sl-text-2)}
.bewerb-hinweis-knoepfe{margin-top:16px}

/* ---------- Formular ---------- */
.bewerb-titel{
  margin:0 0 18px;
  font-size:12px;font-weight:700;letter-spacing:.1em;
  color:var(--sl-text-3);text-transform:uppercase;
}
.bewerb-form{display:flex;flex-direction:column;gap:16px}
.bewerb-felder{
  display:grid;gap:14px;
  /* 240px statt 190: bei 190 passten fuenf Spalten in die Breite, das
     Formular hat aber nur vier Felder — die fuenfte blieb leer. */
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.bewerb-form .admin-field{margin:0}
.bewerb-form .admin-field>span i{font-style:normal;text-transform:none;letter-spacing:0;opacity:.7}
.bewerb-form input,.bewerb-form select,.bewerb-form textarea{width:100%}
.bewerb-form textarea{resize:vertical}

.bewerb-zaehler{
  display:block;margin-top:5px;
  font-size:11px;color:var(--sl-text-3);
  text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;
}
/* Solange der Text zu kurz ist, sagt der Zaehler das — statt den Bewerber
   erst nach dem Absenden abzuweisen. */
.bewerb-zaehler.ist-kurz{color:var(--sl-warn)}

.bewerb-absenden{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bewerb-meldung{font-size:12.5px;color:var(--sl-text-3)}
.bewerb-meldung.ist-fehler{color:var(--sl-danger)}

/* ---------- Eigener Stand ---------- */
.bewerb-stand{
  margin-top:16px;padding:20px 22px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}
.bewerb-stand-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.bewerb-stand-kopf h3{margin:2px 0 2px;font-size:19px;color:var(--sl-text)}
.bewerb-stand-kopf p{margin:0;font-size:12.5px;color:var(--sl-text-3)}
.bewerb-stand-satz{margin:14px 0 0;font-size:14px;line-height:1.6;color:var(--sl-text-2)}

.bewerb-antwort{
  margin-top:14px;padding:14px 16px;
  background:var(--sl-bg-2);
  border-left:2px solid var(--sl-accent);
  border-radius:var(--sl-r-sm);
}
.bewerb-antwort b{display:block;margin-bottom:5px;font-size:11px;letter-spacing:.06em;color:var(--sl-text-3);text-transform:uppercase}
.bewerb-antwort p{margin:0;font-size:13.5px;line-height:1.6;color:var(--sl-text);white-space:pre-wrap}

.bewerb-verlauf{margin-top:14px}
.bewerb-verlauf>summary{
  cursor:pointer;list-style:none;padding:4px 0;
  font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--sl-text-3);text-transform:uppercase;
}
.bewerb-verlauf>summary::-webkit-details-marker{display:none}
.bewerb-verlauf>summary::before{content:"▸ "}
.bewerb-verlauf[open]>summary::before{content:"▾ "}
.bewerb-verlauf ul{margin:8px 0 0;padding:0;list-style:none}
.bewerb-verlauf li{
  padding:9px 0 9px 14px;
  border-left:1px solid var(--sl-line);
}
.bewerb-verlauf li b{display:block;font-size:12.5px;color:var(--sl-text)}
.bewerb-verlauf li small{font-size:11px;color:var(--sl-text-3)}
.bewerb-verlauf li p{margin:5px 0 0;font-size:13px;line-height:1.55;color:var(--sl-text-2)}
.bewerb-stand .btn{margin-top:16px}

/* ---------- Aufruf auf der Teamseite ---------- */
.team-mitmachen{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:52px;padding:26px 28px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r);
}
.team-mitmachen h2{margin:0 0 6px;font-size:20px;color:var(--sl-text)}
.team-mitmachen p{margin:0;max-width:56ch;font-size:13.5px;line-height:1.6;color:var(--sl-text-2)}

/* ---------- Adminpanel: Bewerbungen ---------- */
.admin-bewerbung{
  margin-bottom:8px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.admin-bewerbung>summary{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 16px;cursor:pointer;list-style:none;
}
.admin-bewerbung>summary::-webkit-details-marker{display:none}
.admin-bewerbung>summary:hover{background:var(--sl-surface-2)}
.admin-bewerbung[open]>summary{border-bottom:1px solid var(--sl-line)}
.admin-bewerbung-kopf b{display:block;font-size:14px;color:var(--sl-text)}
.admin-bewerbung-kopf small{font-size:11.5px;color:var(--sl-text-3)}

.admin-bewerbung-koerper{padding:16px}
.admin-bewerbung-zeit{margin:14px 0 0;font-size:13px;color:var(--sl-text-2)}
.admin-bewerbung-text{
  margin:0 0 14px;padding:12px 14px;
  background:var(--sl-bg-2);border-radius:var(--sl-r-sm);
  font-size:13.5px;line-height:1.65;color:var(--sl-text);
  white-space:pre-wrap;overflow-wrap:anywhere;
}
.admin-bewerbung-verlauf{margin:0 0 18px;padding:0;list-style:none}
.admin-bewerbung-verlauf li{padding:8px 0 8px 14px;border-left:1px solid var(--sl-line)}
.admin-bewerbung-verlauf li b{display:block;font-size:12.5px;color:var(--sl-text)}
.admin-bewerbung-verlauf li small{font-size:11px;color:var(--sl-text-3)}
.admin-bewerbung-verlauf li p{margin:4px 0 0;font-size:12.5px;line-height:1.55;color:var(--sl-text-2)}

.admin-bewerbung-entscheidung{
  padding-top:16px;border-top:1px solid var(--sl-line);
  display:flex;flex-direction:column;gap:12px;
}
.admin-bewerbung-entscheidung .admin-field{margin:0}
.admin-bewerbung-entscheidung textarea{width:100%;resize:vertical}
.admin-bewerbung-aktionen{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--sl-text-3)}
.admin-bewerbung-hinweis{
  margin:0;font-size:11.5px;line-height:1.55;color:var(--sl-text-3);
}

/* ---------- Adminpanel: Stellen ---------- */
.admin-stellen-liste{
  display:grid;gap:12px;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
}
.admin-stelle{
  display:flex;flex-direction:column;gap:10px;
  padding:14px 16px;
  background:var(--sl-bg-2);
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-line-strong);
  border-radius:var(--sl-r-sm);
}
/* Offene Stellen sind das, wonach man in dieser Liste sucht. */
.admin-stelle.ist-offen{background:var(--sl-surface);border-left-color:var(--sl-accent)}
.admin-stelle-kopf{display:flex;align-items:center;gap:10px}
.admin-stelle-kopf b{flex:1;font-size:14px;color:var(--sl-text)}
.admin-stelle-marke{display:inline-flex;color:var(--sl-text-3)}
.admin-stelle.ist-offen .admin-stelle-marke{color:var(--sl-accent)}
.admin-stelle-marke svg{width:15px;height:15px}
.admin-stelle .admin-field{margin:0}
.admin-stelle .admin-field>span i{font-style:normal;text-transform:none;letter-spacing:0;opacity:.7}
.admin-stelle input{width:100%}
.admin-stelle-alter{max-width:180px}

@media (max-width:760px){
  .bewerb-ablauf{grid-template-columns:1fr}
  .bewerb-stand-kopf{flex-direction:column;gap:10px}
  .team-mitmachen{flex-direction:column;align-items:flex-start}
}

/* Stellenliste und Formular gehoeren zusammen — zwei volle Abschnitts-
   abstaende dazwischen liessen die Seite auseinanderfallen. */
#formular{padding-top:0}

/* Die Zwischenüberschriften im aufgeklappten Bewerbungstext klebten an der
   Zeile darüber — .security-title bringt von Haus aus keinen Abstand mit. */
.admin-bewerbung-koerper .security-title{margin:18px 0 8px}
.admin-bewerbung-koerper .security-title:first-of-type{margin-top:16px}
.admin-bewerbung-zeit{margin:14px 0 0}

/* ============================================================
   SERVERSEITE — DIE EINZELNEN SERVER
   ============================================================ */
.server-adresse{font-size:34px;margin:12px 0;overflow-wrap:anywhere}

.server-karte{margin-top:24px}
.server-unter{margin:6px 0 18px;font-size:13px;color:var(--sl-text-3)}
.server-liste{display:flex;flex-direction:column;gap:10px}

.server-zeile{
  display:grid;
  grid-template-columns:auto minmax(150px,1.6fr) minmax(0,2fr) auto;
  align-items:center;gap:16px;
  padding:14px 18px;
  background:var(--sl-bg-2);
  border:1px solid var(--sl-line);
  border-radius:var(--sl-r-sm);
}
.server-zeile.ist-online{background:var(--sl-surface)}

/* Der Punkt trägt die Aussage doppelt: Farbe UND die Marke rechts. Auf Farbe
   allein zu setzen, hilft niemandem mit einer Rot-Grün-Schwäche. */
.server-punkt{
  width:9px;height:9px;border-radius:50%;
  background:var(--sl-text-3);flex:0 0 auto;
}
.server-zeile.ist-online .server-punkt{
  background:var(--sl-success);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--sl-success) 18%, transparent);
}

.server-name{min-width:0}
.server-name b{display:block;font-size:15px;color:var(--sl-text)}
.server-name small{font-size:11.5px;color:var(--sl-text-3);line-height:1.45}

.server-zahlen{display:flex;gap:22px;min-width:0}
.server-zahl{display:flex;flex-direction:column;gap:2px;min-width:0}
.server-zahl strong{
  font-size:15px;color:var(--sl-text);
  font-variant-numeric:tabular-nums;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.server-zahl span{font-size:10px;letter-spacing:.08em;color:var(--sl-text-3)}

.server-marke{
  padding:4px 10px;border-radius:100px;white-space:nowrap;
  font-size:10px;font-weight:700;letter-spacing:.08em;
  border:1px solid var(--sl-line-strong);color:var(--sl-text-3);
}
.server-marke.ist-online{
  border-color:color-mix(in srgb, var(--sl-success) 45%, transparent);
  color:var(--sl-success);
}

.server-stand{margin:16px 0 0;font-size:11.5px;color:var(--sl-text-3)}

/* Schmaler wird es zweizeilig: oben wer und ob, unten die Zahlen. Drei
   Zahlenspalten neben dem Namen sind unter 900px nicht mehr lesbar. */
@media (max-width:900px){
  .server-zeile{
    grid-template-columns:auto 1fr auto;
    grid-template-areas:
      "punkt name  marke"
      "zahlen zahlen zahlen";
    row-gap:14px;
  }
  /* Der Name bricht hier auf zwei, drei Zeilen um. Ein mittig sitzender
     Punkt schwebt dann irgendwo im Text — er gehoert auf die Hoehe der
     ersten Zeile. */
  .server-punkt{grid-area:punkt;align-self:start;margin-top:6px}
  .server-name{grid-area:name}
  .server-marke{grid-area:marke;align-self:start}
  .server-zahlen{grid-area:zahlen;flex-wrap:wrap}
}

@media (max-width:640px){
  .server-adresse{font-size:26px}
  .server-zahlen{gap:14px}
  .server-zahl strong{font-size:14px}
}

/* ============================================================
   SELBSTAUSKUNFT IM PROFIL
   Bewusst ruhig gehalten: das ist kein Gefahrenbereich, sondern
   ein Recht — es soll einladend aussehen, nicht warnend.
   ============================================================ */
.profile-daten{
  display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  margin-top:24px;padding:22px 24px;
  background:var(--sl-surface);
  border:1px solid var(--sl-line);
  border-left:2px solid var(--sl-accent);
  border-radius:var(--sl-r);
}
.profile-daten>div:first-child{flex:1 1 340px;min-width:0}
.profile-daten-kicker{
  display:block;margin-bottom:6px;
  font-size:11px;font-weight:700;letter-spacing:.1em;
  color:var(--sl-accent);text-transform:uppercase;
}
.profile-daten h3{margin:0 0 8px;font-size:18px;color:var(--sl-text)}
.profile-daten p{margin:0;max-width:70ch;font-size:13px;line-height:1.65;color:var(--sl-text-2)}
.profile-daten-zuletzt{margin-top:10px !important;font-size:12px !important;color:var(--sl-text-3) !important}

.profile-daten-knoepfe{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.profile-daten-knoepfe .btn{white-space:nowrap;text-align:center}
.btn.ist-beschaeftigt{opacity:.6;pointer-events:none}
.profile-daten-json{
  font-size:11.5px;text-align:center;color:var(--sl-text-3);
  text-decoration:underline;text-underline-offset:3px;
}
.profile-daten-json:hover{color:var(--sl-text-2)}

@media (max-width:700px){
  .profile-daten{flex-direction:column;align-items:stretch}
  .profile-daten-knoepfe{flex-direction:row;align-items:center;justify-content:space-between}
}

/* Die Profilseite hatte für .profile-grid nie einen Umbruch: 300px feste
   Spalte plus 1fr passen auf kein Telefon, die ganze Seite ließ sich
   seitwärts schieben. Aufgefallen beim Prüfen der Auskunft-Karte. */
@media (max-width:820px){
  .profile-grid{grid-template-columns:1fr}
}
