body
{
   background-color: #FFFFFF;
   color: #000000;
   font-family: Arial;
   font-weight: normal;
   font-size: 13px;
   line-height: 1.1875;
   margin: 0;
   padding: 0;
}
  :root {
    --bg-deep:#1a1410;
    --bg:#221a15;
    --bg-soft:#2c211b;
    --bg-bubble-other:#352720;
    --bg-bubble-self:#5a3a1f;
    --bg-bubble-bot:#3d2f24;
    --border:rgba(212,160,86,0.18);
    --border-soft:rgba(244,234,213,0.08);
    --text:#f4ead5;
    --text-dim:#c4b39a;
    --text-faint:#8a7965;
    --amber:#d4a056;
    --amber-bright:#f5b955;
    --amber-soft:rgba(212,160,86,0.14);
    --bot:#e8b878;
    --shadow-soft:0 4px 14px rgba(0,0,0,0.4);
    --shadow-deep:0 18px 50px rgba(0,0,0,0.55);
    --radius:14px;
    --font:'Heebo','Rubik','Segoe UI','Helvetica Neue',Arial,sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;height:100%;overflow:hidden;}
  body{
    background:radial-gradient(ellipse at top,#2a1f17 0%,var(--bg-deep) 70%);
    color:var(--text);
    font-family:var(--font);
    font-size:15px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  button,input,textarea,select{font-family:inherit;color:inherit;}
  button{cursor:pointer;border:none;background:none;}
  ::-webkit-scrollbar{width:8px;height:8px;}
  ::-webkit-scrollbar-thumb{background:rgba(212,160,86,0.22);border-radius:4px;}
  ::-webkit-scrollbar-thumb:hover{background:rgba(212,160,86,0.4);}

  /* ── App shell ── */
  .app{
    display:flex;flex-direction:column;
    height:100vh;max-width:820px;margin:0 auto;
    background:var(--bg);
    box-shadow:var(--shadow-deep);
    border-inline:1px solid var(--border);
  }
  header{
    display:flex;align-items:center;gap:12px;
    padding:14px 18px;
    background:linear-gradient(180deg,var(--bg-soft),var(--bg));
    border-bottom:1px solid var(--border);
    flex-shrink:0;
  }
  .brand{
    font-size:18px;font-weight:800;color:var(--amber-bright);
    letter-spacing:0.02em;display:flex;align-items:center;gap:8px;
  }
  .brand-dot{
    width:8px;height:8px;border-radius:50%;
    background:#5dd989;box-shadow:0 0 10px #5dd989;
    animation:pulse 2s ease-in-out infinite;
  }
  @keyframes pulse{50%{opacity:0.45;}}
  .me-name{
    color:var(--text-dim);font-size:13px;
    margin-inline-start:auto;display:flex;align-items:center;gap:6px;
  }
  .me-name b{color:var(--text);font-weight:700;}
  .head-btn{
    background:var(--amber-soft);
    border:1px solid var(--border);
    color:var(--text);
    border-radius:10px;padding:7px 12px;
    font-size:13px;font-weight:600;
    transition:filter 0.15s,background 0.15s;
  }
  .head-btn:hover{filter:brightness(1.25);background:rgba(212,160,86,0.22);}
  .head-btn.icon-only{padding:7px 10px;font-size:15px;}

  /* ── Messages ── */
  main.messages{
    flex:1;overflow-y:auto;
    padding:16px 18px 20px;
    display:flex;flex-direction:column;gap:10px;
    scroll-behavior:smooth;
  }
  .msg{
    display:flex;gap:10px;align-items:flex-end;
    max-width:78%;animation:rise 0.25s ease;
    /* In RTL flex-column, the default cross-start is the visual RIGHT,
       so all messages naturally land on the right side. Bots get pushed
       to the visual LEFT below. */
    align-self:flex-start;
  }
  @keyframes rise{from{opacity:0;transform:translateY(6px);}}
  /* Bot messages land on the visual left so humans (self + others) sit on
     the right together, like a Hebrew RTL chat. */
  .msg.bot{align-self:flex-end;flex-direction:row-reverse;}
  .avatar{
    width:34px;height:34px;border-radius:50%;
    background:var(--amber-soft);
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    font-size:18px;flex-shrink:0;overflow:hidden;
    color:var(--amber-bright);
  }
  .avatar img{width:100%;height:100%;object-fit:cover;}
  .bubble{
    background:var(--bg-bubble-other);
    border:1px solid var(--border-soft);
    border-radius:var(--radius);
    padding:9px 13px 10px;
    box-shadow:var(--shadow-soft);
    position:relative;min-width:60px;
  }
  .msg.self .bubble{background:var(--bg-bubble-self);border-color:rgba(245,185,85,0.25);}
  .msg.bot .bubble{
    background:var(--bg-bubble-bot);
    border-color:rgba(232,184,120,0.22);
    box-shadow:0 4px 14px rgba(0,0,0,0.4),inset 0 1px 0 rgba(232,184,120,0.08);
  }
  .msg.bot .avatar{
    background:rgba(232,184,120,0.16);
    color:var(--bot);
    width:44px;height:44px;font-size:22px;
  }
  /* Bot avatar with an uploaded photo gets a warm glow + crisp ring */
  .msg.bot .avatar.with-photo{
    background:#0e0a07;
    border:2px solid rgba(232,184,120,0.55);
    box-shadow:
      0 0 0 1px rgba(0,0,0,0.4) inset,
      0 4px 14px rgba(232,184,120,0.18),
      0 2px 6px rgba(0,0,0,0.5);
    cursor:zoom-in;
    transition:transform 0.15s ease;
  }
  .msg.bot .avatar.with-photo:hover{transform:scale(1.06);}
  .msg.bot .avatar img{display:block;}

  /* Lightbox for bot avatar enlargement */
  .img-lightbox{
    position:fixed;inset:0;
    background:rgba(0,0,0,0.85);
    display:flex;align-items:center;justify-content:center;
    z-index:1500;cursor:zoom-out;
    opacity:0;pointer-events:none;
    transition:opacity 0.2s ease;
    padding:30px;
  }
  .img-lightbox.show{opacity:1;pointer-events:auto;}
  .img-lightbox img{
    max-width:min(440px,90vw);max-height:80vh;
    border-radius:18px;
    border:2px solid rgba(232,184,120,0.5);
    box-shadow:0 18px 50px rgba(0,0,0,0.7);
  }

  /* ── Confirm modal ── */
  .modal-overlay{
    position:fixed;inset:0;
    background:rgba(0,0,0,0.62);
    display:flex;align-items:center;justify-content:center;
    z-index:2200;padding:22px;
    opacity:0;pointer-events:none;
    transition:opacity 0.18s ease;
  }
  .modal-overlay.show{opacity:1;pointer-events:auto;}
  .modal-box{
    background:var(--bg-soft);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:var(--shadow-deep);
    max-width:380px;width:100%;
    padding:22px 22px 18px;
    transform:scale(0.95) translateY(8px);
    transition:transform 0.18s ease;
  }
  .modal-overlay.show .modal-box{transform:scale(1) translateY(0);}
  .modal-title{
    font-size:17px;font-weight:800;color:var(--amber-bright);
    margin-bottom:8px;
  }
  .modal-message{
    font-size:14px;color:var(--text-dim);line-height:1.55;
    margin-bottom:20px;white-space:pre-wrap;
  }
  .modal-actions{display:flex;gap:10px;}
  .modal-btn{
    border-radius:10px;padding:9px 18px;
    font-size:14px;font-weight:700;flex:0 0 auto;
  }
  .modal-btn.cancel{
    background:var(--amber-soft);
    border:1px solid var(--border);
    color:var(--text);
  }
  .modal-btn.cancel:hover{filter:brightness(1.2);}
  .modal-btn.ok{
    background:linear-gradient(135deg,var(--amber),#b8893f);
    color:#1a1410;
  }
  .modal-btn.ok:hover{filter:brightness(1.1);}
  .modal-btn.ok.danger{
    background:linear-gradient(135deg,#dc5050,#a83838);
    color:#fff;
  }
  .meta{
    display:flex;align-items:baseline;gap:8px;
    font-size:11.5px;color:var(--text-faint);
    margin-bottom:3px;
  }
  .meta .name{color:var(--text-dim);font-weight:700;font-size:12.5px;}
  .msg.bot .meta .name{color:var(--bot);}
  .meta .tag{
    font-size:9.5px;font-weight:700;letter-spacing:0.05em;
    background:rgba(232,184,120,0.18);color:var(--bot);
    padding:1.5px 6px;border-radius:6px;text-transform:uppercase;
  }
  .text{white-space:pre-wrap;word-break:break-word;font-size:14.5px;}
  .text a{color:var(--amber-bright);text-decoration:underline;text-underline-offset:2px;}
  .system-msg{
    align-self:center;
    background:transparent;color:var(--text-faint);
    font-size:12px;padding:4px 12px;
    border:1px dashed var(--border-soft);
    border-radius:12px;max-width:none;
  }

  /* Typing indicator */
  .typing{
    align-self:flex-start;
    display:flex;gap:10px;align-items:center;
    padding:8px 14px;background:var(--bg-bubble-bot);
    border:1px solid var(--border-soft);
    border-radius:var(--radius);
    font-size:12px;color:var(--text-dim);
  }
  .typing-dots{display:inline-flex;gap:3px;}
  .typing-dots span{
    width:5px;height:5px;border-radius:50%;background:var(--bot);
    animation:blink 1.2s ease-in-out infinite;
  }
  .typing-dots span:nth-child(2){animation-delay:0.2s;}
  .typing-dots span:nth-child(3){animation-delay:0.4s;}
  @keyframes blink{0%,100%{opacity:0.25;}50%{opacity:1;}}

  /* ── Composer ── */
  footer.composer{
    display:flex;gap:8px;
    padding:12px 14px 14px;
    background:linear-gradient(0deg,var(--bg-soft),var(--bg));
    border-top:1px solid var(--border);
    flex-shrink:0;
  }
  .composer textarea{
    flex:1;resize:none;
    background:var(--bg-deep);
    border:1px solid var(--border);
    border-radius:12px;
    padding:10px 13px;
    font-size:15px;line-height:1.4;
    max-height:130px;min-height:40px;
    outline:none;transition:border-color 0.15s,box-shadow 0.15s;
  }
  .composer textarea:focus{
    border-color:var(--amber);
    box-shadow:0 0 0 3px rgba(212,160,86,0.18);
  }
  .composer textarea::placeholder{color:var(--text-faint);}
  .send-btn{
    background:linear-gradient(135deg,var(--amber),#b8893f);
    color:#1a1410;
    border-radius:12px;
    padding:0 18px;font-size:14px;font-weight:800;
    min-width:72px;
    transition:filter 0.15s,transform 0.08s;
  }
  .send-btn:hover{filter:brightness(1.1);}
  .send-btn:active{transform:scale(0.97);}
  .send-btn:disabled{opacity:0.4;cursor:not-allowed;filter:saturate(0.5);}

  /* ── Login overlay ── */
  .login-overlay{
    position:fixed;inset:0;
    background:radial-gradient(ellipse at center,#2a1f17 0%,#0f0a07 70%);
    display:flex;align-items:center;justify-content:center;
    z-index:1000;padding:20px;
  }
  .login-card{
    background:var(--bg-soft);
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:var(--shadow-deep);
    padding:32px 28px;
    width:100%;max-width:360px;
    text-align:center;
  }
  .login-card h1{
    margin:0 0 6px;
    color:var(--amber-bright);
    font-size:26px;font-weight:800;
  }
  .login-card p{
    color:var(--text-dim);
    margin:0 0 22px;
    font-size:14px;
  }
  .login-card input{
    width:100%;
    background:var(--bg-deep);
    border:1px solid var(--border);
    border-radius:12px;
    padding:11px 14px;
    font-size:15px;
    margin-bottom:14px;
    outline:none;transition:border-color 0.15s,box-shadow 0.15s;
    text-align:center;
  }
  .login-card input:focus{
    border-color:var(--amber);
    box-shadow:0 0 0 3px rgba(212,160,86,0.18);
  }
  .login-card button{
    width:100%;
    background:linear-gradient(135deg,var(--amber),#b8893f);
    color:#1a1410;
    border-radius:12px;
    padding:11px;font-size:15px;font-weight:800;
    transition:filter 0.15s,transform 0.08s;
  }
  .login-card button:hover{filter:brightness(1.1);}
  .login-card button:active{transform:scale(0.98);}
  .login-status{
    margin-top:14px;
    color:var(--text-faint);font-size:12px;min-height:16px;
  }

  /* ── Side panel (bots + settings) ── */
  .panel{
    position:fixed;top:0;bottom:0;
    width:min(380px,92vw);
    background:var(--bg-soft);
    border-inline-start:1px solid var(--border);
    box-shadow:var(--shadow-deep);
    z-index:900;
    display:flex;flex-direction:column;
    transition:transform 0.28s cubic-bezier(.2,.7,.2,1);
  }
  .panel.left{left:0;transform:translateX(-105%);border-inline-start:none;border-inline-end:1px solid var(--border);}
  .panel.right{right:0;transform:translateX(105%);}
  .panel.open{transform:translateX(0);}
  /* In RTL, "right" means visually-right which is start; we still slide based on transform */
  html[dir="rtl"] .panel.right{right:auto;left:0;transform:translateX(-105%);}
  html[dir="rtl"] .panel.right.open{transform:translateX(0);}
  html[dir="rtl"] .panel.left{left:auto;right:0;transform:translateX(105%);}
  html[dir="rtl"] .panel.left.open{transform:translateX(0);}

  .panel-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 18px;
    border-bottom:1px solid var(--border);
    flex-shrink:0;
  }
  .panel-header h2{
    margin:0;font-size:16px;color:var(--amber-bright);font-weight:800;
  }
  .panel-close{
    background:rgba(244,234,213,0.06);border-radius:8px;
    padding:5px 9px;font-size:14px;color:var(--text-dim);
  }
  .panel-close:hover{background:rgba(244,234,213,0.12);}
  .panel-body{flex:1;overflow-y:auto;padding:14px 16px 20px;}
  .panel-section{margin-bottom:22px;}
  .panel-section h3{
    margin:0 0 10px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--text-faint);font-weight:700;
  }
  .panel-body label{
    display:block;font-size:12.5px;color:var(--text-dim);
    margin:8px 0 4px;
  }
  .panel-body input,.panel-body select,.panel-body textarea{
    width:100%;
    background:var(--bg-deep);
    border:1px solid var(--border);
    border-radius:10px;
    padding:8px 11px;font-size:14px;
    outline:none;transition:border-color 0.15s,box-shadow 0.15s;
  }
  .panel-body textarea{min-height:70px;resize:vertical;font-family:inherit;}
  .panel-body input:focus,.panel-body select:focus,.panel-body textarea:focus{
    border-color:var(--amber);
    box-shadow:0 0 0 3px rgba(212,160,86,0.16);
  }
  .panel-body button.primary{
    background:linear-gradient(135deg,var(--amber),#b8893f);
    color:#1a1410;border-radius:10px;
    padding:9px 14px;font-size:13.5px;font-weight:800;
    margin-top:10px;
  }
  .panel-body button.primary:hover{filter:brightness(1.1);}
  .panel-body button.secondary{
    background:var(--amber-soft);
    border:1px solid var(--border);
    color:var(--text);
    border-radius:10px;
    padding:8px 12px;font-size:13px;font-weight:600;
  }
  .panel-body button.danger{
    background:rgba(220,80,80,0.15);
    border:1px solid rgba(220,80,80,0.35);
    color:#f4a4a4;
    border-radius:10px;
    padding:6px 10px;font-size:12px;
  }
  .panel-body button.danger:hover{background:rgba(220,80,80,0.28);}

  .bot-card{
    background:var(--bg-deep);
    border:1px solid var(--border-soft);
    border-radius:12px;
    padding:11px 13px;
    margin-bottom:10px;
    display:flex;gap:10px;align-items:flex-start;
  }
  .bot-card .bot-emoji{
    width:36px;height:36px;border-radius:50%;
    background:rgba(232,184,120,0.16);
    display:flex;align-items:center;justify-content:center;
    font-size:20px;flex-shrink:0;
  }
  .bot-card .bot-body{flex:1;min-width:0;}
  .bot-card .bot-name{font-weight:700;color:var(--bot);font-size:14px;}
  .bot-card .bot-personality{
    font-size:12px;color:var(--text-dim);
    margin-top:3px;
    overflow:hidden;text-overflow:ellipsis;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  .bot-card .bot-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
  .bot-card.is-hidden{opacity:0.62;}
  .bot-badge{
    display:inline-block;
    font-size:9.5px;font-weight:800;letter-spacing:0.04em;
    padding:1.5px 6px;border-radius:6px;margin-inline-start:5px;
    vertical-align:middle;
  }
  .bot-badge.muted{background:rgba(220,80,80,0.18);color:#f4a4a4;}
  .bot-badge.hidden{background:rgba(150,150,170,0.18);color:#c4c4d4;}
  .bot-card .bot-emoji img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
  .bot-card .bot-nicks{
    font-size:11px;color:var(--text-faint);
    margin-top:2px;font-style:italic;
  }

  .bot-avatar-row{
    display:flex;gap:10px;align-items:center;margin-bottom:4px;
  }
  .bot-avatar-preview{
    width:60px;height:60px;border-radius:50%;
    background:rgba(232,184,120,0.16);
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    font-size:30px;flex-shrink:0;overflow:hidden;
    color:var(--bot);
  }
  .bot-avatar-preview img{width:100%;height:100%;object-fit:cover;}

  .scrim{
    position:fixed;inset:0;background:rgba(0,0,0,0.55);
    z-index:850;opacity:0;pointer-events:none;
    transition:opacity 0.25s ease;
  }
  .scrim.show{opacity:1;pointer-events:auto;}

  /* ── Chat body: messages + right-side online sidebar ── */
  .chat-body{
    flex:1;display:flex;min-height:0; /* min-height:0 lets children scroll */
  }
  .chat-main{
    flex:1;display:flex;flex-direction:column;min-width:0;
  }
  /* In RTL, the first flex child sits on the visual RIGHT — so the sidebar,
     placed first in the DOM, lands on the right. */
  .online-sidebar{
    width:172px;flex-shrink:0;
    background:var(--bg-soft);
    border-inline-start:1px solid var(--border);
    display:flex;flex-direction:column;
    overflow:hidden;
  }
  .online-sidebar-title{
    padding:11px 14px;
    font-size:12px;font-weight:800;letter-spacing:0.05em;
    color:var(--text-faint);text-transform:uppercase;
    border-bottom:1px solid var(--border-soft);
    display:flex;align-items:center;gap:7px;
    flex-shrink:0;
  }
  .online-count-badge{
    background:var(--amber-soft);
    color:var(--amber-bright);
    border-radius:99px;
    padding:1px 8px;font-size:11px;font-weight:800;
  }
  .online-list{
    flex:1;overflow-y:auto;
    padding:8px;display:flex;flex-direction:column;gap:4px;
  }
  .online-row{
    display:flex;align-items:center;gap:9px;
    padding:6px 8px;border-radius:10px;
    transition:background 0.12s;
  }
  .online-row:hover{background:rgba(255,255,255,0.04);}
  .online-row .o-avatar{
    width:30px;height:30px;border-radius:50%;flex-shrink:0;
    background:var(--amber-soft);
    border:1px solid var(--border-soft);
    display:flex;align-items:center;justify-content:center;
    font-size:15px;overflow:hidden;color:var(--amber-bright);
    position:relative;
  }
  .online-row .o-avatar img{width:100%;height:100%;object-fit:cover;}
  .online-row.bot .o-avatar{background:rgba(232,184,120,0.16);color:var(--bot);}
  .online-row .o-avatar .o-dot{
    position:absolute;bottom:-1px;inset-inline-end:-1px;
    width:9px;height:9px;border-radius:50%;
    background:#5dd989;border:2px solid var(--bg-soft);
  }
  .online-row.bot .o-avatar .o-dot{background:var(--bot);}
  .online-row .o-info{flex:1;min-width:0;}
  .online-row .o-name{
    font-size:13px;color:var(--text);font-weight:600;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .online-row.bot .o-name{color:var(--bot);}
  .online-row .o-sub{
    font-size:10.5px;color:var(--text-faint);
  }
  .online-group-label{
    font-size:10px;font-weight:700;letter-spacing:0.06em;
    color:var(--text-faint);text-transform:uppercase;
    padding:8px 8px 3px;
  }

  /* ── Small responsive tweaks ── */
  @media (max-width:680px){
    .online-sidebar{width:60px;}
    .online-sidebar-title{justify-content:center;padding:11px 4px;font-size:0;}
    .online-sidebar-title .online-count-badge{font-size:11px;}
    .online-row{justify-content:center;padding:5px;}
    .online-row .o-info{display:none;}
    .online-group-label{text-align:center;font-size:0;padding:6px 0 2px;}
  }
  @media (max-width:520px){
    header{padding:12px 14px;}
    .brand{font-size:16px;}
    .head-btn{padding:6px 10px;font-size:12.5px;}
    .me-name{font-size:12px;}
    main.messages{padding:12px 12px 16px;}
    .msg{max-width:88%;}
    .composer{padding:10px 10px 12px;}
  }
