:root{
  --bg-color:#02070d;
  --chat-font-size:15px;
  --cyan:#19f3ff;
  --cyan-soft:rgba(25,243,255,.42);
  --pink:#ff5cef;
  --pink-soft:rgba(255,92,239,.42);
  --green:#4cff6a;
  --gold:#ffd84d;
  --panel:rgba(3,11,20,.91);
  --panel-strong:rgba(4,13,23,.97);
  --line:rgba(113,157,196,.32);
  --text:#f7fbff;
  --muted:#a8b0bd;
}

*{box-sizing:border-box}

html,body{
  width:100%;
  height:100%;
  margin:0;
}

body{
  overflow:hidden;
  color:var(--text);
  font-family:"Courier New",Consolas,monospace;
  background:
    radial-gradient(circle at 10% 22%,rgba(0,220,255,.18),transparent 26%),
    radial-gradient(circle at 90% 25%,rgba(255,0,242,.18),transparent 28%),
    linear-gradient(rgba(0,0,0,.46),rgba(0,0,0,.70)),
    url("/chat/Grafiken/Clouds.jpg"),
    var(--bg-color);
  background-size:cover;
  background-position:center;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(25,243,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,92,239,.04) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(to bottom,transparent 4%,black 42%,black);
}

button,input,select,textarea{font:inherit}

button{
  color:var(--text);
  cursor:pointer;
}

button:disabled{
  opacity:.28;
  cursor:not-allowed;
}

a{
  color:inherit;
  text-decoration:none;
}

.cyan{color:var(--cyan)}
.pink{color:var(--pink)}

#authOverlay{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,3,8,.80);
  backdrop-filter:blur(12px);
}

#authOverlay.hidden{display:none}

#authCard{
  width:min(480px,100%);
  max-height:92vh;
  overflow-y:auto;
  padding:34px;
  border:1px solid var(--cyan);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(3,11,20,.98),rgba(5,10,20,.97));
  box-shadow:
    0 0 25px rgba(25,243,255,.16),
    0 0 70px rgba(255,92,239,.10),
    0 24px 70px rgba(0,0,0,.65);
}

.auth-brand,
.chat-brand{
  display:block;
  font-weight:900;
  font-style:italic;
  letter-spacing:-2px;
  text-shadow:0 0 14px currentColor;
}

.auth-brand{
  text-align:center;
  font-size:48px;
}

.auth-subtitle{
  margin:10px 0 26px;
  color:#dbe1e9;
  text-align:center;
  letter-spacing:8px;
  font-size:13px;
}

#authTabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:22px;
}

#authTabs button{
  padding:11px;
  border:1px solid var(--line);
  border-radius:8px;
  color:#aeb7c5;
  background:rgba(255,255,255,.025);
  letter-spacing:1px;
}

#authTabs button.active{
  color:var(--cyan);
  border-color:var(--cyan);
  box-shadow:inset 0 -2px 0 var(--cyan),0 0 12px rgba(25,243,255,.15);
}

.auth-row{
  display:block;
  margin-bottom:16px;
}

.auth-row span{
  display:block;
  margin-bottom:7px;
  color:var(--cyan);
  font-size:12px;
  letter-spacing:1px;
}

.auth-row input,
.auth-row select,
.profile-edit-row input,
.profile-edit-row textarea,
.setting-row select{
  width:100%;
  padding:12px 13px;
  border:1px solid rgba(25,243,255,.38);
  border-radius:8px;
  outline:none;
  color:var(--text);
  background:rgba(2,8,16,.90);
  box-shadow:inset 0 0 14px rgba(25,243,255,.03);
}

.auth-row input:focus,
.auth-row select:focus,
.profile-edit-row input:focus,
.profile-edit-row textarea:focus{
  border-color:var(--pink);
  box-shadow:0 0 13px rgba(255,92,239,.20);
}

.auth-main-button{
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:80px;
  border:1px solid var(--cyan);
  border-radius:9px;
  color:var(--cyan);
  background:rgba(25,243,255,.025);
  font-weight:700;
  letter-spacing:1px;
}

.auth-main-button:hover{
  box-shadow:0 0 20px rgba(25,243,255,.30);
  background:rgba(25,243,255,.07);
}

#authMessage{
  min-height:20px;
  margin:14px 0 0;
  color:#ff83d9;
  text-align:center;
  font-size:12px;
}

#app{
  height:100vh;
  padding:18px 22px 24px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

#header{
  position:relative;
  z-index:30;
  min-height:72px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  flex-shrink:0;
  padding:0 24px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(2,8,16,.89);
  backdrop-filter:blur(14px);
  box-shadow:0 0 32px rgba(0,0,0,.48);
}

.chat-brand{
  font-size:27px;
}

#mainNav{
  height:100%;
  display:flex;
  align-items:center;
  gap:46px;
}

#mainNav > a,
#mainNav > span{
  position:relative;
  padding:27px 4px 25px;
  color:#aeb5c1;
  font-size:13px;
  letter-spacing:1px;
}

#mainNav > .active{
  color:var(--cyan);
}

