:root {
  --bg: #dfe4ea;
  --panel: #ebeff4;
  --panel-soft: #f5f7fa;
  --line: #d5dde6;
  --line-strong: #c5d0dc;
  --text: #3f546b;
  --muted: #8fa1b4;
  --accent: #2f6fff;
  --accent-soft: #6da0ff;
  --ink: #13283d;
  --focus-ring: rgba(47, 111, 255, 0.28);
  --focus-ring-strong: rgba(47, 111, 255, 0.46);
  --app-compact-width: 1220px;
  --app-compact-height: 790px;
  --app-compact-left: 10px;
  --app-compact-top: 10px;
  --app-compact-current-width: 1220px;
  --app-compact-current-height: 790px;
}

html,
body,
.main,
.main * {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

input,
textarea,
select,
button,
[contenteditable="true"],
.Input_text,
#messageBody {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

html,
body {
  min-width: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background:
    radial-gradient(1200px 420px at 50% -120px, #f8f9fb 0%, #e6ebf1 58%, #dce2e9 100%),
    linear-gradient(130deg, #e5ebf2 0%, #dce3ea 100%);
}

body {
  color: var(--text);
  font-family: "PingFang SC", "HarmonyOS Sans SC", "SF Pro Text", "Segoe UI", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  overscroll-behavior: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body.popup-open {
  overflow: hidden !important;
}

.main {
  height: 100%;
  padding: 14px;
  overflow: hidden;
}

.main_inner {
  border: 0;
  border-radius: 18px;
  background:
    radial-gradient(1200px 600px at 10% -20%, rgba(255, 255, 255, 0.52) 0%, rgba(255, 255, 255, 0) 55%),
    linear-gradient(180deg, #e8edf3 0%, var(--bg) 100%);
  box-shadow: 0 18px 36px rgba(51, 73, 98, 0.18);
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.coolchat_left_nav {
  width: 220px;
  height: 100%;
  float: left;
  display: block !important;
  pointer-events: auto;
  background: linear-gradient(180deg, #24384d 0%, #1f2f41 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.coolchat_left_nav .header {
  padding: 10px 14px 4px;
  position: relative;
  min-height: 44px;
}

.coolchat_left_nav .header .info h3 {
  margin: 0;
  min-height: 32px;
}

.coolchat_left_nav .header .display_name {
  color: #c2d1df !important;
  font-size: 18px !important;
  margin-left: 0 !important;
}

.coolchat_left_nav .system_menu_opt {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  position: absolute;
  right: 14px;
  top: 8px;
  overflow: hidden;
  z-index: 2106;
  cursor: pointer;
}

.coolchat_left_nav .system_menu_opt:hover {
  background: rgba(97, 145, 244, 0.24);
}

.coolchat_left_nav .system_menu_opt.is-open {
  background: rgba(104, 155, 255, 0.28);
  box-shadow: inset 0 0 0 1px rgba(183, 209, 252, 0.28);
}

#addUsefulTextBtn.link-set {
  padding: 0;
  border: 0;
  background: transparent;
  line-height: inherit;
  cursor: pointer;
}

.coolchat_left_nav .system_menu_icon {
  background: none !important;
  position: relative;
  width: 18px !important;
  height: 14px !important;
}

.coolchat_left_nav .system_menu_icon::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1px;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: #9fb3ca;
  box-shadow: 0 5px 0 #9fb3ca, 0 10px 0 #9fb3ca;
}

.coolchat_left_nav .system_menu_icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 5px;
  width: 0;
  height: 0;
  border-left: 4px solid #9fb3ca;
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
}

#system_menu_panel {
  z-index: 2105 !important;
  position: absolute !important;
  right: 12px !important;
  top: 44px !important;
  left: auto !important;
  min-width: 168px;
  border-radius: 14px;
  border: 1px solid #d6e2f0;
  background: linear-gradient(180deg, #f9fcff 0%, #f0f6ff 100%) !important;
  box-shadow: 0 18px 34px rgba(29, 50, 77, 0.24);
  overflow: hidden;
  opacity: 0;
  transform: translateY(-6px) scale(0.98);
  transform-origin: top right;
  transition: opacity 0.14s ease, transform 0.14s ease;
}

#system_menu_panel.open {
  opacity: 1;
  transform: translateY(0) scale(1);
}

#system_menu_panel .dropdown_menu {
  min-width: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

#system_menu_panel .dropdown_menu li a {
  display: flex !important;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 12px !important;
  border-bottom: 1px solid #e6edf6 !important;
  color: #29415c !important;
  font-size: 14px !important;
  font-weight: 600;
  letter-spacing: 0.1px;
}

#system_menu_panel .dropdown_menu li a:hover {
  background: rgba(78, 124, 197, 0.12);
}

#system_menu_panel .dropdown_menu li a:active {
  background: rgba(68, 111, 176, 0.18);
}

#system_menu_panel .dropdown_menu li.last_child a {
  border-bottom: 0 !important;
}

#system_menu_panel .dropdown_menu li i {
  width: 16px;
  height: 16px;
  margin-right: 0 !important;
  opacity: 0.75;
}

.coolchat_left_nav #photo {
  height: 156px !important;
  padding: 10px 0 14px;
  position: relative;
}

.coolchat_left_nav dl {
  margin: 0;
  height: auto;
}

.coolchat_left_nav dl dt p {
  margin: 4px 10px;
  height: 50px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  color: #9db0c5;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.2px;
  transition: background-color 0.16s ease, color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease, opacity 0.16s ease;
  cursor: pointer;
}

.coolchat_left_nav dl dt p:hover {
  color: #e9f2ff;
  background: rgba(102, 152, 255, 0.18);
  transform: translateX(1px);
  box-shadow: inset 0 0 0 1px rgba(171, 201, 248, 0.2);
}

.coolchat_left_nav dl dt p img {
  margin-right: 10px;
  width: 22px;
  opacity: 0.84;
  transition: opacity 0.16s ease, transform 0.16s ease;
}

/* Keep all left menu tabs visually consistent (messages/friends/room/company) */
#messages,
#friend,
#room,
#company,
#liveP {
  display: flex !important;
  align-items: center;
  border-radius: 12px;
  color: #9db0c5;
  font-weight: 600;
  letter-spacing: 0.2px;
}

#messages:hover,
#friend:hover,
#room:hover,
#company:hover,
#liveP:hover {
  color: #eaf3ff !important;
  background: rgba(107, 155, 255, 0.2) !important;
}

.coolchat_left_nav .back {
  background: linear-gradient(135deg, rgba(87, 146, 255, 0.35), rgba(51, 111, 239, 0.25));
  color: #eff6ff !important;
  box-shadow: inset 0 0 0 1px rgba(172, 204, 255, 0.25);
}

.coolchat_left_nav .left_title_old {
  background: transparent;
}

.coolchat_left_nav .back img,
#messages:hover img,
#friend:hover img,
#room:hover img,
#company:hover img,
#liveP:hover img {
  opacity: 1;
  transform: translateX(1px);
}

.coolchat_content_nav {
  width: 100%;
  min-width: 0;
  height: 100%;
  overflow: hidden !important;
}

.main_inner .box {
  padding-top: 0 !important;
}

.coolchat_content_nav,
.main_inner .box,
.main_inner .layui-fluid {
  height: 100%;
}

.main_inner .layui-fluid {
  width: 100% !important;
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  gap: 12px;
  padding: 12px;
  overflow: hidden;
}

#o.coolchat_data_panel {
  display: flex;
  flex-direction: column;
  width: clamp(268px, 27%, 420px);
  min-width: 260px;
  max-width: 430px;
  flex: 0 0 auto;
  height: 100%;
  border-radius: 16px;
  background: linear-gradient(180deg, #eff3f8 0%, var(--panel) 100%);
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  overflow: hidden;
}

#o .data-panel-shell-head {
  position: relative;
  z-index: 8;
  flex: 0 0 auto;
  border-bottom: 1px solid var(--line-strong);
  background: rgba(248, 250, 253, 0.86);
}

#o .data-panel-account {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  height: 64px;
  padding: 10px 12px;
  border-bottom: 1px solid #dce4ec;
  box-sizing: border-box;
}

#o #photo {
  position: relative;
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: 44px minmax(0, 1fr);
  grid-template-rows: 1fr;
  align-items: center;
  min-width: 0;
  height: 44px !important;
  padding: 0;
  text-align: left !important;
}

#o #photo #myAvatar {
  grid-column: 1;
  grid-row: 1;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  border: 1px solid #d4dee8;
  border-radius: 8px !important;
  box-shadow: 0 2px 7px rgba(38, 61, 82, 0.12);
  object-fit: cover;
}

#o #photo #nickname {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  margin: 0 !important;
  padding: 0 10px;
  overflow: hidden;
  color: #263d54 !important;
  font-size: 14px;
  font-weight: 650;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#o #photo #user_online {
  position: absolute;
  left: 32px;
  top: 31px;
  width: 10px;
  height: 10px;
  margin: 0;
  border: 2px solid #f8fafc;
  border-radius: 50%;
  box-sizing: content-box;
}

#o .data-panel-account .system_menu_opt {
  position: relative;
  top: auto;
  right: auto;
  z-index: 2106;
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #71859a;
  cursor: pointer;
}

#o .data-panel-account .system_menu_opt:hover,
#o .data-panel-account .system_menu_opt:focus-visible,
#o .data-panel-account .system_menu_opt.is-open {
  border-color: #d1dce6;
  outline: none;
  background: #eaf0f6;
  color: #315f8d;
}

#o .data-panel-account .system_menu_icon {
  position: relative;
  display: block;
  width: 18px;
  height: 14px;
}

#o .data-panel-account .system_menu_icon::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1px;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  box-shadow: 0 5px 0 currentColor, 0 10px 0 currentColor;
}

#o .data-panel-account .system_menu_icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 5px;
  width: 0;
  height: 0;
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-left: 4px solid currentColor;
}

#o #system_menu_panel {
  top: 54px !important;
  right: 10px !important;
}

#o #system_menu_panel .dropdown_menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

#o #system_menu_panel .dropdown_menu li i.layui-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
}

#o .data-panel-primary-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  padding: 7px 8px 8px;
}

#o .data-panel-primary-tab {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 40px;
  padding: 0 7px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #6f8296;
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
  text-decoration: none !important;
  gap: 6px;
  transition: border-color 0.14s ease, background-color 0.14s ease, color 0.14s ease;
}

#o .data-panel-primary-tab:hover,
#o .data-panel-primary-tab:focus-visible {
  border-color: #d4dfe9;
  outline: none;
  background: #edf2f7;
  color: #3d5d7b;
}

#o .data-panel-primary-tab.back,
#o .data-panel-primary-tab.left_title,
#o .data-panel-primary-tab.active,
#o .data-panel-primary-tab[aria-selected="true"] {
  border-color: #c9daea;
  background: #e7f0f9;
  color: #286aa5 !important;
  box-shadow: inset 0 -2px #3e83bf;
}

#o .data-panel-tab-icon {
  position: relative;
  display: inline-flex;
  flex: 0 0 20px;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}

#o .data-panel-primary-tab img {
  display: block;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  opacity: 0.72;
  object-fit: contain;
}

#o .data-panel-primary-tab.back img,
#o .data-panel-primary-tab.left_title img,
#o .data-panel-primary-tab.active img,
#o .data-panel-primary-tab[aria-selected="true"] img {
  opacity: 1;
}

#o .data-panel-primary-tab .messageNum {
  position: absolute;
  top: -7px;
  right: -9px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border: 2px solid #f3f7fb;
  border-radius: 9px;
  box-sizing: border-box;
  font-size: 9px;
  line-height: 12px;
}

#o .tab-content {
  flex: 1 1 auto;
  height: auto !important;
  min-height: 0;
  overflow: hidden;
}

#o .tab-content > .tab-pane {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

#o .tab-content > .tab-pane.active {
  display: flex;
  flex-direction: column;
}

#messagesTab .coolchat_data_panel_head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  height: 58px;
  min-height: 58px;
  line-height: 1;
  background: transparent;
  border-bottom: 1px solid var(--line-strong);
  text-align: left;
  padding: 9px 10px;
  gap: 8px;
}

#friendsTab .coolchat_data_panel_head,
#roomTab .coolchat_data_panel_head,
#companyTab .coolchat_data_panel_head,
#liveRoomTab .coolchat_data_panel_head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  height: 58px;
  min-height: 58px;
  line-height: 1;
  background: transparent;
  border-bottom: 1px solid var(--line-strong);
  padding: 9px 10px;
  gap: 8px;
}

#companyTab .coolchat_data_panel_head p,
#liveRoomTab .coolchat_data_panel_head p {
  flex: 0 0 auto;
  margin: 0;
  color: #22374b;
  font-size: 14px;
  font-weight: 650;
  line-height: 20px;
  white-space: nowrap;
}

#btnChatSearch {
  display: none;
}

.chat-list-search {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  height: 38px;
  margin-top: 0;
  padding: 0 10px;
  border-radius: 7px;
  background: #f7f9fc;
  border: 1px solid #e3e9f0;
}

.chat-list-search img {
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  opacity: 0.45;
}

.chat-list-search input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  width: 100%;
  height: 36px;
  margin-left: 7px;
  color: var(--text);
  font-size: 13px;
}

.chat-list-search input::placeholder {
  color: #b4c0cb;
}

#o .coolchat_data_panel_head .head-operations {
  position: static;
  top: auto;
  right: auto;
  display: inline-flex;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #6d8297;
  cursor: pointer;
}

#o .coolchat_data_panel_head .head-operations:hover,
#o .coolchat_data_panel_head .head-operations:focus-visible {
  border-color: #d2dde7;
  outline: none;
  background: #e9eff5;
  color: #2e679c;
}

#o .coolchat_data_panel_head .contact-operations .icon-add {
  width: 18px;
  height: 18px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 18px 18px;
}

#messageDisplayArea {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  padding: 10px 8px;
  overflow-y: hidden !important;
  overflow-x: hidden !important;
  position: relative;
}

#myMessagesList {
  min-height: 0;
  height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  position: relative;
}

#o .data-list-viewport {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  overflow: hidden;
}

#myFriendsList,
#blackList,
#myRoomList,
#allRoomList,
#_allRoomList,
#liveRoomList {
  box-sizing: border-box;
  min-height: 0;
  height: 100% !important;
}

#myFriendsList,
#blackList,
#myRoomList,
#_allRoomList,
#liveRoomList {
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

#allRoomList {
  overflow: hidden !important;
}

#myFriendsList .friend-list-state,
#myRoomList .room-list-state,
#_allRoomList .room-list-state,
#myFriendsList .device-list-state {
  min-height: 132px;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #6a7d92;
  text-align: center;
}

#myFriendsList .friend-list-state strong,
#myRoomList .room-list-state strong,
#_allRoomList .room-list-state strong,
#myFriendsList .device-list-state strong {
  color: #233950;
  font-size: 16px;
  font-weight: 600;
}

#myFriendsList .friend-list-state .layui-btn,
#myRoomList .room-list-state .layui-btn,
#_allRoomList .room-list-state .layui-btn {
  margin-top: 6px;
}

#companyListShow .media-avatar .media-object {
  width: 54px !important;
  height: 54px !important;
  object-fit: cover;
}

#companyListShow .media-main {
  display: flex;
  align-items: center;
  gap: 12px;
}

#companyListShow .media-main .media-avatar {
  float: none !important;
  margin: 0 !important;
}

#companyListShow .media-main .media-body {
  float: none !important;
  width: auto !important;
}

#tabCon_0,
#tabCon_new,
#tabCon_blacklist,
#tabCon_device {
  display: flex;
  width: auto;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  margin: 0;
  background: transparent;
}

.coolchat_message_panel_div {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
}

#chatPanel,
.coolchat_message_panel_1 {
  display: block;
  width: 100%;
  min-width: 0;
  height: 100%;
  border-left: 0;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(180deg, #f0f4f9 0%, #e9eef4 100%);
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.message_panel_head {
  background: transparent;
  border-bottom: 1px solid var(--line-strong);
  height: 78px;
  padding: 8px 12px;
}

.message_panel_head > div {
  margin-top: 0 !important;
  height: 100% !important;
  display: flex;
  align-items: center;
  gap: 10px;
}

.message_panel_head .headContent {
  float: none !important;
  display: flex;
  align-items: center;
}

.chat-panel-header .headContent {
  height: auto;
  margin-left: 0;
  line-height: normal;
  overflow: visible;
}

.chat-panel-header__avatar {
  flex: 0 0 auto;
}

.chat-panel-header__content {
  flex: 1 1 auto;
  min-width: 0;
  align-items: flex-start !important;
  justify-content: center;
  gap: 3px;
  flex-direction: column;
}

.chat-panel-header__title-row {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  gap: 9px;
}

#chatTitle,
#newFriendsTitle,
#blacklistTitle,
#devicePanelTitle {
  flex: 0 1 auto;
  min-width: 0;
  color: var(--ink);
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
  letter-spacing: 0;
  max-width: min(58vw, 440px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.new-friends-header .headContent {
  height: auto;
  margin-left: 0;
  line-height: normal;
  overflow: visible;
}

.new-friends-header__avatar,
.new-friends-header__avatar .imgAvatar,
.new-friends-header__avatar figure {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin: 0;
}

.new-friends-header__avatar figure {
  border-radius: 50%;
  overflow: hidden;
}

.new-friends-header__avatar .chat_content_avatar {
  display: block;
  width: 40px;
  height: 40px;
  min-height: 0;
  object-fit: cover;
}

.new-friends-header__content {
  flex: 1 1 auto;
  min-width: 0;
}

.directory-panel {
  display: flex;
  flex-direction: column;
}

.directory-panel-header__avatar--blacklist figure {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #63798e;
}

.directory-panel-header__avatar--blacklist .chat_content_avatar {
  width: 23px;
  height: 23px;
  object-fit: contain;
}

.directory-panel-content {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  padding: 12px 16px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.directory-panel-content > .blacklist-list,
.directory-panel-content > .device-directory {
  width: min(100%, 760px);
  margin: 0 auto;
}

#devicePanelList .device-list-state {
  display: flex;
  min-height: 220px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #6a7d92;
  text-align: center;
}

#devicePanelList .device-list-state strong {
  color: #233950;
  font-size: 16px;
  font-weight: 600;
}

#chatTitle .group-member-badge {
  vertical-align: 2px;
}

.chat-presence {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 5px;
  color: #667085;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.chat-presence[hidden] {
  display: none !important;
}

.chat-presence__dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #98a2b3;
  box-shadow: 0 0 0 2px rgba(152, 162, 179, 0.14);
}

.chat-presence.is-online {
  color: #18794e;
}

.chat-presence.is-online .chat-presence__dot {
  background: #22a06b;
  box-shadow: 0 0 0 2px rgba(34, 160, 107, 0.16);
}

.chat-network-info {
  display: flex;
  align-items: center;
  max-width: min(58vw, 520px);
  min-width: 0;
  gap: 5px;
  color: #7a8c9f;
  font-size: 12px;
  font-weight: 500;
  line-height: 17px;
}

.chat-network-info[hidden] {
  display: none !important;
}

.chat-network-info > .layui-icon {
  flex: 0 0 auto;
  color: #8da0b3;
  font-size: 13px;
}

.chat-network-info__text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#chatHint {
  margin-left: 2px;
  color: #7e93ab !important;
  font-size: 13px;
  font-weight: 500;
}

#switchReadDelDiv {
  opacity: 0.8;
  margin-left: auto;
  float: none !important;
  width: auto !important;
}

#switchReadDelDiv .layui-form-label {
  width: 90px;
  color: #6e8298;
  font-size: 14px;
}

#switchReadDelDiv .layui-input-block {
  margin-left: 90px;
}

#groupDetails {
  display: none;
  align-items: center;
  justify-content: center;
  margin-left: 10px;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(110, 146, 196, 0.12);
}

#groupDetailsBtn {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.76);
  color: #5f7691;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

#groupDetailsBtn:hover {
  background: rgba(95, 132, 186, 0.2);
  color: #2f4762;
  transform: translateY(-1px);
}

#groupDetailsBtn:active {
  transform: translateY(0);
}

#groupDetailsBtn .group-more-fallback {
  transform: translateY(-2px);
  font-weight: 700;
}

#chatPanel .panel-body {
  height: calc(100% - 78px) !important;
  min-height: 0;
  padding: 0;
  background: transparent;
}

#messagePanel {
  height: calc(100% - 235px) !important;
  padding: 0 17px;
  border-bottom: 1px solid var(--line-strong);
  background: transparent;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}

#messageContainer:empty::before {
  content: "选择左侧联系人后开始聊天";
  display: block;
  text-align: center;
  margin-top: 178px;
  color: #7c90a6;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.4px;
}

#sendMsgScopeDiv {
  height: 235px !important;
  background: #f7f8fa;
  position: relative;
  padding: 6px 8px 8px;
  overflow: hidden;
  border-top: 1px solid #dfe4ea;
}

#divNewFriendList {
  height: calc(100% - 78px) !important;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: transparent;
}

#composerTools {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  color: #7f8da0 !important;
  padding: 1px 4px;
  border-radius: 10px;
  background: linear-gradient(180deg, #fdfefe 0%, #f3f6fa 100%);
  border: 1px solid #e0e6ee;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 4px 12px rgba(66, 87, 113, 0.08);
  border-bottom: 0;
}

#composerTools span {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px solid transparent;
  transition:
    background-color 0.16s ease,
    transform 0.16s ease,
    box-shadow 0.16s ease,
    border-color 0.16s ease;
  position: relative;
  overflow: hidden;
}

#composerTools span:hover {
  background: linear-gradient(180deg, #f3f8ff 0%, #e8f0ff 100%);
  border-color: #ccdaf2;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(71, 108, 161, 0.14);
}

#composerTools span:active {
  transform: translateY(0);
  box-shadow: inset 0 2px 4px rgba(80, 112, 160, 0.15);
}

#composerTools span.tool-active {
  background: linear-gradient(135deg, #6fa1ff 0%, #4b7bf2 100%);
  border-color: #4f78de;
  box-shadow: 0 7px 18px rgba(69, 109, 205, 0.35);
}

#composerTools span.tool-disabled {
  opacity: 0.45;
  filter: grayscale(0.35);
  pointer-events: auto;
  cursor: not-allowed;
}

#composerTools span.tool-disabled:hover,
#composerTools span.tool-disabled:active {
  transform: none;
  box-shadow: none;
  background: transparent;
  border-color: transparent;
}

#composerTools span img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  opacity: 0.82;
  transition: opacity 0.16s ease, transform 0.16s ease, filter 0.16s ease;
  filter: grayscale(0.18) contrast(1.02);
}

#composerTools span:hover img {
  opacity: 1;
  transform: scale(1.05);
  filter: none;
}

#composerTools span.tool-active img {
  opacity: 1;
  filter: brightness(0) invert(1);
  transform: scale(1.04);
}

#composerTools #btnFile,
#composerTools #btnVedio,
#composerTools #btnmin {
  margin-left: 2px;
}

#composerTools #userfulTextBtn img {
  margin-top: 0 !important;
}

#composerBox {
  position: relative;
  margin-top: 4px;
  height: calc(100% - 34px);
}

#composerAccessoryArea {
  position: absolute;
  top: 8px;
  right: 10px;
  left: 10px;
  z-index: 6;
  display: none;
  align-items: stretch;
  gap: 8px;
  height: 58px;
  pointer-events: none;
}

#composerBox.composer-has-accessory #composerAccessoryArea {
  display: flex;
}

#composerBox.composer-has-accessory .Input_text {
  padding-top: 76px !important;
}

