*{box-sizing:border-box}
:root{
  --blue:var(--cz-075bd7,#075bd7);
  --blue2:var(--cz-1b83ed,#1b83ed);
  --ink:var(--cz-06245f,#06245f);
  --line:var(--cz-a8cdf4,#a8cdf4);
  --glass:var(--cz-rgb-239-248-255-_88,rgba(239,248,255,.88));
  --panel:var(--cz-edf7ff,#edf7ff);
}
html,body{margin:0;width:100%;height:100%;font-family:Tahoma,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--cz-4c94d8,#4c94d8)}
button,input,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}

/* LOGIN */

.login-screen{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 50% 20%,var(--cz-dff3ff,#dff3ff) 0,var(--cz-a9d7fb,#a9d7fb) 32%,var(--cz-5ba3e5,#5ba3e5) 70%,var(--cz-327dc4,#327dc4) 100%);
}
.login-card{
  width:min(390px,100%);
  text-align:center;
  padding:28px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:28px;
  background:var(--cz-rgb-241-249-255-_74,rgba(241,249,255,.74));
  box-shadow:0 20px 70px var(--cz-rgb-0-46-112-_3,rgba(0,46,112,.3)),inset 0 1px white;
  backdrop-filter:blur(18px)
}
.cz-logo{display:flex;align-items:center;justify-content:center;gap:12px;text-align:left}
.cz-logo strong{display:block;font-size:29px}
.cz-logo small{display:block}
.login-avatar{margin:35px 0 12px}
.login-card h1{margin:5px 0;font-size:38px}
.login-card p{font-family:"Segoe Script","Comic Sans MS",cursive;font-style:italic;font-size:20px;color:var(--cz-1552a5,#1552a5)}
.login-card input{
  width:100%;height:48px;border:1px solid var(--cz-9fc8f4,#9fc8f4);border-radius:10px;
  padding:0 15px;background:rgba(255,255,255,.8);outline:none
}
.login-card input:focus{border-color:var(--cz-2786ec,#2786ec);box-shadow:0 0 0 3px var(--cz-rgb-39-134-236-_13,rgba(39,134,236,.13))}
.login-card button{
  width:100%;height:48px;margin-top:13px;border:0;border-radius:10px;color:white;
  font-weight:bold;background:linear-gradient(var(--cz-3597fa,#3597fa),var(--cz-0759d9,#0759d9));box-shadow:inset 0 1px rgba(255,255,255,.7)
}
.login-error{min-height:20px;margin-top:10px;color:#c21b31;font-size:13px}

/* MSN PEOPLE LOGO */

.people-logo{position:relative;width:58px;height:48px}
.people-logo span{position:absolute;display:block;border-radius:50% 50% 42% 42%;box-shadow:inset 4px 4px 8px rgba(255,255,255,.75),0 2px 5px var(--cz-rgb-0-40-100-_35,rgba(0,40,100,.35))}
.people-logo span:first-child{width:30px;height:38px;background:linear-gradient(#7be96e,#13a72c);left:4px;top:8px}
.people-logo span:last-child{width:38px;height:45px;background:linear-gradient(var(--cz-8ee6ff,#8ee6ff),var(--cz-1687eb,#1687eb));left:22px;top:1px}
.people-logo.big{transform:scale(2);margin:auto}
.banner-logo{transform:scale(1.2)}

/* DESKTOP APP */

.app{
  height:100dvh;
  padding:12px;
  background:
    radial-gradient(circle at 50% -20%,var(--cz-e9f8ff,#e9f8ff) 0,var(--cz-a8d6f8,#a8d6f8) 38%,var(--cz-68aee8,#68aee8) 72%,var(--cz-438acb,#438acb) 100%);
}
.titlebar{
  height:88px;position:relative;padding:10px 18px 25px;border:1px solid var(--cz-86b8eb,#86b8eb);border-radius:13px 13px 0 0;
  background:linear-gradient(180deg,rgba(255,255,255,.95),var(--cz-rgb-206-232-255-_86,rgba(206,232,255,.86)));
  box-shadow:inset 0 1px white
}
.brand{display:flex;gap:8px;align-items:center}
.crown{font-size:28px;color:#f0a900;text-shadow:0 1px white}
.brand strong{display:block;font-size:23px;color:var(--cz-073b93,#073b93)}
.brand small{display:block;font-size:13px}
.desktop-menu{position:absolute;left:18px;bottom:6px;font-size:12px}
.title-slogan{position:absolute;right:70px;top:28px;font-style:italic}
.mobile-back{display:none}

.layout{
  height:calc(100dvh - 112px);
  display:grid;
  grid-template-columns:285px minmax(400px,1fr) 255px;
  gap:8px;padding:8px;
  border:1px solid var(--cz-87b9ec,#87b9ec);border-top:0;
  background:var(--cz-rgb-235-247-255-_65,rgba(235,247,255,.65))
}
.sidebar,.chat-panel,.right-panel{
  min-height:0;border:1px solid var(--cz-9dc8f2,#9dc8f2);border-radius:9px;background:var(--cz-rgb-244-250-255-_82,rgba(244,250,255,.82));
  box-shadow:inset 0 1px white
}
.sidebar{overflow:auto}
.my-profile{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--cz-bdd8f2,#bdd8f2)}
.avatar{display:grid;place-items:center;border-radius:9px;background:linear-gradient(var(--cz-e7f6ff,#e7f6ff),var(--cz-9bd0f7,#9bd0f7));border:1px solid var(--cz-7db8ec,#7db8ec)}
.avatar-large{width:54px;height:54px;font-size:31px}
.profile-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.profile-copy strong{font-size:18px}
.profile-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}
.online{font-size:12px;color:#119b2b}
.searchbox{display:flex;margin:9px;border:1px solid var(--cz-91bfea,#91bfea);border-radius:7px;background:white}
.searchbox input{width:100%;border:0;outline:0;padding:8px;background:transparent}
.searchbox span{padding:5px 9px;font-size:20px}
.side-section{border-top:1px solid var(--cz-c1daf2,#c1daf2)}
.side-section h3{margin:0;padding:8px 10px;font-size:14px;background:linear-gradient(#fff,var(--cz-dceeff,#dceeff))}
.channel-row,.person-row{
  display:flex;align-items:center;gap:9px;padding:7px 10px;cursor:pointer
}
.channel-row:hover,.person-row:hover{background:var(--cz-d7ebff,#d7ebff)}
.channel-row.active{background:linear-gradient(90deg,var(--cz-c7e3ff,#c7e3ff),var(--cz-eaf6ff,#eaf6ff))}
.channel-hash{font-size:20px;font-weight:bold;color:var(--cz-075bd7,#075bd7)}
.channel-name{font-weight:bold;flex:1}
.badge{padding:2px 6px;border-radius:8px;background:var(--cz-b9dcff,#b9dcff);color:var(--cz-0753bc,#0753bc);font-size:11px}
.person-dot{width:9px;height:9px;border-radius:50%;background:#22bd43}
.person-name{font-weight:bold}

.chat-panel{display:grid;grid-template-rows:auto auto 1fr auto;overflow:hidden}
.channel-head{
  min-height:64px;display:flex;align-items:center;gap:10px;padding:8px 12px;
  background:linear-gradient(#fff,var(--cz-d9edff,#d9edff));border-bottom:1px solid var(--cz-a7cdf2,#a7cdf2)
}
.channel-icon{font-size:31px}
.channel-head h2{margin:0;font-size:20px}
.channel-head p{margin:3px 0 0;font-size:12px}
.mobile-members{display:none;margin-left:auto}

.welcome-banner{
  min-height:104px;margin:8px;border:1px solid var(--cz-91c4f2,#91c4f2);border-radius:8px;
  display:flex;align-items:center;justify-content:center;gap:45px;
  font-family:"Segoe Script","Comic Sans MS",cursive;font-size:22px;font-style:italic;
  background:linear-gradient(150deg,var(--cz-f4fbff,#f4fbff),var(--cz-cbe8ff,#cbe8ff) 53%,#b6e9d6)
}

/* scroll-behavior:smooth kaldırıldı: kodun yaptığı her scrollTop ataması (yeni mesajda alta inme,
   klavye açılırken sabitleme) animasyona dönüşüp yetişemiyordu. */
.messages{overflow:auto;padding:8px 16px 20px}
.message{display:grid;grid-template-columns:42px 1fr;gap:9px;padding:7px 0}
.message-avatar{
  width:38px;height:38px;display:grid;place-items:center;border-radius:7px;
  background:linear-gradient(var(--cz-dff3ff,#dff3ff),var(--cz-99cef3,#99cef3));border:1px solid var(--cz-83b8e5,#83b8e5)
}
.message-line{line-height:1.35}
.message-name{font-weight:bold;color:var(--cz-0757bd,#0757bd)}
.message.self .message-name{color:#13843a}
.message-time{margin-left:7px;color:var(--cz-6684a9,#6684a9);font-size:11px}
.message-text{margin-top:2px;color:var(--cz-08285d,#08285d);overflow-wrap:anywhere}
.system-message{text-align:center;color:var(--cz-6480a3,#6480a3);font-size:12px;padding:4px}

.composer{padding:7px;border-top:1px solid var(--cz-9ec7ee,#9ec7ee);background:linear-gradient(var(--cz-eef8ff,#eef8ff),var(--cz-cce7ff,#cce7ff))}
.composer-tools{height:28px;display:flex;gap:4px}
.composer-tools button{border:0;background:transparent;font-weight:bold;color:var(--cz-0758bd,#0758bd)}
.composer-row{display:flex;gap:7px}
.composer textarea{
  flex:1;resize:none;min-height:42px;max-height:110px;padding:11px;border:1px solid var(--cz-99c4ed,#99c4ed);
  border-radius:7px;outline:none;background:white
}
.send-button{
  min-width:90px;border:1px solid var(--cz-2675d6,#2675d6);border-radius:7px;color:var(--cz-073d8f,#073d8f);font-weight:bold;
  background:linear-gradient(#fff,var(--cz-bcdfff,#bcdfff))
}

.right-panel{overflow:auto}
.info-card,.member-card{padding:10px}
.info-card{border-bottom:1px solid var(--cz-b7d5f1,#b7d5f1)}
.info-card h3,.member-card h3{margin:0 -10px 10px;padding:8px 10px;background:linear-gradient(#fff,var(--cz-dceeff,#dceeff));font-size:14px}
.info-card h2{margin:8px 0 5px;font-size:18px}
.info-card p{font-size:12px;line-height:1.5}
.channel-stats{display:grid;gap:8px;margin-top:14px;font-size:12px}
.member-row{display:flex;align-items:center;gap:8px;padding:5px 2px}
.member-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--cz-cbe7ff,#cbe7ff)}
.member-prefix{font-weight:bold;color:#e59b00}
.member-nick{font-weight:bold}
.member-modes{font-size:11px;color:var(--cz-6481a8,#6481a8)}

.mobile-nav,.mobile-drawer,.drawer-shade{display:none}

/* MOBILE */
/* =========================================
   MSN STYLE CONNECTING SCREEN
   ========================================= */

.msn-person::before{
  content:"";

  position:absolute;

  width:31px;
  height:31px;

  left:8px;
  top:-18px;

  border-radius:50%;

  background:inherit;

  box-shadow:
    inset 6px 6px 10px rgba(255,255,255,.75),
    0 3px 7px var(--cz-rgb-0-61-130-_25,rgba(0,61,130,.25));
}

@keyframes msnOrbit{

  0%{
    transform:rotate(0deg);
  }

  100%{
    transform:rotate(360deg);
  }

}

.connecting-dots span{
  width:8px;
  height:8px;

  border-radius:50%;

  background:var(--cz-1679df,#1679df);

  animation:
    connectingDot 1.2s infinite ease-in-out;
}

.connecting-dots span:nth-child(2){
  animation-delay:.18s;
}

.connecting-dots span:nth-child(3){
  animation-delay:.36s;
}

@keyframes connectingDot{

  0%,80%,100%{
    transform:scale(.65);
    opacity:.35;
  }

  40%{
    transform:scale(1.2);
    opacity:1;
  }

}

.connecting-box small{
  color:var(--cz-6885a6,#6885a6);
}

/* =====================================================
   msnchatapp - MSN el ele dönen bağlantı animasyonu
   ===================================================== */


/* =========================
   ORTAK KARAKTER YAPISI
   ========================= */


/* YEŞİL */


/* MAVİ */


/* =========================
   KAFA
   ========================= */


.msn-buddy-green .buddy-head {
    background:
        radial-gradient(
            circle at 35% 28%,
            #efffdc 0%,
            #a7f16d 22%,
            #55ca38 58%,
            #159527 100%
        );

    box-shadow:
        inset -4px -5px 8px rgba(0, 90, 20, .20),
        inset 5px 5px 8px rgba(255,255,255,.60);
}


.msn-buddy-blue .buddy-head {
    background:
        radial-gradient(
            circle at 35% 28%,
            var(--cz-e9fbff,#e9fbff) 0%,
            var(--cz-7edaff,#7edaff) 22%,
            var(--cz-229ce8,#229ce8) 58%,
            var(--cz-0763bf,#0763bf) 100%
        );

    box-shadow:
        inset -4px -5px 8px var(--cz-rgb-0-70-150-_22,rgba(0,70,150,.22)),
        inset 5px 5px 8px rgba(255,255,255,.65);
}


/* =========================
   GÖVDE
   ========================= */


.msn-buddy-green .buddy-body {
    background:
        linear-gradient(
            135deg,
            #b7fa84 0%,
            #55ce3e 45%,
            #15982b 100%
        );

    box-shadow:
        inset 8px 5px 12px rgba(255,255,255,.48),
        inset -6px -6px 10px rgba(0,90,20,.18);
}


.msn-buddy-blue .buddy-body {
    background:
        linear-gradient(
            135deg,
            var(--cz-9eeaff,#9eeaff) 0%,
            var(--cz-2ca8ee,#2ca8ee) 45%,
            var(--cz-0866c6,#0866c6) 100%
        );

    box-shadow:
        inset 8px 5px 12px rgba(255,255,255,.52),
        inset -6px -6px 10px var(--cz-rgb-0-65-145-_20,rgba(0,65,145,.20));
}


/* =========================
   KOLLAR
   ========================= */


/* Yeşilin sağ kolu ortaya uzanıyor */


/* Mavinin sol kolu ortaya uzanıyor */


/* Ellerinin birleştiği nokta */


/* =========================
   DÖNÜŞ İZLERİ
   ========================= */


/* =========================
   ANA DÖNÜŞ
   ========================= */

@keyframes buddySpin {

    0% {
        transform:
            rotateY(0deg)
            rotateZ(0deg);
    }

    25% {
        transform:
            rotateY(90deg)
            rotateZ(3deg);
    }

    50% {
        transform:
            rotateY(180deg)
            rotateZ(0deg);
    }

    75% {
        transform:
            rotateY(270deg)
            rotateZ(-3deg);
    }

    100% {
        transform:
            rotateY(360deg)
            rotateZ(0deg);
    }
}


/*
 * Hafif yukarı aşağı hareket.
 * Eski Messenger animasyonundaki
 * canlılık hissini artırıyor.
 */

@keyframes buddyFloat {

    from {
        margin-top: -3px;
    }

    to {
        margin-top: 4px;
    }
}


/* Dönüş sırasında hafif parıltı */


@keyframes buddyShadow {

    0%, 100% {
        transform: scaleX(1);
        opacity: .65;
    }

    50% {
        transform: scaleX(.65);
        opacity: .30;
    }
}


/* MOBİL */


/* =========================================================
   msnchatapp EMOJI PICKER
   ========================================================= */


/* Emoji paneli */


/* Arama */


.emoji-picker-search input {
    flex: 1;

    height: 32px;

    border: 1px solid var(--cz-aecce8,#aecce8);
    border-radius: 16px;

    outline: none;

    padding: 0 13px;

    background: white;

    color: var(--cz-17365d,#17365d);
}


.emoji-picker-search input:focus {
    border-color: var(--cz-4b9dea,#4b9dea);

    box-shadow:
        0 0 0 2px var(--cz-rgb-70-150-230-_12,rgba(70,150,230,.12));
}


.emoji-picker-search button:hover {
    background: var(--cz-d8ebfb,#d8ebfb);
}


/* Kategoriler */


.emoji-categories button:hover {
    opacity: 1;
    background: var(--cz-rgb-126-188-240-_12,rgba(126,188,240,.12));
}


.emoji-categories button.active {
    opacity: 1;
}


.emoji-categories button.active::after {
    content: "";

    position: absolute;

    left: 7px;
    right: 7px;
    bottom: 0;

    height: 3px;

    border-radius: 3px 3px 0 0;

    background: var(--cz-2785dc,#2785dc);
}


/* Başlık */


/* Emoji alanı */


/* Composer butonları */


/* =========================================================
   MOBIL
   ========================================================= */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){

    /*
     * Eski CSS'de composer-tools display:none.
     * Emoji butonunu mobilde geri getiriyoruz.
     */


    /*
     * Mobilde şimdilik yalnız emoji.
     * A ve dosya butonlarını sonra ayrı tasarlarız.
     */

}


/* Küçük telefon */

/* =========================================================
   msnchatapp EMOJI PICKER - MOBIL FIX
   ========================================================= */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){

    /*
     * Composer her zaman emoji panelinin üzerinde/görünür
     * kalacak.
     */

    /*
     * Mobilde toolbar'ı ayrı satır yapmıyoruz.
     * Emoji butonunu mesaj satırının içine taşıyormuş
     * hissi veriyoruz.
     */

    /*
     * Emoji butonu için textarea'nın solunda boşluk.
     */

    /*
     * Picker artık ekranın altına fixed değil.
     * Composer'ın hemen ÜSTÜNDE açılıyor.
     */
}

/* =========================================================
   USER PROFILE / ACTION CARD
   ========================================================= */

.person-row:hover .person-chat-icon {
  opacity: 1;
}

.user-card-shade.open {
  display: block;
}

.user-card-info {
  text-align: center;
}

.user-card-actions button:hover {
  border-color: var(--cz-6fa9df,#6fa9df);
  background:
    linear-gradient(
      #fff,
      var(--cz-d4ebff,#d4ebff)
    );
}

.user-card-actions button > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* =========================================
   PRIVATE MESSAGE MODE
   ========================================= */

/*
 * Özel mesaj açıldığında sağ panel tamamen
 * kaybolur.
 */
.right-panel.private-hidden {
  display: none;
}

/*
 * Normal:
 * sidebar | chat | right panel
 *
 * Özel:
 * sidebar | geniş chat
 */
.layout.private-chat {
  grid-template-columns:
    285px minmax(400px, 1fr);
}

/*
 * Özel mesajda orta sohbet alanı
 * kalan alanın tamamını kullansın.
 */
.layout.private-chat .chat-panel {
  width: 100%;
}


/* Tablet */


/* Mobil zaten sağ panel kullanmıyor. */

/* =====================================================
   PRIVATE CHAT LIST
   ===================================================== */


/* =====================================================
   MOBILE SECTIONS
   ===================================================== */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){


  /* AYARLAR */

}

/* =====================================================
   msnchatapp MOBİL SOHBETLER ANA SAYFASI
   ===================================================== */

.mobile-home-search input {
  width: 100%;

  border: 0;
  outline: 0;
  background: transparent;

  color: var(--cz-153f7d,#153f7d);
  font-size: 13px;
}


/* ÜST 3 SEKME */

.mobile-home-tabs button.active {
  background:
    linear-gradient(
      #ffffff,
      var(--cz-d8edff,#d8edff)
    );

  border-color: var(--cz-7eb9ef,#7eb9ef);
  color: var(--cz-0053c7,#0053c7);
}


/* GRUPLAR */


/* NORMAL SATIR */


/* # KANAL İKONU */


/* ARKADAŞ / ÖZEL MESAJ */


/* SATIR YAZILARI */


/* KİŞİ SAYISI */


/* KANAL UNREAD */


/* ÖZEL MESAJ UNREAD */

.mobile-home-special-row .mobile-unread {
  margin-left: auto;
}


/* DAHA FAZLA */

/* =====================================================
   msnchatapp MOBİL SOHBETLER - KOMPAKT DÜZELTME
   ===================================================== */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){

  /* İç alan biraz daha sıkı */

  /* Arama */


  /* Sohbetler / Kanallar / Kişiler */


  /* Grup alanları */


  /* Kanal ve özel satırları */


  /* # simgesi */


  /* Arkadaşlar / özel mesaj simgeleri */


  /* Yazılar */


  /* Sağdaki kişi sayısı */


  /* Okunmamış mesaj */


  /* Sağ ok */


  /* Daha fazla kanal */


  /* Sabitlenen kanal */

}
/* msnchatapp — reference-inspired blue glass design. */
:root{--ink:var(--cz-103377,#103377);--blue:var(--cz-0864ee,#0864ee);--line:var(--cz-bdd9f7,#bdd9f7);--panel:var(--cz-edf7ff,#edf7ff)}
button,input,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cz-126bef,#126bef);outline-offset:3px}
button{transition:background .15s,box-shadow .15s}
/* Giriş ekranı sarmalayıcıları ve süs öğeleri: varsayılan olarak düzeni etkilemez (yalnız PC giriş düzeninde kullanılır). */html body #connectingScreen#connectingScreen .connecting-dots span:nth-child(4){display:none!important}
.login-card h1{font-size:36px;letter-spacing:-1.4px;color:var(--cz-07368d,#07368d)}.login-orbs i{width:11px;height:11px;border:1px solid var(--cz-5b9dde,#5b9dde);border-radius:50%;background:radial-gradient(circle at 30% 25%,white,var(--cz-63b4fa,#63b4fa) 65%,var(--cz-2776ce,#2776ce))}.login-orbs i:first-child{border-color:#67a954;background:radial-gradient(circle at 30% 25%,white,#8ed065 65%,#489639)}
.people-logo span{border:1px solid var(--cz-0860a7,#0860a7);box-shadow:inset 4px 1px 7px #ffffffb0,inset -4px -3px 5px var(--cz-00316b55,#00316b55),0 3px 3px var(--cz-15477635,#15477635);border-radius:48% 48% 35% 35%}
.people-logo span:first-child{width:28px;height:33px;left:30px;top:23px;background:radial-gradient(ellipse at 30% 20%,#e3ffb4,#79d333 45%,#379912);border-color:#398719}
.people-logo span:last-child{width:36px;height:40px;left:2px;top:18px;background:radial-gradient(ellipse at 30% 20%,var(--cz-adf1ff,#adf1ff),var(--cz-209cf0,#209cf0) 45%,var(--cz-0758bb,#0758bb))}
.people-logo span:before{content:"";position:absolute;width:23px;height:23px;left:1px;top:-20px;border-radius:50%;border:1px solid #317e23;background:radial-gradient(circle at 32% 24%,#f2ffdf,#8ddd47 40%,#429d15 80%);box-shadow:inset 1px 1px 3px white,0 2px 3px var(--cz-18477244,#18477244)}
.people-logo span:last-child:before{width:28px;height:28px;top:-24px;left:2px;border-color:var(--cz-125ca8,#125ca8);background:radial-gradient(circle at 32% 24%,white,var(--cz-45b7fc,#45b7fc) 35%,var(--cz-0871cf,#0871cf) 75%,var(--cz-06478f,#06478f))}.side-section h3{padding:12px;font-size:12px;background:transparent;color:var(--cz-426699,#426699)}.message.self .message-name{color:#167761}.info-card h3,.member-card h3{margin:-2px 0 14px;padding:8px 0;background:transparent;font-size:12px;color:var(--cz-55739c,#55739c)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Functional favorites / search and a single transform animation. */
#desktopPinned .mobile-home-row-main{overflow:hidden}
#desktopPinned:empty:after{content:'Yıldızla sohbet sabitle';display:block;padding:12px;color:var(--cz-6e87a7,#6e87a7);font-size:12px}
.connecting-screen:not(.hidden) .msn-buddies{animation:msnSignInSpin 1.8s linear infinite}
@keyframes msnSignInSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.connecting-screen:not(.hidden) .msn-buddies{animation:none!important}}

/* Messenger sign-in: upright blue/green buddies orbit one another. */
.connecting-screen:not(.hidden) .msn-buddies{animation:none;transform:none}
.connecting-screen:not(.hidden) .msn-buddy{left:46px;right:auto;top:17px;animation:msnBuddyOrbit 1.8s linear infinite;will-change:transform}
.connecting-screen:not(.hidden) .msn-buddy-green{animation-delay:-.9s}
@keyframes msnBuddyOrbit{
  0%,100%{transform:translate(-35px,0) scale(1);z-index:3}
  25%{transform:translate(0,-10px) scale(.8);z-index:1}
  50%{transform:translate(35px,0) scale(1);z-index:3}
  75%{transform:translate(0,10px) scale(1.12);z-index:5}
}
@media(prefers-reduced-motion:reduce){
 .connecting-screen:not(.hidden) .msn-buddy{animation:none!important;will-change:auto}
 .connecting-screen:not(.hidden) .msn-buddy-blue{transform:translate(-25px,0)}
 .connecting-screen:not(.hidden) .msn-buddy-green{transform:translate(25px,0)}
}

/* Self-contained hand-holding logo: motion is owned by setConnecting(). */
#connectingScreen .connecting-logo{height:166px;display:grid;place-items:center;perspective:none}
#connectingScreen .msn-handhold{display:block;width:180px;height:160px;overflow:visible;filter:drop-shadow(0 5px 5px var(--cz-17629324,#17629324))}

/* Original user-supplied Windows Live Messenger logo throughout the app. */
.people-logo>span{display:none!important}
#connectingScreen .connecting-logo{height:180px;position:relative}
#msnDanceCanvas{display:block;width:220px;height:180px}
#msnDanceFallback{object-fit:contain}

#msnDanceImage{display:block;width:220px;height:180px;object-fit:contain;border-radius:20px}
/* Dosya tabanlı simgeler: her satıra SVG ağacı gömmek yerine /images/icons/ altındaki
   dosyalar bir kez indirilip önbellekten maske olarak kullanılır. Renk yine currentColor. */
/* Eski <svg> gibi kare oran: temalar genişliği % ile verdiğinde (bot/VIP mesaj avatarı) kutu 0'a çökmesin */
.ico-grup-owner{--ico:url("/images/icons/grup-owner.svg")}
.ico-grup-services{--ico:url("/images/icons/grup-services.svg")}
.ico-grup-coadmin{--ico:url("/images/icons/grup-coadmin.svg")}
.ico-grup-technical{--ico:url("/images/icons/grup-technical.svg")}
.ico-grup-root{--ico:url("/images/icons/grup-root.svg")}
.ico-grup-staff{--ico:url("/images/icons/grup-staff.svg")}
.ico-grup-vip{--ico:url("/images/icons/grup-vip.svg")}
.ico-grup-q{--ico:url("/images/icons/grup-q.svg")}
.ico-grup-a{--ico:url("/images/icons/grup-a.svg")}
.ico-grup-o{--ico:url("/images/icons/grup-o.svg")}
.ico-grup-h{--ico:url("/images/icons/grup-h.svg")}
.ico-grup-v{--ico:url("/images/icons/grup-v.svg")}
.ico-grup-bot{--ico:url("/images/icons/grup-bot.svg")}
.ico-grup-gamebot{--ico:url("/images/icons/grup-gamebot.svg")}
.ico-grup-rootadmin{--ico:url("/images/icons/grup-rootadmin.svg")}
.ico-grup-gensor{--ico:url("/images/icons/grup-gensor.svg")}
.ico-grup-gensoryrd{--ico:url("/images/icons/grup-gensoryrd.svg")}
.ico-grup-sales{--ico:url("/images/icons/grup-sales.svg")}
.ico-grup-radio{--ico:url("/images/icons/grup-radio.svg")}
.ico-grup-chanserv{--ico:url("/images/icons/grup-chanserv.svg")}
.ico-grup-nickserv{--ico:url("/images/icons/grup-nickserv.svg")}
.ico-grup-help{--ico:url("/images/icons/grup-help.svg")}
.ico-grup-normal{--ico:url("/images/icons/grup-normal.svg")}
.ico-rutbe-crown{--ico:url("/images/icons/rutbe-crown.svg")}
.ico-rutbe-swords{--ico:url("/images/icons/rutbe-swords.svg")}
.ico-rutbe-shield{--ico:url("/images/icons/rutbe-shield.svg")}
.ico-rutbe-voice{--ico:url("/images/icons/rutbe-voice.svg")}
.ico-begen{--ico:url("/images/icons/begen.svg")}
.ico-paylas{--ico:url("/images/icons/paylas.svg")}
.ico-alinti{--ico:url("/images/icons/alinti.svg")}
/* Eski <svg> boyutlarının karşılıkları */
html[data-message-style="classic"] #messages .reaction-menu .ico{width:17px;height:17px}
/* Profil penceresinde yetki rozeti */
/* Mesaj tepkileri (balonun altındaki sayaçlar) — yalnız PC: biraz büyütüldü ve kullanıcının yazı boyutuyla orantılı.
   Varsayılan yazı 14 px; kullanıcı büyütüp küçültünce tepkiler de aynı oranda değişir.
   Balonun alt boşluğu da aynı ölçüyle büyür; mesaj satırı ve kaydırma kurallarına dokunulmaz. */
html{--rk:var(--chat-text-size,14px)}
/* PC (pc-reference): bir tık daha büyük */
.social-avatar img{width:100%;height:100%;object-fit:cover;border-radius:12px;border:1px solid var(--cz-a9c9f0,#a9c9f0);box-shadow:0 2px 5px var(--cz-3069aa20,#3069aa20)}.friend-button:disabled{opacity:.55}.social-friends .mobile-home-group-title span{font-size:11px;color:var(--cz-6c86a9,#6c86a9)}.social-friend-row>button:first-child:not(.friend-button){display:flex;align-items:center;gap:9px;flex:1;border:0;background:transparent;text-align:left;color:var(--cz-154184,#154184)}.social-friends details{font-size:12px;color:var(--cz-6883a2,#6883a2);margin-top:8px}.member-row .friend-button{margin-left:auto}#socialDialog{width:min(430px,calc(100vw - 28px));max-height:85dvh;border:1px solid var(--cz-a7c8f4,#a7c8f4);border-radius:20px;padding:0;color:var(--cz-1c4279,#1c4279);background:linear-gradient(145deg,var(--cz-e0efff,#e0efff),#fff 55%);box-shadow:0 20px 70px var(--cz-10386d50,#10386d50)}#socialDialog::backdrop{background:var(--cz-0e25477a,#0e25477a);backdrop-filter:blur(4px)}#socialDialog header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:var(--cz-e4f0ff,#e4f0ff);padding:14px 20px;z-index:1}#socialDialog h2{margin:0;font-size:20px}#socialDialog button{cursor:pointer;border:1px solid var(--cz-aacdf1,#aacdf1);border-radius:9px;padding:9px 13px;background:var(--cz-f5faff,#f5faff);color:var(--cz-19519a,#19519a)}#socialDialog button:disabled{opacity:.5}.social-profile-hero h3{font-size:23px;margin:12px 0 5px}#socialDialog label{display:block;font-size:13px;margin-bottom:13px}#socialDialog textarea,#socialDialog select{display:block;width:100%;box-sizing:border-box;margin-top:6px;border:1px solid var(--cz-b7d1ef,#b7d1ef);padding:10px;border-radius:9px;background:white;color:var(--cz-284a76,#284a76);font:inherit}#socialDialog textarea{min-height:75px;resize:vertical}.social-avatar-grid label{position:relative}.social-avatar-grid img{width:100%;border:3px solid transparent;border-radius:14px;box-sizing:border-box}.social-avatar-grid input{position:absolute;left:8px;top:8px}.social-avatar-grid input:checked+img{border-color:var(--cz-247dde,#247dde)}#socialDialog .social-primary{background:var(--cz-1974da,#1974da);color:white;width:100%}.social-review img{width:68px;height:68px;border-radius:12px;object-fit:cover}.social-review b{flex:1;min-width:80px}#socialToast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);z-index:10000;background:var(--cz-173f73,#173f73);color:white;padding:13px 20px;border-radius:12px;box-shadow:0 8px 30px var(--cz-102c5540,#102c5540);max-width:85vw;font-size:14px}#socialDialog input[type=file]{display:block;max-width:100%;margin-top:9px}.social-person-wrap>.friend-button{margin-right:10px}
/* Compact themed scrollbars across desktop, touch lists and dialogs. */
*{scrollbar-width:thin;scrollbar-color:var(--cz-83b5e9,#83b5e9) var(--cz-e5f0fb,#e5f0fb)}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:var(--cz-e5f0fb,#e5f0fb);border-radius:9px}*::-webkit-scrollbar-thumb{background:var(--cz-83b5e9,#83b5e9);border-radius:9px}*::-webkit-scrollbar-thumb:hover{background:var(--cz-438cda,#438cda)}.mobile-home-tabs button:first-child{white-space:normal;line-height:1.15}.message-reactions span:empty{display:none}.radio-toggle.playing>span{color:#15884f}.radio-panel header{display:flex;align-items:center;justify-content:space-between}.radio-panel header button{border:0;background:#ffffff90;border-radius:50%;width:28px;height:28px;font-size:24px;color:var(--cz-557da9,#557da9);cursor:pointer}.radio-controls #radioPlay{display:grid;place-items:center;border:1px solid #fff8;border-radius:50%;width:58px;height:58px;background:linear-gradient(145deg,var(--cz-3e9bf0,#3e9bf0),var(--cz-0956ba,#0956ba));color:white;font-size:24px;box-shadow:0 7px 18px var(--cz-246cca40,#246cca40);cursor:pointer}.radio-controls #radioPlay:disabled{opacity:.45;cursor:default}.radio-bars i{display:block;width:4px;height:5px;border-radius:3px;background:var(--cz-5297dd,#5297dd)}.radio-bars i:nth-child(2),.radio-bars i:nth-child(4){height:14px}.radio-bars i:nth-child(3){height:24px}.playing .radio-bars i{animation:radioPulse 1s ease-in-out infinite alternate}.playing .radio-bars i:nth-child(2n){animation-delay:.4s}@keyframes radioPulse{to{transform:scaleY(.35)}}@media(prefers-reduced-motion:reduce){.playing .radio-bars i{animation:none}}#reactionPeople{width:min(280px,calc(100vw - 40px));max-height:55dvh;overflow:auto;border:1px solid var(--cz-a4c8ef,#a4c8ef);border-radius:16px;background:linear-gradient(135deg,var(--cz-edf7ff,#edf7ff),#fff);color:var(--cz-21558b,#21558b);padding:0;box-shadow:0 14px 50px var(--cz-17427055,#17427055)}#reactionPeople::backdrop{background:var(--cz-17385840,#17385840)}#reactionPeople header{padding:12px 15px;display:flex;align-items:center;justify-content:space-between;background:var(--cz-e3f0ff,#e3f0ff)}#reactionPeople header button{border:0;background:transparent;font-size:24px;cursor:pointer;color:var(--cz-5481b1,#5481b1)}
/* v3: one compact reaction trigger, with a single-line popover. */.reaction-trigger small:empty{display:none}.message.self .reaction-menu{left:auto;right:0}.reaction-menu .message-reactions button{flex:0 0 34px;min-width:0;max-width:34px;height:31px;padding:3px;justify-content:center;font-size:19px;gap:1px}.reaction-menu .message-reactions span{font-size:9px}.reaction-menu .reaction-counts button{font-size:12px;padding:2px 5px;white-space:nowrap;flex:none}#statusEntry{padding:4px 10px}.sound-option input:before{content:'';position:absolute;width:17px;height:17px;border-radius:50%;background:white;left:3px;top:3px;box-shadow:0 1px 4px var(--cz-44556644,#4564)}.sound-option input:checked{background:var(--cz-2982df,#2982df)}.sound-option input:checked:before{left:20px}#friendRequests{position:fixed;right:16px;top:72px;width:300px;max-width:calc(100vw - 32px);max-height:50dvh;overflow:auto;z-index:280;border:1px solid var(--cz-b9d6f3,#b9d6f3);border-radius:14px;background:var(--cz-f1f8ff,#f1f8ff);box-shadow:0 10px 35px var(--cz-21486a35,#21486a35)}.channel-head.collapsed{min-height:34px!important;padding-top:4px!important;padding-bottom:4px!important}.channel-head.collapsed h2{font-size:14px}.info-card>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--cz-3f72a6,#3f72a6);padding:5px 0}#mobileSectionTitle{overflow-wrap:anywhere}

/* Constrain member lists in both layouts. */
#rightPanel{display:flex;flex-direction:column;overflow:hidden;min-height:0;max-height:100%}
#rightPanel.private-hidden{display:none}
#rightPanel .info-card{flex:0 0 auto;max-height:40%;overflow:auto}
#rightPanel .member-card{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
#memberList{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#mobileDrawer{display:none;flex-direction:column;max-height:100dvh;overflow:hidden}
#mobileMemberList{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:1050px){#rightPanel{display:none}}

/* Member drawer owns its scroll area and covers the composer. */
#mobileDrawer{box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom,0px);height:100dvh;max-height:100dvh;min-height:0;z-index:700;overflow:hidden;isolation:isolate}
#mobileDrawer .drawer-head,#mobileDrawer .member-search{flex-shrink:0}
#mobileDrawer #mobileMemberList{flex:1 1 0%;height:0;min-height:0;max-height:100%;overflow-y:scroll;overflow-x:hidden;scrollbar-gutter:stable;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding-bottom:16px}
#drawerShade{z-index:699}
#mobileDrawer .member-row{min-width:0;flex-shrink:0}
#mobileMemberList::-webkit-scrollbar{width:5px}
#mobileMemberList::-webkit-scrollbar-thumb{background:var(--cz-78afe2,#78afe2);border-radius:9px}
.nudge-button[hidden]{display:none!important}.nudge-button:disabled{opacity:.5}
@keyframes msnchatapp-nudge{0%,100%{translate:0 0}15%,45%,75%{translate:-6px 1px}30%,60%,90%{translate:6px -1px}}
.composer-small-button[hidden]{display:none!important}#nickTabButton{font-size:11px;flex-basis:37px}.call-panel header{display:grid;gap:6px;margin-bottom:12px}.call-controls button[hidden]{display:none}
/* Header actions stay next to scroll lock, out of the composer. */.channel-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.composer-row #emojiButton{position:static!important;display:flex!important;flex:0 0 32px;align-items:center;justify-content:center;width:32px;height:38px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;font-size:22px;pointer-events:auto;transform:none}
#messages .message.self .message-avatar{display:inline-flex!important;flex:0 0 34px;width:34px;height:34px;align-items:center;justify-content:center}
#messages .message.self .social-avatar{display:inline-flex;width:32px;height:32px}.message-text a{color:var(--cz-1266b5,#1266b5);text-decoration:underline;overflow-wrap:anywhere}
body.login-mode{position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}
body.login-mode #loginScreen{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100svh;min-height:0;overflow:hidden;overscroll-behavior:none}
/* 1.7: compact header and a genuine input-contained emoji control. */
.chat-head-actions #mobileMembersButton[hidden]{display:none!important}.private-chat .channel-head{padding-right:170px!important}
.composer-row{align-items:center!important}
.composer-row #nickTabButton{align-self:center;margin:0!important;height:30px;line-height:13px;transform:none!important}
.composer-row .message-input-wrap #emojiButton{position:absolute!important;right:5px!important;left:auto!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;width:28px;height:30px;padding:0;margin:0;z-index:2}
#voiceButton{height:34px;width:30px;min-width:30px;flex:0 0 30px;border:0;background:transparent;color:var(--cz-2878c7,#2878c7);padding:4px;border-radius:50%;align-self:center;cursor:pointer}#voiceButton svg{width:23px;height:23px}#voiceButton.recording{color:#ce2949;background:#ffe1e8}.voice-recording button[hidden]{display:none}
#radioPanel{position:fixed;transform:none;top:76px;right:14px;bottom:auto;width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto;z-index:800;border-radius:18px}#radioPanel .radio-bars i{width:5px;max-height:35px;background:linear-gradient(var(--cz-8cd4ff,#8cd4ff),var(--cz-1475dc,#1475dc));border-radius:3px;height:5px;animation:none}#radioPanel.playing .radio-bars i{animation:radio-spectrum .85s ease-in-out infinite alternate}#radioPanel .radio-bars i:nth-child(3n){animation-delay:-.4s}#radioPanel .radio-bars i:nth-child(3n+1){animation-delay:-.7s}#radioPanel .radio-bars i:nth-child(4n){animation-duration:.55s}
@keyframes radio-spectrum{from{height:5px}to{height:32px}}
@media(prefers-reduced-motion:reduce){#radioPanel.playing .radio-bars i{animation:none;height:18px}}
/* Fixed-width list controls; previews cannot push the action buttons. */.admin-content label{display:block;margin:8px 0}.admin-review img{display:block;max-width:140px;max-height:140px;margin:10px 0;border-radius:10px}.admin-review audio{max-width:100%}.admin-live-settings h3{margin:0 0 10px;font-size:15px}.admin-live-settings label{display:flex;align-items:center;gap:10px}.admin-live-settings label>span{flex:1}.admin-shuns summary{cursor:pointer;font-weight:bold}.admin-clear-channel[hidden]{display:none!important}.channel-head.admin-channel{padding-right:175px!important}
/* Permanently visible compact HTML5 radio. */
#radioPanel button{flex:none;width:32px;height:32px;padding:0;border:1px solid var(--cz-b3d7f4,#b3d7f4);border-radius:50%;background:linear-gradient(#fff,var(--cz-c7e5ff,#c7e5ff));color:var(--cz-1766b3,#1766b3);cursor:pointer}#radioPanel #radioPlay{background:linear-gradient(var(--cz-45a9fa,#45a9fa),var(--cz-0861ca,#0861ca));color:white;border-color:var(--cz-3388d7,#3388d7)}#radioPanel button:disabled{opacity:.45;cursor:default}#radioPanel .radio-info strong,#radioPanel .radio-info>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}#radioPanel .radio-info>span{font-size:9px;color:var(--cz-6085aa,#6085aa)}#radioPanel #radioVolume{width:60px;min-width:0;accent-color:var(--cz-2485de,#2485de);cursor:pointer}#radioPanel .radio-bars i{width:3px;height:3px;max-height:10px;border-radius:2px;background:linear-gradient(var(--cz-76d8ef,#76d8ef),var(--cz-2379db,#2379db));animation:none}#radioPanel.playing .radio-bars i{animation:compact-radio .7s ease-in-out infinite alternate}#radioPanel .radio-bars i:nth-child(3n){animation-delay:-.4s}#radioPanel .radio-bars i:nth-child(3n+1){animation-delay:-.2s}
@keyframes compact-radio{to{height:10px}}@media(prefers-reduced-motion:reduce){#radioPanel.playing .radio-bars i{animation:none;height:7px}}

/* Compact composer and right-edge follow control. */
.chat-panel>#scrollLockButton[aria-pressed=true]{background:var(--cz-d1e9fb,#d1e9fb);color:var(--cz-075daf,#075daf);border-color:var(--cz-65a5db,#65a5db)}
.composer-row .message-input-wrap{border:0!important;outline:none!important;box-shadow:none!important}
#sendButton{display:grid!important;place-items:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--cz-299bd8,#299bd8)!important;box-shadow:none!important;color:white!important}
#sendButton svg{display:block}#nickTabButton{height:29px!important}#voiceButton{font-size:20px!important}

/* Remove the legacy mobile send glyph and keep the composer truly single-height. */
#sendButton::before,#sendButton::after{content:none!important;display:none!important}
.composer-row .message-input-wrap textarea::-webkit-scrollbar{display:none}
#app .chat-panel{grid-template-rows:auto minmax(0,1fr) auto}

#sendButton{background:transparent!important;border-radius:0!important;color:var(--cz-229ed9,#229ed9)!important}#sendButton svg{width:27px;height:27px}

#app .chat-panel>#mobileMembersButton{position:absolute;right:6px;top:calc(50% - 47px);z-index:8;min-width:32px;width:auto;height:39px;padding:2px;display:flex;flex-direction:column;justify-content:center;gap:0;border:1px solid var(--cz-bfd9ee,#bfd9ee);border-radius:8px;background:var(--cz-eff8fff0,#eff8fff0);font-size:12px}
#app .chat-panel>#mobileMembersButton[hidden]{display:none!important}
#msnDanceImage{background:transparent!important;border-radius:0!important;animation:transparent-msn 2.4s linear infinite!important;object-fit:contain}
@keyframes transparent-msn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#msnDanceImage{animation:none!important}}
.reaction-menu{width:max-content!important;min-width:224px!important;max-width:calc(100vw - 24px)!important;box-sizing:border-box!important}
.reaction-menu .message-reactions{display:flex!important;flex-wrap:nowrap!important;gap:3px!important;box-sizing:border-box!important}
.reaction-menu .message-reactions button{flex:0 0 auto!important;min-width:29px!important;padding:3px!important}#msnOrbit{display:block;max-width:100%;overflow:visible;background:transparent;transform:none!important;animation:none!important}
/* Giriş simgesi iki katman (halka sabit, figürler hareketli) üst üste; telefonda %25 küçük. */
#msnOrbit{position:relative;width:240px;height:190px;margin:0 auto}#msnOrbit>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}#msnOrbit>.orbit-figures{will-change:transform}

/* Explicitly requested login motion, scoped to the visible connection screen. */
#connectingScreen:not(.hidden) .connecting-dots span{display:inline-block;animation:login-dot-wave 1.05s ease-in-out infinite!important;animation-play-state:running!important;transform-origin:center}
#connectingScreen:not(.hidden) .connecting-dots span:nth-child(2){animation-delay:.15s!important}
#connectingScreen:not(.hidden) .connecting-dots span:nth-child(3){animation-delay:.30s!important}
@keyframes login-dot-wave{0%,65%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}

/* Member count sits above the history lock on every screen size. */
#app .chat-panel>#mobileMembersButton{top:calc(50% - 40px)!important;bottom:auto!important;right:7px!important;flex-direction:row!important;height:32px!important;z-index:8}.admin-category>summary{cursor:pointer;font-weight:700}.admin-category>form>h3{display:none}.theme-options button[aria-pressed=true]{outline:2px solid currentColor}




#socialToast[popover]{margin:0;border:0;top:auto;right:auto;bottom:85px;left:50%}

/* Channel names carry unread state, without numeric message counters. */
.channel-unread .channel-name,.channel-unread .channel-hash,.channel-unread .mobile-home-row-main>b,.channel-unread .mobile-list-main>b,.channel-unread .mobile-channel-icon,.channel-unread .mobile-home-icon.channel{color:#e53950!important}
.history-page:disabled{cursor:default;opacity:.75}.operator-total:first-letter{color:#dfaa13}

/* Own messages use the selected UI palette rather than a fixed green. */
html .message.self .message-name{color:var(--cz-0756b9,#0756b9)!important}.text-preferences label{display:flex;flex-direction:column;gap:4px;min-width:0}.text-preferences label:first-child{flex:1}.reaction-menu{z-index:1200!important}.quoted-message span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-preview>div{flex:1;min-width:0}.typing-line>span{background:var(--cz-d5eaff,#d5eaff);border-radius:5px;padding:2px 5px}@keyframes typing-pulse{from{opacity:.35}to{opacity:1}}


/* Compact inline reactions and channel join controls. */
#messages .reaction-trigger:focus-visible{outline:2px solid #1877f2;outline-offset:2px}
.text-preferences>div{flex-wrap:wrap}

/* Tap the bubble to react; received reactions sit below its right edge. */
#messages .message-body[tabindex]{cursor:pointer}
#messages .message-body:focus-visible{outline:2px solid var(--cz-438cda,#438cda);outline-offset:3px}
#messages .reaction-widget>.reaction-counts:empty{display:none}
#messages .reaction-counts b:empty{display:none}
#messages .reaction-menu[hidden]{display:none!important}
#messages .reaction-menu .message-reactions button{display:flex;align-items:center;justify-content:center;flex:0 0 34px!important;min-width:0!important;max-width:none;width:34px;height:36px;min-height:36px;padding:0!important;border:0;border-radius:50%;background:transparent;font-size:26px;cursor:pointer}
#messages .reaction-menu button:hover,#messages .reaction-menu button.selected{background:#e9eef2}
#messages .reaction-share svg{flex:none}

/* Keep long reply excerpts inside the available grid and composer width. */
.reply-preview>div{flex:1 1 0;min-width:0;overflow:hidden}

/* Each text preference gets usable space even in the narrow desktop sidebar. */
.text-preferences label{width:100%;min-width:0}.private-preference>span:first-child{flex:1}.private-preference input:checked+.private-switch{background:var(--cz-0758bd,#0758bd)}.private-preference input:checked+.private-switch:after{transform:translateX(16px)}.private-preference input:focus-visible+.private-switch{outline:2px solid currentColor;outline-offset:3px}
.social-profile-hero h3{margin:10px 0 5px}
#contactForm label,#adminPages label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}#contactForm input,#contactForm textarea,#adminPages textarea{box-sizing:border-box;width:100%;padding:10px;border-radius:9px;border:1px solid var(--cz-a7cdf2,#a7cdf2);background:var(--cz-f4fbff,#f4fbff);color:inherit;font:inherit}#contactForm input[readonly]{opacity:.75}

/* Shared menu styles also apply outside the mobile media query. */
.user-settings-menu .mobile-setting-row>span{flex:1;display:flex;flex-direction:column;gap:4px}.user-settings-menu .mobile-setting-row b{font-size:13px}.user-settings-menu .mobile-setting-row i{font-style:normal;color:var(--cz-91abc2,#91abc2)}.voice-player audio[hidden]{display:none}
.member-search:focus{border-color:var(--cz-94bbd5,#94bbd5)!important;outline:none!important;box-shadow:none!important}

.voice-wave i.played{opacity:1}
#mobileMemberList{border-top:1px solid var(--cz-c1daf2,#c1daf2);padding-top:7px}
#drawerMemberSummary{display:flex;gap:14px;flex-wrap:wrap;padding:7px 12px;font-size:11px;color:var(--cz-0758bd,#0758bd)}.voice-room-panel header b{flex:1}.voice-room-panel button:disabled{opacity:.5}.room-speakers article{display:flex;flex-direction:column;align-items:center;gap:6px;width:82px;text-align:center;font-size:12px}.room-listeners article{display:flex;align-items:center;gap:9px;padding:8px;border-bottom:1px solid var(--cz-c1daf2,#c1daf2);font-size:12px}.room-listeners article>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.private-floating-clear:before{content:'⌫';font-size:17px}.private-floating-clear[hidden],.private-floating-close[hidden]{display:none!important}.voice-room-panel [hidden]{display:none!important}.voice-room-panel details{margin-top:12px;padding:10px 0;border-top:1px solid var(--cz-c1daf2,#c1daf2)}.voice-room-panel details article{padding:8px 0;border-bottom:1px solid var(--cz-c1daf2,#c1daf2)}

/* Admin text defaults: keep the native palette visible on mobile and desktop. */
#adminTextDefaults{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 0}
#adminTextDefaults label{display:flex;flex-direction:column;gap:6px;min-width:0}
#adminTextDefaults select{width:100%;min-height:36px;border:1px solid var(--border,#acd0ef);border-radius:8px;background:var(--panel,#f4faff);color:inherit;padding:5px}
#adminTextDefaults input[type=color]{display:block;appearance:auto;width:100%;height:42px;min-height:42px;padding:4px;border:1px solid var(--border,#acd0ef);border-radius:8px;cursor:pointer;background:transparent}
#adminTextDefaults input[type=color]::-webkit-color-swatch-wrapper{padding:0}
#adminTextDefaults input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}
#adminTextDefaults input[type=color]::-moz-color-swatch{border:0;border-radius:5px}
#adminTextDefaults label:is(:where(.has-16fd58d1),:not(*).h_:not(h_)){grid-column:1/-1;flex-direction:row;align-items:center}
#adminTextDefaults input[type=checkbox]{width:17px;height:17px;min-height:0;margin:0}
#adminTextDefaults button{grid-column:1/-1}.image-viewer img{display:block;width:100%;height:100%;object-fit:contain}#adminConnection input[type=checkbox]{display:inline-block;width:16px;height:16px}
.call-controls svg{display:block;width:22px;height:22px}
#audioCallButton{font-size:0!important;background-image:url("/images/simgeler/sesli-arama.png")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important}
#videoCallButton{font-size:0!important;background-image:url("/images/simgeler/goruntulu-arama.png")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important}
#nudgeButton{font-size:0!important;background-image:url("/images/simgeler/titresim.png")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important}
#channelHeadToggle{font-size:0!important;background-image:url("/images/simgeler/baslik-kapat.png")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important}
#voiceButton.has-custom-icon:not(.recording){font-size:0!important;background-image:url("/images/simgeler/mikrofon.png")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important}
#voiceButton.has-custom-icon:not(.recording)>svg{visibility:hidden}

.private-header-actions button,#audioCallButton,#videoCallButton,#nudgeButton,#channelHeadToggle{border:0!important;box-shadow:none!important;background-color:transparent!important;border-radius:0!important}
#voiceButton svg{width:29px;height:29px}
.admin-clear-channel:before,.private-floating-clear:before,.channel-head .chat-head-actions .admin-clear-channel:before{content:none!important}.admin-clear-channel.clear-icon-ready>svg{visibility:hidden}
#ircAccountForm label{display:flex;flex-direction:column;gap:6px;margin:10px 0}#ircAccountForm input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid var(--cz-acd1ef,#acd1ef);border-radius:8px;background:var(--cz-f4fbff,#f4fbff);color:inherit;padding:8px 10px;font:inherit}

/* Kanal başlığı ve hedefe açılan bildirimler */#socialToast.clickable:focus-visible{outline:2px solid #167adc;outline-offset:3px}
#channelHeadToggle{position:absolute;right:7px;top:10px;width:24px;height:26px;padding:0;border:0!important;box-shadow:none!important;background:transparent url('/images/simgeler/baslik-kapat.png') center/20px 20px no-repeat!important;cursor:pointer}#channelHeadToggle[hidden]{display:none!important}.channel-head.collapsed>:not(#channelHeadToggle){display:none!important}

/* Profil PNG simgeleri, gönderim seçimi ve özel başlık hizası */
#userCardContext{font-size:14px;margin:0 26px 12px 0;text-align:left}#userCard{max-height:90dvh;overflow:auto}

/* Kanal ve özel sohbet baloncukları */
html:is([data-message-style="modern"],[data-message-style="standard"]) #messages .message.self .message-avatar{display:none!important}
html:is([data-message-style="modern"],[data-message-style="standard"]) #messages .message .message-body{width:fit-content;min-width:0;max-width:min(78%,560px);padding:7px 12px 6px;border:0!important;border-radius:18px 18px 18px 4px;background:var(--cz-d5eaff,#dce7ff)!important;color:var(--cz-08285d,#213750);box-shadow:none}
html[data-message-style="modern"] #messages .message.self .message-text,html[data-message-style="modern"] #messages .message.self .message-name{color:#fff!important}
html:is([data-message-style="modern"],[data-message-style="standard"]) #messages .message .message-body>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
html:is([data-message-style="modern"],[data-message-style="standard"]) #messages .message.self .moderated-media>small{color:#fff}
/* Topic kanal adıyla aynı satırda */
/* Kapalı başlık yer kaplamaz; açma simgesi sohbet üzerinde kalır. */

/* Üst topic yalnız mobilde; masaüstünde sağ bilgi paneli kullanılır. */.google-login[hidden]{display:none!important}

/* Keyboard login: retain every field and the MSN logo in the visible area. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Klavye açıkken önemsiz kısımlar gizlenir (alt yazı, karekod düğmeleri, gizlilik bağlantısı, alt bilgi, süs): kart az küçülür.
   :is(#rh×6,*) yalnız önceliği yükseltir (giriş ekranı tema kuralları id'li ve !important). Klavye kapanınca hepsi geri gelir. */
/* Kart %85'e küçülünce de sığmıyorsa: ekran kaydırılır, kart üstten hizalanır. */
/* Küçültme üstten yapılır: kartın düzen yüksekliği görünür alandan büyükken ortadan küçültme alt kısmı (Giriş Yap) taşırıyordu. */
}

/* Profile hero uses the same framed size for photos and built-in avatars. */
#socialPhotoSend{display:block;width:100%;margin-top:8px}

/* Readable pending media status and compact interval settings. */
html body #app .message .moderated-media .media-pending-status,
html body #app .moderated-media .media-pending-status{color:#000!important;-webkit-text-fill-color:#000!important;text-shadow:none!important}
#adminSendIntervals{display:grid;gap:12px}#adminSendIntervals label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}#adminSendIntervals select{width:145px;max-width:55%;padding:8px;border:1px solid #a9c9ec;border-radius:8px}
/* Operatör komut sonucu: başarılı yeşil, başarısız kırmızı bar. */
/* Status penceresi aç/kapa düğmesi (ortada). */
.status-toggle-row button.is-muted{background:#8794a5!important;border-color:#6d7a8b!important;opacity:.92}
.status-toggle-row button:hover{opacity:.88}
/* Modern mobil üst bar özel mesaj bildirim ikonu (kırmızı sayı rozetli). Yalnız modern mobilde görünür. */
#modernPrivateBell{display:none}
#modernPrivateBell svg{width:22px;height:22px;display:block}
#modernPrivateBell .md-private-badge[hidden]{display:none!important}
html.modern-demo[data-applet-choice="modern"] body #app#app .channel-head>#modernPrivateBell:not([hidden]){position:absolute!important;left:var(--bell-x,calc(75% - 30px))!important;top:50%!important;transform:translate(-50%,-50%)!important;display:flex!important;align-items:center!important;justify-content:center!important;width:34px!important;height:34px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:#fff!important;cursor:pointer;z-index:3;overflow:visible!important}
html.modern-demo[data-applet-choice="modern"] body #app#app #modernIdentity :is(strong,small){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #app #modernPrivateBell[hidden],html body #modernPrivateBell[hidden]{display:none!important}

/* Shared admin/operator actions and grouped permission controls. */
#adminCallDurations{display:grid;gap:12px}#adminCallDurations label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}#adminCallDurations select{width:145px;max-width:55%;padding:8px;border:1px solid #a9c9ec;border-radius:8px}
#adminAnnouncement input[name="name"]{box-sizing:border-box;width:100%;margin-top:6px;padding:9px;border:1px solid #a9c9ec;border-radius:8px}

html body #app .admin-announcement-message .announcement-sender{color:#d71920!important;-webkit-text-fill-color:#d71920!important}

#youtubeSendForm{display:grid;gap:12px;min-width:0}
#youtubeSendForm label{margin:0!important}
#socialDialog #youtubeSendForm textarea{width:100%;min-height:64px;max-height:130px;resize:vertical;box-sizing:border-box;background:#fff;color:#17365d;border:1px solid #9fc2e8;border-radius:10px;padding:10px;font:16px/1.4 Arial,sans-serif;-webkit-text-security:none}
#youtubeSendForm iframe{display:block;width:100%;height:100%;border:0}
#socialDialog #youtubeSendForm button{color:#fff;border:0;padding:9px 14px;border-radius:8px;font-weight:600;background:var(--cz-1974da,#1974da)}
#socialDialog #youtubeSendForm [type=submit]{background:var(--cz-1974da,#1974da)}
#socialDialog #youtubeSendForm [data-youtube-cancel]{background:var(--cz-1974da,#1974da)}
#socialDialog #youtubeSendForm button:hover:not(:disabled){filter:brightness(1.08)}
#socialDialog #youtubeSendForm button:focus-visible{outline:2px solid #78b7f5;outline-offset:3px}

/* Consistent account dialog actions. */
html body #socialDialog form button[type="submit"]{background:var(--cz-1974da,#1974da)!important;border-color:var(--cz-0758bd,#0758bd)!important;color:#fff!important}

html body #messages .message .quoted-message{color:#26352e!important;background:#edf4f8!important;border-left-color:#5386a6!important}html body #messages .message .quoted-message :is(b,span){color:inherit!important}html.modern-demo body #messages .message .quoted-message{background:var(--md-e5f3ed,#e5f3ed)!important;border-left-color:var(--md-00866c,#00866c)!important;color:#26352e!important}
/* Resim gönderme penceresi: tüm temalar (modern tema kendi renkleriyle üzerine yazar) */
.modern-image-confirm header{font:600 15px Arial,sans-serif;margin-bottom:12px}
.modern-image-confirm>img{display:block;width:100%;max-height:min(340px,55vh);object-fit:contain;border-radius:10px;background:#eef5fc}
.modern-image-confirm .image-send-preview button:disabled{opacity:.6;cursor:default}
/* ── Sesli mesaj kaydı (WhatsApp tarzı) ─────────────────────────────────────────
   Kayıt çubuğu mesaj satırının üstüne bindirilir; satır ve gönder düğmesi yerinden oynamaz. */
/* Yalnız kayıt sürerken satır konum kutusu olur; aksi halde Tab gibi mutlak konumlu düğmeler yer değiştirir. */
html body #app .composer-row.vr-active{position:relative}
html body #app .composer-row.vr-active #nickTabButton{visibility:hidden}
html body #app .composer-row>.voice-recording[hidden]{display:none!important}
@keyframes vr-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
html body #app .composer-row>.voice-recording .vr-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:100%;transform:translateX(calc(-1 * var(--vr-slide,0px)));transition:transform .08s linear}
html body #app .composer-row>.voice-recording .vr-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#e5383b;box-shadow:0 0 0 calc(var(--vr-level,0) * 7px) rgba(229,56,59,.22);animation:vr-blink 1s steps(2,jump-none) infinite}
html body #app .composer-row>.voice-recording.vr-review .vr-dot{animation:none;background:#8a98a8;box-shadow:none}
@keyframes vr-blink{50%{opacity:.25}}
html body #app .composer-row>.voice-recording .vr-time{flex:none;min-width:34px;font:600 14px/1 Arial,sans-serif;font-variant-numeric:tabular-nums;color:#1f2d3a}
html body #app .composer-row>.voice-recording .vr-wave{flex:1;min-width:30px;height:26px;color:#1aa260;opacity:.95}
html body #app .composer-row>.voice-recording.vr-review .vr-wave{color:#8a98a8}
html body #app .composer-row>.voice-recording .vr-hint{display:none;flex:none;color:#7b8794;font-size:12px;white-space:nowrap;animation:vr-nudge 1.4s ease-in-out infinite}
html body #app .composer-row>.voice-recording.vr-hold .vr-hint{display:inline}
html body #app .composer-row>.voice-recording.vr-cancelling .vr-hint{color:#e5383b;font-weight:600}
@keyframes vr-nudge{50%{transform:translateX(-5px)}}
html body #app .composer-row>.voice-recording .vr-status{display:none;flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b6b7b;font-size:12px}
html body #app .composer-row>.voice-recording.vr-review .vr-status{display:inline}
html body #app .composer-row>.voice-recording.vr-review .vr-wave{flex:0 1 90px}
/* Düğmeler: çöp kutusu (iptal), durdur, gönder */
html body #app .composer-row>.voice-recording button{flex:0 0 36px;width:36px;height:36px;padding:7px;border:0!important;border-radius:50%!important;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none!important}
html body #app .composer-row>.voice-recording button[hidden]{display:none!important}
html body #app .composer-row>.voice-recording [data-voice-cancel]{background:transparent!important;color:#8a98a8!important}
html body #app .composer-row>.voice-recording [data-voice-cancel]:hover{color:#e5383b!important}
html body #app .composer-row>.voice-recording [data-voice-stop]{background:#fdecec!important;color:#e5383b!important}
html body #app .composer-row>.voice-recording [data-voice-send]{background:#1aa260!important;color:#fff!important;animation:vr-pop .2s ease-out}
@keyframes vr-pop{from{transform:scale(.6)}to{transform:scale(1)}}
html body #app .composer-row>.voice-recording button svg{width:20px;height:20px}
/* Mikrofon düğmesi kayıttayken: kırmızı ve sesle büyüyen halka */
html body #app#app#app#app #voiceButton.recording.recording :is(svg,img),html body #voiceButton.recording :is(svg,img){filter:brightness(0) invert(1)}
/* Basılı tutma modunda: bırakmak = durdur. Mikrofon sağda üstte kalır, ona yer açılır. */
html body #app .composer-row>.voice-recording.vr-hold{padding-right:58px!important}
html body #app .composer-row>.voice-recording.vr-hold [data-voice-stop]{display:none!important}
/* Onay aşamasında çubuk her şeyin üstünde: Gönder / İptal düğmeleri örtülmez */
html body #app .composer-row>.voice-recording.vr-review{z-index:60!important}
@media (prefers-reduced-motion:reduce){html body #app .composer-row>.voice-recording,html body #app .composer-row>.voice-recording *{animation:none!important}}
/* "Yazıyor" katmanı: mesaj alanının sol altında, şeffaf yan yana kutucuklar; hiçbir şeyi kaydırmaz. */
html body .typing-line.typing-overlay[hidden]{display:none!important}
html body .typing-line.typing-overlay>span{flex:none;display:inline-flex;align-items:center;gap:4px;max-width:140px;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;background:rgba(40,52,64,.38);background:color-mix(in srgb,var(--typing-accent,#283440) 58%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-shadow:0 1px 1px rgba(0,0,0,.25);letter-spacing:.2px}
html body .typing-line.typing-overlay>span>i{font-style:normal;letter-spacing:1px;opacity:.95;animation:typing-pulse 1s infinite alternate}
@media (prefers-reduced-motion:reduce){html body .typing-line.typing-overlay>span>i{animation:none}}
/* "Yazıyor" kutucukları için mesaj alanının altında SABİT boşluk: kutucuk çıkıp kaybolurken içerik kaymaz,
   son mesaj kutucukların altında kalmaz. */
/* "Yazıyor" kutucukları için alt boşluk yalnız PC'de: orada katman mesajların altında durur.
   Mobilde kutucuklar Tab satırında olduğu için mesaj alanı boşluk ayırmaz, son mesaj aşağı iner. */
/* Duyuru saati: kanal mesajlarındaki gibi satırın sağ üstünde, küçük ve soluk */
html body #app #messages .admin-announcement-message{position:relative!important;padding-right:48px!important;padding-top:15px!important}
html body #app #messages .admin-announcement-message>.announcement-time{position:absolute;top:5px;right:9px;font:400 10px/13px Arial,sans-serif;color:#8a97a6;-webkit-text-fill-color:#8a97a6;letter-spacing:.2px;pointer-events:none}
/* mIRC tarzı ban penceresi */
/* App Shun penceresi ban penceresini temel alır; yalnız kapsam etiketini ekler. */
.ban-window.shun-window .ban-head,.ban-window.shun-window .ban-row{grid-template-columns:1fr 120px 64px}
/* Rütbeli ama kendi avatarını seçmiş kullanıcının mesaj avatarı: rütbe ikonu dolgusu olmadan tam avatar. */
html body #app#app#app#app #messages .rank-message.rank-chosen-avatar .message-avatar{padding:0!important;background:none!important}
html body #app#app#app#app #messages .rank-message.rank-chosen-avatar .message-avatar>.social-avatar{width:100%!important;height:100%!important}
/* Profil: applet shun satırı (kapsam seçimi + düğme). */
/* Yeni özel mesajda yalnız kırmızı sayı rozetleri yanıp söner (PC + mobil, tüm görünümler). */
@keyframes private-badge-blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.2;transform:scale(1.22)}}
html.private-badge-blink :is(#modernPrivateBell .md-private-badge,.private-unread,.mobile-nav button[data-mobile="friends"] .mobile-nav-badge,.md-private-list .md-channel em b,.reference-private-row .reference-private-bottom i,.pc-navigation button[data-pc-view="friends"]>b,#modernDemoTabs [data-md-tab="friends"]>b){animation:private-badge-blink .7s ease-in-out 4!important;will-change:opacity,transform}
@media(prefers-reduced-motion:reduce){html.private-badge-blink :is(#modernPrivateBell .md-private-badge,.private-unread,.mobile-nav button[data-mobile="friends"] .mobile-nav-badge,.md-private-list .md-channel em b,.reference-private-row .reference-private-bottom i,.pc-navigation button[data-pc-view="friends"]>b,#modernDemoTabs [data-md-tab="friends"]>b){animation:private-badge-blink 1.4s ease-in-out 2!important}}
/* WHOIS kartı — tüm yüzeyler aktif tema renginden (--op-accent) türetilir; siyah/gece temasında koyu mod. Mobilde kompakt. */
.whois-card{--a:var(--op-accent,#2d558d);--wc-text:#1d2a3a;--wc-muted:#66768a;--wc-body:color-mix(in srgb,var(--a) 7%,#fff);--wc-surface:#fff;--wc-border:color-mix(in srgb,var(--a) 22%,#e3e9f1);--wc-soft:color-mix(in srgb,var(--a) 11%,#fff);--wc-title:color-mix(in srgb,var(--a) 82%,#000);--wc-mix:#fff;--wc-ink:#000}
.whois-card.whois-dark{--wc-text:#e7edf5;--wc-muted:#9aa8b8;--wc-body:color-mix(in srgb,var(--a) 10%,#14171b);--wc-surface:color-mix(in srgb,var(--a) 6%,#1d2127);--wc-border:color-mix(in srgb,var(--a) 30%,#2c3239);--wc-soft:color-mix(in srgb,var(--a) 18%,#252a31);--wc-title:color-mix(in srgb,var(--a) 40%,#fff);--wc-mix:#1d2127;--wc-ink:#fff}
.whois-card h3{margin:0;font-size:19px;line-height:1.2;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whois-card section{margin:0 0 10px;padding:9px 11px;border-radius:12px;background:var(--wc-surface);border:1px solid var(--wc-border)}
.whois-card h4{display:flex;align-items:center;gap:7px;margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--wc-title)}
.whois-card h4 i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--wc-soft);font-size:12px}
.whois-card h4 small{margin-left:auto;font-weight:700;color:var(--wc-muted);text-transform:none}
.whois-card .whois-chip b{font-weight:800}
.whois-card .whois-chip[data-role="q"]{--hue:#d99a00}
.whois-card .whois-chip[data-role="a"]{--hue:#d0357a}
.whois-card .whois-chip[data-role="o"]{--hue:#22984a}
.whois-card .whois-chip[data-role="h"]{--hue:#2f72cf}
.whois-card .whois-chip[data-role="v"]{--hue:#7a4bd1}
.whois-card .whois-foot button[data-whois-close]{background:var(--a);border-color:var(--a);color:#fff}
.whois-card.whois-dark .whois-chip[data-role="n"]{--hue:#8fa5bf}
.whois-card.whois-dark .whois-foot button[data-whois-close]{background:color-mix(in srgb,var(--a) 45%,#5d6d82);border-color:color-mix(in srgb,var(--a) 45%,#6d7d92)}
/* Profil penceresinde Whois düğmesi: simge satırının altında, tema renginde, tüm görünümlerde. */
/* Mobil: gelen arama penceresi görünür alanın ortasında (iOS klavye/kaydırma dahil), her şeyin üstünde. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Gizlenen aramanın "göster" telefon simgesi, sağdaki nick listesi (MSN) düğmesiyle çakışmasın diye yukarıda. */
}
/* Görünüm penceresi: tema görünümü kartları (WhatsApp / Classic qwebirc). Dar ekranda da yan yana, taşmasız. */
#socialDialog label.appearance-style-card{display:flex!important;flex-direction:column;align-items:center;gap:4px;min-width:0;margin:0!important;padding:8px 8px 9px;border:2px solid #d6e2ee;border-radius:12px;background:#fff;cursor:pointer;text-align:center;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
#socialDialog label.appearance-style-card input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
#socialDialog label.appearance-style-card.is-disabled{opacity:.5;cursor:not-allowed}
#socialDialog label.appearance-style-card:focus-within{outline:2px solid color-mix(in srgb,var(--op-accent,#1974da) 55%,transparent);outline-offset:2px}
.appearance-style-preview[data-style="classic"] .asp-tabs em{display:block;width:22px;height:6px;border-radius:2px;background:#d8ecff}
/* Sunucudan gelen emoji resimleri (images/emojiler). */
/* Modern mobil özel sohbet üst barı: arkadaş ekle / engelle / kapat (arama butonlarıyla aynı esnek grup → pasif olunca kayma yok). */
html body #modernCallActions [data-md-private-tool][hidden]{display:none!important}
/* Aktif/Pasif: YouTube / mikrofon / resim için kanalda-özelde seçimi. */
.admin-visibility-scope label{display:inline-flex!important;align-items:center;gap:5px;margin:0!important;white-space:nowrap;cursor:pointer}
html body #modernHeaderClear[hidden]{display:none!important}
/* Emoji baloncuğu (PC + mobil): emoji butonunun üstünde, aşağı bakan oklu, kompakt. */
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble{position:fixed!important;inset:auto!important;transform:none!important;z-index:2147480000!important;display:none!important;flex-direction:column!important;width:min(252px,calc(100vw - 16px))!important;min-width:0!important;height:236px!important;max-height:var(--emoji-bubble-max,236px)!important;min-height:0!important;margin:0!important;padding:0!important;border:1px solid #d9dee5!important;border-radius:10px!important;background:#fff!important;color:#2b3440!important;box-shadow:0 6px 22px rgba(0,0,0,.18)!important;box-sizing:border-box!important;overflow:visible!important;font:12px/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif!important;animation:emoji-bubble-in .14s ease-out}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble.open{display:flex!important}
@keyframes emoji-bubble-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble::after{content:"";position:absolute;bottom:-7px;left:calc(var(--emoji-pointer-x,50%) - 7px);width:12px;height:12px;background:#fafbfc;border-right:1px solid #d9dee5;border-bottom:1px solid #d9dee5;transform:rotate(45deg);pointer-events:none}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-picker-search{display:none!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-picker-title{order:1!important;flex:none!important;display:block!important;margin:0!important;padding:7px 10px 3px!important;border:0!important;background:none!important;color:#9aa3ad!important;font:12px/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif!important;text-align:left!important;position:static!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble :is(.emoji-picker-title,#emojiCategoryTitle){text-transform:none!important;letter-spacing:normal!important;font-weight:400!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble #emojiCategoryTitle{font:inherit!important;color:inherit!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-grid{order:2!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;grid-auto-rows:27px!important;gap:1px 2px!important;align-content:start!important;margin:0!important;padding:2px 7px 6px!important;background:none!important;border:0!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-grid .emoji-item:hover{background:#eef2f6!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-empty{padding:20px 6px!important;font-size:12px!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories{order:3!important;flex:none!important;display:flex!important;align-items:center!important;gap:0!important;height:auto!important;margin:0!important;padding:3px 4px!important;border:0!important;border-top:1px solid #e6eaef!important;border-radius:0 0 10px 10px!important;background:#fafbfc!important;overflow:hidden!important;position:static!important;box-shadow:none!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories>button{flex:1 1 0!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;width:auto!important;height:28px!important;margin:0!important;padding:0!important;border:0!important;border-radius:6px!important;background:none!important;box-shadow:none!important;font-size:16px!important;line-height:1!important;opacity:.55;cursor:pointer;-webkit-appearance:none;appearance:none}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories>button.active{opacity:1!important;background:#e8edf3!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories>button .emoji-img{width:19px!important;height:19px!important}
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories>#emojiClose{flex:0 0 24px!important;opacity:1!important;color:#6b7684!important;font-size:14px!important;margin-left:2px!important}
/* Emoji paneli açıkken mesaj satırındaki emoji butonu X olur (kapatma oradan); baloncuktaki X gizli. */
html body #emojiPicker#emojiPicker#emojiPicker.emoji-bubble .emoji-categories>#emojiClose{display:none!important}
html body #app#app#app #emojiButton#emojiButton.active .emoji-toggle-face,html body #app#app#app #emojiButton#emojiButton.active>svg,html body #app#app#app #emojiButton#emojiButton.active>img,html body #app#app#app #emojiButton#emojiButton.active>.md-control-icon{display:none!important}
/* PC: baloncuk biraz daha büyük. */

/* Oturum bilgi / hata penceresi (kopma, otomatik NickServ girişi, nick geri alma) */
.session-alert[data-level="ok"]{--sa-accent:#2f7d5b;--sa-soft:#e9f5ef}
.session-alert[data-level="warn"]{--sa-accent:#b07a22;--sa-soft:#fbf3e4}
.session-alert[data-level="error"]{--sa-accent:#b5524c;--sa-soft:#f9ecea}
@keyframes session-alert-spin{to{transform:rotate(360deg)}}

/* Sesli görüşme: kulak modu kilit ekranı (yanak tuşlara basmasın) */
.call-ear-lock.holding .call-ear-card small{background:#2c3c42;color:#fff}
[data-call-ear].active{outline:2px solid currentColor;outline-offset:-2px}

/* Duyuru Yap: resim ve sesli mesaj (duyuru kartının içinde, kaydırma yok) */
html body #app #messages .admin-announcement-message .announcement-media{display:block!important;margin:9px 0 2px!important;max-width:100%!important;overflow:hidden!important}
html body #app #messages .admin-announcement-message .announcement-image{display:block!important;width:auto!important;max-width:min(100%,340px)!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:12px!important;background:#eef2f4!important;box-shadow:0 1px 3px rgba(0,0,0,.12)!important;overflow:hidden!important;cursor:zoom-in}
html body #app #messages .admin-announcement-message .announcement-image img{display:block!important;max-width:100%!important;max-height:min(240px,38vh)!important;width:auto!important;height:auto!important;object-fit:contain!important;border-radius:12px!important}
html body #app #messages .admin-announcement-message .announcement-media-voice{display:flex!important;align-items:center!important;gap:10px!important;width:min(100%,340px)!important;box-sizing:border-box!important;padding:7px 12px 7px 7px!important;border:1px solid rgba(0,0,0,.08)!important;border-radius:999px!important;background:rgba(255,255,255,.78)!important}
html body #app #messages .admin-announcement-message .announcement-voice-play{flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--md-00866c,#00866c)!important;color:#fff!important;font:700 12px/34px Arial,sans-serif!important;text-align:center!important;cursor:pointer}
html body #app #messages .admin-announcement-message .announcement-voice-label{flex:0 0 auto;color:#4b5a62!important;-webkit-text-fill-color:#4b5a62!important;font:600 12px Arial,sans-serif!important;white-space:nowrap}
html body #app #messages .admin-announcement-message .announcement-voice-bar{position:relative;flex:1 1 auto;min-width:40px;height:4px;border-radius:2px;background:rgba(0,0,0,.12);overflow:hidden}
html body #app #messages .admin-announcement-message .announcement-voice-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--md-00866c,#00866c);transition:width .2s linear}
html body #app #messages .admin-announcement-message .announcement-voice-time{flex:0 0 auto;color:#6b7a82!important;-webkit-text-fill-color:#6b7a82!important;font:11px/1 Arial,sans-serif!important;font-variant-numeric:tabular-nums}
dialog.announcement-image-viewer{max-width:94vw;max-height:90dvh;padding:0;border:0;border-radius:14px;background:#0d1214;overflow:hidden}
dialog.announcement-image-viewer::backdrop{background:rgba(5,10,12,.78)}
dialog.announcement-image-viewer img{display:block;max-width:94vw;max-height:90dvh;object-fit:contain}
dialog.announcement-image-viewer button{position:absolute;top:8px;right:8px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font:20px/34px Arial,sans-serif;cursor:pointer}
html body #app #messages .admin-announcement-message .announcement-media{display:flex!important;justify-content:center!important}
html body #app #messages .admin-announcement-message .announcement-media-voice{margin-left:auto!important;margin-right:auto!important}

/* Uyarı penceresi: göz alıcı giriş, renkli simge, 5 sn geri sayım çubuğu */
.session-alert.open{transform:translate(-50%,0) scale(1)!important}
.session-alert::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--sa-accent),color-mix(in srgb,var(--sa-accent) 45%,#fff))}
.session-alert.pop .session-alert-icon::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--sa-accent);opacity:0;animation:session-alert-ring 1.2s ease-out 2}
@keyframes session-alert-ring{0%{opacity:.7;transform:scale(.85)}100%{opacity:0;transform:scale(1.45)}}
.session-alert-body b{color:var(--sa-accent)!important;font-size:15px!important;letter-spacing:.1px}
.session-alert-body p{color:#46545c!important}
@keyframes session-alert-count{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(prefers-reduced-motion:reduce){.session-alert.pop .session-alert-icon::after{animation:none}}

/* Whois kartı: durum güncellemeleri (tek satır, kaydırma yok) */
/* Duyuru (süreli + admin): saat sağ üstte değil, mesajın altında sağda */
html body #app#app #messages .admin-announcement-message{padding-right:12px!important;padding-top:10px!important}
html body #app#app #messages .admin-announcement-message>.announcement-time{position:static!important;display:block!important;margin:4px 0 0!important;text-align:right!important}

/* v84 · Duyuru görünümü (admin › Duyuru / Süreli Duyuru › görünüm). Admin duyurusu 'ana', süreli duyuru 'ant'.
   Yalnız ayar seçilince eşleşir (öznitelik yoksa kural çalışmaz). */
html[data-ana-bg] body #app#app#app #messages .admin-announcement-message.admin-announcement-message:not(.announcement-timed){background:var(--ana-bg)!important;background-image:none!important}
html[data-ana-sfont] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender{font-family:var(--ana-sfont)!important}
html[data-ana-ssize] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender{font-size:var(--ana-ssize)!important}
html[data-ana-sweight] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender{font-weight:var(--ana-sweight)!important}
html[data-ana-sitalic] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender{font-style:var(--ana-sitalic)!important}
html[data-ana-scolor] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender{color:var(--ana-scolor)!important;-webkit-text-fill-color:var(--ana-scolor)!important}
html[data-ana-mfont] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-text{font-family:var(--ana-mfont)!important}
html[data-ana-msize] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-text{font-size:var(--ana-msize)!important}
html[data-ana-mweight] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-text{font-weight:var(--ana-mweight)!important}
html[data-ana-mitalic] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-text{font-style:var(--ana-mitalic)!important}
html[data-ana-mcolor] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-text{color:var(--ana-mcolor)!important;-webkit-text-fill-color:var(--ana-mcolor)!important}
html[data-ant-bg] body #app#app#app #messages .admin-announcement-message.admin-announcement-message.announcement-timed{background:var(--ant-bg)!important;background-image:none!important}
html[data-ant-sfont] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender{font-family:var(--ant-sfont)!important}
html[data-ant-ssize] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender{font-size:var(--ant-ssize)!important}
html[data-ant-sweight] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender{font-weight:var(--ant-sweight)!important}
html[data-ant-sitalic] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender{font-style:var(--ant-sitalic)!important}
html[data-ant-scolor] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender{color:var(--ant-scolor)!important;-webkit-text-fill-color:var(--ant-scolor)!important}
html[data-ant-mfont] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-text{font-family:var(--ant-mfont)!important}
html[data-ant-msize] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-text{font-size:var(--ant-msize)!important}
html[data-ant-mweight] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-text{font-weight:var(--ant-mweight)!important}
html[data-ant-mitalic] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-text{font-style:var(--ant-mitalic)!important}
html[data-ant-mcolor] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-text{color:var(--ant-mcolor)!important;-webkit-text-fill-color:var(--ant-mcolor)!important}.admin-ann-style>summary{cursor:pointer;font:700 13px Arial,sans-serif}
/* v85 · Duyuru ikonu (admin duyurusu + süreli duyuru): nickin solunda, nick renginde SVG megafon */
html body #app #messages .admin-announcement-message .announcement-icon{display:inline-block;width:1.15em;height:1.15em;margin:0 .3em 0 0;vertical-align:-.2em;color:inherit}
html body #app #messages .admin-announcement-message .announcement-icon>svg{display:block;width:100%;height:100%}
html body #app#app#app #messages .admin-announcement-message .announcement-sender>.announcement-icon{color:#d71920!important}
html[data-ana-scolor] body #app#app#app #messages .admin-announcement-message:not(.announcement-timed) .announcement-sender>.announcement-icon{color:var(--ana-scolor)!important}
html[data-ant-scolor] body #app#app#app #messages .admin-announcement-message.announcement-timed .announcement-sender>.announcement-icon{color:var(--ant-scolor)!important}
html body #app#app#app #messages .admin-announcement-message .announcement-sender>.announcement-icon>svg,html body #app#app#app #messages .admin-announcement-message .announcement-sender>.announcement-icon>svg>path{fill:currentColor!important;stroke:none!important}
/* v88 · Whois kartı üst kısmı: yetkili başlığı rengi (yalnız üst kısım; kartın geri kalanı tema renginde) */
html body dialog.whois-card.whois-rank-head>.whois-head{background:linear-gradient(135deg,color-mix(in srgb,var(--whois-rank) 88%,#fff),color-mix(in srgb,var(--whois-rank) 72%,#000))!important;color:#fff!important}
/* Whois: alttaki Kapat düğmesi üst kısımla aynı yetkili rengi. */
html body dialog.whois-card.whois-rank-head .whois-foot button[data-whois-close]{background:var(--whois-rank)!important;border-color:var(--whois-rank)!important;color:#fff!important}
/* ===== Giriş ekranı › Aktif oturumlar (Session Kontrol) — PC ve mobil ===== */
html body dialog.active-sessions-dialog{--as-accent:#277bdd;box-sizing:border-box;width:min(420px,calc(100vw - 24px));max-height:min(620px,calc(100dvh - 32px));padding:0;border:0;border-radius:20px;background:#fff;color:#1f2d3a;box-shadow:0 24px 70px rgba(10,30,50,.35);overflow:hidden;display:flex;flex-direction:column;font-family:inherit}
html body dialog.active-sessions-dialog:not([open]){display:none}
html body dialog.active-sessions-dialog::backdrop{background:rgba(12,24,36,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
html body dialog.active-sessions-dialog>header{display:flex;align-items:flex-start;gap:12px;padding:18px 16px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--as-accent) 14%,#fff),#fff);border-bottom:1px solid color-mix(in srgb,var(--as-accent) 18%,#fff)}
html body dialog.active-sessions-dialog .as-icon svg{width:24px;height:24px}
html body dialog.active-sessions-dialog header>div{flex:1;min-width:0}
html body dialog.active-sessions-dialog header b{display:block;font-size:18px;line-height:1.2;color:#14263a}
html body dialog.active-sessions-dialog header small{display:block;margin-top:4px;font-size:12.5px;line-height:1.4;color:#5a6b7c}
html body dialog.active-sessions-dialog .as-item input{position:absolute;opacity:0;pointer-events:none}
html body dialog.active-sessions-dialog .as-item:focus-within{outline:2px solid color-mix(in srgb,var(--as-accent) 45%,transparent);outline-offset:2px}
html body dialog.active-sessions-dialog .as-main b{display:block;font-size:15px;color:#17283a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body dialog.active-sessions-dialog .as-main small{display:block;margin-top:2px;font-size:12px;color:#6a7a8a;line-height:1.35}
html body dialog.active-sessions-dialog .as-item input:checked~.as-check{border:6px solid var(--as-accent)}
html body dialog.active-sessions-dialog .as-item.is-picked{border-color:var(--as-accent);background:color-mix(in srgb,var(--as-accent) 6%,#fff)}
html body dialog.active-sessions-dialog .as-item input:checked~.as-avatar{background:var(--as-accent);color:#fff}
html body dialog.active-sessions-dialog footer{display:flex;flex-direction:column;gap:8px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #edf1f5;background:#fff}
html body dialog.active-sessions-dialog footer button{appearance:none;width:100%;min-height:44px;border-radius:12px;font:700 15px/1.2 inherit;cursor:pointer}
html body dialog.active-sessions-dialog .as-continue:disabled{opacity:.7}
html body dialog.active-sessions-dialog .as-closeone:disabled{opacity:.6}

/* Özel nick ikonu: kanal mesajlarında nick listesindeki gibi yetki rengine uyumlu yuvarlak zemin (tüm görünümler) */
html body #messages .message.in-channel.nick-icon-message>.message-avatar{background:color-mix(in srgb,var(--message-rank-color,var(--cz-277bdd,#277bdd)) 12%,#fff)!important;border:0!important;border-radius:50%!important;box-sizing:border-box!important}
html body #messages .message.in-channel.nick-icon-message>.message-avatar img.nick-icon-img{padding:6%!important;border-radius:50%!important}
/* Alıntı önizlemesi (mesaj satırının üstü): tüm görünümlerde her zaman beyaz zemin */
html body #app#app#app#app .composer>.reply-preview:not([hidden]){background:#fff!important;background-image:none!important;color:#1d2733!important}
html body #app#app#app#app .composer>.reply-preview:not([hidden]) :is(b,span){color:inherit!important}
html body #app#app#app#app .composer>.reply-preview:not([hidden])>button{background:#fff!important;color:#1d2733!important}
/* Yalnız alıntı gönderilen mesaj: IRC'ye giden kısa satır uygulamada gizlenir, alıntı kutusu kalır */
html body #app#app#app#app #messages#messages .message.quote-only .message-content-line>.message-text{display:none!important}

/* Normal kullanıcı, profil avatarı kapalıyken: mesajda nick listesindeki ikonu yetki rengi zeminle gösterir */
html body #app#app#app#app #messages .message.normal-role-message>.message-avatar{color:var(--message-rank-color)!important;background:color-mix(in srgb,var(--message-rank-color,#5b6b7d) 12%,#fff)!important;border-radius:50%!important}
html body #app#app#app#app #messages .message.normal-role-message>.message-avatar>.nl-file-icon{display:grid!important;place-items:center!important;width:62%!important;height:62%!important;max-width:30px;max-height:30px;color:inherit!important}
html body #app#app#app#app #messages .message.normal-role-message>.message-avatar>.nl-file-icon svg{width:100%!important;height:100%!important}
/* Whois, profil kartı, özel mesaj listeleri: nick listesindeki yetki/tema ikonu */
html body #app#app#app#app #messages .message.normal-role-message>.message-avatar>.nl-file-icon .ico{display:block!important;width:100%!important;height:100%!important}
/* Özel mesaj / arkadaş listelerinde ikon daire içinde ölçülü (daire fotoğraf boyutunda kalır) */
html body .md-channel .social-avatar.identity-role>:not(.social-dot),html body [data-reference-private] .social-avatar.identity-role>:not(.social-dot){width:44%!important;height:44%!important}
/* Profil › avatar seçimi: ilk kutu "Varsayılan" (yetki / özel nick / kullanıcı ikonu), diğer avatarlarla aynı boyutta */
html body #socialDialog .social-avatar-grid .avatar-default-choice{display:grid!important;place-items:center!important}
html body #socialDialog .social-avatar-grid .avatar-default-choice>.social-avatar{width:100%!important;height:100%!important;max-width:72px;max-height:72px;aspect-ratio:1/1;margin:auto!important}
html body #socialDialog .social-avatar-grid label.avatar-default-choice{position:relative}
html body #socialDialog .social-avatar-grid label.avatar-default-choice>input{position:absolute;left:6px;top:6px;margin:0}
/* /session komutu: Session Kontrol paneli (yalnız App Admin) */
#sessionControlDialog::backdrop{background:#0006}
#sessionControlDialog .admin-session-body>details>summary{display:none}
/* Özel nick ikon boyutu (px): kanal mesajında avatar kutusu bu boyuta gelir (classic kanal yazı modunda --qwi-av ile) */
html body #app#app#app#app#app #messages .message.ni-sized:not(.in-channel-irc)>.message-avatar{width:var(--ni-px)!important;height:var(--ni-px)!important;min-width:var(--ni-px)!important;min-height:var(--ni-px)!important;flex:0 0 var(--ni-px)!important;padding:0!important}
html body #app#app#app#app#app #messages .message.ni-sized>.message-avatar>img.nick-icon-img{width:100%!important;height:100%!important;transform:none!important}

/* Yazıyor bilgisi görünürken kanal penceresinin sonunda boşluk bırakılır: son mesaj yazıyor etiketinin altında kalmaz. */
#messages.typing-space::after{content:"";display:block;flex:none;height:24px}
/* Mobil üst bar: "Özel Mesaj" sekmesi kenara yapışmasın (Ö harfi dışarı taşıyor gibi görünmesin); okunmamış rozetindeki rakam her temada beyaz. */
/* Görünüm seçimi: 3 kart (WhatsApp · qwebirc baloncuklu · qwebirc classic). qwebirc classic önizlemesi MSN mavisi. */
.appearance-style-cards,.md-appearance-inline .appearance-style-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.appearance-style-preview[data-style="qwclassic"] .asp-tabs em{display:block;width:22px;height:6px;border-radius:2px;background:#2b76d8}
.appearance-style-preview[data-style="qwebirc"] .asp-tabs em{display:block;width:22px;height:6px;border-radius:2px;background:#d8ecff}
/* Mesaj avatarı zemini (PC, WhatsApp, Classic): yetki / kullanıcı ikonunda ikonun renginin, özel nick ikonunda nick renginin açık tonu.
   Kendi seçtiği avatar / fotoğraf gösterilen satırlara dokunulmaz. */
html body #app#app#app#app#app #messages .message:is(.rank-message,.nick-icon-message):not(.rank-chosen-avatar)>.message-avatar{background:color-mix(in srgb,var(--av-tint,var(--message-rank-color,#5b6b7d)) 14%,#fff)!important;border-color:color-mix(in srgb,var(--av-tint,var(--message-rank-color,#5b6b7d)) 22%,#fff)!important}
/* Nick listesinde özel nick ikonu: zemin nick renginin açık tonu (renk verilmemişse şeffaf kalır). */
html body #app#app#app#app #app .roster-profile-avatar.nick-icon-avatar[style*="--av-tint"],html body #app#app#app#app .roster-profile-avatar.nick-icon-avatar[style*="--av-tint"]{background:color-mix(in srgb,var(--av-tint) 14%,#fff)!important;border-radius:50%!important}
/* 318: qwebirc classic teması (msn) giriş / bağlanma ekranı artık mobile-login.css içinde (tema arka planı, kart, düğmeler). */
/* v131 · qwebirc classic teması (yalnız mobil classic qwebirc): Aktif oturumlar penceresinde üstteki simge, nickin baş
   harfi ve "Devam et" düğmesi tema renginin açık mavisiyle silik kalıyordu; canlı maviyle çizilir. */
html[data-chat-background="msn"] body dialog.active-sessions-dialog .as-avatar{background:color-mix(in srgb,var(--as-accent) 22%,#fff)}
html[data-chat-background="msn"] body dialog.active-sessions-dialog .as-continue{box-shadow:0 6px 16px color-mix(in srgb,var(--as-accent) 42%,transparent)}
/* v136 · Whois kartı › Konum bölümündeki VPN / Proxy rozeti (yalnız yetkililere görünür) */
/* 274: özet tepki düğmesi yalnız classic qwebirc kanal satırında görünür (forms.css) */
html body #app#app#app #messages .reaction-counts>button.rx-top{display:none!important}
/* 275: Whois kartı tek görünüm — bütün temalarda aynı renkler (siyah dalgalı başlık, altın defne rozeti, beyaz kartlar); boyutlar eski kartla aynı (PC 400 px, mobil 318 px). */
html body dialog.whois-card.wv.wv{width:min(400px,calc(100vw - 24px))!important;max-width:400px!important;max-height:min(80vh,600px)!important;padding:0!important;border:0!important;border-radius:18px!important;background:#f2f3f5!important;color:#111!important;box-shadow:0 22px 60px rgba(0,0,0,.42)!important;overflow:hidden!important;font:400 13.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;opacity:1!important;filter:none!important}
html body dialog.whois-card.wv.wv[open]{display:flex!important;flex-direction:column!important}
html body dialog.whois-card.wv.wv::backdrop{background:rgba(0,0,0,.5)!important}
html body dialog.whois-card.wv.wv *{box-sizing:border-box}
html body dialog.whois-card.wv.wv svg{width:14px;height:14px;flex:none}
html body dialog.whois-card.wv.wv :focus:not(:focus-visible){outline:none!important;box-shadow:none!important}
html body dialog.whois-card.wv.wv .wv-x:focus{outline:none!important;box-shadow:none!important}
html body dialog.whois-card.wv.wv .wv-head{position:relative!important;display:grid!important;grid-template-columns:104px minmax(0,1fr)!important;align-items:center!important;column-gap:14px!important;row-gap:10px!important;padding:16px 14px 12px 16px!important;margin:0!important;color:#fff!important;border:0!important;border-radius:0!important;background:radial-gradient(120% 70% at 90% 0%,rgba(255,255,255,.10),transparent 60%),repeating-radial-gradient(140% 100% at 110% 120%,rgba(255,255,255,0) 0 14px,rgba(255,255,255,.045) 15px 16px,rgba(255,255,255,0) 17px 26px),linear-gradient(160deg,#1b1c1f,#050505 70%)!important;flex:none!important}
html body dialog.whois-card.wv.wv .wv-av{position:relative!important;width:100px!important;height:100px!important;border-radius:50%!important;border:3px solid rgba(255,255,255,.85)!important;background:#26272b!important;overflow:visible!important;display:grid!important;place-items:center!important}
html body dialog.whois-card.wv.wv .wv-av[data-profile-photo]{cursor:zoom-in!important}
html body dialog.whois-card.wv.wv .wv-av>*{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;border-radius:50%!important;overflow:hidden!important;margin:0!important;font-size:40px!important;line-height:94px!important;text-align:center!important}
html body dialog.whois-card.wv.wv .wv-av img{object-fit:cover!important}
html body dialog.whois-card.wv.wv .wv-av.is-on::after,html body dialog.whois-card.wv.wv .wv-av.is-away::after{content:"";position:absolute;right:3px;bottom:5px;width:20px;height:20px;border-radius:50%;background:#22c55e;border:3px solid #fff;z-index:2}
html body dialog.whois-card.wv.wv .wv-av.is-away::after{background:#f5a524}
html body dialog.whois-card.wv.wv .wv-title{min-width:0!important;margin:0!important;padding:0 32px 0 0!important;text-align:left!important}
html body dialog.whois-card.wv.wv .wv-title h3{margin:0!important;padding:0!important;color:#fff!important;font:800 26px/1.15 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;background:none!important;-webkit-text-fill-color:#fff!important;text-shadow:none!important}
html body dialog.whois-card.wv.wv .wv-title .wv-real,html body dialog.whois-card.wv.wv .wv-title .whois-state{margin:2px 0 0!important;color:#c3c6cc!important;font:400 12px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
html body dialog.whois-card.wv.wv .wv-badge{display:inline-flex!important;align-items:center!important;gap:3px!important;margin:6px 0 0!important;flex-wrap:nowrap!important}
html body dialog.whois-card.wv.wv .wv-badge .wv-laurel{width:16px!important;height:26px!important}
html body dialog.whois-card.wv.wv .wv-badge .wv-laurel:last-child{transform:scaleX(-1)}
html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d{display:inline-grid!important;grid-template-columns:16px auto 16px!important;grid-template-rows:auto auto!important;column-gap:4px!important;row-gap:0!important}
html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d .wv-laurel{grid-row:1/3!important}
html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d .wv-laurel:first-child{grid-column:1!important}
html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d .wv-laurel:last-child{grid-column:3!important}
html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d .wv-stars,html body dialog.whois-card.wv.wv .wv-badge.has-94f6531d .wv-rank{grid-column:2!important}
html body dialog.whois-card.wv.wv .wv-stars{display:flex!important;justify-content:center!important;gap:1px!important;color:#f5c542!important}
html body dialog.whois-card.wv.wv .wv-stars svg{width:12px!important;height:12px!important;filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}
html body dialog.whois-card.wv.wv .wv-rank{display:block!important;padding:1px 2px 2px!important;border-bottom:1px solid rgba(245,197,66,.6)!important;color:#f7d77e!important;font:700 11.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;text-align:center!important;white-space:nowrap!important;max-width:170px!important;overflow:hidden!important;text-overflow:ellipsis!important}
html body dialog.whois-card.wv.wv .wv-x{position:absolute!important;top:10px!important;right:10px!important;width:30px!important;height:30px!important;min-width:0!important;padding:0!important;margin:0!important;display:grid!important;place-items:center!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;color:#fff!important;cursor:pointer;z-index:3}
html body dialog.whois-card.wv.wv .wv-x svg{width:14px!important;height:14px!important}
html body dialog.whois-card.wv.wv .whois-app-slot{position:absolute!important;top:44px!important;right:8px!important;left:auto!important;margin:0!important;z-index:2}
html body dialog.whois-card.wv.wv .wv-actions{grid-column:1/-1!important;display:flex!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:6px!important;margin:0!important;padding:0!important;background:none!important;border:0!important}
html body dialog.whois-card.wv.wv .wv-actions .wv-pill{display:inline-flex!important;align-items:center!important;gap:5px!important;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;margin:0!important;padding:5px 10px!important;border:1px solid rgba(255,255,255,.38)!important;border-radius:999px!important;background:rgba(255,255,255,.05)!important;color:#fff!important;font:600 12px/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;cursor:pointer;opacity:1!important;box-shadow:none!important}
html body dialog.whois-card.wv.wv .wv-actions .wv-pill svg{width:14px!important;height:14px!important;color:#fff}
html body dialog.whois-card.wv.wv .wv-actions .wv-block svg{color:#ff4d4d!important}
html body dialog.whois-card.wv.wv .wv-actions .wv-block.blocked{border-color:#ff4d4d!important}
html body dialog.whois-card.wv.wv .wv-actions .wv-pill:active{background:rgba(255,255,255,.16)!important}
html body dialog.whois-card.wv.wv .wv-notice{grid-column:1/-1!important;margin:0!important;padding:6px 10px!important;border-radius:10px!important;background:#fff4d6!important;color:#5c3b00!important;border:1px solid #f0c24b!important;font:600 12px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;text-align:center!important}
html body dialog.whois-card.wv.wv .wv-notice[hidden]{display:none!important}
html body dialog.whois-card.wv.wv .wv-body{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;margin:0!important;padding:10px 12px 2px!important;background:#f2f3f5!important;color:#111!important;border:0!important;display:block!important}
html body dialog.whois-card.wv.wv .wv-body>section:not([hidden]){position:relative!important;display:block!important;margin:0 0 9px!important;padding:9px 11px 8px 52px!important;min-height:50px!important;border:1px solid #e6e7ea!important;border-radius:13px!important;background:#fff!important;color:#111!important;box-shadow:0 1px 2px rgba(0,0,0,.05)!important}
html body dialog.whois-card.wv.wv .wv-body>section>h4{position:static!important;display:flex!important;align-items:center!important;gap:6px!important;margin:0!important;padding:0!important;color:#111!important;font:700 13.5px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;background:none!important;border:0!important;text-transform:none!important;letter-spacing:0!important}
html body dialog.whois-card.wv.wv .wv-body>section>h4>i{position:absolute!important;left:10px!important;top:9px!important;width:32px!important;height:32px!important;display:grid!important;place-items:center!important;margin:0!important;border-radius:50%!important;background:#eceef1!important;color:#111!important;font-style:normal!important;font-size:15px!important;line-height:1!important}
html body dialog.whois-card.wv.wv .wv-body>section>h4>i svg{width:16px!important;height:16px!important}
html body dialog.whois-card.wv.wv .wv-body>section>h4>small{margin-left:auto!important;padding:1px 8px!important;border-radius:999px!important;background:#eceef1!important;color:#111!important;font:700 11.5px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important}
html body dialog.whois-card.wv.wv .wv-body .wv-sub{margin:1px 0 5px!important;padding:0!important;color:#777c84!important;font:400 11.5px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important}
html body dialog.whois-card.wv.wv .whois-chips{display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:3px 0 1px!important;padding:0!important}
html body dialog.whois-card.wv.wv .wv-chips-wrap{display:flex!important;align-items:flex-start!important;gap:6px!important;margin:3px 0 1px!important}
html body dialog.whois-card.wv.wv .wv-chips-wrap .whois-chips{flex:1 1 auto!important;min-width:0!important;margin:0!important;overflow:hidden!important}
html body dialog.whois-card.wv.wv .wv-chips-toggle{flex:0 0 26px!important;width:26px!important;height:26px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:1px solid #d9dbe0!important;border-radius:8px!important;background:#fff url('/images/simgeler/baslik-ac.png') center/16px 16px no-repeat!important;font-size:0!important;color:transparent!important;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06)!important}
html body dialog.whois-card.wv.wv .wv-chips-toggle[aria-expanded="true"]{background-image:url('/images/simgeler/baslik-kapat.png')!important}
html body dialog.whois-card.wv.wv .wv-chips-toggle[hidden]{display:none!important}
html body dialog.whois-card.wv.wv .whois-chip{display:inline-flex!important;align-items:center!important;gap:2px!important;height:auto!important;min-height:0!important;margin:0!important;padding:4px 10px!important;border:0!important;border-radius:8px!important;background:#eceef1!important;color:#222!important;font:600 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;cursor:pointer;box-shadow:none!important}
html body dialog.whois-card.wv.wv .whois-chip b{color:#6b7078!important;font-weight:700!important}
html body dialog.whois-card.wv.wv .whois-row{display:grid!important;grid-template-columns:14px 104px minmax(0,1fr)!important;align-items:center!important;column-gap:8px!important;margin:0!important;padding:3px 0!important;border:0!important;background:none!important}
html body dialog.whois-card.wv.wv .whois-row>i{display:grid!important;place-items:center!important;color:#3a3d42!important;font-style:normal!important}
html body dialog.whois-card.wv.wv .whois-row>i svg{width:13px!important;height:13px!important}
html body dialog.whois-card.wv.wv .whois-row>span{color:#555a62!important;font:400 12px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;min-width:0!important}
html body dialog.whois-card.wv.wv .whois-row>strong{min-width:0!important;color:#111!important;font:600 12.5px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;overflow-wrap:anywhere!important;text-align:left!important}
html body dialog.whois-card.wv.wv .whois-row:not(:is(:where(.has-8c2d5a92),:not(*):not(h_))){grid-template-columns:104px minmax(0,1fr)!important}
html body dialog.whois-card.wv.wv .wv-link{color:#1a6fd8!important;font-weight:600!important}
html body dialog.whois-card.wv.wv .wv-on{color:#16a34a!important;font-style:normal!important;font-weight:600!important}
html body dialog.whois-card.wv.wv .whois-about p,html body dialog.whois-card.wv.wv .whois-note p{margin:4px 0 0!important;color:#333!important}
html body dialog.whois-card.wv.wv .whois-sn .appban-btn{margin-top:6px!important}
html body dialog.whois-card.wv.wv .wv-foot{flex:none!important;display:grid!important;grid-template-columns:1.2fr 1.15fr .8fr!important;gap:8px!important;margin:0!important;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))!important;border:0!important;border-top:1px solid #e3e4e7!important;background:#f2f3f5!important}
html body dialog.whois-card.wv.wv .wv-foot .wv-friend{display:contents!important}
html body dialog.whois-card.wv.wv .wv-foot button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;width:100%!important;height:36px!important;min-width:0!important;margin:0!important;padding:0 6px!important;border:1px solid #d9dbe0!important;border-radius:10px!important;background:#fff!important;color:#111!important;font:600 12.5px/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;white-space:nowrap!important;cursor:pointer;box-shadow:none!important;opacity:1!important}
html body dialog.whois-card.wv.wv .wv-foot button span{overflow:hidden;text-overflow:ellipsis}
html body dialog.whois-card.wv.wv .wv-foot button.wv-main{background:#0b0b0c!important;border-color:#0b0b0c!important;color:#fff!important}
html body dialog.whois-card.wv.wv .wv-foot button:disabled{opacity:.6!important}
html body dialog.whois-card.wv.wv .wv-foot svg{width:14px!important;height:14px!important}
/* 280: whois kartındaki fotoğraf nick kartındaki küçük pencerede açılır; PC'de biraz daha büyük. */

/* ===== 290: MOTD (Status yetkili kartları) + App Admin › MOTD menüsü ===== */

/* 290: MOTD (Status kartları) — Status kapalıyken Status ekranında yetkili kartları (app.js › motdCardsEl).
   Renk her kartın --mc değişkeninden (App Admin › MOTD › kart rengi); arka plan açık temada açık, koyu temada koyu ton. */
/* 291: açıklama yok; başlık rozetle aynı hizada (ortalı), "N Kişi" başlığın karşısında sağda */
.motd-badge-in img{width:30px;height:30px;object-fit:contain;display:block}
.motd-count svg{width:15px;height:15px;flex:none}
.motd-list>li{margin:0;padding:0;list-style:none}
.motd-row:focus-visible{outline:2px solid var(--mc);outline-offset:1px}
/* 291: MOTD'de seçilen ikon (resim ikon zeminsiz, SVG ikon kart renginde açık zeminli) */
.motd-av .motd-own-ic img{object-fit:contain!important;border:0!important;outline:0!important;box-shadow:none!important;background:none!important;padding:0!important}
/* Dar kart (ör. yönetim panelindeki önizleme): rozet ve yazı biraz küçülür; "N Kişi" yine sağda */
@container (max-width:330px){.motd-head{grid-template-columns:54px minmax(0,1fr) auto;column-gap:8px}.motd-badge{width:54px;height:54px}.motd-title b{font-size:15.5px}.motd-count{padding:3px 8px;font-size:11.5px}}
/* Koyu tema (mesaj alanının arka planı koyu): app.js motdDarkBg */
@supports (color:color-mix(in srgb,red 50%,blue)){
 .motd-dark .motd-title b{color:color-mix(in srgb,var(--mc) 70%,#fff)}
}
/* 290: App Admin › MOTD menüsü */
/* Önizleme: yönetim penceresinin genel svg / img / p / ul / span kuralları karta karışmasın */
@container (max-width:330px){.applet-admin-dialog .admin-motd-preview .motd-badge{width:54px!important;height:54px!important}}
.admin-motd-cat>summary img{width:18px;height:18px;vertical-align:-4px;margin-right:6px;object-fit:contain}
.admin-motd-cat>summary small{font-weight:500;opacity:.7}
/* 291: yalnız formun kendi alanları; ikon seçicinin (resim / SVG ikon ızgarası) etiketlerine uymaz, ızgara özel nicklerdeki gibi kalır */
.admin-motd-card label.admin-motd-color,.admin-motd-nick label.admin-motd-color{flex-direction:row;align-items:center;gap:6px}
.admin-motd-nick label.admin-motd-chk{flex-direction:row;align-items:center;gap:6px}

/* 291: bağlantı kartı her zaman küçük (tek satır); bağlanırken üç nokta küçük kartın içine sığar */
#messages .connect-card.is-compact .cc-mark{gap:2px}
/* 291: MOTD rozet / nick ikonu seçicisi özel nicklerdeki gibi yan yana ızgara (özel nick kuralları .admin-motd-body kapsamında) */
.admin-motd-body .admin-nickicon input:checked+span{border-color:#1684df;background:#eaf4fe}
.admin-motd-body .admin-nickicon input:focus-visible+span{outline:2px solid #1684df;outline-offset:1px}
/* 291: renk kutuları yönetim penceresinin genel input genişliğini almasın (küçük kare) */

/* ===== 292 ===== */
/* Status düğmesi: sohbet panelinin sağ kenarında dikey, sabit (mesaj alanıyla kaymaz). Yalnız Status ekranında (app.js statusSideEl). */
.status-side-toggle button.is-muted{background:#8794a5!important;border-color:#6d7a8b!important}
.status-side-toggle button:hover{opacity:.9}
.status-side-toggle button:focus-visible{outline:2px solid #fff;outline-offset:-4px}
/* Düğme Status yazılarının / kartlarının üstüne binmesin: içerikte sağda düğme genişliği kadar boşluk (mesaj alanının iç boşluğuna dokunulmaz) */
html body .chat-panel.st-side #messages>.system-message{margin-right:30px!important}
/* Mobil (dar kart): kartlar bir tık küçük */
@container (max-width:420px){
 .motd-card{border-radius:16px;padding:10px 10px 8px}
 .motd-head{grid-template-columns:52px minmax(0,1fr) auto;column-gap:8px}
 .motd-badge{width:52px;height:52px}
 .motd-badge-in{width:30px;height:30px}
 .motd-badge-in img{width:24px;height:24px}
 .motd-title b{font-size:15.5px;gap:5px}
 .motd-title-ic{width:17px;height:17px}
 .motd-count{padding:3px 8px;font-size:11.5px}
 .motd-count svg{width:13px;height:13px}
 .motd-list{margin-top:6px;gap:5px}
 #messages .motd-row,.motd-row{min-height:34px;padding:4px 9px;gap:8px;border-radius:10px}
 .motd-av,.motd-av .social-avatar{width:25px!important;height:25px!important;min-width:25px}
 .motd-nick{font-size:13.5px}
 .motd-row .nick-rank-stars{font-size:13.5px}
 .motd-chev{font-size:18px}
 #messages .motd-more,.motd-more{margin-top:8px;padding:5px 16px;font-size:12px}
}
@container (max-width:420px){.applet-admin-dialog .admin-motd-preview .motd-badge{width:52px!important;height:52px!important}.applet-admin-dialog .admin-motd-preview .motd-badge-in img{width:24px!important;height:24px!important}}
/* App Admin › MOTD: başlık alanı ve kart sırası (↑ ↓) */
/* özet satırı list-item kalır (▶ işareti görünsün); düğmeler sağa yaslanır */
.admin-motd-cat>summary::after{content:"";display:block;clear:both}

/* ===== 293: MOTD kartı — rozet solda (kart boyunca), sağda başlık satırı (başlık · yıldızlar · N Kişi) ve 2 × 2 nick ===== */
/* sütun rozetin genişliğini alır (kart kendi container'ı olduğu için dar ekran kuralı karta değil rozete uygulanır) */
@container (max-width:400px){
 
 .motd-v2 .motd-head{gap:5px}
 .motd-v2 .motd-title b{font-size:15px}
 .motd-v2 .motd-stars .nick-rank-stars{font-size:12px}
 .motd-v2 .motd-list{gap:5px;margin-top:7px}
 #messages .motd-v2 .motd-row,.motd-v2 .motd-row{min-height:30px;padding:3px 6px;gap:5px}
 .motd-v2 .motd-av,.motd-v2 .motd-av .social-avatar{width:20px!important;height:20px!important;min-width:20px}
 .motd-v2 .motd-nick{font-size:12.5px}
 .motd-row-ic{width:12px;height:12px}
}
/* Çok dar kart: başlıktaki küçük ikon gizlenir (rozette zaten var), "N Kişi" sıkışır */
@container (max-width:330px){
 
 .motd-v2 .motd-badge,.applet-admin-dialog .admin-motd-preview .motd-v2 .motd-badge{width:46px!important;height:46px!important}
 .motd-v2 .motd-title-ic{display:none}
 .motd-v2 .motd-count{padding:2px 6px;font-size:11px;gap:3px}
}
/* 293: rozet görseldeki gibi daha büyük */
@container (max-width:400px){
 
 .motd-v2 .motd-badge,.applet-admin-dialog .admin-motd-preview .motd-v2 .motd-badge{width:60px!important;height:60px!important}
 .motd-v2 .motd-badge-in{width:34px;height:34px}
 .motd-v2 .motd-badge-in img,.applet-admin-dialog .admin-motd-preview .motd-v2 .motd-badge-in img{width:27px!important;height:27px!important}
}
@container (max-width:330px){
 
 .motd-v2 .motd-badge,.applet-admin-dialog .admin-motd-preview .motd-v2 .motd-badge{width:50px!important;height:50px!important}
 .motd-v2 .motd-badge-in{width:30px;height:30px}
 .motd-v2 .motd-badge-in img,.applet-admin-dialog .admin-motd-preview .motd-v2 .motd-badge-in img{width:23px!important;height:23px!important}
}
/* 293: "Yönetici Kadrosu" bölümü (kartların üstünde); renk temanın renginden (--mt) */
.motd-top-ic svg{width:20px;height:20px}
.motd-dark .motd-top-tx b{color:#e8edf5}
/* App Admin › MOTD › Yönetici Kadrosu formu */
.admin-motd-head>label input{width:100%}
@container (max-width:400px){.motd-v2 .motd-badge{margin-right:9px}}
@container (max-width:330px){.motd-v2 .motd-badge{margin-right:8px}}
@container (max-width:280px){.motd-v2 .motd-list{grid-template-columns:minmax(0,1fr)}}

/* ===== 294 ===== */
/* Daha fazlası / Daha az göster: yan yana; oklar topic'teki aç / kapa resimleri */
.motd-dark .motd-arr{filter:brightness(1.6)}
@container (max-width:400px){.motd-morebar{gap:6px;margin-top:7px}#messages .motd-morebar .motd-more,.motd-morebar .motd-more{padding:5px 12px}}
/* Rozetin altındaki yıldız iç dairenin önünde (ayrı katman) */
/* Tekli düzen (292 görünümü): satır başına bir nick, karşısında kartın yıldızı */
/* 294: kartlar arası boşluk bir tık */
/* 294: Yönetici Kadrosu bölümü — seçilen kart rengi, ikon ve yazı tipi */
#messages>.motd-cards>.motd-top.has-color{background:#fff}
@supports (color:color-mix(in srgb,red 50%,blue)){
 #messages>.motd-cards>.motd-top.has-color{background:linear-gradient(180deg,color-mix(in srgb,var(--mt) 14%,#fff),color-mix(in srgb,var(--mt) 6%,#fff));border-color:color-mix(in srgb,var(--mt) 26%,#fff)}
 .motd-dark>.motd-top.has-color .motd-top-tx b{color:color-mix(in srgb,var(--mt) 60%,#fff)}
}
.motd-top-ic img{width:22px;height:22px;object-fit:contain;display:block}
/* 295: Yönetici Kadrosu yazı / açıklama boyutu (App Admin'den; seçilmezse varsayılan) */
/* 296: Ident izinleri ve Giriş yolları listesinde satırlar beyaz kutu */
/* 297: Yönetici Kadrosu ikonu kartlardaki gibi buğday çelengi + yıldız içinde */
.motd-top>.motd-top-badge .motd-badge-in svg{width:18px;height:18px}
/* 302: Karekodum düğmeleri yalnız App Admin › Uygulama İzinleri › Karekod girişi açıkken görünür. */
html:not([data-qr-login="true"]) :is([data-qr-open],[data-qr-only]){display:none!important}
/* 303: giriş ekranı karekod düğmeleri ve PC'de telefonla giriş karekodu */
.login-qr-code svg{width:118px;height:118px;display:block}
/* 307: karekodla girişte bekleme balonunda 4 nokta yerine karekod simgesi (nabız). Renk noktalarla aynı tema tonundan. */
@keyframes qrWaitPulse{0%,100%{transform:scale(.88);opacity:.55}50%{transform:scale(1.06);opacity:1}}
/* 308: PC sol panel: avatarın altında küçük karekod ve "Karekod ayarları"; çıkış seçimi penceresi */
.pc-qr-code svg{width:96px;height:96px;display:block}
.pc-qr-settings svg{width:16px;height:16px}
/* PC sağ üst: kişisel karekod (eski avatar + nick yuvası). Başlık yüksekliğini aşmaz; karekod yoksa yer korunur, görünmez. */
/* Karekod sağ kenara yapışmasın: yuva yer varsa 74 px (karekod ortada, sağda boşluk), dar ekranda karekod boyuna kadar daralır.
   1451–1700 px'te başlık dolu olduğu için menünün sol boşluğu biraz azaltılır. */
/* Zil: sağ üstteki dar karekod yuvasının hemen solunda, akış içinde (eski geniş profil düğmesine göre hesaplanan mutlak konum
   karekodla birlikte renk paletinin üstüne düşüyordu). */
/* 309: yeni cihaz bağlandı kartı (ekranın üstünde, kırmızı, geri sayım yok) */

/* 314: notice satırı (aktif ekranda "Nick - Mesaj"): kahverengi, kalın (renk satırın kendisinde, bu değişkenden). Koyu zeminlerde açık kahverengi. */
html[data-chat-background="black"],html[data-chat-background="night"],html[data-chat-theme="black"]{--notice-color:#e0a96d}

/* 315/316: kaydırarak geçiş işareti (yeni sohbetin geleceği kenarın ortasında); renk temanın vurgu renginden (--sh-accent), hazır olunca dolar */
/* PC sağ üst durum seçicisi: zil ile karekod arasında (karekodla aynı sıra; DOM'da karekoddan önce). Renkli nokta durumu gösterir. */
.pc-top-status[data-st="offline"]{--st:#9aa4ae}.pc-top-status[data-st="busy"]{--st:#e5484d}
/* Dar PC başlığında yalnız nokta + ok */
/* PC sol panel: kanal arama kutusu kaldırıldı; nick satırının altındaki boşluk alındı; Kanala katıl (+) listenin sağ altında yuvarlak düğme. */
/* PC sağ üst karekod: üstüne gelince açılan büyük kart (telefonla okutmak için). */
.pc-qr-pop-code svg{width:200px;height:200px;display:block}
/* PC sol panel: "Kanallar" başlığı yerine Oturumları Yönet düğmesi */
/* Oturumları Yönet penceresi: şu anki oturum işareti */
html body dialog.active-sessions-dialog .as-item.is-current .as-main small{color:var(--as-accent);font-weight:600}
html body dialog.active-sessions-dialog .as-continue:disabled{opacity:.45;cursor:default;box-shadow:none}
/* Admin › "Mesajları tek balonda birleştirilecek nickler": devam satırları ilk mesajın yazısının altına .irc-line olarak eklenir
   (tek balon, genişlik en uzun satır kadar). Satır aralığı yok: renkli şeritler mIRC'teki gibi alt alta yapışık. */
html body #messages#messages .message.irc-group .message-text{line-height:1.22!important}
/* Kişi notice'leri: mesaj yazma satırının hemen üstünde, balonsuz düz yazı (konum JS'te, yalnız görünürken). Verdana 13px, kahverengi, kalın. */
/* Admin › Kanal Ayarları: Mobil ↔ PC kanallarına da ekle / sil kutucukları */
/* Ekleme satırındaki genel "kutular yayılsın" kuralı kutucuğu ve yazısını ayırmasın: kutucuk + yazı tek parça, #kanal kutusunun solunda. */
/* Shared light palettes cover opaque, translucent and hover surfaces. */

/* Standard chat, member list and tabs share the active palette's light surface. */
html[data-chat-theme]:not([data-chat-theme=""]){--cz-f1f9ff:var(--cz-f1f8ff)}
/* Standart is mobile-only; desktop keeps the original layout. */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Constrain the list itself, so touch scrolling never moves the composer. */
/* Private conversations retain the existing, functional call/action header. */
}

/* The time setting applies to all message appearances. */
/* Round chat and member avatars in every appearance. Keep presence dots visible. */

/* Comfortable, borderless account fields. */
html .nick-auth-dialog input,
html #ircAccountForm input,
html #socialDialog form input:not([type=checkbox]):not([type=radio]):not([type=file]),
html #loginNick,html #loginPassword{
box-sizing:border-box;max-width:100%;min-width:0;border:0!important;border-radius:20px!important;padding:10px 14px!important;background:var(--cz-f8fcff,#f8fcff)!important;color:inherit;box-shadow:none!important;font-size:16px}
html dialog.appearance-choice{width:min(340px,calc(100vw - 32px));padding:22px!important;border:0;border-radius:22px;background:linear-gradient(140deg,var(--cz-f8fcff,#f8fcff),var(--cz-e2f1ff,#e2f1ff));box-shadow:0 16px 50px #12385d33;text-align:center}
html dialog.appearance-choice p{font-size:12px;line-height:1.5;margin:8px 0 16px}
html dialog.appearance-choice button b{font-size:15px}html dialog.appearance-choice button small{font-size:11px}

/* Rank colours are shared by the nickname, prefix and role avatar. */
#messages .message,#memberList .member-row,#mobileMemberList .member-row{--member-rank-color:var(--chat-text-color,#000)}
:is(.member-row,.message)[data-member-rank="q"]{--member-rank-color:#9334bd!important}
:is(.member-row,.message)[data-member-rank="a"]{--member-rank-color:#c77500!important}
:is(.member-row,.message)[data-member-rank="o"]{--member-rank-color:#d53142!important}
:is(.member-row,.message)[data-member-rank="h"]{--member-rank-color:#246bd1!important}
:is(.member-row,.message)[data-member-rank="v"]{--member-rank-color:#168443!important}
html #memberList .member-nick,html #memberList .member-prefix,html #memberList .role-avatar,
html #mobileMemberList .member-nick,html #mobileMemberList .member-prefix,html #mobileMemberList .role-avatar{color:var(--member-rank-color,#000)!important}

/* Each row packs its own tab widths; Status never reserves a wider grid cell. */
/* Use the same rank palette in message headers and both member lists. */
html #messages .message-name{color:var(--member-rank-color,var(--chat-text-color,#000))!important}

/* Keep the login nickname field white, including focus and browser autofill. */
html #loginNick:-webkit-autofill,html #loginNick:-webkit-autofill:hover,html #loginNick:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset!important;box-shadow:0 0 0 1000px #fff inset!important}

/* Reference-style transcript: plain sans-serif text and bold coloured nicknames. */

/* classic-reference.css kaldırıldı; paylaşılan temel kural */
/* MSN-style composer. Mobile retains its original controls and geometry. */
/* Modern mobile private chat only. */
/* Compact single-line private header; keep all floating actions in that line. */
/* Modern mobile channels share the MSN composer. */

/* Shared full-width heading above both channel columns. */
/* Native completion button must not wrap its arrow onto a second line. */
#app .desktop-composer-toolbar #nickTabButton{white-space:nowrap!important;line-height:1!important;width:40px!important;min-width:40px!important;flex:0 0 40px!important;align-items:center!important;justify-content:center!important;align-self:center!important;padding:0 3px!important}
#app .desktop-composer-toolbar #emojiButton,#app .desktop-composer-toolbar #imageButton,#app .desktop-composer-toolbar #voiceButton{margin-left:4px!important;margin-right:3px!important;align-self:center!important}

/* Compact, regular nick typography in modern channel member lists. */
/* Small presence indicator proportional to member avatars. */

/* Smaller composer in modern mobile channels and private chats. */
html body #app .layout .desktop-composer-toolbar #voiceButton svg,
html body #app .layout .desktop-composer-toolbar .admin-clear-channel svg{width:28px!important;height:28px!important}

/* Small profile actions inside the remote portrait frame. */
/* Keep Tab on the same line; allow scrolling on very narrow screens. */
html body #app .layout .desktop-composer-toolbar{flex-wrap:nowrap!important;align-items:center!important;overflow-x:auto;scrollbar-width:thin}
html body #app .layout .desktop-composer-toolbar>label{flex-shrink:0}

/* Final private layout: portrait controls and native Tab. */
html body #app .layout .desktop-composer-toolbar #nickTabButton,
html body #app #nickTabButton{font:11px/1 Arial,sans-serif!important;background-image:none!important;order:100!important;white-space:nowrap!important}

/* Standard composer always starts with nickname completion. */
html[data-message-style="classic"] body #app #nickTabButton,
html[data-message-style="classic"] body #app .layout .desktop-composer-toolbar #nickTabButton{order:-100!important;flex-shrink:0!important;align-self:center!important;white-space:nowrap!important}

/* Close control belongs inside the remote portrait frame. */

/* Admin form alignment and white authentication fields. */

/* Standard shares modern layout but uses unboxed, left-aligned messages. */
html[data-message-style="standard"] body #app #messages .message .message-body{background:#fff!important;border:0!important;border-radius:14px!important;box-shadow:none!important;color:var(--chat-text-color,#111)!important;padding:10px 12px!important;max-width:100%!important}
html[data-message-style="standard"] body #app #messages .message.self .message-text{color:var(--chat-text-color,#111)!important}
html[data-message-style="standard"] body #app #messages .message.self .message-name{color:var(--cz-0756b9,#254a7b)!important}
html[data-message-style="standard"] body #app #messages .message.self .message-avatar{display:block!important}

/* Plain modern-app messages retain a white transcript and readable metadata. */
html[data-message-style="standard"] body #app #messages{color:#111!important}
html[data-message-style="standard"] body #app #messages .message .message-time,
html[data-message-style="standard"] body #app #messages .message.self .message-time{color:#64748b!important;opacity:1!important}
html[data-message-style="standard"] body #app #messages .message .message-body>div:first-child{justify-content:space-between!important;gap:14px!important}

/* Plain modern-app view: outgoing messages stay on the right. */
html[data-message-style="standard"] body #app #messages .message.self .message-body{background:var(--cz-d5eaff,#d5eaff)!important;border:1px solid var(--cz-bdd3e7,#bdd3e7)!important;border-radius:10px!important;max-width:min(85%,560px)!important;color:var(--chat-text-color,#111)!important}
html[data-message-style="standard"] body #app #messages .message.self .message-avatar{display:none!important}

/* Keep member typography independent of message font preferences in every layout. */
html body #app :is(#memberList,#mobileMemberList) :is(.member-row,.member-nick,.member-prefix){font:400 13px/19px Arial,Helvetica,sans-serif!important;letter-spacing:normal!important}

/* Channel list counters are optional; private badges and the member toggle remain visible. */
html[data-message-style="classic"] body #app #mobileMembersButton{display:flex;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;width:32px!important;min-width:32px!important;height:46px!important;padding:2px!important}
html[data-message-style="classic"] body #app #mobileMembersButton[hidden]{display:none!important}

/* Only mobile Modern rank icons are frameless. */
.user-card .user-card-avatar>.social-avatar .social-dot{display:none}

/* Classic private calls sit together in the header; close is always last. */

/* One predictable profile-card size per viewport in both appearances. */
html body #userCard{box-sizing:border-box;width:min(340px,calc(100vw - 28px))!important;height:auto!important;max-height:calc(100dvh - 32px)!important;padding:20px!important;overflow-y:auto;border-radius:18px!important}
html body #userCard.open{left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important}
html body #userCard .user-card-avatar{box-sizing:border-box;width:68px!important;height:68px!important;margin:8px auto 12px!important;overflow:hidden}
html body #userCard .user-card-info h2{font:600 20px/1.3 Arial,sans-serif!important;margin:8px 0!important}
html body #userCard .user-card-actions button{min-height:48px!important;padding:9px 10px!important;font-size:13px!important}

/* Account forms use the selected theme behind white entry fields. */
html body #socialDialog:is(:where(.has-1d52c7cf),:not(*)#h_),html body #socialDialog:is(:where(.has-1d52c7cf),:not(*)#h_) .social-dialog-content,html body .nick-auth-dialog,html body .applet-admin-dialog{background:var(--cz-e2f1ff,#e2f1ff)!important;color:var(--cz-17365d,#17365d)}
html body #ircAccountForm{background:transparent!important}
html body .voice-recording button[hidden]{display:none!important}
.voice-recording button svg{width:23px;height:23px;pointer-events:none}
.media-browser-preview img{display:block;max-width:150px;max-height:100px;object-fit:contain;border-radius:7px}
.media-browser-preview audio{width:160px;max-width:100%}

/* Solid theme surface, without the former fade to white behind form fields. */
html body #socialDialog:is(:where(.has-1d52c7cf),:not(*)#h_) input,
html body dialog.nick-auth-dialog input:not([type=checkbox]),
html body dialog.applet-admin-dialog input:not([type=checkbox]):not([type=radio]):not([type=color]){background:#fff!important}
.media-image-dialog>img{display:block;max-width:calc(94vw - 26px);max-height:calc(92dvh - 52px);width:auto;height:auto;object-fit:contain}


html body #app #youtubeButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;min-width:30px;height:28px;padding:3px;border:0;background:transparent;box-shadow:none;cursor:pointer}
html body #app #youtubeButton svg{display:block;width:24px;height:18px;flex:none}
html body #app #youtubeButton[hidden]{display:none!important}
#youtubeSendForm label{display:flex;flex-direction:column;gap:8px}
#youtubeSendForm input{box-sizing:border-box;width:100%;padding:11px;border:0;border-radius:12px;background:#fff;color:#222}

/* v49: themed forms, editable own nick and non-scrolling tools */
html body #socialDialog form input:not([type=checkbox]):not([type=radio]):not([type=color]),html body .own-nick-form input{background:#fff!important;color:#174f85!important;border:0!important;box-shadow:none!important;border-radius:12px;padding:9px 10px;min-width:0}
.own-nick-form small{flex-basis:100%}
.media-browser-item{grid-template-columns:100px minmax(0,1fr) auto!important}

/* v50 compact nick editor and server result dialog */
html body #app .own-nick-form button:hover{background:var(--cz-e2f1ff,#e2f1ff)}
html body #app .own-nick-form button:disabled{opacity:.6;cursor:wait}.nick-result-dialog footer{display:flex;justify-content:flex-end;padding:0 16px 14px}

/* v52: compact mobile ranks and Classic composer */
html[data-message-style="classic"] body #app .composer #youtubeButton{display:none!important}
html body #app :is(button,select,input){touch-action:manipulation}

/* v57 desktop account controls and compact member heading */

/* v58 Classic layout stays Classic; only mobile composer uses Modern controls. */

/* v60 Full-width compact Classic mobile composer */

/* v62 PC sidebar order and compact mobile Classic channel input */

/* v63 Classic mobile toolbar: single row and emoji next to send. */

/* v64 Compact private input and aligned send/emoji controls. */

/* v65 Stable desktop sidebar and red private unread counters. */

/* v66 Status above Friends on desktop. */

/* v67 Slim Classic channel tab scrollbar. */

/* v68 Applet font settings, independent device panels and colour palette. */
.admin-device-text form{display:grid;gap:8px;min-width:0}
.admin-color-swatch input:checked+span{outline:2px solid #0758bd;outline-offset:2px}
.admin-color-swatch input:focus-visible+span{outline:2px dashed #0758bd;outline-offset:2px}

/* v69 Grouped channel administration. */
html body .admin-channel-add input{flex:1;min-width:0;width:0;box-sizing:border-box;background:#fff}

/* v71 Nick administration sections. */
html body .admin-nick-add input{flex:1;min-width:0;width:0;box-sizing:border-box;background:#fff}

/* v72 Theme settings with actual colour choices. */
.admin-theme-group form{display:grid;gap:8px;min-width:0}

/* v73 Independent icon visibility, across layouts and screen sizes. */
#adminUiVisibility{display:grid;gap:9px;padding-top:8px}
/* Classic genel ayarlar: satır alt alta dizildiği için 88px genişlik yükseklik oluyordu; normal select boyu. */
html body #adminQwVisibility .admin-visibility-row select{flex:0 0 auto;align-self:flex-start;width:auto;min-width:160px;max-width:100%;height:35px}

/* v74 Permissions are separate from icon visibility. */
#adminMediaAccess{display:grid;gap:10px}#adminMediaAccess label{display:grid;gap:5px;margin:0;min-width:0}#adminMediaAccess select{box-sizing:border-box;min-width:0;width:100%;background:#fff}

/* v75 Square checkboxes for visibility toggles. */
html body #adminUiVisibility .admin-visibility-row input[type=checkbox]{appearance:auto!important;-webkit-appearance:checkbox!important;display:inline-block!important;position:static!important;flex:0 0 19px!important;width:19px!important;min-width:19px!important;height:19px!important;min-height:19px!important;margin:0!important;padding:0!important;border-radius:2px!important;accent-color:#1684df;cursor:pointer;box-shadow:none!important;opacity:1!important}
html body #adminUiVisibility .admin-visibility-row input[type=checkbox]::before,html body #adminUiVisibility .admin-visibility-row input[type=checkbox]::after{content:none!important}

/* v79 Profile moderation, media actions and announcements. */
html body #adminAnnouncement textarea{box-sizing:border-box;width:100%;min-width:0;resize:vertical;background:white;border:1px solid var(--cz-bfd6ef,#bfd6ef);border-radius:8px;padding:9px}
#adminAnnouncement>div{display:flex;gap:10px;align-items:center;justify-content:space-between}#adminAnnouncement button{flex:none;white-space:nowrap}

/* v80 Room authority form and delegated operator menus. */
html body .admin-menu-grant input,html body .admin-room-enable input{appearance:auto!important;width:18px!important;min-width:18px!important;height:18px!important;margin:0!important;accent-color:#1684df}

/* v81 Permission rows inside sections and stable media layout. */

/* v82 Bounded ten-item pages with persistent navigation. */

/* v83 Admin credentials form. */
#adminCredentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:8px}
#adminCredentials label{display:grid;gap:5px;min-width:0;margin:0;font-size:12px}
#adminCredentials input{box-sizing:border-box;width:100%;min-width:0;background:#fff}
#adminCredentials button{grid-column:1/-1;justify-self:end;margin:0;white-space:nowrap}

#operatorOwnPassword{display:grid;gap:10px;padding-top:8px}#operatorOwnPassword label{display:grid;gap:5px;min-width:0;font-size:12px;margin:0}#operatorOwnPassword input{width:100%;min-width:0;box-sizing:border-box;background:#fff}#operatorOwnPassword button{justify-self:end;margin:0;white-space:nowrap}

/* v85 Server settings cards, consistent field sizing. */
html body :is(#adminBrandForm,#adminConnection)>h3{grid-column:1/-1;margin:0 0 3px;font-size:14px;line-height:1.5}
html body :is(#adminBrandForm,#adminConnection)>label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;font-size:12px;line-height:1.5}
html body :is(#adminBrandForm,#adminConnection)>:is(p,small){grid-column:1/-1;margin:0;font-size:12px;line-height:1.6}
html body :is(#adminBrandForm,#adminConnection)>button{grid-column:1/-1;justify-self:end;margin:0;padding:8px 14px;white-space:nowrap;border-radius:8px}
html body :is(#adminBrandForm,#adminConnection) input:focus-visible{outline:2px solid #1684df;outline-offset:1px}

/* v86 Radio form, visible profile counter and collapsible announcement. */
#adminRadioForm h3{margin:0;font-size:14px}
html body #adminRadioForm label{display:grid;gap:6px;margin:0;min-width:0;font-size:12px}
.admin-announcement-form summary{cursor:pointer;font-weight:600}

/* v87 Compact shun management and collapsed profile reviews. */
html body #adminShunAdd label{display:grid;gap:6px;flex:1;min-width:0;margin:0;font-size:12px}
html body #adminShunAdd button{flex:none;margin:0;min-height:38px;padding:8px 10px;white-space:nowrap}

/* v88 Game channel and player pair. */

/* v99 Modern mobile composer: inline emoji and send, compact input. */

/* v101 Classic modern mobile channel toolbar order. */

/* v102 Size selector first in Classic modern mobile channels. */

/* v103 Classic default mobile: microphone first, Tab before send. */

/* Image height is independent from channel/private broom controls. */

/* v104 Universal compact Tab key and full-size mobile emoji panel. */
#classicComposerToggle{display:none}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 @keyframes emoji-close-in{from{opacity:0;transform:rotate(35deg)}to{opacity:1;transform:rotate(0)}}
}

/* Classic default: compact key centred below the scrolling nick list. */
html[data-message-style="classic"] body #app #rightPanel #nickTabButton .nick-tab-arrow{display:none!important}
html[data-message-style="classic"] body #app #rightPanel #nickTabButton:active{filter:brightness(.94);box-shadow:inset 0 2px 3px #17365d30!important}
html[data-message-style="classic"] body #app #rightPanel #nickTabButton[hidden]{display:none!important}

/* Slim, theme-colored channel tab scrollbar on desktop and mobile. */
/* Four full-height scenic backgrounds; controls remain readable. */
html:is([data-chat-background="bubbles"],[data-chat-background="sunset"],[data-chat-background="night"],[data-chat-background="nature"]) body #app :is(.titlebar,.channel-head,.composer,.desktop-composer-toolbar,.composer-row,.mobile-nav){background:var(--wall-glass)!important}
html body .wallpaper-card img{display:block;width:100%;height:78px;object-fit:cover;border-radius:5px}
html body .wallpaper-card span{font:600 12px/1.4 Arial,sans-serif}

/* Theme the built-in community icons; uploaded profile photos retain their colours. */

/* Entry screen follows the server-selected wallpaper and palette. */
html[data-chat-background] body #loginScreen :is(h1,h2,p,label,a,.tagline,.login-slogan){color:var(--wall-ink,#17365d)!important}
html[data-applet-choice="classic"][data-classic-composer="default"] #app #privateComposerBlock{display:none!important}

html[data-chat-background] body #app #radioPanel #radioPlay{background:linear-gradient(145deg,var(--cz-2786ec,#2786ec),var(--cz-0758bd,#0758bd))!important;background-image:linear-gradient(145deg,var(--cz-2786ec,#2786ec),var(--cz-0758bd,#0758bd))!important;color:#fff!important;border:1px solid var(--cz-0758bd,#0758bd)!important;box-shadow:inset 0 1px 2px #fff8,0 1px 4px #0002!important;text-shadow:none!important}
html[data-chat-background] body #app #radioPanel #radioPlay::before,html[data-chat-background] body #app #radioPanel #radioPlay::after{background-image:none!important}
html body .wallpaper-default input{width:16px!important;min-height:0!important;height:16px!important;margin:0!important}
html body .wallpaper-default small{font-size:11px}
html body .wallpaper-original-preview i{display:block;height:9px;width:65%;background:#fff;border:1px solid #a8c8e5;border-radius:4px}
html[data-chat-background="original"]{--wall-panel:#eff8ff;--wall-ink:#17365d;--chat-wallpaper:none;--chat-wallpaper-color:#cbe5ff}.favicon-option input[type=radio]{width:16px!important;height:16px!important;min-height:0!important;margin:0!important}.favicon-option img{display:block;width:32px;height:32px}

/* Preserve the original borderless mobile login layout; only theme its colors. */
/* Consistent picture cards before and after moderation, in channels and PMs. */
html body #app #messages .message.has-image .image-message small{font-size:11px;color:var(--wall-ink,#47617c)}
/* The initial Classic palette remains independent from scenic wallpapers. */

/* Compact attachment controls and a full-width logo chooser. */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* The themed composer owns its row and all three inner columns. */

}


/* One compact frame for author, description and attachment. */

/* Full-width modern mobile channel composer. */

/* Visibility switches hide every entry point, independently of access permissions. */
html body dialog.appearance-choice button{background:#fff!important;color:#17365d!important;border:1px solid #bdd3e7!important;box-shadow:none!important}
html body dialog.appearance-choice button:hover,html body dialog.appearance-choice button:focus-visible{background:#f0f6fc!important;border-color:#83b5e9!important}

/* Classic channel has two grid rows; only the composer controls use modern styling. */

/* Compact YouTube previews in administrator and applet operator panels. */

/* Personal colour is used by the input and transmitted text, never the channel palette. */
html body #app #messageInput{color:var(--outgoing-text-color,#000)!important}

/* Small personal colour popup on mobile only. */

#connectingScreen.connection-failed .connecting-logo,#connectingScreen.connection-failed .connecting-logo *{animation:none!important}

/* Keep iOS input focus from magnifying/cropping the mobile chat. Message text
   still uses the selected font size; only the editing field has a 16px floor. */

/* Transcript navigation floats inside the message viewport, without a side rail. */
html body button.transcript-arrow[hidden]{display:none!important}
/* Compact only the channel name/topic strip. Keep brand, radio and profile
   headings at their original sizes. */

/* Arrow controls replace the old in-flow paging labels. */
html body #lastChannelButton{display:none!important}

/* Mobile: profile actions expand underneath the selected member. */

/* Operator actions stay collapsed until explicitly opened. */
html body #userCard details.profile-moderation{display:block;max-height:none;overflow:visible;margin-top:7px;padding-top:6px;border-color:var(--cz-bdd3e7,#bdd3e7)}
html body #userCard details.profile-moderation>summary{cursor:pointer;padding:8px 5px;border:1px solid var(--cz-b0d0ee,#b0d0ee);border-radius:7px;background:var(--cz-e4f2ff,#e4f2ff);color:var(--cz-0a4c9e,#0a4c9e);font-size:11px;font-weight:600}
html body #userCard details.profile-moderation:not([open])>button{display:none!important}

/* Shared grouped channel roster on desktop and mobile. */
html body :is(#memberList,#mobileMemberList) .member-group-heading>span{flex:1;min-width:0;overflow-wrap:anywhere}
html body :is(#memberList,#mobileMemberList) .member-group-heading>b{border-radius:12px;padding:1px 6px;background:color-mix(in srgb,var(--group-color) 55%,white);color:white;font:10px Arial,sans-serif}
html body :is(#memberList,#mobileMemberList) .member-group-heading>i{width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg);margin:0 2px 3px}
html body :is(#memberList,#mobileMemberList) .member-group-heading[aria-expanded="false"]>i{transform:rotate(-45deg);margin-bottom:0}
html body :is(#memberList,#mobileMemberList) .grouped-member :is(.member-nick,.member-prefix){color:var(--group-color)!important}

/* Global roster avatar preference, independent of group icons in headings. */
html body :is(#memberList,#mobileMemberList) .roster-profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:5px}
html body #userCard.rank-colored-profile :is(.user-card-info h2,.user-card-actions button,.profile-moderation button){color:var(--profile-rank-color)!important}

/* Keep the IRC prefix and nickname together on all roster layouts. */
html body #adminAccountsArea form{display:grid;gap:9px;margin-top:10px}
html body #adminAccountsArea label{display:grid;gap:4px}
html body #adminAccountsArea button{border:1px solid var(--cz-82b9e9,#82b9e9);border-radius:7px;padding:7px 10px;background:var(--cz-e4f2ff,#e4f2ff);color:var(--cz-063f91,#063f91)}
html body .admin-account-row strong{min-width:0;overflow-wrap:anywhere;font-size:13px;color:var(--cz-063f91,#063f91)}
html body .management-group summary{cursor:pointer;font-weight:600;color:var(--cz-063f91,#063f91)}
html body .management-group form{display:flex;gap:8px;margin:10px 0}
html body .management-group input{min-width:0;flex:1;padding:8px;border:1px solid var(--cz-bdd3e7,#bdd3e7);border-radius:7px}

/* Compact, non-wrapping roster headings across phone widths. */
html body :is(#memberList,#mobileMemberList) button.member-group-heading>span{display:block!important;flex:1 1 auto!important;min-width:0!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;overflow:hidden!important;text-overflow:ellipsis!important;font:600 11px/16px Arial,sans-serif!important}
html body :is(#memberList,#mobileMemberList) button.member-group-heading>b{flex:0 0 auto!important;padding:1px 4px!important;font:10px/12px Arial,sans-serif!important;white-space:nowrap!important}
html body :is(#memberList,#mobileMemberList) button.member-group-heading>i{flex:0 0 5px!important}

/* Resize the layout column itself, keeping the roster against the right edge. */
:root{--channel-roster-width:190px}

/* Compact phone composer and navigation; desktop dimensions stay unchanged. */

/* Slim speech-bubble group labels, with a small lower-left tail. */
html body :is(#memberList,#mobileMemberList) button.member-group-heading::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:0;border-top:5px solid color-mix(in srgb,var(--group-color) 18%,white);border-right:6px solid transparent;pointer-events:none}
html body :is(#memberList,#mobileMemberList) button.member-group-heading>span{font-weight:500!important;font-size:10px!important;line-height:15px!important}

/* Small outlined mobile writing tools with breathing room. */

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Keep the supplied image button artwork; do not paint the fallback emoji over it. */
}

/* Inline authority avatars for Classic phone transcripts. */

/* The regular-user group needs only its name, without a counter. */
html body :is(#memberList,#mobileMemberList) button.member-group-heading[data-group="normal"]{grid-template-columns:16px minmax(0,1fr) 7px!important}
/* Recolour the existing close artwork, including its circular outline. */
html body #socialDialog>header [data-social-close] .profile-action-icon,html body #userCardClose .profile-action-icon{filter:brightness(0) invert(1)!important}.classic-like svg{display:block;flex:none}

/* Reactions replace the Classic like launcher at the end of the message. */

/* Desktop controls follow the selected theme and compact mobile styling. */

/* Quiet white nickname fields, including focused states. */
html body #app#app .desktop-member-search::after{background:#fff!important;border:0!important}

/* Compact Messenger voice room, shared by every device and appearance. */
html body .voice-room-panel header b{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .voice-room-panel button[hidden]{display:none!important}
html body .voice-room-panel .room-group>summary::-webkit-details-marker{display:none}
html body .voice-room-panel .room-group>summary::after{content:'⌄'}
html body .voice-room-panel .room-group[open]>summary::after{content:'⌃'}
html body .voice-room-panel :is(.room-speakers,.room-listeners) article:last-child{border-bottom:0}
html body .voice-room-panel .room-avatar+span b{font-size:10px;font-weight:normal}
html body .voice-room-panel .room-speakers .room-avatar+span b{font-weight:bold}
html body .voice-room-panel .room-speakers article.has-291a3fb2{padding-left:22px}
html body .voice-room-panel .room-controls>summary::-webkit-details-marker{display:none}

/* Centre the voice room on every screen, with more room on desktop. */

/* Supplied voice room skin — all applet layouts */
@font-face {
  font-family: 'RoomRoboto';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/room-roboto-0.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'RoomRoboto';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/room-roboto-1.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}html body .voice-room-panel.vr-demo .vrx-listener-search input::placeholder{color:var(--vr-muted);opacity:1}html body .voice-room-panel.vr-demo .vrx-listener-search input::-webkit-search-cancel-button{cursor:pointer}html body .voice-room-panel.vr-demo .vrx-listener-search:focus-within{border-color:var(--vr-border)}html body .voice-room-panel.vr-demo .vrx-section-heading .vrx-section-label{flex:1}html body .voice-room-panel.vr-demo .vrx-section-heading[aria-expanded="false"]{border-bottom-color:transparent}html body .voice-room-panel.vr-demo .vrx-section-heading[aria-expanded="false"]>.chevron{transform:none}html body .voice-room-panel.vr-demo .vrx-management-button[aria-pressed="true"]{background:var(--vr-soft);border-color:var(--vr-border)}html body .voice-room-panel.vr-demo .vrx-banned-section .vrx-section-heading[aria-expanded="true"] .triangle{transform:rotate(90deg)}html body .voice-room-panel.vr-demo .vrx-voice-room.is-minimized .vrx-room-header{border-radius:calc(19 * var(--u))}html body .voice-room-panel.vr-demo .vrx-voice-room button:hover{filter:brightness(1.025)}html body .voice-room-panel.vr-demo .vrx-voice-room button:active{filter:brightness(.98)}html body .voice-room-panel.vr-demo .popup-menu button:hover{background:var(--vr-soft)}
html body .voice-room-panel.vr-demo summary::-webkit-details-marker{display:none}
html body .voice-room-panel.vr-demo .vrx-section-heading>svg:last-child{width:calc(18 * var(--u));transform:rotate(180deg)}
html body .voice-room-panel.vr-demo details:not([open])>.vrx-section-heading>svg:last-child{transform:none}
html body .voice-room-panel.vr-demo button:disabled{opacity:.5;cursor:default}
html body .voice-room-panel.vr-demo .room-broadcast-menu>summary::-webkit-details-marker{display:none}
html body .voice-room-panel.vr-demo .room-broadcast-menu>summary svg{width:calc(19 * var(--u));height:calc(19 * var(--u));stroke-width:3}

/* Voice toolbar: override legacy data-room button/input rules explicitly. */
html body .voice-room-panel.vr-demo .vrx-broadcast-main>svg{width:17px!important;height:19px!important;flex:0 0 17px!important}
html body .voice-room-panel.vr-demo .room-broadcast-menu>summary{display:flex!important;align-items:center!important;justify-content:center!important;width:16px!important;height:34px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;list-style:none!important}
html body .voice-room-panel.vr-demo .room-broadcast-menu>summary svg{width:10px!important;height:10px!important}
html body .voice-room-panel.vr-demo .vrx-microphone-button>svg{width:14px!important;height:18px!important;flex:0 0 14px!important}
html body .voice-room-panel.vr-demo .vrx-listener-search>svg{width:14px!important;height:14px!important;flex:0 0 14px!important}
html body .voice-room-panel.vr-demo .vrx-listener-search input::placeholder{font:inherit!important;color:var(--vr-muted)!important;opacity:.8!important}

/* Compact room search and stacked publisher actions, all layouts. */
html body .voice-room-panel.vr-demo .vrx-person-actions .vrx-publisher-mute svg{width:15px;height:18px}
html body .voice-room-panel.vr-demo .vrx-listener-search>svg{display:none!important}
html body .channel-hash.has-630b5616::before,html body .channel-hash.has-630b5616::after{display:none!important}

/* Voice publishers: compact avatar tiles on every layout. */
.voice-room-panel.vr-demo .vrx-publisher-tile .room-avatar :is(.social-avatar,img){width:100%!important;height:100%!important;border-radius:50%!important;object-fit:cover!important}
.voice-room-panel.vr-demo .vrx-publisher-tile.room-speaking .room-avatar{border-color:#ed3945!important;box-shadow:0 0 0 4px #ed394530!important}
.voice-room-panel.vr-demo .vrx-publisher-tile .room-controls>div{right:0;z-index:20}

/* Sent emoji and consistent Facebook-style like across layouts. */
/* Applet admin › Aktif/Pasif: kapatılan özelliğin düğmesi ve temaların ürettiği kopyaları (PC başlığı,
   modern başlık, classic özel başlık, profil kartı) her görünümde gizlenir. Kimlik seçici sayısı
   temaların !important kurallarından yüksek tutuldu (PC teması #app#app#app kullanıyor). */
/* ozel.html presentation mapped onto live Classic mobile private conversations. */
#referencePrivateSidebar,#referencePrivateHeader{display:none}

#referencePrivateToggle{display:none}

/* Use the full header scope so earlier high-specificity size rules cannot win. */

/* Compact private controls and a count on the collapsible roster edge. */
/* Both join entry points use one aligned row with equal control heights. */
html body #socialDialog.classic-channel-picker form.classic-channel-join{display:flex!important;align-items:flex-end!important;gap:8px!important;margin-top:12px!important}
html body #socialDialog.classic-channel-picker form.classic-channel-join label{display:flex!important;flex-direction:column!important;flex:1 1 0!important;min-width:0!important;gap:5px!important;margin:0!important;font-size:12px!important}
html body #socialDialog.classic-channel-picker form.classic-channel-join input,
html body #socialDialog.classic-channel-picker form.classic-channel-join>button{box-sizing:border-box!important;height:36px!important;min-height:36px!important;margin:0!important;padding:7px 10px!important;border:1px solid #a5cce5!important;border-radius:8px!important;font-size:14px!important;line-height:20px!important}
html body #socialDialog.classic-channel-picker form.classic-channel-join>button{flex:0 0 auto!important;color:white!important;background:linear-gradient(#45a9fa,#1879d4)!important}
html body #app#app form.channel-join-form{display:flex!important;align-items:center!important;gap:8px!important}
html body #app#app form.channel-join-form input{flex:1 1 0!important;min-width:0!important}

/* Separate Classic mobile friends navigation and in-conversation calls. */

/* A personal avatar takes priority over the authority glyph. */
#referenceTopicBar{display:none}

/* Quote navigation and reaction badges use the full message width. */
.quoted-message[data-quote-source]:focus-visible{outline:2px solid #368adb;outline-offset:2px}
html body #app#app #messages .message .reaction-widget:is(:where(.has-deb279ac),:not(*).h_.h_):is(:where(.has-ea2bb69e),:not(*).h_.h_){display:none!important}
/* Compact confirmation shared by all friend controls. */
html body .friend-confirm-dialog::backdrop{background:#12304a55}
html body .friend-confirm-dialog p{margin:14px;overflow-wrap:anywhere}
html body .friend-confirm-dialog footer{display:flex;justify-content:flex-end;gap:8px;padding:0 12px 12px}
html body .friend-confirm-dialog header button{width:30px;min-height:30px;padding:0;font-size:23px}
/* Keep a compact card while giving YouTube controls a usable inner viewport. */
html body #app#app #messages .chat-youtube-play img{display:block;width:100%;height:100%;object-fit:cover}
html body #app#app #messages .chat-youtube-play span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:30px;border-radius:9px;background:#f03;color:#fff;font:18px/1 Arial,sans-serif}
html body .chat-video-dialog::backdrop{background:#10253866}
html body .chat-video-dialog header>div{display:flex;gap:7px}
html body .chat-video-dialog p{font:12px/1.4 Arial,sans-serif;margin:8px 0 0}

/* Classic iPhone: one-line Tab control and stable keyboard layout. */

/* Classic (qwebirc görünümü) mobil: kanal ve özel mesajlarda nickin solundaki avatar ~%20 küçük.
   PC ve modern/WhatsApp temaları etkilenmez. */
#referenceProfile .profile-popover:after{content:"";position:absolute;bottom:-15px;left:84px;width:27px;height:27px;transform:rotate(45deg);background:linear-gradient(135deg,#e4f9ff,#f2ffff);border-bottom:2px solid #bcecff;border-right:2px solid #bcecff;box-shadow:4px 4px 7px #6cb7e133;z-index:-1}
#referenceProfile .profile-scroll::-webkit-scrollbar{display:none}
#referenceProfile .profile-switch:after{content:"";display:block;width:23px;height:23px;border-radius:50%;background:linear-gradient(#fff,#f1f6fa);box-shadow:0 1px 3px #5278968c;transition:transform .15s}
#referenceProfile .profile-night[aria-checked=true] .profile-switch:after{transform:translateX(24px)}
#referenceProfile{--profile-reference:url('/images/profile-reference.webp');font-family:Arial,Helvetica,sans-serif;color:#345370;width:490px;max-width:none;position:relative;margin:auto;zoom:var(--profile-scale,.7)}
#referenceProfile .profile-popover:after{display:none}
html body #socialDialog [data-guest-avatar] img{display:block;width:100%;max-width:70px;height:auto;border-radius:50%}
:root{--md-f0f5f6:#f0f5f6;--md-027e68aa:#027e68aa;--md-096c5d:#096c5d;--md-006050:#006050;--md-b4d6d3:#b4d6d3;--md-00946d:#00946d;--md-006653:#006653;--md-a9ceca:#a9ceca;--md-73aaa3:#73aaa3;--md-d1e7df:#d1e7df;--md-e0ffd1:#e0ffd1;--md-00976e:#00976e;--md-00866c:#00866c;--md-00a765:#00a765;--md-006d58:#006d58;--md-fcfefe:#fcfefe;--md-d7e6e5:#d7e6e5;--md-102933:#102933;--md-e5f3ed:#e5f3ed;--md-bddbd0:#bddbd0;--md-cadcd5:#cadcd5;--md-072e2c33:#072e2c33;--md-00866ccc:#00866ccc;--md-18534555:#18534555;--md-2d9a80:#2d9a80;--md-32ad8f:#32ad8f;--md-174e41:#174e41;--md-227561:#227561;--md-21735f:#21735f;--md-227360:#227360;--md-237763:#237763;--md-227460:#227460;--md-247b66:#247b66;--md-2c977d:#2c977d;--md-2b957b:#2b957b;--md-2c987e:#2c987e;--md-2c967d:#2c967d;--md-32ae90:#32ae90;--md-32ac8f:#32ac8f;--md-298d75:#298d75;--md-33b193:#33b193;--md-2d997f:#2d997f;--md-21705d:#21705d;--md-278871:#278871;--md-2fa186:#2fa186;--md-2fa387:#2fa387;--md-37bf9e:#37bf9e;--md-2ea084:#2ea084;--md-30a78a:#30a78a;--md-36b99a:#36b99a;--md-31a88c:#31a88c;--md-31aa8d:#31aa8d;--md-26826c:#26826c;--md-1342377a:#1342377a;--md-0f342b:#0f342b;--md-10382e:#10382e;--md-174e4140:#174e4140;--md-1e6957:#1e6957;--md-1c615050:#1c615050;--md-1f6957:#1f6957;--md-206d5b:#206d5b;--md-247c67:#247c67;--md-19564766:#19564766;--md-1f6b5950:#1f6b5950;--md-227762:#227762;--md-2a9078:#2a9078;--md-34b193:#34b193;--md-3bc6a5:#3bc6a5;--md-3fc7a6:#3fc7a6;--md-298e769c:#298e769c;--md-2e9f84:#2e9f84;--md-237a6530:#237a6530;--md-36ba9a:#36ba9a;--md-206f5c:#206f5c;--md-21715e:#21715e;--md-1f6c5935:#1f6c5935;--md-247a66:#247a66;--md-2d9b81:#2d9b81;--md-206f5c55:#206f5c55;--md-237964:#237964;--md-237a65:#237a65;--md-25806a:#25806a;--md-288a72:#288a72;--md-2b937a:#2b937a;--md-37be9e:#37be9e;--md-1a5a4b:#1a5a4b;--md-1d6252:#1d6252;--md-19564740:#19564740;--md-19564770:#19564770;--md-1f6b59:#1f6b59;--md-1e695755:#1e695755;--md-26816b:#26816b;--md-25816b:#25816b;--md-288972:#288972;--md-26846d24:#26846d24;--md-2d9d82:#2d9d82;--md-35b5962b:#35b5962b;--md-1f6b5944:#1f6b5944;--md-27877030:#27877030;--md-2a9178:#2a9178;--md-42c8a8:#42c8a8;--md-288b73:#288b73;--md-36bc9c:#36bc9c;--md-37bc9c:#37bc9c;--md-38c2a1:#38c2a1;--md-40c8a7:#40c8a7;--md-47c9aa:#47c9aa;--md-27856f:#27856f;--md-39c4a3:#39c4a3;--md-38c3a1:#38c3a1;--md-20705d38:#20705d38;--md-39c5a3:#39c5a3;--md-33ae91:#33ae91;--md-36b89940:#36b89940;--md-3cc6a5:#3cc6a5;--md-2b947b18:#2b947b18;--md-46c9aa:#46c9aa;--md-39c3a2:#39c3a2;--md-3dc7a6:#3dc7a6;--md-3cc7a5:#3cc7a5;--md-49caab:#49caab;--md-2fa38733:#2fa38733;--md-298e76:#298e76;--md-31a78b20:#31a78b20;--md-288871:#288871;--md-4eccae:#4eccae;--md-31a98c20:#31a98c20;--md-2a8f7720:#2a8f7720;--md-2fa085:#2fa085;--md-2d9c81:#2d9c81;--md-47caaa:#47caaa;--md-4acaab:#4acaab;--md-5fd0b5:#5fd0b5;--md-34b59626:#34b59626;--md-33af9109:#33af9109;--md-66d2b8:#66d2b8;--md-5ed0b5:#5ed0b5;--md-33b092:#33b092;--md-35b596:#35b596;--md-45c9a9:#45c9a9;--md-51ccaf:#51ccaf;--md-26846d44:#26846d44;--md-31a98c:#31a98c;--md-6bd4bb:#6bd4bb;--md-6dd4bc:#6dd4bc;--md-38c09f2b:#38c09f2b;--md-60d1b6:#60d1b6;--md-37bf9e22:#37bf9e22;--md-38bf9f26:#38bf9f26;--md-63d2b7:#63d2b7;--md-56ceb1:#56ceb1;--md-38c1a0:#38c1a0;--md-3ec7a6:#3ec7a6;--md-36bb9b:#36bb9b;--md-5dd0b4:#5dd0b4;--md-75d7bf:#75d7bf;--md-66d3b9:#66d3b9;--md-6cd4bb:#6cd4bb;--md-3ac6a4:#3ac6a4;--md-83dbc6:#83dbc6;--md-38bf9f:#38bf9f;--md-43c8a8:#43c8a8;--md-82dbc6:#82dbc6;--md-40c7a7:#40c7a7;--md-43c9a9:#43c9a9;--md-44c9a9:#44c9a9;--md-78d8c1:#78d8c1;--md-80dac4:#80dac4;--md-4acbac:#4acbac;--md-4fccae:#4fccae;--md-7dd9c3:#7dd9c3;--md-4dcbad:#4dcbad;--md-77d7c0:#77d7c0;--md-50ccae:#50ccae;--md-5bcfb3:#5bcfb3;--md-54cdb0:#54cdb0;--md-62d2b7:#62d2b7;--md-52cdaf:#52cdaf;--md-88ddc8:#88ddc8;--md-53cdb0:#53cdb0;--md-6ed5bc:#6ed5bc;--md-8cddca:#8cddca;--md-8cdeca:#8cdeca;--md-8fdecb:#8fdecb;--md-9be2d1:#9be2d1;--md-5bd0b4:#5bd0b4;--md-70d6bd:#70d6bd;--md-8ddecb:#8ddecb;--md-93dfcd:#93dfcd;--md-8edecb:#8edecb;--md-8bddc9:#8bddc9;--md-96e1cf:#96e1cf;--md-92dfcd:#92dfcd;--md-93e0cd:#93e0cd;--md-a2e4d4:#a2e4d4;--md-72d6be:#72d6be;--md-8fdfcc:#8fdfcc;--md-95e0ce:#95e0ce;--md-9ae2d144:#9ae2d144;--md-a6e5d6:#a6e5d6;--md-a7e6d7:#a7e6d7;--md-9ae2d1:#9ae2d1;--md-7ad9c2:#7ad9c2;--md-99e2d0:#99e2d0;--md-a0e3d3:#a0e3d3;--md-98e1d0:#98e1d0;--md-9de2d2:#9de2d2;--md-a1e4d4:#a1e4d4;--md-74d7bf:#74d7bf;--md-a7e5d6:#a7e5d6;--md-9fe3d3:#9fe3d3;--md-a5e5d680:#a5e5d680;--md-abe7d8:#abe7d8;--md-a4e5d5:#a4e5d5;--md-a5e5d6:#a5e5d6;--md-a9e6d7:#a9e6d7;--md-ade7d9:#ade7d9;--md-b4e9dc:#b4e9dc;--md-ace7d9:#ace7d9;--md-abe6d8:#abe6d8;--md-b5eadd:#b5eadd;--md-baebdf:#baebdf;--md-b2e9dc:#b2e9dc;--md-b1e8db:#b1e8db;--md-bbebe0:#bbebe0;--md-b3e9dc:#b3e9dc;--md-b6eadd:#b6eadd;--md-b8eade:#b8eade;--md-afe8da:#afe8da;--md-b9ebdf:#b9ebdf;--md-aee8da:#aee8da;--md-beece1:#beece1;--md-bfede2:#bfede2;--md-b2e9db:#b2e9db;--md-b5e9dd:#b5e9dd;--md-bcebe0:#bcebe0;--md-bdece1:#bdece1;--md-bfece1:#bfece1;--md-bcece0:#bcece0;--md-b8ebdf:#b8ebdf;--md-c2ede3:#c2ede3;--md-c9efe6:#c9efe6;--md-cbf0e7:#cbf0e7;--md-c6eee5:#c6eee5;--md-c1ede2:#c1ede2;--md-c0ede2:#c0ede2;--md-c3eee4:#c3eee4;--md-c5eee4:#c5eee4;--md-c6efe5:#c6efe5;--md-d0f1e9:#d0f1e9;--md-c7efe5:#c7efe5;--md-caefe6:#caefe6;--md-d2f2ea:#d2f2ea;--md-d3f2eb9c:#d3f2eb9c;--md-caf0e7:#caf0e7;--md-d4f2eb:#d4f2eb;--md-d5f3ec:#d5f3ec;--md-cff1e9:#cff1e9;--md-d7f3ec:#d7f3ec;--md-d7f4ed:#d7f4ed;--md-d8f4ed:#d8f4ed;--md-d9f4ee:#d9f4ee;--md-d1f2ea:#d1f2ea;--md-daf4ee9e:#daf4ee9e;--md-daf4eeb0:#daf4eeb0;--md-d3f2eb:#d3f2eb;--md-dbf4ee:#dbf4ee;--md-ddf5ef:#ddf5ef;--md-def5f0:#def5f0;--md-def6f0:#def6f0;--md-dff6f0:#dff6f0;--md-daf4ee:#daf4ee;--md-e0f6f1:#e0f6f1;--md-e1f6f1:#e1f6f1;--md-e1f6f170:#e1f6f170;--md-e2f6f1bb:#e2f6f1bb;--md-e2f6f1:#e2f6f1;--md-e4f7f3:#e4f7f3;--md-e6f8f4:#e6f8f4;--md-e6f8f4f5:#e6f8f4f5;--md-e7f8f4:#e7f8f4;--md-e7f8f4b8:#e7f8f4b8;--md-e2f7f2:#e2f7f2;--md-e8f8f4:#e8f8f4;--md-e9f8f5:#e9f8f5;--md-e9f9f5:#e9f9f5;--md-eaf9f5:#eaf9f5;--md-ebf9f6:#ebf9f6;--md-ecf9f6:#ecf9f6;--md-ecfaf6:#ecfaf6;--md-edfaf7:#edfaf7;--md-eefaf7:#eefaf7;--md-effaf8:#effaf8;--md-f0fbf8:#f0fbf8;--md-f1fbf9:#f1fbf9;--md-f2fbf9:#f2fbf9;--md-f3fbf9:#f3fbf9;--md-f3fbf9d9:#f3fbf9d9;--md-f3fbf9f0:#f3fbf9f0;--md-f4fcfa:#f4fcfa;--md-f4fcfaf0:#f4fcfaf0;--md-f4fcfadb:#f4fcfadb;--md-f5fcfa:#f5fcfa;--md-f5fcfacc:#f5fcfacc;--md-f6fcfb80:#f6fcfb80;--md-f6fcfb:#f6fcfb;--md-f6fdfb:#f6fdfb;--md-f7fdfb:#f7fdfb;--md-f7fdfbbb:#f7fdfbbb;--md-f8fdfc:#f8fdfc;--md-f8fdfcba:#f8fdfcba;--md-f9fdfc:#f9fdfc;--md-f9fdfc90:#f9fdfc90;--md-f9fdfcf5:#f9fdfcf5;--md-fafdfd:#fafdfd;--md-fafefd:#fafefd;--md-61776f:#61776f;--md-072e2c22:#072e2c22;--md-a8cec2:#a8cec2;--md-009272:#009272;--md-dcebe4:#dcebe4;--md-003d3333:#003d3333;--md-b9d7cd:#b9d7cd;--md-edf0ee:#edf0ee;--md-e0f1e9:#e0f1e9;--md-dff2e8:#dff2e8;--md-183d33:#183d33;--md-d1ded8:#d1ded8;--md-173e3320:#173e3320;--md-f5faf7:#f5faf7;--md-e0ebe5:#e0ebe5;--md-c8dfd4:#c8dfd4;--md-113c3020:#113c3020;--md-dae6df:#dae6df;--md-00392e33:#00392e33;--md-eaf5ef:#eaf5ef;--md-e4ece7:#e4ece7;--md-bbd8ca:#bbd8ca;--md-f7fcf9:#f7fcf9;--md-deefe5:#deefe5;--md-143e30:#143e30;--md-00352755:#00352755;--md-002e2455:#002e2455;--md-00866c33:#00866c33;--md-5c7d70:#5c7d70;--md-d1e8db:#d1e8db;--md-31574c:#31574c;--md-667b73:#667b73;--md-74867e:#74867e;--md-159de0:#159de0;--md-edf6f1:#edf6f1;--md-75f59a:#75f59a;--md-36dd72:#36dd72;--md-37443f:#37443f;--md-003d3033:#003d3033;--md-cbded4:#cbded4;--md-f3f8f5:#f3f8f5;--md-46534d:#46534d;--md-dcefe4:#dcefe4;--md-83b79c:#83b79c;--md-174c38:#174c38;--md-f6fcf9:#f6fcf9;--md-15372d:#15372d;--md-e1f2e9:#e1f2e9;--md-28c79b:#28c79b;--md-899c94:#899c94;--md-20b987:#20b987;--md-25483b:#25483b;--md-00382c20:#00382c20;--md-d9e8e0:#d9e8e0;--md-26473a:#26473a;--md-eef6f1:#eef6f1;--md-dbece2:#dbece2;--md-bed9cb:#bed9cb;--md-e8f4ed:#e8f4ed;--md-245440:#245440;--md-e1f1e8:#e1f1e8;--md-c7dfd2:#c7dfd2;--md-254b3d:#254b3d;--md-00352740:#00352740;--md-002e2466:#002e2466;--md-c0dbcc:#c0dbcc;--md-285e48:#285e48;}
/* sohbet-demo.html visual skin; Classic and desktop are intentionally out of scope. */
#modernAttach,#modernChatBack,#modernProfileMenu{display:none}

/* Dedicated demo navigation: do not restyle the legacy bottom navigation. */
#modernDemoTabs{display:none}

/* Login visibility must win over every presentation layout rule. */

#modernCallActions{display:none}
#modernHeaderMedia,#modernChatMenu{display:none}
#modernNavigationMenu,#modernRadioDialog{display:none}
/* Modern mobile: room titles use remaining space, never the old 65px portrait-column limit. */

/* Explicit header columns keep media controls beside the menu on every width. */
/* Topic is a separate full-width row; its existing toggle never joins the text flow. */
#modernTopic{display:none}


#modernIdentity{display:none}

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Operatör komut sonucu barları modern temada da doğru renk alsın (yeşil/kırmızı/tema). */
}

#modernRoomButton{display:none}

/* Two appearance choices share all layout and interaction rules. */

/* Keep the phone's bottom navigation/safe-area surface neutral in either palette. */

/* Blue palette keeps the WhatsApp pattern in channel and private conversations. */

#modernRadioSide{display:none}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
@keyframes modern-radio-slide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
}

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
@keyframes modern-radio-slide-full{from{opacity:0;transform:translateX(calc(100% + 43px))}to{opacity:1;transform:translateX(0)}}
@keyframes modern-equalizer{0%{transform:scaleY(.18)}45%{transform:scaleY(.65)}100%{transform:scaleY(1)}}
}

html.modern-demo[data-applet-choice="modern"] body #modernRadioDialog>header{gap:8px}html.modern-demo[data-applet-choice="modern"] body #modernRadioDialog>header>span{flex:1}#modernRadioRefresh span{font-size:19px}

#modernFullscreen{display:none}

/* Reserve safe-area space outside the 50px identity row, including fullscreen. */

/* Compact header radio; reuse the original audio and controls. */
#modernHeaderRadio{display:none}
html body dialog.appearance-choice.appearance-choice button[data-value]{background:#e5f3ed!important;color:#175747!important;border:1px solid #c5ded3!important}
html body dialog.appearance-choice.appearance-choice button[data-value]:hover{background:#d5ebdf!important}

/* Align refresh with the controls row, independently of the volume track. */
@font-face{font-family:RosterRoboto;src:url('/fonts/roster-roboto.woff2') format('woff2');font-weight:100 900;font-display:swap}

/* Theme-aware roster handle with a centered icon and counter. */

/* One footer timestamp in channel and private message bubbles. */

/* Private header: neutral status label, semantic presence dot. */

/* Active voice room is a separate trailing status, never clipped by topic text. */

/* Keep live-room and unread indicators in their own right-hand column. */

/* Round the image, not the presence indicator outside its corner. */
html body #socialDialog .sound-option input[type="checkbox"][role="switch"]:checked{background:var(--cz-1266b5,#1266b5)!important}
html body #socialDialog .sound-option input[type="checkbox"][role="switch"]::before{content:none!important}
html body #socialDialog .sound-option input[type="checkbox"][role="switch"]::after{content:''!important;position:absolute!important;left:3px!important;top:3px!important;width:17px!important;height:17px!important;border-radius:50%!important;background:white!important;box-shadow:0 1px 3px #0002!important;transform:none!important}
html body #socialDialog .sound-option input[type="checkbox"][role="switch"]:checked::after{transform:translateX(17px)!important}
html body #radioPanel #radioPlay{appearance:none!important;-webkit-appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important}
html body #radioPanel #radioPlay svg{display:block!important;width:65%!important;height:65%!important;fill:currentColor!important;flex:none!important}
#socialToast.connection-dots .connection-dot-row i:nth-child(2){animation-delay:.16s}
#socialToast.connection-dots .connection-dot-row i:nth-child(3){animation-delay:.32s}
@keyframes connection-dot-pulse{0%,65%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

/* Admin avatar preference applies to all roster layouts, including modern mobile. */

/* Group controls share the same hit area in both roster containers. */
html body :is(#memberList,#mobileMemberList) .member-group-heading::after{content:none!important}
html body :is(#memberList,#mobileMemberList) .roster-design-arrow svg{display:block!important;width:16px!important;height:16px!important;max-width:16px!important;flex:none!important}
html body :is(#memberList,#mobileMemberList) .member-group-heading[aria-expanded="false"] .roster-design-arrow svg{transform:rotate(-90deg)}

/* Desktop roster: the disclosure arrow belongs on the heading's single row. */

/* Compact WP mobile bubbles; Classic mobile is explicitly excluded. */

/* Received reactions sit just outside the lower-right bubble edge. */

/* Put the timestamp on the nickname row, above the message text. */

/* Reuse the lightweight PC WebP backgrounds only in Modern mobile. */


/* Compact modern-mobile emoji picker, keeping its close control visible. */

/* Mobil modern (WhatsApp) ve qwebirc görünümü — Classic MSN (mavi) ve PC modu hariç:
   özelde Arkadaş ekle / Engelle / Kapat ⋮ menüsünde; görüntülü ve sesli arama ⋮'ye yakın, aralıklı.
   Kanalda sağ kenardaki operatör düğmesi gizli, panel ⋮ > Op Menü ile açılır. */

/* v83 · Modern mobil (WhatsApp) nick listesi görünümü — admin › Tema Ayarları › Modern mobil. Yalnız ayar seçilince
   eşleşir; özel nick stilleri hariç. */
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList .member-row.nlr-f .member-nick:not(.nick-styled),html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList button.member-group-heading.nlr-f>span:not(.roster-design-arrow){font-family:var(--nlr-font)!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList .member-row.nlr-z .member-nick:not(.nick-styled),html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList button.member-group-heading.nlr-z>span:not(.roster-design-arrow){font-size:var(--nlr-size)!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList .member-row.nlr-w .member-nick:not(.nick-styled),html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList button.member-group-heading.nlr-w>span:not(.roster-design-arrow){font-weight:var(--nlr-weight)!important;font-style:var(--nlr-italic)!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList .member-row.nlr-c .member-nick:not(.nick-styled),html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList button.member-group-heading.nlr-c>span:not(.roster-design-arrow){color:var(--nlr-color)!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList .member-row.nlr-c .member-prefix{color:var(--nlr-color)!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList#mobileMemberList .member-row :is(.roster-role-avatar,.nlr-row-icon).nlr-plain.nlr-plain{background:none!important;box-shadow:none!important;border:0!important}
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList#mobileMemberList .member-row :is(.roster-role-avatar,.nlr-row-icon).nlr-plain.nlr-plain>svg{color:var(--group-color)!important;background:none!important}
/* v88 · Yetkili başlığı yazısı ve altındaki nickler aynı renkte (kategori rengi seçilmediyse grubun rengi) */
html body #mobileDrawer#mobileDrawer#mobileDrawer #mobileMemberList button.member-group-heading>span:not(.roster-design-arrow){color:var(--group-color)!important;-webkit-text-fill-color:var(--group-color)!important}
/* Başlıktaki aç/kapa oku başlık renginde. */
/* Mobil, klavye açıkken: mesaj satırı klavyenin hemen üstüne oturur (alttaki boşluk ve güvenli alan payı kalkar);
   Tab butonu ve satırı aynı miktarda aşağı iner (satır yüksekliği 51 → 40 px). */
/* Klavye kapalıyken de: mesaj satırı altına (footer / ekran altı) 2 px payla oturur (PC hariç). */

/* Yeni yönetim grupları (Root Admin, Genel Sorumlu …) başlık renkleri */
/* Mobil (WhatsApp + Classic): Özel Mesajlar ve Arkadaşlar listesindeki nick kartları ve avatarlar biraz küçük. */
/* App Admin › WhatsApp › Nick listesi avatar boyutu */

/* MSN Mavi tema (eski Classic MSN renkleri; Modern Mavi'nin kopyası) — seçim kartı önizlemesi */
/* ===== MSN Mavi tema (mobil: WhatsApp + Classic) — eski MSN tonları: açık gök mavisi üst bar, koyu mavi yazı, beyaz sohbet alanı ===== */
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app>.titlebar,html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app :is(.channel-head,.mobile-nav){background:linear-gradient(180deg,var(--msn-head-a),var(--msn-head-b))!important;color:var(--msn-ink)!important;border-color:var(--msn-line)!important}
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app :is(.chat-panel,.composer,.layout){background:#fff!important}
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app .md-chip{background:var(--msn-chip)!important;border-color:var(--msn-line)!important;color:var(--msn-ink)!important}
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app .message-input-wrap{background:#fff!important;border:1px solid var(--msn-line)!important}
/* ===== Mobil (WhatsApp + Classic) alt kısım: Tab barı kaldırıldı. Tab butonu gönder düğmesinin üstünde, kanal penceresi / nick listesi
   mesaj satırının üzerinde oval biter; "yazıyor…" kanal penceresinin sol altında. Mesaj satırı yine alttan 2 px. ===== */
/* MSN Mavi (yalnız Classic qwebirc): üst bar oval kart, altında az boşluk; kanal ve nick listesi beyazdan bir tık koyu, tema mavisiyle uyumlu */
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-applet-choice="modern"][data-chat-background="msn"] body #app#app#app#app#app>.titlebar{margin:6px 6px 4px!important;border-radius:18px!important;border:1px solid #c4dcf5!important;box-shadow:0 2px 8px #0a48a41f!important;width:auto!important}
/* MSN Mavi (yalnız Classic qwebirc + kanal yazı tipi klasik): üst bar ve kanal kutusu aynı hizada oval kartlar;
   konu satırı kanal penceresinin başlığı gibi üstüne oturur; kanal penceresi ve nick listesi ayrı oval kartlar, alt bitişleri belli. */
/* MSN: konu satırı ile kanal penceresi arasında boşluk kalmasın; Tab butonu gönder butonunun hemen üstünde,
   nick listesi Tab'ın üstünde biter (arkasında nick görünmez). */
/* MSN: radyo oynatıcının arka planı üst bar ile aynı (beyaz değil). */
html.modern-demo.qw-bar:not(.pc-reference)[data-qw-irc][data-chat-background="msn"] body .typing-line.typing-overlay>span{background:#2b76d8!important}
/* qwebirc classic: üst kanallar kutusu üst bar tonunda (açık mavi), kanal butonları beyaz; seçili kanal kutunun renginde, mavi çerçeveli. */
.status-story footer{justify-content:center}.status-pending-section>summary{font-weight:600;cursor:pointer;padding:5px}

/* ===== Durum izleme: tepkiler, görenler, yorum satırı, basılı tutunca durdurma ===== */
/* pc-glass.css sonra yüklendiği ve !important kullandığı için seçiciler daha özgül ve !important. */
dialog.status-update-dialog.status-story .status-story-stage{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;position:relative}
dialog.status-update-dialog.status-story .status-story-stage :is(img,video){-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none}
dialog.status-update-dialog.status-story .status-story-stage>button{pointer-events:auto}
dialog.status-update-dialog.status-story.status-story-paused .status-story-bars{opacity:.55}

/* Tepki çubuğu: koyu zeminde yuvarlak, hafif kapsül */
dialog.status-update-dialog.status-story .status-reaction-options::-webkit-scrollbar{display:none}
dialog.status-update-dialog.status-story .status-reaction-options button:disabled{opacity:.6!important}
/* Listede (açık zemin) tepki sayıları: küçük kapsüller */

/* Görenler: sağ üstte küçük avatarlar + sayı */
dialog.status-update-dialog.status-story>header .status-viewers[hidden]{display:none}

/* Yorum satırı: durumu alıntılayıp yanıtlama */
dialog.status-update-dialog.status-story .status-comment-box[hidden]{display:none}
dialog.status-update-dialog.status-story .status-comment-row input::placeholder{color:rgba(255,255,255,.6)}

/* Durumlar ekranı: gizlilik düğmesi ve yorum bildirimleri */

/* Tepki verenler (görenlerin yanında), bildirim silme ve okunmamış sayısı */
/* Mobilde durum izleme penceresi bir tık küçük */

/* Durumum satırında bildirim zili */
.status-own-actions>.status-bell.has-unread svg{animation:status-bell-ring 1.6s ease-in-out 2;transform-origin:50% 10%}
@keyframes status-bell-ring{0%,60%,100%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(9deg)}40%{transform:rotate(-6deg)}50%{transform:rotate(3deg)}}
/* Bildirim penceresi */
dialog.status-notify-dialog>header b{font-size:16px}
/* Bildirim penceresi: genel buton stilini ez (okunaklı satırlar) */
dialog.status-update-dialog.status-notify-dialog .status-comment-item:hover{filter:brightness(.98)}
/* Durumum satırı: dar ekranda tepkiler ve zil alt satıra, sağa yaslı */

/* Durum izlerken üstteki gönderen avatarı: her ekranda (PC dahil) ortalı, sabit boyutlu yuvarlak */
html body dialog.status-update-dialog.status-story>header{display:flex!important;align-items:center!important;flex-wrap:nowrap!important}
html body dialog.status-update-dialog.status-story>header>img{display:block!important;flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;margin:0!important;padding:0!important;align-self:center!important;position:static!important;transform:none!important;box-sizing:border-box!important;border:2px solid rgba(255,255,255,.85)!important;border-radius:50%!important;background:#dff2e8!important;object-fit:cover!important;object-position:center!important;vertical-align:middle!important}
html body dialog.status-update-dialog.status-story>header>b{align-self:center!important;line-height:1.3!important;margin:0!important}
html body .status-avatar>img{position:static!important;margin:0!important;transform:none!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;border-radius:50%!important}

/* Profil kartı ve whois kartındaki durum önizlemeleri: ortalı, sabit boyutlu kareler; pencere kaymaz */
html body dialog .profile-status-preview>small{display:block!important;margin:0 0 8px!important;text-align:center!important;font:12px/1.3 Arial,sans-serif!important}
html body dialog .profile-status-preview .profile-status-strip::-webkit-scrollbar{display:none}
html body dialog .profile-status-preview .profile-status-strip>button{position:relative!important;flex:0 0 78px!important;width:78px!important;min-width:78px!important;max-width:78px!important;height:104px!important;min-height:0!important;max-height:104px!important;margin:0!important;padding:0!important;overflow:hidden!important;border-radius:12px!important;border:2px solid var(--md-00866c,#00866c)!important;background:#0f1a17!important;box-shadow:0 2px 6px rgba(0,0,0,.15)!important}
html body dialog.whois-card .whois-status h4 .whois-status-age{flex:0 1 auto!important;min-width:0!important;margin:0 6px 0 auto!important;color:var(--wc-muted,#6b7a82)!important;font:400 11px/1.2 Arial,sans-serif!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html body dialog.whois-card .whois-status h4 .whois-status-age+small{margin-left:0!important}
/* Whois kartında durum satırı eklenince kart iç kaydırmaya düşmesin: biraz daha uzayabilir */
/* Görülen güncellemeler: halka gri (WhatsApp gibi), görülmemişler yeşil kalır. */
/* Medyalar otomatik inmiyorsa durum karesinde yer tutucu (karenin boyutu sabit, kaydırma olmaz). */
/* Otomatik indirme kapalıyken durum videosunun ortasındaki ▶: YouTube tarzı yatay yuvarlatılmış dikdörtgen, tema renginde (SVG),
   ince beyaz çerçeve, cam etkisi. Mobil tarayıcının varsayılan düğme görünümü (mavi, basık) sıfırlanır. */
html body .status-tap-load>svg{display:block;width:30px;height:21px;overflow:visible;filter:drop-shadow(0 2px 5px rgba(0,0,0,.3))}
/* v131 · Durum bildirimleri: tepki kaydında emoji simgesi; bilgilendirmeye dokununca zil sallanır ve vurgulanır */
.status-own-actions>.status-bell.ringing svg{animation:status-bell-ring 1.1s ease-in-out 3;transform-origin:50% 10%}
@keyframes status-bell-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:url('/fonts/pc/ca2b9eabacfab99d.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:url('/fonts/pc/543c03fff71d1b39.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:url('/fonts/pc/ca47ccb548e4ed2b.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:url('/fonts/pc/eaf782735cb43684.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:url('/fonts/pc/b7afcd7367b91f6f.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Reference';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:url('/fonts/pc/ab74f0c2d7ec37e4.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Reference desktop skin. Every rule is gated away from both mobile layouts. */
/* Revised PC workspace: channels | members | conversation. */

/* PC refinements: preserve the established wallpaper and native controls. */

/* Yeni yönetim grupları (Root Admin, Genel Sorumlu …) başlık renkleri */
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:url('/fonts/pc/ca2b9eabacfab99d.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src:url('/fonts/pc/543c03fff71d1b39.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:url('/fonts/pc/ca47ccb548e4ed2b.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src:url('/fonts/pc/eaf782735cb43684.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:url('/fonts/pc/b7afcd7367b91f6f.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family: 'PC Glass Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src:url('/fonts/pc/ab74f0c2d7ec37e4.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
#pcYoutube,#pcClear{display:none}
/* PC avatar, wallpaper and dialog alignment. */
/* Desktop profile centering and header alignment. */

/* PC: glass-demo searches, member counts and theme-tinted conversation canvas. */

/* Reference HTML search wrappers: preserve native live search inputs. */

/* PC searches: the icon and input share the reference field without inner frames. */

/* PC original login layout, medium theme surfaces and matching wallpaper. */

/* Slightly denser PC channel and private conversations. */

/* Received reactions sit just outside the lower-right bubble edge. */

/* Put the timestamp on the nickname row, above the message text. */

/* Honour user text preferences instead of the desktop skin's fixed font. */


#pcCloseChannel,#pcVoiceRoom,#pcFriendAdd{display:none}
@media(min-width:761px) and (hover:hover),(min-width:761px) and (pointer:fine),(min-width:761px) and (hover:none) and (pointer:none),(min-width:1401px){
/* Kanaldan ayrıl (X) butonunun hemen solundaki "Sesli Odayı Aç" (yalnız yetkililere görünür). */
/* Özel sohbette X'in solundaki "Arkadaş ekle" (PC). */
}

#kickedChannelWarning{flex:0 0 auto;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--md-e5f3ed,#e5f3ed);color:var(--md-102933,#102933);border-top:1px solid var(--md-b4d6d3,#b4d6d3);font:13px/1.4 Arial,sans-serif;text-align:center}
#kickedChannelWarning>span{flex:1;min-width:0}

/* Channel-scoped operator controls: local selectors, no global observers. */
#channelOperatorTools{position:fixed;z-index:65;color:var(--md-006653,#195b83);font:13px/1.4 Arial,sans-serif}
#channelOperatorPanel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
#channelOperatorPanel label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--md-c8dfd4,#d7e4ef)}
#channelOperatorPanel input{accent-color:var(--md-006653,#195b83);width:17px;height:17px;flex:none}
#channelOperatorPanel small{opacity:.8;font-size:11px}
@keyframes operator-slide{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}

/* IRC rank characters in channel and private message avatars, all layouts. */
html body .profile-moderation button svg{width:16px!important;height:16px!important;flex:none}

/* Compact posted media; full image viewer and live calls remain separate. */

html body #app#app#app #approvalBell{display:inline-flex!important;position:relative!important;align-items:center;justify-content:center;flex:0 0 32px;width:32px!important;height:32px!important;min-width:32px!important;margin:0 5px!important;padding:5px!important;border:1px solid var(--line,#c8dbe9)!important;border-radius:10px;background:var(--panel,#f4faff)!important;color:var(--ink,#225477)!important;order:9;cursor:pointer}#approvalBell b{position:absolute;right:-5px;top:-5px;border-radius:9px;background:#e73959;color:white;font:10px Arial;padding:2px 4px}
.approval-list article{padding:9px;margin:5px 0;border:1px solid #d6e3eb;border-radius:9px;background:#f8fbff;color:#23465c}

html body #approvalBell{position:fixed!important;right:auto!important;bottom:auto!important;width:30px;height:30px;padding:4px;border:1px solid var(--line,#bed2e0);border-radius:9px;background:var(--panel,#f6fbff);color:var(--ink,#23516e);z-index:64;cursor:pointer}#approvalBell b{right:-6px;top:-6px}
#approvalPanel header,#approvalPanel footer{display:flex;align-items:center;justify-content:space-between;gap:8px}#approvalPanel audio{width:100%;height:32px}

/* Bot/VIP ranks use the original heading icon when no illustrated icon exists. */

/* Desktop header shortcuts; mobile header remains unchanged. */
/* Keep desktop radio inside its header group instead of the legacy centered overlay. */
/* Small desktop-only radio alignment adjustment. */.timed-announcement-list article{padding:12px;border:1px solid #cbdce9;border-radius:12px;background:#f5faff}
/* Profile/settings has its own desktop workspace, separate from the transcript. */

/* Dedicated theme-aware profile/settings close button. */
html body #app#app#app #mobileSectionClose{display:grid!important;place-items:center!important;flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px!important;margin-left:auto!important;padding:0!important;border:1px solid var(--pcg-33c9b499,#aacddd)!important;border-radius:10px!important;background:var(--pcg-f6fffeaa,#f3faff)!important;color:var(--pcg-005a44,#22628b)!important;font:22px/1 Arial,sans-serif!important;cursor:pointer;box-shadow:0 2px 5px #0001}
html body #app#app#app #mobileSectionClose:hover{filter:brightness(.95)}
html body #app#app#app #mobileSectionClose:focus-visible{outline:2px solid currentColor;outline-offset:2px}


/* Compact shared session prompt and conversation notices. */

/* Site defaults also color the mobile login and MSN connecting screens. */

/* Glossy MSN figures: original bright blue beside a vivid theme color. */
#connectingScreen{--orbit-accent:var(--md-00a765,#00a765)}
#msnOrbit #orbitBlue stop:nth-child(1){stop-color:#efffff}
#msnOrbit #orbitBlue stop:nth-child(2){stop-color:#70ddff}
#msnOrbit #orbitBlue stop:nth-child(3){stop-color:#149fe3}
#msnOrbit #orbitBlue stop:nth-child(4){stop-color:#075592}
#msnOrbit #orbitGreen stop:nth-child(1){stop-color:#f5fff3}
#msnOrbit #orbitGreen stop:nth-child(2){stop-color:color-mix(in srgb,var(--orbit-accent) 45%,white)}
#msnOrbit #orbitGreen stop:nth-child(3){stop-color:var(--orbit-accent)}
#msnOrbit #orbitGreen stop:nth-child(4){stop-color:color-mix(in srgb,var(--orbit-accent) 72%,black)}
#msnOrbit #orbitGold stop:nth-child(1){stop-color:#ffbd16}
#msnOrbit #orbitGold stop:nth-child(2){stop-color:#fff3a1}
#msnOrbit #orbitGold stop:nth-child(3){stop-color:#ffcf32}
#msnOrbit #orbitGold stop:nth-child(4){stop-color:#ffa914}
html body #connectingScreen#connectingScreen#connectingScreen .connecting-dots span{background:radial-gradient(circle at 30% 25%,#eaffff 0%,#45d8ff 38%,#087bd7 100%)!important;box-shadow:0 1px 5px #139fe65c}

/* Server branding keeps its original artwork in both mobile layouts. */
/* Saat + okundu işareti balonun sağ üst köşesinde mutlak konumlu: ilk satır (nick) onlara yer ayırır,
   böylece kısa mesajda, büyük yazı boyutunda ya da uzun nickte saat nickin üstüne binmez. */
/* PC: sol profil panelindeki "Çıkış yap" düğmesi kaldırıldı (çıkış, profil menüsünden yapılır). */
/* Nick ara: input temizle düğmesi için .nick-search-wrap içine alınınca genişliği 0 kalıyordu (tıklanamıyordu).
   Sarmalayıcı kalan alanı alır, input onun tamamını kaplar. */

/* v83 · PC nick listesi görünümü — admin › Tema Ayarları › PC. Yalnız ayar seçilince eşleşir; özel nick stilleri hariç. */
/* Kategori ikonu değiştirildiyse: hazır sprite arka planı kapanır, SVG görünür */
/* v84 · Kategori ikonu (admin › Tema Ayarları) başlıkta da kategorinin rengini alır */
/* Başlıkta seçilen kategori ikonu, hazır rozetler (Sunucu Sahibi vb.) gibi: kategori renginde degrade kare, beyaz ikon */
/* v84 · Kanaldaki yetkili mesaj avatarı: kategori ikonu seçildiyse hazır sprite yerine o ikon (rütbe renginde) */
/* v86 · Nick satırındaki kategori ikonu varsayılan grup renginde (kategori rengi yalnız başlığa) */
/* v86 · PC: kanalda mesaj yazanların avatar boyutu (admin › Tema Ayarları). Yalnız ayar seçilince, kanal mesajlarında. */
/* v88 · PC: mesaj balonunda avatara bakan uç (mobildeki gibi). PC'de kendi mesajları da solda; uç her zaman solda.
   Uç, balonun zeminini alır; ucun olduğu köşe düz. */
/* v88 · Yetkili başlığı yazısı ve altındaki nickler aynı renkte (kategori rengi seçilmediyse grubun rengi) */
/* Başlıktaki aç/kapa oku başlık renginde. */
/* WebKit: avatar boyutu ayarlıyken % boyutlu yetki ikonu 0'a çökmesin (ızgara hücresi sabit). */
/* PC: kanal mesajındaki nick rengi, mobildeki gibi nick listesindeki yetki rengini alır (bot, yetkili, ikonlu normal kullanıcı). */
/* PC: kendi mesajındaki avatar da diğerleriyle aynı boyutta (varsayılan 45 px; App Admin › avatar boyutu seçiliyse o geçerli). */
/* PC sol profil kartı: avatar yuvarlak; durum noktası dairenin sağ alt kenarına oturur */
/* App Admin › PC › Nick listesi avatar boyutu */
/* PC nick listesi: hazır görseli (sprite) olmayan bütün yetkili başlıklarında da ikon, kategori renginde degrade kare içinde beyaz (Kanal Sop / seçilmiş ikon gibi). */
/* Özel nick ikonu px boyutu verilmişse PC nick listesi satırı ikona göre uzar */
/* v131 · Operatör Menü içindeki "Onay Bildirimleri" (mobilde yetkilinin onay zili buraya taşındı) */

/* ===== Güncelleme 193 — PC giriş ekranı (iki sütun: solda logo / ad / slogan, sağda cam form) ve bağlanıyor ekranı ===== */
/* Renkler temanın --pc-entry-* değişkenlerinden gelir (WhatsApp yeşil, mavi, pembe, mor). Manzara katmanları maske olarak yüklenir, temaya göre boyanır. */
@media(min-width:761px) and (hover:hover),(min-width:761px) and (pointer:fine),(min-width:761px) and (hover:none) and (pointer:none),(min-width:1401px){
/* Manzara */
/* Üst şerit: yalnız site adı */
/* Site adı: şeffaf, ince çerçeveli hap (logo + ad); arka plan görünür. */
/* İki sütun */
/* Kalpli ayırıcı çizgi */
/* Cam form kutusu */
/* Dar pencere: tek sütun */

/* ---- Bağlanıyor ekranı ---- */
}
/* Sesli mesaj ve resim mesajları — WhatsApp gibi: "… gönderdi" yazısı yok, çerçeve yok.
   Solda avatar + nick (normal mesaj düzeni), altında medya. Tüm temalar (classic, modern, PC).
   PC'de bir tık büyük, mobilde ölçülü. */

/* Boş kalan metin satırı (eski "… gönderdi" balonu) görünmez. */
html body #app#app#app#app #messages .message.media-only .message-content-line{display:none!important}

/* Medya kapsayıcıları: çerçeve, zemin, gölge yok. */
html body #app#app#app#app #messages .message.media-only :is(.message-media,.moderated-media,.image-message){border:0!important;box-shadow:none!important;background:transparent!important;outline:0!important}
html body #app#app#app#app #messages .message.media-only .image-message{padding:0!important;margin:4px 0 0!important}

/* Sesli mesaj oynatıcı: tema renkli çerçeve yok; oynat butonu tema rengini korur. */
html body #app#app#app#app #messages .message.media-only .voice-player{width:210px!important;max-width:100%!important;min-height:38px!important;padding:2px 0!important;gap:8px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}

/* Resim önizlemesi: oranı korunur, çerçeve yok, köşeler yumuşak. */
html body #app#app#app#app #messages .message.media-only .chat-image{display:block!important;width:auto!important;height:auto!important;max-width:210px!important;max-height:210px!important;min-width:0!important;object-fit:contain!important;border:0!important;border-radius:8px!important;box-shadow:none!important;margin:0!important;padding:0!important;background:transparent!important}

/* PC / geniş ekran: bir tık büyük. */
/* Çok dar telefonlar: taşma olmasın. */

/* Sesli oda simgesi (konuşan kişi): kanal listesindeki rozetler. */

/* Kanal ve özel mesajlarda yazılan emojiler: PC'de bir tık büyük (mobil aynı kalır). */

/* Mobil (classic + modern), kanal ve özel: emojiler bir tık küçük ve altı kesilmeden tam görünür.
   Satır yüksekliği emojiye yer bırakır; kapsayıcılar emojiyi kırpmaz (iPhone/Android emoji fontları daha uzun). */

/* PC üst bar: gizli (hidden) butonlar gerçekten gizli kalır; boş kare görünmez.
   Özel sohbette mobil WhatsApp'a ait Arkadaş/Engelle/X araçları PC'de yok (PC'nin kendi × butonu var).
   Kanalda tek "Ekranı temizle" (silgi) kalır; mavi süpürge (pcClear) kaldırıldı. */

/* Modern mobil özel sohbet: üstteki avatar ve nick profil açar. */

/* Modern (WhatsApp) mobil, kanal üst barı — 3 noktanın solunda soldan sağa: zil · resim · temizle · sesli oda · X. */
#modernHeaderLeave{display:none}

/* Mesajlardaki emojiler: paneldeki EmojiOne görseliyle aynı (boyut yazı boyutuna göre). */

/* Whois kartı: operatör yetki rozeti uzun olabilir (ör. "IRC Operator & Network Administrator"); taşmaz, gerekirse … ile kısalır. */

/* Kendi mesajlarım (kanal + özel), PC ve modern (WhatsApp) mobil: avatar diğer mesajlar gibi solda. */
html.modern-demo[data-applet-choice="modern"] body #app#app#app #messages .message.self:not(.system-message){flex-direction:row!important;justify-content:flex-start!important}
html.modern-demo[data-applet-choice="modern"] body #app#app#app #messages .message.self .message-body::before{left:-8px!important;right:auto!important;border-right:0!important;border-left:10px solid transparent!important}

/* Kendi mesaj balonum: mavi, pembe, mor ve siyah temada tema renginin bir tık açığı (yeşil/WhatsApp temasında değişmez). */

/* Mobil: Bildirimler ve İletişim pencereleri kompakt; ekrana sığar, sayfayı kaydırmaz (içerik gerekirse kendi içinde kayar). */

/* Yetkili zil paneli: kanalda gönderilen resim / ses / YouTube ve durum güncellemeleri (küçük önizlemeler). */

/* Modern (WhatsApp) mobil: kanal ve özelde resim ve sesli mesaj bir tık daha küçük; oynat butonu küçük. */

/* Silme / onay notları ("… X operatörü tarafından silinmiştir / onaylanmıştır") ve silinen mesaj yazısı:
   kanaldaki sistem uyarısıyla aynı yazı tipi ("Ekranınız X operatörü tarafından silinmiştir."). */
html body #app#app#app#app #messages#messages :is(.media-deleted-status,.media-approved-status),
html body #app#app#app#app #messages#messages .message.is-deleted-message .message-text,
html body #app#app#app#app #messages#messages .message.is-deleted-message .message-text *{display:block;font-family:inherit!important;font-size:10.5px!important;font-style:normal!important;font-weight:400!important;line-height:1.35!important;color:var(--md-37443f,var(--cz-6480a3,#6480a3))!important;opacity:.72!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;width:max-content!important;max-width:min(320px,calc(100vw - 90px))!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;background:transparent!important;margin:3px 0 0!important}

/* Not, oynatıcıdan geniş olabilir: medya kapsayıcıları notu kırpmasın (tek satır kalsın). */
html body #app#app#app#app #messages#messages .message.has-47411533 :is(.message-media,.moderated-media,.image-message){overflow:visible!important;max-width:none!important}

/* PC üst bar: renk paleti ile profil arasındaki Bildirimler zili (yalnız PC). */

/* ===== Modern (WhatsApp) mobil — "Kanallar üstte" (admin › Mobil Görünüm). PC ve classic etkilenmez. ===== */
#mdChannelChips{display:none}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Kanal sohbetinde: üst bar + sekmeler + kanal şeridi görünür, eski kanal başlığı (geri oku, avatar) gizlenir. */
 /* Kanal sekmeleri */
}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Özel sohbet açıkken kanal şeridi gizli (geri okuyla özel listesine dönülür, şerit orada görünür). */
 /* Klavye açıkken sohbete yer kalsın: sekmeler ve konu satırı gizlenir. Kanal şeridi gizlenmez; açıksa 2 satıra kapanır (app.js). */
}

/* Kanallar üstte: kanal sekmeleri en fazla 2 satır; fazlası sağdaki ok ile açılır (kaydırma yok). */

/* Mobil girişte görünüm seçimi: WhatsApp yeşil, Classic qwebirc tema renginde, MSN classic mavi. */
html body dialog.appearance-choice.appearance-choice.appearance-choice button[data-value] :is(b,small){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body dialog.appearance-choice.appearance-choice.appearance-choice button[data-value] small{opacity:.88}
html body dialog.appearance-choice.appearance-choice.appearance-choice button.appearance-pick-wa{background:linear-gradient(135deg,#128c7e,#075e54)!important}
html body dialog.appearance-choice.appearance-choice.appearance-choice button.appearance-pick-qw{background:var(--pick-accent,#a82d6b)!important}
html body dialog.appearance-choice.appearance-choice.appearance-choice button.appearance-pick-msn{background:linear-gradient(135deg,#3b8de6,#1a5fb4)!important}
html body dialog.appearance-choice.appearance-choice.appearance-choice button[data-value]:hover{filter:brightness(1.06)}
/* Ayarlar › Görünüm: 3 kart */
.appearance-style-cards.has-6724bd8e{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* Kanallar üstte: sekmeler satırı boşluksuz doldurur; okunmamış mesajlı kanal kırmızı (yazı + nokta), mesajsız kanal mavi;
   aktif kanalın arka planı tema renginin açık tonu. */

/* Özel mesajlarda "görüldü" (✓✓) işareti: her temada belirgin mavi. */


/* Admin › Tema Ayarları › Mobil Görünüm: mobil kanal listesi (sıra no · kanal · küçük ×). */

/* Modern mobil: kanal üst barındaki "Ekranı temizle" ikonu kaldırıldı (PC'de duruyor). */

/* Admin paneli: Ekle/Sil listeleri (Kanal Ayarları, Nick Ayarları vb.) — sıra no · ad · küçük ×; ekleme formu tek satır. */
/* Diğer Ekle/Kaldır satırları (shun, operatörler vb.) aynı çerçeve görünümünde. */

/* Admin: Tema seçimi alt seçenekleri, varsayılan mobil görünüm ve Bildirim İzinleri. */

/* ⋮ menüsü: NickServ açılır-kapanır alt menüsü (Nick Kaydet / Identify / Nick Değiştir). */
#modernNavigationMenu .md-nav-sub-head::after{content:"⌄";margin-left:auto;padding-left:10px;font:400 16px/1 Arial,Helvetica,sans-serif;opacity:.7;transition:transform .15s}
#modernNavigationMenu .md-nav-sub-head[aria-expanded="true"]::after{transform:rotate(180deg)}

/* Profil ve Ayarlar › Hesap İşlemleri: NickServ grubu (tüm temalar). */
.nickserv-group>summary::-webkit-details-marker{display:none}
.nickserv-group>summary::after{content:"⌄";margin-left:auto;font:400 18px/1 Arial,Helvetica,sans-serif;opacity:.65;transition:transform .15s}
.nickserv-group[open]>summary::after{transform:rotate(180deg)}

/* Aktif sesli odası olan kanalın yanındaki sesli oda simgesi yavaşça yanıp söner; kullanıcı bir kez basınca durur (.room-seen).
   Yalnız opaklık değişir (telefonu yormaz); "animasyonları azalt" açık olsa da çalışır. */
@keyframes voiceRoomBlink{0%,100%{opacity:1}50%{opacity:.4}}
/* Yalnız kanalın SAĞINDAKİ simge yanıp söner; MSN logosunun / # işaretinin üzerindeki simge sabit kalır. */
/* Yanıp sönme kaldırıldı: kanal listesindeki oda simgesinde yalnız yayıncı varken ses dalgası hareketli (forms.css roomWavePulse). */

/* Üstteki sesli oda simgesi: aktif oda sayısı rozeti. */

/* Aktif Sesli Odalar penceresi: PC'de biraz büyük, mobilde kompakt. */
html body dialog#socialDialog#socialDialog.voice-room-list-dialog>header h2{margin:0!important;font:700 16px/1.2 inherit!important;color:#fff!important}
html body dialog#socialDialog.voice-room-list-dialog .vrl-icon svg{width:22px!important;height:22px!important;display:block!important}
html body dialog#socialDialog.voice-room-list-dialog .vrl-name small{display:flex!important;align-items:center!important;gap:5px!important;font-size:12px!important;color:#5f6f78!important}
html body dialog#socialDialog.voice-room-list-dialog .vrl-name small i{width:7px!important;height:7px!important;border-radius:50%!important;background:#e53935!important;display:inline-block!important}
html body dialog#socialDialog.voice-room-list-dialog .vrl-join:disabled{opacity:.6!important}
html body dialog#socialDialog.voice-room-list-dialog .vrl-empty small{color:#86949b!important}

/* Kanallar üstte: kanal sekmeleri aynı boyutta ve küçük; aç/kapa (sunucudaki başlık simgesi) ve + en sağda sabit, alt alta. */
/* Classic (MSN) mobil profil: NickServ grubu için hesap bölümü yüksekliği serbest. */

/* Admin/operatör girişi yapılmışsa PC'de "Çevrimiçi"nin solunda Admin butonu; diğer yerlerde düzen değişmez. */
html body dialog#socialDialog#socialDialog.voice-room-list-dialog>header h2{text-shadow:0 1px 1px rgba(0,0,0,.2)}
/* Aktif Sesli Odalar: ortalı sabit konum (tema kuralları kaydırmasın), kapat düğmesi tam ortalı, "Sesli Odayı Aç" alanı. */
html body dialog#socialDialog#socialDialog.voice-room-list-dialog>header h2{flex:1 1 auto!important;min-width:0!important;line-height:1.2!important;padding:0!important}
html body dialog#socialDialog#socialDialog.voice-room-list-dialog .vrl-open-btn:disabled{opacity:.6!important}
html body dialog#socialDialog#socialDialog.voice-room-list-dialog>header [data-social-close]::before,html body dialog#socialDialog#socialDialog.voice-room-list-dialog>header [data-social-close]::after{content:none!important;display:none!important}

/* Kanallar üstte (modern qwebirc): mesajsız kanallar tema renginde, yeni mesaj gelen (okunmamış) kanallar kırmızı; noktalar da aynı renkte. */
/* Sesli oda paneli: "Diğer sesli odalar" listesi. */
/* Yayıncı karosu: avatarın hemen altında küçük nick ("Admin" etiketi yazı tipinde); uzun nick … ile kırpılır. */
html body .voice-room-panel.vr-demo .vrx-publisher-tile .vrx-person-info .vrx-person-role{display:none!important}

/* Admin listeleri: × düğmesinin hemen solunda "Edit"; düzenlemede satır içi kutu. */

/* İletişim penceresi: ekran görüntüsü / resim ekleme. */
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm .contact-attach{display:flex;align-items:center;gap:8px;margin:2px 0 4px}
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm label.contact-attach-btn{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important;padding:7px 12px!important;margin:0!important;border:1px dashed color-mix(in srgb,var(--md-006653,#006653) 55%,#fff);border-radius:10px;background:color-mix(in srgb,var(--md-006653,#006653) 7%,#fff);color:var(--md-006653,#006653);font-size:12.5px!important;font-weight:600;cursor:pointer;width:auto!important}
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm label.contact-attach-btn[hidden]{display:none!important}
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm .contact-attach-btn span{font-size:15px}
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm .contact-attach-preview[hidden]{display:none}
html body dialog#socialDialog#socialDialog:is(:where(.has-1a42590e),:not(*)#h_) #contactForm .contact-attach-preview img{width:100%;height:100%;object-fit:cover;display:block}

/* Admin › İletişim mesajları: küçük resim önizlemesi, tıklanınca büyük görüntüleyici. */
dialog.admin-image-viewer::backdrop{background:rgba(0,0,0,.75)}

/* iPhone Debug Mode butonu (admin açtıysa, girişten sonra aktif ekranda). */

/* Durum Yönetimi › Paylaşılan durumlar: her durum için Onayla / ✓ Onaylı ve Sil. */
.status-update-dialog .status-admin-entry>button{margin:0!important}

/* Olaylar penceresi (moderasyon logları). */
/* Log pencereleri: araç satırı (arama, tür, loglamayı başlat), IP etiketi, medya gönderim satırları. */
/* Olaylar satırı: solda "Nick → işlem/tür → hedef", ortada küçük tarih-saat, en sağda küçük IP. */

/* App Ban: profil ve whois kartında IP + App Ban düğmesi. */
/* Ban penceresi sekmeleri ve Applet Ban listesi (yatay kaydırma yok). */
/* Özel Nickler: stil satır içi gelir; burada yalnız taşmayı engelleriz (yatay kaydırma olmasın). */
/* Sunucu cezası uyarısı (KILL / G-line / Z-line): tüm temalarda ortada, kaydırmasız. */
@keyframes server-ban-count{from{transform:scaleX(1)}to{transform:scaleX(0)}}
/* Ban değil, IRC bağlantısı kesildi (kill / flood / nick değişimi): koyu başlık, turuncu çubuk; sunucunun gerçek mesajı gri kutuda. */
/* Özel nick: askeri rütbe yıldızları (büyükten küçüğe), ikon avatarı, Özel Üye rozeti. Taşma yok. */
/* Admin › Özel Nickler: ikon seçici */
.admin-nickstyles .admin-nickicon input:focus-visible+span{outline:2px solid #1684df;outline-offset:1px}
.message.nick-icon-message .message-avatar img.nick-icon-img{padding:1px;box-sizing:border-box}
/* Özel nick önizlemesi: form kaydırılırken üstte sabit kalır, düzenleme canlı görülür. */
/* Nick listesi: yıldızlar üst satırda, altta nick (dar temalarda nick ezilmesin, yatay kaydırma olmasın). */
/* Profil kartı ve özel başlık: tam rozet (yıldız + yazı) */
/* Özel nicklerde kanal işareti (% @ &) gizli: nick işaretin yerinden başlar, daha uzun görünür. */
/* Zil, radyo ile profil arasında yer yoksa (dar pencere) logonun üstüne kaymasın: gizlenir */

/* System Logs başlığı (mobil): "font:600 12px/1 inherit" geçersiz bir yazımdı (inherit kısa yazımda kullanılamaz),
   tarayıcı kuralı tümden yok sayıyordu. Butonlar büyük yazıyla taşıyor, "‹ Geri" ve "Logları temizle" iki satıra kayıyordu. */
/* v85 · Aktif Sesli Odalar penceresi: kapat (×) her görünümde beyaz, tema renkli başlığın üstünde görünür
   (PC'de genel kapat kuralı yazıyı 0 boyuta indirip ::after'ı kapatıyordu). */
html body dialog#socialDialog#socialDialog#socialDialog.voice-room-list-dialog>header [data-social-close]::after{content:'×'!important;display:block!important;font:400 24px/1 Arial,Helvetica,sans-serif!important;color:#fff!important;-webkit-text-fill-color:#fff!important;transform:translateY(-1px)}
/* Admin › Özel Nickler: görünüm seçimi (PC / WhatsApp mobil / Classic) */
/* v132 · Admin › iPhone Giriş Raporu penceresi */
.admin-perf-dialog .perf-card.is-stuck .perf-load{color:#c5221f}
/* v136 · Admin › Proxy/VPN */
/* v144 · "Kendime not" sohbeti: arama ve titreşim kendine gönderilemediği için düğmeleri gizlenir */
html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app #audioCallButton,html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app #videoCallButton,html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app #nudgeButton,html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app #modernCallActions,html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app [data-reference-call],html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app [data-call-shortcut],html[data-self-chat="true"][data-self-chat="true"][data-self-chat="true"] body #app#app#app#app#app#app [data-md-call]{display:none!important}
/* Giriş, Nick kaydet, Identify (Kayıtlı nick) ve Oper girişi pencereleri: sade, temaya uyumlu, yumuşak butonlar.
   Vurgu rengi temanın koyu ana rengidir (--md-00866c: yeşil / mavi / pembe / mor / siyah temalarda değişir);
   Classic takım temalarında takım rengi kullanılır. Parlak (neon) tonlar kullanılmaz. Bu dosya en son yüklenir. */
:root{--form-accent:var(--md-00866c,#00866c);--form-text:#1f2d33;--form-muted:#62717a;--form-line:#d6dee3;--form-soft:#f4f7f8}
html[data-classic-team]:not([data-classic-team="original"]){--form-accent:var(--cz-1971d9,#1971d9)}
html[data-applet-choice="classic"]:not([data-classic-team]),html[data-applet-choice="classic"][data-classic-team="original"]{--form-accent:#2a6db0}

/* Pencere kutusu */
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account::backdrop,html body dialog.nick-auth-dialog.nick-auth-dialog::backdrop{background:rgba(15,25,30,.42)!important;backdrop-filter:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header :is(h2,h3,b,strong,span){margin:0!important;color:var(--form-text)!important;font:700 17px/1.3 Arial,Helvetica,sans-serif!important;background:none!important}
html body dialog.nick-auth-dialog.nick-auth-dialog h3{margin:0 0 6px!important;color:var(--form-text)!important;font:700 17px/1.3 Arial,Helvetica,sans-serif!important}

/* Kapat (×): her ekranda görünür, yumuşak gri yuvarlak (PC'de pc-glass beyaz × koyduğu için o da ayarlanır) */
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header button{display:grid!important;place-items:center!important;flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;margin:0 -4px 0 0!important;padding:0!important;border:1px solid var(--form-line)!important;border-radius:50%!important;background:var(--form-soft)!important;background-image:none!important;color:var(--form-muted)!important;-webkit-text-fill-color:currentColor!important;opacity:1!important;visibility:visible!important;box-shadow:none!important;outline:none!important;font:400 17px/1 Arial,sans-serif!important;cursor:pointer!important;font-size:0!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header button>*{display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header button::before{content:none!important;display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header button::after{content:'✕'!important;display:block!important;position:static!important;color:inherit!important;-webkit-text-fill-color:currentColor!important;font:400 15px/1 Arial,sans-serif!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account>header button:hover{background:#e9eef0!important;color:var(--form-text)!important}

/* Metinler ve alanlar */
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) p,html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) small,html body dialog.nick-auth-dialog.nick-auth-dialog p{margin:0!important;color:var(--form-muted)!important;font-size:13px!important;line-height:1.5!important}
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm)>p:first-child{color:var(--form-text)!important;font-weight:600!important;font-size:14px!important}
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) small{display:block!important;padding:9px 11px!important;border-radius:10px!important;background:var(--form-soft)!important;font-size:12px!important}
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) label,html body dialog.nick-auth-dialog.nick-auth-dialog label{display:flex!important;flex-direction:column!important;gap:6px!important;margin:0!important;color:var(--form-text)!important;font:600 13px/1.3 Arial,Helvetica,sans-serif!important}
html body :is(:is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm),dialog.nick-auth-dialog.nick-auth-dialog) input{width:100%!important;height:44px!important;min-height:44px!important;box-sizing:border-box!important;margin:0!important;padding:0 13px!important;border:1px solid var(--form-line)!important;border-radius:11px!important;background:#fff!important;color:var(--form-text)!important;box-shadow:none!important;font:16px Arial,Helvetica,sans-serif!important;transition:border-color .15s,box-shadow .15s!important}

/* Butonlar: ana buton dolu (temanın koyu rengi), ikincil buton çerçeveli; yumuşak köşe, ince gölge */
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) button[type=submit]:hover,html body dialog.nick-auth-dialog.nick-auth-dialog button[type=submit]:hover{filter:brightness(.94)!important}
html body :is(#ircAccountForm#ircAccountForm,#operDropForm#operDropForm) button[type=submit]:active,html body dialog.nick-auth-dialog.nick-auth-dialog button[type=submit]:active{transform:translateY(1px)!important}

/* Giriş ekranı: buton ve alanlar */
html body #loginScreen#loginScreen #loginButton#loginButton{border:1px solid transparent!important;border-radius:12px!important;background:var(--form-accent)!important;background-image:none!important;color:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,.14)!important;text-shadow:none!important;font-weight:600!important;letter-spacing:.1px!important;transition:filter .15s,transform .1s!important}
html body #loginScreen#loginScreen #loginButton#loginButton:hover{filter:brightness(.94)!important}
html body #loginScreen#loginScreen #loginButton#loginButton:active{transform:translateY(1px)!important}
html body #loginScreen#loginScreen .login-card input:not([type=checkbox]):not([type=radio]):focus{outline:none!important;border-color:var(--form-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--form-accent) 16%,transparent)!important}

/* ===== Applet yönetim paneli ===== */
/* Duyuru Yap: ekler */

/* PC: daha geniş panel; kapalı menüler iki sütun, açılan menü tam genişlik */
/* Panelin ana butonları: temanın koyu rengi, sade (neon yok) */

/* PC: Durumlar ve Arkadaşlar bölümünde kapat (×) yok */
/* PC: "Özel mesajlarınız boş" penceresi (sağdaki sohbet alanında) */
.private-empty-card button:hover{filter:brightness(.94)}
@keyframes private-empty-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* "/" komut önerileri */
@keyframes slash-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* Onay penceresi (Çıkış, Yeniden bağlan, arkadaş ekle/sil): sade, temaya uyumlu */
html body dialog.friend-confirm-dialog.friend-confirm-dialog::backdrop{background:rgba(15,25,30,.45)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0!important;padding:16px 14px 6px 20px!important;background:none!important;border:0!important;color:var(--form-text)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog>header b{font:700 17px/1.3 Arial,Helvetica,sans-serif!important;color:var(--form-text)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog>p{margin:0!important;padding:4px 20px 16px!important;color:var(--form-muted)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog>footer{display:flex!important;gap:10px!important;padding:12px 16px 16px!important;margin:0!important;border-top:1px solid #edf1f3!important;background:#fafbfb!important}

/* Nick değiştir penceresi: Nick kaydet ile aynı sade görünüm; buton temanın koyu rengi (neon yeşil değil) */
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick::backdrop{background:rgba(15,25,30,.42)!important;backdrop-filter:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header h2{margin:0!important;padding:0!important;color:var(--form-text)!important;font:700 17px/1.3 Arial,Helvetica,sans-serif!important;background:none!important;text-shadow:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header button{display:grid!important;place-items:center!important;flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;margin:0 -4px 0 0!important;padding:0!important;border:1px solid var(--form-line)!important;border-radius:50%!important;background:var(--form-soft)!important;background-image:none!important;color:var(--form-muted)!important;-webkit-text-fill-color:currentColor!important;opacity:1!important;box-shadow:none!important;outline:none!important;font-size:0!important;cursor:pointer!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header button>*{display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header button::before{content:none!important;display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header button::after{content:'✕'!important;display:block!important;position:static!important;color:inherit!important;-webkit-text-fill-color:currentColor!important;font:400 15px/1 Arial,sans-serif!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-nick>header button:hover{background:#e9eef0!important;color:var(--form-text)!important}
html body dialog#socialDialog#socialDialog .social-dialog-content>.own-nick-form input:focus{outline:none!important;border-color:var(--form-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--form-accent) 16%,transparent)!important}
html body dialog#socialDialog#socialDialog .social-dialog-content>.own-nick-form button:hover{filter:brightness(.94)!important}
html body dialog#socialDialog#socialDialog .social-dialog-content>.own-nick-form button:disabled{opacity:.55!important}
html body dialog#socialDialog#socialDialog .social-dialog-content>.own-nick-form small:empty{display:none!important}

/* Yazı ayarları: seçim kutularındaki yazı kesilmesin (PC'de 30px kutuya 10px iç boşluk veriliyordu) */
html body dialog#socialDialog#socialDialog .text-preferences select option{color:#1f2d33!important;background:#fff!important}
html body dialog#socialDialog#socialDialog .text-preferences label{color:var(--form-text)!important}
html body dialog#socialDialog#socialDialog #ircAccountForm#ircAccountForm{background:none!important;background-color:transparent!important;border:0!important;box-shadow:none!important}

/* Profil ve Ayarlar sayfasında (mobil WhatsApp / qwebirc) açık duran Bildirimler bölümü: kart içinde, kendi kaydırması yok */
html body .md-notify-inline .sound-option input[type="checkbox"][role="switch"]:checked{background:var(--md-00866c,#00866c)!important}
html body .md-notify-inline .sound-option input[type="checkbox"][role="switch"]::before{content:none!important}
html body .md-notify-inline .sound-option input[type="checkbox"][role="switch"]::after{content:''!important;position:absolute!important;left:3px!important;top:3px!important;width:17px!important;height:17px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 3px #0002!important;transform:none!important;transition:transform .15s}
html body .md-notify-inline .sound-option input[type="checkbox"][role="switch"]:checked::after{transform:translateX(17px)!important}

/* Whois kartı alt çubuğu: solda görüntülü / sesli arama, engelle, arkadaş ekle simgeleri; sağda Özel mesaj ve Kapat. Kart kaymaz. */
html body dialog.whois-card .whois-foot .whois-tools button:disabled{opacity:.55}
/* Whois kartındaki Hakkında ve yetkili araçları (Shun, Op menüsü) */
html body dialog.whois-card .whois-about p{margin:0;color:var(--wc-text);overflow-wrap:anywhere}
html body dialog.whois-card .profile-op-category>summary{cursor:pointer;padding:9px 11px;font:700 12px Arial,sans-serif;color:var(--wc-title);list-style:none}
html body dialog.whois-card .profile-op-category>summary::-webkit-details-marker{display:none}
html body dialog.whois-card .whois-note p{margin:0;color:var(--wc-muted);font-size:12px}

/* Yetkili zili (mobil modern/qwebirc): dışarıdaki zil gizli; ⋮ menüsünde "Bildirimler" + kırmızı sayı. */

/* ===== Yalnız mobil WhatsApp (modern) + qwebirc görünümü ===== */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Nick listesi profil penceresi: Whois düğmesi kaldırıldı */
/* Kanalda Resim gönder: üst bardan kalktı, mesaj satırında ataçın yanında */
/* Özel mesaj zili: MSN ikili simgesi */
/* Özel Mesajlar sekmesinde canlı sesli oda simgesi */
/* Profil ve Ayarlar: küçük tema + renk seçimi */
}

/* ===== Mobil modern + qwebirc: son düzeltmeler ===== */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Açık sesli oda için sağ kenardaki yüzen simge kaldırıldı (üstteki sesli oda simgesi yeter) */
/* Kanal listesi satırlarında açık sesli oda simgesi yeniden gösterilir (PC'deki gibi) */
/* Üst bar: özel mesaj simgesi ile sesli oda simgesi arası açıldı */
/* Özel Mesajlar, Arkadaşlar, Kanallar: zemin temanın çok açık tonunda */
}

/* ===== Classic qwebirc mobil: üst bar hap sekmeler, kanal kartı, sağda nick listesi paneli ===== */
#qwMembers{display:none}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Üst bar sekmeleri: simge + yazı yan yana hap düğmeler */
/* Kanal hapları: beyaz yuvarlak kart içinde */
/* Konu çubuğu: üstü yuvarlak beyaz şerit */

/* Sağdaki nick listesi paneli (kanaldayken; MSN simgesi gizler / açar) */
/* Panel, kanal alanıyla aynı ızgarada durur: mesaj satırının yüksekliğini JS ile ölçmeye gerek kalmaz (klavye açılıp
   kapanırken kanal paneline stil yazılıp her şey yeniden hesaplanmıyordu). Sol sütun: konu, mesajlar, uyarı; sağ sütun
   nick listesi; en alt satır mesaj satırı (tam genişlik). */
/* MSN simgesi: panel açıkken listenin hemen solunda */
}

/* ===== Classic qwebirc mobil: tek satır üst bar (logo · hap sekmeler · ⋮); radyo ⋮ menüsünde ===== */

/* qwebirc nick listesi: yetki kategorileri; kanal kartı tema tonunda; logo dar ekranda da görünür */

/* qwebirc kanal ekranı: ⋮ en sağ köşede; Kullanıcılar 'Daha fazlasını göster' */
/* qwebirc kanal ekranı: klavye açıkken yalnız kanal hapları gizlenir, üst bar (sekmeler) görünür kalır */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Admin › Aktif/Pasif "klavye açılınca üst kanallar gizlensin" işaretliyse: kanal şeridi klavye açıkken tamamen gizli.
   İşaretsizken bu kural hiç eşleşmez (mevcut davranış aynen). */
}

/* Mobil modern + qwebirc: profil kartındaki kapat (×) tema koyu renginde, her zaman görünür */

/* qwebirc nick listesi: yetki başlıkları nick listesindeki gibi (simge kutusu + ad + sayı) */
#qwMembers .qwm-nick .member-nick:not(.nick-styled){font:inherit!important;color:inherit!important}

/* qwebirc kanal ekranı: sekmeler simgeleriyle, iki yanda eşit boşluk; ⋮ yerine yatay 3 çizgili menü simgesi */
/* Mobil modern + qwebirc: kanal ve özelde yazmaya başlayınca resim gönder gizlenir, yerine ataç gelir */

/* ===== Classic qwebirc mobil (tüm ekranlar): üst bar = logo · Özel Mesajlar · radyo · Durumlar · ☰ ===== */
/* Mobil modern (WhatsApp + qwebirc): ⋮ yerine yatay 3 çizgili menü simgesi */
/* qwebirc: Özel Mesajlar sayfasında açılır / kapanır Arkadaşlar başlığı */
.qw-friends>summary::-webkit-details-marker{display:none}

/* / komut penceresi: satırda simge · kalın komut · gri açıklama */
.slash-commands button>i svg{width:18px;height:18px;display:block}

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Menü her zaman aynı yerde, sağ kenara dayanmadan */
/* NickServ aç/kapa: kanal başlığındaki ok simgesi */
/* qwebirc: ☰ her ekranda aynı yerde */
/* qwebirc radyo: modern varsayılandaki gibi kompakt, iki sekmenin ortasında */
/* qwebirc: sesli oda açıkken MSN (nick listesi) simgesinin altında, tema renginde */
/* (74→75) Mobilde kanal sağındaki sesli oda simgesi kaldırıldı; aktif oda üst barda gösterilir. */
}

/* Kapat (×) düğmeleri: işaret yuvarlağın tam ortasında (metin düğümü ızgarada ayrı satır oluşturup kaydırıyordu) */

/* qwebirc üst bar: soldan sağa Özel Mesajlar · Durumlar · radyo · ☰ (logo yok) */
/* qwebirc nick listesi: yetkili başlıkları aç/kapa oku; Kullanıcılar sayısı */
#qwMembers .qwm-cat[aria-expanded="false"] .qwm-cat-arrow{transform:rotate(-45deg)}
#qwMembers #userCard.inline-member-card.open{width:calc(100% - 2px)!important;margin:6px 1px!important}
/* qwebirc: üst bardaki sesli oda simgesi gizli (kanalın sağındaki oda simgesi yeterli) */
html body #app #qwMemberList #userCard#userCard#userCard #userCardClose{display:none!important}

@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* qwebirc: adı sığmayan kanal hapı iki sütun kaplar */
/* qwebirc üst bar: radyo biraz menüye, Durumlar biraz radyoya yakın */
/* Kanal konu (topic) şeridi tema renginde (WhatsApp + qwebirc, tüm renkler) */
}

/* Nick listesinde satır altında açılan (inline) profil kartında kapat düğmesi yok */
/* Modern nick listesinde profil kartı açık satırın sağındaki ok: "›" aşağı döner (köşe gibi görünüyordu) */
html.modern-demo[data-applet-choice="modern"] body #mobileDrawer#mobileDrawer .member-row.grouped-member.profile-expanded::after{content:"›"!important;display:block!important;position:static!important;width:auto!important;height:auto!important;margin-left:auto!important;border:0!important;background:none!important;transform:rotate(90deg)!important;font-size:20px!important;line-height:1!important;opacity:1!important}
/* Modern (WhatsApp) mobil üst bar: radyo biraz sola, ☰ sağ kenara yapışık değil */

/* Bilgilendirme / uyarı kartı (#socialToast): simge · başlık · metin · × · 5 sn geri sayan çizgi, tema renginde */
html body #socialToast#socialToast#socialToast.st-card.command-success{--st-accent:#2f7d5b}
html body #socialToast#socialToast#socialToast.st-card.command-error{--st-accent:#c5221f}
@keyframes st-count{from{transform:scaleX(1)}to{transform:scaleX(0)}}
/* PC: nick listesi profil kartında × sağ üst köşede; kartlardaki Whois satırı kaldırıldı */
/* App admin › Uygulama İzinleri: "Sadece Şu Nickler" nick ekleme satırı ve izinli nick listesi */
/* Arkadaş geçmişi: çevrimdışıyken gönderilen mesajın sonundaki simge */
/* Özel sohbet gün ayracı (Bugün / Dün / gün adı / tarih) */
/* Arkadaş listeleri: engelle butonu yok; arkadaş (✓) butonu tema rengiyle (PC + mobil, tüm görünümler) */
html body #app#app :is(.md-friend,.social-friend-row)>.friend-button.friend-button:active{transform:scale(.94)}
html body #app#app :is(.md-friend,.social-friend-row)>.friend-button.friend-button::after{content:none!important}
/* Arkadaş bildirimi: üst bilgilendirme kartında arkadaş simgesi */
/* Arkadaş sohbeti: "… ile arkadaşsınız" notu */
/* Uygulama İzinleri › Kanallarda / Özellerde grupları */
html body #adminMediaAccess .admin-scope-group legend{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;background:var(--form-accent,#00866c);color:#fff;font:700 12px/1.6 Arial,sans-serif}
html body #adminMediaAccess .admin-scope-group legend span{font-size:12px;opacity:.9}
html body #adminMediaAccess .admin-scope-group label.admin-visibility-row:last-child{border-bottom:0}
/* Uygulama İzinleri › Geçmiş Kayıtları */
html body .admin-history-settings>summary{display:flex;align-items:center;gap:8px;padding:11px 12px;font:700 14px Arial,sans-serif;color:#1f2d33;cursor:pointer;background:color-mix(in srgb,var(--form-accent,#00866c) 6%,#fff);list-style:none}
html body .admin-history-settings>summary::-webkit-details-marker{display:none}
html body .admin-history-settings>summary::after{content:'›';margin-left:auto;font-size:20px;line-height:1;transition:transform .15s}
html body .admin-history-settings[open]>summary::after{transform:rotate(90deg)}
html body #adminHistorySettings{display:grid;gap:8px;padding:10px 12px 12px}
html body #adminHistorySettings>p{margin:0;color:#6b7680;font-size:12px;line-height:1.5}
html body #adminHistorySettings label.admin-visibility-row small{display:block;color:#6b7680;font-size:11px}
/* Özel sohbet geçmişi yüklenirken mesaj satırının üstündeki küçük gösterge */
@keyframes history-spin{to{transform:rotate(360deg)}}
/* PC: Özel Mesajlar / Arkadaşlar sekmesinde seçili sohbet yoksa sağdaki boş ekran */
/* Özel mesaj silme: Benden sil / Herkesten sil (WhatsApp gibi) */
/* App Kullanıcısı rozeti: yeşil = App kullanıcısı, kırmızı = değil (whois kartı + kullanıcı kartı) */
html body dialog .whois-head .app-user-badge i{width:14px;height:14px;font-size:9px}
/* Durum kartı: avatarın yanında nick + çevrimiçi / çevrimdışı; tepkilerin üstünde ortada Özel Mesaj */
dialog.status-story header .status-story-presence[data-state]:not([data-state=""])::before{content:'';width:8px;height:8px;border-radius:50%;background:#9aa3ab;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
dialog.status-story header .status-story-presence[data-state="online"]:not([data-state=""])::before{background:#2fd06b}
dialog.status-story header .status-story-presence[data-state="busy"]:not([data-state=""])::before{background:#e5484d}
/* Artık mevcut olmayan resim: bozuk resim simgesi yerine sade yazı */
/* Özelde arama kaydı (WhatsApp gibi): "📞 Sesli arama · 2 dk 15 sn" / "Cevapsız sesli arama" */
#messages .message.is-call.is-missed .message-text{background:#fdecea;color:#b3261e}
/* Modern mobil kanal üst barı: "Arkadaşlar" ve "Özel Mesajlar" — simge üstte, yazı altta (alt menüdeki sekmeler gibi) */
#modernFriendsTab{display:none}
html.modern-demo[data-applet-choice="modern"] body #app#app#app #modernHeaderMedia>.md-head-tab .md-head-ico{position:relative;display:inline-flex;width:24px;height:24px}
html.modern-demo[data-applet-choice="modern"] body #app#app#app #modernHeaderMedia>.md-head-tab small{display:block;font:700 10.5px/1.15 Arial,sans-serif!important;color:#fff!important;white-space:nowrap;letter-spacing:.1px}
/* ===== WhatsApp tarzı arama ekranı (sesli + görüntülü, gelen / giden) =====
   Mobil: tam ekran. PC: ortada telefon boyutunda pencere (tam ekran değil). */
html body .call-panel.wa-call.wa-call.wa-call[hidden]{display:none!important}
/* Üst bar: geri (gizle) · arama türü */
html body .call-panel.wa-call .call-topbar .call-back:hover{background:rgba(255,255,255,.12)}
/* Ad, durum, süre */
/* Ortada büyük yuvarlak avatar */
html body .call-panel.wa-call.call-awaiting .call-avatar{animation:wa-call-pulse 1.6s ease-in-out infinite!important}
@keyframes wa-call-pulse{0%,100%{box-shadow:0 0 0 6px rgba(255,255,255,.12),0 12px 40px rgba(0,0,0,.3)}50%{box-shadow:0 0 0 16px rgba(255,255,255,.06),0 12px 40px rgba(0,0,0,.3)}}
/* Görüntüler: görüntülü aramada karşı taraf tam ekran, kendi görüntün sağ altta küçük (dokununca yer değişir) */
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-videos{display:block!important;position:absolute!important;inset:0!important;z-index:1!important;max-height:none!important;height:auto!important;min-height:0!important;margin:0!important;border-radius:0!important;background:#0b0f12!important;overflow:hidden!important}
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-videos .call-remote{inset:0!important;width:100%!important;height:100%!important;border-radius:0!important;z-index:1}
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-videos .call-local{right:14px!important;left:auto!important;top:auto!important;bottom:170px!important;width:112px!important;height:160px!important;border-radius:14px!important;z-index:3;touch-action:none;box-shadow:0 6px 20px rgba(0,0,0,.45);outline:2px solid rgba(255,255,255,.85);cursor:pointer;transform:scaleX(-1)}
html body .call-panel.wa-call.video-call.call-swap:not(.call-awaiting) .call-videos .call-local{inset:0!important;width:100%!important;height:100%!important;border-radius:0!important;outline:0;z-index:1;cursor:default}
html body .call-panel.wa-call.video-call.call-swap:not(.call-awaiting) .call-videos .call-remote{inset:auto 14px 170px auto!important;touch-action:none;width:112px!important;height:160px!important;border-radius:14px!important;z-index:3;box-shadow:0 6px 20px rgba(0,0,0,.45);outline:2px solid rgba(255,255,255,.85);cursor:pointer}
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-hero{visibility:hidden}
html body .call-panel.wa-call.video-call:not(.call-awaiting)>header,html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-topbar{text-shadow:0 1px 4px rgba(0,0,0,.6)}
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-title{font-size:22px}
/* Düğmeler: yuvarlak, altında küçük yazı; kırmızı kapat ortada altta */
html body .call-panel.wa-call.video-call:not(.call-awaiting) .call-controls{margin-top:auto!important;background:linear-gradient(transparent,rgba(0,0,0,.55))!important;padding-top:40px!important}
html body .call-panel.wa-call .call-controls button:active{transform:scale(.94)}
html body .call-panel.wa-call .call-controls button svg{width:26px!important;height:26px!important;display:block}
/* Gelen arama: yeşil kabul + kırmızı reddet yan yana */
html body .call-panel.wa-call.call-incoming .call-controls [data-call-end]{order:2;margin:0 0 18px!important}
html body .call-panel.wa-call.call-incoming .call-controls [data-call-end] svg{transform:rotate(135deg)}
@keyframes wa-accept-shake{0%,70%,100%{transform:rotate(135deg)}75%{transform:rotate(123deg)}85%{transform:rotate(147deg)}}
/* Gizlenmiş arama: dönmek için yeşil telefon düğmesi */

/* Arama düğmeleri tek sırada: (kamera) · mikrofon · kırmızı kapat · gizle */
html body .call-panel.wa-call.call-incoming .call-controls [data-call-hide]{display:none!important}
/* Küçük kamera penceresi sürüklenince bıraktığın yerde kalır */
html body .call-panel.wa-call.video-call.pip-moved:not(.call-awaiting):not(.call-swap) .call-videos .call-local,html body .call-panel.wa-call.video-call.pip-moved.call-swap:not(.call-awaiting) .call-videos .call-remote{left:var(--pip-left)!important;top:var(--pip-top)!important;right:auto!important;bottom:auto!important}
/* Karşı taraf konuşurken avatarın çevresi kırmızı */
/* Gizlenmiş görüşme: sağ kenarda yeşil telefon sekmesi */
@keyframes wa-restore-pulse{0%,100%{box-shadow:-4px 6px 18px rgba(0,0,0,.25),0 0 0 0 rgba(37,196,100,.5)}50%{box-shadow:-4px 6px 18px rgba(0,0,0,.25),0 0 0 9px rgba(37,196,100,0)}}
/* Nick kullanımda → askıdaki nicki geri alma (şifre paneli) */
/* ===== qwebirc mobil · Özel Mesajlar sayfası (Arkadaşlar + Özel Mesajlar açılır kartları) =====
   Tema rengine uyumlu açık ton kartlar, beyaz kişi listesi, ince ayraçlar. */
html.qw-bar body .qw-friends.qw-friends[open]>summary>i{transform:rotate(-135deg) translate(-2px,-2px)}
/* Kişi satırları */
html.qw-bar body .qw-friends .md-private-list>.md-channel.md-channel:last-of-type{border-bottom:0!important}
html.qw-bar body .qw-friends .md-private-list>.md-channel>span>b{font:700 16px/1.2 Arial,Helvetica,sans-serif!important;color:#1d2328!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.qw-bar body .qw-friends .md-private-list>.md-channel>span>small{font:400 13.5px/1.3 Arial,Helvetica,sans-serif!important;color:#6b747b!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.qw-bar body .qw-friends .md-private-list>.md-channel>em>small{font:400 12px/1 Arial,Helvetica,sans-serif!important;color:#8a9298!important}
html.qw-bar body .qw-friends .md-private-list>.md-channel>em>b{min-width:22px;height:22px;padding:0 6px!important;border-radius:999px!important;background:color-mix(in srgb,var(--md-006653,#006653) 82%,#000)!important;color:#fff!important;font:700 11.5px/22px Arial,Helvetica,sans-serif!important;text-align:center;box-shadow:none!important}
/* ===== Mobil emoji paneli (modern WhatsApp + qwebirc): WhatsApp gibi mesaj satırının ALTINDA, klavye yerine =====
   iPhone: alt güvenli alan (home çubuğu) kadar boşluk; panel sabit yükseklikte, ızgara kendi içinde kayar. */
/* Üst satır: arama kutusu + sil (⌫) */
html body #app#app #emojiPicker#emojiPicker.emoji-dock #emojiSearch{flex:1 1 auto!important;min-width:0!important;width:auto!important;max-width:none!important;height:34px!important;margin:0!important;padding:0 12px 0 34px!important;border:0!important;border-radius:999px!important;background:#f0f2f4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23707a82' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E") no-repeat 11px center/16px!important;font-size:16px!important;color:#1f2d33!important;box-shadow:none!important;outline:0!important}
html body #app#app #emojiPicker#emojiPicker.emoji-dock .emoji-backspace svg{width:24px;height:24px}
/* Başlık + ızgara */
html body #app#app #emojiPicker#emojiPicker.emoji-dock #emojiCategoryTitle{font:inherit!important;color:inherit!important}
/* Alt kategori çubuğu */
html body #app#app #emojiPicker#emojiPicker.emoji-dock .emoji-categories>button.active{opacity:1!important;filter:none;background:color-mix(in srgb,var(--md-006653,#006653) 12%,#fff)!important}
/* Mesaj satırındaki emoji düğmesi panel açıkken klavye simgesi olur */
html.emoji-dock-open body #app#app#app #emojiButton#emojiButton.active .emoji-toggle-kbd svg{width:24px;height:24px}
/* Emoji paneli (mobil): arama kutusu yok; başlık satırının sağında kapatma X */
html body #app#app #emojiPicker#emojiPicker.emoji-dock .emoji-dock-close svg{width:18px;height:18px}
/* Nick arama kutuları: sağda temizle (X); tarayıcının kendi X'i gizli */
/* ===== Mobil kamera (resim gönder): WhatsApp tarzı tam ekran ===== */
dialog.wa-camera.mirror video{transform:scaleX(-1)}
dialog.wa-camera.shot::after{content:'';position:absolute;inset:0;background:#fff;opacity:.75;pointer-events:none}

dialog.wa-camera button{outline:none}
/* ===== Resim gönder önizlemesi: WhatsApp gibi büyük ekran (mobilde tam ekran, PC'de ortada büyük pencere) ===== */
html body dialog.modern-image-confirm.wa-image-preview::backdrop{background:rgba(0,0,0,.6)!important}
html body dialog.wa-image-preview .ip-top .ip-close svg{width:22px;height:22px}
html body dialog.wa-image-preview .ip-stage img{display:block!important;max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;border-radius:0!important;margin:0!important}
html body dialog.wa-image-preview .ip-send svg{width:22px;height:22px;margin-left:3px}
html body dialog.wa-image-preview .ip-send:disabled{opacity:.6}
html body dialog.wa-image-preview.sending .ip-send svg{animation:history-spin 1s linear infinite!important}
/* ===== Sohbette resim: kare, tema renginde ince çerçeveli kart, açıklama altta ===== */
html body #app#app#app#app#app #messages#messages .image-message{display:inline-flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:0!important;width:230px!important;max-width:100%!important;margin:4px 0 0!important;padding:4px!important;box-sizing:border-box!important;border:0!important;border-radius:14px!important;background:color-mix(in srgb,var(--md-00866c,#00866c) 16%,#fff)!important;box-shadow:none!important}
html body #app#app#app#app#app #messages#messages .image-message .chat-image{display:block!important;width:100%!important;height:auto!important;aspect-ratio:1/1!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:cover!important;border-radius:10px!important;background:#e9edef;cursor:zoom-in}
html body #app#app#app#app#app #messages#messages .image-message>[data-image-read]{display:flex!important;align-items:center;justify-content:center;width:100%!important;aspect-ratio:1/1;margin:0!important;padding:0!important;border:0!important;border-radius:10px!important;background:#e9edef!important;color:#54656f!important;font:600 13px Arial,sans-serif!important}
html body #app#app#app#app#app #messages#messages .image-message>small{padding:4px 6px 0}
/* ===== Sesli mesaj oynatıcı (WhatsApp gibi): solda mikrofon rozetli avatar, oynat, nokta çizgili ilerleme, altta süre ===== */
html body #app#app#app#app#app #messages#messages .voice-player .voice-avatar{grid-column:1;grid-row:1/3;position:relative;width:48px;height:48px}
html body #app#app#app#app#app #messages#messages .voice-player .voice-avatar .social-avatar{width:48px!important;height:48px!important;display:block}
html body #app#app#app#app#app #messages#messages .voice-player .voice-avatar img{width:100%!important;height:100%!important;border-radius:50%!important;object-fit:cover;border:0!important}
html body #app#app#app#app#app #messages#messages .voice-player .voice-mic svg{width:18px;height:18px;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 1px #fff)}
html body #app#app#app#app#app #messages#messages .voice-player .voice-wave i{display:none!important}
html body #app#app#app#app#app #messages#messages .voice-player .voice-wave::before{content:'';position:absolute;left:0;top:50%;width:var(--voice-progress,0%);height:3px;transform:translateY(-50%);border-radius:2px;background:var(--md-00866c,#00866c)}
html body #app#app#app#app#app #messages#messages .voice-player .voice-wave::after{content:'';position:absolute;top:50%;left:var(--voice-progress,0%);width:13px;height:13px;transform:translate(-50%,-50%);border-radius:50%;background:var(--md-00866c,#00866c);box-shadow:0 0 0 2px #fff}
html body #app#app#app#app#app #messages#messages .voice-player .voice-avatar .social-avatar{border-radius:50%!important;overflow:hidden!important}
html body #app#app#app#app#app #messages#messages .image-message{position:relative!important}
html body dialog.wa-image-preview button{outline:none}

/* Resim üzerinde sağ üstte şık ikonlar: Onayla (✓, yeşil) · Sil (çöp, kırmızı) */
html body #app#app#app#app#app #messages#messages .image-message>.image-tool svg{width:17px;height:17px}
html body #app#app#app#app#app #messages#messages .image-message>.image-tool:hover{filter:brightness(1.08);transform:scale(1.06)}
html body #app#app#app#app#app #messages#messages .image-message>.image-tool:active{transform:scale(.94)}


/* Sesli mesaj satırı daha alçak; resim kartı daha kısa (4:3) */
html body #app#app#app#app#app #messages#messages .voice-player .voice-mic svg{width:15px;height:15px}
html body #app#app#app#app#app #messages#messages .image-message .chat-image,html body #app#app#app#app#app #messages#messages .image-message>[data-image-read]{aspect-ratio:4/3!important}

/* Resim önizlemesi: açıklama kutusunda emoji; emoji paneli açıklama satırının altında */
html body dialog.wa-image-preview .ip-emoji svg{width:24px;height:24px}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-picker-search>span{display:none!important}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-backspace svg{width:24px;height:24px}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-grid .emoji-item:active{background:#eef1f3!important}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-categories>button{flex:1 1 0!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;width:auto!important;height:38px!important;margin:0!important;padding:0!important;border:0!important;border-radius:10px!important;background:transparent!important;opacity:.55;font-size:20px!important;filter:grayscale(.35)}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-categories>button.active{opacity:1!important;filter:none;background:color-mix(in srgb,var(--md-006653,#006653) 12%,#fff)!important}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-categories>button .emoji-img{width:22px!important;height:22px!important}
html body dialog.wa-image-preview #emojiPicker#emojiPicker.emoji-dock .emoji-dock-close svg{width:18px;height:18px}

/* Sesli mesaj kartı daha alçak (PC + mobil) */
html body #app#app#app#app#app #messages#messages .message.is-voice.media-only .message-content-line{display:none!important}

/* Mobil: play/duraklat radyo play gibi tema renginde; saat sağ altta; nick ile avatar arası dar */
/* Mobil: play butonu biraz küçük; dalga başındaki yeşil yuvarlakla aynı hizada ve arası açık */

/* Mesaj düzenleme: tepki penceresinde X'in solunda kalem; mesaj altında küçük "Düzenlendi" yazısı; düzenleme penceresi */
html body dialog.message-edit-dialog::backdrop{background:rgba(0,0,0,.35)}
html body dialog.message-edit-dialog form{display:flex;flex-direction:column;gap:10px;margin:0;padding:12px 14px 14px;min-width:0}
html body dialog.message-edit-dialog header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
html body dialog.message-edit-dialog header b{font:600 15px/1.3 Arial,sans-serif;color:var(--md-006653,#006653)}
html body dialog.message-edit-dialog .me-row input:focus{border-color:var(--md-00866c,#00866c);background:#fff}
html body dialog.message-edit-dialog .me-save svg{width:22px;height:22px}
html body dialog.message-edit-dialog .me-save:disabled{opacity:.6}

/* Yönetim listelerinde YouTube kapağı: dokununca oynatıcı açılır */
html body .youtube-facade img{display:block;width:100%;height:100%;object-fit:cover}

/* Nick listesi (PC, mobil çekmece): avatar ayarı açıkken yetkililerde avatar yerine yetki simgesi */
/* qwebirc yeşil (WhatsApp) zemin: kanal ile nick listesi arasındaki boşlukta bej WhatsApp tonu görünmesin, yeşil ton olsun */
/* PC nick listesi: özel nick yıldızları nickin hemen sağında, tek satırda. Dar ekranda nick kısalır (…), yıldızlar küçülür. */
/* ===== Applet yönetimi giriş kartı (tema rengine uyumlu; PC'de dar pencere) ===== */
/* qwebirc üst bar: radyo daha alçak, Özel Mesajlar / Durumlar sekmeleriyle aynı hizada */
/* qwebirc üst kanal haplarında açık sesli oda simgesi */
/* Mobil WhatsApp: kanal üst barındaki sesli oda sayısı simgeyi kapatmasın (küçük, sol üstte) */
/* qwebirc üst bar: aktif sesli oda simgesi Durumlar'ın yanında */
#qwRoomTab{display:none}
/* Oda kapanınca simge tamamen kalkar (sekme düğmelerinin display:flex kuralı [hidden]'ı ezmesin) */
html body #app#app#app#app #modernDemoTabs>#qwRoomTab[hidden],html:not(.qw-bar) body #app#app#app#app #modernDemoTabs>#qwRoomTab{display:none!important}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Simge görünürken radyo kalan alanda ortalanır ve gerekirse daralır (taşma yok) */
}
/* Seslenme / alıntı / tepki bildirimi: turuncu kart; dokununca ilgili mesaj turuncu vurgulanır (PC + mobil, tüm görünümler) */
html body #socialToast#socialToast#socialToast.st-card.st-mention .st-timer i{background:#f28c18!important}
/* Sohbet resmi yer tutucusu (WhatsApp gibi): bulanık önizleme, ortada indirme işareti ve boyut. Boyutları mevcut
   [data-image-read] kuralları belirler (her görünümde yüklenen resimle aynı yer); burada yalnız iç görünüm var. */
html body #messages .image-message>.image-placeholder>.image-ph-pill>svg{display:block;width:20px;height:20px;flex:0 0 20px}
html body #messages .image-message>.image-placeholder:disabled>.image-ph-pill{animation:image-ph-pulse 1s ease-in-out infinite alternate}
@keyframes image-ph-pulse{to{opacity:.55}}
@media(prefers-reduced-motion:reduce){html body #messages .image-message>.image-placeholder:disabled>.image-ph-pill{animation:none}}

/* v81 · Çevrimdışı Mesajlar (Arkadaşlar sekmesi / classic Özel Mesajlar › Arkadaşlar): turuncu vurgu, bildirim sayıları */
html body #app#app#app#app [data-md-friend-group="inbox"]>summary::before{content:'✉'!important}
html body #app#app#app#app [data-md-friend-group="inbox"].has-offline-mail>summary::before{background:#fff1e0!important;color:#f28c18!important}
html body #app#app#app#app [data-md-friend-group="inbox"].has-offline-mail>summary>span{background:#f28c18!important;color:#fff!important;font-weight:700}
html body #app#app#app#app [data-md-friend-group="inbox"] .md-offline-row>span>small{color:#b35c00!important;font-weight:600}
html body #app#app#app#app [data-md-friend-group="inbox"].md-inbox-flash{animation:mdInboxFlash 1.6s ease-out 1}
@keyframes mdInboxFlash{0%,35%{box-shadow:0 0 0 2px #f28c18,0 0 14px rgba(242,140,24,.45)}100%{box-shadow:0 0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){html body #app#app#app#app [data-md-friend-group="inbox"].md-inbox-flash{animation:none}}

/* v82 · Classic mobil nick listesi: başlık kaldırıldı, arama en üstte */
/* Daralan listede yetkili başlıkları sığsın: yazı boyutu aynı, yalnız boşluklar ve simge biraz küçük. */
#qwMembers#qwMembers .qwm-cat>b{min-width:14px;padding:1px 3px;margin-right:1px}

/* Admin paneli: yazı ayarı formu */

/* v83 · Classic mobil (qwebirc) nick listesi görünümü — admin › Tema Ayarları › Classic mobil.
   Yalnız ayar seçilince eşleşir (öznitelik / sınıf yoksa hiçbir kural çalışmaz). Özel nick stilleri (nick-styled) hariç. */
/* Yetkili kategorisi: satır nicki + başlık; görünüm genel ayarından önceliklidir. Başlık rengi --qwm-c ile gelir. */
/* Üst kanallar yazısı (sığmayan kanalda otomatik küçültme korunur: boyut yalnız sıkışmayan haplara) */

/* v83 · Kart / whois: App / App değil etiketi gösterilmiyor; boş yer kaplamasın */

/* v83 · Admin › Tema Ayarları › nick listesi görünümü formları (#nlAdminBoost: modern mobilin :is(#…) düğme kuralını geçmek için yalnız özgüllük; böyle bir öğe yok) */
html body :is(.applet-admin-dialog,#nlAdminBoost):is(.applet-admin-dialog,#nlAdminBoost) .admin-nl-icons.admin-nl-icons>button>svg,html body :is(.applet-admin-dialog,#nlAdminBoost):is(.applet-admin-dialog,#nlAdminBoost) .admin-nl-icons.admin-nl-icons>button>img{display:block;width:20px;height:20px}

/* v83 · Admin › Tema Ayarları › nick listesi görünümü formları (#nlAdminBoost: modern mobilin :is(#…) düğme kuralını geçmek için yalnız özgüllük; böyle bir öğe yok) */
html body :is(.applet-admin-dialog,#nlAdminBoost):is(.applet-admin-dialog,#nlAdminBoost) .admin-nl-icons.admin-nl-icons>button>svg,html body :is(.applet-admin-dialog,#nlAdminBoost):is(.applet-admin-dialog,#nlAdminBoost) .admin-nl-icons.admin-nl-icons>button>img{display:block;width:20px;height:20px}


/* v86 · Kanalda mesaj yazanların avatar boyutu (admin › Tema Ayarları, görünüm seçmeli). Yalnız ayar seçilince ve
   yalnız kanal mesajlarında (.in-channel) eşleşir. Kutu yeni boyutta yer kaplar; içerik oranla ölçeklenir. */
/* v88 · Nick satırlarında kategori ikonu arka plansız (rozet yalnız başlıkta), kategori renginde */
/* v88 · Classic mobil: nick listesinden açılan profil kartı yetkili başlığının rengiyle uyumlu (açık ton, koyu değil) */
html body #qwMembers#qwMembers #userCard#userCard.inline-member-card.rank-colored-profile::before{background:color-mix(in srgb,var(--profile-rank-color) 8%,#fff)!important;border-color:color-mix(in srgb,var(--profile-rank-color) 38%,#fff)!important}
html body #qwMembers#qwMembers #userCard#userCard.inline-member-card.rank-colored-profile :is(#userCardNick,.user-card-info h2){color:var(--profile-rank-color)}
/* Admin › Varsayılana dön (en üstte) ve uyarı kartı */
/* Üç seçenekli onay (Evet / Hayır / İptal): düğmeler alt alta, Evet üstte. */
html body dialog.friend-confirm-dialog.friend-confirm-dialog.confirm-choice>footer{display:flex!important;flex-direction:column-reverse!important;align-items:stretch!important;gap:8px!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.confirm-choice>footer>button{width:100%!important;max-width:none!important;flex:none!important;white-space:normal!important}
/* iPhone (WebKit): avatar boyutu ayarlıyken ızgara hücresi belirsiz kalınca % boyutlu yetki ikonu (ör. Founder) 0'a çöküyordu. Hücre avatar kutusu kadar sabitlenir. */
/* ===== Classic mobil (qwebirc) · "Kanal yazı tipi klasik" (admin › Tema Ayarları, data-qw-irc) =====
   Yalnız kanallarda (.in-channel): balonsuz klasik IRC satırı. Avatar ve nick renkleri korunur; saat küçük, satır sonunda;
   tepkiler mesajın sol altında. Özel mesajlar ve işaretsiz durum etkilenmez. */
/* Arka plan: sade, tema rengine uyumlu açık zemin (duvar kâğıdı yok); kanal ve nick listesi aynı zeminde. Avatar ekranın tam solunda. */
html.qw-bar[data-qw-irc]{--qwi-bg:color-mix(in srgb,var(--cz-277bdd,#277bdd) 7%,#fff)}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app .layout:not(.private-chat) #messages#messages{padding-left:0!important;background:var(--qwi-bg)!important;background-image:none!important}
/* Nick listesi satırları bir tık sık. */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel{display:flex!important;align-items:flex-start!important;gap:0!important;position:relative!important;max-width:none!important;width:auto!important;margin:0!important;padding:1px 6px 1px 2px!important;background:none!important;border:0!important;box-shadow:none!important;font-family:var(--qwu-text-font,var(--qwi-text-font,Arial,Helvetica,sans-serif))!important;font-size:var(--qwu-text-size,var(--qwi-text-size,13px))!important;font-weight:var(--qwu-text-weight,var(--qwi-text-weight,400))!important;font-style:var(--qwu-text-italic,var(--qwi-text-italic,normal))!important;color:#111!important;line-height:1.32!important;text-align:left!important;flex-direction:row!important;padding-left:0!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.standard-time{display:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-avatar{display:grid!important;grid-template-columns:100%!important;grid-template-rows:100%!important;place-items:center!important;vertical-align:top!important;align-self:flex-start!important;margin-top:calc((var(--qwu-text-size,var(--qwi-text-size,13px)) * 1.32 - var(--qwi-av,22px)) / 2)!important;width:var(--qwi-av,22px)!important;height:var(--qwi-av,22px)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;flex:none!important;margin-right:2px!important;margin-left:0!important;margin-bottom:0!important;padding:0!important;overflow:visible!important;float:none!important;position:static!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-avatar>*{transform:scale(var(--qwi-av-scale,.74))!important;transform-origin:center!important;flex:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-body{display:block!important;flex:1 1 auto!important;position:static!important;max-width:none!important;width:auto!important;min-width:0!important;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:inherit!important;font:inherit!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-body::before,html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-body::after{display:none!important;content:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-body>div:first-child:not(.x),html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-content-line,html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-text{display:inline!important;position:static!important;margin:0!important;padding:0!important;background:none!important;font:inherit!important;color:inherit!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-name{display:inline!important;margin:0 5px 0 0!important;padding:0!important;font-family:var(--qwi-nick-font,inherit)!important;font-weight:var(--qwi-nick-weight,400)!important;font-style:var(--qwi-nick-italic,normal)!important;font-size:var(--qwi-nick-size,inherit)!important;line-height:inherit!important;white-space:nowrap!important;cursor:pointer}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-name::before{content:"<"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel[data-member-rank="q"] .message-name::before{content:"<~"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel[data-member-rank="a"] .message-name::before{content:"<&"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel[data-member-rank="o"] .message-name::before{content:"<@"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel[data-member-rank="h"] .message-name::before{content:"<%"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel[data-member-rank="v"] .message-name::before{content:"<+"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-name::after{content:">"}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-time,html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .classic-like{display:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .classic-end-time{display:inline!important;position:static!important;float:none!important;margin:0 0 0 6px!important;padding:0!important;font:10px/1 Arial,Helvetica,sans-serif!important;color:#8b8b8b!important;white-space:nowrap!important;vertical-align:baseline!important;height:auto!important;width:auto!important;transform:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-media:empty{display:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .message-media:not(:empty){display:block!important;margin:4px 0 0 0!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .reaction-widget{display:block!important;position:static!important;margin:0!important;padding:0!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;float:none!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .reaction-counts:not(:empty){display:flex!important;flex-wrap:wrap!important;gap:4px!important;justify-content:flex-start!important;position:static!important;float:none!important;inset:auto!important;width:auto!important;height:auto!important;margin:3px 0 1px 0!important;transform:none!important}
/* Klasik kanal yazısı: yıldızlar nickin hemen üstünde (satır kaymadan, yalnız yıldızlı satıra üstte yer açılır), "Özel Üye" gibi rozetler gizli. */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-body>div:first-child:not(.x){position:relative!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel.has-nick-stars{padding-top:9px!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .nick-rank-stars{display:inline-flex!important;position:absolute!important;left:0!important;bottom:100%!important;top:auto!important;margin:0 0 -2px!important;padding:0!important;font-size:9px!important;line-height:1!important;transform:none!important;white-space:nowrap!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .nick-special-badge-row,html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel .msg-badge-full{display:none!important}
/* Klasik kanal yazısı: kendi avatarını / fotoğrafını seçenlerde de avatar satırın solunda, nickle aynı hizada. */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-avatar .social-avatar{display:block!important;position:relative!important;width:30px!important;height:30px!important;margin:0!important}
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel>.message-avatar .social-avatar>img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important}
/* Admin görünüm menüleri: numaralı, açıklamalı bölüm başlıkları */
/* System Logs › Bağlantılar: kopma ayrıntısı */
/* Sunucu Ayarları › Varsayılan Reset + Sıfırla */
/* Admin › Session Kontrol */
/* Admin › Özel Nickler */
/* Classic kanal yazısı: profil avatarı kapalıyken normal kullanıcı ikonu, nick listesindeki boyutta */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel.normal-role-message>.message-avatar>.nl-file-icon{width:22px!important;height:22px!important;max-width:none!important;max-height:none!important}
/* Classic (qwebirc): nick listesi butonu (MSN simgesi + kişi sayısı) daha küçük; altında kanal yazı modu dönüşüm butonu */
#qwIrcToggle{display:none}
/* App Admin › Classic › Nick listesi avatar boyutu */
html.qw-bar[data-nlav-classic] body #qwMembers .qwm-row>.qwm-av{zoom:var(--nlav-classic-scale,1)}
/* Classic kanal yazı modu: tek satırlık art arda mesajlarda avatarlar birbirine değmesin (çok hafif boşluk). */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel{min-height:calc(var(--qwi-av,22px) + 2px)!important;box-sizing:border-box!important}
/* Classic kanal yazı modu: boyutu verilmiş (px) özel nick ikonu satırı aşağı-yukarı taşmaz; komşu avatarlarla ~2 px boşluk kalır. */
html.qw-bar[data-qw-irc] body #app#app#app#app#app#app #messages#messages .message.in-channel.ni-sized{padding-top:calc((var(--qwi-av,22px) - var(--qwu-text-size,var(--qwi-text-size,13px)) * 1.32) / 2 + 2px)!important;min-height:calc(var(--qwi-av,22px) + 6px)!important}
/* Classic qwebirc mobil (baloncuk ve klasik yazı modu, tüm temalar): kanal penceresi ve nick listesi ayrı oval kartlar.
   Konu satırı kanal kartının başlığı gibi üstüne oturur; nick listesi temaya uygun açık tonda.
   Tab butonu nick listesinin tam altında ortalı, mesaj satırının 2px üstünde; nick listesi Tab'ın üstünde biter. */
/* v131 · Bilgilendirme kartında emoji simgesi (durum tepkisi / yorumu): emoji kendi rengiyle, açık zeminde */
/* v131 · qwebirc classic teması (yalnız mobil classic qwebirc): tema rengi çok açık mavi olduğu için bilgilendirme kartı
   silik kalıyordu. Simge, başlık ve geri sayan çizgi canlı maviyle çizilir. Başarı / hata / seslenme renkleri aynı kalır. */

/* ===== Güncelleme 145: mobilde özel mesajlar WhatsApp düzeninde =====
   Yalnız mobil ve yalnız özel mesaj (WhatsApp, qwebirc baloncuklu, qwebirc classic). Avatar ve nick yok; kendi mesajın sağda
   (temanın kendi balon rengi), karşınınki solda; saat ve tikler metnin sonunda sağ altta; art arda mesajlarda sivri uç yalnız ilkinde. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* WhatsApp görünümü + yeşil (WhatsApp) tema: özel mesaj zemini açık bej, çizgi desenli (özgün çizim, tek küçük SVG). */
 /* Güncelleme 146: aynı ekranda durum şeridi, bilgi kartı, mesaj satırı ve Tab düğmesi bej zemine uyar. */
 /* Güncelleme 147: mesaj satırı 2 px yukarıda; aynı zemin WhatsApp yeşil görünümde kanal ekranında da kullanılır. */
 /* Güncelleme 149: kanal ekranında konu şeridi, hoş geldiniz kartı ve nick listesi düğmesi de bej zemine uyar. */
 /* qwebirc baloncuklu, kanal mesajları: avatar sol kenara dayalı, balon avatara daha yakın. */
}

/* ===== Güncelleme 146: mini düzenleme düğmesi (✎) ve mini panel — yalnız App admininde çizilir ===== */
/* Görünüm düğmesi: PC ve WhatsApp mobilde kanal ekranının sol üstünde; classic'te üst kanalların altındaki kutu. */

/* ===== Güncelleme 150 ===== */
/* ✎ boyutu: WhatsApp mobilde nick listesi uygulama kutusunun dışında (çekmece) çizildiği için kural oraya da uzatıldı. */
/* Medya düğmelerindeki ✎ ve "herkese gizli" çizgisi (yalnız admin). */
/* Üst kanallar (classic): okunmamış ve seçili kanal renkleri (görünüm panelinden). */
/* Arkadaş ekle gizliyse (admin hariç) ekleme düğmeleri görünmez; arkadaşlıktan çıkarma düğmesi kalır. */
/* Güncelleme 151: görünüm panelinde "Kanal sıralaması" alt bölümü. */
/* Güncelleme 151: mesaj satırındaki "odayı yazışmaya kapat" kilidi (yalnız admin, yalnız kanalda). */

/* ===== Güncelleme 152 ===== */
/* Whois kartındaki "Özel nick ekle / düzenle" düğmesi. */
.whois-sn [data-sn-whois]::before{content:"✎";font-size:13px}
.whois-sn [data-sn-whois]:hover{filter:brightness(1.08)}
/* Mobilde mini pencereler bir kademe küçük. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* WhatsApp yeşil görünüm: kaydırma çubuğu, ataş menüsü ve özel mesajdaki durum şeridi bej tonlarda. */
}

/* ===== Güncelleme 153: Bekleyen değişiklikler düğmesi ve penceresi (yalnız admin) ===== */
#snPendingBtn b{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;box-sizing:border-box;border-radius:9px;background:#e53935;color:#fff;font:700 10.5px/17px Arial,sans-serif;text-align:center}
@keyframes snPendPulse{0%,100%{box-shadow:0 1px 4px rgba(0,0,0,.2)}50%{box-shadow:0 0 0 5px rgba(255,152,0,.28)}}

/* ===== Güncelleme 154: sağ üst menüde satır sıralama / gizleme (yalnız admin) ve marka düzenleme ===== */
#modernNavigationMenu button[data-nav-key]{position:relative}
#modernNavigationMenu button.md-nav-off{opacity:.85}
#modernNavigationMenu button.md-nav-off::after{content:"";position:absolute;left:10px;right:96px;top:50%;height:2px;margin-top:-1px;border-radius:2px;background:#e53935;pointer-events:none}

/* ===== Güncelleme 155 ===== */
/* "Görünüme göre" ikon boyutu yalnız nick listesinde ve kanal mesajı avatarında uygulanır; özel sohbet başlığı, listeler ve kartlarda ikon bulunduğu yerin boyutunu alır. */
/* Düzenle düğmeleri gizliyken (önizleme) hiçbiri çizilmez. */
/* Menü düzenleme düğmeleri: satırın sağına sabitlenir (dar menüde kesilmesin), taşınan satır kısa süre vurgulanır. */
#modernNavigationMenu button.md-nav-off::after{right:100px}
#modernNavigationMenu button.md-nav-flash{animation:snNavFlash 1.1s ease-out 1}
@keyframes snNavFlash{0%{background:#ffe082}60%{background:#fff3c4}100%{background:transparent}}
/* Tam rozet (yıldız + yazı) listelerde ve başlıkta taşmasın. */
.layout:not(.msn-channel-chat) #snPendingBtn.in-composer{left:10px}
/* Mobil başlıkta rozet nickin yanında (tek satır), "Çevrimiçi" yazısının üstüne binmez. */

/* ===== Güncelleme 156 ===== */
/* Menü düzenleme: oklar satırın DIŞINDA ayrı kutuda (satırın işlevini tetiklemez). */
#modernNavigationMenu button.md-nav-editmode::after{content:"Kapalı";margin-left:auto;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.1);font:700 10.5px/1.4 Arial,sans-serif;color:#54656f}
/* Bekleyen değişiklikler düğmesi mobilde sağda, nick listesi (MSN) düğmesinin üstünde. */
/* Logo ✎'si logonun üstünde. */
html body .titlebar .brand.sn-media-host>.sn-media-edit.sn-media-edit.sn-media-edit{left:20px!important;right:auto!important;top:-4px!important}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* WhatsApp yeşil görünüm: yukarı / aşağı kaydırma düğmeleri bej. */
 /* Düzenle ve sil düğmeleri de varken tepki penceresi ekrana sığsın. */
}

/* Güncelleme 156: qwebirc classic yazı modunda kanal mesajları ✎ düğmesi + saat gizle/göster */
html.qw-bar[data-qw-irc][data-qwi-time-off] body #app#app#app#app#app#app #messages#messages .message.in-channel .classic-end-time{display:none!important}

/* ===== Güncelleme 158 ===== */
/* Özel mesaj yazısı (admin varsayılanı) app.js içindeki #pmTextCss ile uygulanır. */
/* Mobil özel sohbet: tepki rozeti balonun altında durur ve sonraki mesajı aşağı iter (üstüne binmez). */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Özel sohbette sesli mesaj kartı ince: saat ve tikler süre satırında. */
 /* qwebirc classic yazı modu: özel sohbette gelen mesaj kartı beyaz. */
}
/* Basılı tutma menüsü: yalnız düzenle / sil. */
/* Sesli mesaj: dalga çizgisi (nokta + çubuk deseni), çalarken soldan sağa renklenir. */
html body #app#app#app#app#app#app#app #messages#messages#messages .voice-player .voice-wave{display:flex!important;align-items:center!important;gap:2px!important;background:none!important;background-image:none!important;height:20px!important}
html body #app#app#app#app#app#app#app #messages#messages#messages .voice-player .voice-wave i{display:block!important;flex:1 1 0!important;min-width:2px!important;max-width:3px!important;min-height:3px!important;border-radius:2px!important;background:#9aa7ae!important;opacity:1!important}
html body #app#app#app#app#app#app#app #messages#messages#messages .voice-player .voice-wave i.played{background:var(--md-00866c,#00866c)!important}
html body #app#app#app#app#app#app#app #messages#messages#messages .voice-player .voice-wave::before{display:none!important}
html body #app#app#app#app#app#app#app #messages#messages#messages .voice-player .voice-wave::after{width:11px!important;height:11px!important}
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Mobil: sesli mesaj kartı ince; saat ve tikler süreyle aynı satırda, gönderendeki X küçük ve kartın sonunda. */
}
/* Mobil mesaj satırı: emoji · Mesaj · ataş · [⇄ Tab] · mikrofon. Tab artık mesaj kutusunun içinde hap düğme. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Ataş, Tab'ın solunda. Telefon klavyesi açıkken ya da yazı varken ataş gizlenir (eskiden resim düğmesi gizleniyordu). */
 /* Resim gönder ataş tepsisinde, süpürgenin sağında. */
 /* Tepsi oku: ataşın üstünde, tepsiyle aynı renkte (ayrık beyaz baklava görünmez). */
 /* qwebirc: nick listesinin altındaki Tab kalktı; nick listesi kartı kanal kartıyla aynı hizada biter. */
}

/* ===== Güncelleme 162 ===== */
.sn-mini-ann details{border:0!important;padding:0!important;margin:0!important}
.sn-mini-ann .admin-nl-icons button[aria-pressed="true"]{outline:2px solid #1565c0}
/* PC: kanal sütunu dar; düzenleme düğmeleri kanal adının altında ayrı satırda durur. */
/* Duyuru satırındaki ✎ satırı uzatmasın: sağ üst köşede durur. */

/* ===== Güncelleme 164: mobil ☰ menü — sade liste (WhatsApp menüsü gibi), satırlar sık, NickServ oklu ===== */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* NickServ: sağda ok. */
 /* NickServ görünümü: ana satırlar gizlenir, yalnız NickServ seçenekleri kalır. */
 /* Düzenleme modu: satır kutusu aynı sıklıkta. */
}

/* ===== Güncelleme 165: admin panelinin en üstünde "Görsel düzenleme" kutusu ===== */

/* ===== Güncelleme 166: nick şifresi penceresi ===== */
dialog.nick-claim-dialog form p{padding:0 16px}

/* ===== Güncelleme 169: Sunucu hataları penceresi ===== */

/* ===== Güncelleme 174 ===== */
/* PC: kanal/özel mesajında özel nick rozeti nickin hemen yanında dursun (eskiden nick ile saat arasında ortada/sağda kalıyordu). */

/* ===== Güncelleme 175 — mobil Profil ve Ayarlar (WhatsApp, qwebirc baloncuklu, qwebirc classic) ===== */
/* Üstte temanın sohbet arka planı görünür; altı yuvarlak köşeli beyaz sayfa. */
html.modern-demo[data-applet-choice="modern"]{--mp-wall:url('/images/modern-demo/pattern.webp');--mp-paper:#eeeae1}
html.modern-demo[data-applet-choice="modern"]:is([data-chat-background="modern-blue"],[data-chat-background="msn"]){--mp-wall:url('/images/modern-demo/pattern-blue.webp');--mp-paper:#edf5fc}
html.modern-demo[data-applet-choice="modern"][data-chat-background="pink"]{--mp-wall:url('/images/modern-demo/pattern-pink.webp');--mp-paper:#fbeef4}
html.modern-demo[data-applet-choice="modern"][data-chat-background="purple"]{--mp-wall:url('/images/modern-demo/pattern-purple.webp');--mp-paper:#f5eefb}
html.modern-demo[data-applet-choice="modern"][data-chat-background="black"]{--mp-wall:url('/images/modern-demo/pattern-black.webp');--mp-paper:#eceeef}

/* ===== Güncelleme 180 — qwebirc nick paneli: başlıksız, grup ✎ satırın sağında ===== */
/* Satırda yer kaplamaz: grubun ilk nickinin avatarının sağ alt köşesinde küçük rozet. Nickin kendi ✎'sinden ayrı durur. */

/* ===== Güncelleme 181 ===== */
/* qwebirc (kanallar üstte) nick kartı: özel nick rozetinde yıldızlar üstte, rozet yazısı altta (dar kartta yan yana kesiliyordu). */

/* ===== Güncelleme 185 — özel nick ikon seçicisi: resim + SVG bölümleri ===== */

/* ===== Güncelleme 186 ===== */
/* qwebirc profil kartında sabit boyutlu özel nick ikonu kutunun ortasında (sol üstte kalıyordu). */
/* Resim ikon (hazır / yüklenen) seçili özel nick: avatar zemini yok, resim şeffaf görünür. SVG ikonlar zeminli kalır. */
html body #app#app#app#app#app#app #messages .message.nick-img-message>.message-avatar img.nick-icon-img{padding:0!important;border-radius:0!important;background:transparent!important}
html body #app#app#app#app#app#app .roster-profile-avatar.nick-icon-imgonly img{background:transparent!important;border-radius:0!important;padding:0!important}
/* Özel nick ikon seçicisi: Resim ikon / SVG ikon sekmeleri */

/* ===== Güncelleme 187 — özel nick mini penceresinde Sil ===== */

/* ===== Güncelleme 188: bekleme göstergesi (yalnız 4 nokta, açık renkli küçük balon) ===== */
.wait-dots i:nth-child(2){animation-delay:.15s}.wait-dots i:nth-child(3){animation-delay:.3s}.wait-dots i:nth-child(4){animation-delay:.45s}
@keyframes wait-dots{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
/* Profil kartında özel nick ikonu çerçeveye tam oturur (ikon boyutu ayarı kartı etkilemez). */

/* ===== Güncelleme 190 ===== */
/* Kanal ikonu seçicisi: 21 ikon; ikonlar düğmeye tam sığar (üst üste binmez), liste üç satırı gösterir. */

/* ===== Güncelleme 192: bağlantı göstergeleri (2 / 3 / 4 nokta) aynı yerde ve aynı görünümde ===== */
/* İki ve üç noktalı gösterge (bildirim balonu) dört noktalıyla aynı: açık gri küçük balon, gri noktalar, aynı animasyon. */

/* ===== Güncelleme 196 ===== */
/* PC özel sohbet: "gönderildi / görüldü" tikleri yalnız kendi mesajlarımda görünür (karşının mesajında tik olmaz). */
/* WhatsApp mobil: kanal açıklaması (topic), özel sohbetteki durum satırı ve sohbet başı bilgi yazısı WhatsApp'ın sarı bilgi balonu renginde. */

/* ---- 196: form pencereleri (nick kaydet, oper girişi, nick değiştir, kanala katıl, iletişim, identify) — ortak şık görünüm ---- */
/* Başlıkta tema renginde simge rozeti, yumuşak köşeli beyaz kart, belirgin alanlar, dolu ana buton. PC ve mobilde aynı. */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form::backdrop,html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog::backdrop{background:rgba(15,25,30,.46)!important;-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important}
/* Başlık */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form>header{position:static!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;min-height:0!important;height:auto!important;margin:0!important;padding:18px 18px 14px 20px!important;border:0!important;border-radius:0!important;background:linear-gradient(180deg,color-mix(in srgb,var(--form-accent) 9%,#fff),#fff)!important;box-shadow:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form>header::before,html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog form>h3::before{content:""!important;display:block!important;flex:0 0 42px!important;width:42px!important;height:42px!important;border-radius:14px!important;background-color:color-mix(in srgb,var(--form-accent) 13%,#fff)!important;background-image:var(--dlg-icon)!important;background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important;position:static!important;-webkit-mask:none!important;mask:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form>header :is(h2,h3,b,strong){flex:1 1 auto!important;min-width:0!important;margin:0!important;padding:0!important;color:var(--form-text)!important;font:700 18px/1.25 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;letter-spacing:-.2px!important;text-align:left!important;text-shadow:none!important;background:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form.dlg-form>header button{-webkit-text-fill-color:currentColor!important;opacity:1!important;display:grid!important;place-items:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:#f1f4f6!important;background-image:none!important;color:#5b6770!important;box-shadow:none!important;font-size:0!important;line-height:1!important;position:static!important;cursor:pointer!important;outline:0!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form.dlg-form>header button>*{display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form.dlg-form>header button::before{content:none!important;display:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form.dlg-form>header button::after{-webkit-text-fill-color:currentColor!important;content:'✕'!important;display:block!important;position:static!important;color:inherit!important;font:600 14px/1 Arial,sans-serif!important;background:none!important;width:auto!important;height:auto!important;transform:none!important;-webkit-mask:none!important;mask:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form.dlg-form>header button:hover{background:#e6ebee!important;color:var(--form-text)!important}
/* Simge: türe göre (çizgi simgeler, tema renginden bağımsız koyu gri-yeşil) */
html body dialog#socialDialog[data-dlg-kind="register"]{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.6'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M19 8v6M16 11h6'/%3E%3C/svg%3E")}
html body dialog#socialDialog[data-dlg-kind="oper"]{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18h16M5 18 3.5 8l5 4L12 5l3.5 7 5-4L19 18'/%3E%3C/svg%3E")}
html body dialog#socialDialog[data-dlg-kind="nick"]{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4'/%3E%3C/svg%3E")}
html body dialog#socialDialog[data-dlg-kind="join"]{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M9 4 7 20M17 4l-2 16M4 9h16M3 15h16'/%3E%3C/svg%3E")}
html body dialog#socialDialog[data-dlg-kind="contact"]{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E")}
html body dialog.nick-identify-dialog{--dlg-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b3b44' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='14' r='4'/%3E%3Cpath d='m11 11 9-9M17 5l2 2M15 7l2 2'/%3E%3C/svg%3E")}
/* İçerik */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form{display:flex!important;flex-direction:column!important;gap:12px!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form label:not(.contact-attach-btn){display:flex!important;flex-direction:column!important;gap:7px!important;margin:0!important;color:#4a5961!important;font:600 12.5px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;letter-spacing:.1px!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form input[readonly]{background:#f1f4f6!important;color:#6b7880!important;border-style:dashed!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form :is(input,textarea)::placeholder{color:#9aa6ad!important}
/* Ana buton */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form button[type=submit]:hover,html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog form button[type=submit]:hover{filter:brightness(1.06)!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form button[type=submit]:active,html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog form button[type=submit]:active{transform:translateY(1px)!important}
/* Yardımcı metinler */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form form :is(p,small){margin:0!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form #ircAccountForm>p:first-child{font:700 14.5px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;color:var(--form-text)!important}
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form #ircAccountForm small{display:block!important;padding:10px 12px!important;border-radius:12px!important;background:color-mix(in srgb,var(--form-accent) 6%,#f6f8f9)!important;color:#5b6770!important;font-size:12px!important;line-height:1.5!important}
/* Nick değiştir / kanala katıl: alan ve buton alt alta, tam genişlik */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form .channel-join-form input{padding-left:42px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa6ad' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 4 7 20M17 4l-2 16M4 9h16M3 15h16'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:14px center!important;background-size:18px 18px!important}
/* İletişim: resim ekleme çipi */
html body dialog#socialDialog#socialDialog#socialDialog#socialDialog.dlg-form .contact-attach-preview img{display:block!important;max-width:100%!important;max-height:140px!important;border-radius:12px!important;border:1px solid #e1e7eb!important}
/* Identify (kayıtlı nick) penceresi */
html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog form>h3{display:flex!important;align-items:center!important;gap:12px!important;margin:0 0 2px!important;padding:0!important;color:var(--form-text)!important;font:700 18px/1.25 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;letter-spacing:-.2px!important;text-align:left!important}
html body dialog.nick-auth-dialog.nick-auth-dialog.nick-identify-dialog form label{display:flex!important;flex-direction:column!important;gap:7px!important;margin:0!important;color:#4a5961!important;font:600 12.5px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important}

/* ---- 196: tepki verenler penceresi (üstte tepkiler ve sayıları, altta avatar · nick · tepki) ---- */
html body dialog#reactionPeople#reactionPeople.rp-v2{box-sizing:border-box;width:min(360px,calc(100vw - 28px));max-width:min(360px,calc(100vw - 28px));max-height:min(520px,calc(100dvh - 60px));margin:auto;padding:0;overflow:hidden;display:none;flex-direction:column;border:1px solid color-mix(in srgb,var(--form-accent) 14%,#e6ebee);border-radius:20px;background:#fff;color:#1f2d33;box-shadow:0 26px 64px rgba(15,30,40,.28),0 4px 14px rgba(15,30,40,.10);font:14px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html body dialog#reactionPeople#reactionPeople.rp-v2[open]{display:flex}
html body dialog#reactionPeople#reactionPeople.rp-v2::backdrop{background:rgba(15,25,30,.40)}
html body dialog#reactionPeople#reactionPeople.rp-v2>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 14px 6px 18px;background:none;border:0}
html body dialog#reactionPeople#reactionPeople.rp-v2>header b{font:700 17px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#1f2d33}
html body dialog#reactionPeople#reactionPeople.rp-v2>header button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#f1f4f6;color:#5b6770;font:600 18px/1 Arial,sans-serif;cursor:pointer}
html body dialog#reactionPeople#reactionPeople.rp-v2>header button:hover{background:#e6ebee}
html body dialog#reactionPeople .rp-chips::-webkit-scrollbar{display:none}
html body dialog#reactionPeople .rp-chips button span{font-size:17px;line-height:1}
html body dialog#reactionPeople .rp-row>b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 15px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#1f2d33}

/* ===== Güncelleme 197 — emoji penceresi › GIF sekmesi ve mesajda GIF ===== */
/* Mesajdaki GIF küçük açılır. */
/* Alt sekmeler: emoji | GIF */
/* GIF kipi: emoji araması, kategoriler ve emoji ızgarası gizlenir; GIF paneli aynı alanı doldurur. */
#emojiPicker .gif-grid::after{content:"";flex:10 1 0}
#emojiPicker .gif-item:hover{filter:brightness(.92)}

/* ===== Güncelleme 198 — admin paneli › GIF'ler menüsü ===== */

/* ===== Güncelleme 199 — GIF mesajı balonsuz (WhatsApp çıkartması gibi): zemin şeffaf, çerçeve / gölge / kuyruk yok ===== */
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-body,
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-content,
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-text{background:transparent!important;background-image:none!important;border-color:transparent!important;box-shadow:none!important;outline:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-body{border:0!important;padding-left:0!important;padding-right:0!important}
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-body::before,
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .message-body::after{display:none!important;content:none!important}
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .chat-gif{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
/* Saat (ve tikler) GIF'in altında, zeminsiz durur (beyaz / renkli hiçbir kutu yok). */
html body #app#app#app#app#app#app#app#app#app#app #messages#messages#messages .message.gif-message .classic-end-time{display:inline-flex!important;align-items:center!important;gap:3px!important;width:fit-content!important;margin:3px 0 0 auto!important;padding:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;position:static!important;float:none!important}

/* 201: Mobilde kanal başlığı / durum satırı biraz daraltıldı; satırın alt kenarı sağdaki ok simgesinin alt ucuna denk gelir (tek satırken 26px). */

/* ===== Güncelleme 204: durum yükleme ekranı, izleme ekranı (arama penceresi kalıbı), üç nokta menüleri ===== */
/* --- Üç nokta menüsü (Durumum satırı ve izleme ekranı) --- */
/* --- Yükleme satırı: "Durumum" avatarının altında yüzde + İptal --- */
/* --- Yükleme ekranı: koyu, tam ekran (PC'de ortada telefon biçimli) --- */
html body dialog.status-update-dialog.status-compose::backdrop{background:rgba(0,0,0,.72)}
html body dialog.status-compose .status-compose-range>span{flex:0 0 68px}
html body dialog.status-compose>.status-compose-stage>video,html body dialog.status-compose>.status-compose-stage>canvas{display:block;max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain;border-radius:10px!important;background:#000}
html body dialog.status-compose .status-compose-caption::placeholder{color:rgba(255,255,255,.6)}
html body dialog.status-compose .status-compose-send:disabled{opacity:.45!important}
/* --- İzleme ekranı: arama penceresiyle aynı kalıp (PC'de ortada 390x740, mobilde tam ekran) --- */
html body dialog.status-update-dialog.status-story::backdrop{background:rgba(0,0,0,.72)}
html body dialog.status-update-dialog.status-story>header>.status-story-back svg{width:24px;height:24px}
html body dialog.status-update-dialog.status-story>header .status-story-presence:not(:empty)+.status-story-when:not(:empty)::before{content:'· '}
html body dialog.status-update-dialog.status-story>header>.status-viewers+.status-story-more,html body dialog.status-update-dialog.status-story>header>.status-viewers:not([hidden])~.status-story-more{margin-left:0}
html body dialog.status-update-dialog.status-story>header>.status-viewers:not([hidden]){margin-left:auto}
html body dialog.status-update-dialog.status-story>header>.status-viewers:not([hidden])~.status-viewers{margin-left:0}
html body dialog.status-update-dialog.status-story>footer{flex:0 0 auto;padding:4px 10px 8px!important}
@media (max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
 /* Durum penceresi (liste) mobilde biraz küçültüldü. */
}

/* ===== Güncelleme 207: durum listesinde satır sonu (tepki özeti + üç nokta) ===== */

/* ===== Güncelleme 209: "Durumum" satırı mobilde taşmaz (tepki düğmesi, zil ve üç nokta aynı satırda) ===== */

/* ===== Güncelleme 210: görenler (göz) düğmesi ve yönetici yorum listesi ===== */
html body .status-eye svg{width:21px;height:21px}

/* ===== Güncelleme 211: göz düğmesinde gören sayısı; izleme ekranı üst barında göz ===== */
html body .status-eye>b{font:700 12.5px/1 Arial,sans-serif;color:inherit}

/* ===== 213: büyük resim penceresinin altındaki tepki düğmeleri ===== */

/* ===== 214: küçük profil kartı (avatara / nicke tıklayınca açılan) — daha sade ve düzenli görünüm.
   Renkler değiştirilmez: arka plan, yazı ve vurgu renkleri seçili temadan / uygulama görünümünden gelir.
   Nick listesinin içinde açılan dar (satır içi) karta dokunulmaz; orada yalnız rozet ve gizli düğme kuralları geçerlidir. ===== */
html body #userCard#userCard#userCard:not(.inline-member-card) .user-card-avatar[data-profile-photo]{cursor:zoom-in!important}
html body #userCard#userCard#userCard:not(.inline-member-card) .user-card-avatar[data-profile-photo]:focus-visible{outline:2px solid currentColor!important;outline-offset:3px!important}
/* Rozet sığmıyorsa: yıldızlar üstte, grup adı altta. */

/* ===== 215: alıntı kutusu (mesaj yazma alanının üstünde) — nick üstte, mesaj altta, gri şerit, sağda × (kanal ve özel) ===== */
html body #app#app#app#app#app .composer>.reply-preview:not([hidden])>div{display:flex!important;flex-direction:column!important;gap:1px!important;flex:1 1 0!important;min-width:0!important;overflow:hidden!important;text-align:left!important}
html body #app#app#app#app#app .composer>.reply-preview:not([hidden])>button:hover{background:rgba(0,0,0,.07)!important}
/* 215: Session Kontrol › mesajları gelecek kanallar kutusu */

/* ===== 217: animasyonlu efektler ===== */
/* Özel sohbette mesaj alanının sağ kenarındaki efekt düğmesi (konumu effects.js ölçerek verir). */
/* Sahne: efekt oynarken ekran kararır, video ortada oynar. Dokununca kapanır. */
/* "Tekrar gösterme" sağ üstte × düğmesinin solunda durur; üstteki yazı onunla çakışmasın diye bir satır aşağı iner. */
/* Admin paneli › Animasyonlu Efektler */
/* 217: profil kartındaki efekt (nickin efekti varsa işlemlerin üstünde görünür) */
/* 218: profil kartındaki efekt satırı karta tam sığar (dar kartta yazı küçülür, gerekirse iki satıra iner; taşma yok). */
/* 218: admin › Animasyonlu Efektler › tek satırdan nick'e efekt verme */
/* 248: Tüm Liste işaretçisi (Şu Nickler seçiminin yanında) */
/* 219: nick listesi içindeki dar profil kartında efekt satırı — kapak üstte, yazı altta, daha küçük yazı */
/* 219: admin › yeni efekt penceresi (durumlardaki kırpma penceresinin aynısı; başlangıç / bitiş çubukları) */
/* 220: efekt düğmesi mobilde küçük (40 px); PC'de eski boyutunda (50 px) kalır */
/* 222: PC'de sohbet kartının içinde oynayan dikey videonun yan boşlukları efektin bulanık kapağıyla dolar */

/* 224: telefonda efekt videosu ekranı tam doldurur (kenarlarda boşluk kalmaz). Yalnız fark küçükken uygulanır; bkz. effects.js */

/* 225: efekt düğmesi — uzay küresi simgesi (altın çerçeve ve efekt kapağı yerine). Boyutlar aynı: PC 50 px, mobil 40 px. */
#effectButton.is-waiting>.fx-orb{filter:grayscale(.75) brightness(.8)}

/* 226: Oper Girişi — "Beni hatırla" satırı, otomatik giriş uyarısı, Aktif oturumlar'da operatör satırı */
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm .account-remember{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:4px;margin:12px 0 4px;text-align:left}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm .account-remember>input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px!important;min-height:0!important;margin:0!important;padding:0!important;border-radius:5px!important;accent-color:#00a884;box-shadow:none!important;appearance:auto!important;-webkit-appearance:checkbox!important}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm .account-remember>label{display:block!important;margin:0!important;font-weight:700!important;cursor:pointer}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm .account-remember>small{grid-column:1/-1;display:block;font-size:12px;line-height:1.35;opacity:.75}
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm .account-note{margin:0 0 10px;padding:9px 11px;border-radius:10px;background:rgba(229,57,53,.1);color:#c62828;font-size:13px;font-weight:600;line-height:1.35}

/* 227: Oper Girişi › "Nicki düşür" düğmesi ve başarı bilgisi */
html body dialog#socialDialog#socialDialog#socialDialog.dlg-account #ircAccountForm button.account-drop{margin-top:8px!important;width:100%!important;min-height:40px!important;border:1px solid rgba(229,57,53,.45)!important;border-radius:12px!important;background:transparent!important;color:#c62828!important;font:700 14px/1 Arial,Helvetica,sans-serif!important;cursor:pointer;box-shadow:none!important}

/* 229: App Admin › Sunucu ayarları › Sunucu yanıt metinleri */
.admin-service-texts>legend{padding:0 6px;font-weight:700}

/* 234/235/236: qwebirc mobil üst bar (236: classic ve baloncuklu). Sekmeler: Özel Mesajlar · #Kanallar · Durumlar (235: #Kanallar sekmesi eklendi, WhatsApp mobil gibi).
   Sağda (varsayılan): soldan sağa Özel Mesajlar · #Kanallar · Durumlar · radyo · ☰.  Solda: ☰ · radyo · Durumlar · #Kanallar · Özel Mesajlar.
   Mobil qwebirc'in iki görünümünde (classic ve baloncuklu); WhatsApp ve PC değişmez. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* Solda */
/* 267: yalnız soldaki üst ☰ ile açılınca solda; sohbet başlığındaki sağ ☰ (özel / kanal) ile açılınca sağda kalır (mobile-common kuralı) */
/* 237: #Kanallar sekmesinde kaç kanala girildiyse kırmızı sayı rozeti (diğer sekmelerin rozetiyle aynı yer ve boy) */
/* 235: Özel Mesajlar / Arkadaşlar / Durumlar sekmesi açıkken üst kanallar gizli; yalnız o sekme görünür (#Kanallar'a dokununca geri gelir). */
/* 235/236: qwebirc nick listesinden açılan profil kartı ekranın ortasında; yetkili başlığının rengine uygun açık tonlu, kompakt kart. */
/* 235/236/238: qwebirc nick listesi daha dar (kanal mesajlarına daha çok yer) */
/* 238: avatar biraz sola (kenar çizgisine değmeden), nick avatara daha yakın */
}

/* 238: yazı, boşluk ve × ekran genişliğine göre ölçeklenir (412 px = tam boy, en az 9 px yazı): her telefonda aynı harfler sığar. */
/* 234/236: üst kanallar "her satırda kaç kanal" (✎ Görünüm ayarları · qwebirc classic ve baloncuklu): Otomatik / 4 / 5.
   4 ve 5'te her telefonda satır başına aynı sayıda kanal: düğmeler eşit genişlikte, yazı kalın ve ince düğme.
   Sığmayan kanal adı "…" ile kısalır; seçili (açık) kanalın adı her zaman tam görünür, gerekirse yandaki yeri de kaplar (app.js measureChips). */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){
/* 235: kanal düğmeleri ince (22 px) */
/* 236: sığmayan ad (seçili kanal hariç) "…" ile kısalır — Otomatik dahil */
/* 4 / 5: 8N ince sütun, düğme 8 sütun; seçili kanal gerekirse ~8-10 px'lik adımlarla genişler (× ile ad arasında fazla boşluk kalmaz, yandaki kanallara yer kalır) */
/* 238: dar ekranda / büyütülmüş yazıda "#Sohbet" bile sığmıyorsa satırdaki kanal sayısı kendiliğinden azalır (app.js chipFit; ayar "en fazla N") */
}

/* 238: büyük resim penceresindeki × tam ortada (yazı satır yüksekliği yüzünden aşağı kaymış görünüyordu) */
/* 238: qwebirc nick listesi kartından avatar büyütme: kart boyunda pencere, avatar ortada büyük, X sol üstte */
/* 238: dar qwebirc nick listesinde arama kutusu: "Ara" yazısı kesilmesin (silme düğmesi payı ve iç boşluk küçük) */
dialog.avatar-zoom .avatar-zoom-close:focus{outline:0}
dialog.avatar-zoom .avatar-zoom-close:focus-visible{outline:2px solid #fff;outline-offset:-4px}

/* 239: efekt üst yazısı (profil kartından): nickin rozeti yan yana (yıldızlar + şerit yazısı), altında "Nick - X'e sahip" */
html body .fx-stage .fx-caption-badge .fx-cap-line span{white-space:pre}

/* 239: mobil qwebirc üst kanallarda en baştaki "Status" (×'i yok; içinde Status aç/kapa düğmesi) */
/* 239: qwebirc baloncuklu: kanaldaki uzun mesaj balonu sağa doğru biraz daha uzar (kart kenarına dayanmaz, ~8 px boşluk kalır) → satırlar daha az kırılır */
/* 239: mobil qwebirc nick listesi arama kutusu daha ince (30 → 24 px) */

/* 240: Özel Mesajlar / Arkadaşlar listesi (mobil): satır içeriğe göre uzar (özel nick rozeti satırdan taşıp çizgiye binmesin) */
/* 240: listede kendi son mesajım: ✓✓ özel sohbetteki tıkla aynı (gri: gönderildi, mavi: görüldü) */
/* 240: profil kartı efekt satırındaki ▶ (çizim) */
html body #userCard .fx-card>i>svg.fx-card-play{display:block}
/* 240: mobil qwebirc: kanalda nick listesi düğmesi (MSN simgesi + sayı) ve altındaki geçiş düğmesi şeffaf: zemin, kenar, yuvarlaklık ve gölge yok */
/* 240: qwebirc classic (MSN mavi tema): üst bar ile tarayıcının adres çubuğu arasındaki boşluk kalktı; bar en üste dayanır (üst köşeler düz) */

/* 241: Sunucu Sahibi başlığı (admin kanal efekti / "Sahip" listesi): üstte avatar + nick + rozet, altında açıklama */
html body .fx-stage .fx-caption-owner:not(.fx-caption-sender) .fx-cap-nick:not(.nick-styled){color:#f4c542}
/* 241: Sunucu Sahibi kartı: 3 efekt resmi üst üste, "Sahip" */
/* 241: "Sahip" listesi (kanal efekt menüsü görünümünde), ekranın ortasında */
/* 241: Sunucu Sahibi nicki başlıkta rozet ve yıldız renginde (altın sarısı); nickin kendi rengi kullanılmaz, yazı tipi kalır */

/* 242: özel nick ikonu avatar yuvarlağının tam ortasında (özel başlık, Özel Mesaj / Arkadaş listeleri, efekt başlığı) */
/* 242: özel mesajlarda (başlık ve listeler) rozet ve yıldızlar altın sarısı; tema rengi almaz (WhatsApp, PC, qwebirc) */
/* 242: efekt başlığındaki "… sahip / … gönderdi" yazısı: kalın, italik, farklı yazı tipi, gölgeli; tek satır (sığmazsa effects.js yazıyı en az 10 px'e kadar küçültür) */
html body .fx-stage .fx-caption-owner .fx-cap-line span,html body .fx-stage .fx-caption-badge .fx-cap-line span{opacity:1!important}
/* 242: qwebirc Arkadaşlar listesi: avatar grup kartının kenarına yapışmasın */
/* 245: Admin › Animasyonlu Efektler › Efekt ver: efektler küçük işaretli kutucuklar (birden çok seçilebilir) */

/* 249: profil kartında en altta "X'i Gönder" (efekt sahibi kartıyla aynı görünüm) ve Bildirimler › Tekrar gösterme dediklerim */
/* 249: kanala gönderilen efektte başlık (Admin / Sunucu Sahibi / gönderen nick, rozet, yıldız) ekranın altında */
/* 254: Beni Hatırla (PC: avatar ve nickin altı; mobil: sol menünün en altı) */
/* Beni Hatırla kutusu (giriş ekranı, Kayıtlı nick / Nick kaydet / nick geri alma pencereleri). Bu ekranların giriş kutusu
   kuralları çok güçlü (id'li seçiciler); onay kutusuna ve etiketine uygulanmasın diye :is(#rh×6,*) ile öncelik yükseltilir
   (:is her zaman eşleşir, yalnız önceliği artırır). */
.remember-me:is(#rh#rh#rh#rh#rh#rh,*)[hidden]{display:none!important}
.remember-me:is(#rh#rh#rh#rh#rh#rh,*).login-remember,dialog .remember-me:is(#rh#rh#rh#rh#rh#rh,*),form .remember-me:is(#rh#rh#rh#rh#rh#rh,*){display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;margin:2px 0 10px!important;padding:2px 2px!important;font:600 13.5px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif!important;color:inherit!important;cursor:pointer}
.remember-me:is(#rh#rh#rh#rh#rh#rh,*) input[type=checkbox]{appearance:auto!important;-webkit-appearance:checkbox!important;display:inline-block!important;width:18px!important;height:18px!important;min-width:0!important;min-height:0!important;flex:0 0 auto!important;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline-offset:2px;accent-color:var(--form-accent,#128c7e)}
.remember-me:is(#rh#rh#rh#rh#rh#rh,*) span{white-space:nowrap}

/* 255: girişte Status'taki "Sunucuya bağlanılıyor / Bağlantı kuruldu" kartı (kartvizit; çerçeve tema rengiyle) */
#messages .connect-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,transparent,var(--cc-accent),transparent);opacity:.85}
#messages .connect-card .cc-mark i:nth-child(2){animation-delay:.15s}#messages .connect-card .cc-mark i:nth-child(3){animation-delay:.3s}
#messages .connect-card[data-state="connected"] .cc-mark{animation:ccPop .3s ease-out}
@keyframes ccDot{0%,80%,100%{transform:scale(.6);opacity:.45}40%{transform:scale(1);opacity:1}}
@keyframes ccIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes ccPop{0%{transform:scale(.85)}70%{transform:scale(1.08)}100%{transform:scale(1)}}
/* 264: efekt oynarken solda yukarıdan aşağı nick (harfler alt alta). Stil nick başına admin panelinden seçilir (effects.js).
   İki üst üste sütun: .fx-g = renkli ışıltı (yavaşça nabız gibi atar), .fx-t = parlak dolgulu harfler. Telefonu yormamak için
   bütün sütunda yalnız iki animasyon var: giriş (sütun yukarıdan kayarak belirir) ve ışıltının nabzı. İkisi de yalnız opacity /
   transform kullanır (ekran kartında çalışır). Harf başına ayrı animasyon ana iş parçacığını yoruyordu; ölçülerek kaldırıldı. */
html body .fx-stage .fx-side>span>i{display:block;min-width:.62em;height:1.04em;margin:0;padding:0;font:inherit;font-style:normal;text-align:center;white-space:pre}
html body .fx-stage .fx-side[data-style="neon"]{--glow:#ff2bd6;--glow2:#8a2bff;--fill:linear-gradient(180deg,#fff 0%,#ffe9fb 100%);--stroke:rgba(255,120,240,.9)}
html body .fx-stage .fx-side[data-style="neon"]>.fx-g{animation:fx-side-flicker 3.4s linear .9s infinite}
html body .fx-stage .fx-side[data-style="neon"]>.fx-g>i{text-shadow:0 0 .06em #fff,0 0 .16em var(--glow),0 0 .4em var(--glow),0 0 .85em var(--glow2),0 0 1.3em var(--glow2)}
html body .fx-stage .fx-side[data-style="fire"]{--glow:#ff4a00;--glow2:rgba(255,0,0,.6);--fill:linear-gradient(180deg,#fffbd1 0%,#ffd23f 30%,#ff7a1a 62%,#e3210c 100%);--stroke:rgba(90,10,0,.7)}
html body .fx-stage .fx-side[data-style="ice"]{--glow:#4fd2ff;--glow2:rgba(0,110,255,.6);--fill:linear-gradient(180deg,#fff 0%,#dcf7ff 34%,#86dbff 64%,#2f8cff 100%);--stroke:rgba(0,40,95,.6)}
html body .fx-stage .fx-side[data-style="rainbow"]>span>i{--h:calc(360deg * var(--i,0) / var(--n,1))}
html body .fx-stage .fx-side[data-style="rainbow"]>.fx-g>i{color:hsl(var(--h),100%,55%);text-shadow:0 2px 3px rgba(0,0,0,.85),0 0 .12em hsl(var(--h),100%,60%),0 0 .32em hsl(var(--h),100%,55%),0 0 .7em hsl(var(--h),100%,45%)}
html body .fx-stage .fx-side[data-style="rainbow"]>.fx-t>i{background:linear-gradient(180deg,hsl(var(--h),100%,92%) 0%,hsl(var(--h),100%,66%) 55%,hsl(var(--h),95%,48%) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:.7px rgba(0,0,0,.45)}
@keyframes fx-side-in{from{opacity:0;transform:translate3d(0,-28px,0) scale(.9)}to{opacity:1;transform:none}}
@keyframes fx-side-glow{from{opacity:.4}to{opacity:1}}
@keyframes fx-side-flicker{0%,100%{opacity:1}6%{opacity:.35}8%{opacity:1}40%{opacity:.85}42%{opacity:.3}44%{opacity:1}70%{opacity:.95}}
/* Admin panelinde atanan nick satırındaki "Dikey nick" seçimi */
/* 265: dikey nick yazı tipleri — sade durmasın: her stilde ayrı, italik / el yazısı tip; harfler sırayla hafif sağa-sola eğik
   (sabit transform, animasyon değil). Yalnız cihazda bulunan yazı tipleri kullanılır (dosya indirilmez); yoksa sıradaki denenir. */
/* 265: video satırındaki görünürlük seçimi */
/* 265: mobil menü "Beni Hatırla": çizilmiş kutu; kapalıyken boş, açıkken dolu renk + tik (classic ve WhatsApp görünümünde aynı). */
html body .md-nav-remember[aria-checked="true"] .md-check-box{fill:currentColor;fill-opacity:.16}
/* 266: Efekt ver listesi — nick başına tek satır, yetkiler / efektler yan yana etiket (× ile silinir) */
/* Telefonda: üst satır numara · nick · etiketler (küçük yazı, tek satır); alt satırda stil ve yazı tipi seçimleri yan yana */
/* 266: dikey nick yazı tipi (nick başına; stil kurallarından sonra gelir, boyut --fs korunur) */
html body .fx-stage .fx-side[data-font="plain"]>span>i{transform:none!important}
/* 267: mobil (WhatsApp ve classic) özel / arkadaş sohbeti başlığında yıldız + rozet satırı ortada değil, nickin altında sola yaslı
   (avatara yakın). Yalnız nick rozetini taşıyan satırı etkiler; kanal başlığında bu satır yok. */
/* 268: bağlantı kurulunca kart küçülür ve Status'un en üstünde sabit (yapışkan) durur; yazılar altından akar. */
#messages .connect-card.is-compact::before{display:none}
/* 268: kartta uygulama adı (Sunucu Ayarları) + logo; ad olduğu gibi yazılır. Status açılınca kart küçülerek yukarı çıkar. */
@keyframes ccShrink{from{opacity:.55;transform:translate3d(0,26vh,0) scale(1.5)}to{opacity:1;transform:none}}
/* 269: kart düzeni — logo + uygulama adı büyük, "Bağlantı kuruldu" küçük, altta slogan. Renkler temanın renginden (--cc-accent). */
/* 269: classic qwebirc üst kanallarda Status etiketi kendi yazısı kadar (kapatma × yok, boşluk kalmasın). Yalnız Status; diğer kanal etiketleri aynı. */
/* 271: qwebirc mobil (classic ve baloncuklu; yerleşim kuralları ikisinde, saat kuralları yalnız classic'te): kanal ve özel sohbet alanı kart değil, tam oturur.
   - Üst kanal etiketleri ile kanal / nick listesi arasında boşluk yok.
   - Mesaj alanı (ve üstündeki konu satırı) kenarsız ve köşesiz; kanalda sağ kenarı nick listesi kartının sol çizgisine dayanır
     (nick listesi kartı aynen kalır). Özel sohbette tam genişlik, alt kenar mesaj satırına oturur.
   - Kanal mesajlarında saat başta: [saat] avatar <nick> mesaj. Özel sohbet olduğu gibi. "Saat kapalı" ayarı geçerli.
   "yazıyor…" göstergesi yerinde (sol alt köşe). Baloncuklu görünümde mesaj satırlarına dokunulmaz. WhatsApp ve PC değişmez. */
/* 271: nick listesi kartı alttan mesaj satırına oturur (alt köşeler düz, alt çizgi yok); üst köşeler yuvarlak kalır. */
/* 273: qwebirc mobil (classic + baloncuklu, kanal + özel): mesaj alanı / nick listesi ile alttaki mesaj satırı arasındaki boşluk daraltıldı. */
/* 273: qwebirc nick listesindeki "Daha fazlasını göster": tek satır, küçük ve sade — "Daha fazla [236]" (sayı rozet). */
/* 273: qwebirc classic kanal mesajı tek akış: uzun mesajın alt satırları nickin altından değil, satır başından (saatin altından)
   devam eder — [saat] avatar <nick> mesaj… / …devamı. Yalnız classic kanal satırları; özel sohbet ve baloncuklu görünüm aynı. */
/* 274: qwebirc mobil "Kanallar yanda": kanallar kartı üstte, nick listesi hemen altında (yükseklik --qw-side-h, ResizeObserver). Mesaj alanı tam boy. Baloncuklu + classic.
   Izgara: sol sütunda konu + mesaj alanı tam boy; sağ sütunda nick listesi (üst) ve kanallar kartı (alt, mesaj satırına oturur). */

/* 274b: yanda kartı okunur genişlik (yalnız "Yanda" seçiliyken), satırlar tam genişlik, + satırı */
/* 274c: kapalıyken liste N satır yüksekliğinde ve kaydırılır (nick listesi gibi); ok işaretleri CSS ile çizilir, ortalı */
/* 274d: App Admin › üst kanallar yazı ayarları yan kartta da geçerli (yazı tipi, boyut, kalın/italik, okunmamış ve aktif renk) */
/* 274e: uzun kanal adı yan kartta sığmazsa yazı kademeli küçülür (önce %88, sonra %76, en son %66), tam okunur */
/* 274f: başlık şeridi (# Kanallar, sayı, ok) beyaz; altı nick listesiyle aynı zemin */
/* 274: Status açıkken kanallar kartı yine sağda; mesajlar solda tam boy. */
/* 274: kanalda sağ taraf (nick listesi) msn simgesiyle kapatılınca kanallar kartı da kapanır; mesajlar tam genişlik. */
/* 274-classic: classic qwebirc kanal mesajı sırası [saat]<AvatarNick> Mesaj — "<" avatarın önünde, avatar ile nick bitişik. */
/* 274-classic: özel nick (nick-styled) satırda diğer nicklerle aynı hizada; mesaj nickle aynı taban çizgisinde (yukarı kaymaz). */
/* 274-classic: kanal mesajlarındaki tepkiler satırın sonunda, altta (sağa yaslı); alttaki mesajla arası aynı. */
/* tepki emojisi mesajın son kelimesinin hemen altında (metnin içinde değil; normal emojiyle karışmaz). Sıfır genişlikli
   işaret son kelimenin bittiği yerde durur, rozet onun altına iner (sağ kenarı kelimenin sonunda); satırın altında rozet için yer açılır. */
/* 274-bg: App Admin › üst kanallar "Kanalların arka plan rengi": üstteki kanal şeridi ve yandaki kanal kartı (başlık şeridi beyaz kalır). */
/* 274-top: qwebirc mobil üst kanallar ve klavye. */
/* Klavye açılıp kapanırken sağ taraf sabit: mesaj satırına odaklanınca (klavye açılmadan önce; yalnız mesaj satırı, kanal / nick düğmeleri değil) ve klavye açıkken kanal kartı + nick listesi
   klavye kapalıykenki boylarında kalır (app.js qwFixObserve saklar); hiçbir şey yeniden hesaplanmaz, alt kısmı mesaj satırı / klavyenin arkasında kalır. */
/* Üst kanallar her çözünürlükte eşit ızgara: Status dahil her kanal 1 kutu, seçili kanal genişlemez; satırdaki kutu sayısı: ayar 4/5 ise --qw-chip-cols (dar ekranda kendiliğinden 4/3, app.js chipFit); Otomatik'te şimdiki eşit sütunlar.
   Sığmayan ad bir kademe küçülür, yine sığmazsa "…". Aç/kapa oku ve + sağdaki sabit sütunda. */
/* Kanalların yerini değiştiren dönüşüm düğmesi (classic + baloncuklu): sağ sütunun hemen solunda, Status satırı hizasında sabit; msn simgesi gibi zeminsiz.
   Kanallar yandayken üste alır, üstteyken sağa alır. Nick listesi kapalıyken (kanallar üstte) ekranın sağ kenarında. */
/* Uzun adlı (2 kutu kaplayan) üst kanal düğmesi yalnız adı ve × kadar geniş; 2 kutunun başından başlar (hiza bozulmaz). */
/* Alıntılar (PC ve mobil, bütün temalar): yazı kutusunun üstündeki alıntı beyaz, mesajlardaki alıntı kutusu gri; alıntılanan nick ve mesaj gri. Sol çizgi temadan. */
/* Gönderilen mesajın içindeki alıntı: zemin gri (yazı kutusunun üstündeki alıntının iç kutusuyla aynı). */
html body #app#app#app#app#app#app#app#app#app#app #messages .message .quoted-message{background:#f0f2f5!important;background-image:none!important;color:#7a858c!important}
html body #app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>div>b,html body #app#app#app#app#app#app#app#app#app#app #messages .message .quoted-message b{color:#5f6b73!important}
html body #app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>div>span,html body #app#app#app#app#app#app#app#app#app#app #messages .message .quoted-message :is(span,p,div:not(.quoted-media)){color:#7a858c!important}
/* Yazı kutusunun üstündeki alıntı (PC ve mobil; WhatsApp gibi): beyaz kart yazı kutusuyla (hap) birleşik ve onunla aynı genişlikte (app.js placeQuotePreview);
   içinde gri yuvarlak kutu: solda tema renginde çizgi, üstte tema renginde kalın nick (kendi mesajında "Siz"), altında tek satır gri mesaj ("…" ile kesilir), sağ üstte ×.
   Mesajların içindeki alıntılar değişmez. */
html body #app#app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>div{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:52px!important;margin:0!important;padding:7px 34px 7px 10px!important;border:0!important;border-left:4px solid var(--md-00866c,#00866c)!important;border-radius:8px!important;background:#f0f2f5!important;overflow:hidden!important;text-align:left!important}
html body #app#app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>div>b{display:block!important;color:var(--md-00866c,#00866c)!important;font:700 13.5px/1.3 Arial,Helvetica,sans-serif!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html body #app#app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>div>span{display:block!important;color:#667781!important;font:400 13.5px/1.35 Arial,Helvetica,sans-serif!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html body #app#app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>button{position:absolute!important;top:9px!important;right:11px!important;left:auto!important;width:22px!important;height:22px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;background-image:none!important;color:#54656f!important;font:400 20px/22px Arial,Helvetica,sans-serif!important;box-shadow:none!important;cursor:pointer!important}
html body #app#app#app#app#app#app#app#app#app#app#app .composer>.reply-preview:not([hidden])>button:hover{background:rgba(0,0,0,.08)!important}
/* Yazı satırının üstünde alıntı varken Tab düğmesi gizli (alıntı gönderilince / kapatılınca geri gelir). */
html.has-quote-draft body #app#app#app#app#app#app#app#app#app#app#app #nickTabButton{display:none!important}
/* qwebirc (classic ve baloncuklu) mobil, kanallar üstte: kanal düğmeleri sekme görünümünde (açık zemin, ince çerçeve, hafif köşe, sağda küçük ×).
   Kapalıyken 2 sıra ve sağa kaydırmalı; her düğme eşit genişlikte (--qw-chip-w, app.js measureChips). Ok tüm listeyi alt alta açar; uzun ad kuralları aynen geçerli. */
/* 2 sıralı modda uzun ad (2 kutu): iki kutuyu tam doldurur, sağında boşluk kalmaz. */
/* Üst kanal kartı: butonlar karta tam oturur (üst / alt iç boşluk az); sağdaki ok ve + iki sıranın boyunda. */
/* Üst kanallar: 2 kutu kaplayan uzun adlı kanallar her zaman listenin sonunda (kapalı 2 sıra ve açık liste). */
/* Alıntılı mesaj: alıntı ve yazılan mesaj .quote-card içinde. Normalde görünmez sarmalayıcı (display:contents, düzeni değiştirmez);
   qwebirc classic kanalda tek kart: nick satırının altında, yazı kadar genişler (en çok satırın %88'i), zemin temanın açık tonu. Gönderen ve diğerleri için aynı. */
/* "X, Y adlı kişinin mesajını alıntıladı" (classic ve baloncuklu): küçük, ince, gri; diğer yazılarla karışmaz. */
/* Silinen mesaj yazısı ("Bu mesajı sildiniz", "Mesaj kendisi tarafından silindi", "... operatörü tarafından silindi"): aynı ince, küçük, gri stil. */
/* Classic alıntı kartlı mesajda tepki işareti kartın altında ayrı boş satır açmaz (rozet yine kartın altında görünür). */
/* Mesaj alanı kaydırma çubuğu. Mobil (kanal ve özel): çubuk görünmez, parmakla kaydırma aynen çalışır.
   PC: ince (6 px) tema renginde çubuk, yalnız fare mesaj alanının üstündeyken görünür (tekerleksiz farede tutup sürüklenebilir). */
/* Üst kanal şeridi: uzun isimli kanalın adı sekmenin ortasında, × sağda kalır. */
/* Özel sohbet başlığı: alttaki durum satırında aç/kapat oku yok. */
/* Özel sohbet Hakkında satırı: yazı sığıyorsa ok gizli; sığmıyorsa ok ile açılıp kapanır. */
/* Mobil: nickin altındaki son görülme yazısı küçük ve tek satır; üst barı taşırmaz. */
/* "Son görülmemi kimler görebilir?" seçimi (durum seçeneklerinin üstünde). */
.lastseen-vis>span{opacity:.8}
/* Profil kartı: son görülme / çevrimdışı gri, meşgul kırmızı. */
/* Sesli oda: mobilde kanala giriş simgesi kanalın sol tarafında, dikeyde ortada. */
/* qwebirc (baloncuklu / classic) mobil: üst bardaki sesli oda simgesi ve kanal sekmelerindeki ses simgesi gösterilmez (WhatsApp ve PC'de kalır). */
/* Admin › Sesli Ayarlar: yayına katılabilecekler (çoklu seçim kutusu). */
.admin-multi-select>summary::-webkit-details-marker{display:none}
.admin-multi-select>summary::after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:.6}

/* Sesli oda (16.10): soldaki simge — arka plansız (tema renginde), dalgalar sürekli hareketli (yalnız opacity; yerleşim değişmez).
   Tıklanınca önce Aktif Sesli Odalar penceresi açılır (mobilde küçük, tema renginde). */
@keyframes roomWavePulse{0%,100%{opacity:.25}50%{opacity:1}}
:is(.room-restore.room-wave,[data-md-media="voiceButton"].room-live,.channel-room-right.room-live,.channel-room-icon.room-live,.md-chip-room.room-live,#voiceButton.room-mic.room-live) .rw{animation:roomWavePulse 1.3s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){:is(.room-restore,[data-md-media="voiceButton"],.channel-room-right,.channel-room-icon,.md-chip-room) .rw{animation:none}}
/* Dinleyici avatarı: içteki kare yok, avatar yuvarlağın ortasında */
html body .voice-room-panel.vr-demo .vrx-person-row:not(.vrx-publisher-tile) .room-avatar.room-avatar{padding:0!important;border:0!important;border-radius:50%!important;overflow:hidden!important;display:grid!important;place-items:center!important;box-shadow:none!important}
html body .voice-room-panel.vr-demo .vrx-person-row:not(.vrx-publisher-tile) .room-avatar.room-avatar :is(.social-avatar,img){width:100%!important;height:100%!important;margin:0!important;border:0!important;border-radius:50%!important;object-fit:cover!important}
/* "Nick ara" kutusu: beyaz zemin, çerçevesiz */

/* Profil fotoğrafı kırpma penceresi (yuvarlak çerçeve) */
html body dialog.photo-crop::backdrop{background:rgba(0,0,0,.6)}
/* Profil fotoğrafı yükleme alanı: "Kayıtlı hesap" yazısının hemen altında */
/* "Son görülmemi kimler görebilir?" seçimi: yazı kırpılmasın */
/* Yüklenen profil fotoğrafı her yerde (nick listesi, kanal, özel, kartlar) tam dolu yuvarlak, WhatsApp gibi:
   kenarda boşluk, beyaz halka ya da çerçeve çizgisi yok. Büyütülmüş fotoğraf penceresi (avatar-zoom) kare kalır. */
html body #socialDialog .social-profile-hero .social-photo-upload .social-photo-pick::before{content:"📷";margin-right:6px}
html body #socialDialog .social-profile-hero .social-photo-upload .social-photo-pick input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
/* qwebirc mobil: pencereler, açılır paneller ve yazı araç çubuğu tam opak ve canlı renkli (arkadaki sohbet / duvar kâğıdı görünmez, yazılar silik kalmaz). */

/* 322: WhatsApp mobil — "Kanallar üstte" kapalıyken o moddan kalan düz (italik) kanal sayısı gizlenir; kırmızı rozet kalır. Kanallar üstte / qwebirc'teki sayı rozeti etkilenmez. */

/* 322: Kanaldan çık onayı — mevcut onay penceresinin şık, temaya uyumlu çeşidi (vurgu rengi --form-accent: tema rengi) */
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)::backdrop{background:rgba(10,20,28,.5)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>.leave-confirm-icon svg{width:30px;height:30px}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>header{justify-content:center!important;padding:0 20px 6px!important;background:none!important;border:0!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>header b{font-size:18px!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>header button{position:absolute!important;top:10px!important;right:10px!important;background:transparent!important;color:#8a979e!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>p{padding:2px 24px 20px!important;font-size:14.5px!important;line-height:1.55!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer{padding:0 18px 18px!important;border-top:0!important;background:none!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer button{height:44px!important;min-height:44px!important;border-radius:14px!important;transition:filter .15s,transform .1s}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer [data-confirm-cancel]{background:#f1f4f6!important;border-color:transparent!important;color:var(--form-text)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer [data-confirm-accept]{background:linear-gradient(180deg,color-mix(in srgb,var(--form-accent) 82%,#fff),var(--form-accent))!important;box-shadow:0 6px 16px color-mix(in srgb,var(--form-accent) 32%,transparent)!important}
html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer button:active{transform:scale(.97)}
@media(hover:hover){html body dialog.friend-confirm-dialog.friend-confirm-dialog.leave-confirm:not(#lv0):not(#lv1)>footer button:hover{filter:brightness(.96)}}
/* Siyah tema: koyu pencere, altın vurgu */
@keyframes leave-confirm-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}

/* Giriş ekranı şifre kutusu: type="text" + nokta maskesi. type="password" olunca telefon klavyesinin üstünde tarayıcının
   şifre / otomatik doldurma çubuğu çıkıp ekranı gereksiz küçültüyordu. Maskeyi desteklemeyen tarayıcıda kutu yeniden
   type="password" yapılır (app.js). */
#loginPassword:is(#rh#rh#rh#rh#rh#rh,*){-webkit-text-security:disc!important}
/* Mobil performans: dokunmatik cihazlarda arka plan bulanıklaştırma (backdrop-filter) kapalı.
   Alt menü, yazıyor balonu, resim düğmeleri gibi ekranda sürekli duran öğelerdeki bulanıklık, kaydırma sırasında
   telefonun her karede arkadaki içeriği yeniden bulanıklaştırmasına yol açıyordu. Yarı saydam arka planlar aynen kalır. */
@media (hover:none) and (pointer:coarse){
 html body *,html body *::before,html body *::after,html body ::backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
}

/* 283: Mesaj satırları boyamada birbirinden yalıtılır (contain:paint; PC ve mobil). Yeni mesaj gelip liste kaydıkça bütün liste her karede
   baştan boyanıyordu; yalıtılınca yalnız değişen satır boyanır. overflow-clip-margin: balon gölgesi / avatar gibi satırdan
   birkaç piksel taşan çizimler kırpılmaz (desteklemeyen tarayıcıda kural hiç uygulanmaz). Tepki menüsü açık satırda
   (rx-open, app.js) yalıtım kalkar: menü position:fixed ve satırın dışına taşar.
   290: Tepkili satırlar (has-message-reactions) da yalıtılmaz: mobil özel sohbette tepki kutucukları tasarım gereği satırın
   ~24 px altına taşar; yalıtım 8 px sonrasını kesiyor, tepkilerin yalnız üst kenarı görünüyordu. */
/* 275: Kelime Savaşı. Renkler temadan: pencere açılırken temanın düğme rengi (--wg-a) ve mesaj alanı zemini (--wg-bg) bir kez okunur,
   tonlar color-mix ile ondan türetilir. Hareketli süs yok, ağır seçici yok.
   Pencere .chat-panel içinde mutlak konumlu: grid alanı 1/-2 (yazı kutusuna kadar) — hücre kaplamaz, diğer öğelerin yerleşimi değişmez.
   Klavye açılıp kapanınca hesap yok: alan grid satırlarıyla birlikte kendiliğinden küçülür / büyür. */
.wg-win{--wg-a:#3f6fe0;--wg-soft:#f3f6ff;--wg-line:#c8d4f4;--wg-tint:#e7edfc;--wg-ink:#26315c;--wg-a2:#6b54d6}
@supports (color:color-mix(in srgb,red 50%,blue)){
 .wg-win{--wg-soft:color-mix(in srgb,var(--wg-a) 7%,#fff);--wg-line:color-mix(in srgb,var(--wg-a) 24%,#fff);--wg-tint:color-mix(in srgb,var(--wg-a) 14%,#fff);--wg-ink:color-mix(in srgb,var(--wg-a) 30%,#1b2033);--wg-a2:color-mix(in srgb,var(--wg-a) 62%,#7a3fd0)}}
/* Kanal sütun kuralları (.chat-panel>*{grid-column:1}) üstüne: pencere iki sütunu da kaplar, kart yalnız mesaj sütununda. */
html body #app#app#app#app#app#app#app#app .chat-panel>.wg-win{grid-column:1/-1!important;grid-row:1/-2!important}
html body #app#app#app#app#app#app#app#app .chat-panel>.wg-card{grid-column:1/2!important;grid-row:1/-2!important}
/* ---- kanal kartı (gönderilen görsel gibi) ---- */
.wg-card,.wg-pill{--wg-a:#2a5fe0;--wg-dk:#0e2b86;--wg-lt:#7fb6ff;--wg-glow:rgba(70,150,255,.55);--wg-q:#4b2bb8}
@supports (color:color-mix(in srgb,red 50%,blue)){.wg-card,.wg-pill{--wg-dk:color-mix(in srgb,var(--wg-a) 55%,#000);--wg-lt:color-mix(in srgb,var(--wg-a) 45%,#fff);--wg-glow:color-mix(in srgb,var(--wg-a) 55%,transparent);--wg-q:color-mix(in srgb,var(--wg-a) 45%,#2a0a6a)}}
/* Seçim yapılana kadar oyun kanalı boş: karşılama satırı da gizli. */
/* Yazılı oyundayken sağ üstte küçük "Kelime" düğmesi (görsel oyun kartını geri getirir). */
.wg-pill svg circle{fill:#fff;stroke:none}
/* WhatsApp / PC: solda, dikey ortada, dik. */
/* ---- pencere ---- */.wg-abc text{font:900 11.5px/1 system-ui,sans-serif}
/* ---- kutlama: soru kartının yerinde; avatar, iki yanında defne dalı, köşelerde sabit süsler ---- */
.wg-strip>.wg-p{scroll-snap-align:start}
/* Klavye açıkken (yazı kutusu aktif): yalnız başlık (kartvizit), soru ve cevap akışı. Klavye kapanınca hepsi geri gelir. */
/* ---- cevap akışı ---- */
/* Akış (gelen mesajlar) her görünümde beyaz zeminde. */
.wg-feed:before{content:"";margin-top:auto}
/* Sohbet alanı grid değilse (PC, WhatsApp görünümü): pencere mesaj alanının yerine geçer; kanal başlığı ve üst sekmeler
   görünür kalır, yazı kutusunun üstünde biter. PC'de ortada; nick listesi açık kalır. */
html.wg-on.wg-flow body #app#app#app#app#app#app#app#app .chat-panel>#messages{display:none!important}
/* App Admin › Oyunlar: ayarlar alt alta, aralarında küçük boşluk. */
/* Kanal duyurusu (classic, baloncuk, WhatsApp, PC): odadaki bot satırının aynısı; renkler sabit, kanal temasının balon / satır kuralları sıfırlanır. */
/* Kutlama kartında kısa kışkırtıcı söz. */
/* Oyun ekranında (görsel pencere / kart) efekt düğmesi görünmez. */
/* 100 puan kupası: kısa, tek seferlik animasyon (yalnız transform / opacity); 4 sn sonra öğe silinir. */
@keyframes wg-tp-in{0%{opacity:0;transform:scale(.5)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes wg-tp-glow{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.1)}}
@keyframes wg-tp-cup{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.08)}}
/* Soru kartı (görseldeki gibi): ortalı başlık, harf kutuları, "İpucu - N harf", yıldızlar; süre sağ üstte. Renkler temadan. */
/* Cevap satırı: nick · cevap · saat aynı satırda (uzun cevap alta kayar, saat cevabın hemen sağında). */

/* Oyuncu kutusu: avatar + nick profil kartını açar; yetkilide köşede küçük ⛔. */
/* Yıldızlar kırmızı çerçeveli küçük kutularda; açılan harf tema renginde. Doğru cevapta kutular sırayla yeşil harflerle dolar. */
.wg-q-card.is-filling .wg-time,.wg-q-card.is-filling .wg-hbtn,.wg-q-card.is-filling .wg-peek{visibility:hidden}
@keyframes wg-fill{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
/* Soru kartı her zaman görünür: pencere gövdesi kaysa da (klavye açıkken alan daralınca) kart üstte sabit kalır. */
/* "... doğru değil" / ipucu uyarısı kartın boyunu değiştirmez (ipucu satırı aşağı itilmez): kartın üst ortasında, "Kelimeniz" satırının üstünde kısa süre görünür. */
.wg-q>.wg-fb.is-note>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Mobil: görsel oyun penceresi üstteki radyo / başlık barının hemen altından başlar. qwebirc klasikte kanal çipleri,
   WhatsApp görünümünde kanal konu satırı pencere açıkken gizlenir (pencere küçültülünce / kapatılınca geri gelir). */
/* İpucu yıldızları (en çok 10 harf): kutular ipucu düğmesine yapışmaz. Satır sağda düğme kadar boşluk bırakır, kutular kalan
   alana sığacak kadar daralır ve ortalanır (uzun kelimede sıra biraz sola kayar). */
/* Mobil, klavye açıkken de oyunun üst başlığı görünür kalır (yalnız alt yazı gizli, başlık daha ince; bkz. üstteki chat-keyboard-open kuralları). */
/* 282: ipucu yıldızları harflerin altında ortalı (sağdaki 💡 düğmesine ayrılan boşluk iki yana eşit); 9 ve üzeri harfte eski yerinde (biraz solda). */
.wg-q-card .wg-mask>i{translate:31px 0}
.wg-q-card .wg-mask>i:first-child:nth-last-child(8),.wg-q-card .wg-mask>i:first-child:nth-last-child(8)~i{translate:20px 0}
.wg-q-card .wg-mask>i:first-child:nth-last-child(n+9),.wg-q-card .wg-mask>i:first-child:nth-last-child(n+9)~i{translate:none}
/* 281: sohbet satırları (yalnız mobil): katıldı / çıktı tek satır; bot ve kullanıcı mesajları avatar, nick ve saat, altında balon. */
/* Oyun (Kelime Savaşı / KaoS / Çarkıfelek) açıkken mikrofon düğmesi yerinde kalır, yalnız ikonu gönder olur ve mesajı gönderir (bkz. word-game.js).
   Düğmenin yeri, boyu ve rengi değişmez; X ile oyundan çıkınca mikrofon ikonu geri gelir. */
/* Yazarken (telefon klavyesi açık) normalde mikrofon gizlenip ayrı gönder düğmesi çıkar; oyunda gönder yine mikrofonun yerindeki düğmedir. */
html:is(.wg-on,.ks-on,.cf-on,.sa-on) body #app#app#app#app .composer-row.md-has-text:not(.md-no-voice):not(.md-recording) #voiceButton:not([hidden]){display:grid!important;place-items:center!important}
/* Düğmenin rengi / zemini aynen kalır; yalnız klasik görünümdeki mikrofon resmi (mikrofon.png zemin olarak) gizlenir (bkz. word-game.js syncMic). */
html:is(.wg-on,.ks-on,.cf-on,.sa-on) body #app#app#app#app #voiceButton::after{content:""!important;display:block!important;position:static!important;width:20px!important;height:20px!important;margin:auto!important;background:currentColor!important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.4 3.6 18.2 20c-.2 1-1 1.2-1.8.7l-4.9-3.6-2.4 2.3c-.3.3-.5.5-1 .5l.4-5L17.6 6c.4-.4-.1-.6-.6-.3L5.7 12.8.9 11.3c-1-.3-1-1 .2-1.4L20 2.6c.9-.3 1.6.2 1.4 1Z'/%3E%3C/svg%3E") center/contain no-repeat!important;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.4 3.6 18.2 20c-.2 1-1 1.2-1.8.7l-4.9-3.6-2.4 2.3c-.3.3-.5.5-1 .5l.4-5L17.6 6c.4-.4-.1-.6-.6-.3L5.7 12.8.9 11.3c-1-.3-1-1 .2-1.4L20 2.6c.9-.3 1.6.2 1.4 1Z'/%3E%3C/svg%3E") center/contain no-repeat!important;transform:none!important}
/* İki sayfa: ana sayfada Top 10 / Lider / oyundakiler (soru kartı ve akış yok); oyun sayfasında yalnız soru kartı ve cevap akışı. */
/* Oyun sayfası: kart biraz daha uzun (aşağı doğru); "... doğru değil" yıldızların hemen altında, yeri hep ayrılı (kart boyu oynamaz). */
/* KaoS Düellosu (ayrı dosya; kaldırılınca başka görünüm etkilenmez). Yerleşim Kelime Savaşı penceresiyle aynı: .chat-panel içinde
   mutlak konumlu, grid alanı 1/-2 (yazı kutusuna kadar). Renk temadan (--ks-a) bir kez okunur. Hareketli süs yok. */
/* Renkler temadan: pencere / kart / davet açılırken temanın düğme rengi (--ks-a) bir kez okunur, açık tonlar color-mix ile ondan türetilir.
   Yeşil (doğru) ve kırmızı (yanlış / rakip) anlam rengi olduğu için sabittir. */
.ks-win,.ks-card,.ks-invite,.ks-pill{--ks-a:#2f6fe8;--ks-a2:#4b8af5;--ks-dk:#1d4fb8;--ks-line:#cfe0fb;--ks-line2:#9ec2fb;--ks-tint:#e2edff;--ks-sky:#dcebff;--ks-soft:#eef5ff;--ks-soft2:#f7fbff;--ks-ink:#1d2b55;--ks-me:#1f9d55;--ks-op:#e0384f}
@supports (color:color-mix(in srgb,red 50%,blue)){
 .ks-win,.ks-card,.ks-invite,.ks-pill{--ks-a2:color-mix(in srgb,var(--ks-a) 78%,#fff);--ks-dk:color-mix(in srgb,var(--ks-a) 72%,#000);--ks-line:color-mix(in srgb,var(--ks-a) 22%,#fff);--ks-line2:color-mix(in srgb,var(--ks-a) 42%,#fff);--ks-tint:color-mix(in srgb,var(--ks-a) 13%,#fff);--ks-sky:color-mix(in srgb,var(--ks-a) 17%,#fff);--ks-soft:color-mix(in srgb,var(--ks-a) 8%,#fff);--ks-soft2:color-mix(in srgb,var(--ks-a) 3%,#fff);--ks-ink:color-mix(in srgb,var(--ks-a) 30%,#141a33)}}
html body #app#app#app#app#app#app#app#app .chat-panel>.ks-win{grid-column:1/-1!important;grid-row:1/-2!important}
html.ks-on.ks-flow body #app#app#app#app#app#app#app#app .chat-panel>#messages{display:none!important}
/* PC: ortada, en çok 720px. */
/* ---- logo: renkli KaoS, taç, iki yanda kılıç; altında altın "Düellosu" ---- */
/* ---- kanal kartı (açık mavi) ---- */
/* ---- başlık: ortada logo, sağda küçük düğmeler; altında 1'e 1 Düello / Toplu Yarışma sekmeleri ---- */
/* ---- gövde ---- */
/* VS skor kartları */
/* soru kartı */
/* uyarı (yalnız yazana) */
/* VS kurulumu */
@media (prefers-reduced-motion:no-preference){@keyframes ks-spin{to{transform:rotate(360deg)}}}
/* Top 10 */
.ks-table th,.ks-table td{padding:5px 6px;text-align:left;border-bottom:1px solid var(--ks-tint)}
.ks-table th{font-size:12px;opacity:.75}
/* gelen davet: sayfanın altında küçük kart (oyun gizliyken / başka kanalda da görünür) */
/* Klavye açıkken (mobil): başlık ve sıralama gizlenir, soru ve cevaplar yer kazanır; pencere yerinde kalır. */
/* düello cevap akışı (görseldeki gibi): rakip solda, sen sağda; doğru yeşil ✓, yanlış kırmızı ✕ üstü çizili */
/* Her soruda akış temizlenir: satırlar yukarıdan (soru en üstte) başlar. */
/* davet aç / kapat düğmesi ve davet kartındaki "Davetleri Kapat" */
/* ---- giriş ekranı: 1'e 1 Düello / Oyuna Gir kartları ---- */
/* Oyuna Gir akışında başkasının nicki */
/* Lider (canlı sıralama) */
/* Müsait Oyuncular: iki sütun kart */
html body .ks-win .ks-lcard .ks-btn.ks-sm:disabled{opacity:.5}
/* admin: kalan cevaplar */
/* soru yazısı bir tık küçük (alt satıra az kaysın) */
/* mobil düello tam ekran: sayfanın üstünden yazı kutusuna kadar (top / height JS'ten); klavye açıkken de logo görünür */
html.ks-full.chat-keyboard-open .ks-win .ks-head .ks-logo b{font-size:19px}
/* ---- ana sayfa: Top 10 listesi + Lider kutusu (yalnız giriş ekranında) ---- */
/* üst çubuk: soru süresi ortada, bulunan sayısı yanında */
/* ince VS barı, ortada kılıç */
/* soru kartı başlıksız, ince */
/* Soru akışın en üst satırında (yapışık), başında kırmızı soru işareti; soru kartı yok. */
/* Davet kartı: "Davetleri kapat:" yanında iki seçenek (bu kişiden gelenler / hepsi), bütün oyunlarda ortak. */
/* Ana sayfa: Top 10 Düello / Top 10 Genel sekmeleri (şeridin yerinde). */
/* Çarkıfelek (ayrı dosya; kaldırılınca başka görünüm etkilenmez). Yerleşim KaoS penceresiyle aynı: .chat-panel içinde mutlak konumlu,
   grid alanı 1/-2 (yazı kutusuna kadar). Renk temadan (--cf-a) bir kez okunur. Hareket yalnız çark dönerken (transform geçişi). */
.cf-win,.cf-card,.cf-invite,.cf-pill{--cf-a:#2f6fe8;--cf-a2:#4b8af5;--cf-dk:#1d4fb8;--cf-line:#cfe0fb;--cf-line2:#9ec2fb;--cf-tint:#e2edff;--cf-sky:#dcebff;--cf-soft:#eef5ff;--cf-soft2:#f7fbff;--cf-ink:#1d2b55;--cf-ok:#22a559;--cf-bad:#e0384f;--cf-gold:#ffc93c}
@supports (color:color-mix(in srgb,red 50%,blue)){
 .cf-win,.cf-card,.cf-invite,.cf-pill{--cf-a2:color-mix(in srgb,var(--cf-a) 78%,#fff);--cf-dk:color-mix(in srgb,var(--cf-a) 72%,#000);--cf-line:color-mix(in srgb,var(--cf-a) 22%,#fff);--cf-line2:color-mix(in srgb,var(--cf-a) 42%,#fff);--cf-tint:color-mix(in srgb,var(--cf-a) 13%,#fff);--cf-sky:color-mix(in srgb,var(--cf-a) 17%,#fff);--cf-soft:color-mix(in srgb,var(--cf-a) 8%,#fff);--cf-soft2:color-mix(in srgb,var(--cf-a) 3%,#fff);--cf-ink:color-mix(in srgb,var(--cf-a) 30%,#141a33)}}
html body #app#app#app#app#app#app#app#app .chat-panel>.cf-win{grid-column:1/-1!important;grid-row:1/-2!important}
html.cf-on.cf-flow body #app#app#app#app#app#app#app#app .chat-panel>#messages{display:none!important}
/* PC: ortada, en çok 720px. */
/* ---- logo: renkli kalın "Çarkıfelek", üstünde taç ---- */
/* ---- kanal kartı: KaoS / Kelime Savaşı kartıyla aynı yapı (üstte logo, Oyunu Başlat / Normal Oyna) ---- */
/* ---- başlık ---- */
/* ---- gövde ---- */
/* ---- VS (görsel 3): iki oyuncu, ortada VS; sırası gelen parlar ---- */
/* ---- çark sahnesi (görsel 2): büyük çark ortada; sağ üstte süre rozeti, sağ altta sıra / çeviren rozeti ---- */
/* Kategori adları dilimden taşmasın: küçük yazı, uzun ad iki satır (catLabel). */
@media (prefers-reduced-motion:no-preference){@keyframes cf-hub{to{transform:translate(-50%,-50%) scale(1.12)}}}
/* kelime bilinince kutlama kartı */
@keyframes cf-pop-in{0%{opacity:0;transform:scale(.5)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes cf-pop-glow{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.1)}}
@keyframes cf-pop-cr{from{transform:rotate(-10deg)}to{transform:rotate(10deg) scale(1.1)}}
/* ---- kategori, ipucu, harf kutuları (görsel 2) ---- */
@media (prefers-reduced-motion:no-preference){.cf-tile.is-new{animation:cf-flip .45s ease-out}@keyframes cf-flip{from{transform:rotateX(90deg)}to{transform:none}}}
/* ---- Döndür / durum ---- */
/* uyarı (yalnız yazana) */
@keyframes cf-fb{from{opacity:0;transform:translate(-50%,6px)}}
/* ---- hamle akışı (görsel 2): avatar, nick, saat, ✓ / ✕, metin, +puan ---- */
.cf-feed:before{content:"";margin-top:auto}
/* boşta (Oyuna Gir başlamadan) ve sonuç ekranında çark / tahta / akış gizli */
/* ---- düello sonucu (görsel 4) ---- */
/* ---- giriş ekranı ---- */
/* Top 10 listesi + Lider kutusu (ana sayfa ve sonuç ekranı) */
/* Lider (canlı sıralama) */
/* Top 10 tablosu */
.cf-table th,.cf-table td{padding:5px 6px;text-align:left;border-bottom:1px solid var(--cf-tint)}
.cf-table th{font-size:12px;opacity:.75}
/* VS kurulumu, arama, müsait oyuncular */
@media (prefers-reduced-motion:no-preference){@keyframes cf-rd{to{transform:rotate(360deg)}}}
/* gelen davet: sayfanın altında küçük kart */
/* Klavye açıkken (mobil): sekmeler gizli, çark küçülür; tahta ve akış yer kazanır. */
/* Kısa ekran (klavye açık, alçak telefon): soru kartı sıkışır, böylece çark + soru sabit kalırken akışa yer kalır. */
/* mobil düello / Oyuna Gir tam ekran: sayfanın üstünden yazı kutusuna kadar (top / height JS'ten) */
/* PC: mobildeki düzen (düelloda VS üstte, çark ortada üstte, süre / çeviren çarkın sağında, soru kartı altta). Çark bölümü çark + rozetler kadar geniş, ortalı. */
/* Soru puanı düşüşü (açılan harf) akışta kırmızı. */
/* Kategori seçilirken çark öne / ortaya gelir: yeri boş kalmasın diye sahne yüksekliği korunur, çark pane'e göre konumlanır. */
/* Boşta: çarka dokunan oyunu başlatır. */
/* Rakip aranırken radarın ortasında dönen çark. */
@media (prefers-reduced-motion:no-preference){.cf-radar-w .cf-wsvg{animation:cf-rw 2.4s linear infinite}@keyframes cf-rw{to{transform:rotate(360deg)}}}
/* Rakip bulundu: iki avatar ortada. */
@keyframes cf-match{0%{opacity:0}10%{opacity:1}85%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:no-preference){.cf-match-p.is-me{animation:cf-mL .5s cubic-bezier(.2,.9,.3,1.3)}.cf-match-p.is-op{animation:cf-mR .5s cubic-bezier(.2,.9,.3,1.3)}@keyframes cf-mL{from{transform:translateX(-60px);opacity:0}}@keyframes cf-mR{from{transform:translateX(60px);opacity:0}}}
/* Göbekte çarkı çevirenin avatarı. */
/* Üst şerit (Oyuna Gir): solda oda + kişi sayısı, ortada çeviren, sağda puan. */
/* Giriş: iki farklı çark (Düello mavi tonlar + ⚔, Oyuna Gir renkli + 👑). */
@media (prefers-reduced-motion:no-preference){.cf-hc-w .cf-wsvg{animation:cf-rw 14s linear infinite}.cf-hcard:hover .cf-hc-w .cf-wsvg{animation-duration:3s}}
/* "?" avatarlı rakip çarkı: Rastgele Rakip Bul düğmesi ve arama ekranı. */
@media (prefers-reduced-motion:no-preference){.cf-rnd-w .cf-wsvg{animation:cf-rw 16s linear infinite}}
.cf-search.is-found .cf-radar-w .cf-wsvg{animation:none}
@keyframes cf-found{from{transform:translate(-50%,-50%) scale(.3)}}
/* Akış kaldırıldı: çark kalan yere göre büyür (sizeWheel), soru kartı altında. */
/* Oyuna Gir: çarkın sağ altında "Çeviren: avatar nick" (küçük; düelloda aynı yerde sıra rozeti var). */
/* Herkese görünen kısa bildirim: "X harf aldı", pas geçme. */
@media (prefers-reduced-motion:no-preference){.cf-toast.is-in{animation:cf-toast .25s ease}@keyframes cf-toast{from{opacity:0;transform:translate(-50%,6px)}}}
/* Sistemde "animasyonları azalt" açık olsa da (Windows'ta animasyon efektleri kapalı) çarklar döner: genel kural (msnchatapp.css) tüm
   animasyon / geçişleri kapatıyor; çarkın dönüşü oyunun kendisi olduğu için burada geri açılır (dönüş geçişi JS'te satır içi !important). */
@media (prefers-reduced-motion:reduce){
 html body .cf-win .cf-hc-w .cf-wsvg{animation:cf-rw 14s linear infinite!important}
 html body .cf-win .cf-rnd-w .cf-wsvg{animation:cf-rw 16s linear infinite!important}
 html body .cf-win .cf-radar-w .cf-wsvg{animation:cf-rw 2.4s linear infinite!important}
 @keyframes cf-rw{to{transform:rotate(360deg)}}}
/* Çeviren rozeti çarkın tam altında, ortalı; yeri sahnede ayrılır (çark ile soru kartının üstüne binmez). */
/* Taç / göbek işareti çark boyuna göre ölçeklenir: küçük çarkta (klavye açık) yuvasından taşmaz. */
/* Davet kartı: "Davetleri kapat:" yanında iki seçenek (bu kişiden gelenler / hepsi), bütün oyunlarda ortak. */
/* Ana sayfa: Top 10 Düello / Top 10 Genel sekmeleri (şeridin yerinde). */
/* Sayı Avı (ayrı dosya; kaldırılınca başka görünüm etkilenmez). Yerleşim Çarkıfelek penceresiyle aynı: .chat-panel içinde mutlak konumlu,
   grid alanı 1/-2 (yazı kutusuna kadar). Renk temadan (--sa-a) bir kez okunur. Hareket yalnız kısa geçişlerde. */
html body #app#app#app#app#app#app#app#app .chat-panel>.sa-win{grid-column:1/-1!important;grid-row:1/-2!important}
html.sa-on.sa-flow body #app#app#app#app#app#app#app#app .chat-panel>#messages{display:none!important}
/* ---- logo: renkli kalın "Sayı Avı" ---- */
/* ---- kanal kartı ---- */
/* işlem renkleri (görsel): + yeşil, − kırmızı, × turuncu, ÷ mor */
/* ---- başlık ---- */
/* ---- gövde ---- */
/* ---- VS ---- */
/* ---- oyun: hedef, kartlar, işlemler, işlem satırı ---- */
/* canlı sıralama (toplu): kalan yeri doldurur, kendi içinde kayar */
/* soru bitti: tuşlar kilitli */
/* uyarı (yalnız yazana) */
/* soru sonucu kartı */
@keyframes sa-pop{0%{opacity:0;transform:scale(.6)}10%{opacity:1;transform:scale(1.05)}18%{transform:scale(1)}88%{opacity:1}100%{opacity:0}}
/* ---- bekleme / sonuç ekranları ---- */
/* ---- giriş ekranı ---- */
/* Lider (canlı sıralama) */
/* Top 10 tablosu */
.sa-table th,.sa-table td{padding:5px 6px;text-align:left;border-bottom:1px solid var(--sa-tint)}
.sa-table th{font-size:12px;opacity:.75}
/* VS kurulumu, arama, müsait oyuncular */
@media (prefers-reduced-motion:no-preference){@keyframes sa-rd{to{transform:rotate(360deg)}}}
/* düello başladı: iki avatar ortada */
@keyframes sa-match{0%{opacity:0}10%{opacity:1}85%{opacity:1}100%{opacity:0}}
/* gelen davet: sayfanın altında küçük kart */
/* mobil düello / toplu yarışma tam ekran: sayfanın üstünden yazı kutusuna kadar (top / height JS'ten) */
/* Kısa oyun alanı (klavye açık, alçak telefon, PC'de küçük pencere; JS .sa-short): her şey sıkışır, kartlar ve tuşlar yine dokunulabilir boyda kalır. */
/* Çok alçak alan (PC'de küçük pencere + düello VS): hedef ve tuşlar biraz daha küçülür. */
/* Masaüstü temalarının genel düğme yazı boyu oyun tuşlarını küçültmesin. */
/* ---- 3 satırlık işlem alanı: her satır 2 sayı + 1 işlem, sonucu (dokunulunca sonraki satırda kullanılır), Temizle ---- */
/* genel süre: hedef kartının sağ altında, soru süresinin altında boşlukla */
/* gönderenler kutusu: İşlemi Gönder'in altında, kalan yeri doldurur, kendi içinde kayar; soru bitince işlemler tek satırda */
.sa-lv-ex::-webkit-scrollbar{display:none}
/* kanal kartı logosu */
/* görsel oyun açıkken mesaj satırı kapalı (renk ve yer değişmez) */
html.sa-on #messageInput::placeholder{font-size:10.5px;line-height:1.2;white-space:pre-wrap}
/* gönderdikten sonra kendi işlem alanı gizli; kutu büyür */
/* kısa alanda 4 satır sığsın */
/* gönderdikten sonra işlem tuşları da gizli */
/* hedefi tam bulan satır */
/* İşlemi Gönder: pasif gri; sınır içinde turuncu; tam isabet yeşil */
/* Davet kartı: "Davetleri kapat:" yanında iki seçenek (bu kişiden gelenler / hepsi), bütün oyunlarda ortak. */
/* Ana sayfa: Top 10 Düello / Top 10 Genel sekmeleri (şeridin yerinde). */
/* 318: Mobil giriş ve bağlanma ekranı (WhatsApp, qwebirc classic, qwebirc baloncuklu). PC değişmez.
   Tema arka planı (images/login/giris-*.webp, ~55 KB; tarayıcı yalnız etkin temanınkini indirir; bağlanma ekranı aynı dosyayı kullanır),
   yarı saydam kart, simgeli kutular, tema renkli düğmeler ve tema rengine boyanan MSN logosu (mevcut msn-logo.webp, CSS filtresi).
   Tema: html[data-chat-background] → mavi (varsayılan: Modern Mavi, qwebirc classic), yeşil (WhatsApp), mor, pembe, siyah-altın.
   Performans: animasyon / backdrop-filter yok (klavye açılıp kapanırken yeniden bulanıklaştırma olmasın); has seçicisi kullanılmadı. */
@media (max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1400px){

/* Dönen MSN figürleri (msn-orbit.js gradyanları) */

/* ---- Giriş ekranı ---- */

/* ---- Bağlanma ekranı (MSN dönüyor) ---- */
}