#mainNav > .active::after{
  content:"";
  position:absolute;
  left:-20px;
  right:-20px;
  bottom:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--pink),transparent);
  box-shadow:0 0 10px var(--pink);
}

#headerActions{
  justify-self:end;
  display:flex;
  gap:8px;
}

#headerActions button{
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:var(--cyan);
  background:rgba(0,0,0,.25);
}

#headerActions button:hover{
  border-color:var(--pink);
  color:var(--pink);
  box-shadow:0 0 13px rgba(255,92,239,.28);
}

#logoutButton{
  color:#ff7998 !important;
}

#settingsPanel{
  display:none;
  position:absolute;
  top:78px;
  right:0;
  z-index:60;
  width:320px;
  padding:18px;
  border:1px solid var(--pink);
  border-radius:13px;
  background:var(--panel-strong);
  box-shadow:0 0 28px rgba(255,92,239,.18);
}

#settingsPanel.open{display:block}

#settingsPanel h3{
  margin:0 0 16px;
  color:var(--pink);
  text-align:center;
  letter-spacing:2px;
}

.setting-row,
.profile-edit-row{
  display:grid;
  grid-template-columns:110px 1fr;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
  color:#b8c0cb;
  font-size:12px;
}

.setting-row input[type=color]{
  width:48px;
  height:32px;
  justify-self:end;
  border:1px solid var(--cyan);
  background:transparent;
}

.range-wrap{
  display:flex;
  align-items:center;
  gap:8px;
}

.range-wrap input{width:100%}

#settingsActions,
#profileEditActions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

#settingsActions button,
#profileEditActions button{
  padding:8px 11px;
  border:1px solid var(--cyan);
  border-radius:7px;
  color:var(--cyan);
  background:transparent;
  font-size:11px;
}

#saveSettingsButton,
#saveProfileButton{
  border-color:var(--pink) !important;
  color:var(--pink) !important;
}

#chatHero{
  flex-shrink:0;
  text-align:center;
  padding:2px 0 4px;
}

#chatHero h1{
  margin:0;
  font-size:clamp(38px,4.1vw,70px);
  line-height:.9;
  font-style:italic;
  letter-spacing:-4px;
  text-shadow:0 0 16px currentColor;
}

#chatHero h1 small{
  margin-left:16px;
  color:#f1f4f8;
  font-size:.33em;
  font-style:normal;
  letter-spacing:8px;
}

.hero-line{
  width:190px;
  height:1px;
  margin:10px auto 8px;
  background:linear-gradient(90deg,var(--cyan),#fff,var(--pink));
  box-shadow:0 0 8px rgba(255,255,255,.45);
}

#chatHero p{
  margin:0;
  color:#aeb7c4;
  font-size:10px;
  letter-spacing:4px;
}

#container{
  width:min(1500px,100%);
  flex:1;
  min-height:0;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:18px;
}

#chatSection{
  position:relative;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--cyan);
  border-radius:16px;
  background:rgba(3,11,20,.84);
  box-shadow:0 0 25px rgba(25,243,255,.10);
}

#chatTabs{
  min-height:53px;
  display:flex;
  align-items:flex-end;
  gap:4px;
  flex-shrink:0;
  padding:8px 10px 0;
  overflow-x:auto;
  border-bottom:1px solid rgba(25,243,255,.22);
  background:rgba(1,7,13,.72);
}

.chat-tab{
  position:relative;
  min-width:110px;
  height:44px;
  padding:0 15px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:7px 7px 0 0;
  color:#9ea8b5;
  background:transparent;
  letter-spacing:1px;
  font-size:12px;
}

.chat-tab:hover:not(:disabled){
  color:var(--cyan);
  background:rgba(25,243,255,.045);
}

.chat-tab.active{
  color:var(--cyan);
  background:linear-gradient(180deg,rgba(25,243,255,.08),transparent);
}

.chat-tab.active::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:0;
  height:2px;
  background:var(--cyan);
  box-shadow:0 0 10px var(--cyan);
}

.private-tab.active{
  color:var(--pink);
}

.private-tab.active::after{
  background:var(--pink);
  box-shadow:0 0 10px var(--pink);
}

.private-tab.unread{
  color:#fff;
  animation:privatePulse 1.15s ease-in-out infinite;
}

.private-close{
  margin-left:auto;
  opacity:.65;
}

@keyframes privatePulse{
  0%,100%{box-shadow:0 0 0 rgba(255,92,239,0)}
  50%{box-shadow:inset 0 -2px 0 var(--pink),0 0 15px rgba(255,92,239,.32)}
}

#messages{
  flex:1;
  min-height:0;
  padding:20px 22px;
  overflow-y:auto;
  background:
    radial-gradient(circle at 15% 30%,rgba(25,243,255,.07),transparent 30%),
    radial-gradient(circle at 85% 35%,rgba(255,92,239,.07),transparent 30%),
    linear-gradient(rgba(2,8,15,.88),rgba(2,8,15,.91)),
    url("/chat/Grafiken/Clouds.jpg");
  background-size:cover;
  background-position:center;
}