#composerReplyPreview {
  display: none;
  align-items: center;
  min-width: 0;
  max-width: min(320px, 48%);
  padding: 8px 8px 8px 10px;
  border: 1px solid #d9e2ee;
  border-left: 3px solid #5d86d7;
  border-radius: 7px;
  background: #f3f6fa;
  color: #42566d;
  pointer-events: auto;
}

#composerReplyPreview.is-visible {
  display: flex;
}

#composerReplyPreview > .layui-icon-reply-fill {
  flex: 0 0 auto;
  margin-right: 8px;
  color: #587bc2;
  font-size: 17px;
}

.composer-reply-copy {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  line-height: 1.3;
}

.composer-reply-copy strong,
.composer-reply-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.composer-reply-copy strong {
  color: #314a68;
  font-size: 12px;
  font-weight: 600;
}

.composer-reply-copy span {
  margin-top: 2px;
  color: #718297;
  font-size: 12px;
}

#cancelComposerReply,
.composer-image-remove,
.message-reply-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

#cancelComposerReply {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  margin-left: 6px;
  border-radius: 5px;
  color: #7d8da0;
}

#cancelComposerReply:hover {
  background: #e3e9f1;
  color: #3c5068;
}

#composerImageDrafts {
  display: none;
  min-width: 0;
  flex: 1 1 auto;
  gap: 7px;
  overflow-x: auto;
  overflow-y: hidden;
  pointer-events: auto;
}

#composerImageDrafts.is-visible {
  display: flex;
}

.composer-image-draft {
  position: relative;
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  overflow: hidden;
  border: 1px solid #ccd8e7;
  border-radius: 7px;
  background: #eef2f7;
}

.composer-image-draft img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.composer-image-remove {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 22px;
  height: 22px;
  border-radius: 5px;
  background: rgba(24, 35, 49, 0.72);
  color: #fff;
}

.composer-image-remove:hover {
  background: rgba(18, 27, 39, 0.9);
}

.Input_text {
  margin: 0;
  width: 100%;
  height: 100%;
  border: 1px solid #dcdfe5;
  border-radius: 10px;
  resize: none;
  background: #ffffff;
  color: #2f3f52;
  font-size: 15px;
  line-height: 1.7;
  padding: 12px 122px 12px 14px !important;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.Input_text:focus {
  border-color: #b7c5d8;
  box-shadow: none;
}

#messageCount {
  position: absolute;
  right: 16px;
  bottom: 46px;
  color: #98a5b5;
  font-size: 12px;
  font-weight: 600;
  z-index: 4;
}

#btnEndChat {
  margin: 0 !important;
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 5;
}

#sendKeyModeWrap {
  position: absolute;
  right: 96px;
  bottom: 10px;
  z-index: 5;
  width: 30px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd7e5;
  border-radius: 8px;
  background: #ffffff;
  color: #52677f;
  cursor: pointer;
}

#sendKeyMode {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

#sendKeyModeWrap:hover,
#sendKeyModeWrap:focus-within {
  border-color: #9db7dc;
  color: #315f9f;
}

.send-key-mode-icon {
  pointer-events: none;
  font-size: 17px;
  line-height: 1;
  transform: translateY(-1px);
}

#btnSend {
  margin: 0 !important;
  position: absolute;
  right: 10px;
  bottom: 10px;
  background: linear-gradient(135deg, var(--accent-soft), var(--accent));
  border: 0;
  border-radius: 10px;
  min-width: 80px;
  padding: 0 12px;
  height: 32px;
  font-size: 13px;
  letter-spacing: 0.2px;
  font-weight: 600;
  box-shadow: 0 8px 18px rgba(63, 122, 254, 0.35);
  z-index: 5;
}

#btnSend:hover {
  filter: brightness(1.03);
  transform: translateY(-1px);
}

#btnSend:active {
  transform: translateY(0);
}

#chatRightPlaceholder {
  width: 21%;
  min-width: 245px;
  max-width: 335px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
  border: 1px solid #d8e3f0;
  color: #5f7590;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  text-align: left;
  padding: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95), 0 8px 22px rgba(73, 102, 138, 0.12);
}

/* 暂时隐藏右侧欢迎卡片 */
#chatRightPlaceholder {
  display: none !important;
}

#chatRightPlaceholder .welcome-card {
  border-radius: 14px;
  border: 1px dashed #cfe0f2;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(246, 251, 255, 0.92) 100%);
  padding: 22px 16px;
  width: 100%;
}

#chatRightPlaceholder .welcome-emoji {
  font-size: 28px;
  line-height: 1;
}

#chatRightPlaceholder h4 {
  margin: 14px 0 8px;
  color: var(--ink);
  font-size: 20px;
  font-weight: 700;
}

#chatRightPlaceholder p {
  margin: 0;
  color: #6f849a;
  font-size: 15px;
  line-height: 1.6;
}

#chatRightPlaceholder ul {
  margin: 14px 0 0;
  padding-left: 18px;
}

#chatRightPlaceholder li {
  margin: 8px 0;
  color: #7388a0;
  font-size: 14px;
  line-height: 1.5;
}

#viewControls {
  position: fixed;
  left: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 100;
}

#viewControls button {
  border: 0;
  color: #fff;
  border-radius: 12px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

#viewControls button:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
}

#viewControls button:active {
  transform: translateY(0);
}

#toggleScale,
#toggleMaximize {
  background: linear-gradient(135deg, #5f7896, #4b627e);
  box-shadow: 0 6px 14px rgba(56, 74, 97, 0.28);
}

#enableSound {
  position: static;
  border: 0;
  background: linear-gradient(135deg, #3f7bff, #2f6fff);
  color: #fff;
  border-radius: 12px;
  padding: 8px 12px;
  box-shadow: 0 6px 14px rgba(62, 120, 255, 0.3);
}

#enableSound.is-off {
  background: linear-gradient(135deg, #8b9cb0, #73879e);
  box-shadow: 0 6px 14px rgba(80, 99, 121, 0.28);
}

body.ui-compact .main {
  position: fixed;
  left: var(--app-compact-left);
  top: var(--app-compact-top);
  width: var(--app-compact-current-width);
  height: var(--app-compact-current-height);
  padding: 0;
  overflow: hidden;
}

body.ui-compact .main_inner .layui-fluid {
  gap: 10px;
  padding: 10px;
}

body.ui-compact .main_inner {
  height: 100%;
  min-height: 0;
  border-radius: 18px;
  border: 1px solid #ced9e6;
  box-shadow: 0 8px 16px rgba(56, 76, 102, 0.12);
  background: #e7edf4 !important;
  overflow: hidden;
}

body.ui-compact .main_inner,
body.ui-compact #o.coolchat_data_panel,
body.ui-compact #chatPanel,
body.ui-compact .coolchat_message_panel_1,
body.ui-compact #tabCon_1,
body.ui-compact #tabCon_2,
body.ui-compact #tabCon_3 {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.ui-compact {
  background: #d8dfe8 !important;
}

body.ui-compact .main_inner,
body.ui-compact #o.coolchat_data_panel,
body.ui-compact #chatPanel,
body.ui-compact .coolchat_message_panel_1,
body.ui-compact #tabCon_1,
body.ui-compact #tabCon_2,
body.ui-compact #tabCon_3,
body.ui-compact #sendMsgScopeDiv,
body.ui-compact #messagePanel,
body.ui-compact #messageDisplayArea {
  background-image: none !important;
}

body.ui-compact .coolchat_left_nav {
  width: 192px;
}

body.ui-compact #o.coolchat_data_panel {
  width: clamp(238px, 25%, 360px);
  min-width: 228px;
}

body.ui-compact #messagePanel {
  height: calc(100% - 214px) !important;
}

body.ui-compact #sendMsgScopeDiv {
  height: 214px !important;
}

body.ui-compact #photo #myAvatar {
  width: 76px !important;
  height: 76px !important;
  min-width: 76px;
  min-height: 76px;
}

body.ui-compact .coolchat_left_nav dl dt p {
  height: 46px;
  font-size: 16px;
}

body.ui-compact #chatTitle {
  font-size: 18px;
}

/* Compact popup fixes */
body.ui-compact #detailsOverlay {
  z-index: 1898;
  background: rgba(23, 33, 47, 0.52) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.ui-compact #tabCon_1.codex-popup-open,
body.ui-compact #tabCon_2.codex-popup-open,
body.ui-compact #prop.codex-popup-open,
body.ui-compact #privacy.codex-popup-open,
body.ui-compact #setPassword.codex-popup-open {
  z-index: 1999 !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  border: 1px solid #c8d6e6 !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 40px rgba(20, 36, 55, 0.28) !important;
  background: linear-gradient(180deg, #f8fbff 0%, #f0f5fb 100%) !important;
  width: min(540px, calc(100vw - 28px)) !important;
  max-height: min(650px, calc(100vh - 28px)) !important;
  overflow: auto !important;
  padding: 12px !important;
}

body.ui-compact #tabCon_1.codex-popup-open .friend-profile-card {
  margin: 0 auto !important;
  width: min(520px, calc(100% - 4px)) !important;
  min-height: 0 !important;
  padding: 8px 18px 16px;
}

/* Unified modal / popup visual language */
.modal-content:not([style*="2e3238"]) {
  border-radius: 16px;
  border: 1px solid #d9e3ef;
  box-shadow: 0 20px 44px rgba(18, 33, 52, 0.24);
  overflow: hidden;
}

/* Bootstrap modal compatibility: force visible when shown (.in/.show) */
.modal.in,
.modal.show {
  display: block !important;
  opacity: 1 !important;
}

.modal.in .modal-dialog,
.modal.show .modal-dialog {
  transform: translate(0, 0) !important;
  -webkit-transform: translate(0, 0) !important;
}

.modal-header {
  border-bottom: 1px solid #e2eaf3;
  background: linear-gradient(180deg, #f8fbff 0%, #f2f7fd 100%);
}

.modal-footer {
  border-top: 1px solid #e4ebf4;
  background: #f7fbff;
}

.modal-title {
  color: #1f354f;
  font-weight: 700;
}

.modal .form-control,
.modal .layui-input,
.modal textarea {
  border-radius: 10px !important;
  border-color: #d2dfed !important;
  box-shadow: none !important;
}

.modal .form-control:focus,
.modal .layui-input:focus,
.modal textarea:focus {
  border-color: #8eb3f5 !important;
  box-shadow: 0 0 0 3px rgba(63, 122, 254, 0.12) !important;
}

.layui-layer.my-skin {
  border-radius: 14px !important;
  border: 1px solid #d3dfed !important;
  box-shadow: 0 16px 36px rgba(18, 38, 63, 0.24) !important;
  overflow: hidden;
}

.layui-layer.my-skin .layui-layer-content {
  color: #21374f;
  font-size: 14px;
  line-height: 1.7;
  padding: 16px 18px !important;
}

.layui-layer.my-skin .layui-layer-btn {
  border-top: 1px solid #e2e9f3;
  padding: 10px 12px !important;
  background: #f8fbff;
}

.layui-layer-msg {
  border-radius: 10px !important;
  box-shadow: 0 10px 28px rgba(20, 42, 72, 0.24) !important;
}

/* WeChat-like message bubbles */
#messageContainer .msgDiv {
  margin: 10px 0;
}

#messageContainer .message {
  padding: 0 4px;
}

#messageContainer .message .avatar,
#messageContainer .message .group_avatar {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  border: 1px solid #d6deea;
  background: linear-gradient(180deg, #eef2f7 0%, #e6ecf3 100%);
  object-fit: cover;
  box-shadow: 0 2px 6px rgba(49, 66, 85, 0.16);
}

/* Avatar placeholder shell for self/friend/group (before image load) */
#myAvatar,
#avatar_preview,
.chat_content_avatar,
.chat_item .avatar .img,
.grop_item .avatar .img,
.media-avatar img,
.roundAvatar {
  border: 1px solid #d8e1ec;
  background: linear-gradient(180deg, #f0f3f8 0%, #e7edf4 100%);
  box-shadow: 0 2px 8px rgba(63, 82, 108, 0.12);
}

#myAvatar,
#avatar_preview {
  border-radius: 50% !important;
}

.chat_content_avatar {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  object-fit: cover;
  cursor: pointer;
  border: 1px solid #d2deec;
  box-shadow: 0 6px 14px rgba(41, 64, 92, 0.14);
}

#chatAvator {
  width: 54px;
  min-width: 54px;
  height: 54px;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

#chatAvator .imgAvatar,
#chatAvator figure {
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border-radius: 14px;
  overflow: hidden;
}

#photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding-top: 6px;
}

#photo #myAvatar {
  width: 88px !important;
  height: 88px !important;
  min-width: 88px;
  min-height: 88px;
  margin: 0 !important;
  border-radius: 50% !important;
  object-fit: cover;
  display: block;
}

#photo #nickname {
  margin: 0 !important;
  color: #dce7f3 !important;
  font-size: 15px !important;
  font-weight: 600;
  line-height: 1.2;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#photo #user_online {
  position: absolute !important;
  top: 72px;
  right: calc(50% - 56px);
  margin: 0 !important;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 2px solid #22384d;
}

#messages #messageNum,
.messageNum,
.web_wechat_reddot_middle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 20px !important;
  height: 20px !important;
  padding: 0 6px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #ff7360, #ff3e3e) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 700;
  line-height: 1 !important;
  box-shadow: 0 4px 12px rgba(255, 76, 76, 0.32);
}

#messages #messageNum.msgNumHide,
.web_wechat_reddot_middle.msgNumHide {
  display: none !important;
}

/* =============================
 * CallView minimize / floating
 * ============================= */
.call-invite-dialog {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 10020;
  display: none;
  width: min(360px, calc(100% - 32px));
  min-height: 500px;
  max-height: calc(100% - 32px);
  padding: 24px;
  overflow-y: auto;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: #20252b;
  color: #fff;
  box-shadow: 0 22px 60px rgba(23, 31, 42, 0.34);
  text-align: center;
  letter-spacing: 0;
}

.call-invite-dialog__notice {
  margin: 0 0 34px;
  color: #b9c1ca;
  font-size: 13px;
  line-height: 1.5;
}

.call-invite-dialog__person {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.call-invite-dialog__avatar {
  width: 104px;
  height: 104px;
  overflow: hidden;
  border: 3px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
}

.call-invite-dialog__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

.call-invite-dialog__name {
  max-width: 100%;
  margin: 20px 0 0;
  overflow: hidden;
  color: #fff;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.call-invite-dialog__status {
  min-height: 22px;
  margin: 8px 0 0;
  color: #cbd2d9;
  font-size: 14px;
  line-height: 1.55;
}

.call-invite-dialog__actions {
  display: flex;
  justify-content: center;
  gap: 64px;
  margin-top: 70px;
}

.call-invite-dialog__actions--single {
  gap: 0;
}

.call-round-action {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  width: 64px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 13px;
  line-height: 1.2;
  cursor: pointer;
}

.call-round-action img {
  display: block;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  transition: transform 0.15s ease, filter 0.15s ease;
}

.call-round-action:hover img {
  filter: brightness(1.08);
  transform: translateY(-2px);
}

.call-round-action:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 5px;
}

#callView {
  position: absolute;
  inset: 0;
  z-index: 10030;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #11151a;
}

.call-view-hangup {
  position: absolute;
  bottom: 22px;
  left: 50%;
  z-index: 100001;
  width: 58px;
  height: 58px;
  padding: 0;
  transform: translateX(-50%);
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

.call-view-hangup img {
  display: block;
  width: 100%;
  height: 100%;
}

.call-view-hangup:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

#callView.coolchat-call-minimized {
  position: fixed !important;
  left: auto !important;
  top: auto !important;
  right: 16px !important;
  bottom: 16px !important;
  width: 360px !important;
  height: 240px !important;
  transform: none !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  z-index: 99999 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35) !important;
}

#callView.coolchat-call-minimized.coolchat-call-dragging {
  cursor: grabbing;
}

#callView .coolchat-call-controls {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  gap: 8px;
  z-index: 100000;
}

#callView .coolchat-call-badge {
  position: absolute;
  left: 10px;
  top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 12px;
  line-height: 1;
  z-index: 100000;
  max-width: calc(100% - 120px);
}

#callView .coolchat-call-badge .coolchat-call-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
}

#callView .coolchat-call-badge .coolchat-call-time {
  opacity: 0.9;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

#callView .coolchat-call-btn {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 0;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  line-height: 28px;
  text-align: center;
  cursor: pointer;
  user-select: none;
}

#callView .coolchat-call-btn:focus {
  outline: 2px solid rgba(255, 255, 255, 0.65);
  outline-offset: 2px;
}

/* Red packet password: numeric inputs but masked */
.inputRedPackePassword {
  -webkit-text-security: disc;
  text-security: disc;
}

#messageContainer .message.you .content,
#messageContainer .message.me .content {
  max-width: calc(100% - 58px);
}

#messageContainer .message .nickname {
  margin: 0 0 4px;
  font-size: 12px;
  color: #7f90a5;
  font-weight: 500;
}

#messageContainer .message .bubble {
  border-radius: 9px;
  border: 1px solid transparent;
  box-shadow: 0 1px 2px rgba(49, 66, 85, 0.08);
}

#messageContainer .message .bubble_cont {
  padding: 9px 12px;
}

.message-content-shell {
  position: relative;
}

.message-reply-action {
  position: absolute;
  top: 50%;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
  border: 1px solid #d7e0eb;
  border-radius: 6px;
  background: #f7f9fc;
  color: #62758b;
  box-shadow: 0 3px 8px rgba(43, 60, 82, 0.12);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.message.you .message-reply-action {
  right: -40px;
}

.message.me .message-reply-action {
  left: -40px;
}

.msgDiv:hover .message-reply-action,
.message-reply-action:focus-visible {
  opacity: 1;
  pointer-events: auto;
}

.message-reply-action:hover {
  background: #eaf0f8;
  color: #355c9c;
}

.message-quote {
  display: block;
  max-width: 320px;
  margin: 0 0 7px;
  padding: 7px 9px;
  overflow: hidden;
  border: 0;
  border-left: 3px solid rgba(70, 94, 123, 0.45);
  border-radius: 5px;
  background: rgba(53, 71, 94, 0.08);
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.message-quote:hover {
  background: rgba(53, 71, 94, 0.14);
}

.message-quote-author,
.message-quote-text {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-quote-author {
  color: #365981;
  font-size: 12px;
  font-weight: 600;
}

.message-quote-text {
  margin-top: 2px;
  color: #66788c;
  font-size: 12px;
}

.message-quote-target {
  animation: quote-target-flash 1.4s ease;
}

.message-album-root .message-album-bubble {
  max-width: min(390px, calc(100vw - 150px));
}

#messageContainer .message-album-root .message-album-bubble .bubble_cont {
  padding: 0;
  overflow: hidden;
  border-radius: 8px;
}

.message-album-bubble .message-quote {
  width: auto;
  max-width: none;
  margin: 9px 10px 7px;
}

.message-album-grid {
  display: grid;
  width: min(360px, calc(100vw - 180px));
  gap: 2px;
  overflow: hidden;
  background: rgba(39, 56, 77, 0.08);
}

.message-album-grid[data-count="1"] {
  display: block;
  width: auto;
  max-width: min(360px, calc(100vw - 180px));
  background: transparent;
}

.message-album-grid[data-count="2"],
.message-album-grid[data-count="4"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 132px;
}

.message-album-grid[data-count="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 119px;
}

.message-album-grid[data-count="3"] .message-album-tile:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.message-album-grid[data-count="6"],
.message-album-grid[data-count="7"],
.message-album-grid[data-count="9"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 110px;
}

.message-album-grid[data-count="5"],
.message-album-grid[data-count="8"] {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: 110px;
}

.message-album-grid[data-count="5"] .message-album-tile,
.message-album-grid[data-count="8"] .message-album-tile {
  grid-column: span 2;
}

.message-album-grid[data-count="5"] .message-album-tile:nth-child(-n + 2),
.message-album-grid[data-count="8"] .message-album-tile:nth-child(-n + 2) {
  grid-column: span 3;
}

.message-album-grid[data-count="7"] .message-album-tile:first-child {
  grid-column: 1 / -1;
}

.message-album-tile {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #e9eef4;
}

.message-album-tile .picture {
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.message-album-grid:not([data-count="1"]) .message-album-tile .picture img {
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  max-height: none;
  object-fit: cover;
}

.message-album-grid[data-count="1"] .message-album-tile .picture img {
  width: auto;
  max-width: min(360px, calc(100vw - 180px));
  max-height: 300px;
  object-fit: contain;
}

.message-album-tile .msg_status_common {
  top: auto !important;
  right: 7px !important;
  bottom: 7px !important;
  left: auto !important;
  z-index: 2;
  margin: 0 !important;
  filter: drop-shadow(0 1px 2px rgba(27, 39, 54, 0.35));
}

.message-album-caption > .plain {
  padding: 9px 12px 10px;
}

.message-album-caption + .msg_status_common {
  margin-top: 0;
}

@keyframes quote-target-flash {
  0%,
  100% {
    background: transparent;
  }
  35% {
    background: rgba(75, 123, 210, 0.16);
  }
}

@media (hover: none), (pointer: coarse) {
  .message-reply-action {
    opacity: 1;
    pointer-events: auto;
  }
}

@media (max-width: 640px) {
  .message-album-root .message-album-bubble {
    max-width: calc(100vw - 116px);
  }

  .message-album-grid {
    width: min(310px, calc(100vw - 146px));
  }

  .message-album-grid[data-count="1"],
  .message-album-grid[data-count="1"] .message-album-tile .picture img {
    max-width: min(310px, calc(100vw - 146px));
  }

  .message-album-grid[data-count="2"],
  .message-album-grid[data-count="4"] {
    grid-auto-rows: 108px;
  }

  .message-album-grid[data-count="3"] {
    grid-auto-rows: 102px;
  }

  .message-album-grid[data-count="5"],
  .message-album-grid[data-count="6"],
  .message-album-grid[data-count="7"],
  .message-album-grid[data-count="8"],
  .message-album-grid[data-count="9"] {
    grid-auto-rows: 86px;
  }
}

#messageContainer .message .bubble_cont .plain .js_message_plain,
#messageContainer .message .bubble_cont .plain pre {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #27384d;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Subtle scrollbars for desktop polish */
#messagePanel::-webkit-scrollbar,
#messageDisplayArea::-webkit-scrollbar,
#myMessagesList::-webkit-scrollbar,
#myFriendsList::-webkit-scrollbar,
#blackList::-webkit-scrollbar,
#myRoomList::-webkit-scrollbar,
#_allRoomList::-webkit-scrollbar,
#liveRoomList::-webkit-scrollbar,
#emojiList::-webkit-scrollbar,
#gifList::-webkit-scrollbar,
#companyListShow::-webkit-scrollbar,
#tabCon_1::-webkit-scrollbar,
#tabCon_2::-webkit-scrollbar,
#tabCon_3::-webkit-scrollbar {
  width: 9px;
}

#messagePanel::-webkit-scrollbar-thumb,
#messageDisplayArea::-webkit-scrollbar-thumb,
#myMessagesList::-webkit-scrollbar-thumb,
#myFriendsList::-webkit-scrollbar-thumb,
#blackList::-webkit-scrollbar-thumb,
#myRoomList::-webkit-scrollbar-thumb,
#_allRoomList::-webkit-scrollbar-thumb,
#liveRoomList::-webkit-scrollbar-thumb,
#emojiList::-webkit-scrollbar-thumb,
#gifList::-webkit-scrollbar-thumb,
#companyListShow::-webkit-scrollbar-thumb,
#tabCon_1::-webkit-scrollbar-thumb,
#tabCon_2::-webkit-scrollbar-thumb,
#tabCon_3::-webkit-scrollbar-thumb {
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: content-box;
  background-color: rgba(124, 145, 170, 0.48);
}

#messagePanel::-webkit-scrollbar-track,
#messageDisplayArea::-webkit-scrollbar-track,
#myMessagesList::-webkit-scrollbar-track,
#myFriendsList::-webkit-scrollbar-track,
#blackList::-webkit-scrollbar-track,
#myRoomList::-webkit-scrollbar-track,
#_allRoomList::-webkit-scrollbar-track,
#liveRoomList::-webkit-scrollbar-track,
#emojiList::-webkit-scrollbar-track,
#gifList::-webkit-scrollbar-track,
#companyListShow::-webkit-scrollbar-track,
#tabCon_1::-webkit-scrollbar-track,
#tabCon_2::-webkit-scrollbar-track,
#tabCon_3::-webkit-scrollbar-track {
  background: transparent;
}

