/* 기존 자료 패널 안의 대화와 계정 알림. */
body.glass-hub #infoPanel .ip-tabwrap{display:block!important;padding:0 0 10px}
/* 탭은 패널 표면을 그대로 쓰고, 선택 상태만 짧은 밑줄로 구분한다. */
body.glass-hub #ipTabs{gap:16px;padding:0;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid var(--hair)}
body.glass-hub #ipTabs .ip-tab{position:relative;flex:0 0 auto;min-width:44px;height:32px;padding:0 4px;border-radius:4px;background:transparent;box-shadow:none;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:normal}
body.glass-hub #ipTabs .ip-tab.on{color:var(--ink);font-weight:650}
body.glass-hub #ipTabs .ip-tab.on::after{content:"";position:absolute;bottom:-1px;left:4px;right:4px;height:2px;border-radius:2px;background:var(--ink)}
body.glass-hub #ipTabs .ip-tc,body.glass-hub #ipTabs .ip-tab.on .ip-tc{padding:0;border-radius:0;background:transparent;color:var(--muted);opacity:1}
body.glass-hub #ipTabs .ip-tab:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:900px){body.glass-hub #ipTabs .ip-tab{height:44px}}
@media(pointer:coarse){body.glass-hub #ipTabs .ip-tab{height:44px}}
body.glass-hub #ipHist[hidden],body.glass-hub #ipChat[hidden]{display:none!important}
#ipChat{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}
.chat-heading{display:flex;align-items:center;gap:6px;font-size:12px;flex:none}
.chat-heading b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-heading button,#chatRestore button{min-height:44px;min-width:44px;border:0;border-radius:10px;background:var(--s2);color:var(--ink);padding:0 8px}
#ipChat [data-chat-refresh]{background:none}
#chatMessages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;padding:4px 2px}
.chat-message{max-width:94%;align-self:flex-start;min-width:0;border-radius:12px;background:var(--s2);padding:10px}
.chat-message.mine{align-self:flex-end;background:var(--gh-selected,var(--s2))}
.chat-meta{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:10px}
.chat-message p{margin:5px 0 0;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-message .chat-mention,.inbox-preview .chat-mention{color:var(--acc-text);font-weight:700}
.chat-status,#chatRestore p{margin:0;color:var(--muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.chat-compose{position:relative;flex:none;padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column;gap:6px}
.chat-compose label{font-size:11px;color:var(--muted)}
#chatInput{width:100%;box-sizing:border-box;min-height:80px;max-height:180px;resize:vertical;border:1px solid var(--hair);border-radius:12px;background:var(--s2);color:var(--ink);padding:10px;font:inherit;font-size:14px;line-height:1.5}
#chatInput:focus{border-color:var(--muted);outline:none;box-shadow:none}
.chat-send-row{display:flex;align-items:center;gap:8px}
.chat-send-row small{flex:1;min-width:0;font-size:10px;line-height:1.5;color:var(--muted)}
#chatSend{min-height:44px;min-width:64px;border:0;border-radius:10px;background:var(--accent,#f2f962);color:#17202b;font-weight:700}
#chatSend:disabled{opacity:.5}
#chatCandidates{position:absolute;left:0;right:0;bottom:100%;z-index:4;max-height:264px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--s1);box-shadow:0 6px 24px #0004}
#chatCandidates button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;text-align:left;color:var(--ink);background:transparent;border:0;padding:8px 12px;font:inherit;font-size:13px}
#chatCandidates button[aria-selected=true]{background:var(--s2)}
#chatCandidates small{color:var(--muted)}
#btnInbox{position:relative;min-width:44px;width:44px;height:44px;padding:0;justify-content:center;background:none!important;color:var(--ink)}
#inboxCount{position:absolute;top:1px;right:0;font-size:10px;border-radius:10px;padding:0 3px;background:#f2f962;color:#17202b}
#inboxCount:empty{display:none}
#dlgInbox{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
#dlgInbox .dhead{display:flex;align-items:center;justify-content:space-between;gap:12px}
#dlgInbox .dx{display:flex;align-items:center;justify-content:center;flex:none;width:44px;min-width:44px;height:44px;margin-left:auto;padding:0;border:0;border-radius:9px;background:none;color:var(--ink);cursor:pointer}
.inbox-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.inbox-preview,.inbox-summary{font-size:14px;font-weight:600;line-height:1.6;color:var(--ink)}
.inbox-row{display:flex;align-items:flex-start;border-bottom:1px solid var(--line)}
.inbox-row.unread{background:var(--s2)}
.inbox-item{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;min-height:72px;text-align:left;padding:14px;border:0;background:none;color:var(--ink);font:inherit;font-size:13px}
.inbox-delete{display:flex;align-items:center;justify-content:center;flex:none;width:44px;min-width:44px;height:44px;margin:8px 6px 0 0;padding:0;border:0;border-radius:9px;background:none;color:var(--muted);cursor:pointer}
.inbox-delete:disabled{opacity:.5;cursor:wait}
.inbox-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.inbox-item small{color:var(--muted);font-size:11px}
.inbox-heading{display:flex;align-items:center;gap:8px;width:100%;min-width:0}
.inbox-heading b{flex:1;min-width:0;font-size:11px;font-weight:500;color:var(--muted)}
.inbox-heading .inbox-from{flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
#inboxBody{overflow:auto;max-height:calc(100dvh - 160px);padding-bottom:env(safe-area-inset-bottom)}
#dlgInbox .dx:focus{outline:none;box-shadow:none}
#dlgInbox .dx:focus-visible{background:var(--s2)}
#ipChat button:focus-visible,.inbox-item:focus-visible,.inbox-delete:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:900px){#chatInput{font-size:16px}body.glass-hub #infoPanel #ipBody:has(#ipChat:not([hidden])){display:flex;flex-direction:column}#ipChat{flex:1}}

#chatOlder{min-height:44px;border:0;border-radius:10px;color:var(--ink);background:var(--s2);flex:none}

/* 대화 참여 이력과 현재 멘션 권한은 같은 멤버 목록에서 구분한다. */
.chat-members{flex:none;border:1px solid var(--line);border-radius:12px;background:var(--s2);min-width:0}
.chat-members summary{display:flex;align-items:center;gap:8px;min-height:52px;padding:4px 10px;box-sizing:border-box;cursor:pointer;list-style:none;font-size:12px}
.chat-members summary::-webkit-details-marker{display:none}
.chat-member-summary{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.chat-member-summary small{font-size:11px;color:var(--ink);overflow-wrap:anywhere}
.chat-member-chevron{display:flex}.chat-members[open] .chat-member-chevron{transform:rotate(180deg)}
#chatMemberBody{max-height:min(220px,28dvh);overflow-y:auto;overscroll-behavior:contain;padding:0 8px 8px}
#chatMemberBody p{margin:0;padding:4px 2px 8px;font-size:12px;line-height:1.5;color:var(--ink)}
#chatMemberBody ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
#chatMemberBody button,.chat-member-inactive{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;box-sizing:border-box;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left}
#chatMemberBody button:active{background:var(--gh-selected,var(--s1))}
#chatMemberBody button:disabled{cursor:default}.chat-member-avatar{display:flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--s1);font-size:11px;font-weight:700}
.chat-member-name{display:flex;flex-direction:column;flex:1;min-width:0;gap:3px;overflow-wrap:anywhere}
.chat-member-name b{font-size:13px}.chat-member-name small{font-size:11px;color:var(--ink)}
.chat-member-at{font-size:16px}.chat-members summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:12px}
@media(hover:hover){#chatMemberBody button:not(:disabled):hover,.chat-members summary:hover{background:var(--gh-selected,var(--s1))}}