.chat-message,
.system-message{
  max-width:100%;
  margin:7px 0;
  padding:7px 10px;
  border-left:2px solid rgba(25,243,255,.22);
  color:#dfe6ef;
  background:rgba(2,9,16,.50);
  font-size:var(--chat-font-size);
  line-height:1.4;
  word-wrap:break-word;
}

.chat-message:hover{
  border-left-color:var(--cyan);
  background:rgba(25,243,255,.035);
}

.message-time{
  margin-right:9px;
  color:#778392;
  font-size:.84em;
}

.message-name{
  margin-right:5px;
  color:var(--cyan);
  font-weight:700;
  text-shadow:0 0 7px rgba(25,243,255,.35);
}

.message-name.admin-name{
  color:var(--gold);
  text-shadow:0 0 9px rgba(255,216,77,.40);
}

.system-message{
  border-left-color:var(--pink);
  color:#db9fdb;
  font-style:italic;
}

.private-info{
  margin:0 0 12px;
  padding:10px 13px;
  border:1px solid rgba(255,92,239,.35);
  border-radius:8px;
  color:var(--pink);
  background:rgba(255,92,239,.035);
  text-align:center;
  letter-spacing:1px;
  font-size:11px;
}

#inputRow{
  min-height:72px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 52px 150px;
  gap:10px;
  align-items:center;
  flex-shrink:0;
  padding:10px;
  border-top:1px solid rgba(25,243,255,.22);
  background:rgba(1,7,13,.84);
}

#messageInput{
  width:100%;
  padding:14px 15px;
  border:1px solid rgba(25,243,255,.38);
  border-radius:8px;
  outline:none;
  color:#eafaff;
  background:rgba(2,9,17,.88);
}

#messageInput:focus{
  border-color:var(--cyan);
  box-shadow:0 0 12px rgba(25,243,255,.15);
}

#emojiButton,
#sendButton{
  height:46px;
  border:1px solid var(--cyan);
  border-radius:8px;
  color:var(--cyan);
  background:rgba(25,243,255,.025);
}

#emojiButton{
  font-size:22px;
}

#sendButton{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  font-weight:700;
  letter-spacing:1px;
}

#emojiButton:hover,
#sendButton:hover{
  background:rgba(25,243,255,.07);
  box-shadow:0 0 15px rgba(25,243,255,.23);
}

#emojiBox{
  display:none;
  position:absolute;
  right:12px;
  bottom:78px;
  z-index:100;
  width:430px;
  max-width:calc(100vw - 40px);
  max-height:420px;
  overflow:hidden;
  border:1px solid var(--pink);
  border-radius:14px;
  background:rgba(3,10,19,.98);
  box-shadow:0 0 28px rgba(255,92,239,.22);
}

#emojiHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:11px 13px;
  border-bottom:1px solid rgba(255,92,239,.24);
  color:var(--pink);
  letter-spacing:2px;
}

#emojiClose,
#profileClose,
#profileEditorClose{
  width:32px;
  height:32px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:#fff;
  background:transparent;
}

#emojiSearch{
  width:calc(100% - 20px);
  margin:10px;
  padding:10px 11px;
  border:1px solid rgba(25,243,255,.30);
  border-radius:8px;
  outline:none;
  color:#fff;
  background:#020a12;
}

#emojiTabs{
  display:flex;
  gap:6px;
  padding:0 10px 10px;
}

.emoji-tab{
  padding:7px 10px;
  border:1px solid rgba(25,243,255,.18);
  border-radius:7px;
  background:transparent;
}

.emoji-tab.active{
  border-color:var(--pink);
  box-shadow:0 0 9px rgba(255,92,239,.20);
}

#emojiContent{
  max-height:230px;
  padding:11px;
  overflow-y:auto;
  background:rgba(1,7,13,.76);
}

.emoji-category{
  display:none;
  grid-template-columns:repeat(8,1fr);
  gap:6px;
  font-size:0;
}

.emoji-category.active{display:grid}

.emoji{
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:1;
  border-radius:8px;
  font-size:25px;
  cursor:pointer;
}

.emoji:hover{
  background:rgba(255,92,239,.10);
  box-shadow:0 0 10px rgba(255,92,239,.16);
  transform:scale(1.08);
}

#userListPanel{
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--pink);
  border-radius:16px;
  background:rgba(3,11,20,.87);
  box-shadow:0 0 25px rgba(255,92,239,.10);
}

#userListHeader{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 15px;
  border-bottom:1px solid rgba(255,92,239,.22);
  background:rgba(1,7,13,.72);
}

#userListHeader div{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.panel-kicker{
  color:var(--green);
  font-size:9px;
  letter-spacing:2px;
}

#userListHeader strong{
  color:var(--cyan);
  font-size:13px;
  letter-spacing:1px;
}

#onlineCount{
  padding:6px 8px;
  border:1px solid rgba(76,255,106,.26);
  border-radius:9px;
  color:var(--green);
  background:rgba(4,30,35,.62);
  font-size:10px;
}

#users{
  flex:1;
  min-height:0;
  margin:0;
  padding:12px;
  overflow-y:auto;
  list-style:none;
}