#companyListShow {
  overflow-x: hidden;
  overflow-y: auto;
}

#messageContainer .message .bubble.bubble_default {
  background: #ffffff;
  border-color: #e5e9ef;
}

#messageContainer .message .bubble.bubble_primary {
  background: #95ec69;
  border-color: #85dd5f;
}

#messageContainer .message .bubble.bubble_primary .js_message_plain,
#messageContainer .message .bubble.bubble_primary pre {
  color: #18311e;
}

#messageContainer .message .bubble.bubble_default.left:after {
  border-right-color: #ffffff;
}

#messageContainer .message .bubble.bubble_default.left:before {
  border-right-color: #e5e9ef;
}

#messageContainer .message .bubble.bubble_primary.right:after {
  border-left-color: #95ec69;
}

#messageContainer .message .bubble.bubble_primary.right:before {
  border-left-color: #85dd5f;
}

#messageContainer .message_system .content {
  color: #889aaf;
}

#tabCon_1,
#tabCon_2,
#tabCon_3 {
  display: none;
  flex: 1;
  width: auto !important;
  height: 100%;
  background: linear-gradient(180deg, #f1f5fa 0%, #ecf1f7 100%);
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: auto;
}

#tabCon_3 {
  padding: 0 !important;
}

.nearby-profile-card {
  width: min(560px, calc(100% - 36px));
  margin: 18px auto;
  overflow: hidden;
  border: 1px solid #dce3eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(49, 66, 85, 0.08);
  letter-spacing: 0;
}

.nearby-profile-card__header {
  display: flex;
  align-items: center;
  min-height: 68px;
  padding: 14px 20px;
  border-bottom: 1px solid #e6ebf1;
  background: #f8fafc;
}

.nearby-profile-card__header h3 {
  margin: 0;
  color: #24364c;
  font-size: 19px;
  font-weight: 650;
  line-height: 1.4;
}

.nearby-profile-card__header p {
  margin: 3px 0 0;
  color: #7c8da2;
  font-size: 13px;
  line-height: 1.4;
}

.nearby-profile-card__identity {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 20px;
  border-bottom: 1px solid #edf1f5;
}

.nearby-profile-card__avatar {
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
  overflow: hidden;
  border: 1px solid #dbe2ea;
  border-radius: 50%;
  background: #eef2f6;
}

.nearby-profile-card__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

.nearby-profile-card__primary {
  min-width: 0;
}

.nearby-profile-card__primary span {
  display: block;
  margin-bottom: 5px;
  color: #8493a5;
  font-size: 12px;
  line-height: 1.4;
}

.nearby-profile-card__primary strong {
  display: block;
  overflow-wrap: anywhere;
  color: #26384d;
  font-size: 22px;
  font-weight: 650;
  line-height: 1.4;
}

.nearby-profile-fields {
  height: auto;
  margin: 0;
  padding: 4px 20px 14px;
}

.nearby-profile-field {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: start;
  min-height: 48px;
  padding: 13px 0;
  border-bottom: 1px solid #edf1f5;
}

.nearby-profile-field:last-child {
  border-bottom: 0;
}

.nearby-profile-field dt,
.nearby-profile-field dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}

.nearby-profile-field dt {
  color: #78899d;
  font-weight: 500;
}

.nearby-profile-field dd {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #2d4056;
}

.voice-record-dialog {
  width: min(420px, calc(100% - 32px));
  margin: max(24px, 8vh) auto;
}

.voice-record-card {
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(30, 44, 61, 0.22);
  letter-spacing: 0;
}

.voice-record-card__header {
  min-height: 58px;
  padding: 17px 20px;
  border-bottom: 1px solid #e7ebf0;
  background: #fff;
}

.voice-record-card__header .modal-title {
  color: #27394f;
  font-size: 17px;
  font-weight: 650;
  line-height: 24px;
}

.voice-record-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 330px;
  padding: 22px 24px 30px;
  background: #f8fafc;
}

.voice-record-card__notice {
  width: 100%;
  margin: 0 0 38px;
  padding: 9px 12px;
  border: 1px solid #dce4ed;
  border-radius: 6px;
  background: #fff;
  color: #66788e;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.voice-record-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 150px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.voice-record-trigger img {
  display: block;
  width: 150px;
  height: 150px;
  margin: 0;
  border-radius: 50%;
  object-fit: contain;
  pointer-events: none;
}

.voice-record-trigger #voice_gif {
  display: none;
}

.voice-record-trigger.is-recording {
  box-shadow: 0 0 0 7px rgba(224, 66, 66, 0.14);
}

.voice-record-trigger:focus-visible {
  outline: 3px solid rgba(47, 111, 255, 0.5);
  outline-offset: 5px;
}

.voice-record-card__help {
  margin: 22px 0 0;
  color: #53667d;
  font-size: 14px;
  line-height: 1.5;
}

.voice-record-audio {
  display: none;
}

@media (max-width: 640px) {
  .call-invite-dialog {
    min-height: min(470px, calc(100% - 24px));
    max-height: calc(100% - 24px);
    padding: 20px;
  }

  .call-invite-dialog__actions {
    gap: 48px;
    margin-top: 54px;
  }

  #callView.coolchat-call-minimized {
    right: 10px !important;
    bottom: 10px !important;
    width: calc(100vw - 20px) !important;
    height: min(56vw, 260px) !important;
  }

  .nearby-profile-card {
    width: calc(100% - 20px);
    margin: 10px auto;
  }

  .nearby-profile-card__identity {
    padding: 20px 16px;
  }

  .nearby-profile-fields {
    padding-right: 16px;
    padding-left: 16px;
  }

  .nearby-profile-field {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .voice-record-dialog {
    margin: 16px auto;
  }

  .voice-record-card__body {
    min-height: 300px;
    padding-right: 18px;
    padding-left: 18px;
  }

  .voice-record-card__notice {
    margin-bottom: 30px;
  }

  .voice-record-trigger,
  .voice-record-trigger img {
    width: 132px;
    height: 132px;
  }
}

#detailsOverlay {
  position: fixed;
  inset: 0;
  background: rgba(14, 22, 32, 0.42);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 1998;
  display: none;
}

#detailsOverlay.show {
  display: block;
}

#tabCon_1.codex-popup-open,
#tabCon_2.codex-popup-open,
#prop.codex-popup-open,
#privacy.codex-popup-open,
#setPassword.codex-popup-open {
  position: fixed !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 1999 !important;
  width: min(540px, calc(100vw - 26px)) !important;
  max-height: min(640px, calc(100vh - 30px)) !important;
  overflow: auto !important;
  margin: 0 !important;
}

#tabCon_1.codex-popup-open > div {
  width: calc(100% - 24px) !important;
  margin: 12px auto !important;
  max-height: calc(100% - 24px) !important;
  overflow: auto !important;
  border-radius: 14px !important;
}

#tabCon_1.codex-popup-open {
  width: min(620px, calc(100vw - 26px)) !important;
  max-height: min(740px, calc(100vh - 30px)) !important;
  padding: 14px !important;
  background: #eef2f6 !important;
}

#tabCon_1.codex-popup-open .codex-panel-close {
  top: 22px;
  right: 22px;
}

#tabCon_2.codex-popup-open {
  padding-bottom: 14px !important;
}

#prop.codex-popup-open {
  padding: 18px 18px !important;
}

#privacy.codex-popup-open,
#setPassword.codex-popup-open {
  padding: 12px 14px 14px !important;
}

.codex-panel-close {
  position: absolute;
  right: 12px;
  top: 10px;
  width: 30px;
  height: 30px;
  border: 1px solid #d2dbe5;
  border-radius: 6px;
  background: #fff;
  color: #596d83;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
}

.codex-panel-close:hover {
  border-color: #b8c7d7;
  background: #f1f5f9;
  color: #263e57;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.system_menu_opt:focus-visible,
#groupDetailsBtn:focus-visible,
#composerTools span:focus-visible {
  outline: 0 !important;
  box-shadow: 0 0 0 2px #f6f9ff, 0 0 0 4px var(--focus-ring-strong) !important;
}

#prop .layui-form-label {
  width: 84px !important;
  position: static !important;
  float: none !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 40px !important;
  color: #41566f;
  font-weight: 600;
  flex: 0 0 84px;
}

#prop .layui-input-inline {
  width: auto !important;
  position: static !important;
  float: none !important;
  margin: 0 !important;
  flex: 1 1 auto;
  min-width: 0;
}

#prop .layui-input-block {
  margin: 0 !important;
  position: static !important;
  float: none !important;
  flex: 1 1 auto;
  min-width: 0;
}

#prop .layui-form-item {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px !important;
}

#prop .my-profile-identity {
  margin: -14px 0 20px;
  padding: 12px 0;
  border-top: 1px solid #dce5f0;
  border-bottom: 1px solid #dce5f0;
}

#prop .my-profile-identity-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 16px;
  min-height: 34px;
  align-items: center;
  color: #41566f;
  line-height: 1.4;
}

#prop .my-profile-identity-row > span {
  font-size: 13px;
  font-weight: 600;
}

#prop .my-profile-identity-row > strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #243b55;
  font-size: 14px;
  font-weight: 500;
}

#prop .my-description-row {
  align-items: flex-start;
}

#prop .my-description-row .layui-form-label {
  line-height: 24px !important;
}

#prop #mydescription {
  min-height: 76px;
  resize: vertical;
  line-height: 1.5;
}

#prop .my-profile-field-count {
  margin-top: 3px;
  color: #8a99aa;
  font-size: 12px;
  line-height: 1.4;
  text-align: right;
}

#prop .my-sex-row .my-sex-options {
  margin: 0 !important;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 40px;
  flex-wrap: nowrap;
}

#prop .my-sex-row .layui-form-radio {
  margin: 0 !important;
  color: #41566f;
  line-height: 1.2;
  padding: 6px 10px 6px 6px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid #d7e2ef;
  display: inline-flex !important;
  align-items: center;
}

#prop .my-sex-row .layui-form-radio > i {
  margin-right: 6px;
  font-size: 20px !important;
  line-height: 1 !important;
}

#prop .my-sex-row .layui-form-radioed {
  border-color: #8eb3f5;
  background: rgba(223, 236, 255, 0.86);
}

#prop .my-sex-row .layui-form-radioed > i {
  color: #2f6fff !important;
}

#tabCon_1 #desRemark #btnSaveRemark {
  height: 30px;
  line-height: 30px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 12px;
  background: linear-gradient(135deg, #6f9dff, #3f7cff);
  border: 0;
  color: #fff;
}

#tabCon_2 {
  padding: 0 !important;
}

#tabCon_2 .head {
  display: none !important;
}

#tabCon_2 .group-detail-avatar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px 12px;
  border-bottom: 1px solid #d9e2ec;
  position: sticky;
  top: 0;
  z-index: 2;
  background: linear-gradient(180deg, #f4f7fb 0%, #edf3fa 100%);
}

#tabCon_2 #desphoto {
  width: 58px;
  height: 58px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #d8e1ec;
  background: linear-gradient(180deg, #f1f4f8 0%, #e7edf4 100%);
  position: relative;
  flex: 0 0 auto;
}

#tabCon_2 #desphoto img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: cover;
  box-shadow: none !important;
  border: 0 !important;
}

#tabCon_2 #desphoto.room-avatar-editable {
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(45, 72, 104, 0.14);
}

#tabCon_2 #desphoto.room-avatar-editable::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0) 30%, rgba(15, 23, 42, 0.48) 100%);
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
}

#tabCon_2 #desphoto.room-avatar-editable:hover::after {
  opacity: 1;
}

#tabCon_2 .group-avatar-edit-badge {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 5px;
  z-index: 1;
  height: 18px;
  line-height: 18px;
  border-radius: 999px;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: rgba(15, 23, 42, 0.72);
  backdrop-filter: blur(8px);
  transform: translateY(6px);
  opacity: 0;
  transition: opacity 0.18s ease, transform 0.18s ease;
  pointer-events: none;
}

#tabCon_2 #desphoto.room-avatar-editable:hover .group-avatar-edit-badge {
  opacity: 1;
  transform: translateY(0);
}

#tabCon_2 .group-detail-head-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#tabCon_2 .group-detail-avatar .title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: #1f344a;
}

#tabCon_2 .group-detail-meta {
  margin: 0;
  color: #7488a1;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}

#tabCon_2 .group-detail-avatar-img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  object-fit: cover;
  box-shadow: none !important;
}

#tabCon_1 .friend-profile-card {
  width: min(640px, 100%);
  margin: 0 auto !important;
  overflow: hidden;
  border: 1px solid #dfe5ec !important;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(36, 54, 74, 0.1);
  height: auto;
  min-height: 0;
  padding: 0;
  text-align: left;
  letter-spacing: 0;
}

#tabCon_1 .friend-profile-header {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 132px;
  padding: 22px 28px;
  border-bottom: 1px solid #e5eaf0;
  background: #f8fafc;
}

#tabCon_1 .friend-profile-avatar {
  display: flex;
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
  padding: 0;
  margin: 0;
}

#tabCon_1 .friend-profile-summary {
  min-width: 0;
  flex: 1 1 auto;
}

#tabCon_1 .friend-profile-kicker,
#userModalBody .user-profile-kicker {
  display: block;
  margin-bottom: 7px;
  color: #718096;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

#tabCon_1 .friend-profile-copy-value--name {
  justify-content: flex-start;
}

#tabCon_1 #desname {
  overflow: hidden;
  color: #1f3147 !important;
  font-size: 23px !important;
  font-weight: 650;
  line-height: 1.35 !important;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

#tabCon_1 .friend-profile-summary-note {
  margin: 7px 0 0;
  color: #8492a5;
  font-size: 13px;
  line-height: 1.45;
}

#tabCon_1 .friend-profile-section {
  padding: 16px 28px 12px;
  border-bottom: 1px solid #e8edf2;
}

#tabCon_1 .friend-profile-section > h3 {
  margin: 0 0 6px;
  color: #5d6f83;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
}

#tabCon_1 .friend-profile-row {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 14px !important;
  row-gap: 0 !important;
  min-height: 42px;
  margin: 0;
  border-bottom: 1px solid #f0f3f6;
}

#tabCon_1 .friend-profile-row:last-child {
  border-bottom: 0;
}

#tabCon_1 .friend-profile-row--multiline {
  align-items: start !important;
  padding: 10px 0;
}

#tabCon_1 .friend-profile-row > * {
  position: static !important;
  float: none !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  text-align: left !important;
}

#tabCon_1 .friend-profile-row .one {
  grid-column: 1 !important;
  width: auto;
  min-width: 0;
  color: #7589a2;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}

#tabCon_1 .friend-profile-copy-value {
  grid-column: 2 !important;
  display: flex !important;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

#tabCon_1 .friend-profile-copy-value #desname,
#tabCon_1 .friend-profile-copy-value #destelephone,
#tabCon_1 .friend-profile-copy-value #desaccount {
  flex: 1 1 auto;
  width: auto !important;
}

#tabCon_1 .friend-profile-copy,
#userModalBody .friend-profile-copy {
  flex: 0 0 60px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 60px !important;
  height: 32px;
  min-width: 60px !important;
  padding: 0;
  border: 1px solid #cbd8e7;
  border-radius: 6px;
  background: #f8fafc;
  color: #3d6289;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

#tabCon_1 .friend-profile-copy::after,
#userModalBody .friend-profile-copy::after {
  content: "复制";
}

#tabCon_1 .friend-profile-copy:hover,
#tabCon_1 .friend-profile-copy:focus-visible,
#userModalBody .friend-profile-copy:hover,
#userModalBody .friend-profile-copy:focus-visible {
  color: #2f68a7;
  background: #edf5fd;
  border-color: #b8cee5;
  outline: none;
}

#tabCon_1 .friend-profile-copy:disabled,
#userModalBody .friend-profile-copy:disabled {
  color: #b6c1ce;
  background: #f4f6f8;
  border-color: #e1e6ec;
  cursor: not-allowed;
}

#tabCon_1 #destelephone,
#tabCon_1 #desaccount,
#tabCon_1 #desip,
#tabCon_1 #descity,
#tabCon_1 #desRemark,
#tabCon_1 #dessex,
#tabCon_1 #desbirthday,
#tabCon_1 #dessign,
#tabCon_1 #descountry,
#tabCon_1 #desprovince {
  grid-column: 2 !important;
  display: block !important;
  width: 100%;
  min-width: 0;
  position: static !important;
  float: none !important;
  left: auto !important;
  top: auto !important;
  margin: 0 !important;
  font-size: 14px;
  color: #243a52;
  line-height: 1.5;
  white-space: normal !important;
  word-break: break-word;
}

#tabCon_1 #desRemark {
  display: flex !important;
  align-items: center;
  gap: 8px;
  min-height: 34px;
}

#tabCon_1 #desRemark .remark_name {
  margin-left: 0 !important;
  width: min(300px, 100%);
  max-width: 100%;
  height: 36px;
  border-radius: 6px;
  border: 1px solid #ccd7e3;
  background: #fff;
  padding: 0 11px;
  color: #263b52;
  font-size: 14px;
}

#tabCon_1 #desRemark .switch-name {
  display: none !important;
}

#tabCon_1 #btnSaveRemark {
  flex: 0 0 auto;
  min-width: 64px;
}

#tabCon_1 #friendDetailsBtn {
  min-height: 68px;
  margin: 0 !important;
  padding: 14px 28px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  background: #fbfcfd;
}

.profile-action {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 96px;
  height: 36px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.profile-action .layui-icon,
.friend-profile-copy .layui-icon {
  font-size: 14px;
  line-height: 1;
}

.profile-action--primary {
  border-color: #316fba;
  background: #316fba;
  color: #fff;
}

.profile-action--primary:hover,
.profile-action--primary:focus-visible {
  border-color: #245d9f;
  background: #245d9f;
  color: #fff;
}

.profile-action--secondary {
  border-color: #cbd6e2;
  background: #fff;
  color: #344b63;
}

.profile-action--secondary:hover,
.profile-action--secondary:focus-visible {
  border-color: #aebfd0;
  background: #f3f6f9;
  color: #263d55;
}

.profile-action--danger {
  border-color: #e1b9bd;
  background: #fff;
  color: #b13b46;
}

.profile-action--danger:hover,
.profile-action--danger:focus-visible {
  border-color: #c94d58;
  background: #fff3f4;
  color: #9f2f39;
}

.profile-action:disabled {
  border-color: #dde3ea;
  background: #f3f5f7;
  color: #9ca9b7;
  cursor: not-allowed;
}

.user-report-options {
  display: grid;
  gap: 8px;
  max-height: min(520px, 70vh);
  padding: 18px;
  overflow-y: auto;
}

.user-report-option {
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: #1e293b;
  text-align: left;
  cursor: pointer;
}

.user-report-option:hover,
.user-report-option:focus-visible {
  border-color: #93c5fd;
  background: #eff6ff;
  outline: none;
}

.user-report-option:disabled {
  cursor: wait;
  opacity: 0.6;
}

/* Ensure legacy styles cannot force overlap in compact mode */
body.ui-compact #tabCon_1 .friend-profile-row,
body.ui-compact #tabCon_1 .friend-profile-row > *,
body.ui-compact #tabCon_1 .friend-profile-row .one,
body.ui-compact #tabCon_1 #desname,
body.ui-compact #tabCon_1 #destelephone,
body.ui-compact #tabCon_1 #desaccount,
body.ui-compact #tabCon_1 #desip,
body.ui-compact #tabCon_1 #descity,
body.ui-compact #tabCon_1 #desRemark,
body.ui-compact #tabCon_1 #dessex,
body.ui-compact #tabCon_1 #desbirthday,
body.ui-compact #tabCon_1 #dessign,
body.ui-compact #tabCon_1 #descountry,
body.ui-compact #tabCon_1 #desprovince {
  position: static !important;
  float: none !important;
  transform: none !important;
}

#tabCon_1 #friend_img_div img {
  width: 88px !important;
  height: 88px !important;
  object-fit: cover;
  border: 1px solid #d8e1ec;
  border-radius: 8px !important;
  background: #edf1f5;
  box-shadow: none;
}

#tabCon_2 .groupDetailSettingRow {
  height: auto;
  min-height: 58px;
  padding: 10px 16px;
  border-bottom: 1px solid #e3ebf4;
  display: flex;
  align-items: center;
  transition: background-color 0.15s ease;
}

#tabCon_2 .groupDetailSettingRow:hover {
  background: rgba(76, 122, 184, 0.06);
}

#tabCon_2 .groupDetailSettingRow[onclick],
#tabCon_2 #btnInvite,
#tabCon_2 #btnKicking,
#tabCon_2 #groupTransferDiv {
  cursor: pointer;
}

#tabCon_2 .groupDetailSettingRow[onclick]:active,
#tabCon_2 #btnInvite:active,
#tabCon_2 #btnKicking:active,
#tabCon_2 #groupTransferDiv:active {
  background: rgba(66, 109, 166, 0.12);
}

#tabCon_2 .groupDetailSettingRow > div {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
}

#tabCon_2 .groupSettingItem_p {
  margin: 0 !important;
  flex: 0 0 110px;
  color: #627a93 !important;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.4;
}

#tabCon_2 .groupDetailText {
  flex: 1 1 auto;
  margin: 0 !important;
  color: #233a52;
  font-size: 15px;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#tabCon_2 #gdesc,
#tabCon_2 #gnotice {
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#tabCon_2 .groupDetailSettingImg {
  width: 15px !important;
  height: 15px !important;
  margin: 0 0 0 auto !important;
  opacity: 0.55;
}

#tabCon_2 .groupSettingSwitchDiv .layui-input-block {
  width: 100%;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#tabCon_2 .groupSettingSwitchDiv .groupSettingItem_p {
  flex: 1 1 auto;
  width: auto !important;
  margin-right: 12px !important;
}

#tabCon_2 .groupDetailSettingRow:last-child {
  border-bottom: 0;
}

#tabCon_2.codex-popup-open .groupDetailSettingRow {
  min-height: 54px;
  padding-top: 8px;
  padding-bottom: 8px;
}

#tabCon_2 .group-detail-actions {
  margin: 14px 14px 18px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #d8e4f3;
  background: #f8fbff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

#tabCon_2 .group-detail-note {
  color: #6f849a;
  font-size: 12px;
  line-height: 1.4;
}

#tabCon_2 #btnGroupDetailDone {
  min-width: 84px;
  height: 34px;
  border-radius: 10px;
  background: linear-gradient(135deg, #6f9dff, #3f7cff);
  border: 0;
}

/* Avatar detail modal (friend / group member) */
#userModal .modal-dialog {
  width: min(480px, calc(100vw - 24px)) !important;
  margin-top: 56px !important;
}

#userModal .modal-content {
  overflow: hidden;
  border: 1px solid #d8e0e9;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(27, 43, 61, 0.2);
}

