:root{
  --bg:#0f1115;
  --panel:#151922;
  --panel-2:#1b2130;
  --text:#e8ecf1;
  --muted:#95a2b3;
  --accent:#7c8dfc;
  --accent-2:#4ade80;
  --danger:#f43f5e;
  --border:#232b3a;
}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border) var(--panel-2)}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,Segoe UI,Roboto;overflow-x:hidden}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:var(--panel-2)}
*::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
*::-webkit-scrollbar-thumb:hover{background:var(--accent)}
#app{display:grid;grid-template-columns:260px 1fr;height:100vh;transition:grid-template-columns .2s ease-out}
#app.has-thread-open { grid-template-columns: 260px 1fr 380px; }
.hidden{display:none}
.mobile-only{display:none}

.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column; overflow: auto !important;}
.workspace{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}
.ws-left{display:flex;align-items:center;gap:8px}
.ws-logo{width:24px;height:24px;border-radius:6px;object-fit:cover}
.ws-name{font-weight:700}
.section{padding:10px 0}
.section-title{display:flex;align-items:center;justify-content:space-between;color:var(--muted);padding:6px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.nav-list{list-style:none;margin:0;padding:0}
.nav-list li{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;color:#cfd6df;transition:background .2s,color .2s}
.nav-list li.disabled{opacity:.5}
.nav-list li:hover{background:var(--panel-2);color:var(--text)}
.nav-list li.active{background:var(--panel-2);color:var(--text);border-left:3px solid var(--accent);padding-left:11px}
.badge{background:var(--accent-2);color:#111;padding:0 6px;border-radius:10px;font-size:11px;font-weight:700;margin-left:auto}

.search-container{padding:0 14px;position:relative}
.search-container input{width:100%;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text)}
.search-results{position:absolute;top:38px;left:14px;right:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;max-height:300px;overflow:auto;z-index:100;overflow-x: hidden;width: 400px;}
.search-results .result-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;cursor:pointer}
.search-results .result-item:hover{background:var(--panel-2)}
.search-results .channel-tag{background:var(--accent);color:#111;padding:2px 4px;border-radius:4px;font-size:11px;margin-left:8px}

.dm-gear{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0}
.dm-gear:hover{color:var(--text)}
.dm-name{display:flex;align-items:center;gap:4px}
.online-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71}

.ghost{background:transparent;border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:8px;cursor:pointer}
.primary{background:var(--accent);border:none;color:#111;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}
.secondary{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer}

.main{display:flex;flex-direction:column;height:100vh}
.chat-header{display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}
.chat-header-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.chat-actions{display:flex;align-items:center;gap:8px}
.chat-title{font-size:16px;font-weight:700}
.chat-topic,.chat-created{font-size:12px;color:var(--muted)}

.messages{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;background:radial-gradient(1200px 600px at 10% -10%, #1a2030 0%, transparent 50%)}
.date-separator {
  position: sticky;
  top: 12px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px 0;
}
.date-separator span {
  background: var(--panel-2);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 24px;
  border: 1px solid var(--border);
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
}
.read-indicator {
  text-align: center;
  color: var(--muted);
  font-size: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--border);
  animation: fade-in 0.3s;
}
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.message{display:grid;grid-template-columns:40px 1fr;gap:10px;position:relative}
.message.highlight .msg-card{box-shadow:0 0 0 2px var(--accent);}
.message.saved .msg-card{border-color:var(--accent);background:var(--panel-2);}
.avatar{width:36px;height:36px;border-radius:8px;background:#2a3040;display:flex;align-items:center;justify-content:center;font-weight:700;color:#9fb0ff;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.msg-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px;min-width:0}
.message-actions {
  position: absolute;
  top: 5px;
  right: 12px;
  display: flex;
  gap: 4px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 4px;
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .15s, transform .15s;
  pointer-events: none;
  z-index: 10;
}
.message:hover .message-actions {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.message-actions button {
  background: transparent;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  font-size: 16px;
  line-height: 1;
}
.message-actions button:hover {
  background: var(--panel);
  color: var(--text);
}
.msg-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:4px}
.msg-head .user-link{color:var(--accent);cursor:pointer;text-decoration:none}
.msg-text{white-space:pre-wrap;word-wrap:break-word}
.form-edit-message{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.form-edit-message textarea{width:100%;background:var(--panel-2);border:1px solid var(--accent);color:var(--text);padding:10px;border-radius:10px;resize:vertical}
.form-edit-message .edit-actions{display:flex;gap:6px}
.attachments{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.attachment{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel-2);position:relative}
.attachment .clip{position:absolute;top:4px;left:4px;font-size:14px}
.attachment img{display:block;max-width:100%;max-height:300px;cursor:pointer}
.attachment video{display:block;max-width:100%;max-height:300px;cursor:pointer}
a.attachment{display:inline-block;padding:8px 8px 8px 28px}
.attachment.file{display:flex;align-items:center;padding:8px 8px 8px 28px;cursor:pointer}
.attachment.file .file-icon{font-size:24px;margin-right:8px}
.attachment.file .filename{word-break:break-all}

.reactions{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.reaction-btn{display:flex;align-items:center;gap:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:2px 6px;font-size:14px;cursor:pointer;color:var(--muted)}
.reaction-btn:hover{background:var(--panel)}
.reaction-btn.reacted{border-color:var(--accent-2);color:var(--accent-2)}

.composer{display:flex;gap:10px;padding:10px;border-top:1px solid var(--border);background:var(--panel)}
.composer input[type=text], .composer textarea{flex:1;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:12px;border-radius:10px;transition:border-color .2s,background .2s;resize:none}
.composer textarea::placeholder{color:var(--muted);font:inherit}
.composer input[type=file]{display:none}
.composer .clip-icon{background:var(--panel-2);border:1px dashed var(--border);color:var(--muted);padding:10px;border-radius:10px;cursor:pointer;transition:border-color .2s;display:flex;align-items:center;justify-content:center;font-size:18px;position:relative}
.composer .clip-icon.has-files{background:var(--accent);border-color:var(--accent);color:#fff}
.composer .clip-icon[data-count]::after{content:attr(data-count);position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;border-radius:50%;padding:0 6px;font-size:12px;line-height:16px;min-width:16px;text-align:center}
.composer .ai-icon{background:var(--panel-2);border:1px dashed var(--border);color:var(--muted);padding:10px;border-radius:10px;cursor:pointer;transition:border-color .2s;display:flex;align-items:center;justify-content:center;font-size:18px}
.composer input[type=text]:focus, .composer textarea:focus{border-color:var(--accent);outline:none}
.composer .clip-icon:hover, .composer .clip-icon:focus, .composer .ai-icon:hover, .composer .ai-icon:focus{border-color:var(--accent);outline:none}

.attachment-previews{display:flex;flex-wrap:wrap;gap:10px;padding:10px;background:var(--panel);border-top:1px solid var(--border)}
.attachment-previews.hidden{display:none}
.attachment-preview{position:relative;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;overflow:hidden;max-width:80px;max-height:80px;display:flex;align-items:center;justify-content:center}
.attachment-preview img{max-width:100%;max-height:100%;object-fit:cover;display:block}
.attachment-preview.file{padding:10px;font-size:12px;max-width:120px;color:var(--text);gap:6px;display:flex;align-items:center;justify-content:center;text-align:center}
.attachment-preview .remove-preview{position:absolute;top:2px;right:2px;width:16px;height:16px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px}

.mention{color:var(--accent-2);font-weight:700}
.mention-suggestions{position:absolute;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px 0;z-index:50}
.mention-suggestions div{padding:4px 12px;cursor:pointer}
.mention-suggestions div:hover{background:var(--panel-2)}

.modal{position:fixed;inset:0;background:rgba(2,6,15,.6);display:flex;align-items:center;justify-content:center;z-index: 99;}
.modal.hidden{display:none}
.modal-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
#modal-ai .modal-card{max-width:600px;width:90%;max-height:80vh;height:80vh;display:flex;flex-direction:column}
#modal-ai-train .modal-card{min-width:800px;height:500px;}
#modal-channel-settings .modal-card{max-width:800px;}

#modal-channel-settings .modal-body.two-columns{display:flex;gap:20px;}
#modal-channel-settings .modal-body.two-columns .column{flex:1;display:flex;flex-direction:column;gap:20px;}
#modal-channel-settings .modal-body.two-columns .column hr{margin:0;}
.modal-card h2{margin:0 0 8px 0}
.modal-card h3{margin:10px 0 6px 0}
.modal-card form{display:flex;flex-direction:column;gap:8px}
.modal-card input, .modal-card textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px;border-radius:10px}
.modal-card button{width:auto;}
.modal-card #profile-avatar-preview{width:128px;height:128px;border-radius:8px;object-fit:cover;align-self:center;margin-bottom:4px}
#modal-notes .modal-card{max-width:800px;width:90%;height:70vh;display:flex;flex-direction:column;}
#modal-notes textarea{flex:1;height:100%;}
.muted{color:var(--muted)}

.ai-messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px;max-height:60vh}
.ai-msg{padding:8px 12px;border-radius:10px;background:var(--panel-2);max-width:80%;}
.ai-msg.ai-user p {margin: 0;}
.ai-msg.ai-system {visibility: hidden; position: absolute;}
.ai-msg.ai-user{align-self:flex-end}
.ai-msg.ai-assistant{align-self:flex-start}
.ai-msg.ai-system{align-self:center;font-style:italic;background:var(--panel-2);opacity:0.8}
.ai-msg.ai-typing{display:flex;gap:4px}
.ai-msg.ai-typing span{display:block;width:6px;height:6px;background:var(--muted);border-radius:50%;animation:ai-typing 1s infinite}
.ai-msg.ai-typing span:nth-child(2){animation-delay:.2s}
.ai-msg.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes ai-typing{0%,80%,100%{opacity:0}40%{opacity:1}}

#ai-train-text {background-color: #1f2d4b; padding: 5px; color: #fff; min-height: 50vh}
#ai-train-text::placeholder {color: #fff;}

#ai-form .ai-input-wrapper {display:flex;gap:10px;width:100%;}
#ai-form .clip-icon {flex:0 0 10%;}
#ai-input {flex:0 0 90%;}

.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.modal-header h2{margin:0}
.modal-actions{display:flex;gap:8px}
.modal-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
.clean-list{list-style:none;margin:0;padding:0}
#channel-members-list li {
  padding: 4px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.user-checkbox-list{max-height:160px;overflow-y:auto;border:1px solid var(--border);padding:8px;border-radius:10px;background:var(--panel-2)}
.user-checkbox-list label{display:block;padding:4px;border-radius:6px;cursor:pointer}
.user-checkbox-list label:hover{background:var(--panel)}
.user-checkbox-list label input{margin-right:8px}
.form-group{margin-bottom:12px}
.form-group label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.form-group input[type=email]{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px;border-radius:10px}
.form-actions{margin-top:16px;text-align:right}

/* Thread Sidebar */
.thread-sidebar {
  display: flex;
  flex-direction: column;
  background: var(--panel);
  height: 100vh;
  border-left: 1px solid var(--border);
}

.thread-sidebar.hidden {
  display: none;
}
.thread-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.thread-header h3 { margin: 0; font-size: 16px; }
.thread-header .muted { font-size: 12px; }
.thread-content {
  flex: 1;
  overflow-y: auto;
}
#thread-original-message {
  padding: 14px 16px;
}
#thread-original-message .msg-card {
  box-shadow: 0 4px 15px rgba(0,0,0,.1);
}
.thread-replies-separator {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  margin: 0 16px 16px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.thread-replies-separator hr {
  flex: 1;
  border: none;
  border-top: 1px solid var(--border);
}
#thread-replies-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 16px 16px;
}
#thread-composer {
  border-top: 1px solid var(--border);
  background: var(--panel);
}

/* Thread overview list */
#thread-overview{padding:14px 16px;display:flex;flex-direction:column;gap:24px;overflow:auto}
.thread-item{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;transition:background .3s}
#thread-overview .thread-item:nth-child(even){background:var(--panel-2)}
#thread-overview .thread-item:nth-child(odd){background:var(--panel)}
.thread-channel{font-size:13px;color:var(--muted);margin-bottom:4px}
.thread-replies{margin-left:40px;display:flex;flex-direction:column;gap:8px}


@media (max-width: 900px){
  .mobile-only{display:inline-block}
  #app{grid-template-columns:1fr}
  #app.has-thread-open{grid-template-columns:1fr}
  .main{grid-row:1;grid-column:1}
  .sidebar{position:fixed;z-index:5;width:80%;max-width:320px;height:100%;transform:translateX(-100%);transition:.25s}
  .sidebar.open{transform:translateX(0)}
  .thread-sidebar {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    z-index: 6;
    transform: translateX(100%);
    transition: transform .25s;
  }
  .thread-sidebar:not(.hidden) {
    transform: translateX(0);
  }

  #modal-media iframe{width: 400px;height:80vh;}
}

.remove-member {
  background: transparent;
  border: none;
  color: var(--muted);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  padding: 0 4px;
  margin-left: auto;
  border-radius: 4px;
}

.remove-member:hover {
  background-color: var(--danger);
  color: var(--text);
}

.current-user {
  margin-top: auto;
  padding: 12px 14px;
  border-top: 1px solid var(--border);
}

.current-user img {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  cursor: pointer;
}

#drop-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.6);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text);
  font-size:24px;
  z-index:999;
}
#drop-overlay.hidden{
  display:none;
}

#modal-media .media-modal-card{
  position:relative;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  max-width:90%;
  max-height:90%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
#modal-media img,
#modal-media video{
  max-width:100%;
  max-height:80vh;
}
#modal-media iframe{width: 800px;height:80vh;}
#modal-media .media-download{
  margin-top:8px;
  text-decoration:none;
  display:inline-block;
}
#modal-media .media-close{
  position:absolute;
  top:8px;
  right:8px;
  background-color: rgba(0,0,0,.7);
}

#btn-forgot-password {color: #fff;}

.password-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.password-wrapper input {
  width: 100%;
}

.toggle-password {
  position: absolute;
  right: 10px;
  cursor: pointer;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2395a2b3' class='bi bi-eye' viewBox='0 0 16 16'%3e%3cpath d='M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z'/%3e%3cpath d='M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
}

.toggle-password.showing {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2395a2b3' class='bi bi-x' viewBox='0 0 16 16'%3e%3cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
}