.user-entry{
  display:grid;
  grid-template-columns:10px 40px minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:2px 10px;
  align-items:center;
  min-height:58px;
  margin-bottom:8px;
  padding:9px 10px;
  border:1px solid transparent;
  border-radius:9px;
  background:rgba(255,255,255,.02);
  cursor:pointer;
}

.user-entry:hover{
  border-color:rgba(25,243,255,.28);
  background:rgba(25,243,255,.035);
}

.status-dot{
  grid-row:1/3;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 9px var(--green);
}

.user-avatar{
  grid-row:1/3;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid var(--cyan);
  border-radius:50%;
  font-size:20px;
  background:rgba(0,0,0,.35);
  box-shadow:0 0 10px rgba(25,243,255,.13);
}

.user-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff !important;
  font-size:12px;
  font-weight:700;
}

.user-badge{
  grid-column:3;
  margin:0;
  padding:0;
  color:#ff72ef;
  background:none;
  font-size:10px;
}

.user-badge.admin-badge{
  color:var(--gold);
  text-shadow:0 0 8px rgba(255,216,77,.40);
}

#profileOverlay,
#profileEditorOverlay{
  position:fixed;
  inset:0;
  z-index:500;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,3,8,.82);
  backdrop-filter:blur(10px);
}

#profileOverlay.open,
#profileEditorOverlay.open{
  display:flex;
}

#profileCard,
#profileEditorWindow{
  width:min(550px,100%);
  max-height:90vh;
  overflow-y:auto;
  padding:28px;
  border:1px solid var(--pink);
  border-radius:17px;
  background:linear-gradient(180deg,rgba(4,13,23,.98),rgba(2,8,16,.98));
  box-shadow:0 0 35px rgba(255,92,239,.22),0 25px 70px rgba(0,0,0,.65);
}

#profileCard{
  position:relative;
}

#profileClose{
  position:absolute;
  top:14px;
  right:14px;
}

#profileTop{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:20px;
}

#profileAvatar{
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  border:2px solid var(--pink);
  border-radius:50%;
  font-size:42px;
  background:rgba(0,0,0,.38);
  box-shadow:0 0 18px rgba(255,92,239,.28);
}

#profileName{
  margin:0 0 8px;
  color:var(--pink);
  font-size:27px;
  text-shadow:0 0 9px rgba(255,92,239,.28);
}

#profileStatus{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border:1px solid rgba(76,255,106,.24);
  border-radius:10px;
  color:var(--green);
  background:rgba(4,30,35,.50);
  font-size:11px;
}

#profileStatusDot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 8px var(--green);
}

#profileDetails{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:11px 15px;
  padding:17px;
  border:1px solid rgba(25,243,255,.22);
  border-radius:10px;
  background:rgba(25,243,255,.025);
  font-size:13px;
}

.profile-label{
  color:var(--cyan);
  font-size:11px;
  letter-spacing:1px;
}

#profileAbout{
  margin-top:15px;
  padding:16px;
  border:1px solid rgba(255,92,239,.22);
  border-radius:10px;
  background:rgba(255,92,239,.025);
}

#profileAbout h4{
  margin:0 0 9px;
  color:var(--pink);
  letter-spacing:1px;
}

#profileAboutText{
  margin:0;
  color:#c3cad4;
  line-height:1.55;
}

#editProfileButton,
#profileActions button{
  min-height:43px;
  border-radius:8px;
  background:transparent;
  font-weight:700;
  letter-spacing:.6px;
}

#editProfileButton{
  width:100%;
  margin-top:14px;
  border:1px solid var(--cyan);
  color:var(--cyan);
}

#profileActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}

#profileMessageButton{
  border:1px solid var(--cyan);
  color:var(--cyan);
}

#profileNudgeButton{
  border:1px solid var(--pink);
  color:var(--pink);
}

#editProfileButton:hover,
#profileMessageButton:hover{
  box-shadow:0 0 14px rgba(25,243,255,.20);
  background:rgba(25,243,255,.05);
}

#profileNudgeButton:hover{
  box-shadow:0 0 14px rgba(255,92,239,.20);
  background:rgba(255,92,239,.05);
}

.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px;
}

.modal-head h2{
  margin:0;
  color:var(--pink);
  letter-spacing:2px;
}

.profile-edit-row textarea{
  min-height:110px;
  resize:vertical;
}

#toast{
  position:fixed;
  left:50%;
  bottom:25px;
  z-index:1500;
  display:none;
  transform:translateX(-50%);
  max-width:90vw;
  padding:12px 17px;
  border:1px solid var(--cyan);
  border-radius:9px;
  color:#fff;
  background:#06101a;
  box-shadow:0 0 18px rgba(25,243,255,.25);
}

#toast.show{display:block}

#messages::-webkit-scrollbar,
#users::-webkit-scrollbar,
#emojiContent::-webkit-scrollbar,
#profileCard::-webkit-scrollbar,
#profileEditorWindow::-webkit-scrollbar{
  width:9px;
}

#messages::-webkit-scrollbar-thumb,
#users::-webkit-scrollbar-thumb,
#emojiContent::-webkit-scrollbar-thumb,
#profileCard::-webkit-scrollbar-thumb,
#profileEditorWindow::-webkit-scrollbar-thumb{
  border-radius:20px;
  background:linear-gradient(var(--cyan),var(--pink));
}