#userModal .modal-header {
  min-height: 54px;
  padding: 16px 20px;
  border-bottom: 1px solid #e5eaf0;
  background: #fff;
}

#userModal .modal-title {
  color: #26394f;
  font-size: 17px;
  font-weight: 650;
  line-height: 22px;
}

#userModal .modal-header .close {
  margin-top: 0;
  color: #64748b;
  font-weight: 400;
  text-shadow: none;
  opacity: 1;
}

#userModal .modal-body {
  padding: 20px;
  background: #fff;
}

#userModalBody .user_info {
  margin: 0 !important;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 0 16px;
  align-items: center;
  text-align: left;
}

#userModalBody .user_info,
#userModalBody .user_info * {
  position: static !important;
  float: none !important;
}

#userModalBody .user_info > img.roundAvatar {
  width: 80px !important;
  height: 80px !important;
  border-radius: 8px !important;
  object-fit: cover;
  margin: 0 !important;
  border: 1px solid #d5dde6;
  background: #edf1f5;
}

#userModalBody .user_info .media-heading {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  color: #1f3147;
  font-size: 21px;
  font-weight: 650;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#userModalBody .user-profile-summary {
  min-width: 0;
  margin-top: 0 !important;
}

#userModalBody .user-profile-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

#userModalBody .user-profile-name-row .media-heading {
  flex: 1 1 auto;
}

#userModalBody .user-profile-sex-icon {
  display: block;
  width: 18px !important;
  height: 18px !important;
  margin-top: 8px;
  object-fit: contain;
}

#userModalBody .user_info .details {
  grid-column: 1 / -1;
  width: 100% !important;
  margin: 20px 0 0 !important;
  padding-top: 4px;
  border-top: 1px solid #e7ebf0;
  font-size: 14px !important;
  color: #5f748d !important;
}

#userModalBody .user_info .details p {
  min-height: 38px;
  margin: 0 !important;
  border-bottom: 1px solid #f0f3f6;
  white-space: normal !important;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.45;
}

#userModalBody .user-profile-section-title {
  margin: 0;
  padding: 12px 0 6px;
  color: #68798c;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

#userModalBody .user_info .details .profile-copy-row {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) 60px;
  align-items: center;
  gap: 8px;
  overflow: visible;
}

#userModalBody .profile-copy-label,
#userModalBody .profile-copy-text {
  min-width: 0;
  padding-left: 0 !important;
}

#userModalBody .profile-copy-label {
  color: #71849a;
  font-weight: 500;
}

#userModalBody .profile-copy-text {
  overflow: hidden;
  color: #243a52;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

#userModalBody .user-profile-field {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

#userModalBody .user-profile-field-value {
  min-width: 0;
  padding-left: 0 !important;
  color: #2b4057;
  overflow-wrap: anywhere;
}

#userModalBody .user_info .option {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e7ebf0;
}

#userModalBody .user_info .option button {
  width: auto !important;
  min-width: 96px;
  height: 36px !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: 600;
  padding: 0 14px;
}

#userModalBody .user_info .option .sendMsg {
  border-color: #316fba !important;
  background: #316fba !important;
}

#userModalBody .user_info .option .addAttention {
  border-color: #316fba !important;
  background: #316fba !important;
}

/* Keep profile details visible as one desktop surface instead of a nested scroller. */
@media (min-width: 701px) {
  #tabCon_1.codex-popup-open,
  body.ui-compact #tabCon_1.codex-popup-open {
    width: min(790px, calc(100vw - 24px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 24px) !important;
    overflow: visible !important;
    padding: 10px !important;
  }

  #tabCon_1.codex-popup-open .friend-profile-card,
  body.ui-compact #tabCon_1.codex-popup-open .friend-profile-card {
    width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #tabCon_1 .friend-profile-header {
    min-height: 104px;
    padding: 14px 22px;
  }

  #tabCon_1 .friend-profile-avatar {
    flex-basis: 76px;
    width: 76px;
    height: 76px;
  }

  #tabCon_1 .friend-profile-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    padding: 10px 22px 8px;
  }

  #tabCon_1 .friend-profile-section > h3 {
    grid-column: 1 / -1;
    margin-bottom: 2px;
  }

  #tabCon_1 .friend-profile-row {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    min-height: 38px;
  }

  #tabCon_1 .friend-profile-row--remark,
  #tabCon_1 .friend-profile-row--multiline {
    grid-column: 1 / -1;
  }

  #tabCon_1 .friend-profile-row--multiline {
    min-height: 38px;
    padding: 6px 0;
  }

  #tabCon_1 #desRemark .remark_name {
    height: 32px;
  }

  #tabCon_1 #friendDetailsBtn {
    min-height: 56px;
    padding: 10px 22px;
  }

  #userModal .modal-dialog {
    width: min(620px, calc(100vw - 24px)) !important;
    margin: 24px auto !important;
  }

  #userModal .modal-content,
  #userModal .modal-body {
    max-height: none !important;
    overflow: visible !important;
  }

  #userModal .modal-header {
    min-height: 48px;
    padding: 13px 18px;
  }

  #userModal .modal-body {
    padding: 16px 18px;
  }

  #userModalBody .user_info {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 0 14px;
  }

  #userModalBody .user_info > img.roundAvatar {
    width: 68px !important;
    height: 68px !important;
  }

  #userModalBody .user_info .details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    margin-top: 14px !important;
    padding-top: 2px;
  }

  #userModalBody .user-profile-section-title {
    grid-column: 1 / -1;
    padding: 8px 0 4px;
  }

  #userModalBody .user_info .details p {
    min-height: 34px;
  }

  #userModalBody .user_info .details .profile-copy-row {
    grid-template-columns: 62px minmax(0, 1fr) 60px;
  }

  #userModalBody .user-profile-field {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  #userModalBody .user_info .option {
    margin-top: 12px;
    padding-top: 12px;
  }
}

@media (min-width: 701px) and (max-height: 560px) {
  #tabCon_1.codex-popup-open,
  body.ui-compact #tabCon_1.codex-popup-open,
  #userModal .modal-content {
    overflow-y: auto !important;
  }
}

/* Red packet modal */
#getredpacket .modal-dialog {
  width: min(520px, calc(100vw - 20px)) !important;
  margin-top: 76px !important;
}

#getredpacket .modal-content {
  border-radius: 16px;
  border: 1px solid #dbe5f1;
  box-shadow: 0 18px 36px rgba(37, 56, 81, 0.24);
  overflow: hidden;
}

#getredpacket .modal-header {
  background: linear-gradient(135deg, #ff7456 0%, #ff5a3a 100%) !important;
  border-bottom: 0;
  padding: 14px 16px;
}

#getredpacket .modal-title {
  color: #fff;
  font-size: 22px;
  font-weight: 700;
}

#getredpacket .modal-header .close {
  color: #fff;
  opacity: 0.9;
  text-shadow: none;
}

#redpacket_details {
  margin: 0 !important;
}

#redpacket_details .rp-card {
  padding: 4px 4px 0;
}

#redpacket_details .rp-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 10px 12px;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff7f5 0%, #fff2ef 100%);
  border: 1px solid #ffd4ca;
}

#redpacket_details .rp-avatar {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  object-fit: cover;
  border: 1px solid #ffd0c5;
  background: #fff;
}

#redpacket_details .rp-title {
  color: #243a52;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
}

#redpacket_details .rp-sub,
#redpacket_details .rp-state {
  color: #6e8197;
  font-size: 13px;
  line-height: 1.35;
  margin-top: 2px;
}

#redpacket_details .rp-action {
  margin-top: 10px;
  text-align: center;
}

#redpacket_details .rp-receive-btn {
  height: 36px;
  border: 0;
  border-radius: 999px;
  padding: 0 22px;
  font-size: 14px;
  font-weight: 700;
  background: linear-gradient(135deg, #ff6a4a, #ff4f2f);
  box-shadow: 0 8px 16px rgba(255, 95, 62, 0.28);
}

#redpacket_details .rp-list {
  margin-top: 12px;
  border-top: 1px solid #ebf0f6;
  max-height: 280px;
  overflow: auto;
}

#redpacket_details .rp-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 10px 4px;
  border-bottom: 1px solid #edf2f7;
}

#redpacket_details .rp-row-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  object-fit: cover;
  border: 1px solid #d9e3ef;
  background: #fff;
}

#redpacket_details .rp-row-name {
  color: #263b54;
  font-size: 14px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#redpacket_details .rp-row-time {
  color: #8193a8;
  font-size: 12px;
  white-space: nowrap;
}

#redpacket_details .rp-row-money {
  color: #ff5f3e;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

#redpacket_details .rp-empty {
  padding: 18px 0;
  text-align: center;
  color: #8da0b5;
  font-size: 13px;
}

@media (max-width: 560px) {
  #tabCon_1.codex-popup-open {
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    padding: 8px !important;
  }

  #tabCon_1.codex-popup-open .codex-panel-close {
    top: 16px;
    right: 16px;
  }

  #tabCon_1 .friend-profile-header {
    gap: 14px;
    min-height: 112px;
    padding: 18px;
  }

  #tabCon_1 .friend-profile-avatar,
  #tabCon_1 #friend_img_div img {
    width: 72px !important;
    height: 72px !important;
    flex-basis: 72px;
  }

  #tabCon_1 #desname {
    font-size: 20px !important;
  }

  #tabCon_1 .friend-profile-section {
    padding-right: 18px;
    padding-left: 18px;
  }

  #tabCon_1 .friend-profile-row {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    column-gap: 10px !important;
  }

  #tabCon_1 #desRemark {
    align-items: stretch;
    flex-direction: column;
  }

  #tabCon_1 #btnSaveRemark {
    align-self: flex-end;
  }

  #tabCon_1 #friendDetailsBtn {
    padding-right: 18px;
    padding-left: 18px;
  }

  #tabCon_1 #friendDetailsBtn .profile-action {
    flex: 1 1 120px;
  }

  #userModalBody .user_info {
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 0 12px;
  }

  #userModalBody .user_info > img.roundAvatar {
    width: 66px !important;
    height: 66px !important;
  }

  #userModalBody .user_info .option {
    flex-wrap: wrap;
  }

  #userModalBody .user_info .option .profile-action {
    flex: 1 1 120px;
  }
}

#prop,
#privacy,
#setPassword {
  display: none;
  position: fixed !important;
  box-sizing: border-box;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1999;
  width: min(560px, calc(100vw - 44px));
  max-height: min(700px, calc(100vh - 30px));
  margin: 0 !important;
  background: linear-gradient(180deg, #f8fbff 0%, #f0f5fb 100%) !important;
  border: 1px solid #d9e2ed;
  border-radius: 16px;
  box-shadow: 0 16px 32px rgba(43, 61, 82, 0.2);
  overflow: auto;
}

#prop .my_profile_title,
#privacy .privacy_set_title,
#setPassword .password_set_title {
  color: var(--ink);
  font-weight: 700;
  border-bottom: 1px solid #dce5f0;
  background: rgba(255, 255, 255, 0.48);
}

#prop .layui-btn-normal,
#privacy .defult_btn,
#setPassword .btn-primary {
  background: linear-gradient(135deg, var(--accent-soft), var(--accent)) !important;
  border: 0 !important;
  box-shadow: 0 8px 16px rgba(47, 111, 255, 0.26);
}

/* Unified account settings center */
#prop.account-settings-panel.codex-popup-open,
#privacy.account-settings-panel.codex-popup-open,
#setPassword.account-settings-panel.codex-popup-open,
body.ui-compact #prop.account-settings-panel.codex-popup-open,
body.ui-compact #privacy.account-settings-panel.codex-popup-open,
body.ui-compact #setPassword.account-settings-panel.codex-popup-open {
  display: grid !important;
  grid-template-columns: 188px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) 64px;
  width: min(960px, calc(100vw - 32px)) !important;
  height: min(700px, calc(100vh - 32px)) !important;
  max-height: calc(100vh - 32px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #cfd9e4 !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 24px 64px rgba(24, 40, 57, 0.26) !important;
}

#prop.account-settings-panel.codex-popup-open {
  height: min(560px, calc(100vh - 32px)) !important;
}

#setPassword.account-settings-panel.codex-popup-open {
  height: min(580px, calc(100vh - 32px)) !important;
}

.account-settings-panel .codex-panel-close,
#prop.codex-popup-open .codex-panel-close {
  top: 16px !important;
  right: 18px !important;
  z-index: 3;
}

.account-settings-header {
  position: relative;
  grid-column: 1;
  grid-row: 1 / -1;
  min-width: 0;
  padding: 28px 14px;
  border-right: 1px solid #dfe6ed;
  background: #f5f7fa;
}

.account-settings-heading > span {
  display: block;
  padding: 0 10px;
  color: #7a8b9d;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.3;
}

.account-settings-heading h2 {
  margin: 4px 0 24px;
  padding: 0 10px;
  color: #21364d;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
}

.account-settings-tabs {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 4px;
}

.account-settings-tab {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #66798d;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.account-settings-tab .layui-icon {
  flex: 0 0 20px;
  width: 20px;
  color: #8191a2;
  font-size: 17px;
  text-align: center;
}

.account-settings-tab::after {
  content: "";
  position: absolute;
  top: 9px;
  bottom: 9px;
  left: 0;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: transparent;
}

.account-settings-tab:hover,
.account-settings-tab:focus-visible {
  color: #2f5f95;
  background: #ebf0f5;
  outline: none;
}

.account-settings-tab.is-active {
  color: #245d9f;
  background: #e6eff9;
}

.account-settings-tab.is-active::after {
  background: #316fba;
}

.account-settings-tab.is-active .layui-icon {
  color: #316fba;
}

.account-settings-scroll {
  grid-column: 2;
  grid-row: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.account-settings-footer {
  display: flex;
  grid-column: 2;
  grid-row: 2;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
  padding: 12px 20px;
  border-top: 1px solid #dfe6ed;
  background: #f8fafc;
}

.account-settings-footer--privacy {
  justify-content: space-between;
}

.account-settings-status {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: #748598;
  font-size: 12px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-settings-status .layui-icon {
  margin-right: 4px;
  font-size: 13px;
}

.account-settings-status.is-saving {
  color: #54708f;
}

.account-settings-status.is-saved {
  color: #397357;
}

.account-settings-status.is-error,
.account-form-error {
  color: #b13b46;
}

.account-settings-section {
  min-width: 0;
}

.account-settings-section-heading {
  margin-bottom: 10px;
}

.account-settings-section-heading h3,
.account-profile-hero-copy h3 {
  margin: 0;
  color: #293e55;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.account-settings-section-heading p,
.account-profile-hero-copy p {
  margin: 2px 0 0;
  color: #8796a6;
  font-size: 12px;
  line-height: 1.45;
}

.account-profile-layout {
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  gap: 20px 0;
  padding: 28px 30px 24px;
}

.account-profile-hero {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 94px;
  padding: 0 24px 18px 0;
  border-bottom: 1px solid #e4e9ef;
}

.account-profile-hero #avatarForm {
  position: relative;
  flex: 0 0 72px;
  width: 72px;
}

.account-avatar-button {
  position: relative;
  display: block;
  width: 72px;
  height: 72px;
  overflow: hidden;
  padding: 0;
  border: 1px solid #cfd8e2;
  border-radius: 8px;
  background: #edf1f5;
  cursor: pointer;
}

.account-avatar-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.18);
}

.account-avatar-button:disabled {
  opacity: 0.82;
  cursor: wait;
}

.account-avatar-button img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.account-avatar-edit {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 25px;
  background: rgba(25, 40, 57, 0.78);
  color: #fff;
  font-size: 11px;
  line-height: 1;
}

.account-avatar-edit .layui-icon {
  font-size: 12px;
}

.account-avatar-progress {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  width: 0;
  height: 3px;
  border-radius: 2px;
  background: #3e8b62;
  transition: width 0.2s ease;
}

.account-profile-hero-copy {
  min-width: 0;
}

.account-profile-kicker {
  display: block;
  margin-bottom: 3px;
  color: #7f8fa1;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
}

.account-profile-hero-copy h3 {
  overflow: hidden;
  color: #21364d;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-profile-hero-copy p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.account-profile-identity-section {
  grid-column: 1;
  grid-row: 2;
  padding-right: 24px;
}

.account-identity-list {
  border-top: 1px solid #edf1f5;
}

.account-identity-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  border-bottom: 1px solid #edf1f5;
}

.account-identity-row > span {
  color: #73859a;
  font-size: 12px;
  font-weight: 600;
}

.account-identity-row > strong {
  min-width: 0;
  overflow: hidden;
  color: #263b52;
  font-size: 13px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-identity-row .friend-profile-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #d5dee8;
  border-radius: 5px;
  background: #fff;
  color: #6e8196;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.account-identity-row .friend-profile-copy:hover:not(:disabled),
.account-identity-row .friend-profile-copy:focus-visible:not(:disabled) {
  border-color: #a9c1da;
  background: #edf5fd;
  color: #2f68a7;
  outline: none;
}

.account-identity-row .friend-profile-copy:disabled {
  border-color: #e1e6ec;
  background: #f5f7f9;
  color: #b5c0cc;
  cursor: default;
}

.account-profile-form-section {
  display: grid;
  grid-column: 2;
  grid-row: 1 / span 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 14px 16px;
  min-width: 0;
  padding-left: 30px;
  border-left: 1px solid #e4e9ef;
}

.account-profile-form-section > .account-settings-section-heading,
.account-profile-form-section > .account-form-field--textarea {
  grid-column: 1 / -1;
}

.account-form-field {
  position: relative;
  min-width: 0;
  margin-bottom: 0;
}

.account-form-field:last-child {
  margin-bottom: 0;
}

.account-form-field > label,
.account-form-label {
  display: block;
  margin: 0 0 5px;
  color: #556a81;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

.account-form-field .layui-input,
.account-form-field .layui-textarea {
  width: 100%;
  border: 1px solid #cfd9e4 !important;
  border-radius: 6px !important;
  background: #fff;
  color: #273c53;
  box-shadow: none !important;
}

.account-form-field .layui-input {
  height: 38px;
}

.account-form-field .layui-textarea {
  min-height: 92px;
  padding: 8px 10px;
  resize: none;
}

.account-form-field .layui-input:focus,
.account-form-field .layui-textarea:focus {
  border-color: #7da7d6 !important;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.12) !important;
}

.account-form-field--textarea .my-profile-field-count {
  position: absolute;
  right: 8px;
  bottom: 5px;
  margin: 0 !important;
  padding: 0 3px;
  background: #fff;
  color: #8a99aa;
  font-size: 11px;
}

.account-settings-profile .my-sex-options {
  display: flex;
  align-items: center;
  min-height: 38px;
  gap: 8px;
}

.account-settings-profile .layui-form-radio {
  margin: 0 !important;
  padding: 6px 10px 6px 6px;
  border: 1px solid #d7e2ef;
  border-radius: 6px;
  color: #41566f;
  background: #fff;
}

.account-settings-profile .layui-form-radioed {
  border-color: #8eb3f5;
  background: #edf5fd;
}

.account-privacy-grid {
  display: block;
  padding: 4px 30px 8px;
}

.account-privacy-grid .account-settings-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
  min-width: 0;
  padding: 12px 0 8px;
  border-bottom: 1px solid #e4e9ef;
}

.account-privacy-grid .account-settings-section:last-child {
  border-bottom: 0;
}

.account-privacy-grid .account-settings-section-heading {
  grid-column: 1 / -1;
  margin-bottom: 4px;
}

.account-setting-row {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 5px 0;
  border-top: 1px solid #edf1f5;
}

.account-setting-row > div:first-child {
  min-width: 0;
}

.account-setting-row strong,
.account-setting-row span {
  display: block;
}

.account-setting-row strong {
  color: #2c4157;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

.account-setting-row span {
  margin-top: 2px;
  color: #8494a5;
  font-size: 11px;
  line-height: 1.35;
}

.account-setting-row > .layui-form-switch {
  flex: 0 0 auto;
  margin: 0;
}

.account-setting-row--select {
  grid-template-columns: minmax(0, 1fr) 154px;
  min-height: 56px;
}

.account-setting-row--select > .layui-form-select {
  width: 154px;
  margin: 0;
}

.account-setting-row--select .layui-input {
  height: 34px;
  border-radius: 6px;
  font-size: 12px;
}

.account-settings-section--data .account-setting-row--select .layui-form-select dl {
  top: auto;
  bottom: 38px;
}

.account-password-layout {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 28px 22px;
}

.account-password-section {
  width: min(480px, 100%);
}

.account-password-form {
  margin-top: 18px;
}

.account-password-username {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.account-password-form .account-form-field {
  margin-bottom: 16px;
}

.account-password-input {
  position: relative;
}

.account-password-input .layui-input {
  padding-right: 44px;
}

.password-visibility-toggle {
  position: absolute;
  top: 4px;
  right: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #718397;
  cursor: pointer;
}

.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible {
  background: #edf2f7;
  color: #315f93;
  outline: none;
}
.password-visibility-toggle:disabled {
  background: transparent;
  color: #aeb9c5;
  cursor: default;
}

.account-form-error {
  min-height: 20px;
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.5;
}

.profile-action--danger-outline {
  border-color: #e1b9bd;
  background: #fff;
  color: #b13b46;
}

.profile-action--danger-outline:hover,
.profile-action--danger-outline:focus-visible {
  border-color: #c94d58;
  background: #fff3f4;
  color: #9f2f39;
  outline: none;
}

@media (max-width: 820px) {
  #prop.account-settings-panel.codex-popup-open,
  #privacy.account-settings-panel.codex-popup-open,
  #setPassword.account-settings-panel.codex-popup-open,
  body.ui-compact #prop.account-settings-panel.codex-popup-open,
  body.ui-compact #privacy.account-settings-panel.codex-popup-open,
  body.ui-compact #setPassword.account-settings-panel.codex-popup-open {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 104px minmax(0, 1fr) 60px;
    width: calc(100vw - 16px) !important;
    height: calc(100vh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
  }

  .account-settings-header {
    grid-column: 1;
    grid-row: 1;
    padding: 12px 48px 0 14px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ed;
    background: #fff;
  }

  .account-settings-heading > span {
    display: none;
  }

  .account-settings-heading h2 {
    margin: 0 0 8px;
    padding: 0;
    font-size: 17px;
  }

  .account-settings-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    gap: 2px;
  }

  .account-settings-tab {
    justify-content: center;
    gap: 6px;
    height: 42px;
    padding: 0 4px;
    font-size: 12px;
    text-align: center;
  }

  .account-settings-tab::after {
    top: auto;
    right: 12px;
    bottom: 0;
    left: 12px;
    width: auto;
    height: 2px;
    border-radius: 2px 2px 0 0;
  }

  .account-settings-scroll {
    grid-column: 1;
    grid-row: 2;
  }

  .account-settings-footer {
    grid-column: 1;
    grid-row: 3;
  }

  .account-profile-layout,
  .account-privacy-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    padding: 14px;
  }

  .account-profile-hero {
    grid-column: 1;
    grid-row: auto;
    padding-right: 0;
  }

  .account-profile-identity-section {
    grid-column: 1;
    grid-row: auto;
    padding-right: 0;
    padding-bottom: 18px;
    border-right: 0;
    border-bottom: 1px solid #e4e9ef;
  }

  .account-profile-form-section {
    grid-column: 1;
    grid-row: auto;
    padding: 0;
    border-left: 0;
  }

  .account-privacy-grid .account-settings-section {
    grid-template-columns: minmax(0, 1fr);
  }

  .account-setting-row--select {
    grid-template-columns: minmax(0, 1fr) 148px;
  }

  .account-setting-row--select > .layui-form-select {
    width: 148px;
  }

  .account-settings-footer {
    padding: 10px 14px;
  }

  .account-settings-footer--privacy .profile-action {
    min-width: 88px;
    padding: 0 10px;
    font-size: 12px;
  }
}

@media (max-width: 520px) {
  .account-settings-tab .layui-icon {
    display: none;
  }

  .account-profile-form-section {
    grid-template-columns: minmax(0, 1fr);
  }

  .account-profile-form-section > .account-form-field--textarea {
    grid-column: 1;
  }

  .account-setting-row,
  .account-setting-row--select {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .account-setting-row--select > .layui-form-select {
    width: 132px;
  }
}
@media (max-width: 1400px) {
  .main {
    padding: 18px;
  }

  .main_inner {
    border-radius: 18px;
  }

  .main_inner .layui-fluid {
    gap: 12px;
    padding: 12px;
  }

  #o.coolchat_data_panel {
    min-width: 240px;
    width: 31%;
  }

  #messageContainer:empty::before {
    font-size: 30px;
  }
}

