/* 仿 iOS 信息 */
.msg-body{
  min-height:100vh;background:var(--page-bg);
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));
}
.ios-nav-action{font-size:17px;color:var(--primary)}

.msg-list-wrap{width:100%;max-width:none;margin:0}
.msg-empty{text-align:center;padding:48px 20px;color:var(--text-muted);font-size:15px}
.msg-row{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;text-decoration:none;color:inherit;
  border-bottom:1px solid var(--divider);
  -webkit-tap-highlight-color:transparent;
  transition:background .15s;
}
.msg-dot-slot{
  width:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.msg-dot{
  width:10px;height:10px;border-radius:50%;
  background:#007aff;flex-shrink:0;
}
html[data-theme="dark"] .msg-dot{background:#0a84ff}
.msg-row:active{background:rgba(0,0,0,.04)}
html[data-theme="dark"] .msg-row:active{background:rgba(255,255,255,.06)}
.msg-row.unread .msg-preview{font-weight:600;color:var(--text)}
.msg-avatar{
  width:48px;height:48px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#8e8e93,#636366);color:#fff;font-size:18px;font-weight:700;
  overflow:hidden;
}
.msg-avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.msg-avatar-letter{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.msg-avatar-detail{width:36px;height:36px;font-size:14px}
.msg-main{flex:1;min-width:0}
.msg-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:4px}
.msg-top strong{font-size:16px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-top em{font-style:normal;font-size:13px;color:var(--text-muted);flex-shrink:0}
.msg-preview{
  display:block;font-size:14px;color:var(--text-muted);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.msg-thread{
  width:100%;max-width:none;margin:0;padding:16px 14px 24px;
  display:flex;flex-direction:column;gap:12px;
}
.msg-time-pill{
  align-self:center;font-size:12px;color:var(--text-muted);
  background:var(--panel-bg);border:1px solid var(--panel-border);
  border-radius:999px;padding:5px 12px;
}
.msg-bubble{
  max-width:88%;padding:12px 14px;border-radius:18px;
  font-size:15px;line-height:1.55;word-break:break-word;
}
.msg-bubble.admin{
  align-self:flex-start;
  background:var(--panel-bg);color:var(--text);
  border:1px solid var(--panel-border);
  border-bottom-left-radius:6px;
  box-shadow:var(--panel-shadow);
}
.msg-bubble-body p{margin:0 0 8px}
.msg-bubble-body p:last-child{margin-bottom:0}
.msg-bubble-body img{max-width:100%;border-radius:10px;margin:6px 0}
.msg-bubble-body a{color:var(--primary);word-break:break-all}
.msg-detail-row{display:flex;align-items:flex-end;gap:8px}
.msg-detail-row .msg-bubble{flex:1;min-width:0}
.msg-detail-row-user{justify-content:flex-end}
.msg-detail-row-user .msg-bubble{margin-left:auto}
.msg-bubble.visitor{
  align-self:flex-end;
  background:var(--primary);color:#fff;
  border-bottom-right-radius:6px;
}
.msg-reply-time{display:block;margin-top:6px;font-size:11px;opacity:.65}
.msg-bubble.visitor .msg-reply-time{color:rgba(255,255,255,.75)}

.msg-reply-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  display:flex;gap:8px;align-items:center;
  padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  background:var(--panel-bg,#fff);
  border-top:1px solid var(--divider);
  width:100%;max-width:none;margin:0;
}
html[data-theme="dark"] .msg-reply-bar{background:#1c1c1e}
.msg-reply-bar input{
  flex:1;border:1px solid var(--divider);border-radius:20px;
  padding:11px 14px;font-size:15px;outline:none;
  background:var(--page-bg);color:var(--text);
}
.msg-reply-bar input:focus{border-color:var(--primary)}
.msg-reply-bar button{
  border:none;background:var(--primary);color:#fff;
  border-radius:20px;padding:11px 16px;font-size:15px;font-weight:600;cursor:pointer;flex-shrink:0;
}
.msg-reply-bar button:disabled{opacity:.55}
.msg-detail-body .msg-thread{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