body.light-theme{
  --panel:rgba(10,22,32,.91);
  --panel-strong:rgba(8,18,28,.97);
}

@media(max-width:950px){
  body{overflow:auto}

  #app{
    height:auto;
    min-height:100vh;
  }

  #header{
    grid-template-columns:1fr auto;
  }

  #mainNav{
    display:none;
  }

  #chatHero{
    padding:10px 0;
  }

  #container{
    grid-template-columns:1fr;
  }

  #chatSection{
    height:610px;
  }

  #userListPanel{
    height:270px;
  }
}

@media(max-width:600px){
  #app{
    padding:10px;
  }

  #header{
    min-height:64px;
    padding:0 13px;
  }

  .chat-brand{
    font-size:22px;
  }

  #headerActions button{
    width:34px;
    height:34px;
  }

  #chatHero h1{
    font-size:42px;
  }

  #chatHero h1 small{
    display:block;
    margin:10px 0 0;
    font-size:13px;
  }

  #chatTabs{
    padding-left:5px;
  }

  .chat-tab{
    min-width:92px;
    padding:0 9px;
  }

  #inputRow{
    grid-template-columns:minmax(0,1fr) 48px;
  }

  #sendButton{
    grid-column:1/3;
  }

  #profileActions{
    grid-template-columns:1fr;
  }

  #profileDetails{
    grid-template-columns:100px 1fr;
  }

  .setting-row,
  .profile-edit-row{
    grid-template-columns:1fr;
  }
}


/* PROFILBILD-UPLOAD */
#profileAvatar,
.profile-image-preview{
  overflow:hidden;
}

#profileAvatar img,
.profile-image-preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}

.profile-image-editor{
  margin-bottom:18px;
  padding:18px;
  border:1px solid rgba(255,92,239,.24);
  border-radius:12px;
  background:rgba(255,92,239,.025);
  text-align:center;
}

.profile-image-label{
  display:block;
  margin-bottom:14px;
  color:var(--pink);
  font-size:12px;
  letter-spacing:2px;
}

.profile-image-preview{
  width:118px;
  height:118px;
  margin:0 auto 16px;
  display:grid;
  place-items:center;
  border:2px solid var(--pink);
  border-radius:50%;
  background:rgba(0,0,0,.38);
  box-shadow:0 0 22px rgba(255,92,239,.30);
  font-size:50px;
}

.profile-image-buttons{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.profile-image-upload,
#removeProfileImageButton{
  min-height:40px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--cyan);
  border-radius:8px;
  color:var(--cyan);
  background:transparent;
  cursor:pointer;
  font-size:11px;
  font-weight:700;
  letter-spacing:.7px;
}

#removeProfileImageButton{
  border-color:var(--pink);
  color:var(--pink);
}

.profile-image-upload:hover{
  background:rgba(25,243,255,.06);
  box-shadow:0 0 14px rgba(25,243,255,.20);
}

#removeProfileImageButton:hover{
  background:rgba(255,92,239,.06);
  box-shadow:0 0 14px rgba(255,92,239,.20);
}

.profile-image-editor small{
  display:block;
  margin-top:13px;
  color:#8993a1;
  font-family:Arial,sans-serif;
  font-size:11px;
  line-height:1.4;
}


/* PRIVATE NACHRICHTEN */
#mainNav .main-nav-button{
  position:relative;
  height:100%;
  padding:27px 4px 25px;
  border:0;
  color:#aeb5c1;
  background:transparent;
  font-size:13px;
  letter-spacing:1px;
}

#mainNav .main-nav-button.active{
  color:var(--cyan);
}

#mainNav .main-nav-button.active::after{
  content:"";
  position:absolute;
  left:-20px;
  right:-20px;
  bottom:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--pink),transparent);
  box-shadow:0 0 10px var(--pink);
}

#privateUnreadBadge{
  min-width:20px;
  height:20px;
  margin-left:5px;
  padding:0 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--pink);
  border-radius:999px;
  color:#fff;
  background:rgba(255,92,239,.20);
  box-shadow:0 0 10px rgba(255,92,239,.35);
  font-size:10px;
}

#privateMessenger{
  width:min(1500px,100%);
  flex:1;
  min-height:0;
  margin:0 auto;
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
  gap:18px;
}

#privateMessenger[hidden]{
  display:none;
}

#conversationPanel,
#privateConversation{
  min-height:0;
  overflow:hidden;
  border-radius:16px;
  background:rgba(3,11,20,.88);
}

#conversationPanel{
  display:flex;
  flex-direction:column;
  border:1px solid var(--pink);
  box-shadow:0 0 25px rgba(255,92,239,.10);
}

#privateConversation{
  display:flex;
  flex-direction:column;
  border:1px solid var(--cyan);
  box-shadow:0 0 25px rgba(25,243,255,.10);
}

#conversationHeader,
#privateConversationHeader{
  min-height:70px;
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  padding:13px 16px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(1,7,13,.76);
}