@media (max-width: 1180px) {
  html,
  body {
    min-width: 0;
  }

  .main {
    padding: 10px;
  }

  .coolchat_left_nav {
    width: 196px;
  }

  .main_inner .layui-fluid {
    width: 100% !important;
    padding: 10px;
    gap: 10px;
  }

  #o.coolchat_data_panel {
    width: min(320px, 38%);
    min-width: 220px;
  }

  #chatRightPlaceholder {
    display: none;
  }

  #chatTitle {
    max-width: min(44vw, 320px);
    font-size: 20px;
  }

  #messageContainer:empty::before {
    font-size: 28px;
    margin-top: 140px;
  }
}

@media (max-width: 1040px) {
  .coolchat_left_nav {
    width: 176px;
  }

  .coolchat_left_nav dl dt p {
    margin: 4px 8px;
    padding: 0 10px;
    font-size: 15px;
  }

  .coolchat_left_nav dl dt p img {
    width: 19px;
    margin-right: 8px;
  }

  #o.coolchat_data_panel {
    width: 38%;
    min-width: 205px;
  }

  #messagePanel {
    height: calc(100% - 220px) !important;
  }

  #sendMsgScopeDiv {
    height: 220px !important;
    padding: 6px 8px 8px;
  }

  #composerBox {
    height: calc(100% - 36px);
  }

  .Input_text {
    height: 100%;
    font-size: 14px;
    padding: 10px 104px 10px 12px !important;
  }

  #composerTools {
    min-height: 34px;
    gap: 4px;
    padding: 1px 4px;
  }

  #composerTools span {
    width: 32px;
    height: 32px;
    border-radius: 9px;
  }

  #composerTools span img {
    width: 19px;
    height: 19px;
  }

  #messageCount {
    right: 20px;
    bottom: 44px;
  }

  #btnEndChat {
    left: 10px;
    bottom: 10px;
  }

  #btnSend {
    right: 10px;
    bottom: 10px;
    min-width: 76px;
    height: 32px;
    border-radius: 10px;
    font-size: 13px;
    padding: 0 12px;
  }

  #sendKeyModeWrap {
    right: 88px;
    bottom: 10px;
  }

  #enableSound {
    padding: 8px 10px;
    font-size: 12px;
  }

  #viewControls {
    left: 10px;
    bottom: 10px;
    gap: 6px;
    flex-wrap: wrap;
    max-width: calc(100vw - 20px);
  }

  #viewControls button {
    padding: 7px 10px;
    font-size: 12px;
  }

  #chatAvator {
    width: 48px;
    min-width: 48px;
    height: 48px;
  }

  #chatAvator .imgAvatar,
  #chatAvator figure {
    width: 40px !important;
    height: 40px !important;
  }
}

@media (max-width: 900px) {
  .coolchat_content_nav {
    height: 100%;
  }

  .main {
    padding: 6px;
  }

  .main_inner {
    border-radius: 14px;
    min-height: calc(100vh - 12px);
  }

  .main_inner .layui-fluid {
    width: 100% !important;
    flex-direction: row;
    gap: 8px;
    padding: 8px;
  }

  #o.coolchat_data_panel {
    width: min(310px, 42%);
    min-width: 250px;
    max-width: 310px;
    height: 100%;
    min-height: 0;
  }

  #tabCon_0,
  #tabCon_new,
  #tabCon_blacklist,
  #tabCon_device {
    width: auto;
    height: 100%;
    min-height: 0;
  }

  #tabCon_1.codex-popup-open,
  #tabCon_2.codex-popup-open,
  #prop.codex-popup-open,
  #privacy.codex-popup-open,
  #setPassword.codex-popup-open {
    width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    border-radius: 12px !important;
  }

  #chatPanel,
  .coolchat_message_panel_1 {
    height: 100%;
  }

  #messagePanel {
    height: calc(100% - 218px) !important;
  }

  #sendMsgScopeDiv {
    height: 218px !important;
    padding: 8px;
  }

  #messageContainer:empty::before {
    margin-top: 76px;
    font-size: 24px;
  }

  #btnSend {
    min-width: 82px;
    height: 32px;
    font-size: 13px;
    right: 14px;
    bottom: 12px;
  }

  #messageCount {
    bottom: 46px;
  }

  #prop,
  #privacy,
  #setPassword {
    width: calc(100% - 16px);
    border-radius: 12px;
  }
}

@media (max-height: 860px) and (min-width: 901px) {
  .main {
    padding: 10px;
  }

  .main_inner {
    min-height: 0;
  }

  #messagePanel {
    height: calc(100% - 210px) !important;
  }

  #sendMsgScopeDiv {
    height: 210px !important;
    padding: 8px 10px 10px;
  }

  .Input_text {
    height: 102px;
    padding: 10px 100px 10px 12px !important;
  }

  #btnSend {
    min-width: 74px;
    height: 32px;
    right: 10px;
    bottom: 10px;
    font-size: 13px;
  }

  #messageCount {
    bottom: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ==========================
   Create Room (New Group)
   ========================== */
.create-room-modal .modal-body {
  padding: 16px 18px;
}

.create-room__layout {
  display: flex;
  gap: 14px;
  align-items: stretch;
}

.create-room__left {
  flex: 1 1 auto;
  min-width: 0;
}

.create-room__right {
  flex: 0 0 250px;
  min-width: 250px;
}

.create-room__right-title {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.create-room__select-all {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: normal;
  cursor: pointer;
  color: #555;
}

.create-room__select-all input[type="checkbox"] {
  margin: 0;
}

.create-room__friends {
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  height: 480px;
  display: flex;
  flex-direction: column;
}

.create-room__friends-list {
  flex: 1 1 auto;
  overflow: auto;
  padding: 6px;
}

.create-room__pager {
  flex: 0 0 auto;
  border-top: 1px solid #f0f0f0;
  padding: 8px 10px;
  position: relative;
  background: #fff;
  z-index: 1;
}

/* The legacy pager uses absolute positioning; within the create-room modal we want it in-flow */
.create-room-modal .pageTurning {
  position: static;
  bottom: auto;
  left: auto;
  transform: none;
  max-width: none;
  width: auto;
  padding: 0;
  margin: 0 auto;
  text-align: center;
}

.create-room__friend {
  border-radius: 8px;
}

.create-room__friend-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 8px;
  margin: 0;
  cursor: pointer;
}

.create-room__friend-row:hover {
  background: #f7f9fb;
}

.create-room__friend-avatar img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
}

.create-room__friend-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #333;
  font-size: 13px;
}

.create-room__friend-check {
  flex: 0 0 auto;
}

.create-room__selected {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  border: 1px dashed #e0e0e0;
  border-radius: 10px;
  min-height: 46px;
  max-height: 220px;
  overflow: auto;
}

.create-room__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 999px;
  background: #f2f6ff;
  border: 1px solid #dbe6ff;
}

.create-room__chip-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
}

.create-room__chip-name {
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  color: #2a3b55;
}

.create-room__chip-remove {
  width: 20px;
  height: 20px;
  line-height: 18px;
  border-radius: 50%;
  border: 1px solid #c7d6ff;
  background: #fff;
  color: #3b5bcc;
  cursor: pointer;
  padding: 0;
}

.create-room__chip-remove:hover {
  background: #e9f0ff;
}

.create-room__empty {
  padding: 14px 10px;
  text-align: center;
  color: #999;
  font-size: 12px;
}

@media (max-width: 640px) {
  .create-room__layout {
    flex-direction: column;
  }
  .create-room__right {
    flex: 1 1 auto;
    min-width: 0;
  }
  .create-room__friends {
    height: 360px;
  }
}

/* ==========================
   Company Org Tree
   ========================== */
#orgShow .company-card {
  border: 1px solid #edf0f5;
  border-radius: 12px;
  background: #fff;
  margin: 10px 10px;
  overflow: hidden;
}

#orgShow .company__header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 10px;
}

#orgShow .company__toggle,
#orgShow .company__menu-btn,
#orgShow .depart__toggle,
#orgShow .depart__menu-btn {
  border: 0;
  background: transparent;
  padding: 4px;
  cursor: pointer;
}

#orgShow .company__toggle:focus,
#orgShow .company__menu-btn:focus,
#orgShow .depart__toggle:focus,
#orgShow .depart__menu-btn:focus,
#orgShow .js_company_employee_open:focus,
#orgShow .js_company_employee_profile:focus {
  outline: 2px solid #cfe0ff;
  outline-offset: 2px;
  border-radius: 6px;
}

#orgShow .company__meta {
  flex: 1 1 auto;
  min-width: 0;
}

#orgShow .company__name {
  font-weight: 700;
  font-size: 13px;
  color: #222;
  line-height: 18px;
  margin-top: 1px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#orgShow .companyMenu {
  /* JS will reposition as fixed near the anchor button */
  min-width: 180px;
  max-width: min(280px, calc(100vw - 20px));
  box-shadow: 0 10px 24px rgba(0,0,0,0.12);
  border: 1px solid #eef1f6;
  border-radius: 10px;
  background: #fff;
  color: #222;
  float: none;
  right: auto;
  opacity: 1;
  width: max-content;
  padding: 6px 0;
}

#orgShow .departMenu {
  min-width: 180px;
  max-width: min(280px, calc(100vw - 20px));
  box-shadow: 0 10px 24px rgba(0,0,0,0.12);
  border: 1px solid #eef1f6;
  border-radius: 10px;
  background: #fff;
  color: #222;
  float: none;
  right: auto;
  opacity: 1;
  width: max-content;
  padding: 6px 0;
}

#orgShow .companyMenu li,
#orgShow .departMenu li {
  padding: 8px 12px;
  cursor: pointer;
  user-select: none;
  color: #222;
}

#orgShow .companyMenu li:hover,
#orgShow .departMenu li:hover {
  background: #f6f8fc;
}

#orgShow .company__body {
  border-top: 1px solid #f3f5f8;
}

#orgShow .depart-card {
  position: relative;
}

#orgShow .depart__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid #f1f1f1;
  background: #fff;
}

/* ==========================
   New Friends List
   ========================== */
.new-friends-root {
  padding: 10px 12px;
}

.new-friends-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.new-friends-pager {
  margin-top: 12px;
}

.new-friends-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 220px;
  padding: 24px;
  color: #6f8196;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.new-friends-state strong {
  color: #2b3f56;
  font-size: 16px;
  font-weight: 650;
}

.new-friends-state__spinner {
  width: 24px;
  height: 24px;
  border: 3px solid #d8e1ec;
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: new-friends-spin 0.8s linear infinite;
}

.new-friends-state--error .layui-btn {
  margin-top: 8px;
}

@keyframes new-friends-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 700px) {
  .main_inner .layui-fluid {
    flex-direction: column;
  }

  #o.coolchat_data_panel {
    width: 100%;
    min-width: 0;
    max-width: none;
    height: 46%;
    min-height: 280px;
  }

  #tabCon_0,
  #tabCon_new,
  #tabCon_blacklist,
  #tabCon_device {
    width: 100%;
    height: calc(54% - 8px);
    min-height: 280px;
  }

  #o .data-panel-account {
    height: 56px;
    padding-top: 7px;
    padding-bottom: 7px;
  }

  #o .data-panel-primary-tabs {
    padding-top: 5px;
    padding-bottom: 6px;
  }

  #o .data-panel-primary-tab {
    height: 36px;
  }
}

/* Override legacy float-based layout inside the new-friends panel to avoid horizontal overflow/extra columns */
#divNewFriendList .newFriend_item {
  display: flex;
  align-items: center;
  gap: 10px;
  height: auto;
  min-height: 68px;
  padding: 10px 8px;
}

#divNewFriendList .media-avatar {
  float: none;
  margin-left: 0;
}

#divNewFriendList .new-friend-avatar {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

#divNewFriendList .new-friend-avatar:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

#divNewFriendList .newFriend_body {
  float: none;
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  cursor: default;
}

#divNewFriendList .new-friend-meta {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  margin-bottom: 4px;
}

#divNewFriendList .newFriend_nickname {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  margin-bottom: 0;
  color: #26384d;
  font-weight: 600;
  letter-spacing: 0;
}

#divNewFriendList .new-friend-time {
  flex: 0 0 auto;
  color: #8a99aa;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
}

#divNewFriendList .newFriend_option {
  float: none;
  line-height: normal;
  flex: 0 0 auto;
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

#divNewFriendList .newFriend_button {
  width: auto;
  min-width: 64px;
  margin-left: 0;
  padding: 0 14px;
  border-radius: 4px;
  letter-spacing: 0;
}

#divNewFriendList .newFriend_msgContent {
  max-width: 100%;
  display: -webkit-box;
  overflow: hidden;
  color: #7b8999;
  line-height: 20px;
  letter-spacing: 0;
  white-space: normal;
  word-break: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#divNewFriendList .newFriend_button:disabled,
#divNewFriendList .newFriend_button.is-loading {
  cursor: wait;
  opacity: 0.68;
}

#divNewFriendList .new-friend-status {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  color: #28815f;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

#divNewFriendList .newFriend_item.is-accepted {
  background: #f7fbf9;
}

@media (max-width: 640px) {
  #divNewFriendList .newFriend_item {
    align-items: flex-start;
  }

  #divNewFriendList .new-friend-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  #divNewFriendList .newFriend_option {
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 132px;
  }
}

/* ==========================
   Friend verification replies
   ========================== */
#divReplySeeHai .modal-body {
  padding: 18px 20px 16px;
}

.friend-reply-history-heading,
.friend-reply-composer-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.friend-reply-history-heading {
  margin-bottom: 8px;
  color: #33475d;
  font-size: 13px;
  font-weight: 600;
}

#friendReplyHistoryCount,
#friendReplyTextCount {
  color: #8a99aa;
  font-size: 12px;
  font-weight: 400;
}

.friend-reply-history {
  min-height: 130px;
  max-height: 260px;
  padding: 12px;
  overflow-y: auto;
  border: 1px solid #e1e7ef;
  border-radius: 6px;
  background: #f7f9fc;
  overscroll-behavior: contain;
}

.friend-reply-history-state {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 104px;
  color: #7c8da0;
  font-size: 13px;
  text-align: center;
}

.friend-reply-history-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.friend-reply-history-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 84%;
}

.friend-reply-history-item.is-outgoing {
  align-self: flex-end;
  align-items: flex-end;
}

.friend-reply-history-message {
  padding: 8px 10px;
  border: 1px solid #dde5ee;
  border-radius: 6px;
  background: #fff;
  color: #2e4156;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.friend-reply-history-item.is-outgoing .friend-reply-history-message {
  border-color: #bcd7ff;
  background: #eaf3ff;
  color: #1e4775;
}

.friend-reply-history-time {
  margin-top: 3px;
  color: #8a99aa;
  font-size: 11px;
  line-height: 1.4;
}

.friend-reply-composer {
  margin-top: 16px;
}

.friend-reply-composer > label {
  display: block;
  margin-bottom: 7px;
  color: #33475d;
  font-size: 13px;
  font-weight: 600;
}

#divReplySeeHai #replyText {
  min-height: 78px;
  max-height: 150px;
  resize: vertical;
  line-height: 1.5;
}

.friend-reply-composer-meta {
  min-height: 22px;
  margin-top: 4px;
}

#divReplySeeHai #replySeeHaiError {
  min-height: 18px;
  margin: 0;
  font-size: 12px;
}

.friend-reply-sending {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  color: #6f8196;
  font-size: 13px;
}

.friend-reply-sending img {
  width: 16px;
  height: 16px;
}

@media (max-width: 640px) {
  #divReplySeeHai .modal-body {
    padding: 14px;
  }

  .friend-reply-history {
    max-height: 220px;
  }

  .friend-reply-history-item {
    max-width: 92%;
  }
}

/* ==========================
   Group Member Badge - 群成员数显示
   ========================== */
.group-member-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(66, 103, 225, 0.15);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(239, 244, 255, 0.98), rgba(248, 251, 255, 0.92));
  color: #4267e1;
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(64, 103, 225, 0.1);
}

.group-member-badge i {
  font-size: 12px;
}

/* ==========================
   Group Action Buttons - 群组快速操作按钮
   ========================== */
.group-member-badge__icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  display: inline-flex;
  color: #5a7cf2;
  position: static;
}

.group-member-badge__icon::before,
.group-member-badge__icon::after {
  content: none !important;
}

.group-member-badge__icon svg {
  width: 14px;
  height: 14px;
  display: block;
  fill: currentColor;
}

.group-member-badge__scope {
  color: #53627a;
  font-weight: 700;
  white-space: nowrap;
}

.group-member-badge__count {
  color: #2f55c7;
  font-variant-numeric: tabular-nums;
}

.group-owner-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  min-width: 22px;
  padding: 0 5px;
  border: 1px solid rgba(217, 119, 6, 0.18);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 247, 232, 0.98), rgba(255, 251, 242, 0.92));
  color: #b86b00;
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(217, 119, 6, 0.09);
}

.group-owner-badge__icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  display: inline-flex;
}

.group-owner-badge__icon svg {
  width: 14px;
  height: 14px;
  display: block;
  fill: currentColor;
}

.group-owner-badge__text {
  display: none;
}

.group-badge--list {
  margin-left: 7px;
  transform: translateY(-1px);
}

.group-badge--title {
  margin-left: 9px;
  vertical-align: 2px;
}

.group-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 4px;
  cursor: pointer;
  color: var(--muted);
  font-size: 16px;
  transition: all 0.12s ease;
  opacity: 0.8;
}

.group-action-btn:hover {
  background: rgba(47, 111, 255, 0.1);
  color: var(--accent);
  opacity: 1;
}

.group-action-btn:active {
  background: rgba(47, 111, 255, 0.15);
  transform: scale(0.95);
}

/* Group action button - disabled state */
.group-action-btn--disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.group-action-btn--disabled:hover {
  background: transparent;
  color: var(--muted);
  opacity: 0.35;
}
.group-action-btn--disabled:active {
  transform: none;
}

/* Group Actions Container - 群组快速操作容器 */
.group-actions-container {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Icon styling for group member badge */
.icon-people {
  font-size: 12px;
  display: inline-block;
}

.group-toolbar-divider {
  width: 1px;
  height: 20px;
  background: var(--line-strong);
  margin: 0 2px;
}

/* 下拉菜单 */
.group-toolbar-dropdown {
  position: relative;
}

.group-dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 160px;
  background: white;
  border-radius: 8px;
  border: 1px solid var(--line);
  box-shadow: 0 6px 24px rgba(51, 73, 98, 0.16);
  margin-top: 8px;
  z-index: 1000;
  overflow: hidden;
}

.group-dropdown-item {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  transition: all 0.12s ease;
  border: none;
  background: transparent;
  cursor: pointer;
  width: 100%;
  text-align: left;
}

.group-dropdown-item:hover {
  background: var(--panel-soft);
  color: var(--accent);
}

.group-dropdown-item-danger {
  color: #d32f2f;
}

.group-dropdown-item-danger:hover {
  background: rgba(211, 47, 47, 0.08);
  color: #b71c1c;
}

/* Group member invite picker */
#memberInviteDialog .group-invite-dialog {
  width: min(840px, calc(100vw - 32px)) !important;
  margin: 20px auto !important;
}

#memberInviteDialog .modal-content {
  display: flex;
  flex-direction: column;
  height: min(660px, calc(100vh - 40px));
  min-height: 520px;
  overflow: hidden;
  border: 1px solid #d7e0e9;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 56px rgba(25, 42, 61, 0.22);
}

#memberInviteDialog .group-invite-header {
  flex: 0 0 54px;
  min-height: 54px;
  padding: 15px 20px;
  border-bottom: 1px solid #e3e8ee;
  background: #fff;
}

#memberInviteDialog .modal-title {
  color: #21364d;
  font-size: 17px;
  font-weight: 650;
  line-height: 24px;
}

#memberInviteDialog .modal-header .close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: -3px -5px 0 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  color: #6b7d90;
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
  text-shadow: none;
  opacity: 1;
}

#memberInviteDialog .modal-header .close:hover,
#memberInviteDialog .modal-header .close:focus-visible {
  border-color: #d9e1e9;
  background: #f2f5f8;
  color: #31475f;
  outline: none;
}

#memberInviteDialog .group-invite-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 14px 18px;
  overflow: hidden;
  background: #fff;
}

#memberInviteDialog .group-invite-toolbar {
  flex: 0 0 auto;
  margin-bottom: 12px;
}

#memberInviteDialog .group-invite-search {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  align-items: center;
  height: 40px;
  overflow: hidden;
  border: 1px solid #cbd6e2;
  border-radius: 6px;
  background: #f8fafc;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#memberInviteDialog .group-invite-search:focus-within {
  border-color: #7da7d6;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.12);
}

#memberInviteDialog .group-invite-search > .layui-icon {
  color: #7b8da1;
  font-size: 17px;
  text-align: center;
}

#memberInviteDialog .group-invite-search input {
  width: 100%;
  height: 38px;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #253b52;
  font-size: 14px;
}

#memberInviteDialog .group-invite-search input::placeholder {
  color: #93a1b1;
}

#memberInviteDialog .group-invite-search button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-right: 4px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #708398;
  cursor: pointer;
}

#memberInviteDialog .group-invite-search button:hover,
#memberInviteDialog .group-invite-search button:focus-visible {
  background: #eaf0f6;
  color: #315f93;
  outline: none;
}

#memberInviteDialog .group-invite-workspace {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.85fr);
  min-height: 0;
  gap: 12px;
}

#memberInviteDialog .group-invite-pane {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid #dde4eb;
  border-radius: 6px;
  background: #fff;
}

#memberInviteDialog .group-invite-selected {
  background: #f7f9fb;
}

#memberInviteDialog .group-invite-pane-header {
  display: flex;
  flex: 0 0 48px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  padding: 0 12px;
  border-bottom: 1px solid #e3e8ee;
  background: #f8fafc;
}

#memberInviteDialog .group-invite-pane-heading {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: 8px;
}

#memberInviteDialog .group-invite-pane-heading strong {
  overflow: hidden;
  color: #293e55;
  font-size: 14px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#memberInviteDialog .group-invite-pane-heading span {
  color: #7c8da0;
  font-size: 12px;
  white-space: nowrap;
}

#memberInviteDialog .group-invite-text-action {
  flex: 0 0 auto;
  min-width: 48px;
  height: 30px;
  padding: 0 6px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #316fba;
  font-size: 13px;
  cursor: pointer;
}

#memberInviteDialog .group-invite-text-action:hover:not(:disabled),
#memberInviteDialog .group-invite-text-action:focus-visible:not(:disabled) {
  background: #eaf2fb;
  color: #245b99;
  outline: none;
}

