body
{
   background-color: #FFFFFF;
   color: #000000;
   font-family: Arial;
   font-weight: normal;
   font-size: 13px;
   line-height: 1.1875;
   margin: 0;
   padding: 0;
}
  :root {
    --bubble-opacity: 0.55;
    --bubble-color: 0,0,0;
    --msg-font-size: 15px;
    --msg-font-family: Arial, sans-serif;
    /* Dark mode - each zone has a distinct tone */
    --bg-page:#2c2c2c;
    --bg-app:#383838;          /* main app */
    --bg-sidebar:#303030;      /* sidebar */
    --bg-header:#404040;       /* header */
    --bg-form:#363636;         /* chat input bar */
    --bg-panel:#424242;        /* floating panels */
    --bg-input:#2a2a2a;        /* inputs */
    --bg-tabs:#323232;         /* tabs bar */
    --bg-messages:#2e2e2e;     /* messages area */
    --color-text:#f0f0f0;
    --color-muted:#aaaaaa;
    --color-border:rgba(255,255,255,0.1);
    --color-input-border:rgba(255,255,255,0.3);
    --color-input-focus:rgba(255,255,255,0.55);
    --color-input-text:#e6edf3;
    --color-panel-border:rgba(99,179,237,0.15);
    --color-msg-self-bg:rgba(255,255,255,0.09);
    --color-msg-other-bg:rgba(255,255,255,0.04);
    --color-msg-self-border:rgba(255,255,255,0.28);
    --color-msg-other-border:rgba(255,255,255,0.12);
    --color-btn:#21262d; --color-btn-text:#e6edf3;
    --shadow-panel:0 4px 20px rgba(0,0,0,0.8),0 1px 4px rgba(0,0,0,0.6);
    --shadow-input:inset 0 2px 6px rgba(0,0,0,0.8);
    --shadow-app:0 20px 80px rgba(0,0,0,0.9);
  }
  body.light-mode {
    --bg-page:#787878; --bg-app:#c8c8c8; --bg-sidebar:#b0b0b0;
    --bg-header:#a8a8a8; --bg-form:#a8a8a8; --bg-panel:#d8d8d8;
    --bg-input:#e8e8e8; --bg-tabs:#a0a0a0; --bg-messages:#bbbbbb;
    --color-text:#111111; --color-muted:#333333;
    --color-border:rgba(0,0,0,0.25);
    --color-input-border:rgba(0,0,0,0.5);
    --color-input-focus:rgba(0,0,0,0.75);
    --color-input-text:#111111;
    --color-panel-border:rgba(0,0,0,0.18);
    --color-msg-self-bg:rgba(0,0,0,0.1);
    --color-msg-other-bg:rgba(0,0,0,0.05);
    --color-msg-self-border:rgba(0,0,0,0.35);
    --color-msg-other-border:rgba(0,0,0,0.18);
    --color-btn:#2a2a2a; --color-btn-text:#ffffff;
    --shadow-panel:0 4px 16px rgba(0,0,0,0.35),0 1px 4px rgba(0,0,0,0.2);
    --shadow-input:inset 0 2px 5px rgba(0,0,0,0.2);
    --shadow-app:0 20px 60px rgba(0,0,0,0.5);
  }
  *{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;}

  /* -- LAYOUT -- */
  .app-shell{display:flex;align-items:center;justify-content:center;height:100%;padding:0;}
  .chat-app{
    width:100%;height:100%;background:var(--bg-app);
    overflow:hidden;display:grid;
    grid-template-columns:260px 1fr 300px;
    border:1px solid rgba(255,255,255,0.1);
    box-shadow:var(--shadow-app);
  }
  .sidebar,.rightbar{
    background:var(--bg-sidebar);padding:12px;
    display:flex;flex-direction:column;gap:10px;
    overflow-y:auto;height:100%;min-height:0;
  }
  .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-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;}
  body.light-mode .icon-btn:hover{background:rgba(0,0,0,0.18)!important;border-color:#000!important;}

  /* -- HEADER -- */
  .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-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;}
  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;}
  .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:2px;}

  /* -- MESSAGES -- */
  .message{
    width:fit-content;max-width:100%;padding:1px 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:2px;color:var(--msg-text-color,#ffffff);font-size:var(--msg-font-size,13px);font-family:var(--msg-font-family,Arial,sans-serif);font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,0.8);}
  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:600;text-shadow:none;}
  .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 */
  .delete-msg-btn{
    display:none;background:rgba(220,38,38,0.85);border:1px solid rgba(220,38,38,0.6);
    color:white;border-radius:5px;cursor:pointer;font-size:11px;padding:2px 7px;
  }
  .msg-action-row .delete-msg-btn{display:block;}
  .msg-action-row .delete-msg-btn[style*="none"]{display:none!important;}
  .add-reaction-msg-btn{
    background:rgba(60,60,60,0.85);border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.85);
    border-radius:5px;cursor:pointer;font-size:11px;padding:2px 7px;
    display:inline-flex;align-items:center;gap:3px;white-space:nowrap;
  }
  .add-reaction-msg-btn:hover{background:rgba(90,90,90,0.9);border-color:rgba(255,255,255,0.4);}
  body.light-mode .add-reaction-msg-btn{background:rgba(210,210,210,0.9);color:#111;border-color:rgba(0,0,0,0.3);}

  /* 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;}

  /* -- 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;}
  .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;display:grid;grid-template-columns:repeat(8,36px);gap:2px;width:auto;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-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);}
  body.light-mode .emoji-panel span: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:hidden;text-overflow:ellipsis;color:var(--color-text);}
  body.light-mode .online-user-name{color:#111;}
  .online-user-name.is-friend{color:#4ade80;font-weight:700;}
  body.light-mode .online-user-name.is-friend{color:#15803d;}
  .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;}
  .user-action-btns{display:flex;gap:4px;flex-shrink:0;}
  .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;}

  /* -- 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;}
  .equalizer{display:flex;align-items:flex-end;gap:2px;height:20px;flex:1;}
  .eq-bar{width:3px;border-radius:2px 2px 0 0;background:linear-gradient(to top,#555,#aaa,#eee);animation:eqBounce 0ms ease-in-out infinite alternate;}
  .eq-bar:nth-child(1){height:6px;animation-duration:420ms;animation-delay:0ms;}
  .eq-bar:nth-child(2){height:14px;animation-duration:380ms;animation-delay:60ms;}
  .eq-bar:nth-child(3){height:20px;animation-duration:500ms;animation-delay:120ms;}
  .eq-bar:nth-child(4){height:10px;animation-duration:350ms;animation-delay:40ms;}
  .eq-bar:nth-child(5){height:18px;animation-duration:460ms;animation-delay:90ms;}
  .eq-bar:nth-child(6){height:8px;animation-duration:410ms;animation-delay:150ms;}
  .eq-bar:nth-child(7){height:16px;animation-duration:390ms;animation-delay:30ms;}
  .eq-bar:nth-child(8){height:12px;animation-duration:480ms;animation-delay:70ms;}
  @keyframes eqBounce{from{transform:scaleY(0.2);opacity:0.5;}to{transform:scaleY(1);opacity:1;}}
  .equalizer.paused .eq-bar{animation-play-state:paused;transform:scaleY(0.15);opacity:0.3;}

  /* -- 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);
  }
  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;padding:10px;display:flex;flex-direction:column;gap:6px;position:relative;}
  .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;}
  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:340px;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-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;}}
  @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;}
  }

  /* -- 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; }
