/* ===== GG Chat — style.css v20260328 ===== */
:root{
  --fg:#1e2a3a;--bg:#eef2f7;--bg2:#e4eaf2;--card:#ffffff;--card2:#f5f8fc;--hover:#e8eef6;--active:#dce6f2;
  --br:#d0d9e6;--brl:#bcc8d8;
  --tp:#1e2a3a;--ts:#5a6a7e;--tm:#8a97a8;
  --ac:#3b82f6;--acl:#60a5fa;--acd:#2563eb;--ag:rgba(59,130,246,.08);--agh:rgba(59,130,246,.15);
  --a2:#8b5cf6;--a2g:rgba(139,92,246,.08);
  --dn:#ef4444;--on:#22c55e;--gd:#f59e0b;
  --r:10px;--rl:14px;
  --f:'Nunito',sans-serif;--fm:'JetBrains Mono',monospace;
  --sh:0 1px 3px rgba(0,0,0,.06);--sh2:0 4px 16px rgba(0,0,0,.08);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--f);background:var(--bg);color:var(--tp);overflow:hidden;height:100vh}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--brl);border-radius:3px}

/* ===== Layout ===== */
.app{display:grid;grid-template-columns:260px 1fr 270px;height:100vh}

/* ===== Game bar ===== */
.gbar{background:linear-gradient(180deg,#3b5998 0%,#2d4373 100%);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:6px;overflow-y:auto}
.gi{width:46px;height:46px;border-radius:16px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:17px;font-weight:800;color:rgba(255,255,255,.8);border:2px solid transparent}
.gi:hover{background:rgba(255,255,255,.95);color:var(--acd);transform:translateY(-2px);box-shadow:var(--sh2)}
.gi.on{background:#fff;color:var(--acd);border-color:rgba(255,255,255,.3);box-shadow:0 2px 12px rgba(0,0,0,.15)}
.gi.add{background:transparent;border:2px dashed rgba(255,255,255,.35);color:rgba(255,255,255,.5);font-size:22px}
.gi.add:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.12)}
.gdiv{width:28px;height:2px;background:rgba(255,255,255,.2);border-radius:1px;margin:4px 0}

/* ===== Alliance panel ===== */
.apanel{background:var(--card2);border-right:1px solid var(--br);display:flex;flex-direction:column}
.apanel-head{padding:14px 16px 10px;border-bottom:1px solid var(--br)}
.apanel-head h2{font-size:14px;font-weight:800;letter-spacing:.3px;color:var(--tp);display:flex;align-items:center;gap:7px}
.apanel-head .badge{font-size:9px;padding:2px 8px;background:var(--ac);color:#fff;border-radius:10px;font-weight:700}
.alliance-sel{margin:10px 14px 4px}
.alliance-sel select{width:100%;padding:9px 12px;background:#fff;border:1px solid var(--br);border-radius:var(--r);color:var(--tp);font-family:var(--f);font-size:13px;font-weight:600;outline:none;cursor:pointer;box-shadow:var(--sh)}
.alliance-sel select:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ag)}
.alliance-actions{display:flex;gap:6px;margin:6px 14px 10px}
.abtn{flex:1;padding:7px;border:1px solid var(--br);background:#fff;color:var(--ts);border-radius:var(--r);font-family:var(--f);font-size:11px;font-weight:700;cursor:pointer;text-align:center;box-shadow:var(--sh);transition:all .15s}
.abtn:hover{border-color:var(--ac);color:var(--ac);background:var(--ag)}

/* ===== Channel list ===== */
.chlist{flex:1;overflow-y:auto;padding:6px 8px}
.chcat{padding:10px 8px 4px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--tm);display:flex;align-items:center;justify-content:space-between}
.chcat .plus{font-size:14px;cursor:pointer;color:var(--tm);width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:5px}
.chcat .plus:hover{color:var(--ac);background:var(--ag)}
.chitem{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--r);cursor:pointer;font-size:13px;font-weight:600;color:var(--ts);transition:all .12s}
.chitem:hover{background:var(--hover);color:var(--tp)}
.chitem.on{background:var(--ac);color:#fff;box-shadow:0 2px 8px rgba(59,130,246,.25)}
.chitem .ci{font-size:16px;opacity:.6;width:18px;text-align:center}
.chitem.on .ci{opacity:1;color:#fff}
.chitem .lock{margin-left:auto;font-size:9px;color:var(--tm);background:var(--bg);padding:1px 5px;border-radius:4px}
.chitem.on .lock{background:rgba(255,255,255,.2);color:rgba(255,255,255,.8)}

/* ===== User panel ===== */
.upanel{padding:12px 14px;border-top:1px solid var(--br);display:flex;align-items:center;gap:10px;background:#fff}
.uav{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#fff;position:relative;flex-shrink:0;box-shadow:var(--sh)}
.uav .dot{position:absolute;bottom:0;right:0;width:11px;height:11px;border-radius:50%;border:2.5px solid #fff;background:var(--on)}
.uinfo{flex:1;min-width:0}
.uinfo .n{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uinfo .t{font-size:10px;color:var(--tm);font-family:var(--fm)}
.cbtn{width:30px;height:30px;border:none;background:transparent;color:var(--ts);border-radius:var(--r);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .12s}
.cbtn:hover{background:var(--hover);color:var(--ac)}

/* ===== Chat area ===== */
.chat{display:flex;flex-direction:column;background:var(--bg);min-height:0;overflow:hidden;position:relative}
.chdr{padding:12px 20px;background:#fff;border-bottom:1px solid var(--br);display:flex;align-items:center;gap:12px;min-height:52px;box-shadow:var(--sh)}
.chdr .cn{font-size:15px;font-weight:800;display:flex;align-items:center;gap:5px;color:var(--tp)}
.chdr .hash{color:var(--ac);font-size:20px;font-weight:400}
.chdr .sep{width:1px;height:20px;background:var(--br)}
.chdr .cd{font-size:12px;color:var(--ts);font-weight:500}
.ch-alliance-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:.5px;color:#fff;white-space:nowrap;cursor:default;text-transform:uppercase;margin-right:4px}
.chdr .ha{margin-left:auto;display:flex;gap:3px}
.tbar{padding:6px 20px;background:linear-gradient(90deg,rgba(59,130,246,.06),rgba(139,92,246,.04));border-bottom:1px solid rgba(59,130,246,.1);display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ac);font-weight:600}
.tbar .ls{background:#fff;border:1px solid var(--acl);border-radius:6px;padding:2px 8px;color:var(--ac);font-size:11px;font-family:var(--f);font-weight:700;cursor:pointer;outline:none}

/* ===== Messages ===== */
.msgs{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:1px}
.mg{display:flex;gap:12px;padding:8px 8px;border-radius:var(--r);animation:mi .3s}
.msg{display:flex;gap:12px;padding:8px 8px;border-radius:var(--r);animation:mi .3s}
.mg:hover{background:rgba(59,130,246,.04)}
@keyframes mi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.mav{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;box-shadow:var(--sh);position:relative}
.mc{flex:1;min-width:0}
.mh{display:flex;align-items:baseline;gap:7px;margin-bottom:3px}
.ma{font-size:14px;font-weight:700;cursor:pointer}
.ma:hover{text-decoration:underline}
.role-tag{font-size:8px;padding:2px 5px;border-radius:4px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.rt-r5{background:var(--dn);color:#fff}.rt-r4{background:var(--a2);color:#fff}.rt-r3{background:var(--gd);color:#fff}.rt-r2{background:var(--bg2);color:var(--ts)}.rt-r1{background:var(--bg2);color:var(--tm)}
.mt{font-size:10px;color:var(--tm);font-family:var(--fm);font-weight:500}
.mx{font-size:14px;line-height:1.55;word-wrap:break-word;color:var(--tp)}
.obtn{display:inline-block;font-size:10px;padding:1px 6px;margin-top:2px;border-radius:4px;border:1px solid var(--br);background:var(--card);cursor:pointer;color:var(--tm)}
.obtn:hover{border-color:var(--a2);color:var(--a2)}
.orig{margin-top:4px;padding:0 10px;background:var(--a2g);border-left:3px solid var(--a2);border-radius:0 var(--r) var(--r) 0;font-size:12px;color:var(--ts);max-height:0;overflow:hidden;opacity:0;transition:all .2s}
.orig.show{max-height:80px;padding:6px 10px;opacity:1}
.orig .ol{font-size:9px;color:var(--tm);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
.rxns{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}
.rx{display:flex;align-items:center;gap:3px;padding:2px 8px;background:#fff;border:1px solid var(--br);border-radius:12px;font-size:12px;cursor:pointer;box-shadow:var(--sh);transition:all .12s}
.rx:hover{border-color:var(--ac);background:var(--ag)}
.rx .c{font-size:10px;color:var(--ts);font-family:var(--fm);font-weight:600}
.msys{text-align:center;padding:8px;font-size:11px;color:var(--tm);font-weight:600;display:flex;align-items:center;gap:12px}
.msys::before,.msys::after{content:'';flex:1;height:1px;background:var(--br)}
.typing{padding:4px 20px;font-size:11px;color:var(--tm);min-height:20px;font-weight:600}

/* ===== Input area ===== */
.iarea{padding:8px 20px 16px}
.ibox{background:#fff;border:2px solid var(--br);border-radius:var(--rl);display:flex;align-items:flex-end;padding:4px;box-shadow:var(--sh);transition:border-color .2s}
.ibox:focus-within{border-color:var(--ac);box-shadow:0 0 0 4px var(--ag)}
.ibox .ibtns{display:flex;padding:5px 3px}
.ibox .ibtns button{width:34px;height:34px;border:none;background:transparent;color:var(--tm);cursor:pointer;border-radius:var(--r);font-size:17px;display:flex;align-items:center;justify-content:center}
.ibox .ibtns button:hover{background:var(--hover);color:var(--ac)}
.ibox textarea{flex:1;background:transparent;border:none;color:var(--tp);font-family:var(--f);font-size:14px;padding:9px 8px;resize:none;outline:none;max-height:100px;line-height:1.45;font-weight:500}
.ibox textarea::placeholder{color:var(--tm)}
.sendbtn{width:36px;height:36px;border:none;background:var(--ac);color:#fff;border-radius:var(--r);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;margin:3px;font-weight:800;box-shadow:0 2px 8px rgba(59,130,246,.3);transition:all .15s}
.sendbtn:hover{background:var(--acd);transform:scale(1.06)}

/* ===== Members panel ===== */
.mpanel{background:#fff;border-left:1px solid var(--br);display:flex;flex-direction:column;overflow:hidden}
.ptabs{display:flex;border-bottom:1px solid var(--br);background:var(--card2)}
.ptab{flex:1;padding:10px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--tm);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}
.ptab:hover{color:var(--ts)}
.ptab.on{color:var(--ac);border-bottom-color:var(--ac);background:#fff}
.pcontent{flex:1;overflow-y:auto}
.mcat{padding:16px 16px 5px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--tm)}
.mi{display:flex;align-items:center;gap:10px;padding:6px 16px;cursor:pointer;transition:background .1s}
.mi:hover{background:var(--hover)}
.miav{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;position:relative;flex-shrink:0;box-shadow:var(--sh)}
.miav .dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid #fff}
.minf{flex:1;min-width:0}
.minf .n{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.minf .r{font-size:10px;color:var(--tm);font-family:var(--fm)}
.mlang{font-size:9px;padding:2px 6px;background:var(--bg);border:1px solid var(--br);border-radius:5px;color:var(--ts);font-family:var(--fm);font-weight:700}

/* ===== Modals ===== */
.mo{position:fixed;inset:0;background:rgba(30,42,58,.45);backdrop-filter:blur(6px);z-index:250;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 0}
.mo.on{display:flex}
.mdl{position:relative;background:#fff;border:1px solid var(--br);border-radius:18px;padding:32px;width:420px;max-width:92vw;max-height:85vh;overflow-y:auto;animation:su .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 60px rgba(0,0,0,.12)}
@keyframes su{from{opacity:0;transform:translateY(15px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.mdl h2{font-size:20px;font-weight:800;margin-bottom:3px;color:var(--tp)}
.mdl .sub{font-size:12px;color:var(--ts);margin-bottom:22px;font-weight:500}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--ts);margin-bottom:6px}
.fg input,.fg select,.fg textarea{width:100%;padding:10px 14px;background:var(--card2);border:1.5px solid var(--br);border-radius:var(--r);color:var(--tp);font-family:var(--f);font-size:13px;font-weight:600;outline:none;transition:all .15s}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ag);background:#fff}
.fg textarea{resize:vertical;min-height:60px}
.fg .err{color:var(--dn);font-size:11px;margin-top:3px;font-weight:600}
.brow{display:flex;gap:8px;margin-top:22px}
.btn{padding:10px 20px;border:none;border-radius:var(--r);font-family:var(--f);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}
.btn-p{background:var(--ac);color:#fff;flex:1;box-shadow:0 2px 8px rgba(59,130,246,.25)}
.btn-p:hover{background:var(--acd);transform:translateY(-1px)}
.btn-s{background:var(--card2);color:var(--ts);border:1px solid var(--br)}
.btn-s:hover{background:var(--hover);color:var(--tp)}

/* ===== Login screen ===== */
.lscr{position:fixed;inset:0;background:#111 url('/bg-poster.jpg') center/cover no-repeat;z-index:200;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:100vh}
.lscr.hid{display:none}
.lbg{position:absolute;inset:0;overflow:hidden}
.lbg .orb{position:absolute;border-radius:50%;filter:blur(120px);opacity:.5;animation:fl 10s ease-in-out infinite}
.lbg .orb:nth-child(1){width:500px;height:500px;background:#93c5fd;top:-15%;left:-10%}
.lbg .orb:nth-child(2){width:400px;height:400px;background:#c4b5fd;bottom:-15%;right:-10%;animation-delay:-5s}
.lbg .orb:nth-child(3){width:300px;height:300px;background:#a5f3fc;top:60%;left:60%;animation-delay:-2.5s;opacity:.35}
@keyframes fl{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-25px) scale(1.05)}66%{transform:translate(-25px,20px) scale(.95)}}
.lcard{position:relative;z-index:2;background:rgba(0,0,0,.55);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:20px 22px;width:300px;max-width:85vw;text-align:center;box-shadow:none;color:#fff}
.llogo{font-size:40px;font-weight:900;letter-spacing:-1px;margin-bottom:4px;background:linear-gradient(135deg,var(--ac),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.ltag{font-size:14px;color:var(--ts);margin-bottom:32px;font-weight:600}
.lcard .fg{text-align:left}
.lcard .btn-p{width:100%;padding:8px;font-size:13px;font-weight:800;margin-top:4px}
.lsw{margin-top:18px;font-size:12px;color:var(--ts);font-weight:600}
.lsw a{color:var(--ac);text-decoration:none;font-weight:700;cursor:pointer}
.lsw a:hover{text-decoration:underline}
.lerr{color:var(--dn);font-size:12px;margin-top:10px;font-weight:600}
.lfeat{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px;padding-top:22px;border-top:1px solid var(--br)}
.lfeat div{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ts);font-weight:600}
.lfeat .fi{width:28px;height:28px;border-radius:8px;background:var(--ag);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.ilt{position:absolute;top:16px;right:16px;z-index:10;display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--br);box-shadow:var(--sh)}
.ilt button{padding:6px 14px;border:none;background:#fff;color:var(--tm);font-family:var(--f);font-size:12px;font-weight:700;cursor:pointer;transition:all .12s}
.ilt button.on{background:var(--ac);color:#fff}
.ilt button:hover:not(.on){background:var(--hover);color:var(--tp)}

/* ===== Misc components ===== */
.invite-code{background:var(--ag);border:2px dashed var(--ac);border-radius:var(--r);padding:10px 16px;font-family:var(--fm);font-size:18px;font-weight:700;color:var(--ac);text-align:center;letter-spacing:3px;margin-top:6px;cursor:pointer;user-select:all}
.role-icon{position:absolute;top:-6px;right:-4px;font-size:13px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));z-index:2;line-height:1}
.mi .role-icon{top:-4px;right:-3px;font-size:11px}
.mg .role-icon{top:-5px;right:-3px;font-size:12px}
.msg-img{max-width:360px;max-height:300px;border-radius:8px;margin-top:4px;cursor:pointer;transition:transform .2s}
.msg-img:hover{transform:scale(1.02)}
.paste-preview{padding:6px 18px;background:var(--hover);border-bottom:1px solid var(--br);display:flex;align-items:center;gap:10px}
.paste-preview img{max-height:60px;border-radius:6px}
.paste-preview .cancel{cursor:pointer;color:var(--dn);font-weight:700;font-size:18px;margin-left:auto}
.img-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:200;display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.img-overlay img{max-width:95vw;max-height:95vh;border-radius:8px}
.conn-banner{position:fixed;top:0;left:0;right:0;z-index:300;text-align:center;padding:6px;font-size:12px;font-weight:700;transition:transform .3s;transform:translateY(-100%)}
.conn-banner.show{transform:translateY(0)}
.conn-banner.offline{background:#e74c3c;color:#fff}
.conn-banner.reconnecting{background:#f39c12;color:#fff}
.conn-banner.update{background:linear-gradient(135deg,#3b82f6,#5b4cf6);color:#fff}

/* ===== Responsive ===== */
@media(max-width:1100px){.app{grid-template-columns:230px 1fr}.mpanel{display:none}}


/* === WORLD CHAT vs ALLIANCE CHAT visual separation === */
.chat.world-mode .chdr{background:linear-gradient(135deg,#1a1040 0%,#1e1145 50%,#251555 100%);border-bottom:2px solid #7c3aed}
.chat.world-mode .chdr .cn{color:#c4b5fd}
.chat.world-mode .chdr .hash{color:#a78bfa}
.chat.world-mode .tbar{background:linear-gradient(90deg,rgba(124,58,237,.12),rgba(79,110,247,.08));border-bottom:1px solid rgba(124,58,237,.2)}
.chat.world-mode .tbar{color:#a78bfa}
.chat.world-mode .msgs{background:linear-gradient(180deg,rgba(30,17,69,.04) 0%,transparent 200px)}
.chat.world-mode .iarea{border-top:2px solid rgba(124,58,237,.2)}
.world-mode-badge{display:none;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:1px;color:#c4b5fd;background:rgba(124,58,237,.2);border:1px solid rgba(124,58,237,.3);text-transform:uppercase;white-space:nowrap}
.chat.world-mode .mob-alliance-bar{background:linear-gradient(135deg,#1a1040,#251555)!important;border-bottom:2px solid #7c3aed}
.chat.world-mode .mob-alliance-bar .mab-name{color:#c4b5fd}
.chat.world-mode .mob-alliance-bar .mab-tag{color:#a78bfa}
.chat.world-mode .world-mode-badge{display:inline-flex}




/* === World mode: pulsing alliance button === */
.mab-btn-glow{position:relative;background:linear-gradient(135deg,#7c3aed,#4f46e5)!important;color:#fff!important;border-radius:10px!important;width:40px!important;height:40px!important;box-shadow:0 0 12px rgba(124,58,237,.6),0 0 24px rgba(124,58,237,.3);animation:menuGlow 2s ease-in-out infinite}
.mab-btn-glow svg{stroke:#fff!important}
.mab-btn-glow::after{content:'';position:absolute;inset:-3px;border-radius:13px;border:2px solid rgba(124,58,237,.5);animation:menuRing 2s ease-in-out infinite}
@keyframes menuGlow{0%,100%{box-shadow:0 0 12px rgba(124,58,237,.5),0 0 24px rgba(124,58,237,.2)}50%{box-shadow:0 0 20px rgba(124,58,237,.8),0 0 40px rgba(124,58,237,.4)}}
@keyframes menuRing{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.15)}}

@media(max-width:768px){
  .app{padding-top:0}
  .app{display:flex;flex-direction:column;height:100vh;height:100dvh;grid-template-columns:none}
  .gbar{display:none}
  .apanel{display:none;position:fixed;top:env(safe-area-inset-top,0px);left:0;bottom:50px;width:85vw;max-width:320px;z-index:90;box-shadow:4px 0 20px rgba(0,0,0,.2)}
  .apanel.mob-show{display:flex}
  .mpanel{display:none;position:fixed;top:0;right:0;bottom:50px;width:85vw;max-width:300px;z-index:90;box-shadow:-4px 0 20px rgba(0,0,0,.2)}
  .mpanel.mob-show{display:flex}
  .mob-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:80}
  .mob-overlay.mob-show{display:block}
  .chat{flex:1;min-height:0;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow:hidden}

  .chdr{padding:8px 12px;min-height:44px;gap:6px}
  .mob-alliance-bar + .chdr{padding-top:4px}
  .chdr .cn{font-size:13px}
  .chdr .cd{display:none}
  .chdr .ha{gap:1px;flex-shrink:0}
  .chdr .ha .mob-hide{display:none}
  .chdr .ha .cbtn{width:26px;height:26px;min-width:26px}
  .chdr .ha .cbtn svg{width:15px;height:15px}
  .tbar{padding:4px 12px;font-size:10px}
  .msgs{padding:10px 12px}
  .mg{gap:8px;padding:4px 2px}
  .mav{width:36px;height:36px;font-size:14px}
  .ma{font-size:12px}
  .mx{font-size:12px}
  .iarea{position:fixed;bottom:calc(50px + env(safe-area-inset-bottom,0px));left:0;right:0;padding:4px 8px 6px;z-index:15;background:var(--bg);box-shadow:0 -2px 10px rgba(0,0,0,.1)}
  .msgs{flex:1;overflow-y:auto}
  .ibox{border-radius:8px}
  .ibox textarea{font-size:16px;padding:8px 4px}
  .ibox .ibtns button{width:28px;height:28px;font-size:14px}
  .sendbtn{width:32px;height:32px;font-size:13px}
  .paste-preview{padding:4px 12px}
  .paste-preview img{max-height:40px}
  .typing{padding:2px 12px;font-size:10px}
  .msg-img{max-width:240px;max-height:200px}
  .mob-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(50px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--card);border-top:1px solid var(--br);z-index:70;align-items:center}
  .mob-nav button{flex:1;height:50px;border:none;background:none;font-size:20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ts);position:relative}
  .mob-nav button.active{color:var(--ac)}
  .mob-nav button span{font-size:9px;font-weight:600}
  .mdl{padding:20px;width:95vw;max-height:90vh;overflow-y:auto;overflow-x:hidden}
  .lcard{padding:14px 12px;padding-top:calc(14px + env(safe-area-inset-top,0px));width:70vw;max-width:260px;background:rgba(0,0,0,.55)!important;border-radius:12px}
  .llogo{font-size:30px}
  .lfeat{grid-template-columns:1fr 1fr;gap:8px}
  .mob-alliance-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card2);border-bottom:1px solid var(--br)}
  .mob-alliance-bar .mab-name{font-size:13px;font-weight:700;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mob-alliance-bar .mab-btn{width:40px;height:40px;border:none;background:linear-gradient(135deg,#3b82f6,#2563eb);font-size:16px;cursor:pointer;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 10px rgba(59,130,246,.35);transition:transform .15s,box-shadow .15s}
  .mob-alliance-bar .mab-btn:active{transform:scale(.9)}
  .mob-alliance-bar .mab-btn svg{stroke:#fff}
  .mob-alliance-bar .mab-btn:hover{box-shadow:0 4px 16px rgba(59,130,246,.5)}
}

@media(min-width:769px){
  .mention-list{position:absolute;bottom:56px}
  .mob-nav{display:none}
  .mob-overlay{display:none!important}
  .mob-alliance-bar{display:none}
}

/* ===== RTL ===== */
[dir="rtl"] .app{direction:rtl}
[dir="rtl"] .apanel{border-right:none;border-left:1px solid var(--br)}
[dir="rtl"] .mpanel{border-left:none;border-right:1px solid var(--br)}
[dir="rtl"] .chitem .lock{margin-left:0;margin-right:auto}
[dir="rtl"] .chdr .ha{margin-left:0;margin-right:auto}
[dir="rtl"] .mg,[dir="rtl"] .mh{direction:rtl}
[dir="rtl"] .mx{direction:rtl;text-align:right}
[dir="rtl"] .orig{border-left:none;border-right:2px solid var(--a2)}
[dir="rtl"] .ibox,[dir="rtl"] .mi{direction:rtl}
[dir="rtl"] .mlang{margin-left:0;margin-right:auto}
[dir="rtl"] .uinfo,[dir="rtl"] .minf,[dir="rtl"] .fg,[dir="rtl"] .fg label,[dir="rtl"] .lcard .fg{text-align:right}
[dir="rtl"] .ilt{right:auto;left:14px}
.msg-actions{display:none;margin-left:auto;gap:2px}
.mg:hover .msg-actions{display:flex}
.msg-act-btn{background:none;border:none;cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px;opacity:.5;transition:opacity .15s}
.msg-act-btn:hover{opacity:1;background:var(--hover)}
.edited-mark{font-size:9px;color:var(--tm);font-style:italic}
.emoji-picker{display:none;position:absolute;bottom:52px;left:8px;background:var(--card);border:1px solid var(--br);border-radius:var(--rl);box-shadow:var(--sh2);padding:8px;width:280px;z-index:50;flex-wrap:wrap;gap:2px}
.emoji-picker.on{display:flex}
.emoji-picker button{width:34px;height:34px;border:none;background:transparent;font-size:20px;cursor:pointer;border-radius:var(--r);display:flex;align-items:center;justify-content:center;transition:background .1s}
.emoji-picker button:hover{background:var(--hover)}
.unread-badge{background:var(--dn);color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-left:auto;padding:0 4px;flex-shrink:0}
.chitem .unread-badge{margin-left:auto}


/* ===== Server Selection Screen ===== */
.sscr{display:flex;flex-direction:column;align-items:center;height:100vh;background:var(--bg);padding:20px;overflow:hidden}
.ss-head{text-align:center;padding:32px 0 16px;width:100%;max-width:560px}
.ss-logo{font-size:32px;font-weight:900;color:var(--fg)}
.ss-sub{font-size:14px;color:var(--tm);margin-top:6px;font-weight:600}
.ss-search{margin-top:16px}
.ss-search input{width:100%;padding:12px 16px;border-radius:12px;border:2px solid var(--br);background:var(--card);color:var(--fg);font-size:15px;font-weight:600;font-family:var(--f);outline:none;transition:border .2s}
.ss-search input:focus{border-color:var(--ac)}
.ss-list{width:100%;max-width:560px;overflow-y:auto;flex:1;padding-bottom:32px;min-height:0}

/* Game picker — premium */
.game-grid{
  width:100%;max-width:480px;
  display:flex;flex-direction:column;gap:16px;
  padding:24px 0 40px;overflow-y:auto;flex:1;min-height:0
}
.game-card{
  border-radius:20px;cursor:pointer;overflow:hidden;
  background:var(--card);border:1px solid var(--br);
  transition:all .25s ease;position:relative
}
.game-card:hover{
  transform:translateY(-4px);
  border-color:rgba(59,130,246,.4);
  box-shadow:0 12px 40px rgba(59,130,246,.2),0 0 0 1px rgba(59,130,246,.15)
}
.game-card:active{transform:translateY(-1px);transition:all .08s}
.game-card-banner{
  height:120px;background-size:cover;background-position:center;
  position:relative;overflow:hidden
}
.game-card-banner::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.6) 100%)
}
.game-card-glow{
  position:absolute;top:-50%;left:-50%;width:200%;height:200%;
  background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 60%);
  opacity:0;transition:opacity .3s
}
.game-card:hover .game-card-glow{opacity:1}
.game-card-info{
  display:flex;align-items:center;gap:14px;
  padding:16px 20px
}
.game-card-emoji{
  font-size:32px;flex-shrink:0;
  width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(59,130,246,.08);border-radius:14px
}
.game-card-name{font-size:18px;font-weight:900;color:var(--fg);letter-spacing:-.02em}
.game-card-meta{font-size:13px;color:var(--tm);font-weight:600;margin-top:3px;text-transform:uppercase;letter-spacing:.5px}

@media(max-width:768px){
  .game-grid{max-width:100%;padding:16px 0 32px}
  .game-card-banner{height:100px}
  .game-card-info{padding:12px 16px;gap:12px}
  .game-card-emoji{width:44px;height:44px;font-size:26px;border-radius:12px}
  .game-card-name{font-size:16px}
  .game-card-meta{font-size:11px}
}


.srv-card{display:flex;align-items:center;gap:14px;padding:12px 16px;margin:4px 0;border-radius:12px;cursor:pointer;transition:all .15s;border:2px solid transparent;background:var(--card)}
.srv-card:hover{border-color:var(--ac);background:var(--card2);transform:translateX(4px)}
.srv-card.srv-has{border-color:rgba(59,130,246,.25);background:rgba(59,130,246,.04)}
.srv-card.srv-has:hover{border-color:var(--ac);background:rgba(59,130,246,.1)}
.srv-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--acd),var(--ac));display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#fff;flex-shrink:0}
.srv-card.srv-has .srv-icon{background:linear-gradient(135deg,#7c3aed,#3b82f6)}
.srv-body{flex:1;min-width:0}
.srv-title{font-size:14px;font-weight:700;color:var(--fg)}
.srv-stat{font-size:11px;font-weight:700;color:var(--ac);margin-top:2px}
.srv-badge{background:var(--ac);color:#fff;font-size:12px;font-weight:800;padding:4px 10px;border-radius:10px;flex-shrink:0}
.srv-none{padding:40px;text-align:center;color:var(--tm);font-size:14px;font-weight:600}

/* ===== Alliance List ===== */
.al-list{flex:1;overflow-y:auto;padding:4px 0;border-bottom:1px solid var(--br)}
.al-section{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--tm);padding:12px 16px 4px;letter-spacing:1px}
.al-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .15s;border-left:3px solid transparent}
.al-item:hover{background:var(--card2)}
.al-item.al-active{background:rgba(59,130,246,.08);border-left-color:var(--ac)}
.al-item.al-locked{opacity:.7}
.al-item.al-locked:hover{opacity:1}
.al-tag{font-family:var(--fm);font-size:12px;font-weight:800;color:var(--ac);white-space:nowrap}
.al-info{flex:1;min-width:0}
.al-name{font-size:13px;font-weight:700;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al-meta{font-size:11px;color:var(--tm);font-weight:600}
.al-empty{padding:32px 16px;text-align:center;color:var(--tm);font-size:13px;font-weight:600}

/* apanel-head with change server button */
.apanel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--br)}
.apanel-head h2{margin:0;font-size:15px}

/* ===== Permissions Grid ===== */
.perms-grid{display:flex;flex-direction:column;gap:6px}
.perm-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--card2);border-radius:8px}
.perm-label{font-size:12px;font-weight:600;color:var(--fg);flex:1}
.perm-row select{padding:4px 8px;border-radius:6px;border:1px solid var(--br);background:var(--card);color:var(--fg);font-size:12px;font-weight:700;font-family:var(--f);cursor:pointer;min-width:110px}

/* ===== C4 Panel ===== */
#c4Panel{flex-direction:column}
#c4Panel.rpanel{display:none}
#c4Msgs{font-size:13px}
#c4Members .c4-mem{display:flex;align-items:center;gap:4px;padding:2px 0;font-size:11px;font-weight:600}
#c4Members .c4-av{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;color:#fff}

.rpanel{flex:1;overflow-y:auto;min-height:0}

/* Access request notification */
.access-notif{position:fixed;top:60px;right:20px;z-index:300;background:var(--ac);color:#fff;padding:12px 20px;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.2);animation:slideIn .3s}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

/* Settings gear badge */
.settings-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:9px;font-weight:900;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}

/* Channel context menu */
.ch-ctx{position:fixed;z-index:300;background:var(--card);border:1px solid var(--br);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);min-width:160px;padding:4px;overflow:hidden}
.ch-ctx div{padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;border-radius:6px;color:var(--fg)}
.ch-ctx div:hover{background:var(--card2)}
.ch-ctx .ctx-danger{color:#ef4444}
.ch-ctx .ctx-danger:hover{background:rgba(239,68,68,.1)}

/* Mobile: Server picker */
@media(max-width:768px){
  .sscr{padding:10px;padding-top:calc(10px + env(safe-area-inset-top,0px))}
  .ss-head{padding:20px 0 12px}
  .ss-logo{font-size:24px}
  .ss-search input{font-size:14px;padding:10px 14px}
  .ss-list{max-width:100%}
  .srv-card{padding:10px 12px;gap:10px}
  .srv-icon{width:36px;height:36px;font-size:14px}
  .srv-title{font-size:13px}

  /* Alliance list in sidebar */
  .al-list{padding:2px 0}
  .al-item{padding:8px 12px;gap:8px}
  .al-tag{font-size:11px}
  .al-name{font-size:12px}

  /* Channel context menu */
  .ch-ctx{min-width:140px}
  .ch-ctx div{padding:10px 14px;font-size:14px}

  /* Permissions grid */
  .perm-row{flex-direction:column;gap:4px;padding:8px 10px}
  .perm-row select{width:100%}

  /* upanel at bottom of sidebar */
  .upanel{padding:6px 8px}

  /* C4 panel */
  #c4Panel{font-size:12px}
  #c4Inp{font-size:14px}

  /* Password modal */
  #joinPwM .mdl{width:90vw}

  /* Hide desktop logout from sidebar bottom, shown in mobile nav */
  .apanel .upanel .cbtn:last-child{display:inline-block}
}

/* Mobile top spacer for iOS status bar */
.mob-spacer{display:none}
@media(max-width:768px){
  .mob-spacer{display:none}
}

/* World chat hint */
.world-hint{text-align:center;padding:12px 16px;margin:8px 16px;background:linear-gradient(135deg,#4f6ef7,#7c3aed);border-radius:12px;color:#fff;box-shadow:0 4px 16px rgba(79,110,247,.2);display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.wh-icon{font-size:24px;flex-shrink:0}
.wh-title{font-size:14px;font-weight:800;color:#fff}
.wh-desc{font-size:12px;color:rgba(255,255,255,.75);line-height:1.4;text-align:left}

/* Alliance avatar in list */
.al-avatar{background-size:cover;background-position:center;color:transparent;width:40px;height:40px;border-radius:10px;flex-shrink:0}

/* Avatar images in circles */
.mav,.miav{background-size:cover;background-position:center}

/* Login video background */
.login-video{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;z-index:0}
.ilt{z-index:3}

/* Login card dark theme */
.lcard input[type="text"],.lcard input[type="password"],.lcard input[type="email"]{background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:10px}
.lcard input::placeholder{color:rgba(255,255,255,.4)}
.lcard label{color:#fff}
.lcard .llogo{color:#fff}
.lcard .lsub{color:#fff}
.lcard .lsw{color:#fff}
.lcard .lsw a{color:var(--ac)}
.lcard .lfeat span{color:#fff}
.lcard a{color:#7cacff}

@media(max-width:768px){
  .llogo{font-size:20px!important;margin-bottom:0}
  .lsub{font-size:10px!important;margin-bottom:6px}
  .lcard .fg{margin-bottom:3px}
  .lcard .fg label{font-size:8px!important}
  .lcard .fg input{padding:7px 8px!important;font-size:12px!important}
  .lcard .btn-p{padding:8px!important;font-size:12px!important;margin-top:2px}
  .lcard .lfeat{margin-top:6px;gap:2px}
  .lcard .lfeat span{font-size:9px!important}
  .lcard .lfeat .fi{font-size:12px}
  .lcard hr{margin:6px 0}
  .lcard .lsw{font-size:10px!important}
  .lcard a{font-size:10px}
}

.lcard .llogo,.lcard .lsub,.lcard label,.lcard .lsw,.lcard a,.lcard .lfeat span{text-shadow:0 2px 10px rgba(0,0,0,1),0 0 20px rgba(0,0,0,.8)}
.lcard .btn-p{box-shadow:0 4px 16px rgba(0,0,0,.4)}


/* COMPACT LOGIN */
.lcard .llogo{font-size:24px!important;margin-bottom:0!important}
.lcard .lsub{font-size:11px!important;margin-bottom:8px!important}
.lcard .fg{margin-bottom:4px!important}
.lcard .fg label{font-size:9px!important;margin-bottom:1px!important;text-transform:uppercase;letter-spacing:.5px}
.lcard .fg input{padding:8px 10px!important;font-size:13px!important}
.lcard hr{margin:8px 0!important}
.lcard .lfeat{gap:2px!important;margin-top:6px!important}
.lcard .lfeat span{font-size:10px!important}
.lcard .lfeat .fi{font-size:14px!important}
.lcard .lsw{font-size:11px!important;margin-top:2px!important}
.lcard .ilt{margin-bottom:6px!important}
.lcard .lerr{font-size:11px!important;margin-bottom:2px!important}


/* ===== Message Grouping ===== */
.mg-compact{padding:1px 8px 1px 8px}
.mg-compact:hover{background:rgba(59,130,246,.04)}
.mav-spacer{width:40px;flex-shrink:0}
.mt-inline{font-size:10px;color:var(--tm);font-family:var(--fm);font-weight:500;margin-left:8px;opacity:0;transition:opacity .15s}
.mg-compact:hover .mt-inline{opacity:1}

/* Smaller avatars */
.mav{width:40px;height:40px;font-size:16px}

/* ===== Date Separators ===== */
.date-sep{display:flex;align-items:center;gap:12px;padding:16px 8px 8px;color:var(--tm);font-size:11px;font-weight:700}
.date-sep::before,.date-sep::after{content:'';flex:1;height:1px;background:var(--br)}
.date-sep span{white-space:nowrap;padding:3px 12px;background:var(--card);border:1px solid var(--br);border-radius:20px;font-size:11px;letter-spacing:.3px}

/* ===== Empty State ===== */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:60px 20px;gap:12px}
.empty-icon{font-size:48px;opacity:.4}
.empty-text{font-size:14px;color:var(--tm);font-weight:600}

/* ===== Mobile grouping ===== */
@media(max-width:768px){
  .mav{width:36px;height:36px;font-size:14px}
  .mav-spacer{width:36px}
  .date-sep{padding:12px 4px 6px}
  .date-sep span{font-size:10px;padding:2px 10px}
}

/* Mobile nav unread badge */
.mob-badge{position:absolute;top:2px;right:calc(50% - 18px);background:var(--dn);color:#fff;font-size:9px;font-weight:900;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}

/* ===== Calendar ===== */
.cal-head{display:flex;align-items:center;gap:4px;padding:10px 12px;border-bottom:1px solid var(--br);background:var(--card2)}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 8px 0}
.cal-dh{text-align:center;font-size:10px;font-weight:800;color:var(--tm);text-transform:uppercase;padding:6px 0}
.cal-cells{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px 8px;gap:2px}
.cal-cell{text-align:center;padding:6px 2px 4px;border-radius:8px;cursor:pointer;position:relative;min-height:36px;transition:background .12s}
.cal-cell:hover{background:var(--hover)}
.cal-cell.cal-empty{cursor:default}
.cal-cell.cal-today .cal-num{background:var(--ac);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.cal-cell.cal-has{font-weight:700}
.cal-num{font-size:12px;font-weight:600;color:var(--tp)}
.cal-dots{display:flex;justify-content:center;gap:2px;margin-top:2px}
.cal-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.cal-events{overflow-y:auto;flex:1;padding:4px 0}
.cal-section{padding:10px 14px 4px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--tm)}
.cal-ev{padding:8px 14px;margin:2px 8px;border-left:3px solid var(--ac);border-radius:0 8px 8px 0;cursor:pointer;transition:background .12s;background:var(--card)}
.cal-ev:hover{background:var(--hover)}
.cal-ev-title{font-size:13px;font-weight:700;color:var(--tp)}
.cal-ev-time{font-size:11px;color:var(--tm);font-weight:600;margin-top:2px}
.cal-empty-msg{padding:32px 16px;text-align:center;color:var(--tm);font-size:13px;font-weight:600}
#calendarPanel{display:flex;flex-direction:column}

/* ===== DARK EDGES + GLOW ACCENTS ===== */
/* Sidebar panels: dark gaming aesthetic */
/* Chat center: stays light */

/* Left panel - dark */
.apanel{background:#1a1d25;border-right:1px solid #2a2e3a;color:#fff}
.apanel-head{background:#14161d;border-bottom:1px solid #2a2e3a}
.apanel-head h2{color:#e2e6ec}
.alliance-actions .abtn{background:#22262f;border-color:#333a48;color:#f0f4fa;box-shadow:none}
.alliance-actions .abtn:hover{border-color:var(--ac);color:var(--ac);background:rgba(59,130,246,.1);box-shadow:0 0 12px rgba(59,130,246,.15)}

/* Channel list dark */
.chlist{background:#1a1d25}
.chcat{color:#d0d8e4}
.chcat .plus:hover{color:var(--ac);background:rgba(59,130,246,.15)}
.chitem{color:#eef0f4}
.chitem:hover{background:#22262f;color:#fff}
.chitem.on{background:linear-gradient(135deg,#3b6ef6,#5b4cf6);color:#fff;box-shadow:0 2px 12px rgba(59,130,246,.3),0 0 20px rgba(59,130,246,.1)}
.chitem .ci{opacity:.5}
.chitem.on .ci{opacity:1}
.chitem .lock{background:#2a2e3a;color:#dce2ec}
.chitem.on .lock{background:rgba(255,255,255,.2);color:rgba(255,255,255,.8)}
.chitem .unread-badge{box-shadow:0 0 8px rgba(239,68,68,.4)}

/* User panel dark */
.upanel{background:#14161d;border-top:1px solid #2a2e3a}
.upanel .uinfo .n{color:#e2e6ec}
.upanel .uinfo .t{color:#d0d8e4}
.upanel .cbtn{color:#dce2ec}
.upanel .cbtn:hover{background:#22262f;color:var(--ac)}
.uav{box-shadow:0 0 12px rgba(59,130,246,.2)}

/* Alliance list dark */
.al-list{background:#1a1d25;border-bottom:1px solid #2a2e3a}
.al-section{color:#b0b8c8}
.al-item{border-left-color:transparent}
.al-item:hover{background:#22262f}
.al-item.al-active{background:rgba(59,130,246,.1);border-left-color:var(--ac)}
.al-name{color:#fff}
.al-meta{color:#d0d8e4}
.al-tag{color:var(--acl)}
.al-empty{color:#b0b8c8}

/* Right panel - dark */
.mpanel{background:#1a1d25;border-left:1px solid #2a2e3a}
.ptabs{background:#14161d;border-bottom:1px solid #2a2e3a}
.ptab{color:#d0d8e4;border-bottom-color:transparent}
.ptab:hover{color:#eef0f4}
.ptab.on{color:var(--acl);border-bottom-color:var(--ac);background:#1a1d25;box-shadow:0 2px 8px rgba(59,130,246,.1)}
.pcontent{background:#1a1d25}
.mcat{color:#b0b8c8}
.mi:hover{background:#22262f}
.mi .minf .n{color:#fff}
.mi .minf .r{color:#d0d8e4}
.mlang{background:#22262f;border-color:#333a48;color:#dce2ec}
.miav{box-shadow:0 0 8px rgba(0,0,0,.3)}

/* Calendar panel dark */
#calendarPanel{background:#1a1d25}
.cal-head{background:#14161d;border-bottom:1px solid #2a2e3a}
.cal-head .cbtn{color:#dce2ec}
.cal-head .cbtn:hover{color:var(--ac);background:#22262f}
#calTitle{color:#e2e6ec}
.cal-dh{color:#b0b8c8}
.cal-num{color:#eef0f4}
.cal-cell:hover{background:#22262f}
.cal-cell.cal-today .cal-num{box-shadow:0 0 10px rgba(59,130,246,.4)}
.cal-section{color:#b0b8c8}
.cal-ev{background:#22262f;border-left-width:3px}
.cal-ev:hover{background:#2a2e3a}
.cal-ev-title{color:#fff}
.cal-ev-time{color:#d0d8e4}
.cal-empty-msg{color:#b0b8c8}

/* Chat header - dark with glow */
.chdr{background:linear-gradient(180deg,#14161d 0%,#1a1d25 100%);border-bottom:1px solid #2a2e3a;box-shadow:none}
.chdr .cn{color:#e2e6ec}
.chdr .hash{color:var(--acl);text-shadow:0 0 8px rgba(59,130,246,.4)}
.chdr .sep{background:#2a2e3a}
.chdr .cd{color:#dce2ec}
.chdr .ha .cbtn{color:#d0d8e4}
.chdr .ha .cbtn:hover{background:#22262f;color:var(--ac)}

/* Translation bar - subtle dark */
.tbar{background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(139,92,246,.05));border-bottom:1px solid rgba(59,130,246,.1)}
.tbar .ls{background:#22262f;border-color:#3b6ef6;color:var(--acl)}

/* Chat area - STAYS LIGHT but with subtle warm tone */
.chat{background:#f0f2f5}
.msgs{background:#f0f2f5}

/* Input area - light with dark border glow */
.iarea{background:#f0f2f5}
.ibox{background:#fff;border:2px solid #d0d9e6;box-shadow:0 0 0 1px rgba(59,130,246,.05)}
.ibox:focus-within{border-color:var(--ac);box-shadow:0 0 0 4px rgba(59,130,246,.1),0 0 20px rgba(59,130,246,.08)}
.sendbtn{box-shadow:0 2px 12px rgba(59,130,246,.35),0 0 20px rgba(59,130,246,.1)}
.sendbtn:hover{box-shadow:0 2px 16px rgba(59,130,246,.5),0 0 30px rgba(59,130,246,.15)}

/* Message hover - subtle */
.mg:hover{background:rgba(59,130,246,.03)}

/* World chat hint - neon glow */
.world-hint{box-shadow:0 4px 20px rgba(79,110,247,.25),0 0 40px rgba(79,110,247,.08)}

/* Mobile bottom nav - dark */
@media(max-width:768px){
  .mob-nav{background:#14161d;border-top:1px solid #2a2e3a}
  .mob-nav button{color:#d0d8e4}
  .mob-nav button.active{color:var(--acl);text-shadow:0 0 8px rgba(59,130,246,.4)}
  .mob-nav button span{color:inherit}
  .mob-alliance-bar{background:#1a1d25;border-bottom:1px solid #2a2e3a}
  .mob-alliance-bar .mab-name{color:#fff}
  .mob-alliance-bar .mab-btn{color:#fff}
  .mob-alliance-bar .mab-btn:hover{box-shadow:0 4px 16px rgba(59,130,246,.5)}

  /* On mobile the panels overlay - keep dark */
  .apanel{background:#1a1d25}
  .mpanel{background:#1a1d25}
}

/* Server selection - dark */
.sscr{background:#12141a}
.ss-logo{color:#e2e6ec}
.ss-sub{color:#d0d8e4}
.ss-search input{background:#1a1d25;border-color:#2a2e3a;color:#fff}
.ss-search input:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(59,130,246,.15),0 0 20px rgba(59,130,246,.08)}
.ss-search input::placeholder{color:#b0b8c8}
.srv-card{background:#1a1d25;border-color:#2a2e3a}
.srv-card:hover{border-color:var(--ac);background:#22262f;box-shadow:0 0 20px rgba(59,130,246,.1)}
.srv-card.srv-has{border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.06)}
.srv-card.srv-has:hover{border-color:var(--ac);background:rgba(59,130,246,.12);box-shadow:0 0 24px rgba(59,130,246,.15)}
.srv-title{color:#fff}
.srv-stat{color:var(--acl)}
.srv-icon{box-shadow:0 0 16px rgba(59,130,246,.25)}
.srv-card.srv-has .srv-icon{box-shadow:0 0 16px rgba(124,58,237,.3)}

/* Modals - dark glass */
.mo{background:rgba(10,12,18,.7);backdrop-filter:blur(8px)}
.mdl{background:#1e2128;border:1px solid #2a2e3a;color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.4),0 0 40px rgba(59,130,246,.05)}
.mdl h2{color:#e8ecf2}
.mdl .sub{color:#dce2ec}
.fg label{color:#eef0f4}
.fg input,.fg select,.fg textarea{background:#14161d;border-color:#2a2e3a;color:#e2e6ec}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(59,130,246,.15);background:#1a1d25}
.fg input::placeholder,.fg textarea::placeholder{color:#b0b8c8}
.btn-s{background:#22262f;color:#eef0f4;border-color:#333a48}
.btn-s:hover{background:#2a2e3a;color:#fff}
.btn-p{box-shadow:0 2px 12px rgba(59,130,246,.3)}
.btn-p:hover{box-shadow:0 4px 20px rgba(59,130,246,.4)}
.lerr{color:#ef4444}
.invite-code{background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.3);color:var(--acl)}

/* Context menu dark */
.ch-ctx{background:#1e2128;border-color:#2a2e3a;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.ch-ctx div{color:#fff}
.ch-ctx div:hover{background:#22262f}
.ch-ctx .ctx-danger{color:#ef4444}
.ch-ctx .ctx-danger:hover{background:rgba(239,68,68,.1)}

/* Emoji picker dark */
.emoji-picker{background:#1e2128;border-color:#2a2e3a;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.emoji-picker button:hover{background:#22262f}

/* Permissions dark */
.perm-row{background:#22262f}
.perm-label{color:#fff}
.perm-row select{background:#14161d;border-color:#2a2e3a;color:#fff}

/* Connection banner glow */
.conn-banner.offline{box-shadow:0 4px 20px rgba(231,76,60,.3)}

/* Typing area */
.typing{color:#d0d8e4}

/* Scrollbar dark */
::-webkit-scrollbar-thumb{background:#333a48;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#444d5e}

/* User card modal dark */
#userCardM .mdl{background:#1e2128}

/* Glow effects on interactive elements */
.abtn:hover,.cbtn:hover{transition:all .2s}
.al-item.al-active{box-shadow:inset 0 0 20px rgba(59,130,246,.05)}

/* ===== BRIGHT BUTTONS ON DARK ===== */

/* --- cbtn: icon buttons (⚙ ⇆ ⏏ 🔗 ℹ etc) on dark panels --- */
.apanel .cbtn,
.apanel-head .cbtn,
.upanel .cbtn,
.chdr .ha .cbtn{
  width:36px;height:36px;font-size:18px;color:#8a9bb4;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)
}
.apanel .cbtn:hover,
.apanel-head .cbtn:hover,
.upanel .cbtn:hover{
  color:#fff;background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.4);box-shadow:0 0 12px rgba(59,130,246,.25)
}
.chdr .ha .cbtn:hover{
  color:#fff;background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.4);box-shadow:0 0 12px rgba(59,130,246,.25)
}

/* Logout button - red tint */
.apanel-head .cbtn[style*="dn"],
.upanel .cbtn:last-child{
  color:#e06060
}
.apanel-head .cbtn[style*="dn"]:hover,
.upanel .cbtn:last-child:hover{
  color:#fff;background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.4);box-shadow:0 0 12px rgba(239,68,68,.25)
}

/* --- abtn: action buttons (+ Создать, 🔗 Войти) --- */
.alliance-actions .abtn{
  padding:10px;font-size:13px;font-weight:800;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.3);color:var(--acl);border-radius:10px;letter-spacing:.3px
}
.alliance-actions .abtn:hover{
  background:rgba(59,130,246,.25);border-color:var(--ac);color:#fff;box-shadow:0 0 16px rgba(59,130,246,.2);transform:translateY(-1px)
}

/* --- Server label clickable --- */
.apanel-head h2{
  font-size:16px;font-weight:900;letter-spacing:.5px
}
.apanel-head h2[onclick]:hover{
  color:var(--acl);text-shadow:0 0 12px rgba(59,130,246,.3);cursor:pointer
}

/* --- User panel --- */
.upanel{padding:14px 16px;gap:12px}
.uav{width:40px;height:40px;font-size:16px;box-shadow:0 0 16px rgba(59,130,246,.2)}
.uinfo .n{font-size:14px;color:#e2e6ec}
.uinfo .t{font-size:11px}

/* --- Chat header buttons bigger --- */
.chdr .ha{gap:4px}
.chdr .ha .cbtn{
  width:36px;height:36px;font-size:17px;color:#7a8a9e
}

/* --- Right panel tabs bigger --- */
.ptabs{min-height:44px}
.ptab{padding:12px 8px;font-size:12px;font-weight:800}

/* --- Channel + button --- */
.chcat .plus{
  font-size:18px;width:24px;height:24px;color:#6a7a90
}
.chcat .plus:hover{
  color:var(--acl);background:rgba(59,130,246,.2);box-shadow:0 0 8px rgba(59,130,246,.2)
}

/* --- Send button bigger --- */
.sendbtn{
  width:40px;height:40px;font-size:17px;border-radius:10px
}

/* --- Input buttons (📎 😊) --- */
.ibox .ibtns button{
  width:36px;height:36px;font-size:19px;color:#6a7a90
}
.ibox .ibtns button:hover{
  color:var(--ac);background:rgba(59,130,246,.1)
}

/* --- Modal buttons --- */
.btn{
  padding:12px 22px;font-size:14px;font-weight:800;border-radius:10px
}
.btn-p{
  background:linear-gradient(135deg,#3b6ef6,#5b4cf6);box-shadow:0 4px 16px rgba(59,130,246,.35)
}
.btn-p:hover{
  background:linear-gradient(135deg,#4b7eff,#6b5cff);box-shadow:0 4px 24px rgba(59,130,246,.5);transform:translateY(-1px)
}
.btn-s{
  padding:12px 22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:#f0f4fa
}
.btn-s:hover{
  background:rgba(255,255,255,.12);color:#e2e6ec;border-color:rgba(255,255,255,.25)
}

/* --- Mobile nav buttons bigger --- */
@media(max-width:768px){
  .mob-nav button{font-size:22px}
  .mob-nav button span{font-size:10px;font-weight:700}
  .mob-alliance-bar .mab-btn{width:36px;height:36px;font-size:18px}
  .apanel .cbtn,.upanel .cbtn{width:34px;height:34px;font-size:16px}
  .chdr .ha .cbtn{width:34px;height:34px;font-size:16px}
  .alliance-actions .abtn{padding:9px;font-size:12px}
}

/* ===== BRIGHT BUTTONS ON DARK ===== */

/* Icon buttons (cbtn) - bigger, brighter */
.apanel .cbtn, .upanel .cbtn, .chdr .ha .cbtn, .cal-head .cbtn {
  width:36px;height:36px;font-size:18px;
  color:#9aa8b8;
  background:#22262f;
  border:1px solid #333a48;
  border-radius:10px;
  transition:all .2s
}
.apanel .cbtn:hover, .upanel .cbtn:hover, .chdr .ha .cbtn:hover, .cal-head .cbtn:hover {
  color:#fff;
  background:var(--ac);
  border-color:var(--ac);
  box-shadow:0 0 14px rgba(59,130,246,.35)
}
/* Logout button stays red-ish */
.apanel .cbtn[title="Logout"], .upanel .cbtn:last-child {
  color:#ef6b6b
}
.apanel .cbtn[title="Logout"]:hover, .upanel .cbtn:last-child:hover {
  background:#ef4444;color:#fff;border-color:#ef4444;
  box-shadow:0 0 14px rgba(239,68,68,.35)
}

/* Header row: spread buttons, more space */
.apanel-head {
  padding:16px 16px 12px;
  gap:8px
}
.apanel-head h2 {
  font-size:16px;
  flex:1
}

/* Create alliance button - glow accent */
.alliance-actions .abtn {
  padding:10px;
  font-size:13px;
  font-weight:800;
  background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(139,92,246,.1));
  border:1px solid rgba(59,130,246,.35);
  color:var(--acl);
  border-radius:10px
}
.alliance-actions .abtn:hover {
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  color:#fff;
  border-color:transparent;
  box-shadow:0 0 20px rgba(59,130,246,.3)
}

/* User panel bottom - bigger, clearer */
.upanel {
  padding:14px 12px;
  gap:8px
}
.uav {
  width:40px;height:40px;
  box-shadow:0 0 12px rgba(59,130,246,.25)
}

/* Chat header action buttons - row with spacing */
.chdr .ha {
  gap:6px
}

/* Modal buttons - brighter */
.mdl .btn-p {
  font-size:14px;
  padding:12px 24px;
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  box-shadow:0 4px 16px rgba(59,130,246,.35)
}
.mdl .btn-p:hover {
  box-shadow:0 4px 24px rgba(59,130,246,.5);
  transform:translateY(-2px)
}
.mdl .btn-s {
  font-size:14px;
  padding:12px 24px;
  background:#2a2e3a;
  border-color:#3a4050;
  color:#fff
}
.mdl .btn-s:hover {
  background:#333a48;
  color:#fff
}

/* Right panel tabs - bigger text */
.ptabs {
  gap:0
}
.ptab {
  padding:12px 8px;
  font-size:12px;
  letter-spacing:.8px
}

/* Send button in chat - bigger glow */
.sendbtn {
  width:40px;height:40px;font-size:17px;
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  box-shadow:0 2px 16px rgba(59,130,246,.4),0 0 24px rgba(59,130,246,.12)
}
.sendbtn:hover {
  box-shadow:0 2px 20px rgba(59,130,246,.6),0 0 32px rgba(59,130,246,.2);
  transform:scale(1.08)
}

/* Input attach/emoji buttons - brighter */
.ibox .ibtns button {
  color:#dce2ec;
  font-size:18px;
  width:36px;height:36px
}
.ibox .ibtns button:hover {
  color:var(--ac);
  background:rgba(59,130,246,.08)
}

/* Server picker cards - buttons/badges bigger */
.srv-badge {
  font-size:13px;
  padding:6px 14px;
  border-radius:12px;
  box-shadow:0 0 10px rgba(59,130,246,.3)
}

/* Mobile nav buttons bigger */
@media(max-width:768px) {
  .mob-nav button {
    font-size:22px
  }
  .mob-nav button span {
    font-size:10px
  }
  .mob-alliance-bar .mab-btn {
    width:36px;height:36px;font-size:18px;
    color:#9aa8b8
  }
}

/* Channel list items - slightly bigger */
.chitem {
  padding:9px 12px;
  font-size:14px
}

/* World chat hint button feel */
.world-hint .wh-title {
  font-size:16px
}

/* ===== ICONS EVEN BRIGHTER ===== */
.apanel .cbtn, .upanel .cbtn {
  color:#fff;
  font-size:19px
}
.chdr .ha .cbtn {
  color:#fff;
  font-size:19px;
  width:38px;height:38px
}

/* Create button - bigger text, more glow */
.alliance-actions {
  padding:0 10px
}
.alliance-actions .abtn {
  padding:12px;
  font-size:14px;
  letter-spacing:.3px
}

/* Server header buttons row */
.apanel-head .cbtn {
  width:38px;height:38px;font-size:20px
}

/* Active channel item - brighter glow */
.chitem.on {
  box-shadow:0 2px 16px rgba(59,130,246,.4),0 0 30px rgba(59,130,246,.12)
}

/* User panel buttons more contrast */
.upanel .cbtn {
  width:38px;height:38px
}

/* ===== GLOWING SCROLLBAR ===== */

/* Global scrollbar - thin neon blue */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:rgba(20,22,29,.6);border-radius:4px}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#3b6ef6,#7c3aed);
  border-radius:4px;
  box-shadow:0 0 8px rgba(59,110,246,.5)
}
::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#5b8ef6,#9b5cf6);
  box-shadow:0 0 14px rgba(59,110,246,.7)
}

/* Chat messages area - brighter scrollbar on light bg */
.msgs::-webkit-scrollbar{width:8px}
.msgs::-webkit-scrollbar-track{background:rgba(200,210,225,.3);border-radius:4px}
.msgs::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#4f7ef7,#7c5cf6);
  border-radius:4px;
  box-shadow:0 0 6px rgba(79,126,247,.4)
}
.msgs::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#6b96ff,#9b7cff);
  box-shadow:0 0 12px rgba(79,126,247,.6)
}

/* Dark panels scrollbar - subtle glow */
.al-list::-webkit-scrollbar-thumb,
.chlist::-webkit-scrollbar-thumb,
.pcontent::-webkit-scrollbar-thumb,
#calendarPanel::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(59,110,246,.5),rgba(124,58,237,.4));
  border-radius:4px;
  box-shadow:0 0 6px rgba(59,110,246,.3)
}
.al-list::-webkit-scrollbar-thumb:hover,
.chlist::-webkit-scrollbar-thumb:hover,
.pcontent::-webkit-scrollbar-thumb:hover,
#calendarPanel::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,rgba(59,110,246,.7),rgba(124,58,237,.6));
  box-shadow:0 0 12px rgba(59,110,246,.5)
}

/* Firefox scrollbar */
*{scrollbar-width:thin;scrollbar-color:rgba(59,110,246,.5) rgba(20,22,29,.3)}
.msgs{scrollbar-color:rgba(79,126,247,.5) rgba(200,210,225,.2)}

/* ===== NEON WHITE LED SCROLLBAR ===== */
/* Override previous blue scrollbar */

::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:#0a0b0f;border-radius:4px}
::-webkit-scrollbar-thumb{
  background:#1a1d25;
  border:1px solid rgba(255,255,255,.15);
  border-radius:4px;
  box-shadow:0 0 6px rgba(255,255,255,.2),inset 0 0 4px rgba(255,255,255,.05)
}
::-webkit-scrollbar-thumb:hover{
  background:#22262f;
  border-color:rgba(255,255,255,.35);
  box-shadow:0 0 12px rgba(255,255,255,.4),0 0 20px rgba(255,255,255,.15),inset 0 0 6px rgba(255,255,255,.1)
}

/* Chat messages - same LED style on light bg */
.msgs::-webkit-scrollbar{width:7px}
.msgs::-webkit-scrollbar-track{background:rgba(180,190,205,.15);border-radius:4px}
.msgs::-webkit-scrollbar-thumb{
  background:#2a2e3a;
  border:1px solid rgba(255,255,255,.2);
  border-radius:4px;
  box-shadow:0 0 6px rgba(255,255,255,.25),0 0 12px rgba(200,210,230,.1)
}
.msgs::-webkit-scrollbar-thumb:hover{
  background:#333a48;
  border-color:rgba(255,255,255,.4);
  box-shadow:0 0 10px rgba(255,255,255,.45),0 0 20px rgba(255,255,255,.15)
}

/* Side panels */
.al-list::-webkit-scrollbar-thumb,
.chlist::-webkit-scrollbar-thumb,
.pcontent::-webkit-scrollbar-thumb,
#calendarPanel::-webkit-scrollbar-thumb{
  background:#1a1d25;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 0 5px rgba(255,255,255,.18)
}
.al-list::-webkit-scrollbar-thumb:hover,
.chlist::-webkit-scrollbar-thumb:hover,
.pcontent::-webkit-scrollbar-thumb:hover,
#calendarPanel::-webkit-scrollbar-thumb:hover{
  border-color:rgba(255,255,255,.3);
  box-shadow:0 0 10px rgba(255,255,255,.4),0 0 18px rgba(255,255,255,.12)
}

/* Firefox */
*{scrollbar-width:thin;scrollbar-color:#1a1d25 #0a0b0f}
.msgs{scrollbar-color:#2a2e3a rgba(180,190,205,.1)}

/* ===== Alliance Banner in Chat ===== */
.alliance-banner{
  display:flex;align-items:center;gap:16px;
  padding:16px 24px;
  background:linear-gradient(135deg,#14161d 0%,#1a1f2e 50%,#14161d 100%);
  border-bottom:1px solid #2a2e3a;
  position:relative;overflow:hidden
}
.alliance-banner::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(59,130,246,.04),rgba(124,58,237,.04),transparent);
  pointer-events:none
}
.alliance-banner::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(59,130,246,.4),rgba(124,58,237,.3),transparent)
}
.ab-logo{
  width:56px;height:56px;border-radius:16px;flex-shrink:0;
  background-size:cover;background-position:center;
  box-shadow:0 0 16px rgba(59,130,246,.25),0 4px 12px rgba(0,0,0,.3);
  border:2px solid rgba(255,255,255,.1)
}
.ab-logo-text{
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:900;color:#fff;letter-spacing:1px
}
.ab-body{position:relative;flex:1;min-width:0}
.ab-tag{
  font-size:10px;font-weight:800;color:var(--acl);
  text-transform:uppercase;letter-spacing:1.5px;
  text-shadow:0 0 8px rgba(59,130,246,.3)
}
.ab-name{
  font-size:18px;font-weight:900;color:#e8ecf2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin:2px 0
}
.ab-desc{
  font-size:12px;color:#8a95a8;font-weight:500;
  line-height:1.4;
  max-height:36px;overflow:hidden;
  margin-bottom:4px
}
.ab-stats{
  font-size:11px;color:#5a6577;font-weight:700
}

/* ===== Active Alliance Highlight ===== */
.al-item.al-active{
  background:linear-gradient(90deg,rgba(59,130,246,.15),rgba(59,130,246,.05))!important;
  border-left:3px solid var(--ac)!important;
  box-shadow:inset 0 0 30px rgba(59,130,246,.08),0 0 12px rgba(59,130,246,.05)!important;
  cursor:pointer!important
}
.al-item.al-active .al-name{color:#fff}
.al-item.al-active .al-meta{color:var(--acl)}
.al-item.al-active .al-tag{color:#fff}

.al-here{
  display:inline-block;
  font-size:8px;font-weight:900;
  background:var(--ac);color:#fff;
  padding:1px 6px;border-radius:4px;
  margin-left:8px;vertical-align:middle;
  letter-spacing:.8px;
  box-shadow:0 0 8px rgba(59,130,246,.4);
  animation:herePulse 2s ease-in-out infinite
}
@keyframes herePulse{0%,100%{opacity:1}50%{opacity:.6}}

/* Mobile banner */
@media(max-width:768px){
  .alliance-banner{padding:10px 14px;gap:10px}
  .ab-logo{width:44px;height:44px;border-radius:12px}
  .ab-name{font-size:15px}
  .ab-desc{font-size:11px;max-height:28px}
}

/* ===== Calendar Widget in Left Panel ===== */

/* Calendar collapsed bar */
.calw-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none;background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(124,58,237,.10));border-left:3px solid var(--ac);margin:4px 8px;border-radius:8px;transition:all .15s}
.calw-bar:hover{background:linear-gradient(135deg,rgba(59,130,246,.22),rgba(124,58,237,.18));box-shadow:0 0 12px rgba(59,130,246,.15)}
.calw-bar-icon{font-size:18px;flex-shrink:0}
.calw-bar-text{flex:1;font-size:13px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calw-bar-arrow{font-size:11px;color:var(--ac);transition:transform .2s;font-weight:900}
.calw-bar.open .calw-bar-arrow{transform:rotate(180deg)}
.calw-bar-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle;box-shadow:0 0 6px currentColor}
.calw-body{max-height:400px;overflow-y:auto}

.cal-widget{
  border-top:1px solid #2a2e3a;
  background:#14161d;
  padding:0;
  flex-shrink:0
}
.calw-head{
  display:flex;align-items:center;gap:2px;
  padding:8px 10px;
  background:#14161d
}
.calw-title{
  flex:1;text-align:center;
  font-size:13px;font-weight:800;color:#e2e6ec
}
.calw-arr{
  width:28px;height:28px;border:none;
  background:#22262f;color:#8a95a8;
  border-radius:8px;cursor:pointer;
  font-size:12px;display:flex;align-items:center;justify-content:center;
  transition:all .15s
}
.calw-arr:hover{background:var(--ac);color:#fff;box-shadow:0 0 10px rgba(59,130,246,.3)}
.calw-add{
  width:28px;height:28px;border:none;
  background:linear-gradient(135deg,var(--ac),#7c3aed);
  color:#fff;border-radius:8px;cursor:pointer;
  font-size:16px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 10px rgba(59,130,246,.3);
  transition:all .15s
}
.calw-add:hover{box-shadow:0 0 16px rgba(59,130,246,.5);transform:scale(1.1)}

/* Override calendar grid for compact sidebar */
.cal-widget .cal-days{padding:0 6px}
.cal-widget .cal-dh{font-size:9px;padding:4px 0}
.cal-widget .cal-cells{padding:0 6px 4px;gap:1px}
.cal-widget .cal-cell{padding:3px 1px 2px;min-height:28px;border-radius:6px}
.cal-widget .cal-num{font-size:11px}

/* TODAY - bright circle */
.cal-widget .cal-cell.cal-today .cal-num{
  width:22px;height:22px;font-size:11px;
  box-shadow:0 0 8px rgba(59,130,246,.5)
}

/* HAS EVENTS - bright pulsing glow */
.cal-widget .cal-cell.cal-has{
  background:rgba(239,68,68,.12);
  border:1px solid rgba(239,68,68,.3);
  animation:eventPulse 2s ease-in-out infinite
}
.cal-widget .cal-cell.cal-has .cal-num{
  color:#ff6b6b;font-weight:800
}
@keyframes eventPulse{0%,100%{box-shadow:0 0 4px rgba(239,68,68,.2)}50%{box-shadow:0 0 12px rgba(239,68,68,.4)}}

/* Event dots bigger */
.cal-widget .cal-dots{margin-top:1px}
.cal-widget .cal-dot{width:6px;height:6px;box-shadow:0 0 4px currentColor}

/* Events list compact */
.cal-widget .cal-events{
  max-height:120px;overflow-y:auto;
  border-top:1px solid #2a2e3a
}
.cal-widget .cal-section{padding:6px 10px 2px;font-size:9px}
.cal-widget .cal-ev{padding:6px 10px;margin:1px 4px;border-radius:0 6px 6px 0}
.cal-widget .cal-ev-title{font-size:12px}
.cal-widget .cal-ev-time{font-size:10px}
.cal-widget .cal-empty-msg{padding:12px 10px;font-size:11px}

/* Mobile: hide calendar widget in sidebar to save space */
@media(max-width:768px){
  .cal-widget .cal-events{max-height:80px}
}

/* ===== NEON WHITE LED SCROLLBAR ===== */
/* Override previous blue scrollbar */

::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:#0a0b0f;border-radius:4px}
::-webkit-scrollbar-thumb{
  background:#1a1d25;
  border:1px solid rgba(255,255,255,.15);
  border-radius:4px;
  box-shadow:0 0 6px rgba(255,255,255,.2),inset 0 0 4px rgba(255,255,255,.05)
}
::-webkit-scrollbar-thumb:hover{
  background:#22262f;
  border-color:rgba(255,255,255,.35);
  box-shadow:0 0 12px rgba(255,255,255,.4),0 0 20px rgba(255,255,255,.15),inset 0 0 6px rgba(255,255,255,.1)
}

/* Chat messages - same LED style on light bg */
.msgs::-webkit-scrollbar{width:7px}
.msgs::-webkit-scrollbar-track{background:rgba(180,190,205,.15);border-radius:4px}
.msgs::-webkit-scrollbar-thumb{
  background:#2a2e3a;
  border:1px solid rgba(255,255,255,.2);
  border-radius:4px;
  box-shadow:0 0 6px rgba(255,255,255,.25),0 0 12px rgba(200,210,230,.1)
}
.msgs::-webkit-scrollbar-thumb:hover{
  background:#333a48;
  border-color:rgba(255,255,255,.4);
  box-shadow:0 0 10px rgba(255,255,255,.45),0 0 20px rgba(255,255,255,.15)
}

/* Side panels */
.al-list::-webkit-scrollbar-thumb,
.chlist::-webkit-scrollbar-thumb,
.pcontent::-webkit-scrollbar-thumb,
#calendarPanel::-webkit-scrollbar-thumb{
  background:#1a1d25;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 0 5px rgba(255,255,255,.18)
}
.al-list::-webkit-scrollbar-thumb:hover,
.chlist::-webkit-scrollbar-thumb:hover,
.pcontent::-webkit-scrollbar-thumb:hover,
#calendarPanel::-webkit-scrollbar-thumb:hover{
  border-color:rgba(255,255,255,.3);
  box-shadow:0 0 10px rgba(255,255,255,.4),0 0 18px rgba(255,255,255,.12)
}

/* Firefox */
*{scrollbar-width:thin;scrollbar-color:#1a1d25 #0a0b0f}
.msgs{scrollbar-color:#2a2e3a rgba(180,190,205,.1)}

/* Ensure chat layout: banner fixed, msgs fills rest */
.chat{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.alliance-banner{flex-shrink:0}
.msgs{flex:1;overflow-y:auto;min-height:0}

/* ===== Message images - block layout ===== */
.msg-img{
  display:block;
  max-width:320px;
  max-height:300px;
  border-radius:12px;
  margin:8px 0 4px;
  cursor:pointer;
  object-fit:contain;
  box-shadow:0 2px 8px rgba(0,0,0,.1);
  border:1px solid rgba(0,0,0,.06);
  transition:transform .15s,box-shadow .15s
}
.msg-img:hover{
  transform:scale(1.02);
  box-shadow:0 4px 16px rgba(0,0,0,.18)
}
/* Text before/after image gets its own line */
.mx{word-break:break-word;line-height:1.5}

/* ===== Mobile refresh button visible ===== */
.mab-btn[onclick*="forceRefresh"]{
  color:var(--acl)!important;
  font-size:20px!important;
  width:36px;height:36px;
  background:#22262f;
  border:1px solid rgba(59,130,246,.3);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center
}
.mab-btn[onclick*="forceRefresh"]:hover{
  background:var(--ac);
  color:#fff!important;
  box-shadow:0 0 12px rgba(59,130,246,.4)
}

/* Chat header refresh button */
.ha .cbtn[onclick*="forceRefresh"]{
  color:var(--acl)!important;
  border-color:rgba(59,130,246,.3)!important
}
.ha .cbtn[onclick*="forceRefresh"]:hover{
  background:var(--ac)!important;
  color:#fff!important
}

/* ===== MOBILE: compact layout, no wasted space ===== */
@media(max-width:768px){
  /* Hide separate banner on mobile - info is in mob-alliance-bar */
  .alliance-banner{display:none!important}

  /* Mob alliance bar = the banner */
  .mob-alliance-bar{
    background:linear-gradient(135deg,#14161d 0%,#1a1f2e 50%,#14161d 100%)!important;
    border-bottom:1px solid #2a2e3a!important;
    padding:8px 12px!important;
    gap:8px!important;
    position:relative
  }
  .mob-alliance-bar::after{
    content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,transparent,rgba(59,130,246,.4),rgba(124,58,237,.3),transparent)
  }
  .mob-alliance-bar .mab-logo{
    width:32px;height:32px;border-radius:8px;flex-shrink:0;
    background-size:cover;background-position:center;
    box-shadow:0 0 10px rgba(59,130,246,.2);
    border:1px solid rgba(255,255,255,.1)
  }
  .mob-alliance-bar .mab-logo-text{
    display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:900;color:#fff;letter-spacing:.5px
  }
  .mob-alliance-bar .mab-name{
    font-size:13px!important;font-weight:800!important;color:#e8ecf2!important;
    flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
  .mob-alliance-bar .mab-tag{
    font-size:9px;font-weight:800;color:var(--acl);
    text-transform:uppercase;letter-spacing:1px
  }

  /* Compact chat header */
  .chdr{padding:6px 10px!important;min-height:auto!important}
  .chdr .cn{font-size:14px}
  .chdr .ha{gap:4px}
  .chdr .ha .cbtn{width:32px!important;height:32px!important;font-size:15px!important}

  /* Compact translate bar */
  .tbar{padding:4px 10px!important;font-size:12px}
  .tbar .ls{padding:2px 4px;font-size:12px}

  /* Messages area full height */
  .msgs{padding:8px 10px!important}

  /* Compact input area */
  .iarea{padding:6px 8px!important}
  .ibox{padding:6px 8px!important;border-radius:20px!important}
  .sendbtn{width:36px!important;height:36px!important;font-size:15px!important}

  /* Mobile alliance bar - compact */
  .mob-alliance-bar{padding:6px 10px!important}
}

/* ===== iOS Safe Area fix for mobile ===== */
@media(max-width:768px){
  /* Mob alliance bar fills safe area */
  .mob-alliance-bar{
    padding-top:calc(8px + env(safe-area-inset-top,0px))!important
  }

  /* Main app container - no gap at top */
  .app{padding-top:0!important;margin-top:0!important}

  /* Chat header - no extra top space */
  .chdr{margin-top:0!important;padding-top:6px!important}

  /* When no alliance bar visible (world chat), chat header gets safe area */
  .chat>.chdr:first-child{
    padding-top:calc(6px + env(safe-area-inset-top,0px))!important
  }
}

/* PWA standalone mode - fill status bar area */
@media(display-mode: standalone){
  .mob-alliance-bar{
    padding-top:calc(8px + env(safe-area-inset-top,0px))!important;
    background:linear-gradient(135deg,#14161d 0%,#1a1f2e 50%,#14161d 100%)!important
  }
}

/* Dark body on mobile to fill safe area gaps */
@media(max-width:768px){
  body{background:#14161d!important}
  html{background:#14161d!important}
}

/* ===== Mobile Alliance Banner (redesigned) ===== */
@media(max-width:768px){
  .mob-alliance-bar{
    display:flex!important;
    align-items:center;
    gap:10px;
    padding:10px 12px!important;
    padding-top:calc(10px + env(safe-area-inset-top,0px))!important;
    background:linear-gradient(135deg,#14161d 0%,#1a1f2e 50%,#14161d 100%)!important;
    border-bottom:none!important;
    position:relative;
    overflow:hidden
  }
  .mob-alliance-bar::after{
    content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,transparent,rgba(59,130,246,.5),rgba(124,58,237,.4),transparent);
    box-shadow:0 0 8px rgba(59,130,246,.3)
  }

  .mob-alliance-bar .mab-btn{
    width:32px;height:32px;flex-shrink:0;
    font-size:18px;color:#8a95a8;
    background:#22262f;border:1px solid #333a48;border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer
  }
  .mob-alliance-bar .mab-btn:hover{color:var(--acl);border-color:var(--ac)}

  .mab-av{
    width:36px;height:36px;border-radius:10px;flex-shrink:0;
    box-shadow:0 0 12px rgba(59,130,246,.25),0 2px 8px rgba(0,0,0,.3);
    border:1.5px solid rgba(255,255,255,.12);
    display:flex;align-items:center;justify-content:center;
    background-size:cover;background-position:center
  }
  .mab-av-text{
    font-size:13px;font-weight:900;color:#fff;letter-spacing:.5px
  }

  .mab-info{
    flex:1;min-width:0;overflow:hidden
  }
  .mab-tag{
    font-size:9px;font-weight:800;color:var(--acl);
    text-transform:uppercase;letter-spacing:1.2px;
    text-shadow:0 0 6px rgba(59,130,246,.3);
    line-height:1.2
  }
  .mab-name{
    font-size:14px!important;font-weight:800!important;color:#e8ecf2!important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    line-height:1.3
  }

  .mab-count{
    font-size:11px;font-weight:700;color:#5a6577;
    flex-shrink:0;white-space:nowrap
  }
}

/* ===== Voice Messages ===== */

/* Mic button - next to input */
.mic-btn{
  width:40px;height:40px;flex-shrink:0;
  border:none;border-radius:50%;
  background:#22262f;color:#b8c4d4;
  font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;
  border:1px solid #333a48
}
.mic-btn:hover{
  color:var(--ac);background:rgba(59,130,246,.1);
  border-color:var(--ac)
}
.mic-btn.mic-recording{
  background:#ef4444!important;color:#fff!important;
  border-color:#ef4444!important;
  animation:micPulse 1s ease-in-out infinite
}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 10px rgba(239,68,68,0)}}

/* Recording timer */
.voice-timer{
  padding:6px 14px;
  background:rgba(239,68,68,.1);
  border:1px solid rgba(239,68,68,.3);
  border-radius:20px;
  font-size:13px;font-weight:700;color:#ef4444;
  animation:micPulse 1s ease-in-out infinite;
  flex-shrink:0;margin-right:8px
}

/* Voice message player in chat */
.voice-msg{
  display:flex;align-items:center;gap:10px;
  padding:8px 14px;margin:6px 0;
  background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(124,58,237,.06));
  border:1px solid rgba(59,130,246,.15);
  border-radius:16px;
  max-width:280px;min-width:180px
}
.voice-play{
  width:36px;height:36px;flex-shrink:0;
  border:none;border-radius:50%;
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  color:#fff;font-size:14px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(59,130,246,.3);
  transition:transform .15s
}
.voice-play:hover{transform:scale(1.1)}
.voice-play.playing{background:linear-gradient(135deg,#ef4444,#dc2626)}

.voice-wave{
  flex:1;height:24px;
  background:repeating-linear-gradient(90deg,
    rgba(59,130,246,.3) 0px,rgba(59,130,246,.3) 2px,
    transparent 2px,transparent 5px
  );
  border-radius:4px;
  position:relative;overflow:hidden
}
.voice-wave::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(59,130,246,.15),rgba(124,58,237,.1),rgba(59,130,246,.15));
  border-radius:4px
}


/* ===== Music Panel ===== */
#musicPanel{
  display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--br);
  border-radius:14px;margin:0 8px 6px;
  max-height:280px;overflow:hidden;
  box-shadow:0 4px 20px rgba(0,0,0,.15)
}
.mu-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--br);flex-shrink:0
}
.mu-head-title{font-size:13px;font-weight:800;color:var(--fg);display:flex;align-items:center}
.mu-head-close{
  background:none;border:none;cursor:pointer;color:var(--tm);
  padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  transition:all .15s
}
.mu-head-close:hover{color:var(--fg);background:rgba(255,255,255,.06)}
.mu-add{
  display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--br);flex-shrink:0
}
.mu-add input{
  flex:1;padding:8px 12px;border-radius:10px;
  border:1px solid var(--br);background:var(--bg);
  color:var(--fg);font-size:13px;font-family:var(--ff);
  outline:none;transition:border .2s
}
.mu-add input:focus{border-color:var(--ac)}
.mu-add input::placeholder{color:var(--tm)}
.mu-add button{
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  border:none;color:#fff;padding:8px 12px;border-radius:10px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:transform .15s;flex-shrink:0
}
.mu-add button:hover{transform:scale(1.05)}
.mu-results{
  overflow-y:auto;max-height:120px;padding:4px 8px;flex-shrink:0
}
.mu-results:empty{display:none}
.mu-queue{
  flex:1;overflow-y:auto;padding:4px 8px;min-height:40px
}
.mu-empty{
  text-align:center;padding:16px;font-size:12px;
  color:var(--tm);font-weight:600
}
.mu-track{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px;border-radius:8px;
  transition:background .15s;cursor:default
}
.mu-track:hover{background:rgba(255,255,255,.04)}
.mu-track-name{flex:1;font-size:12px;font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mu-track-dur{font-size:11px;color:var(--tm);font-weight:600;flex-shrink:0}
.mu-track-btn{
  background:none;border:none;cursor:pointer;color:var(--tm);
  padding:2px;border-radius:4px;transition:color .15s;flex-shrink:0
}
.mu-track-btn:hover{color:var(--ac)}
#musicBar{
  margin:0 8px 4px;border-radius:10px;overflow:hidden
}
#musicBar:empty{display:none}

/* Music — search results */
.mu-result{
  display:flex;align-items:center;gap:10px;
  padding:8px;border-radius:10px;cursor:pointer;
  transition:background .15s
}
.mu-result:hover{background:rgba(255,255,255,.06)}
.mu-tr-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--br)}
.mu-tr-info{flex:1;min-width:0;overflow:hidden}
.mu-tr-title{font-size:12px;font-weight:700;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mu-tr-dur{font-size:11px;color:var(--tm);font-weight:600;margin-top:1px}
.mu-result-add{
  flex-shrink:0;width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--ac),#5b4cf6);
  color:#fff;border-radius:50%;font-size:16px;font-weight:800;
  transition:transform .15s
}
.mu-result:hover .mu-result-add{transform:scale(1.15)}

/* Music — queue */
.mu-section{font-size:11px;font-weight:800;color:var(--tm);text-transform:uppercase;letter-spacing:.5px;padding:8px 8px 4px}
.mu-track{
  display:flex;align-items:center;gap:10px;
  padding:6px 8px;border-radius:8px;cursor:pointer;
  transition:background .15s
}
.mu-track:hover{background:rgba(255,255,255,.04)}
.mu-playing{background:rgba(59,130,246,.08)!important}
.mu-playing .mu-tr-title{color:var(--ac)}
.mu-tr-rm{
  background:none;border:none;cursor:pointer;color:var(--tm);
  font-size:12px;padding:4px;border-radius:4px;flex-shrink:0;
  transition:color .15s;opacity:.5
}
.mu-tr-rm:hover{color:#ef4444;opacity:1}

/* Music — player bar */
#musicBar{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;margin:0 8px 4px;
  background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(124,58,237,.06));
  border:1px solid rgba(59,130,246,.15);
  border-radius:12px
}
#musicBar:empty{display:none;margin:0;padding:0;border:none}
.mu-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0}
.mu-info{flex:1;min-width:0;overflow:hidden}
.mu-title{font-size:12px;font-weight:700;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mu-prog{display:flex;align-items:center;gap:6px;margin-top:3px}
.mu-prog input[type=range]{
  flex:1;height:4px;-webkit-appearance:none;appearance:none;
  background:var(--br);border-radius:2px;outline:none;cursor:pointer
}
.mu-prog input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:12px;height:12px;
  border-radius:50%;background:var(--ac);cursor:pointer;
  box-shadow:0 1px 4px rgba(59,130,246,.3)
}
.mu-time{font-size:10px;color:var(--tm);font-weight:600;flex-shrink:0;min-width:28px}
.mu-ctrls{display:flex;align-items:center;gap:2px;flex-shrink:0}
.mu-btn{
  background:none;border:none;cursor:pointer;
  color:var(--tm);font-size:16px;padding:4px 6px;
  border-radius:6px;transition:all .15s;
  display:flex;align-items:center;justify-content:center
}
.mu-btn:hover{color:var(--fg);background:rgba(255,255,255,.06)}
.mu-play{font-size:20px;color:var(--ac)}
.mu-stop:hover{color:#ef4444}
.mu-active{color:var(--ac)!important}

.voice-stt-btn{
  flex-shrink:0;border:none;cursor:pointer;
  background:rgba(59,130,246,.12);color:var(--ac);
  font-size:10px;font-weight:800;font-family:var(--ff);
  padding:4px 8px;border-radius:8px;
  transition:all .15s;white-space:nowrap
}
.voice-stt-btn:hover{background:rgba(59,130,246,.25)}
.voice-stt-btn:disabled{opacity:.5;cursor:default}
.voice-transcript{
  font-size:12px;color:var(--ts);
  padding:6px 10px;margin:2px 0 4px;
  background:rgba(59,130,246,.05);
  border-radius:10px;border-left:2px solid var(--ac);
  max-width:280px;line-height:1.4
}

.voice-dur{
  font-size:12px;font-weight:700;color:var(--tm);
  flex-shrink:0;min-width:32px;text-align:right
}

/* Mobile input area layout */
@media(max-width:768px){
  .mic-btn{width:36px;height:36px;font-size:16px}
  .voice-msg{max-width:220px;min-width:150px;padding:6px 10px}
  .voice-play{width:32px;height:32px;font-size:12px}
}

/* Input area flex for mic button */
.iarea{display:flex;align-items:flex-end;gap:6px}

/* ===== Input area fix ===== */
.iarea{
  display:flex!important;
  align-items:flex-end!important;
  gap:8px!important;
  padding:10px 16px!important;
  background:#f0f2f5
}
.ibox{
  flex:1!important;
  display:flex!important;
  align-items:flex-end!important;
  min-width:0!important;
  background:#fff;
  border:2px solid #d0d9e6;
  border-radius:22px;
  padding:6px 12px!important;
  transition:border-color .2s,box-shadow .2s
}
.ibox:focus-within{
  border-color:var(--ac);
  box-shadow:0 0 0 3px rgba(59,130,246,.1)
}
.ibox textarea{
  flex:1!important;
  border:none!important;
  outline:none!important;
  resize:none!important;
  font-size:14px;
  line-height:1.4;
  padding:4px 0!important;
  background:transparent!important;
  min-height:20px;
  max-height:100px
}
.ibox .ibtns{
  display:flex;gap:2px;flex-shrink:0;align-items:center
}
.ibox .ibtns button{
  background:none;border:none;font-size:20px;
  cursor:pointer;padding:4px;color:#9ca3af;
  transition:color .15s
}
.ibox .ibtns button:hover{color:var(--ac)}

.mic-btn{
  width:42px!important;height:42px!important;flex-shrink:0!important;
  border-radius:50%!important;
  background:#22262f!important;color:#b8c4d4!important;
  border:1px solid #333a48!important;
  font-size:18px!important;cursor:pointer;
  display:flex!important;align-items:center!important;justify-content:center!important;
  transition:all .2s
}
.mic-btn:hover{
  color:var(--ac)!important;border-color:var(--ac)!important;
  background:rgba(59,130,246,.1)!important
}

.sendbtn{
  width:42px!important;height:42px!important;flex-shrink:0!important;
  border-radius:50%!important;
  background:linear-gradient(135deg,var(--ac),#5b4cf6)!important;
  color:#fff!important;border:none!important;
  font-size:16px!important;cursor:pointer;
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-shadow:0 2px 12px rgba(59,130,246,.35)!important;
  transition:all .2s
}
.sendbtn:hover{
  box-shadow:0 4px 20px rgba(59,130,246,.5)!important;
  transform:scale(1.05)
}

@media(max-width:768px){
  .iarea{padding:6px 10px!important;gap:6px!important}
  .ibox{padding:4px 10px!important;border-radius:20px!important}
  .mic-btn{width:36px!important;height:36px!important;font-size:16px!important}
  .sendbtn{width:36px!important;height:36px!important;font-size:14px!important}
}

/* ===== Reply Bar (above input) ===== */
.reply-bar{
  display:flex;align-items:center;gap:8px;
  padding:8px 16px;
  background:#f0f2f5;
  border-top:1px solid #e0e6ee;
  border-left:3px solid var(--ac)
}
.rb-info{flex:1;min-width:0;overflow:hidden}
.rb-name{
  font-size:12px;font-weight:800;color:var(--ac);
  display:block;line-height:1.3
}
.rb-text{
  font-size:12px;color:var(--tm);
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.3
}
.rb-close{
  background:none;border:none;font-size:18px;color:#9ca3af;
  cursor:pointer;padding:4px;flex-shrink:0;transition:color .15s
}
.rb-close:hover{color:#ef4444}

/* ===== Reply Quote in Message ===== */
.reply-quote{
  display:flex;flex-direction:column;gap:1px;
  padding:6px 10px;margin-bottom:4px;
  background:rgba(59,130,246,.06);
  border-left:3px solid var(--ac);
  border-radius:0 8px 8px 0;
  cursor:pointer;transition:background .15s;
  max-width:100%;overflow:hidden
}
.reply-quote:hover{background:rgba(59,130,246,.12)}
.rq-name{
  font-size:11px;font-weight:800;color:var(--ac);
  line-height:1.2
}
.rq-text{
  font-size:12px;color:var(--tm);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.3;max-width:300px
}

/* Reply button style */
.msg-act-btn[title="Reply"]{
  color:var(--ac)!important;
  font-size:15px!important
}

@media(max-width:768px){
  .reply-bar{padding:6px 10px}
  .rq-text{max-width:200px}
}

/* Message action bar — single row */
.msg-acts{display:inline-flex;gap:0;margin-top:2px;opacity:0;transition:opacity .12s}
.mg:hover .msg-acts,.msg:hover .msg-acts{opacity:1}
.msg-acts:has(.on){opacity:1}
.msg-acts .ma-btn{border:none;background:none;padding:2px 5px;border-radius:4px;cursor:pointer;font-size:10px;color:#6b7280;transition:all .1s;line-height:1}
.msg-acts .ma-btn:hover{color:var(--tp);background:rgba(255,255,255,.06)}
.msg-acts .ma-btn b{font-size:9px;font-weight:800;margin-left:2px}
.msg-acts .ma-like{font-size:8px}.msg-acts .ma-like:hover,.msg-acts .ma-like.on{color:#22c55e}
.msg-acts .ma-like.on b{color:#22c55e}
.msg-acts .ma-dis{font-size:8px}.msg-acts .ma-dis:hover,.msg-acts .ma-dis.on{color:#ef4444}
.msg-acts .ma-dis.on b{color:#ef4444}
.msg-acts .ma-del:hover{color:#ef4444}
@media(pointer:coarse){.msg-acts{opacity:.4}}

/* Member Action Modal */
.ma-modal{width:320px;text-align:center;padding:24px 20px!important}
.ma-profile{margin-bottom:20px}
.ma-av{width:80px;height:80px;border-radius:50%;margin:0 auto 4px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;color:#fff;border:3px solid rgba(99,102,241,.3);box-shadow:0 4px 15px rgba(0,0,0,.3);background-size:cover;background-position:center}
.ma-name{font-size:20px;font-weight:900;color:#fff;margin-top:8px;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.ma-role-badge{display:inline-block;font-size:12px;font-weight:700;color:#a5b4fc;margin-top:6px;padding:3px 14px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.25);border-radius:20px}
.ma-section{display:flex;gap:8px;align-items:center;margin-bottom:16px}
.ma-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--tm);white-space:nowrap}
.ma-select{flex:1;padding:8px 12px;border-radius:10px;border:1px solid var(--br);font-size:13px;font-weight:600;background:var(--card);color:var(--tp)}
.ma-save-btn{padding:8px 16px;border-radius:10px;font-size:12px;white-space:nowrap}
.ma-danger{display:flex;gap:8px;margin-top:12px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}
.ma-kick{flex:1;padding:10px;border:none;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;background:rgba(239,68,68,.12);color:#ef4444;transition:all .15s}
.ma-kick:hover{background:#ef4444;color:#fff}
.ma-ban{flex:1;padding:10px;border:none;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;background:rgba(124,58,237,.12);color:#8b5cf6;transition:all .15s}
.ma-ban:hover{background:#7c3aed;color:#fff}


/* ===== SVG ICON SYSTEM ===== */
/* All buttons with SVG icons - proper alignment */
.cbtn svg, .ibtns svg, .sendbtn svg, .mic-btn svg, .ma-btn svg,
.mab-btn svg, .mob-nav svg, .mu-head-close svg, .cancel svg,
.mdl-x svg, .voice-play svg, .btn svg {
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0
}

/* Message action buttons - redesigned */
.msg-acts{
  display:inline-flex;
  gap:2px;
  margin-top:4px;
  opacity:0;
  transition:opacity .15s;
  align-items:center
}
.mg:hover .msg-acts{opacity:1}
.msg-acts:has(.on){opacity:1}

.msg-acts .ma-btn{
  border:none;
  background:none;
  padding:4px 6px;
  border-radius:6px;
  cursor:pointer;
  color:#9ca3af;
  transition:all .15s;
  display:inline-flex;
  align-items:center;
  gap:3px;
  line-height:1
}
.msg-acts .ma-btn:hover{
  background:rgba(59,130,246,.08);
  color:var(--ac)
}
.msg-acts .ma-btn b{
  font-size:11px;
  font-weight:800;
  color:inherit
}
.msg-acts .ma-like:hover,.msg-acts .ma-like.on{color:#22c55e}
.msg-acts .ma-like.on{background:rgba(34,197,94,.08)}
.msg-acts .ma-dis:hover,.msg-acts .ma-dis.on{color:#ef4444}
.msg-acts .ma-dis.on{background:rgba(239,68,68,.08)}
.msg-acts .ma-del:hover{color:#ef4444;background:rgba(239,68,68,.08)}

/* Input buttons - SVG aligned */
.ibox .ibtns{
  display:flex;
  gap:2px;
  flex-shrink:0;
  align-items:center;
  padding:2px
}
.ibox .ibtns button{
  width:34px!important;
  height:34px!important;
  border:none;
  background:none;
  cursor:pointer;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9ca3af;
  border-radius:8px;
  transition:all .15s
}
.ibox .ibtns button:hover{
  color:var(--ac);
  background:rgba(59,130,246,.08)
}
.ibox .ibtns button svg{
  width:20px;height:20px
}

/* Send button - clean SVG center */
.sendbtn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important
}
.sendbtn svg{
  width:18px;height:18px;
  margin-left:1px
}

/* Mic button */
.mic-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important
}

/* Modal close button - clean */
.mdl-x{
  position:sticky;
  top:0;
  margin-left:auto;
  margin-bottom:-32px;
  width:32px;height:32px;
  border:none;
  background:rgba(255,255,255,.08);
  border-radius:8px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#8a95a8;
  transition:all .15s;
  z-index:10
}
.mdl-x:hover{
  background:rgba(239,68,68,.15);
  color:#ef4444
}

/* Header buttons - proper SVG sizing */
.chdr .ha .cbtn{
  display:flex;
  align-items:center;
  justify-content:center
}
.chdr .ha .cbtn svg{
  width:17px;height:17px
}

/* Mobile nav - SVG icons */
.mob-nav button{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px
}
.mob-nav button svg{
  width:22px;height:22px
}

/* Voice play button */
.voice-play{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important
}

/* Channel context menu items with SVG */
.ch-ctx div{
  display:flex;
  align-items:center
}

/* Mobile touch - always show msg actions slightly */
@media(pointer:coarse){
  .msg-acts{opacity:.5}
}

/* ===== REMOVE old font-size overrides that clash with SVG ===== */

/* ===== @Mention styles ===== */
.mention{color:var(--ac);font-weight:700;background:rgba(59,130,246,.1);padding:0 3px;border-radius:4px;cursor:default}
.mention-self{background:rgba(59,130,246,.2);color:#3b82f6}

/* Mention autocomplete popup */
.mention-list{
  position:fixed;bottom:calc(100px + env(safe-area-inset-bottom,0px));left:8px;right:8px;
  max-height:220px;overflow-y:auto;
  background:var(--card);border:1px solid var(--br);
  border-radius:12px;box-shadow:0 -4px 20px rgba(0,0,0,.2);
  z-index:50;margin-bottom:4px
}
.ml-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;cursor:pointer;transition:background .1s
}
.ml-item:hover,.ml-item.ml-active{background:rgba(59,130,246,.08)}
.ml-av{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:#fff;background-size:cover
}
.ml-info{flex:1;min-width:0;overflow:hidden}
.ml-name{font-size:13px;font-weight:700;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-user{font-size:11px;color:var(--tm);font-weight:600}

/* ===== Toast notifications ===== */
.gg-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;background:var(--card);border:1px solid var(--br);border-radius:14px;padding:12px 20px;box-shadow:0 8px 32px rgba(0,0,0,.25);display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--fg);animation:toastIn .3s ease;max-width:90vw}
.gg-toast .toast-icon{font-size:18px;flex-shrink:0}
.gg-toast .toast-body{flex:1;min-width:0}
.gg-toast .toast-name{font-weight:800;color:var(--ac)}
.gg-toast .toast-actions{display:flex;gap:6px;margin-top:6px}
.gg-toast .toast-actions button{border:none;padding:5px 14px;border-radius:8px;font-size:12px;font-weight:800;cursor:pointer}
.gg-toast .ta-accept{background:#22c55e;color:#fff}
.gg-toast .ta-decline{background:rgba(255,255,255,.08);color:var(--tm)}
.gg-toast .ta-decline:hover{background:rgba(239,68,68,.15);color:#ef4444}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(-20px)}}

/* Friends badge */
.friends-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:9px;font-weight:900;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;animation:badgePop .3s ease}
@keyframes badgePop{from{transform:scale(0)}to{transform:scale(1)}}

/* === FINAL: Mobile header buttons compact === */
@media(max-width:768px){
  .chdr .ha{gap:1px!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .chdr .ha .cbtn{width:28px!important;height:28px!important;min-width:28px!important;padding:0!important;flex-shrink:0}
  .chdr .ha .cbtn svg{width:14px!important;height:14px!important}
}

/* ===== Music: Playlists panel (v20260416) ===== */
#musicPanel{max-height:none}
.mu-playlists{padding:2px 8px;border-bottom:1px solid var(--br);max-height:150px;overflow-y:auto}
.mu-playlists:empty{display:none}
.mu-pl{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .15s}
.mu-pl:hover{background:rgba(124,92,252,.08)}
.mu-pl-info{flex:1;min-width:0}
.mu-pl-name{font-size:12px;font-weight:700;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mu-pl-meta{font-size:11px;color:var(--tm);font-weight:600;margin-top:1px}
.mu-pl-badge{color:#ffbf40;font-size:10px;margin-left:3px}
.mu-pl-del{background:none;border:none;cursor:pointer;color:var(--tm);font-size:14px;padding:2px 6px;border-radius:4px;opacity:.5;flex-shrink:0}
.mu-pl-del:hover{color:#ef4444;opacity:1}
.mu-pl-new{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;padding:0;margin-left:6px;vertical-align:middle;
  background:linear-gradient(135deg,var(--ac),#5b4cf6);color:#fff;
  border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:800;
  transition:transform .15s
}
.mu-pl-new:hover{transform:scale(1.1)}
.mu-loading{padding:10px;text-align:center;color:var(--tm);font-size:11px;font-weight:600}

/* ===== Music: Video overlay ===== */
#musicVideoOverlay{
  position:fixed;inset:0;z-index:9998;
  background:rgba(0,0,0,.85);backdrop-filter:blur(8px);
  display:none;align-items:center;justify-content:center;padding:20px
}
#musicVideoOverlay .mv-wrap{
  position:relative;width:min(900px,95vw);aspect-ratio:16/9;
  background:#000;border-radius:14px;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.6)
}
#musicVideoOverlay .mv-top{
  position:absolute;top:0;left:0;right:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;gap:10px;
  background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);
  pointer-events:none
}
#musicVideoOverlay .mv-title{
  color:#fff;font-size:14px;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:1;text-shadow:0 1px 4px rgba(0,0,0,.7)
}
#musicVideoOverlay .mv-mini{
  pointer-events:auto;flex-shrink:0;
  background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);
  color:#fff;width:34px;height:34px;border-radius:50%;
  cursor:pointer;font-size:18px;font-weight:800;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s
}
#musicVideoOverlay .mv-mini:hover{background:var(--ac);transform:scale(1.08)}
#musicVideoOverlay #mvIframe{width:100%;height:100%;border:0;display:block}
@media(max-width:768px){
  #musicVideoOverlay{padding:0}
  #musicVideoOverlay .mv-wrap{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}
}

/* Thumb becomes clickable in bar */
#musicBar .mu-thumb{cursor:pointer;transition:transform .15s}
#musicBar .mu-thumb:hover{transform:scale(1.08)}

/* Music video element (proxied mp4, v20260416b) */
#musicVideoOverlay #mvVideo{width:100%;height:100%;background:#000;display:block;object-fit:contain}
#musicVideoOverlay .mv-loading{
  color:rgba(255,255,255,.8);font-size:14px;font-weight:600;
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)
}
#musicVideoOverlay .mv-err{
  color:#ff6b6b;font-size:13px;font-weight:700;
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
  background:rgba(0,0,0,.7);padding:6px 12px;border-radius:8px
}