#memberInviteDialog .group-invite-text-action:disabled {
  color: #a8b3bf;
  cursor: default;
}

#memberInviteDialog .group-invite-list {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
  scrollbar-gutter: stable;
}

#memberInviteDialog .group-invite-available-list {
  display: block;
  width: 100%;
  margin: 0;
}

#memberInviteDialog .group-invite-row {
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 36px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 62px;
  margin: 0;
  padding: 8px 12px;
  border-bottom: 1px solid #edf1f5;
  box-sizing: border-box;
  background: #fff;
  color: inherit;
  cursor: pointer;
  transition: background-color 0.12s ease, box-shadow 0.12s ease;
}

#memberInviteDialog .group-invite-row:last-child {
  border-bottom: 0;
}

#memberInviteDialog .group-invite-row:hover {
  background: #f6f9fc;
}

#memberInviteDialog .group-invite-row:focus-within {
  background: #f3f7fb;
  box-shadow: inset 0 0 0 2px rgba(49, 111, 186, 0.18);
  outline: none;
}

#memberInviteDialog .group-invite-row.is-selected {
  background: #edf5fd;
  box-shadow: inset 3px 0 #316fba;
}

#memberInviteDialog .group-invite-row .group-invite-avatar-cell {
  display: block;
  width: 40px;
  height: 40px;
}

#memberInviteDialog .group-invite-avatar {
  display: block;
  width: 40px !important;
  height: 40px !important;
  border: 1px solid #d7dfe8;
  border-radius: 6px !important;
  object-fit: cover;
  background: #edf1f5;
}

#memberInviteDialog .group-invite-identity-cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 0 12px 0 2px;
}

#memberInviteDialog .group-invite-identity-cell strong,
#memberInviteDialog .group-invite-identity-cell span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#memberInviteDialog .group-invite-identity-cell strong {
  color: #263b52;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

#memberInviteDialog .group-invite-identity-cell span {
  margin-top: 2px;
  color: #8a99aa;
  font-size: 12px;
  line-height: 1.35;
}

#memberInviteDialog .group-invite-check {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  cursor: pointer;
}

#memberInviteDialog .group-invite-check input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

#memberInviteDialog .group-invite-check span {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  border: 1px solid #b8c5d3;
  border-radius: 4px;
  background: #fff;
  transition: background-color 0.12s ease, border-color 0.12s ease;
}

#memberInviteDialog .group-invite-check input:focus-visible + span {
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.16);
}

#memberInviteDialog .group-invite-check input:checked + span {
  border-color: #316fba;
  background: #316fba;
}

#memberInviteDialog .group-invite-check input:checked + span::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 3px;
  width: 6px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

#memberInviteDialog .group-invite-check input:disabled + span {
  opacity: 0.58;
  cursor: wait;
}

#memberInviteDialog .group-invite-state {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  color: #8292a4;
  font-size: 14px;
  text-align: center;
}

#memberInviteDialog .group-invite-state .layui-icon {
  color: #7890a9;
  font-size: 24px;
}

#memberInviteDialog .group-invite-pagination {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  border-top: 1px solid #e8edf2;
  background: #fbfcfd;
}

#memberInviteDialog .group-invite-page-controls {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

#memberInviteDialog .group-invite-page-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid #d2dce6;
  border-radius: 6px;
  background: #fff;
  color: #46627f;
  cursor: pointer;
}

#memberInviteDialog .group-invite-page-controls button:hover:not(:disabled),
#memberInviteDialog .group-invite-page-controls button:focus-visible:not(:disabled) {
  border-color: #9eb6ce;
  background: #f1f5f9;
  outline: none;
}

#memberInviteDialog .group-invite-page-controls button:disabled {
  color: #bdc6d0;
  background: #f5f7f9;
  cursor: not-allowed;
}

#memberInviteDialog .group-invite-page-controls span {
  min-width: 54px;
  color: #64778c;
  font-size: 13px;
  text-align: center;
}

#memberInviteDialog .group-invite-selected-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

#memberInviteDialog .group-invite-selected-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 32px;
  align-items: center;
  min-height: 56px;
  padding: 7px 8px 7px 10px;
  border-bottom: 1px solid #e7ecf1;
  background: #fff;
}

#memberInviteDialog .group-invite-selected-avatar {
  display: block;
  width: 34px !important;
  height: 34px !important;
  border: 1px solid #d7dfe8;
  border-radius: 6px !important;
  object-fit: cover;
  background: #edf1f5;
}

#memberInviteDialog .group-invite-selected-identity {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-right: 6px;
}

#memberInviteDialog .group-invite-selected-identity strong,
#memberInviteDialog .group-invite-selected-identity span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#memberInviteDialog .group-invite-selected-identity strong {
  color: #2d4258;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

#memberInviteDialog .group-invite-selected-identity span {
  color: #8a99aa;
  font-size: 11px;
  line-height: 1.35;
}

#memberInviteDialog .group-invite-selected-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #7f8f9f;
  cursor: pointer;
}

#memberInviteDialog .group-invite-selected-remove:hover,
#memberInviteDialog .group-invite-selected-remove:focus-visible {
  background: #f0e9e9;
  color: #b24b4b;
  outline: none;
}

#memberInviteDialog .group-invite-selected-empty {
  display: flex;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 9px;
  padding: 20px;
  color: #8998a8;
  font-size: 13px;
  text-align: center;
}

#memberInviteDialog .group-invite-selected-empty .layui-icon {
  color: #8498ae;
  font-size: 23px;
}

#memberInviteDialog .group-invite-footer {
  display: flex;
  flex: 0 0 64px;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 20px;
  border-top: 1px solid #e3e8ee;
  background: #f8fafc;
}

#memberInviteDialog .group-invite-footer .profile-action {
  min-width: 96px;
}

@media (max-width: 700px) {
  #memberInviteDialog .group-invite-dialog {
    width: calc(100vw - 16px) !important;
    margin: 8px auto !important;
  }

  #memberInviteDialog .modal-content {
    height: calc(100vh - 16px);
    min-height: 0;
  }

  #memberInviteDialog .group-invite-body {
    padding: 12px;
  }

  #memberInviteDialog .group-invite-workspace {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 10px;
  }

  #memberInviteDialog .group-invite-header,
  #memberInviteDialog .group-invite-footer {
    padding-right: 14px;
    padding-left: 14px;
  }

  #memberInviteDialog .group-invite-footer {
    flex-basis: 60px;
  }
}
/* Group profile surface */
#tabCon_2 .group-profile-card {
  width: 100%;
  overflow: hidden;
  border: 1px solid #dce3eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(29, 47, 67, 0.13);
}

#tabCon_2 .group-profile-header {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 94px;
  padding: 14px 22px;
  border-bottom: 1px solid #e3e8ee;
  background: #f8fafc;
}

#tabCon_2 .group-profile-header #desphoto {
  flex: 0 0 68px;
  width: 68px;
  height: 68px;
  border-radius: 8px;
}

#tabCon_2 .group-profile-header #desphoto.room-avatar-editable::after {
  border-radius: 8px;
}

#tabCon_2 .group-profile-summary {
  min-width: 0;
  flex: 1 1 auto;
}

#tabCon_2 .group-profile-kicker {
  display: block;
  margin-bottom: 4px;
  color: #71849a;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

#tabCon_2 .group-profile-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

#tabCon_2 .group-profile-name-row #gname {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #20364d;
  font-size: 22px;
  font-weight: 650;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#tabCon_2 .group-profile-icon-button {
  display: inline-flex;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid #d3dde7;
  border-radius: 6px;
  background: #fff;
  color: #526d89;
  cursor: pointer;
}

#tabCon_2 .group-profile-icon-button:hover,
#tabCon_2 .group-profile-icon-button:focus-visible {
  border-color: #a9bfd5;
  background: #edf4fb;
  color: #2e6097;
  outline: none;
}

#tabCon_2 .group-profile-header .group-detail-meta {
  margin-top: 4px;
  color: #7c8da0;
  font-size: 12px;
}

#tabCon_2 .group-profile-content {
  padding: 0 22px;
}

#tabCon_2 .group-profile-section {
  padding: 10px 0;
  border-bottom: 1px solid #e8edf2;
}

#tabCon_2 .group-profile-section > h3 {
  margin: 0 0 4px;
  color: #64778c;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.5;
}

#tabCon_2 .group-profile-info-grid,
#tabCon_2 .group-profile-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
}

#tabCon_2 .group-profile-card .groupDetailSettingRow {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 46px;
  margin: 0;
  padding: 6px 0;
  border: 0;
  border-bottom: 1px solid #edf1f5;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  text-align: left;
}

#tabCon_2 .group-profile-info-grid button.groupDetailSettingRow {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

#tabCon_2 .group-profile-info-grid button.groupDetailSettingRow:hover,
#tabCon_2 .group-profile-info-grid button.groupDetailSettingRow:focus-visible {
  background: #f6f9fc;
  outline: none;
}

#tabCon_2 .group-profile-row-copy {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  gap: 8px;
}

#tabCon_2 .group-profile-card .groupSettingItem_p {
  width: auto !important;
  margin: 0 !important;
  color: #71849a !important;
  font-size: 13px !important;
  font-weight: 500;
  line-height: 1.4;
}

#tabCon_2 .group-profile-card .groupDetailText {
  min-width: 0;
  margin: 0 !important;
  overflow: hidden;
  color: #263c53;
  font-size: 14px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#tabCon_2 .group-profile-info-grid .layui-icon-right {
  flex: 0 0 auto;
  color: #9aa8b7;
  font-size: 15px;
}

#tabCon_2 .group-profile-readonly-row {
  display: flex;
  align-items: center;
}

#tabCon_2 .group-profile-tools {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

#tabCon_2 .group-profile-tool {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  height: 54px;
  padding: 0 10px;
  border: 1px solid #d7e0e9;
  border-radius: 6px;
  background: #fff;
  color: #344c65;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

#tabCon_2 .group-profile-tool .layui-icon {
  color: #4779af;
  font-size: 18px;
}

#tabCon_2 .group-profile-tool:hover,
#tabCon_2 .group-profile-tool:focus-visible {
  border-color: #aac0d6;
  background: #f0f6fc;
  color: #245c97;
  outline: none;
}

#tabCon_2 .group-profile-settings-grid .groupDetailSettingRow {
  min-height: 42px;
  padding: 4px 0;
}

#tabCon_2 .group-profile-settings-grid .layui-input-block {
  display: flex;
  width: 100%;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  margin: 0 !important;
}

#tabCon_2 .group-profile-settings-grid .layui-form-switch {
  flex: 0 0 auto;
  margin: 0;
}

#tabCon_2 .group-detail-actions {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 12px 22px;
  border: 0;
  border-top: 1px solid #e3e8ee;
  border-radius: 0;
  background: #f8fafc;
}

#tabCon_2 .group-profile-danger-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

#tabCon_2 .group-profile-danger-actions .profile-action {
  min-width: 104px;
}

#tabCon_2 .group-detail-actions #btnGroupDetailDone {
  min-width: 84px;
}

.js_group_member_avatar {
  cursor: pointer;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.js_group_member_avatar:hover {
  box-shadow: 0 0 0 2px rgba(49, 111, 186, 0.2);
  transform: translateY(-1px);
}

.js_group_member_avatar:focus-visible {
  outline: 2px solid #4d82bd;
  outline-offset: 2px;
}

@media (min-width: 701px) {
  #tabCon_2.codex-popup-open,
  body.ui-compact #tabCon_2.codex-popup-open {
    width: min(900px, calc(100vw - 24px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 24px) !important;
    padding: 10px !important;
    overflow: visible !important;
    background: #eef2f6 !important;
  }

  #tabCon_2.codex-popup-open .codex-panel-close {
    top: 18px;
    right: 18px;
  }
}

@media (min-width: 701px) and (max-height: 690px) {
  #tabCon_2.codex-popup-open,
  body.ui-compact #tabCon_2.codex-popup-open {
    overflow-y: auto !important;
  }
}

@media (max-width: 700px) {
  #tabCon_2 .group-profile-info-grid,
  #tabCon_2 .group-profile-settings-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  #tabCon_2 .group-profile-tools {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #tabCon_2 .group-profile-header,
  #tabCon_2 .group-profile-content,
  #tabCon_2 .group-detail-actions {
    padding-right: 16px;
    padding-left: 16px;
  }

  #tabCon_2 .group-detail-actions {
    align-items: stretch;
    flex-direction: column;
  }

  #tabCon_2 .group-profile-danger-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
#blackList .friend-list-state {
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #667085;
  text-align: center;
}

#blackList .friend-list-state strong {
  color: #1f2937;
  font-size: 15px;
  font-weight: 600;
}

#blackList .blacklist-list {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* Unified recipient picker */
.recipient-picker-modal .recipient-picker-dialog {
  width: min(680px, calc(100vw - 32px)) !important;
  margin: 20px auto !important;
}

.recipient-picker-modal .recipient-picker-dialog--compact {
  width: min(600px, calc(100vw - 32px)) !important;
}

.recipient-picker-modal .recipient-picker-shell {
  display: flex;
  flex-direction: column;
  height: min(680px, calc(100vh - 40px));
  min-height: 500px;
  overflow: hidden;
  border: 1px solid #d6dfe8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 58px rgba(26, 43, 62, 0.24);
}

.recipient-picker-header {
  display: flex;
  flex: 0 0 68px;
  align-items: center;
  min-height: 68px;
  padding: 12px 52px 12px 18px !important;
  border-bottom: 1px solid #dfe6ed !important;
  background: #fff;
}

.recipient-picker-header > div {
  min-width: 0;
}

.recipient-picker-header .modal-title {
  margin: 0;
  color: #263b52;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.35;
}

.recipient-picker-header p {
  margin: 3px 0 0;
  color: #8090a1;
  font-size: 12px;
  line-height: 1.35;
}

.recipient-picker-header .close {
  position: absolute;
  top: 15px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border-radius: 6px;
  color: #62758a;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
  opacity: 1;
}

.recipient-picker-header .close:hover,
.recipient-picker-header .close:focus-visible {
  background: #edf1f5;
  color: #2c4259;
  outline: none;
}

.recipient-picker-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 14px 18px 0 !important;
  overflow: hidden;
  background: #fff;
}

.recipient-picker-segments {
  display: grid;
  flex: 0 0 38px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  width: 220px;
  height: 38px;
  margin-bottom: 12px;
  padding: 3px;
  border: 1px solid #d9e1e9;
  border-radius: 7px;
  background: #f3f6f9;
}

.recipient-picker-segment,
#msgTranspond .transpond,
#msgTranspond .transpondChange {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: #6b7d90 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  cursor: pointer;
}

#msgTranspond .transpondChange {
  background: #fff !important;
  color: #2f649e !important;
  box-shadow: 0 1px 3px rgba(31, 52, 73, 0.14);
}

.recipient-picker-toolbar {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.recipient-picker-search {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: 36px minmax(0, 1fr) 36px;
  align-items: center;
  min-width: 0;
  height: 40px;
  overflow: hidden;
  border: 1px solid #cfd9e4;
  border-radius: 7px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.recipient-picker-search:focus-within {
  border-color: #7ba5d1;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.12);
}

.recipient-picker-search > .layui-icon {
  color: #8091a4;
  font-size: 16px;
  text-align: center;
}

.recipient-picker-search input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: #2b4057;
  font-size: 13px;
}

.recipient-picker-search input::placeholder {
  color: #98a5b3;
}

.recipient-picker-search-clear,
.recipient-picker-search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: 0 4px 0 0;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #718398;
  cursor: pointer;
}

.recipient-picker-search-clear:hover,
.recipient-picker-search-clear:focus-visible,
.recipient-picker-search-submit:hover,
.recipient-picker-search-submit:focus-visible {
  background: #eaf1f8;
  color: #2f649e;
  outline: none;
}

.recipient-picker-select-all {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  height: 40px;
  margin: 0;
  padding: 0 11px;
  border: 1px solid #d5dee8;
  border-radius: 7px;
  background: #f8fafc;
  color: #4f647a;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.recipient-picker-select-all input,
.recipient-picker-table input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 0 !important;
  accent-color: #316fba;
  cursor: pointer;
}

.recipient-picker-list-frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid #dce4ec;
  border-radius: 7px;
  background: #fff;
  scrollbar-gutter: stable;
}

.recipient-picker-table {
  width: 100%;
  margin: 0 !important;
  table-layout: fixed;
  border-collapse: collapse;
}

.recipient-picker-table > tbody > tr {
  height: 58px;
  border-bottom: 1px solid #e7ecf1;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.recipient-picker-table > tbody > tr:not(:has(input[type="checkbox"])) {
  cursor: default;
}

.recipient-picker-table > tbody > tr:last-child {
  border-bottom: 0;
}

.recipient-picker-table > tbody > tr:hover,
.recipient-picker-table > tbody > tr:has(input[type="checkbox"]:checked) {
  background: #f1f6fb;
}

.recipient-picker-table > tbody > tr > td {
  height: 58px;
  padding: 8px 10px !important;
  border: 0 !important;
  color: #31475e;
  font-size: 13px;
  vertical-align: middle !important;
}

.recipient-picker-table > tbody > tr > td:first-child:not(:only-child) {
  width: 52px;
}

.recipient-picker-table > tbody > tr > td:last-child:not(:only-child) {
  width: 46px;
  text-align: center;
}

.recipient-picker-table label {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0;
  height: 42px;
  margin: 0 !important;
  gap: 10px;
  color: #31475e;
  cursor: pointer;
}

.recipient-picker-table label input[type="checkbox"] {
  order: 3;
  flex: 0 0 auto;
  margin-left: auto !important;
}

.recipient-picker-table img {
  flex: 0 0 36px;
  width: 36px !important;
  height: 36px !important;
  border: 1px solid #d8e0e8;
  border-radius: 7px !important;
  object-fit: cover;
  background: #edf1f5;
}

.recipient-picker-table label span,
.recipient-picker-table .groupName {
  min-width: 0;
  overflow: hidden;
  margin: 0 !important;
  color: #31475e;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recipient-picker-state {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 9px;
  padding: 24px;
  background: #fff;
  color: #8292a4;
  font-size: 13px;
  text-align: center;
}

.recipient-picker-state > .layui-icon {
  color: #8498ae;
  font-size: 24px;
}