#conversationHeader{
  justify-content:space-between;
}

#conversationHeader div{
  display:flex;
  flex-direction:column;
  gap:4px;
}

#conversationHeader strong{
  color:var(--pink);
  font-size:14px;
  letter-spacing:1px;
}

#conversationUnreadTotal{
  color:#ff8cf2;
  font-size:9px;
}

#conversationList{
  flex:1;
  min-height:0;
  padding:10px;
  overflow-y:auto;
}

.conversation-empty{
  padding:42px 15px;
  color:#7f8a98;
  text-align:center;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.5;
}

.conversation-item{
  width:100%;
  min-height:72px;
  margin-bottom:7px;
  padding:9px 10px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  gap:4px 10px;
  align-items:center;
  border:1px solid transparent;
  border-radius:10px;
  color:#fff;
  background:rgba(255,255,255,.02);
  text-align:left;
}

.conversation-item:hover,
.conversation-item.active{
  border-color:rgba(255,92,239,.32);
  background:rgba(255,92,239,.045);
}

.conversation-avatar,
#privateConversationAvatar{
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(0,0,0,.40);
}

.conversation-avatar{
  grid-row:1/3;
  width:48px;
  height:48px;
  border:1px solid var(--pink);
  font-size:23px;
}

.conversation-avatar img,
#privateConversationAvatar img,
.private-bubble-avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}

.conversation-name{
  min-width:0;
  overflow:hidden;
  color:#f3f6fa;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  font-weight:700;
}

.conversation-preview{
  min-width:0;
  overflow:hidden;
  color:#7f8996;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:Arial,sans-serif;
  font-size:11px;
}

.conversation-unread{
  grid-column:3;
  grid-row:1/3;
  min-width:24px;
  height:24px;
  padding:0 7px;
  display:grid;
  place-items:center;
  border:1px solid var(--pink);
  border-radius:999px;
  color:#fff;
  background:rgba(255,92,239,.20);
  box-shadow:0 0 10px rgba(255,92,239,.26);
  font-size:10px;
}

#privateConversationAvatar{
  width:46px;
  height:46px;
  border:1px solid var(--cyan);
  font-size:22px;
}

#privateConversationHeader>div:last-child{
  display:flex;
  flex-direction:column;
  gap:5px;
}

#privateConversationName{
  color:var(--cyan);
  font-size:14px;
}

#privateConversationPresence{
  color:#8a96a4;
  font-size:10px;
}

#privateMessages{
  flex:1;
  min-height:0;
  padding:20px;
  overflow-y:auto;
  background:
    radial-gradient(circle at 18% 30%,rgba(25,243,255,.06),transparent 30%),
    radial-gradient(circle at 82% 38%,rgba(255,92,239,.06),transparent 30%),
    linear-gradient(rgba(2,8,15,.90),rgba(2,8,15,.93)),
    url("/chat/Grafiken/Clouds.jpg");
  background-size:cover;
  background-position:center;
}

.private-welcome{
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#7f8b99;
  text-align:center;
}

.private-welcome span{
  font-size:62px;
  filter:drop-shadow(0 0 14px rgba(255,92,239,.45));
}

.private-welcome strong{
  margin-top:15px;
  color:var(--pink);
  letter-spacing:2px;
}

.private-welcome p{
  max-width:480px;
  font-family:Arial,sans-serif;
  line-height:1.5;
}

.private-message-row{
  margin:8px 0;
  display:flex;
  align-items:flex-end;
  gap:9px;
}

.private-message-row.own{
  justify-content:flex-end;
}

.private-bubble-avatar{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  overflow:hidden;
  border:1px solid var(--pink);
  border-radius:50%;
  background:rgba(0,0,0,.40);
  font-size:17px;
}

.private-message-row.own .private-bubble-avatar{
  order:2;
  border-color:var(--cyan);
}

.private-message-bubble{
  max-width:min(72%,700px);
  padding:10px 13px;
  border:1px solid rgba(255,92,239,.30);
  border-radius:14px 14px 14px 3px;
  color:#e9eef5;
  background:rgba(30,7,31,.78);
  font-family:Arial,sans-serif;
  line-height:1.45;
  word-break:break-word;
}

.private-message-row.own .private-message-bubble{
  border-color:rgba(25,243,255,.30);
  border-radius:14px 14px 3px 14px;
  background:rgba(2,29,35,.78);
}

.private-message-meta{
  display:block;
  margin-top:5px;
  color:#7e8996;
  font-family:"Courier New",Consolas,monospace;
  font-size:9px;
  text-align:right;
}

#privateTyping{
  min-height:24px;
  padding:5px 18px 0;
  flex-shrink:0;
  color:var(--pink);
  background:rgba(1,7,13,.84);
  font-size:10px;
  font-style:italic;
}

#privateInputRow{
  min-height:68px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:10px;
  align-items:center;
  flex-shrink:0;
  padding:10px;
  border-top:1px solid rgba(25,243,255,.20);
  background:rgba(1,7,13,.84);
}

#privateMessageInput{
  width:100%;
  padding:14px 15px;
  border:1px solid rgba(25,243,255,.38);
  border-radius:8px;
  outline:none;
  color:#eafaff;
  background:rgba(2,9,17,.88);
}

