/* Chat */
.chat-layout{display:grid;grid-template-columns:280px 1fr;height:calc(100vh - var(--header-height));margin:-var(--sp-6);overflow:hidden}
.chat-sidebar{background:var(--clr-surface);border-right:1px solid var(--clr-border);display:flex;flex-direction:column}
.chat-sidebar__header{padding:var(--sp-4);border-bottom:1px solid var(--clr-border)}
.chat-sidebar__header h3{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:var(--sp-3)}
.chat-group-list{flex:1;overflow-y:auto}
.chat-group-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);cursor:pointer;transition:background var(--dur-fast);border-bottom:1px solid var(--clr-border)}
.chat-group-item:hover,.chat-group-item.is-active{background:var(--clr-surface-hover)}
.chat-group-item.is-active{border-left:3px solid var(--clr-accent)}
.chat-group-item__icon{width:40px;height:40px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.chat-group-item__info{flex:1;min-width:0}
.chat-group-item__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-group-item__last{font-size:var(--fs-xs);color:var(--clr-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-group-item__badge{background:var(--clr-accent);color:#1a1a2e;font-size:0.65rem;font-weight:var(--fw-bold);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}
.chat-main{display:flex;flex-direction:column;background:var(--clr-bg)}
.chat-main__header{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);background:var(--clr-surface);border-bottom:1px solid var(--clr-border)}
.chat-main__name{font-size:var(--fs-base);font-weight:var(--fw-semibold)}
.chat-main__members{font-size:var(--fs-xs);color:var(--clr-text-muted)}
.chat-messages{flex:1;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}
.chat-msg{display:flex;gap:var(--sp-3);max-width:70%}
.chat-msg--mine{margin-left:auto;flex-direction:row-reverse}
.chat-msg__bubble{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);font-size:var(--fs-sm);line-height:1.5}
.chat-msg__bubble{background:var(--clr-surface);border:1px solid var(--clr-border)}
.chat-msg--mine .chat-msg__bubble{background:var(--clr-accent);color:#1a1a2e;border:none}
.chat-msg__sender{font-size:var(--fs-xs);font-weight:var(--fw-semibold);margin-bottom:var(--sp-1);color:var(--clr-sage-dark)}
.chat-msg__time{font-size:0.65rem;color:var(--clr-text-muted);margin-top:var(--sp-1)}
.chat-msg--system{max-width:100%;text-align:center}
.chat-msg--system .chat-msg__bubble{background:transparent;border:none;color:var(--clr-text-muted);font-size:var(--fs-xs);font-style:italic}
.chat-typing{padding:0 var(--sp-6);font-size:var(--fs-xs);color:var(--clr-text-muted);height:24px;display:flex;align-items:center}
.chat-input{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);background:var(--clr-surface);border-top:1px solid var(--clr-border)}
.chat-input__field{flex:1;padding:var(--sp-3) var(--sp-4);background:var(--clr-bg);border:1.5px solid var(--clr-border);border-radius:var(--radius-lg);font-size:var(--fs-sm);color:var(--clr-text)}
.chat-input__field:focus{border-color:var(--clr-accent)}
.chat-input__field::placeholder{color:var(--clr-text-muted)}
.chat-input .btn--icon{background:var(--clr-accent);color:#1a1a2e;border-radius:var(--radius-md)}
.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--clr-text-muted)}
.chat-empty__icon{font-size:3rem;margin-bottom:var(--sp-4)}
@media(max-width:767px){.chat-layout{grid-template-columns:1fr}.chat-sidebar{display:none}.chat-sidebar.is-open{display:flex;position:absolute;inset:0;z-index:10}}