.recipient-picker-state button {
  min-width: 88px;
  height: 32px;
  margin-top: 3px;
  padding: 0 12px;
  border: 1px solid #c8d7e6;
  border-radius: 6px;
  background: #fff;
  color: #315f93;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.recipient-picker-state button:hover,
.recipient-picker-state button:focus-visible {
  border-color: #8eafd1;
  background: #eef5fc;
  outline: none;
}

.recipient-picker-pagination,
.recipient-picker-pagination-stack {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  min-height: 42px;
}

.recipient-picker-pagination-stack {
  flex-basis: 44px;
}

.recipient-picker-pagination:empty,
.recipient-picker-pagination-stack:empty {
  min-height: 10px;
  flex-basis: 10px;
}

.recipient-picker-footer {
  display: flex;
  flex: 0 0 64px;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 12px 18px !important;
  border-top: 1px solid #dfe6ed !important;
  background: #f8fafc;
}

.recipient-picker-footer-status {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
}

.recipient-picker-selection,
.recipient-picker-submit-status {
  overflow: hidden;
  color: #64788e;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recipient-picker-submit-status {
  min-height: 16px;
  color: #7e8fa1;
}

.recipient-picker-submit-status.is-error {
  color: #b13b46;
}

.recipient-picker-submit-status.is-success {
  color: #397357;
}

.recipient-picker-modal[data-recipient-submitting="true"] .recipient-picker-header .close,
.recipient-picker-modal[data-recipient-submitting="true"] [data-dismiss="modal"] {
  pointer-events: none;
  opacity: 0.48;
}

@media (max-width: 700px) {
  .recipient-picker-modal .recipient-picker-dialog,
  .recipient-picker-modal .recipient-picker-dialog--compact {
    width: calc(100vw - 16px) !important;
    margin: 8px auto !important;
  }

  .recipient-picker-modal .recipient-picker-shell {
    height: calc(100vh - 16px);
    min-height: 0;
  }

  .recipient-picker-header {
    flex-basis: 64px;
    min-height: 64px;
    padding-left: 14px !important;
  }

  .recipient-picker-body {
    padding: 12px 12px 0 !important;
  }

  .recipient-picker-toolbar {
    gap: 8px;
  }

  .recipient-picker-select-all {
    padding: 0 8px;
  }

  .recipient-picker-footer {
    flex-basis: 60px;
    min-height: 60px;
    padding: 10px 12px !important;
  }

  .recipient-picker-footer .profile-action {
    min-width: 78px;
    padding: 0 10px;
    font-size: 12px;
  }
}
.recipient-picker-table .recipient-picker-name {
  min-width: 0;
  overflow: hidden;
  color: #31475e;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recipient-picker-pagination .pageTurning,
.recipient-picker-pagination-stack .pageTurning {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: none;
  margin: 0;
  transform: none;
}

.recipient-picker-pagination .pageIndex,
.recipient-picker-pagination-stack .pageIndex {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 28px;
  margin: 0 12px;
  padding: 0 8px;
  border: 1px solid #d7e0e9;
  border-radius: 6px;
  background: #f7f9fb;
  color: #52687e;
  font-size: 12px;
  font-weight: 650;
}

.recipient-picker-pagination .pageTurning img,
.recipient-picker-pagination-stack .pageTurning img {
  box-sizing: border-box;
  width: 28px !important;
  height: 28px;
  padding: 5px;
  border: 1px solid #d5dfe8;
  border-radius: 6px;
  background: #fff;
  object-fit: contain;
}

.recipient-picker-pagination .pageTurning a:hover img,
.recipient-picker-pagination-stack .pageTurning a:hover img,
.recipient-picker-pagination .pageTurning a:focus-visible img,
.recipient-picker-pagination-stack .pageTurning a:focus-visible img {
  border-color: #8eafd1;
  background: #edf4fb;
}
@media (max-height: 560px) {
  .recipient-picker-modal .recipient-picker-dialog,
  .recipient-picker-modal .recipient-picker-dialog--compact {
    margin: 8px auto !important;
  }

  .recipient-picker-modal .recipient-picker-shell {
    height: calc(100vh - 16px);
    min-height: 0;
  }

  .recipient-picker-header {
    flex-basis: 56px;
    min-height: 56px;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .recipient-picker-header p {
    display: none;
  }

  .recipient-picker-footer {
    flex-basis: 56px;
    min-height: 56px;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}
/* Add friend and create room refresh */
.add-friend-modal .add-friend-dialog {
  width: min(620px, calc(100vw - 32px)) !important;
  margin: 20px auto !important;
}

.add-friend-shell,
.create-room-shell {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d6dfe8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 58px rgba(26, 43, 62, 0.24);
}

.add-friend-shell {
  height: min(650px, calc(100vh - 40px));
  min-height: 500px;
}

.add-friend-header,
.create-room-header {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 68px;
  min-height: 68px;
  padding: 12px 52px 12px 18px !important;
  border-bottom: 1px solid #dfe6ed !important;
  background: #fff;
}

.add-friend-header .modal-title,
.create-room-header .modal-title {
  margin: 0;
  color: #263b52;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.35;
}

.add-friend-header p,
.create-room-header p {
  margin: 3px 0 0;
  color: #8090a1;
  font-size: 12px;
  line-height: 1.35;
}

.add-friend-header .close,
.create-room-header .close {
  position: absolute;
  top: 15px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border-radius: 6px;
  color: #62758a;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
  opacity: 1;
}

.add-friend-header .close:hover,
.add-friend-header .close:focus-visible,
.create-room-header .close:hover,
.create-room-header .close:focus-visible {
  background: #edf1f5;
  color: #2c4259;
  outline: none;
}

.add-friend-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 16px 18px 0 !important;
  overflow: hidden;
}

.add-friend-search,
.create-room__search {
  display: grid;
  align-items: center;
  grid-template-columns: 38px minmax(0, 1fr) 36px;
  flex: 0 0 42px;
  height: 42px;
  overflow: hidden;
  border: 1px solid #cfd9e4;
  border-radius: 7px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.add-friend-search:focus-within,
.create-room__search:focus-within {
  border-color: #7ba5d1;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.12);
}

.add-friend-search > .layui-icon,
.create-room__search > .layui-icon {
  color: #8091a4;
  font-size: 16px;
  text-align: center;
}

.add-friend-search input,
.create-room__search input {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: #2b4057;
  font-size: 13px;
}

.add-friend-search button,
.create-room__search button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-right: 4px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #718398;
  cursor: pointer;
}

.add-friend-search button:hover,
.add-friend-search button:focus-visible,
.create-room__search button:hover,
.create-room__search button:focus-visible {
  background: #eaf1f8;
  color: #2f649e;
  outline: none;
}

.add-friend-result-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 44px;
  min-height: 44px;
  padding-top: 3px;
}

.add-friend-result-heading strong {
  color: #30465d;
  font-size: 13px;
  font-weight: 650;
}

.add-friend-result-heading span {
  color: #8392a2;
  font-size: 12px;
}

.add-friend-list-frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border: 1px solid #dce4ec;
  border-radius: 7px;
  background: #fff;
}

.add-friend-list {
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.add-friend-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 70px;
  padding: 9px 12px;
  border-bottom: 1px solid #e7ecf1;
  background: #fff;
  transition: background-color 0.12s ease;
}

.add-friend-row:last-child {
  border-bottom: 0;
}

.add-friend-row:hover {
  background: #f7f9fc;
}

.add-friend-row__avatar {
  width: 42px;
  height: 42px;
  border: 1px solid #d8e0e8;
  border-radius: 7px !important;
  object-fit: cover;
  background: #edf1f5;
}

.add-friend-row__identity {
  min-width: 0;
}

.add-friend-row__title {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.add-friend-row__title strong {
  overflow: hidden;
  color: #2d435a;
  font-size: 14px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.add-friend-row__gender {
  flex: 0 0 auto;
  padding: 2px 5px;
  border-radius: 4px;
  background: #edf3f8;
  color: #6e8092;
  font-size: 10px;
  font-weight: 600;
}

.add-friend-row__phone,
.add-friend-row__desc {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: #8795a5;
  font-size: 11px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.add-friend-row__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 82px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #91afd0;
  border-radius: 6px;
  background: #fff;
  color: #315f93;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.add-friend-row__action:hover,
.add-friend-row__action:focus-visible {
  border-color: #5f8fbe;
  background: #edf5fc;
  outline: none;
}

.add-friend-row__action[disabled],
.add-friend-row__status {
  min-width: 82px;
  color: #8291a0;
  font-size: 12px;
  text-align: center;
}

.add-friend-state,
.create-room__state {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 9px;
  padding: 24px;
  background: #fff;
  color: #8292a4;
  font-size: 13px;
  text-align: center;
}

.add-friend-state > .layui-icon,
.create-room__state > .layui-icon {
  color: #8498ae;
  font-size: 24px;
}

.add-friend-state button,
.create-room__state button {
  min-width: 88px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #c8d7e6;
  border-radius: 6px;
  background: #fff;
  color: #315f93;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.add-friend-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  min-height: 44px;
}

.add-friend-pagination .pageTurning,
.create-room__pager .pageTurning {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: none;
  margin: 0;
  transform: none;
}

.add-friend-pagination .pageIndex,
.create-room__pager .pageIndex {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 28px;
  margin: 0 12px;
  padding: 0 8px;
  border: 1px solid #d7e0e9;
  border-radius: 6px;
  background: #f7f9fb;
  color: #52687e;
  font-size: 12px;
  font-weight: 650;
}

.add-friend-pagination .pageTurning img,
.create-room__pager .pageTurning img {
  box-sizing: border-box;
  width: 28px !important;
  height: 28px;
  padding: 5px;
  border: 1px solid #d5dfe8;
  border-radius: 6px;
  background: #fff;
  object-fit: contain;
}

.add-friend-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 60px;
  min-height: 60px;
  padding: 10px 18px !important;
  border-top: 1px solid #dfe6ed !important;
  background: #f8fafc;
}

.add-friend-footer > span {
  flex: 1 1 auto;
  color: #77889a;
  font-size: 12px;
}

.create-room-modal .create-room-dialog {
  width: min(860px, calc(100vw - 32px)) !important;
  margin: 20px auto !important;
}

.create-room-shell {
  height: min(700px, calc(100vh - 40px));
  min-height: 560px;
}

.create-room-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 !important;
  overflow: hidden;
}

.create-room-modal .create-room__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 0;
  height: 100%;
  min-height: 0;
}

.create-room-modal .create-room__left,
.create-room-modal .create-room__right {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 16px 18px;
}

.create-room-modal .create-room__right {
  border-left: 1px solid #e0e7ee;
  background: #fbfcfd;
}

.create-room__section-heading,
.create-room__selected-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.create-room__section-heading {
  flex: 0 0 43px;
  min-height: 43px;
  margin-bottom: 10px;
}

.create-room__section-heading h5 {
  margin: 0;
  color: #30465d;
  font-size: 14px;
  font-weight: 650;
}

.create-room__section-heading p {
  margin: 3px 0 0;
  color: #8795a5;
  font-size: 11px;
}

.create-room__field {
  display: block;
  margin: 0 0 13px;
}

.create-room__field-label {
  display: block;
  margin-bottom: 6px;
  color: #4a5f75;
  font-size: 12px;
  font-weight: 650;
}

.create-room__field input,
.create-room__field textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #cfd9e4;
  border-radius: 7px;
  outline: none;
  background: #fff;
  color: #2b4057;
  font-size: 13px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.create-room__field input {
  height: 40px;
  padding: 0 11px;
}

.create-room__field textarea {
  min-height: 74px;
  padding: 9px 11px;
  resize: none;
  line-height: 1.45;
}

.create-room__field input:focus,
.create-room__field textarea:focus {
  border-color: #7ba5d1;
  box-shadow: 0 0 0 3px rgba(49, 111, 186, 0.12);
}

.recipient-picker-mention-all {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.recipient-picker-mention-all-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #e9f2ff;
  color: #2476e8;
  font-size: 18px;
  font-weight: 700;
}

.create-room__field input[aria-invalid="true"],
.create-room__field textarea[aria-invalid="true"] {
  border-color: #c65b66;
  box-shadow: 0 0 0 3px rgba(177, 59, 70, 0.1);
}

.create-room__field-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
  color: #94a0ad;
  font-size: 10px;
  font-weight: 400;
}

.create-room__selected-heading {
  flex: 0 0 34px;
  min-height: 34px;
  margin-top: 2px;
}

.create-room__selected-heading > div {
  display: flex;
  align-items: baseline;
  gap: 7px;
}

.create-room__selected-heading strong {
  color: #40566d;
  font-size: 12px;
  font-weight: 650;
}

.create-room__selected-heading span {
  color: #8493a3;
  font-size: 11px;
}

.create-room__selected-heading button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  padding: 0 7px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #667a8f;
  font-size: 11px;
  cursor: pointer;
}

.create-room__selected-heading button:hover:not(:disabled),
.create-room__selected-heading button:focus-visible:not(:disabled) {
  background: #edf2f7;
  color: #315f93;
  outline: none;
}

.create-room__selected-heading button:disabled {
  cursor: default;
  opacity: 0.45;
}

.create-room-modal .create-room__selected {
  position: relative;
  display: flex;
  align-content: flex-start;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 7px;
  min-height: 86px;
  max-height: none;
  padding: 9px;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid #dce4ec;
  border-radius: 7px;
  background: #f9fbfc;
  scrollbar-gutter: stable;
}

.create-room__selected-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  min-height: 70px;
  color: #91a0af;
  font-size: 11px;
  text-align: center;
}

.create-room__selected-empty .layui-icon {
  font-size: 21px;
}

.create-room-modal .create-room__chip {
  align-self: flex-start;
  max-width: 100%;
  padding: 5px 6px;
  border: 1px solid #d6e1ec;
  border-radius: 6px;
  background: #fff;
}

.create-room-modal .create-room__chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #708297;
  line-height: 1;
}

.create-room-modal .create-room__chip-remove:hover,
.create-room-modal .create-room__chip-remove:focus-visible {
  background: #e9eff5;
  color: #ad3f4a;
  outline: none;
}

.create-room__friends-heading {
  margin-bottom: 8px;
}

.create-room-modal .create-room__select-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  margin: 0;
  padding: 0 8px;
  border: 1px solid #d7e0e8;
  border-radius: 6px;
  background: #fff;
  color: #52677d;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.create-room-modal .create-room__select-all input {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: #316fba;
}

.create-room-modal .create-room__search {
  flex: 0 0 40px;
  height: 40px;
  margin-bottom: 10px;
}

.create-room-modal .create-room__friends {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  height: auto;
  overflow: hidden;
  border: 1px solid #dce4ec;
  border-radius: 7px;
  background: #fff;
}

.create-room-modal .create-room__friends-list {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.create-room__friend {
  border-bottom: 1px solid #e7ecf1;
  border-radius: 0;
  background: #fff;
}

.create-room__friend:last-child {
  border-bottom: 0;
}

.create-room__friend:hover,
.create-room__friend.is-selected {
  background: #f1f6fb;
}

.create-room-modal .create-room__friend-row {
  min-height: 58px;
  padding: 8px 10px;
  gap: 10px;
}

.create-room__friend-avatar img {
  width: 36px !important;
  height: 36px !important;
  border: 1px solid #d8e0e8;
  border-radius: 7px !important;
}

.create-room__friend-identity {
  flex: 1 1 auto;
  min-width: 0;
}

.create-room__friend-name,
.create-room__friend-phone {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.create-room-modal .create-room__friend-name {
  color: #30465d;
  font-size: 13px;
  font-weight: 650;
}

.create-room__friend-phone {
  margin-top: 2px;
  color: #8a98a7;
  font-size: 10px;
}

.create-room__friend-check {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: #316fba;
}

.create-room-modal .create-room__pager {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 43px;
  min-height: 43px;
  padding: 0 10px;
  border-top: 1px solid #e5ebf0;
  background: #fbfcfd;
}

.create-room-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 64px;
  min-height: 64px;
  padding: 12px 18px !important;
  border-top: 1px solid #dfe6ed !important;
  background: #f8fafc;
}

.create-room-footer__status {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  gap: 8px;
  color: #73869a;
  font-size: 12px;
}

#createRoomSubmitStatus.is-error {
  color: #b13b46;
}

#createRoomSubmitStatus.is-success {
  color: #397357;
}

#loading_1 {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.create-room-modal[data-submitting="true"] .close,
.create-room-modal[data-submitting="true"] [data-dismiss="modal"] {
  pointer-events: none;
  opacity: 0.48;
}

@media (max-width: 760px) {
  .add-friend-modal .add-friend-dialog,
  .create-room-modal .create-room-dialog {
    width: calc(100vw - 16px) !important;
    margin: 8px auto !important;
  }

  .add-friend-shell,
  .create-room-shell {
    height: calc(100vh - 16px);
    min-height: 0;
  }

  .create-room-modal .create-room__layout {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }

  .create-room-modal .create-room__left,
  .create-room-modal .create-room__right {
    min-height: 430px;
  }

  .create-room-modal .create-room__right {
    border-top: 1px solid #e0e7ee;
    border-left: 0;
  }

  .add-friend-footer > span {
    display: none;
  }
}

@media (max-height: 580px) {
  .add-friend-modal .add-friend-dialog,
  .create-room-modal .create-room-dialog {
    margin: 8px auto !important;
  }

  .add-friend-shell,
  .create-room-shell {
    height: calc(100vh - 16px);
    min-height: 0;
  }

  .add-friend-header,
  .create-room-header {
    flex-basis: 56px;
    min-height: 56px;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .add-friend-header p,
  .create-room-header p {
    display: none;
  }

  .add-friend-footer,
  .create-room-footer {
    flex-basis: 56px;
    min-height: 56px;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}

/* Canonical row system for conversations, contacts and groups */
#myFriendsList,
#blackList,
#myRoomList,
#_allRoomList {
  box-sizing: border-box;
  height: 100% !important;
  padding: 8px;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

#allRoomList {
  box-sizing: border-box;
  height: 100% !important;
  padding-top: 0 !important;
  overflow: hidden !important;
}

.conversation-list-entry {
  margin: 4px 0;
}

.conversation-list-entry.fActive,
.conversation-list-entry[aria-selected="true"] {
  background: transparent;
}

.conversation-list-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 9px 11px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 7px;
  outline: none;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  transform: none;
  transition: border-color 0.14s ease, background-color 0.14s ease, box-shadow 0.14s ease;
}

.conversation-list-row:hover {
  border-color: #dce5ee;
  background: #f7f9fc;
  box-shadow: none;
  transform: none;
}

.conversation-list-entry.fActive > .conversation-list-row,
.conversation-list-entry[aria-selected="true"] > .conversation-list-row {
  border-color: #9ab7d4;
  background: #edf4fb;
  box-shadow: inset 3px 0 0 #3979b9;
}

.conversation-list-row:focus-visible {
  border-color: #6e9dcc;
  box-shadow: 0 0 0 3px rgba(57, 121, 185, 0.14);
}

.conversation-list-entry.fActive > .conversation-list-row:focus-visible,
.conversation-list-entry[aria-selected="true"] > .conversation-list-row:focus-visible {
  box-shadow: inset 3px 0 0 #3979b9, 0 0 0 3px rgba(57, 121, 185, 0.14);
}

.conversation-list-row > .ext {
  display: none;
}

.conversation-list-row .avatar {
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  margin: 0;
  float: none;
}

.conversation-list-row .avatar .img,
.conversation-list-row .avatar > img {
  display: block;
  width: 42px !important;
  height: 42px !important;
  border-radius: 7px !important;
  object-fit: cover;
}

.conversation-list-row .info {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 3px;
  width: auto;
  min-width: 0;
  overflow: hidden;
  float: none;
}

.conversation-list-row .info .nickname,
.conversation-list-row .info .group_name {
  display: flex !important;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  margin: 0;
  color: #2f4358;
  font-size: 14px !important;
  font-weight: 650;
  line-height: 20px;
}

.conversation-list-row .info .nickname_text,
.conversation-list-row .info .group_name_text {
  display: block;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-size: inherit !important;
  font-weight: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-list-row .info .msg {
  width: 100%;
  height: 18px;
  margin: 0;
  overflow: hidden;
  color: #7d8b9a !important;
  font-size: 12px !important;
  font-weight: 400;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-list-row .info .msg span {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit;
}

.conversation-list-row .timeStr,
.conversation-list-row .timeSend {
  flex: 0 0 auto;
  float: none;
  margin-left: auto;
  color: #8b99a8 !important;
  font-size: 11px !important;
  font-weight: 400;
  white-space: nowrap;
}

.conversation-list-row .mute-flag {
  flex: 0 0 auto;
  margin: 0;
}

.conversation-list-row .device-presence {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 4px;
  color: #8b99a8;
  font-size: 11px;
  font-weight: 400;
  white-space: nowrap;
}

.conversation-list-row .device-presence__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #a8b3bf;
}

.conversation-list-row .device-presence.is-online {
  color: #25865e;
}

.conversation-list-row .device-presence.is-online .device-presence__dot {
  background: #2dae73;
}

.conversation-list-row .group-badge--list {
  flex: 0 0 auto;
  height: 22px;
  margin-left: 0;
  padding: 0 7px;
  border-radius: 999px;
  line-height: 20px;
  transform: none;
}

.conversation-list-row .group-owner-badge.group-badge--list {
  min-width: 22px;
  padding: 0 4px;
}

#friendsList_blacklist .avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  border-radius: 7px;
  background: #63798e;
}

#friendsList_blacklist .avatar .img {
  width: 23px !important;
  height: 23px !important;
  border-radius: 0 !important;
  object-fit: contain;
}

#blackList .blacklist-profile-button {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  cursor: pointer;
}

#blackList .blacklist-profile-summary {
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

#blackList .blacklist-profile-button:focus-visible,
#blackList .blacklist-profile-summary:focus-visible {
  border-radius: 6px;
  outline: 2px solid rgba(57, 121, 185, 0.32);
  outline-offset: 2px;
}

#blackList .blacklist-remove-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: 30px;
  margin: 0;
  padding: 0 9px;
  border: 1px solid #d3dde7;
  border-radius: 6px;
  background: #fff;
  color: #64798d;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  cursor: pointer;
  gap: 4px;
}

#blackList .blacklist-remove-button:hover,
#blackList .blacklist-remove-button:focus-visible {
  border-color: #c5a0a0;
  outline: none;
  background: #fff6f6;
  color: #a34848;
}

#blackList .blacklist-remove-button .layui-icon {
  font-size: 14px;
}

#tabCon_blacklist #blackList,
#tabCon_device #devicePanelList {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  padding: 12px 16px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

#tabCon_blacklist #blackList > .blacklist-list,
#tabCon_device #devicePanelList > .device-directory {
  width: min(100%, 760px);
  margin: 0 auto;
}

#_allRoomList .conversation-list-row .operate {
  order: 3;
  flex: 0 0 auto;
  margin: 0 0 0 auto;
  float: none;
}

.group-join-btn {
  min-width: 64px;
  height: 30px;
  padding: 0 12px;
  border: 1px solid #8eb0d1;
  border-radius: 6px;
  background: #fff;
  color: #2f6fae;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  cursor: pointer;
}

.group-join-btn:hover,
.group-join-btn:focus-visible {
  border-color: #3979b9;
  background: #edf4fb;
  outline: none;
}

.pageTurning {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  max-width: none;
  margin: 10px auto 2px;
  transform: none;
}

.pageTurning .pageIndex {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 56px;
  height: 30px;
  margin: 0;
  padding: 0 9px;
  border: 1px solid #d7e0e9;
  border-radius: 6px;
  background: #f7f9fb;
  color: #52687e;
  font-size: 12px;
  font-weight: 650;
}

.pageTurning .js_page_turn,
.pageTurning .js_company_page_turn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid #d5dfe8;
  border-radius: 6px;
  background: #fff;
  color: #4f6f8f;
  cursor: pointer;
}

.pageTurning .js_page_turn:hover:not(:disabled),
.pageTurning .js_page_turn:focus-visible:not(:disabled),
.pageTurning .js_company_page_turn:hover:not(:disabled),
.pageTurning .js_company_page_turn:focus-visible:not(:disabled) {
  border-color: #8eafd1;
  background: #edf4fb;
  outline: none;
}

.pageTurning .js_page_turn:disabled,
.pageTurning .js_company_page_turn:disabled {
  border-color: #e4e9ee;
  background: #f4f6f8;
  color: #b4bec8;
  cursor: default;
}

.group-member-manager-dialog {
  width: min(780px, calc(100vw - 24px));
  margin-top: 20px;
  margin-bottom: 20px;
}

.group-member-manager-shell {
  display: flex;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border: 1px solid #d9e3ec;
  border-radius: 8px;
  background: #f8fafc;
  box-shadow: 0 18px 48px rgba(31, 52, 72, 0.2);
  flex-direction: column;
}

#memberManagerDialog .group-member-manager-header {
  flex: 0 0 auto;
  padding: 16px 18px 14px;
  border-bottom: 1px solid #e4ebf1;
  background: #fff;
}

#memberManagerDialog .group-member-manager-header > div {
  display: flex;
  align-items: baseline;
  min-width: 0;
  padding-right: 34px;
}

#memberManagerDialog .group-member-manager-header .modal-title {
  color: #2f465c;
  font-size: 17px;
  font-weight: 650;
  line-height: 24px;
}

#memberManagerDialog .group-member-manager-header .close {
  width: 30px;
  height: 30px;
  margin-top: -3px;
  border-radius: 6px;
  color: #789;
  font-size: 24px;
  line-height: 28px;
}

#memberManagerDialog .group-member-manager-header .close:hover,
#memberManagerDialog .group-member-manager-header .close:focus {
  background: #eef3f7;
  color: #324b62;
  opacity: 1;
}

#memberManagerDialog .group-member-manager-meta {
  margin-left: 10px;
  color: #8a9bad;
  font-size: 12px;
  white-space: nowrap;
}

#memberManagerDialog .group-member-manager-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  padding: 14px 18px 10px;
  flex-direction: column;
}

#memberManagerDialog .group-member-manager-search {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  height: 40px;
  margin: 0 0 10px;
  padding: 0 9px 0 12px;
  border: 1px solid #d8e2eb;
  border-radius: 7px;
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

#memberManagerDialog .group-member-manager-search:focus-within {
  border-color: #4f8dca;
  box-shadow: 0 0 0 3px rgba(79, 141, 202, 0.12);
}

#memberManagerDialog .group-member-manager-search > .layui-icon {
  flex: 0 0 auto;
  color: #90a2b4;
  font-size: 17px;
}

#memberManagerDialog .group-member-manager-search > input {
  flex: 1 1 auto;
  min-width: 0;
  height: 38px;
  padding: 0 9px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #30475d;
  font-size: 13px;
}

#memberManagerDialog .group-member-manager-search > input::placeholder {
  color: #9aa9b8;
}

#memberManagerDialog .group-member-manager-search > button {
  display: none;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  outline: 0;
  background: transparent;
  color: #8294a6;
  font-size: 20px;
  line-height: 27px;
}

#memberManagerDialog .group-member-manager-search > button:hover,
#memberManagerDialog .group-member-manager-search > button:focus {
  background: #edf2f6;
  color: #3d5972;
}

#memberManagerDialog #memberManagerScroll {
  flex: 1 1 auto;
  min-height: 240px;
  height: min(500px, calc(100vh - 235px)) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  border: 1px solid #dfe6ed !important;
  border-radius: 7px;
  background: #fff;
  scrollbar-color: #bdc9d4 transparent;
  scrollbar-width: thin;
}

#memberManagerDialog #memberManagerScroll::-webkit-scrollbar {
  width: 6px;
}

#memberManagerDialog #memberManagerScroll::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: #bdc9d4;
}

#memberManagerDialog table {
  width: 100%;
  margin: 0;
  table-layout: fixed;
}

#memberManagerDialog #tbMemberList tr {
  border-bottom: 1px solid #edf1f5;
  transition: background-color 0.15s ease;
}

#memberManagerDialog #tbMemberList tr:not(.group-member-manager-empty):hover {
  background: #f7fafc;
}

#memberManagerDialog #tbMemberList tr:last-child {
  border-bottom: 0;
}

#memberManagerDialog #tbMemberList td {
  padding: 10px 8px;
  vertical-align: middle;
}

#memberManagerDialog .group-member-avatar-cell {
  width: 52px;
  padding-left: 12px !important;
}

#memberManagerDialog .group-member-avatar-button {
  display: block;
  width: 36px;
  height: 36px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 7px;
  background: transparent;
  cursor: pointer;
}

#memberManagerDialog .group-member-avatar-button .roundAvatar {
  width: 36px !important;
  height: 36px !important;
  object-fit: cover;
}

#memberManagerDialog .group-member-avatar-button:focus-visible {
  outline: 3px solid rgba(57, 121, 185, 0.2);
  outline-offset: 2px;
}

#memberManagerDialog .group-member-identity {
  overflow: hidden;
}

