  :root {
    --bg-page:#1e1e2e; --bg-app:#252535; --bg-sidebar:#202030;
    --bg-header:#2a2a3e; --bg-form:#222232; --bg-panel:#2e2e42;
    --bg-input:#1a1a28; --bg-tabs:#1e1e2e; --bg-messages:#1c1c2c;
    --color-text:#e2e8f0; --color-muted:#7a8aaa;
    --color-border:rgba(255,255,255,0.08);
    --color-input-border:rgba(255,255,255,0.15);
    --color-input-focus:rgba(99,179,237,0.5);
    --color-input-text:#e2e8f0;
    --color-panel-border:rgba(255,255,255,0.07);
    --color-msg-self-bg:rgba(30,40,80,0.7);
    --color-msg-other-bg:rgba(20,20,40,0.6);
    --color-msg-self-border:rgba(99,179,237,0.25);
    --color-msg-other-border:rgba(255,255,255,0.07);
    --color-btn:#3a3a50; --color-btn-text:#e2e8f0;
    --shadow-panel:0 6px 24px rgba(0,0,0,0.6),0 2px 6px rgba(0,0,0,0.4);
    --shadow-input:inset 0 2px 5px rgba(0,0,0,0.4);
    --shadow-app:0 20px 60px rgba(0,0,0,0.7);
    --bubble-opacity:0.55;
    --bubble-color:0,0,0;
    --msg-text-color:#f0f0f0;
    --msg-font-size:13px;
    --msg-font-family:Arial,sans-serif;
    --msg-font-weight:700;
  }
  body.light-mode {
    --bg-page:#b0bcc8; --bg-app:#c8d4de; --bg-sidebar:#bcc8d4;
    --bg-header:#c0ccda; --bg-form:#bec8d6; --bg-panel:#ccd6e0;
    --bg-input:#d8e2ea; --bg-tabs:#b8c4d0; --bg-messages:#c4d0da;
    --color-text:#1a1a2e; --color-muted:#3a3a55;
    --color-border:rgba(0,0,0,0.12);
    --color-input-border:rgba(0,0,0,0.25);
    --color-input-focus:rgba(0,0,0,0.5);
    --color-input-text:#111111;
    --color-panel-border:rgba(0,0,0,0.1);
    --color-msg-self-bg:rgba(37,99,235,0.08);
    --color-msg-other-bg:rgba(0,0,0,0.04);
    --color-msg-self-border:rgba(37,99,235,0.4);
    --color-msg-other-border:rgba(0,0,0,0.12);
    --color-btn:#2a2a2a; --color-btn-text:#ffffff;
    --shadow-panel:0 2px 12px rgba(0,0,0,0.1),0 1px 4px rgba(0,0,0,0.08);
    --shadow-input:inset 0 1px 3px rgba(0,0,0,0.08);
    --shadow-app:0 8px 30px rgba(0,0,0,0.15);
    --bubble-color:220,230,255;
    --msg-text-color:#111111;
}
  *{box-sizing:border-box;margin:0;padding:0;}
  html,body{height:100%;overflow:hidden;font-family:Arial,sans-serif;}
  body{background:var(--bg-page);color:var(--color-text);transition:background 0.2s,color 0.2s;}

  /* A dedicated game page uses the chat backend but exposes only the requested
     game window. The outer page owns the single Back to Games link. */
  html.standalone-game-host .top-menu-bar,
  html.standalone-game-host .sidebar,
  html.standalone-game-host .rightbar,
  html.standalone-game-host .main > :not(.vc-game-window){display:none!important;}
  html.standalone-game-host .app-shell,
  html.standalone-game-host .chat-app,
  html.standalone-game-host .main{width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;}
  html.standalone-game-host .chat-app{display:block!important;}
  html.standalone-game-host .main{display:block!important;}
  html.standalone-game-host .vc-game-window{
    position:fixed!important;inset:0!important;transform:none!important;
    width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;
  }
  html.standalone-game-host .vc-game-close{display:none!important;}

  /* -- LAYOUT -- */
  .app-shell{display:flex;flex-direction:column;align-items:stretch;height:100%;padding:0;}
  .chat-app{
    width:100%;flex:1;min-height:0;background:var(--bg-app);
    overflow:hidden;display:grid;
    grid-template-columns:260px 1fr 280px;
    border:1px solid rgba(255,255,255,0.1);
    box-shadow:var(--shadow-app);
  }
  .sidebar{
    background:var(--bg-sidebar);padding:12px;
    display:flex;flex-direction:column;gap:10px;
    overflow-y:auto;height:100%;min-height:0;
  }
  .rightbar{display:flex;flex-direction:column;}
  .sidebar{border-right:1px solid rgba(255,255,255,0.12);box-shadow:2px 0 16px rgba(0,0,0,0.7),inset -1px 0 0 rgba(99,179,237,0.06);}
  .rightbar{border-left:1px solid rgba(255,255,255,0.12);box-shadow:-2px 0 16px rgba(0,0,0,0.7),inset 1px 0 0 rgba(99,179,237,0.06);}
  body.light-mode .sidebar{border-right-color:rgba(0,0,0,0.15);box-shadow:2px 0 10px rgba(0,0,0,0.15);}
  body.light-mode .rightbar{border-left-color:rgba(0,0,0,0.15);box-shadow:-2px 0 10px rgba(0,0,0,0.15);}
  .main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;}

  /* -- BRAND -- */
  .brand{font-size:26px;font-weight:900;letter-spacing:0.05em;color:#f87171;
    text-shadow:0 0 10px rgba(248,113,113,0.8),0 2px 4px rgba(0,0,0,0.9);}
  .brand .version{font-size:11px;font-weight:400;opacity:0.5;vertical-align:middle;margin-left:6px;letter-spacing:0;text-shadow:none;color:var(--color-muted);}

  /* -- PANEL -- */
  .panel{background:var(--bg-panel);border:1px solid rgba(99,179,237,0.18);border-radius:12px;padding:12px;box-shadow:0 4px 20px rgba(0,0,0,0.7),0 1px 0 rgba(99,179,237,0.1);}
  .panel.admin-panel{background:rgba(250,204,21,0.06);border-color:rgba(250,204,21,0.18);}
  .panel-title{font-size:13px;font-weight:bold;margin-bottom:8px;color:var(--color-text);}
  body.light-mode .panel-title{color:#111;}

  /* -- INPUTS -- */
  .input,.textarea{
    width:100%;padding:9px 12px;border-radius:8px;
    border:1.5px solid var(--color-input-border);
    background:var(--bg-input);color:var(--color-input-text);
    outline:none;box-shadow:var(--shadow-input);
    transition:border-color 0.15s,box-shadow 0.15s;font-size:13px;
  }
  .input:focus,.textarea:focus{border-color:var(--color-input-focus);box-shadow:var(--shadow-input),0 0 0 2px rgba(255,255,255,0.06);}
  body.light-mode .input:focus,body.light-mode .textarea:focus{box-shadow:var(--shadow-input),0 0 0 2px rgba(0,0,0,0.06);}
  .textarea{min-height:70px;resize:vertical;}

  /* -- BUTTONS -- */
  .btn{padding:8px 14px;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;color:var(--color-btn-text);background:var(--color-btn);font-weight:600;font-size:13px;transition:background 0.15s;}
  .btn:hover{filter:brightness(1.2);}
  .btn.green{background:#16a34a;color:#fff;border-color:#16a34a;}
  .btn.red{background:#dc2626;color:#fff;border-color:#dc2626;}
  .btn.yellow{background:#b45309;color:#fef3c7;border-color:#b45309;}
  .btn.secondary{background:rgba(255,255,255,0.1);color:var(--color-text);}
  .btn.small{padding:5px 8px;font-size:11px;}
  .icon-btn{
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.12);
    color:white;border-radius:8px;padding:7px 9px;
    cursor:pointer;font-size:15px;line-height:1;flex-shrink:0;
    transition:background 0.15s,border-color 0.15s;
  }
  .icon-btn:hover{background:rgba(255,255,255,0.18);}
  body.light-mode .icon-btn{background:rgba(0,0,0,0.08)!important;border:2px solid #222!important;color:#111!important;}
  .icon-btn[data-notify]{position:relative;}
  .icon-btn[data-notify]::after{
    content:attr(data-notify);
    position:absolute;top:-4px;right:-4px;
    background:#ef4444;color:#fff;border-radius:10px;
    min-width:16px;height:16px;padding:0 4px;
    font-size:10px;font-weight:bold;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 0 8px rgba(239,68,68,0.6);
    animation:notifyPulse 2s ease-in-out infinite;
  }
  @keyframes notifyPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.15);}}
  body.light-mode .icon-btn:hover{background:rgba(0,0,0,0.18)!important;border-color:#000!important;}

  /* -- HEADER -- */
  .top-menu-bar{display:flex;align-items:center;gap:0;padding:0 8px;background:var(--bg-sidebar);border-bottom:1px solid var(--color-border);flex-shrink:0;font-size:12px;z-index:500;height:28px;}
  .top-menu-bar .menu-item{position:relative;}
  .top-menu-bar .menu-item>button{background:none;border:none;color:var(--color-text);cursor:pointer;padding:4px 10px;font-size:12px;height:28px;border-radius:0;}
  .top-menu-bar .menu-item>button:hover,.top-menu-bar .menu-item.open>button{background:rgba(255,255,255,0.12);}
  .menu-dropdown{display:none;position:absolute;top:28px;left:0;min-width:200px;background:#1e1e2e;border:1px solid var(--color-border);border-radius:6px;box-shadow:0 6px 24px rgba(0,0,0,0.7);z-index:1000;padding:4px 0;}
  .menu-item.open .menu-dropdown{display:block;}
  .menu-dropdown button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--color-text);cursor:pointer;padding:6px 16px;font-size:12px;text-align:left;}
  .menu-dropdown button:hover{background:rgba(255,255,255,0.1);}
  .menu-dropdown .menu-sep{border:none;border-top:1px solid var(--color-border);margin:3px 8px;}
  .top-menu-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.6);z-index:2000;display:flex;align-items:center;justify-content:center;}
  .top-menu-modal.hidden{display:none;}
  .top-menu-modal-box{background:#1a1a2e;border:1px solid var(--color-border);border-radius:14px;padding:24px;max-width:480px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,0.8);position:relative;}
  .top-menu-modal-box h2{margin:0 0 12px;font-size:18px;color:#e0e7ff;}
  .top-menu-modal-box p{font-size:13px;line-height:1.6;color:var(--color-muted);margin:0 0 8px;}
  .top-menu-modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#888;font-size:18px;cursor:pointer;}
  .top-menu-modal-close:hover{color:#fff;}
  .chat-header{
    border-bottom:2px solid rgba(99,179,237,0.2) !important;
    display:flex;align-items:center;gap:8px;padding:8px 12px;
    background:var(--bg-header)!important;
    border-bottom:1px solid rgba(255,255,255,0.08)!important;
    flex-shrink:0;box-shadow:0 2px 12px rgba(0,0,0,0.6)!important;
  }
  body.light-mode .chat-header{border-bottom-color:rgba(0,0,0,0.15)!important;}
  .chat-header h2{font-size:15px;font-weight:bold;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  /* -- ROOM TABS -- */
  /* -- ROOM PICKER BAR -- */
  .room-tabs-bar{
    display:flex;align-items:center;gap:4px;padding:5px 10px;
    background:var(--bg-tabs);border-bottom:2px solid rgba(99,179,237,0.15);
    overflow-x:auto;scrollbar-width:none;flex-shrink:0;
  }
  .room-tabs-bar::-webkit-scrollbar{display:none;}
  .room-tab{
    display:flex;align-items:center;gap:4px;padding:5px 12px;
    border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap;
    border:1px solid transparent;transition:background 0.15s,border-color 0.15s;
    position:relative;color:var(--color-text);
  }
  .tab-icon{font-size:15px;line-height:1;flex-shrink:0;}
  .room-tab:hover{background:rgba(255,255,255,0.08);}
  .room-tab.active{background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.2);font-weight:bold;}
  .room-tab.has-unread{background:rgba(248,113,113,0.15);border-color:rgba(248,113,113,0.5);animation:tabUnreadPulse 2s ease-in-out infinite;}
  @keyframes tabUnreadPulse{0%,100%{border-color:rgba(248,113,113,0.4);}50%{border-color:rgba(248,113,113,0.9);box-shadow:0 0 8px rgba(248,113,113,0.4);}}
  body.light-mode .room-tab{color:#111;}
  body.light-mode .room-tab.active{background:rgba(0,0,0,0.15);border-color:rgba(0,0,0,0.25);}
  .tab-gear{opacity:0;font-size:10px;cursor:pointer;transition:opacity 0.15s;}
  .room-tab:hover .tab-gear{opacity:0.7;}
  .room-tab:hover .tab-gear:hover{opacity:1;}
  .room-tab .tab-unread{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:16px;height:16px;border-radius:8px;
    background:#f87171;color:#fff;font-size:10px;font-weight:900;
    padding:0 4px;margin-left:4px;flex-shrink:0;
    animation:unreadPulse 1.5s ease-in-out infinite;
  }
  @keyframes unreadPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.7;transform:scale(1.15);}}
  .create-room-row{display:flex;gap:4px;align-items:center;flex-shrink:0;}
  .create-room-row .input{flex:1;padding:4px 8px;font-size:12px;}

  /* -- QUICK REPLIES -- */
  .quick-replies{display:flex;gap:5px;padding:5px 10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex-shrink:0;background:var(--bg-tabs);}
  .quick-replies::-webkit-scrollbar{display:none;}
  .quick-btn{
    border:1.5px solid rgba(255,255,255,0.35);background:rgba(255,255,255,0.08);
    color:#e2e8f0;border-radius:20px;padding:3px 10px;font-size:11px;
    cursor:pointer;white-space:nowrap;transition:background 0.15s,border-color 0.15s;
  }
  .quick-btn:hover{background:rgba(255,255,255,0.18);border-color:rgba(255,255,255,0.6);}
  body.light-mode .quick-btn{border:2px solid #333!important;background:rgba(0,0,0,0.06)!important;color:#111!important;}
  body.light-mode .quick-btn:hover{background:rgba(0,0,0,0.15)!important;border-color:#000!important;}

  /* -- MESSAGES WRAP -- */
  .messages-wrap{
    flex:1;min-height:0;position:relative;overflow:hidden;
    margin:6px 8px;border-radius:12px;
    background:var(--bg-messages);
    border:2px solid rgba(255,255,255,0.18);
    box-shadow:0 0 0 1px rgba(255,255,255,0.06),0 4px 24px rgba(0,0,0,0.7),
      inset 0 1px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(0,0,0,0.4);
  }
  body.light-mode .messages-wrap{
    border:2px solid rgba(0,0,0,0.3);
    box-shadow:0 0 0 1px rgba(0,0,0,0.08),0 4px 20px rgba(0,0,0,0.25),
      inset 0 1px 0 rgba(255,255,255,0.8),inset 0 -1px 0 rgba(0,0,0,0.1);
  }
  #bgCanvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;display:none;opacity:0.92;}
  #bgCanvas.active{display:block !important;}
  .messages{position:absolute;inset:0;z-index:2;overflow-y:auto;background:transparent;padding:6px 8px;display:flex;flex-direction:column;gap:0;}

  /* -- MESSAGES -- */
  .message{
    width:fit-content;max-width:100%;padding:2px 6px;line-height:1.3;word-wrap:break-word;
    position:relative;border-radius:5px;
    display:flex;flex-direction:row;align-items:center;gap:0;
    font-size:14px;transition:background 0.1s,border-color 0.1s,box-shadow 0.1s;
    border:1px solid transparent;
  }
  .message:hover{
    border:1px solid rgba(255,255,255,0.22)!important;
    filter:brightness(0.85);
  }
  body.light-mode .message:hover{
    border:1px solid rgba(0,0,0,0.2)!important;
    filter:brightness(0.92);
  }
  .msg-main-row{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;}
  .msg-action-row{
    display:flex;align-items:center;gap:4px;flex-shrink:0;
    margin-left:6px;align-self:flex-end;padding-bottom:2px;
    visibility:hidden;
  }
  .message:hover .msg-action-row{visibility:visible;}
  .msg-avatar{width:18px;height:18px;border-radius:4px;object-fit:cover;flex-shrink:0;margin-right:4px;border:1px solid rgba(255,255,255,0.15);vertical-align:middle;display:block;}
  .msg-name{font-weight:900;font-size:13px;flex-shrink:0;margin-right:0;line-height:1;text-shadow:0 0 10px currentColor,0 1px 4px rgba(0,0,0,1),0 2px 10px rgba(0,0,0,1);}
  /* name color set per-user by JS chatColor */
  .msg-body{word-break:break-word;margin-left:5px;color:var(--msg-text-color,#ffffff);font-size:var(--msg-font-size,13px);font-family:var(--msg-font-family,Arial,sans-serif);font-weight:var(--msg-font-weight,700)!important;text-shadow:-1px -1px 0 rgba(0,0,0,0.7),1px -1px 0 rgba(0,0,0,0.7),-1px 1px 0 rgba(0,0,0,0.7),1px 1px 0 rgba(0,0,0,0.7);}
  body.light-mode .msg-body{color:var(--msg-text-color,#111111);font-size:var(--msg-font-size,13px);font-family:var(--msg-font-family,Arial,sans-serif);font-weight:var(--msg-font-weight,700)!important;text-shadow:-1px -1px 0 rgba(255,255,255,0.6),1px -1px 0 rgba(255,255,255,0.6),-1px 1px 0 rgba(255,255,255,0.6),1px 1px 0 rgba(255,255,255,0.6);}
  .message.self{
    background:rgba(var(--bubble-color,0,0,0),var(--bubble-opacity,0.55));
    border-left:3px solid rgba(255,255,255,0.3);
    border-radius:5px;padding:2px 7px;margin:1px 0;
    backdrop-filter:blur(4px);
    box-shadow:0 2px 8px rgba(0,0,0,0.5),0 1px 3px rgba(0,0,0,0.7);
  }
  .message.other{
    background:rgba(var(--bubble-color,0,0,0),var(--bubble-opacity,0.5));
    border-left:3px solid rgba(255,255,255,0.18);
    border-radius:5px;padding:2px 7px;margin:1px 0;
    backdrop-filter:blur(4px);
    box-shadow:0 2px 8px rgba(0,0,0,0.5),0 1px 3px rgba(0,0,0,0.7);
  }
  body.light-mode .message.self,body.light-mode .message.other{
    box-shadow:0 3px 10px rgba(0,0,0,0.25),0 1px 3px rgba(0,0,0,0.3);
  }
  body.light-mode .message.self{
    background:rgba(255,255,255,var(--bubble-opacity,0.75));
    border-left-color:rgba(0,0,0,0.3);
    box-shadow:0 1px 6px rgba(0,0,0,0.2);
  }
  body.light-mode .message.other{
    background:rgba(255,255,255,var(--bubble-opacity,0.65));
    border-left-color:rgba(0,0,0,0.2);
    box-shadow:0 1px 6px rgba(0,0,0,0.15);
  }
  .message.system{justify-content:center;color:#6ee7b7;font-size:12px;opacity:0.75;font-style:italic;padding:2px 8px;}
  /* bot name color is set by chatColor like any user */
  .msg-name.is-friend{color:#4ade80!important;font-weight:900!important;text-shadow:0 0 8px rgba(74,222,128,0.6),0 2px 8px rgba(0,0,0,1)!important;}
  body.light-mode .msg-name.is-friend{color:#15803d!important;text-shadow:none!important;}

  /* Action buttons — all icon-only, matching tts-btn style */
  .msg-icon-btn{
    background:none;border:none;cursor:pointer;font-size:14px;
    opacity:0;padding:0 3px;transition:opacity 0.15s;line-height:1;
    flex-shrink:0;color:var(--color-muted);
  }
  .msg-icon-btn:hover{color:var(--color-text);opacity:1!important;}
  .message:hover .msg-icon-btn{opacity:1;}
  .msg-icon-btn.danger:hover{color:#f87171;}
  .msg-icon-btn.edit:hover{color:#93c5fd;}
  /* keep delete-msg-btn class working for visibility toggling */
  .delete-msg-btn{display:none;}
  .msg-action-row .delete-msg-btn{display:inline;}
  .msg-action-row .delete-msg-btn[style*="none"]{display:none!important;}

  /* Reactions */
  .msg-reactions{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px;width:100%;}
  .reaction-btn{
    display:inline-flex;align-items:center;gap:3px;
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);
    border-radius:12px;padding:1px 7px;font-size:12px;cursor:pointer;
  }
  .reaction-btn:hover{background:rgba(255,255,255,0.18);}
  .reaction-btn.mine{background:rgba(96,165,250,0.2);border-color:rgba(96,165,250,0.5);}
  .reaction-btn .reaction-count{font-size:10px;opacity:0.85;}
  body.light-mode .reaction-btn{background:rgba(0,0,0,0.07);border-color:rgba(0,0,0,0.25);}
  body.light-mode .reaction-btn.mine{background:rgba(37,99,235,0.15);border-color:rgba(37,99,235,0.5);}
  .reaction-picker{
    position:fixed;z-index:9999;background:#1e1e1e;border:1px solid rgba(255,255,255,0.15);
    border-radius:12px;padding:8px;display:flex;flex-wrap:wrap;gap:4px;max-width:220px;
    box-shadow:0 8px 24px rgba(0,0,0,0.7);
  }
  body.light-mode .reaction-picker{background:#f0f0f0;border-color:rgba(0,0,0,0.2);}
  .reaction-picker span{font-size:20px;cursor:pointer;padding:3px;border-radius:6px;transition:background 0.1s;}
  .reaction-picker span:hover{background:rgba(255,255,255,0.15);}
  body.light-mode .reaction-picker span:hover{background:rgba(0,0,0,0.1);}

  /* Images in chat */
  .msg-image{max-width:220px;max-height:160px;border-radius:8px;cursor:pointer;display:block;margin-top:4px;}
  .tts-btn{background:none;border:none;cursor:pointer;font-size:13px;opacity:0;padding:0 3px;transition:opacity 0.15s;line-height:1;flex-shrink:0;color:var(--color-muted);}
  .tts-btn:hover{color:var(--color-text);}
  .message:hover .tts-btn{opacity:1;}
  .tts-btn.playing{opacity:1;color:#60a5fa;}
  .msg-image.is-anim-emoji{width:22px;height:22px;max-width:22px;max-height:22px;border-radius:3px;vertical-align:middle;display:inline;margin:0 1px;}

  /* -- CHAT FORM -- */
  .chat-form{display:flex;gap:6px;padding:10px 12px;border-top:2px solid rgba(99,179,237,0.15);background:var(--bg-form);align-items:center;flex-shrink:0;}
  .message-input{flex:1;font-weight:bold;}
  .emoji-picker-wrap,.gif-picker-wrap{position:relative;flex-shrink:0;}
  .emoji-panel{position:absolute;bottom:calc(100% + 6px);left:0;z-index:200;background:#1e1e1e;border:1px solid rgba(255,255,255,0.15);border-radius:12px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,0.7);}
  body.light-mode .emoji-panel{background:#f0f0f0;border-color:rgba(0,0,0,0.2);}
  .emoji-grid{display:grid;grid-template-columns:repeat(8,36px);gap:2px;}
  .emoji-panel span{font-size:20px;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background 0.1s;}
  .emoji-panel span:hover{background:rgba(255,255,255,0.15);}
  .emoji-panel img.anim-emoji{width:36px;height:36px;cursor:pointer;border-radius:6px;transition:transform 0.1s;}
  .emoji-panel img.anim-emoji:hover{transform:scale(1.2);background:rgba(255,255,255,0.1);}
  body.light-mode .emoji-panel span:hover,.emoji-panel img.anim-emoji:hover{background:rgba(0,0,0,0.1);}
  .gif-panel{position:absolute;bottom:100%;left:0;z-index:200;background:#1e1e1e;border:1px solid rgba(255,255,255,0.15);border-radius:12px;padding:8px;width:280px;box-shadow:0 8px 24px rgba(0,0,0,0.7);}
  body.light-mode .gif-panel{background:#f0f0f0;border-color:rgba(0,0,0,0.2);}
  .gif-search-row{margin-bottom:6px;}
  .gif-search-row input{width:100%;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,0.2);background:#111;color:#eee;outline:none;font-size:12px;}
  body.light-mode .gif-search-row input{background:#fff;color:#111;border-color:rgba(0,0,0,0.3);}
  .gif-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-height:200px;overflow-y:auto;}
  .gif-grid img{width:100%;border-radius:4px;cursor:pointer;}
  .gif-loading{color:#888;font-size:12px;text-align:center;padding:10px;}

  /* -- ONLINE/MEMBERS -- */
  .rightbar-tabs{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0;}
  .rightbar-tab{flex:1;padding:7px;text-align:center;cursor:pointer;font-size:12px;opacity:0.6;transition:opacity 0.15s,border-bottom 0.15s;border-bottom:2px solid transparent;}
  .rightbar-tab.active{opacity:1;border-bottom-color:rgba(255,255,255,0.5);font-weight:bold;}
  body.light-mode .rightbar-tab.active{border-bottom-color:rgba(0,0,0,0.5);}
  .rightbar-panel{flex:1;overflow-y:auto;padding:8px;}
  .online-user{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:8px;cursor:pointer;transition:background 0.1s;}
  .online-user:hover{background:rgba(255,255,255,0.07);}
  body.light-mode .online-user:hover{background:rgba(0,0,0,0.07);}
  .online-user-avatar{width:28px;height:28px;border-radius:6px;object-fit:cover;border:1px solid rgba(255,255,255,0.2);flex-shrink:0;}
  .online-user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:visible;text-overflow:clip;color:var(--color-text);}
  body.light-mode .online-user-name{color:#111;}
  .online-user-name.is-friend{font-weight:700;}
  body.light-mode .online-user-name.is-friend{font-weight:700;}
  .online-user-name .online-user-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .online-user-name .friend-human-icon{color:#22c55e!important;text-shadow:0 0 8px rgba(34,197,94,.85);font-size:13px;line-height:1;flex-shrink:0;}
  body.light-mode .online-user-name .friend-human-icon{color:#15803d!important;text-shadow:none;}
  .online-user-name .private-user-iq-badge{flex-shrink:0;}
  .online-user-status{font-size:10px;color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;}
  .online-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;flex-shrink:0;box-shadow:0 0 6px #4ade80;}
  .online-led{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
  .online-led.on{background:#4ade80;box-shadow:0 0 5px #4ade80;}
  .online-led.off{background:#6b7280;}
  @keyframes buzzPop{0%{transform:translateX(-50%) scale(0.8);}60%{transform:translateX(-50%) scale(1.08);}100%{transform:translateX(-50%) scale(1);}}
  .user-action-btns{display:flex;gap:3px;flex-shrink:0;opacity:1;}
  .user-action-btns .user-btn.secondary-action{display:none;}
  .online-user:hover .user-btn.secondary-action{display:inline-block;}

  .user-btn{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:var(--color-text);border-radius:6px;padding:2px 6px;font-size:11px;cursor:pointer;}
  .user-btn:hover{background:rgba(255,255,255,0.18);}
  body.light-mode .user-btn{background:rgba(0,0,0,0.08);border-color:rgba(0,0,0,0.2);color:#111;}
.friend-action-btn{min-width:62px;text-align:center;font-weight:700;}
  .friend-action-btn.red{background:rgba(220,38,38,.18);border-color:rgba(248,113,113,.55);color:#fecaca;}
  .friend-action-btn.green{background:rgba(22,163,74,.18);border-color:rgba(74,222,128,.55);color:#bbf7d0;}
  body.light-mode .friend-action-btn.red{color:#991b1b;}
  body.light-mode .friend-action-btn.green{color:#166534;}

  /* -- TOGGLE -- */
  .toggle-wrap{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;}
  .toggle-wrap input{opacity:0;width:0;height:0;}
  .toggle-slider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,0.15);border-radius:22px;transition:background 0.2s;}
  .toggle-slider::before{content:'';position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform 0.2s;}
  .toggle-wrap input:checked+.toggle-slider{background:#4ade80;}
  .toggle-wrap input:checked+.toggle-slider::before{transform:translateX(18px);}
  body.light-mode .toggle-slider{background:rgba(0,0,0,0.2);}

  /* -- PREFS -- */
  .pref-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0;}
  .pref-label{font-size:13px;color:var(--color-text);flex:1;}
  .pref-sub{font-size:10px;color:var(--color-muted);margin-top:1px;}
  body.light-mode .pref-label{color:#111;}
  body.light-mode .pref-sub{color:#444;}

  /* -- DIVIDER -- */
  .divider{height:1px;background:rgba(255,255,255,0.08);margin:4px 0;}
  body.light-mode .divider{background:rgba(0,0,0,0.12);}
  .stack{display:flex;flex-direction:column;gap:6px;}
  .row{display:flex;gap:6px;align-items:center;}
  .hidden{display:none!important;}
  .mini-text{font-size:12px;opacity:0.85;}
  body.light-mode .mini-text{color:#333;}

  /* -- STATUS BAR -- */
  .status-bar{padding:3px 12px;font-size:11px;color:#64748b;flex-shrink:0;border-top:1px solid rgba(255,255,255,0.05);}
  .status-bar .error{color:#f87171;}

  /* -- RADIO -- */
  .radio-label{
    display:inline-flex;align-items:center;gap:6px;cursor:pointer;
    background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.25);
    border-radius:50px;padding:6px 14px;transition:background 0.15s,border-color 0.15s;
  }
  .radio-label:hover{background:rgba(255,255,255,0.16);border-color:rgba(255,255,255,0.45);}
  body.light-mode .radio-label{background:rgba(0,0,0,0.08);border-color:rgba(0,0,0,0.35);}
  body.light-mode .radio-label:hover{background:rgba(0,0,0,0.16);border-color:rgba(0,0,0,0.6);}
  .radio-text{font-size:11px;color:var(--color-text);font-weight:700;letter-spacing:.08em;text-transform:uppercase;}



  /* -- ROOM GAME PANEL -- */
  #roomGamePanel{display:none;background:rgba(109,40,217,0.12);border-bottom:1px solid rgba(109,40,217,0.35);padding:8px 12px;gap:10px;flex-wrap:wrap;align-items:flex-start;}
  #roomGamePanel.visible{display:flex;}
  .rgp-section{background:var(--bg-input);border:1px solid rgba(109,40,217,0.3);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-width:220px;flex:1;}
  .rgp-title{font-size:11px;font-weight:bold;color:#a5b4fc;display:flex;align-items:center;gap:4px;}
  .rgp-row{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}
  .rgp-status{font-size:11px;color:#86efac;min-height:14px;}


  /* -- GAME VIEW -- */
  #gameView{display:none;flex-direction:column;flex:1;overflow:hidden;position:relative;}
  #gameView.active{display:flex;}
  #gv-main{flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center;padding:12px 16px;overflow-y:auto;position:relative;}
  #gv-main::-webkit-scrollbar{width:4px;}#gv-main::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px;}
  #gv-main-inner{width:100%;max-width:600px;}
  #gv-log{height:90px;overflow-y:auto;padding:4px 10px;border-top:1px solid rgba(255,255,255,0.08);background:rgba(0,0,0,0.35);flex-shrink:0;}
  #gv-log::-webkit-scrollbar{width:4px;}
  #gv-log::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px;}
  .gv-idle{color:rgba(255,255,255,0.3);font-size:14px;text-align:center;padding:20px;}
  .gv-log-line{font-size:12px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,0.05);color:#cbd5e1;}
  .gv-log-line.win{color:#4ade80;}
  .gv-log-line.loss{color:#f87171;}
  .gv-log-line.chat{color:#94a3b8;}


  /* -- LEADERBOARD -- */
  #leaderboardModal.open{display:flex;}
  .lb-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;margin-bottom:5px;background:rgba(255,255,255,0.04);}
  .lb-row.me{background:rgba(99,102,241,0.18);border:1px solid rgba(99,102,241,0.3);}
  .lb-row.gold{background:rgba(251,191,36,0.1);}


  /* -- SHOP -- */
  .shop-item-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color .2s,background .2s;cursor:default;}
  .shop-item-card:hover{background:rgba(99,102,241,0.1);border-color:rgba(99,102,241,0.4);}
  .shop-item-card .item-emoji{font-size:52px;line-height:1;}
  .shop-item-card .item-name{font-size:13px;font-weight:bold;color:#e2e8f0;text-align:center;}
  .shop-item-card .item-desc{font-size:11px;color:#94a3b8;text-align:center;}
  .shop-item-card .item-price{font-size:13px;font-weight:bold;color:#fbbf24;}
  .shop-item-card .item-buy-btn{padding:6px 18px;border-radius:8px;border:1px solid #22c55e;background:rgba(34,197,94,0.15);color:#4ade80;font-size:12px;font-weight:bold;cursor:pointer;width:100%;transition:background .15s;}
  .shop-item-card .item-buy-btn:hover{background:rgba(34,197,94,0.3);}
  .shop-item-card .item-buy-btn.owned{border-color:#818cf8;background:rgba(99,102,241,0.15);color:#c4b5fd;cursor:default;}
  .shop-item-card .item-place-btn{padding:6px 18px;border-radius:8px;border:1px solid #818cf8;background:rgba(99,102,241,0.15);color:#c4b5fd;font-size:12px;font-weight:bold;cursor:pointer;width:100%;}
  /* -- USER ROOM -- */
  .room-item{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:grab;user-select:none;z-index:10;}
  .room-item:active{cursor:grabbing;}
  .room-item .ri-emoji{font-size:48px;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,0.5));}
  .room-item .ri-label{font-size:10px;color:rgba(255,255,255,0.7);white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,0.8);}
  .room-item.selected{outline:2px dashed #818cf8;outline-offset:4px;border-radius:6px;}
  .room-item .ri-remove{position:absolute;top:-10px;right:-10px;width:20px;height:20px;background:#ef4444;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:12px;display:none;align-items:center;justify-content:center;line-height:1;}
  .room-item.selected .ri-remove{display:flex;}
  .item-picker-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:8px;cursor:pointer;transition:background .15s;}
  .item-picker-chip:hover{background:rgba(99,102,241,0.2);border-color:#818cf8;}
  .item-picker-chip .ipc-emoji{font-size:28px;}
  .item-picker-chip .ipc-name{font-size:10px;color:#94a3b8;}

  /* -- QUIZ -- */
  .quiz-message{background:#1e1b4b;border:2px solid #6d28d9;border-radius:10px;padding:6px 10px;margin:4px 0;color:#fff;box-shadow:0 4px 20px rgba(0,0,0,0.6);}
  .quiz-question{font-size:13px;font-weight:bold;margin-bottom:4px;color:#e0e7ff;}
  .quiz-timer-bar{height:6px;background:#374151;border-radius:3px;margin-bottom:6px;overflow:hidden;}
  .quiz-timer-fill{height:100%;background:#fbbf24;border-radius:3px;transition:width 1s linear;}
  .quiz-timer-fill.stress{background:#ef4444;animation:stressPulse 0.4s ease-in-out infinite;}
  @keyframes stressPulse{0%,100%{opacity:1;}50%{opacity:0.4;}}
  @keyframes blankPulse{0%,100%{opacity:1;transform:scaleX(1);}50%{opacity:0.6;transform:scaleX(0.95);}}
  @keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
  .quiz-timer-text{font-size:12px;color:#fbbf24;font-weight:bold;margin-bottom:4px;}
  .quiz-hint{font-size:10px;color:#a5b4fc;margin-top:2px;}
  .quiz-correct{background:#064e3b;border-color:#10b981;}
  .quiz-wrong{background:#450a0a;border-color:#ef4444;}
  .equalizer{display:flex;align-items:center;height:24px;flex:1;overflow:hidden;border-radius:4px;}
  .equalizer canvas{width:100%;height:100%;display:block;}

  /* -- PM WINDOW -- */
  .pm-window{
    position:fixed;bottom:20px;right:20px;width:340px;height:480px;
    background:#1a1a1a;border:1px solid rgba(255,255,255,0.15);
    border-radius:16px;display:flex;flex-direction:column;z-index:800;overflow:hidden;
    box-shadow:0 8px 32px rgba(0,0,0,0.8);max-width:100%;
  }
  body.light-mode .pm-window{background:#e0e0e0;border-color:rgba(0,0,0,0.2);}
  .pm-window.hidden{display:none!important;}
  .pm-window-header{
    display:flex;align-items:center;gap:8px;padding:10px 12px;
    background:rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.1);
    cursor:move;user-select:none;flex-shrink:0;
  }
  body.light-mode .pm-window-header{background:rgba(0,0,0,0.06);border-bottom-color:rgba(0,0,0,0.1);}
  .pm-window-avatar{width:28px;height:28px;border-radius:6px;object-fit:cover;}
  .pm-window-name{flex:1;font-size:13px;font-weight:bold;color:var(--color-text);}
  .pm-window-close{background:transparent;border:none;color:#888;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;}
  .pm-window-close:hover{background:#dc2626;color:#fff;}
  .pm-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px;display:flex;flex-direction:column;gap:6px;position:relative;background-image:url('https://res.cloudinary.com/dmx0rizsv/image/upload/vicschat_pm_bg.jpg');background-size:cover;background-position:center;}
  .pm-messages::before{
    content:'PM PM PM PM PM\A PM PM PM PM PM\A PM PM PM PM PM\A PM PM PM PM PM\A PM PM PM PM PM\A PM PM PM PM PM';
    white-space:pre;
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    font-size:28px;font-weight:900;letter-spacing:12px;line-height:2.2;
    color:rgba(96,165,250,0.07);
    transform:rotate(-35deg);
    pointer-events:none;
    overflow:hidden;
    z-index:0;
  }
  body.light-mode .pm-messages::before{color:rgba(29,78,216,0.07);}
  .pm-msg{position:relative;z-index:1;}
  .pm-msg{display:flex;flex-direction:column;max-width:80%;}
  .pm-msg.self{align-self:flex-end;align-items:flex-end;}
  .pm-msg.other{align-self:flex-start;align-items:flex-start;}
  .pm-bubble{
    padding:6px 10px;border-radius:12px;font-size:13px;word-break:break-word;
    background:rgba(255,255,255,0.1);color:var(--color-text);
  }
  .pm-msg.self .pm-bubble{background:rgba(255,255,255,0.18);}
  body.light-mode .pm-bubble{background:rgba(0,0,0,0.1);}
  body.light-mode .pm-msg.self .pm-bubble{background:rgba(0,0,0,0.18);}
  .pm-msg-time{font-size:10px;color:#475569;margin-top:2px;}
  .pm-img{max-width:100%;border-radius:8px;cursor:pointer;display:block;margin-top:4px;}
  .pm-file{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);border-radius:10px;padding:8px 12px;margin-top:4px;cursor:pointer;text-decoration:none;color:inherit;}
  .pm-file:hover{background:rgba(255,255,255,0.14);}
  .pm-file-icon{font-size:20px;flex-shrink:0;}
  .pm-file-info{display:flex;flex-direction:column;min-width:0;}
  .pm-file-name{font-size:12px;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-file-size{font-size:10px;opacity:0.6;}
  body.light-mode .pm-file{background:rgba(0,0,0,0.07);border-color:rgba(0,0,0,0.2);}
  .pm-form{display:flex;gap:6px;padding:8px;border-top:1px solid rgba(255,255,255,0.1);flex-shrink:0;overflow:hidden;}
  body.light-mode .pm-form{border-top-color:rgba(0,0,0,0.1);}
  .pm-form input{flex:1;padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,0.2);background:#0d0d0d;color:#eee;outline:none;font-size:13px;}
  body.light-mode .pm-form input{background:#fff;color:#111;border-color:rgba(0,0,0,0.3);}

  /* -- ADMIN WINDOW -- */
  .admin-window{
    position:fixed;top:70px;right:20px;width:520px;max-height:calc(100vh - 100px);
    background:var(--bg-app);border:1px solid rgba(250,204,21,0.3);
    border-radius:16px;z-index:900;display:flex;flex-direction:column;overflow:hidden;
    box-shadow:0 8px 40px rgba(0,0,0,0.8);animation:slideIn 0.2s ease;
  }
  .admin-window.hidden{display:none!important;}
  @keyframes slideIn{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);}}
  .admin-window-header{
    display:flex;align-items:center;justify-content:space-between;padding:10px 14px;
    background:rgba(250,204,21,0.08);border-bottom:1px solid rgba(250,204,21,0.2);
    cursor:move;user-select:none;flex-shrink:0;
  }
  .admin-window-title{font-size:13px;font-weight:bold;color:#fbbf24;}
  .admin-window-close{background:transparent;border:none;color:#888;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;}
  .admin-window-close:hover{background:#dc2626;color:#fff;}
  .admin-window-body{overflow-y:auto;padding:12px;flex:1;}

  /* -- PREFS WINDOW -- */
  .prefs-window{
    position:fixed;top:60px;left:50%;margin-left:min(-430px,-48vw);
    width:min(860px,96vw);max-height:calc(100vh - 80px);
    background:var(--bg-app);border:1px solid var(--color-border);
    border-radius:16px;box-shadow:0 12px 50px rgba(0,0,0,0.8);
    z-index:1000;display:flex;flex-direction:column;overflow:hidden;
  }
  .prefs-window.hidden{display:none!important;}
  .prefs-header{
    display:flex;align-items:center;justify-content:space-between;padding:12px 20px;
    background:var(--bg-header);border-bottom:1px solid var(--color-border);
    cursor:move;user-select:none;flex-shrink:0;
  }
  .prefs-title{font-size:15px;font-weight:bold;color:var(--color-text);}
  .prefs-tab{padding:7px 14px;border:none;background:transparent;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:600;border-radius:8px 8px 0 0;opacity:0.6;transition:opacity 0.15s,background 0.15s;}
  .prefs-tab.active{opacity:1;background:var(--bg-input);border:1px solid var(--color-border);border-bottom:1px solid var(--bg-input);margin-bottom:-1px;}
  .prefs-tab-content{flex:1;}
  .prefs-body{
    padding:14px 20px;display:grid;grid-template-columns:1fr 1fr 1fr;
    gap:8px 24px;overflow-y:auto;align-items:start;
    max-height:calc(100vh - 140px);
  }
  .prefs-full-row{grid-column:1 / -1;}

  /* -- ROOM SETTINGS POPUP -- */
  .room-settings-popup{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
    width:400px;max-height:80vh;background:var(--bg-app);
    border:1px solid var(--color-border);border-radius:16px;
    box-shadow:0 8px 40px rgba(0,0,0,0.8);z-index:1100;
    display:flex;flex-direction:column;overflow:hidden;animation:slideIn 0.2s ease;
  }
  .room-settings-popup.hidden{display:none!important;}
  .room-settings-body{overflow-y:auto;padding:14px;flex:1;}

  /* -- BG GRID -- */
  .bg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;}
  .bg-thumb{
    height:52px;border-radius:8px;border:2px solid transparent;
    background-size:cover;background-position:center;
    cursor:pointer;transition:border-color 0.15s;overflow:hidden;
    display:flex;align-items:flex-end;
  }
  .bg-thumb.active{border-color:#fff;}
  body.light-mode .bg-thumb.active{border-color:#333;}
  .bg-thumb span{font-size:10px;background:rgba(0,0,0,0.6);color:#fff;padding:2px 4px;width:100%;text-align:center;}
  .anim-btns{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
  .anim-btn{padding:3px 8px;border-radius:6px;border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.08);color:var(--color-text);font-size:11px;cursor:pointer;}
  .anim-btn:hover{background:rgba(255,255,255,0.18);}
  .anim-btn.active{border-color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.2);}
  body.light-mode .anim-btn{border-color:rgba(0,0,0,0.2);background:rgba(0,0,0,0.07);color:#111;}
  body.light-mode .anim-btn.active{background:rgba(0,0,0,0.15);}

  /* -- PROFILE POPUP -- */
  .profile-popup{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
    width:300px;background:var(--bg-app);border:1px solid var(--color-border);
    border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,0.8);
    z-index:1200;padding:20px;animation:slideIn 0.2s ease;
  }
  .profile-popup.hidden{display:none!important;}
  .profile-popup-avatar{width:64px;height:64px;border-radius:10px;object-fit:cover;border:2px solid rgba(255,255,255,0.3);margin:0 auto 10px;display:block;}

  /* -- LIGHTBOX -- */
  .lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:pointer;}
  .lightbox.hidden{display:none!important;}
  .lightbox img{max-width:95vw;max-height:95vh;border-radius:8px;}

  /* -- ADMIN BADGE -- */
  .admin-badge{font-size:10px;background:rgba(250,204,21,0.2);color:#fbbf24;border-radius:4px;padding:0 4px;border:1px solid rgba(250,204,21,0.35);}

  /* -- MOBILE -- */
  .mobile-nav{display:none;}
  @media(min-width:761px) and (max-width:1100px){.chat-app{grid-template-columns:260px 1fr;}.rightbar{display:none;}}
  /* PHONE MODE - simpler, bigger, focused on chat */
  body.phone-mode{font-size:16px;}
  body.phone-mode .chat-app{grid-template-columns:1fr!important;border:none;border-radius:0;height:100vh;}
  body.phone-mode .sidebar,body.phone-mode .rightbar{display:none!important;}
  body.phone-mode .sidebar.mobile-active,body.phone-mode .rightbar.mobile-active{
    display:flex!important;position:fixed;top:0;bottom:60px;left:0;right:0;
    z-index:500;background:var(--bg-sidebar)!important;border-radius:0;height:auto;width:auto!important;
  }
  body.phone-mode .main{padding-bottom:64px;}

  /* Header — simpler: just title + 3 essential buttons */
  body.phone-mode .chat-header{padding:10px 12px!important;gap:8px!important;flex-wrap:nowrap!important;}
  body.phone-mode .chat-header h2{font-size:18px!important;font-weight:900;}
  body.phone-mode #roomIqDisplay{padding:5px 10px!important;font-size:13px!important;}
  body.phone-mode #roomIqScore{font-size:17px!important;}
  /* Hide non-essential header buttons - only keep theme toggle, prefs, phone toggle, admin */
  body.phone-mode .chat-header .icon-btn{display:none!important;}
  body.phone-mode .chat-header #themeToggleBtn,
  body.phone-mode .chat-header #phoneModeBtn,
  body.phone-mode .chat-header #prefsOpenBtn,
  body.phone-mode .chat-header #adminOpenBtn{display:inline-flex!important;font-size:18px!important;padding:6px 10px!important;}
  /* Hide games dropdown & gallery in header (accessible via mobile nav) */
  body.phone-mode #gamesDropWrap{display:none!important;}

  /* Mobile nav bar - bigger touch targets */
  body.phone-mode .mobile-nav{
    display:flex!important;position:fixed;bottom:0;left:0;right:0;height:64px;
    background:var(--bg-header);border-top:1px solid var(--color-border);
    z-index:600;align-items:stretch;box-shadow:0 -4px 20px rgba(0,0,0,0.5);
  }
  body.phone-mode .mobile-nav-btn{font-size:24px!important;}
  body.phone-mode .mobile-nav-btn span{font-size:11px!important;}

  /* Messages — bigger and roomier */
  body.phone-mode .message{
    max-width:calc(100vw - 24px)!important;
    font-size:16px!important;
    padding:8px 12px!important;
    line-height:1.45!important;
    margin-bottom:6px!important;
  }
  body.phone-mode .msg-name{font-size:15px!important;}
  body.phone-mode .msg-avatar{width:36px!important;height:36px!important;}
  body.phone-mode #messages{padding:10px 8px!important;}

  /* Hide complex message buttons - keep only essentials */
  body.phone-mode .msg-icon-btn[title*="React"],
  body.phone-mode .msg-icon-btn[title*="TTS"],
  body.phone-mode .msg-icon-btn[title*="speak"]{display:none!important;}

  /* Input row - bigger */
  body.phone-mode .input-row{padding:8px!important;gap:6px!important;}
  body.phone-mode .input-row .input{font-size:16px!important;padding:10px 14px!important;}
  body.phone-mode #sendBtn{padding:10px 16px!important;font-size:16px!important;}
  body.phone-mode #gifBtn,body.phone-mode #attachImageBtn{font-size:18px!important;padding:8px 12px!important;}

  /* Room tabs - bigger, scrollable */
  body.phone-mode #roomTabsBar{overflow-x:auto;flex-wrap:nowrap!important;padding:6px!important;}
  body.phone-mode .room-tab{flex-shrink:0;font-size:14px!important;padding:8px 14px!important;}

  /* Quick replies - hide on phone (cleaner) */
  body.phone-mode .quick-replies{display:none!important;}

  /* All floating windows - full screen on phone */
  body.phone-mode #quizWindow,body.phone-mode #picWindow,body.phone-mode #ctsWindow,
  body.phone-mode #mathWindow,body.phone-mode #hangmanWindow,body.phone-mode #songWindow,
  body.phone-mode #drawWindow,body.phone-mode #botSettingsWindow,body.phone-mode #galleryWindow,
  body.phone-mode #blogWindow,body.phone-mode #missionsWindow,body.phone-mode #adminWindow,
  body.phone-mode .prefs-window{
    width:100vw!important;max-width:100vw!important;left:0!important;right:0!important;
    transform:none!important;top:0!important;height:100vh!important;max-height:100vh!important;
    border-radius:0!important;
  }

  /* Profile popup - bigger */
  body.phone-mode #profilePopup{font-size:16px!important;}
  body.phone-mode #profilePopup .btn{padding:10px 14px!important;font-size:14px!important;}

  /* Hide signed-in strip details (compact view) */
  body.phone-mode #signedInStrip{padding:8px!important;}

  /* Phone mode button highlighted when on */
  body.phone-mode #phoneModeBtn{background:rgba(99,102,241,0.4)!important;border-color:#818cf8!important;color:#fff!important;}

  @media(max-width:760px){
    .chat-app{grid-template-columns:1fr;border:none;border-radius:0;}
    .sidebar,.rightbar{display:none;}
    .sidebar.mobile-active,.rightbar.mobile-active{
      display:flex;position:fixed;top:0;bottom:60px;left:0;right:0;
      z-index:500;background:var(--bg-sidebar)!important;border-radius:0;height:auto;
    }
    .main{padding-bottom:60px;}
    .mobile-nav{
      display:flex;position:fixed;bottom:0;left:0;right:0;height:60px;
      background:var(--bg-header);border-top:1px solid var(--color-border);
      z-index:600;align-items:stretch;box-shadow:0 -4px 20px rgba(0,0,0,0.5);
    }
    .mobile-nav-btn{
      flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:3px;border:none;background:none;color:#475569;cursor:pointer;font-size:20px;transition:color 0.15s,background 0.15s;
    }
    .mobile-nav-btn span{font-size:10px;}
    .mobile-nav-btn.active{color:#e2e8f0;background:rgba(255,255,255,0.08);}
    .mobile-nav-btn.active::after{content:'';position:absolute;top:0;left:20%;right:20%;height:2px;background:rgba(255,255,255,0.6);border-radius:0 0 2px 2px;}
    body.light-mode .mobile-nav-btn.active{color:#111;}
    .prefs-window{width:95vw!important;right:2.5vw!important;left:2.5vw!important;}
    /* Header: stack tightly on mobile */
    .chat-header{flex-wrap:wrap;gap:4px!important;padding:6px 8px!important;}
    .chat-header h2{font-size:14px!important;}
    #roomIqDisplay{padding:3px 6px!important;font-size:11px!important;}
    .icon-btn{padding:4px 6px!important;font-size:12px!important;}
    /* Make all floating windows respect viewport */
    [id$="Window"],[id$="window"],.admin-panel,.prefs-window{
      max-width:95vw!important;max-height:88vh!important;
      left:2.5vw!important;right:2.5vw!important;
    }
    /* Game windows */
    #quizWindow,#picWindow,#ctsWindow,#mathWindow,#hangmanWindow,#songWindow,#drawWindow,
    #botSettingsWindow,#galleryWindow,#blogWindow,#missionsWindow,#adminWindow{
      width:95vw!important;max-width:95vw!important;left:2.5vw!important;right:2.5vw!important;
      transform:none!important;top:60px!important;
    }
    /* Message bubbles fit screen */
    .message{max-width:calc(100vw - 30px)!important;font-size:13px!important;}
    .msg-avatar{width:28px!important;height:28px!important;}
    /* Quick replies horizontal scroll */
    .quick-replies{overflow-x:auto;flex-wrap:nowrap!important;padding:4px!important;}
    .quick-replies button{flex-shrink:0;}
    /* Room tabs scrollable */
    #roomTabsBar{overflow-x:auto;flex-wrap:nowrap!important;}
    .room-tab{flex-shrink:0;font-size:12px!important;}
    /* Bottom input bar */
    .input-row{padding:4px!important;gap:3px!important;}
    .input-row input.input{font-size:14px!important;}
  }

  /* Tablet portrait */
  @media(min-width:761px) and (max-width:900px){
    .sidebar{width:230px;}
    .rightbar{display:none;}
    .message{max-width:calc(100vw - 280px);}
  }

  /* Very small phones */
  @media(max-width:380px){
    .chat-header h2{font-size:12px!important;}
    .icon-btn{padding:3px 4px!important;font-size:11px!important;}
    .message{font-size:12px!important;}
    .msg-avatar{width:24px!important;height:24px!important;}
  }

  /* Landscape phones */
  @media(max-height:500px) and (orientation:landscape){
    .mobile-nav{height:44px!important;}
    .main{padding-bottom:44px!important;}
    .chat-header{padding:3px 6px!important;}
  }

  /* -- NEON EFFECT -- */
  @keyframes neonPulse {
    0%,100%{ box-shadow:0 0 6px rgba(168,85,247,0.6),0 0 14px rgba(168,85,247,0.4),0 0 28px rgba(168,85,247,0.2),inset 0 0 8px rgba(168,85,247,0.05); border-color:rgba(168,85,247,0.7); }
    50%{     box-shadow:0 0 10px rgba(96,165,250,0.7),0 0 22px rgba(96,165,250,0.5),0 0 40px rgba(96,165,250,0.25),inset 0 0 12px rgba(96,165,250,0.08); border-color:rgba(96,165,250,0.8); }
  }
  @keyframes neonHeaderPulse {
    0%,100%{ box-shadow:0 2px 12px rgba(168,85,247,0.5); }
    50%{     box-shadow:0 2px 18px rgba(96,165,250,0.6); }
  }
  body:not(.neon-paused) .chat-app {
    animation: neonPulse 3s ease-in-out infinite;
    border:1.5px solid rgba(168,85,247,0.7);
  }
  body:not(.neon-paused) .chat-header {
    animation: neonHeaderPulse 3s ease-in-out infinite;
  }
  body:not(.neon-paused) .messages-wrap {
    border-color:rgba(168,85,247,0.4);
    box-shadow:0 0 0 1px rgba(168,85,247,0.15),0 4px 24px rgba(0,0,0,0.7),inset 0 1px 0 rgba(168,85,247,0.15);
  }
  body.neon-paused .chat-app { border:1px solid rgba(255,255,255,0.1); animation:none; }

/* ── games dropdown items (was inline near top menu) ── */
          ._gdrop-item{display:flex;align-items:center;gap:7px;width:100%;padding:7px 11px;border:1px solid;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .15s;}
          ._gdrop-item:hover{filter:brightness(1.3);}

/* ── floating game windows (was inline before #quizWindow) ── */
      .vc-game-window{display:none;position:fixed;top:70px;left:50%;transform:translateX(-50%);width:min(760px,96vw);max-height:86vh;background:#111827;border:1px solid rgba(129,140,248,.45);border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.85);z-index:9700;flex-direction:column;overflow:hidden;color:#e5e7eb;}
      #quizWindow.vc-game-window{top:8px;width:min(1080px,98vw);height:min(760px,calc(100vh - 16px));max-height:calc(100vh - 16px);border-width:2px;}
      #quizWindow .vc-game-bar{padding:10px 15px;flex:0 0 auto;}
      #quizWindow .vc-game-title{font-size:19px;}
      #quizWindow .vc-game-body{padding:12px;gap:8px;}
      #quizWindow #quizRunning{flex:1 1 auto;min-height:0;overflow:hidden;padding:6px 10px;gap:4px;}
      #quizWindow #gv-main{flex:1 1 auto;min-height:0;overflow:hidden;padding:4px 10px;align-items:center;}
      #quizWindow #gv-main-inner{height:100%;max-width:760px;display:flex;align-items:center;justify-content:center;}
      #quizWindow .vc-game-main{min-height:0;padding:clamp(6px,1.5vh,16px);font-size:16px;overflow:hidden;}
      #quizWindow .vc-game-log{height:clamp(28px,9vh,72px);flex:0 0 auto;font-size:12px;padding:5px 10px;}
      #quizWindow>#quizChatInput{flex:0 0 auto;margin:0 10px 4px!important;padding:6px 10px;}
      #quizWindow .vc-game-select,#quizWindow .vc-game-input{font-size:14px;padding:9px 11px;}
      #quizWindow .quiz-round{max-width:760px!important;}
      #quizWindow .quiz-round-header{margin-bottom:clamp(3px,1vh,8px)!important;}
      #quizWindow .quiz-round-timer{margin-bottom:clamp(4px,1.2vh,10px)!important;}
      #quizWindow .quiz-round-question{font-size:clamp(13px,2.35vh,17px)!important;line-height:1.25!important;margin-bottom:clamp(5px,1.5vh,14px)!important;}
      #quizWindow .quiz-round-choice{padding:clamp(5px,1.25vh,10px) 10px!important;margin-bottom:clamp(2px,.8vh,7px)!important;font-size:clamp(12px,1.8vh,13px)!important;}
      #quizWindow .quiz-round-skip{margin-top:clamp(2px,.8vh,8px)!important;padding:clamp(4px,1vh,8px) 12px!important;}
      #quizWindow .quiz-round-meta{margin-top:clamp(2px,.7vh,6px)!important;}
      .top-quiz-join{align-self:center;margin-left:6px;padding:5px 11px;border:1px solid #22c55e;border-radius:8px;background:linear-gradient(135deg,rgba(34,197,94,.25),rgba(14,165,233,.22));color:#bbf7d0;font-weight:900;font-size:12px;cursor:pointer;white-space:nowrap;box-shadow:0 0 16px rgba(34,197,94,.16);}
      .top-quiz-join:hover{filter:brightness(1.2);}
      .vc-game-bar{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#1e1b4b;border-bottom:1px solid rgba(129,140,248,.35);cursor:move;user-select:none;}
      .vc-game-title{font-weight:900;font-size:14px;flex:1;color:#c4b5fd;}
      .vc-game-body{padding:12px;overflow:auto;display:flex;flex-direction:column;gap:10px;}
      .vc-game-main{min-height:190px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;}
      .vc-game-log{height:110px;overflow:auto;background:rgba(0,0,0,.35);border-top:1px solid rgba(255,255,255,.08);padding:8px 10px;font-size:12px;}
      .vc-game-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
      .vc-game-close{background:rgba(239,68,68,.18);border:1px solid rgba(239,68,68,.5);color:#fca5a5;border-radius:7px;padding:4px 10px;cursor:pointer;font-weight:700;}
      .vc-game-action{background:rgba(99,102,241,.22);border:1px solid #818cf8;color:#c4b5fd;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:800;}
      .vc-game-stop{background:rgba(239,68,68,.18);border:1px solid #ef4444;color:#fca5a5;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:800;display:none;}
      .vc-game-small{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#e5e7eb;border-radius:7px;padding:5px 9px;cursor:pointer;}
      .vc-game-input,.vc-game-select{background:#020617;border:1px solid rgba(255,255,255,.18);color:#e5e7eb;border-radius:7px;padding:6px 8px;}
      .vc-timer{height:7px;background:#374151;border-radius:99px;overflow:hidden;flex:1;min-width:120px;}
      .vc-timer>div{height:100%;width:0%;background:#fbbf24;transition:width .2s linear;}
      @media(max-height:540px){#quizWindow .vc-game-bar{padding:4px 10px}#quizWindow .vc-game-title{font-size:14px}#quizWindow #quizRunning{padding:3px 6px}#quizWindow #gv-main{padding:2px 6px}#quizWindow .vc-game-main{padding:4px 7px}#quizWindow .quiz-round-question{font-size:12px!important;line-height:1.15!important;margin-bottom:4px!important}#quizWindow .quiz-round-choice{padding:3px 7px!important;margin-bottom:2px!important;font-size:11px!important}#quizWindow .quiz-round-skip{padding:3px 8px!important;margin-top:2px!important;font-size:11px!important}#quizWindow .quiz-round-meta{display:none!important}#quizWindow>.vc-game-input{font-size:11px!important;padding:3px 7px!important;margin-bottom:2px!important}#quizWindow .vc-game-log{height:24px;padding:2px 7px;font-size:10px}}
      @media(max-width:720px){#quizWindow.vc-game-window{top:4px;width:calc(100vw - 8px);height:calc(100vh - 8px);max-height:calc(100vh - 8px)}#quizWindow .vc-game-main{padding:8px}#quizWindow .vc-game-body{padding:7px}.top-quiz-join{font-size:0;padding:5px 8px}.top-quiz-join::after{content:'🎯';font-size:14px}}

/* ── Hangman layout (fits the panel, wraps on narrow screens) ── */
.hangman-stage{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:center;}
.hangman-figure{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto;width:220px;max-width:100%;}
.hangman-play{flex:1 1 220px;min-width:170px;display:flex;flex-direction:column;gap:12px;}
#hangmanLetters button{width:32px;height:32px;border-radius:6px;font-size:13px;font-weight:bold;cursor:pointer;transition:all .15s;}
@keyframes hmBounce{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-12px) rotate(-7deg)}75%{transform:translateY(-12px) rotate(7deg)}}
.hm-bounce{animation:hmBounce .6s ease-in-out infinite;transform-origin:center bottom;}

/* ── Draw & Guess multiplayer lobby ─────────────────────────────── */
#drawWindow.vc-game-window{width:min(900px,98vw);max-height:calc(100vh - 20px);top:10px;border-color:rgba(34,211,238,.6);}
#drawWindow .vc-game-bar{background:linear-gradient(100deg,#172554,#312e81 58%,#164e63);}
.draw-live-badge{display:inline-flex;margin-left:7px;padding:3px 7px;border:1px solid rgba(74,222,128,.7);border-radius:999px;color:#86efac;background:rgba(22,163,74,.18);font-size:9px;letter-spacing:.1em;vertical-align:middle;}
.draw-game-body{gap:8px!important;min-height:0;}
.draw-lobby{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid rgba(34,211,238,.28);border-radius:11px;background:linear-gradient(100deg,rgba(14,116,144,.16),rgba(79,70,229,.12));}
.draw-lobby-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto;}
.draw-lobby-actions strong{color:#a5f3fc;font-size:11px;white-space:nowrap;}
.draw-join-btn{border-color:#22c55e!important;color:#bbf7d0!important;background:rgba(34,197,94,.18)!important;}
.draw-player-list{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;padding:2px;scrollbar-width:thin;}
.draw-player-chip{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(129,140,248,.36);border-radius:999px;color:#dbeafe;background:rgba(99,102,241,.15);font-size:10px;font-weight:800;}
.draw-player-chip.is-me{border-color:rgba(74,222,128,.65);color:#bbf7d0;background:rgba(34,197,94,.14);}
.draw-waiting-player{color:#94a3b8;font-size:11px;font-style:italic;}
.draw-controls-row{flex:0 0 auto;}
.draw-controls-row label{display:flex;align-items:center;gap:4px;color:#cbd5e1;font-size:11px;}
.draw-canvas-wrap{position:relative;min-height:0;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px rgba(34,211,238,.32),0 8px 24px rgba(0,0,0,.28);}
#drawCanvas{display:block;width:100%;height:auto;max-height:48vh;background:#fff;border-radius:12px;touch-action:none;cursor:crosshair;}
#drawOverlay{display:none;position:absolute;inset:0;align-items:center;justify-content:center;background:rgba(2,6,23,.68);border-radius:12px;backdrop-filter:blur(2px);}
.draw-guess-row{flex:0 0 auto;}
#drawGuessInput:disabled,#drawGuessBtn:disabled,#startDrawBtn:disabled{opacity:.5;cursor:not-allowed;}
#drawScoreList{display:flex;gap:6px;flex-wrap:wrap;min-height:22px;}
@media(max-width:620px){.draw-lobby{align-items:flex-start;flex-direction:column}.draw-player-list{width:100%}.draw-controls-row .vc-timer{flex-basis:100%}.draw-live-badge{display:none}#drawCanvas{max-height:40vh}}

/* =====================================================================
   LOONY COMMUNITY THEME
   Shared with the Games site's navy, cyan, lime and patterned surfaces.
   ===================================================================== */
:root {
  color-scheme: dark;
  --bg-page:#071a34; --bg-app:rgba(7,24,48,.96); --bg-sidebar:rgba(7,29,53,.96);
  --bg-header:rgba(13,49,78,.96); --bg-form:rgba(5,24,47,.98); --bg-panel:rgba(12,45,73,.78);
  --bg-input:rgba(3,18,39,.92); --bg-tabs:rgba(5,24,47,.96); --bg-messages:rgba(4,20,42,.94);
  --color-text:#f8fbff; --color-muted:#96a8c0; --color-border:rgba(109,237,255,.26);
  --color-input-border:rgba(109,237,255,.28); --color-input-focus:rgba(0,245,255,.68);
  --color-input-text:#f8fbff; --color-panel-border:rgba(109,237,255,.24);
  --color-msg-self-bg:rgba(17,67,99,.82); --color-msg-other-bg:rgba(10,43,74,.82);
  --color-msg-self-border:rgba(0,245,255,.48); --color-msg-other-border:rgba(109,237,255,.22);
  --color-btn:rgba(0,245,255,.09); --color-btn-text:#eaffff;
  --shadow-panel:0 14px 34px rgba(0,0,0,.32),inset 0 1px 0 rgba(156,245,255,.05);
  --shadow-input:inset 0 2px 6px rgba(0,0,0,.38); --shadow-app:0 22px 70px rgba(0,0,0,.36);
  --bubble-opacity:1; --msg-text-color:#e6eef7; --msg-font-size:14px; --msg-font-weight:550;
  --msg-font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --loony-cyan:#00f5ff; --loony-lime:#a6ff4d; --loony-pink:#ff3df2; --loony-line:rgba(109,237,255,.34);
}

html,body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
body{
  position:relative;
  background:
    radial-gradient(circle at 12% 8%,rgba(0,245,255,.24),transparent 34%),
    radial-gradient(circle at 90% 6%,rgba(255,61,242,.17),transparent 32%),
    radial-gradient(circle at 50% 100%,rgba(166,255,77,.11),transparent 40%),
    linear-gradient(145deg,#0a3153,#071a34 48%,#10264b);
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 5px 5px,rgba(196,248,255,.17) 1px,transparent 1.6px),
    radial-gradient(circle at 19px 19px,rgba(166,255,77,.10) 1.2px,transparent 1.9px),
    linear-gradient(45deg,transparent 47%,rgba(0,245,255,.055) 48%,rgba(0,245,255,.055) 52%,transparent 53%),
    linear-gradient(-45deg,transparent 47%,rgba(255,61,242,.04) 48%,rgba(255,61,242,.04) 52%,transparent 53%);
  background-size:28px 28px,28px 28px,56px 56px,56px 56px;opacity:.72;
}
.app-shell{position:relative;z-index:1;}
.chat-app{
  grid-template-columns:278px minmax(0,1fr) 300px;background:rgba(5,22,44,.9);
  border:1px solid rgba(105,242,255,.44);box-shadow:inset 0 0 54px rgba(0,245,255,.035),var(--shadow-app);
}
body:not(.neon-paused) .chat-app{animation:none;border:1px solid rgba(105,242,255,.44);}
body:not(.neon-paused) .chat-header{animation:none;}
.sidebar,.rightbar{background:linear-gradient(160deg,rgba(13,53,82,.92),rgba(6,24,48,.97));}
.sidebar{border-right:1px solid rgba(166,255,77,.2);box-shadow:inset -1px 0 0 rgba(0,245,255,.08);}
.rightbar{border-left:1px solid rgba(109,237,255,.3);box-shadow:inset 1px 0 0 rgba(0,245,255,.06);}
.brand{color:#62eeff;font-size:25px;letter-spacing:.025em;text-shadow:0 0 18px rgba(0,245,255,.34),0 2px 4px rgba(0,0,0,.8);}
.brand .version{color:var(--loony-lime);opacity:.8;font-weight:800;}

.top-menu-bar{height:34px;padding:0 12px;background:rgba(5,27,51,.98);border-bottom:1px solid rgba(109,237,255,.35);box-shadow:0 8px 28px rgba(0,0,0,.18);}
.top-menu-bar .menu-item>button{height:34px;padding:5px 12px;color:#cceaf2;font-weight:750;}
.top-menu-bar .menu-item>button:hover,.top-menu-bar .menu-item.open>button{color:#fff;background:rgba(0,245,255,.11);}
.menu-dropdown,.top-menu-modal-box,.admin-window,.prefs-window,.room-settings-popup,.pm-window,[id$="Window"]{
  background:rgba(6,27,52,.98);border-color:rgba(109,237,255,.35);
  box-shadow:0 22px 65px rgba(0,0,0,.52),inset 0 1px 0 rgba(151,240,255,.07);
}
.panel{background:linear-gradient(150deg,rgba(18,62,92,.78),rgba(8,31,58,.86));border:1px solid rgba(109,237,255,.27);border-radius:15px;box-shadow:var(--shadow-panel);}
.panel-title,.rightbar-tabs{color:#dff8ff;font-weight:850;letter-spacing:.02em;}

.chat-header{
  min-height:58px;padding:9px 14px;
  background:radial-gradient(circle at 10% 0%,rgba(0,245,255,.13),transparent 38%),linear-gradient(160deg,rgba(17,59,93,.96),rgba(7,29,55,.98))!important;
  border-bottom:1px solid rgba(109,237,255,.34)!important;
  box-shadow:inset 0 -1px 0 rgba(0,245,255,.05),0 8px 26px rgba(0,0,0,.24)!important;
}
.chat-header h2{color:#f8fbff;font-size:18px;font-weight:900;letter-spacing:.01em;}
#roomHostBadge{border-color:rgba(166,255,77,.52)!important;background:rgba(166,255,77,.1)!important;color:#d9ffad!important;box-shadow:0 0 18px rgba(166,255,77,.08);}
#roomHostBadge.is-current-host{padding:7px 12px!important;border-color:rgba(166,255,77,.85)!important;background:linear-gradient(135deg,rgba(166,255,77,.24),rgba(0,245,255,.12))!important;color:#efffdc!important;font-size:12px!important;box-shadow:0 0 22px rgba(166,255,77,.18),inset 0 1px 0 rgba(255,255,255,.12);}
.sidebar-host-crown{display:none;align-items:center;justify-content:center;flex:0 0 auto;font-size:13px;line-height:1;color:#d9ffad;text-shadow:0 0 9px rgba(166,255,77,.75),0 1px 2px rgba(0,0,0,.8);}
.sidebar-host-crown.is-visible{display:inline-flex;}
#adminOpenBtn.host-menu-button{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-color:rgba(166,255,77,.62);background:rgba(166,255,77,.13);color:#e5ffc8!important;box-shadow:0 0 18px rgba(166,255,77,.1);}
#adminOpenBtn.host-menu-button:hover{border-color:rgba(166,255,77,.9);background:rgba(166,255,77,.22);}
#adminOpenBtn.host-menu-locked{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-color:rgba(109,237,255,.32);background:rgba(0,245,255,.07);color:#b9d9e3!important;}
#adminOpenBtn.host-menu-locked:hover{border-color:rgba(0,245,255,.58);background:rgba(0,245,255,.14);color:#efffff!important;}
.icon-btn{background:rgba(0,245,255,.07);border-color:rgba(109,237,255,.24);color:#dffcff;border-radius:9px;}
.icon-btn:hover{background:rgba(0,245,255,.17);border-color:rgba(0,245,255,.56);}

.room-tabs-bar,.quick-replies{background:rgba(4,22,45,.96);border-bottom-color:rgba(109,237,255,.2);}
.room-tabs-bar{padding:7px 12px;gap:7px;}
.room-tab{padding:7px 13px;border:1px solid rgba(109,237,255,.12);border-radius:9px;color:#bfd1e1;}
.room-tab:hover{color:#fff;background:rgba(0,245,255,.08);border-color:rgba(0,245,255,.27);}
.room-tab.active{color:#dfffff;background:rgba(0,245,255,.12);border-color:rgba(0,245,255,.47);box-shadow:inset 0 0 18px rgba(0,245,255,.06),0 0 14px rgba(0,245,255,.06);}
.room-tab .tab-unread{background:var(--loony-lime);color:#092037;box-shadow:0 0 12px rgba(166,255,77,.34);}

.messages-wrap{
  margin:10px 12px;border:1px solid rgba(109,237,255,.4);border-radius:17px;
  background:
    radial-gradient(circle at 8px 8px,rgba(189,244,255,.11) 1px,transparent 1.55px),
    linear-gradient(135deg,rgba(0,245,255,.035) 25%,transparent 25%) 0 0/46px 46px,
    linear-gradient(160deg,rgba(6,34,61,.9),rgba(5,20,43,.96));
  box-shadow:inset 0 0 44px rgba(0,245,255,.035),0 18px 45px rgba(0,0,0,.28);
}
body:not(.neon-paused) .messages-wrap{border-color:rgba(109,237,255,.4);box-shadow:inset 0 0 44px rgba(0,245,255,.035),0 18px 45px rgba(0,0,0,.28);}
.messages{padding:10px 14px;gap:4px;align-items:flex-start;}
.message,.message.self,.message.other{
  align-self:flex-start;flex:0 0 auto;width:fit-content;min-width:0;max-width:96%;min-height:0;padding:3px 8px;margin:0;
  border:1px solid rgba(166,239,255,.16);border-left:3px solid rgba(0,245,255,.42);
  border-radius:11px 11px 11px 4px;background:linear-gradient(135deg,rgba(25,78,109,.66),rgba(9,36,66,.72));
  box-shadow:0 5px 18px rgba(0,0,0,.2);backdrop-filter:blur(5px);
}
.message.self{align-self:flex-start;border-left:3px solid rgba(166,255,77,.55);border-right-width:1px;border-radius:11px 11px 11px 4px;background:linear-gradient(135deg,rgba(22,82,91,.7),rgba(8,42,66,.76));}
.message:hover{filter:none;border-color:rgba(0,245,255,.42)!important;box-shadow:0 8px 24px rgba(0,0,0,.24),0 0 18px rgba(0,245,255,.05);}
.msg-avatar{width:24px;height:24px;margin-right:6px;border:1px solid rgba(0,245,255,.43);border-radius:50%;box-shadow:0 0 8px rgba(0,245,255,.1);}
.msg-main-row{align-items:baseline;}
.msg-name{color:#62eeff!important;font-size:13px;line-height:1.15;text-shadow:0 0 12px rgba(0,245,255,.16),0 1px 3px rgba(0,0,0,.9)!important;}
.msg-body{margin-left:5px;color:#e6eef7;font-size:13px;line-height:1.2;text-shadow:none;}
.message.system{align-self:center;min-height:0;padding:5px 8px;border:0;background:transparent;color:#73f594;box-shadow:none;font-weight:850;font-style:normal;}

.quick-replies{padding:7px 12px;gap:7px;}
.quick-btn{padding:5px 11px;border-color:rgba(109,237,255,.28);background:rgba(0,245,255,.055);color:#dcecf6;border-radius:999px;}
.quick-btn:hover{color:#fff;background:rgba(0,245,255,.14);border-color:rgba(0,245,255,.55);}
.chat-form{padding:12px 14px;border-top:1px solid rgba(109,237,255,.25);background:rgba(4,22,44,.97);}
.input,.textarea,.message-input,.chat-form input,.chat-form textarea,select{background:rgba(2,17,36,.88);border-color:rgba(109,237,255,.27);color:#f1fbff;border-radius:9px;}
.input:focus,.textarea:focus,.message-input:focus,.chat-form input:focus{border-color:var(--loony-cyan);box-shadow:var(--shadow-input),0 0 0 2px rgba(0,245,255,.11),0 0 20px rgba(0,245,255,.06);}
.btn,#sendBtn{border-color:rgba(109,237,255,.3);background:rgba(0,245,255,.09);color:#e8fcff;border-radius:9px;font-weight:800;}
.btn:hover,#sendBtn:hover{background:rgba(0,245,255,.18);border-color:rgba(0,245,255,.58);}
.btn.green{background:rgba(166,255,77,.14);border-color:rgba(166,255,77,.55);color:#dcffba;}

.rightbar-tabs{background:rgba(4,22,45,.96);border-bottom-color:rgba(109,237,255,.24);}
.rightbar-tab{padding:11px 8px;color:#aebed0;}
.rightbar-tab.active{color:var(--loony-lime);border-bottom-color:var(--loony-lime);}
.rightbar-panel{padding:11px;}
.online-user{min-height:42px;padding:7px 8px;border:1px solid transparent;}
.online-user:hover{background:rgba(0,245,255,.065);border-color:rgba(109,237,255,.16);}
.online-user-avatar{width:32px;height:32px;border-radius:50%;border-color:rgba(0,245,255,.4);}
.online-user-name{color:#eaf8ff;font-weight:750;}
.online-dot,.online-led.on{background:#73f594;box-shadow:0 0 9px rgba(115,245,148,.8);}
.status-bar{color:#85a0bb;background:rgba(3,18,38,.95);border-top-color:rgba(109,237,255,.13);}

::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:rgba(2,14,31,.36);}
::-webkit-scrollbar-thumb{background:rgba(0,245,255,.22);border:2px solid rgba(2,14,31,.55);border-radius:999px;}
@media(min-width:1281px) and (max-width:1600px){
  .chat-header{gap:4px;padding:6px 7px;}
  .chat-header h2{font-size:14px;min-width:42px;}
  #roomHostBadge{gap:3px!important;padding:3px 6px!important;font-size:9px!important;}
  #adminOpenBtn.host-menu-button,#adminOpenBtn.host-menu-locked{gap:3px;padding:4px 6px;font-size:10px!important;}
  #roomIqDisplay{gap:2px!important;margin-left:0!important;padding:3px 5px!important;}
  #roomIqDisplay span{font-size:10px!important;}
  #roomIqScore{font-size:12px!important;}
  .chat-header>div:last-child{gap:2px!important;min-width:0;}
  .chat-header>div:last-child .icon-btn{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:24px;height:26px;padding:3px 4px!important;font-size:11px!important;border-radius:7px;
  }
  #gamesDropdownBtn{min-width:0!important;height:26px;padding:3px 5px!important;gap:2px!important;font-size:9px!important;}
  #gamesDropdownArrow{font-size:8px!important;}
}
@media(max-width:1280px){.chat-app{grid-template-columns:250px minmax(0,1fr);}.rightbar{display:none;}}
@media(max-width:760px){
  body::before{opacity:.45}.chat-app{grid-template-columns:minmax(0,1fr)}.chat-header{min-height:54px}
  #roomHostBadge{font-size:10px!important;padding:4px 7px!important}.messages-wrap{margin:6px;border-radius:12px}
  .messages{padding:7px 6px}.message,.message.self,.message.other{min-width:0;max-width:96%}
}