#privateMessageInput:focus{
  border-color:var(--pink);
  box-shadow:0 0 12px rgba(255,92,239,.16);
}

#privateSendButton{
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:25px;
  border:1px solid var(--pink);
  border-radius:8px;
  color:var(--pink);
  background:rgba(255,92,239,.025);
  font-weight:700;
  letter-spacing:1px;
}

#privateSendButton:hover:not(:disabled){
  background:rgba(255,92,239,.07);
  box-shadow:0 0 15px rgba(255,92,239,.22);
}

#conversationList::-webkit-scrollbar,
#privateMessages::-webkit-scrollbar{
  width:9px;
}

#conversationList::-webkit-scrollbar-thumb,
#privateMessages::-webkit-scrollbar-thumb{
  border-radius:20px;
  background:linear-gradient(var(--cyan),var(--pink));
}

@media(max-width:950px){
  #privateMessenger{
    grid-template-columns:1fr;
  }

  #conversationPanel{
    height:260px;
  }

  #privateConversation{
    height:610px;
  }
}

@media(max-width:600px){
  #privateMessenger{
    gap:10px;
  }

  #privateInputRow{
    grid-template-columns:1fr;
  }

  .private-message-bubble{
    max-width:82%;
  }
}


/* FIX: Profilbilder in der Onlineliste */
.user-avatar{
  overflow:hidden;
  flex-shrink:0;
}

.user-avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}


/* LINKLEISTE LINKS NEBEN DEM CHAT */
#mainNav{
  position:fixed;
  top:118px;
  left:18px;
  z-index:40;
  width:150px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px;
  border:1px solid rgba(25,243,255,.30);
  border-radius:14px;
  background:rgba(2,8,15,.90);
  box-shadow:0 0 22px rgba(25,243,255,.10);
  backdrop-filter:blur(10px);
}

#mainNav > a,
#mainNav .main-nav-button{
  width:100%;
  height:auto;
  min-height:42px;
  padding:12px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:8px;
  color:#aeb5c1;
  background:rgba(255,255,255,.02);
  text-decoration:none;
  font-size:11px;
  letter-spacing:1px;
}

#mainNav > a:hover,
#mainNav .main-nav-button:hover{
  border-color:rgba(25,243,255,.30);
  color:var(--cyan);
  background:rgba(25,243,255,.04);
}

#mainNav > .active,
#mainNav .main-nav-button.active{
  border-color:rgba(255,92,239,.40);
  color:var(--pink);
  background:rgba(255,92,239,.05);
  box-shadow:0 0 12px rgba(255,92,239,.10);
}

#mainNav > .active::after,
#mainNav .main-nav-button.active::after{
  display:none;
}

#chatHero,
#container,
#privateMessenger{
  width:min(1320px,calc(100% - 210px));
  margin-left:190px;
  margin-right:20px;
}

@media(max-width:1100px){
  #mainNav{
    position:static;
    width:auto;
    margin:10px 14px 0;
    flex-direction:row;
    overflow-x:auto;
  }

  #mainNav > a,
  #mainNav .main-nav-button{
    min-width:130px;
  }

  #chatHero,
  #container,
  #privateMessenger{
    width:min(1500px,100%);
    margin-left:auto;
    margin-right:auto;
  }
}


/* ECHTE ERROR404-SEITENLEISTE */
#app{
  padding-left:190px;
}

#topBar{
  left:190px;
  width:calc(100% - 190px);
}

#mainNav{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  bottom:0 !important;
  z-index:100 !important;
  width:190px !important;
  height:100vh !important;
  margin:0 !important;
  padding:118px 14px 20px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:9px !important;
  overflow-y:auto !important;
  border:0 !important;
  border-right:1px solid rgba(25,243,255,.32) !important;
  border-radius:0 !important;
  background:#000 !important;
  box-shadow:8px 0 30px rgba(0,0,0,.45) !important;
  backdrop-filter:none !important;
}

#mainNav::before{
  content:"ERROR 404";
  position:absolute;
  top:38px;
  left:0;
  width:100%;
  color:var(--cyan);
  text-align:center;
  font-size:18px;
  font-weight:700;
  letter-spacing:3px;
  text-shadow:0 0 12px rgba(25,243,255,.55);
}

#mainNav::after{
  content:"NAVIGATION";
  position:absolute;
  top:72px;
  left:0;
  width:100%;
  color:#586371;
  text-align:center;
  font-size:9px;
  letter-spacing:2px;
}

#mainNav > a,
#mainNav .main-nav-button{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  height:46px !important;
  padding:0 14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  border:1px solid rgba(255,255,255,.07) !important;
  border-radius:7px !important;
  color:#aeb5c1 !important;
  background:#05070a !important;
  text-align:left !important;
  text-decoration:none !important;
  font-size:11px !important;
  letter-spacing:1px !important;
}

#mainNav > a:hover,
#mainNav .main-nav-button:hover{
  border-color:rgba(25,243,255,.42) !important;
  color:var(--cyan) !important;
  background:#071015 !important;
  box-shadow:inset 3px 0 0 var(--cyan),0 0 14px rgba(25,243,255,.08) !important;
}