#memberManagerDialog .group-member-name {
  display: inline-block;
  max-width: calc(100% - 62px);
  overflow: hidden;
  color: #2f4358;
  font-size: 13px;
  font-weight: 650;
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
}

#memberManagerDialog .group-member-role {
  display: inline-flex;
  align-items: center;
  height: 20px;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 5px;
  background: #eef3f8;
  color: #61758a;
  font-size: 10px;
  font-weight: 600;
  vertical-align: middle;
  white-space: nowrap;
}

#memberManagerDialog .group-member-role.is-owner {
  background: #fff3df;
  color: #a65d00;
}

#memberManagerDialog .group-member-role.is-admin {
  background: #edf3ff;
  color: #4267c9;
}

#memberManagerDialog .group-member-actions {
  width: 1px;
  padding-left: 0 !important;
  padding-right: 12px !important;
  text-align: right;
  white-space: nowrap;
}

#memberManagerDialog[data-member-role="1"] .group-member-actions {
  width: 308px;
}

#memberManagerDialog[data-member-role="2"] .group-member-actions {
  width: 136px;
}

#memberManagerDialog[data-mode="transfer"] .group-member-actions {
  width: 112px;
}

#memberManagerDialog .group-member-action {
  height: 30px;
  margin: 0 0 0 6px;
  padding: 0 9px;
  border: 1px solid #d4dee8;
  border-radius: 5px;
  background: #fff;
  color: #46627d;
  font-size: 11px;
  font-weight: 600;
  line-height: 28px;
  cursor: pointer;
}

#memberManagerDialog .group-member-action:hover,
#memberManagerDialog .group-member-action:focus-visible {
  border-color: #8eafd1;
  background: #edf4fb;
  outline: none;
}

#memberManagerDialog .group-member-action.is-danger {
  border-color: #e4c4c4;
  color: #b34848;
}

#memberManagerDialog .group-member-action.is-danger:hover,
#memberManagerDialog .group-member-action.is-danger:focus-visible {
  border-color: #cf8f8f;
  background: #fff2f2;
}

#memberManagerDialog .group-member-manager-empty td {
  height: 160px;
  color: #8192a4;
  font-size: 13px;
  text-align: center;
}

#memberManagerDialog .group-member-manager-empty.is-loading td {
  color: #647b91;
}

#memberManagerDialog .group-member-manager-footer {
  flex: 0 0 auto;
  padding: 10px 18px 14px;
  border-top: 1px solid #e4ebf1;
  background: #fff;
}

@media (max-width: 700px) {
  .group-member-manager-dialog {
    margin-top: 12px;
    margin-bottom: 12px;
  }

  .group-member-manager-shell {
    max-height: calc(100vh - 24px);
  }

  #memberManagerDialog .group-member-manager-body {
    padding-right: 13px;
    padding-left: 13px;
  }

  #memberManagerDialog #memberManagerScroll {
    height: min(500px, calc(100vh - 219px)) !important;
  }

  #memberManagerDialog table,
  #memberManagerDialog #tbMemberList {
    display: block;
  }

  #memberManagerDialog #tbMemberList tr {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
  }

  #memberManagerDialog #tbMemberList td {
    display: block;
  }

  #memberManagerDialog .group-member-avatar-cell {
    grid-column: 1;
    grid-row: 1;
  }

  #memberManagerDialog .group-member-identity {
    align-self: center;
    grid-column: 2;
    grid-row: 1;
  }

  #memberManagerDialog .group-member-actions,
  #memberManagerDialog[data-member-role="1"] .group-member-actions,
  #memberManagerDialog[data-member-role="2"] .group-member-actions,
  #memberManagerDialog[data-mode="transfer"] .group-member-actions {
    display: flex;
    width: auto;
    padding: 0 12px 10px 60px !important;
    white-space: normal;
    grid-column: 1 / -1;
    grid-row: 2;
    flex-wrap: wrap;
    gap: 6px;
  }

  #memberManagerDialog .group-member-actions:empty {
    display: none;
  }

  #memberManagerDialog .group-member-action {
    margin: 0;
  }

  #memberManagerDialog .group-member-manager-empty {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  #memberManagerDialog .group-member-manager-empty td {
    display: block;
    grid-column: 1 / -1;
  }
}

.group-verify-action {
  padding: 0;
  border: 0;
  background: transparent;
  color: #2f73b7;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.group-verify-action:hover,
.group-verify-action:focus-visible {
  color: #1f5f9d;
  text-decoration: underline;
  outline: none;
}

.group-mute-layer {
  overflow: hidden;
  border-radius: 8px !important;
}

.group-mute-layer .layui-layer-title {
  height: 50px;
  padding: 0 48px 0 20px;
  border-bottom: 1px solid #e4eaf0;
  background: #fff;
  color: #2d4156;
  font-size: 15px;
  font-weight: 650;
  line-height: 50px;
}

.group-mute-layer .layui-layer-content {
  overflow: visible !important;
}

.group-mute-form {
  padding: 18px 20px 8px;
}

.group-mute-form__description {
  margin: 0 0 16px;
  color: #6e8092;
  font-size: 13px;
  line-height: 20px;
}

.group-mute-form__field {
  margin: 0;
}

.group-mute-form__field > label {
  display: block;
  margin-bottom: 7px;
  color: #344b62;
  font-size: 12px;
  font-weight: 650;
}

.group-mute-form__field .layui-input-block {
  margin-left: 0;
}

.group-mute-form__field .layui-form-select,
.group-mute-form__field .layui-form-select .layui-input {
  width: 100%;
}

.group-mute-form__field .layui-form-select .layui-input {
  height: 38px;
  border-color: #d6e0e9;
  border-radius: 6px;
  color: #334b62;
}

.group-mute-form__field .layui-form-select dl {
  border-color: #d6e0e9;
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(37, 58, 78, 0.14);
}

.group-mute-layer .layui-layer-btn {
  padding: 12px 16px 14px;
  border-top: 1px solid #edf1f5;
  background: #fafbfd;
}

.group-mute-layer .layui-layer-btn a {
  height: 32px;
  margin: 0 0 0 8px;
  padding: 0 14px;
  border-color: #d2dde7;
  border-radius: 6px;
  background: #fff;
  color: #4b6279;
  font-size: 12px;
  line-height: 30px;
}

.group-mute-layer .layui-layer-btn .layui-layer-btn0 {
  border-color: #3979b9;
  background: #3979b9;
  color: #fff;
}

.group-mute-layer .layui-layer-btn .layui-layer-btn0:hover,
.group-mute-layer .layui-layer-btn .layui-layer-btn0:focus {
  border-color: #2e6ba8;
  background: #2e6ba8;
}

#_allRoomList .conversation-list-row:not(.js_open_group) {
  cursor: default;
}

/* Responsive containment for legacy fixed-height dialogs */
.group-bulletin-modal {
  display: flex;
  flex-direction: column;
  height: min(520px, calc(100vh - 30px)) !important;
  max-height: calc(100vh - 30px);
}

.group-bulletin-modal > .modal-header,
.group-bulletin-modal > .modal-footer,
.group-bulletin-modal > #noticesCardPage {
  flex: 0 0 auto;
}

.group-bulletin-modal__body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  padding: 12px 16px;
  overflow: hidden;
}

.group-bulletin-modal__list {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

#roomVerifyDiv .modal-dialog {
  margin-top: 15px;
  margin-bottom: 15px;
}

.room-verify-modal {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 30px);
  margin-top: 0 !important;
}

.room-verify-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  padding: 16px 18px;
  overflow-x: hidden;
  overflow-y: auto;
}

.room-verify-modal__summary {
  height: auto !important;
  padding: 8px 8px 16px;
  text-align: center;
  border-bottom: 1px solid #e2e8ef;
}

.room-verify-modal__members {
  max-height: min(180px, 28vh);
  padding: 16px 10px;
  overflow-x: hidden;
  overflow-y: auto;
}

.room-verify-modal__footer {
  flex: 0 0 auto;
  margin-top: 0 !important;
  text-align: center;
}

.set-admin-member-scroll {
  height: clamp(180px, 42vh, 360px);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid #dfe6ed;
  border-radius: 7px;
  background: #fff;
}

.group-file-dialog {
  width: min(720px, calc(100vw - 24px));
  margin-top: 20px;
  margin-bottom: 20px;
}

.group-file-shell {
  display: flex;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border-radius: 8px;
  flex-direction: column;
}

.group-file-header {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: minmax(0, 1fr) auto 30px;
  gap: 12px;
  align-items: center;
  padding: 14px 18px;
  background: #fff;
}

.group-file-header .close {
  grid-column: 3;
  grid-row: 1;
  width: 30px;
  height: 30px;
  margin: 0;
  border-radius: 6px;
  color: #789;
  font-size: 24px;
  line-height: 28px;
}

.group-file-header .close:hover,
.group-file-header .close:focus {
  background: #eef3f7;
  color: #324b62;
  opacity: 1;
}

.group-file-heading {
  display: flex;
  grid-column: 1;
  grid-row: 1;
  align-items: baseline;
  min-width: 0;
}

.group-file-heading .modal-title {
  color: #2f465c;
  font-size: 17px;
  font-weight: 650;
  line-height: 24px;
}

.group-file-meta {
  margin-left: 10px;
  color: #8a9bad;
  font-size: 12px;
  white-space: nowrap;
}

.group-file-upload-button {
  display: inline-flex;
  grid-column: 2;
  grid-row: 1;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 13px;
  border: 1px solid #3479ba;
  border-radius: 6px;
  background: #3479ba;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
}

.group-file-upload-button:hover,
.group-file-upload-button:focus {
  border-color: #28699f;
  background: #28699f;
  color: #fff;
}

.group-file-upload-button .layui-icon {
  margin-right: 6px;
  font-size: 16px;
}

.group-file-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #f6f9fb;
}

.group-file-scroll {
  width: 100%;
  min-height: 260px;
  max-height: min(520px, calc(100vh - 170px));
  padding: 8px 18px;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: #bdc9d4 transparent;
  scrollbar-width: thin;
}

.group-file-scroll::-webkit-scrollbar {
  width: 6px;
}

.group-file-scroll::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: #bdc9d4;
}

.group-file-list {
  min-height: 244px;
}

.group-file-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 70px;
  padding: 10px 2px;
  border-bottom: 1px solid #e1e8ee;
}

.group-file-card:last-child {
  border-bottom: 0;
}

.group-file-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid #d7e4ef;
  border-radius: 7px;
  background: #eaf3fb;
  color: #3d80bb;
}

.group-file-icon .layui-icon {
  font-size: 22px;
}

.group-file-info {
  min-width: 0;
}

.group-file-info h5 {
  margin: 0;
  overflow: hidden;
  color: #30475d;
  font-size: 14px;
  font-weight: 600;
  line-height: 21px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-file-info p {
  display: flex;
  gap: 12px;
  align-items: center;
  min-width: 0;
  margin: 3px 0 0;
  color: #8293a3;
  font-size: 12px;
  line-height: 18px;
}

.group-file-info p span,
.group-file-info p time {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-file-info p time {
  margin-left: auto;
}

.group-file-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

.group-file-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #d3dee8;
  border-radius: 6px;
  outline: 0;
  background: #fff;
  color: #467394;
  text-decoration: none;
}

.group-file-action:hover,
.group-file-action:focus {
  border-color: #4d86bb;
  background: #edf5fb;
  color: #2f6fa7;
  text-decoration: none;
}

.group-file-action:disabled {
  border-color: #e1e7ec;
  background: #f4f6f8;
  color: #aab5bf;
  cursor: not-allowed;
}

.group-file-action--danger:hover,
.group-file-action--danger:focus {
  border-color: #d68b8b;
  background: #fff1f1;
  color: #b44949;
}

.group-file-state {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 244px;
  color: #8293a3;
  font-size: 13px;
  flex-direction: column;
}

.group-file-state > .layui-icon {
  color: #9aabba;
  font-size: 30px;
}

.group-file-state strong {
  margin-top: 10px;
  color: #5d7185;
  font-weight: 500;
}

.group-file-state > span:not(.group-file-spinner) {
  margin-top: 5px;
}

.group-file-state > button {
  height: 32px;
  margin-top: 14px;
  padding: 0 14px;
  border: 1px solid #cbd8e3;
  border-radius: 6px;
  background: #fff;
  color: #416783;
  font-size: 12px;
}

.group-file-spinner {
  width: 24px;
  height: 24px;
  border: 2px solid #d5e0e9;
  border-top-color: #4387c5;
  border-radius: 50%;
  animation: group-file-spin 0.75s linear infinite;
}

.group-file-footer {
  flex: 0 0 auto;
  padding: 10px 18px 14px;
  background: #fff;
}

@keyframes group-file-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 560px) {
  .group-file-dialog {
    margin-top: 12px;
    margin-bottom: 12px;
  }

  .group-file-shell {
    max-height: calc(100vh - 24px);
  }

  .group-file-header {
    grid-template-columns: minmax(0, 1fr) 30px;
  }

  .group-file-upload-button {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
  }

  .group-file-header .close {
    grid-column: 2;
  }

  .group-file-scroll {
    padding-right: 13px;
    padding-left: 13px;
  }

  .group-file-card {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 9px;
  }

  .group-file-icon {
    width: 38px;
    height: 38px;
  }

  .group-file-info p {
    display: block;
  }

  .group-file-info p span,
  .group-file-info p time {
    display: block;
  }
}

#map .modal-dialog {
  width: min(1120px, calc(100vw - 24px));
  margin-top: 15px;
  margin-bottom: 15px;
}

.map-modal-viewport {
  width: 100%;
  height: clamp(160px, calc(100vh - 190px), 600px);
  overflow: hidden;
  border: 1px solid #dfe6ed;
  border-radius: 7px;
  background: #eef2f6;
}

#baiduMap {
  width: 100%;
  height: 100%;
}

/* Group member gallery */
.group-member-gallery-dialog {
  width: min(660px, calc(100vw - 24px));
  margin-top: 20px;
  margin-bottom: 20px;
}

.group-member-gallery-shell {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border: 1px solid #d9e3ec;
  border-radius: 8px;
  background: #f8fafc;
  box-shadow: 0 18px 48px rgba(31, 52, 72, 0.2);
}

.group-member-gallery-header {
  flex: 0 0 auto;
  padding: 16px 18px 14px;
  border-bottom: 1px solid #e4ebf1;
  background: #fff;
}

.group-member-gallery-header > div {
  display: flex;
  align-items: baseline;
  min-width: 0;
  padding-right: 34px;
}

.group-member-gallery-header .modal-title {
  color: #2f465c;
  font-size: 17px;
  font-weight: 650;
  line-height: 24px;
}

.group-member-gallery-meta {
  margin-left: 10px;
  color: #8a9bad;
  font-size: 12px;
  white-space: nowrap;
}

.group-member-gallery-header .close {
  width: 30px;
  height: 30px;
  margin-top: -3px;
  border-radius: 6px;
  color: #789;
  font-size: 24px;
  line-height: 28px;
}

.group-member-gallery-header .close:hover,
.group-member-gallery-header .close:focus {
  background: #eef3f7;
  color: #324b62;
  opacity: 1;
}

.group-member-gallery-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 14px 18px 8px;
  overflow: hidden;
}

.group-member-gallery-search {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  height: 40px;
  padding: 0 9px 0 12px;
  border: 1px solid #d8e2eb;
  border-radius: 7px;
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.group-member-gallery-search:focus-within {
  border-color: #4f8dca;
  box-shadow: 0 0 0 3px rgba(79, 141, 202, 0.12);
}

.group-member-gallery-search > .layui-icon {
  flex: 0 0 auto;
  color: #90a2b4;
  font-size: 17px;
}

.group-member-gallery-search > input {
  flex: 1 1 auto;
  min-width: 0;
  height: 38px;
  padding: 0 9px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #30475d;
  font-size: 13px;
}

.group-member-gallery-search > input::placeholder {
  color: #9aa9b8;
}

.group-member-gallery-search > button {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  outline: 0;
  background: transparent;
  color: #8294a6;
  font-size: 20px;
  line-height: 27px;
}

.group-member-gallery-search > button:hover,
.group-member-gallery-search > button:focus {
  background: #edf2f6;
  color: #3d5972;
}

.group-member-gallery-viewport {
  flex: 1 1 auto;
  min-height: 240px;
  margin-top: 8px;
  padding: 10px 3px 12px;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: #bdc9d4 transparent;
  scrollbar-width: thin;
}

.group-member-gallery-viewport::-webkit-scrollbar {
  width: 6px;
}

.group-member-gallery-viewport::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: #bdc9d4;
}

.group-member-gallery-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px 10px;
}

.group-member-gallery-card {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 5px 3px 8px;
  border: 0;
  border-radius: 7px;
  outline: 0;
  background: transparent;
  color: #354c62;
  cursor: pointer;
  flex-direction: column;
}

.group-member-gallery-card:hover,
.group-member-gallery-card:focus-visible {
  background: #eaf2f8;
  color: #275a86;
}

.group-member-gallery-avatar-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
}

.group-member-gallery-avatar {
  display: block;
  width: 58px;
  height: 58px;
  border: 1px solid #dce4eb;
  border-radius: 8px;
  background: #edf2f6;
  box-shadow: 0 2px 7px rgba(38, 61, 82, 0.1);
  object-fit: cover;
}

.group-member-gallery-role {
  position: absolute;
  top: -5px;
  right: -7px;
  min-width: 22px;
  height: 18px;
  padding: 0 5px;
  border: 2px solid #f8fafc;
  border-radius: 8px;
  background: #e9a23b;
  color: #fff;
  font-size: 10px;
  font-weight: 650;
  line-height: 14px;
  text-align: center;
  white-space: nowrap;
}

.group-member-gallery-role.is-admin {
  background: #4388c7;
}

.group-member-gallery-role.is-self {
  background: #6f8192;
}

.group-member-gallery-name {
  display: block;
  width: 100%;
  margin-top: 7px;
  overflow: hidden;
  font-size: 13px;
  line-height: 18px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-member-gallery-state {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  color: #788b9e;
  font-size: 13px;
  flex-direction: column;
}

.group-member-gallery-state strong {
  margin-top: 10px;
  color: #5d7185;
  font-weight: 500;
}

.group-member-gallery-state > button {
  height: 32px;
  margin-top: 14px;
  padding: 0 14px;
  border: 1px solid #cbd8e3;
  border-radius: 6px;
  background: #fff;
  color: #416783;
  font-size: 12px;
}

.group-member-gallery-state > button:hover,
.group-member-gallery-state > button:focus {
  border-color: #4d86bb;
  color: #2f6fa7;
}

.group-member-gallery-spinner {
  width: 24px;
  height: 24px;
  border: 2px solid #d5e0e9;
  border-top-color: #4387c5;
  border-radius: 50%;
  animation: group-member-gallery-spin 0.75s linear infinite;
}

.group-member-gallery-state.is-empty .group-member-gallery-spinner,
.group-member-gallery-state.is-error .group-member-gallery-spinner {
  display: none;
}

.group-member-gallery-footer {
  flex: 0 0 auto;
  padding: 10px 18px 14px;
  border-top: 1px solid #e4ebf1;
  background: #fff;
}

@keyframes group-member-gallery-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 620px) {
  .group-member-gallery-dialog {
    margin-top: 12px;
    margin-bottom: 12px;
  }

  .group-member-gallery-shell {
    max-height: calc(100vh - 24px);
  }

  .group-member-gallery-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 7px;
  }
}

@media (max-width: 440px) {
  .group-member-gallery-body {
    padding-right: 13px;
    padding-left: 13px;
  }

  .group-member-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .group-member-gallery-avatar-wrap,
  .group-member-gallery-avatar {
    width: 54px;
    height: 54px;
  }
}

@media (max-height: 600px) {
  .group-member-gallery-header {
    padding-top: 12px;
    padding-bottom: 10px;
  }

  .group-member-gallery-body {
    padding-top: 10px;
  }

  .group-member-gallery-viewport,
  .group-member-gallery-state {
    min-height: 150px;
  }

  .group-member-gallery-footer {
    padding-top: 8px;
    padding-bottom: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .group-member-gallery-spinner {
    animation-duration: 1.5s;
  }
}

#messageContainer .video-upload-placeholder {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 240px;
  min-height: 72px;
  box-sizing: border-box;
  padding: 12px;
  color: #334155;
  background: #f5f8fc;
  border: 1px solid #dbe5f0;
  border-radius: 8px;
}

#messageContainer .video-upload-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  color: #377dca;
  background: #e6f0fc;
  border-radius: 50%;
  font-size: 20px;
}

#messageContainer .video-upload-meta {
  min-width: 0;
  flex: 1;
}

#messageContainer .video-upload-meta strong,
#messageContainer .video-upload-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#messageContainer .video-upload-meta strong {
  font-size: 13px;
  font-weight: 600;
}

#messageContainer .video-upload-name {
  margin-top: 3px;
  color: #7890aa;
  font-size: 12px;
}

#messageContainer .video-upload-progress {
  position: relative;
  height: 20px;
  margin: 5px 0 0;
  overflow: visible;
  background: transparent;
  border-radius: 0;
}

#messageContainer .video-upload-progress .progress {
  position: absolute;
  top: 10px;
  left: 0;
  width: 0;
  height: 6px;
  background: #377dca;
  border-radius: 999px;
  transition: width 160ms ease;
}

#messageContainer .video-upload-progress .progress_label {
  position: absolute;
  right: 0;
  top: 0;
  color: #7890aa;
  font-size: 11px;
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  #messageContainer .video-upload-progress .progress {
    transition: none;
  }
}

/* Cross-client message cards: keep mobile-only protocol messages visible on Web. */
#messageContainer .message-rich-card,
#messageContainer .message-link-card-anchor,
#messageContainer .message-compatible-card {
  display: block;
  max-width: 300px;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid rgba(94, 119, 150, 0.18);
  background: rgba(255, 255, 255, 0.72);
  color: inherit;
  text-decoration: none;
}

#messageContainer .message-rich-card-item,
#messageContainer .message-link-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 9px 11px;
  color: inherit;
  text-decoration: none;
}

#messageContainer .message-rich-card-many .message-rich-card-item + .message-rich-card-item {
  border-top: 1px solid rgba(94, 119, 150, 0.14);
}

#messageContainer .message-rich-card-image,
#messageContainer .message-link-card-image {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 6px;
  background: #eef2f7;
}

#messageContainer .message-rich-card-copy,
#messageContainer .message-link-card-copy,
#messageContainer .message-compatible-card {
  min-width: 0;
}

#messageContainer .message-rich-card-copy,
#messageContainer .message-link-card-copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
}

#messageContainer .message-rich-card-copy strong,
#messageContainer .message-link-card-copy strong,
#messageContainer .message-compatible-card strong {
  overflow: hidden;
  color: #29415d;
  font-size: 14px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#messageContainer .message-rich-card-copy small,
#messageContainer .message-link-card-copy small,
#messageContainer .message-compatible-card small {
  display: block;
  overflow: hidden;
  color: #71839a;
  font-size: 12px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#messageContainer .message-link-card-anchor:hover,
#messageContainer .message-rich-card-item:hover {
  background: rgba(238, 244, 252, 0.9);
}

#messageContainer .message-link-card-url {
  color: #477bc1;
}

#messageContainer .message-compatible-card {
  padding: 11px 13px;
}

#messageContainer .message-compatible-card strong,
#messageContainer .message-compatible-card small {
  display: block;
}

#messageContainer .message-compatible-card small {
  margin-top: 4px;
}

@media (prefers-reduced-motion: reduce) {
  #messageContainer .message-rich-card-item,
  #messageContainer .message-link-card-anchor {
    transition: none;
  }
}