#mainNav > .active,
#mainNav .main-nav-button.active{
  border-color:rgba(255,92,239,.46) !important;
  color:var(--pink) !important;
  background:#120713 !important;
  box-shadow:inset 3px 0 0 var(--pink),0 0 14px rgba(255,92,239,.10) !important;
}

#mainNav > .active::after,
#mainNav .main-nav-button.active::after{
  display:none !important;
}

#privateUnreadBadge{
  margin-left:auto !important;
}

#chatHero,
#container,
#privateMessenger{
  width:min(1500px,calc(100% - 28px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:800px){
  #app{
    padding-left:0;
  }

  #topBar{
    left:0;
    width:100%;
  }

  #mainNav{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    bottom:auto !important;
    width:calc(100% - 28px) !important;
    height:auto !important;
    margin:10px 14px 0 !important;
    padding:12px !important;
    flex-direction:row !important;
    overflow-x:auto !important;
    border:1px solid rgba(25,243,255,.32) !important;
    border-radius:10px !important;
  }

  #mainNav::before,
  #mainNav::after{
    display:none;
  }

  #mainNav > a,
  #mainNav .main-nav-button{
    min-width:130px !important;
    justify-content:center !important;
  }
}


/* SIDEBAR FINAL: BRAND, KEINE TOPBAR, ACTIONS UNTEN */
#header{
  display:none !important;
}

#mainNav{
  padding:28px 14px 16px !important;
  overflow:visible !important;
}

#mainNav::before,
#mainNav::after{
  display:none !important;
}

.sidebar-brand{
  width:auto !important;
  min-height:auto !important;
  height:auto !important;
  margin:0 6px 30px !important;
  padding:0 !important;
  display:block !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  text-align:center !important;
  font-size:27px !important;
  font-weight:900 !important;
  font-style:italic !important;
  letter-spacing:-2px !important;
}

.sidebar-brand:hover{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.sidebar-brand .cyan{
  color:var(--cyan) !important;
  text-shadow:0 0 14px var(--cyan);
}

.sidebar-brand .pink{
  color:var(--pink) !important;
  text-shadow:0 0 14px var(--pink);
}

.sidebar-links{
  display:flex;
  flex-direction:column;
  gap:9px;
}

#mainNav .sidebar-links > a{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  height:46px !important;
  padding:0 14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  border:1px solid rgba(255,255,255,.07) !important;
  border-radius:7px !important;
  color:#aeb5c1 !important;
  background:#05070a !important;
  text-align:left !important;
  text-decoration:none !important;
  font-size:11px !important;
  letter-spacing:1px !important;
}

#mainNav .sidebar-links > a:hover{
  border-color:rgba(25,243,255,.42) !important;
  color:var(--cyan) !important;
  background:#071015 !important;
  box-shadow:inset 3px 0 0 var(--cyan),0 0 14px rgba(25,243,255,.08) !important;
}

#mainNav .sidebar-links > .active{
  border-color:rgba(255,92,239,.46) !important;
  color:var(--pink) !important;
  background:#120713 !important;
  box-shadow:inset 3px 0 0 var(--pink),0 0 14px rgba(255,92,239,.10) !important;
}

#sidebarActions{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.08);
}

#sidebarActions button{
  width:100%;
  min-height:44px;
  padding:0 12px;
  display:grid;
  grid-template-columns:28px 1fr;
  align-items:center;
  border:1px solid rgba(255,255,255,.08);
  border-radius:7px;
  color:var(--cyan);
  background:#05070a;
  text-align:left;
}

#sidebarActions button span{
  font-size:17px;
}

#sidebarActions button strong{
  font-size:10px;
  letter-spacing:1px;
}

#sidebarActions button:hover{
  border-color:var(--pink);
  color:var(--pink);
  background:#120713;
  box-shadow:0 0 13px rgba(255,92,239,.18);
}

#sidebarActions #logoutButton{
  color:#ff7998 !important;
}

#settingsPanel{
  position:absolute !important;
  top:auto !important;
  right:auto !important;
  left:202px !important;
  bottom:16px !important;
  width:320px !important;
}

#chatHero{
  padding-top:38px !important;
}

@media(max-width:800px){
  #mainNav{
    overflow-x:auto !important;
    overflow-y:visible !important;
    padding:12px !important;
  }

  .sidebar-brand{
    min-width:140px !important;
    margin:0 8px 0 0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .sidebar-links{
    flex-direction:row;
  }

  #sidebarActions{
    margin-top:0;
    padding-top:0;
    padding-left:8px;
    flex-direction:row;
    border-top:0;
    border-left:1px solid rgba(255,255,255,.08);
  }

  #sidebarActions button{
    width:44px;
    min-width:44px;
    padding:0;
    display:grid;
    place-items:center;
  }

  #sidebarActions button strong{
    display:none;
  }

  #settingsPanel{
    position:fixed !important;
    left:14px !important;
    right:14px !important;
    bottom:14px !important;
    width:auto !important;
  }
}
