:root {
  --green: #389e0d;
  --green-dark: #237804;
  --green-soft: #f6ffed;
  --blue: #2563eb;
  --amber: #b7791f;
  --red: #c2413b;
  --text: rgba(0, 0, 0, 0.85);
  --text-soft: rgba(0, 0, 0, 0.65);
  --muted: rgba(0, 0, 0, 0.45);
  --placeholder: #bfbfbf;
  --line: #f0f0f0;
  --line-strong: #e9e9e9;
  --bg: #f3f3f3;
  --panel: #ffffff;
  --side: #202020;
  --side-soft: #2b2b2b;
  --radius: 4px;
}

/* Finalized choice controls C1.1. New calls opt in by key and version. */
input[data-component-key="radio"][data-component-version="C1.1"],
input[data-component-key="checkbox"][data-component-version="C1.1"] {
  width:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  height:16px!important;
  min-height:16px!important;
  max-height:16px!important;
  flex:0 0 16px!important;
  margin:0!important;
  padding:0!important;
  appearance:auto!important;
  -webkit-appearance:auto!important;
  accent-color:var(--green,#2aaa1a);
  vertical-align:middle;
  box-shadow:none!important;
  transform:none!important;
  cursor:pointer;
}
input[data-component-key="radio"][data-component-version="C1.1"]:focus-visible,
input[data-component-key="checkbox"][data-component-version="C1.1"]:focus-visible {
  outline:2px solid rgba(42,170,26,.24);
  outline-offset:2px;
}
input[data-component-key="radio"][data-component-version="C1.1"]:disabled,
input[data-component-key="checkbox"][data-component-version="C1.1"]:disabled {
  opacity:.45;
  cursor:not-allowed;
}

/* Finalized switch C1.1. */
input[data-component-key="switch"][data-component-version="C1.1"] {
  appearance:none;
  width:42px;
  min-width:42px;
  height:22px;
  min-height:22px;
  position:relative;
  display:inline-block;
  margin:0;
  padding:0;
  border:0;
  border-radius:12px;
  background:#c7cbd0;
  box-shadow:none;
  vertical-align:middle;
  cursor:pointer;
  transition:background-color .15s ease,box-shadow .15s ease;
}
input[data-component-key="switch"][data-component-version="C1.1"]::after {
  content:"";
  width:18px;
  height:18px;
  position:absolute;
  top:2px;
  left:2px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
  transition:transform .15s ease;
}
input[data-component-key="switch"][data-component-version="C1.1"]:checked { background:#2aaa1a; }
input[data-component-key="switch"][data-component-version="C1.1"]:checked::after { transform:translateX(20px); }
input[data-component-key="switch"][data-component-version="C1.1"]:focus-visible { outline:2px solid rgba(42,170,26,.22); outline-offset:2px; }
input[data-component-key="switch"][data-component-version="C1.1"]:disabled { opacity:.45; cursor:not-allowed; }

/* Finalized confirm/cancel buttons C1.2. Copy and width remain contextual. */
button[data-component-key="confirmCancel"][data-component-version="C1.2"] {
  width:auto;
  min-width:72px;
  height:32px;
  padding:0 18px;
  border:1px solid #dcdfe6;
  border-radius:3px;
  background:#fff;
  color:#606266;
  font-size:14px;
  font-weight:400;
  line-height:30px;
  box-shadow:none;
  white-space:nowrap;
}
button[data-component-key="confirmCancel"][data-component-version="C1.2"].primary-button {
  border-color:#2aaa1a;
  background:#2aaa1a;
  color:#fff;
}
button[data-component-key="confirmCancel"][data-component-version="C1.2"]:not(.primary-button):hover {
  border-color:#bfc4ca;
  color:#303133;
}
button[data-component-key="confirmCancel"][data-component-version="C1.2"].primary-button:hover {
  border-color:#249c16;
  background:#249c16;
}
button[data-component-key="confirmCancel"][data-component-version="C1.2"]:disabled {
  opacity:.45;
  cursor:not-allowed;
}

/* Finalized pagination C1.1. Page count and surrounding copy remain contextual. */
[data-component-key="pagination"][data-component-version="C1.1"] {
  display:flex;
  align-items:center;
  gap:5px;
}
[data-component-key="pagination"][data-component-version="C1.1"] > button {
  width:auto;
  min-width:30px;
  height:30px;
  padding:0 8px;
  border:1px solid #dcdfe6;
  border-radius:3px;
  background:#fff;
  color:#606266;
  font-size:13px;
  font-weight:400;
  line-height:28px;
  text-align:center;
}
[data-component-key="pagination"][data-component-version="C1.1"] > button.active {
  border-color:#2aaa1a;
  background:#f3fbf1;
  color:#249c16;
}
[data-component-key="pagination"][data-component-version="C1.1"] > button:disabled {
  border-color:#e5e7ea;
  background:#f6f7f8;
  color:#c2c6cc;
  cursor:not-allowed;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, sans-serif;
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  min-height: calc(100vh - 48px);
  display: grid;
  grid-template-columns: 226px minmax(0, 1fr);
}

.sidebar {
  background: var(--side);
  border-right: 1px solid #1d1d1d;
}

.global-header {
  height: 48px;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 16px;
  border-bottom: 1px solid #e5e5e5;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.global-brand {
  width: 142px;
  height: 48px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.brand-mark {
  position: relative;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.brand-tri {
  position: absolute;
  width: 0;
  height: 0;
}

.brand-tri-blue {
  left: 0;
  top: 5px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-right: 9px solid #2f80ed;
}

.brand-tri-orange-top {
  left: 7px;
  top: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 9px solid #ff9f1a;
}

.brand-tri-orange-right {
  right: 0;
  top: 5px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 9px solid #ff9f1a;
}

.brand-tri-orange-bottom {
  left: 7px;
  bottom: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 9px solid #ff9f1a;
}

.brand-text {
  color: rgba(0, 0, 0, 0.85);
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  white-space: nowrap;
}

.mode-switch {
  display: inline-flex;
  height: 32px;
  padding: 3px;
  border-radius: 4px;
  background: #f0f0f0;
}

.mode-switch button {
  min-width: 80px;
  height: 26px;
  border: 0;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.85);
  background: transparent;
  font-size: 14px;
  line-height: 20px;
}

.mode-switch button.active {
  background: #fff;
  box-shadow: 0 0 0 1px #d9d9d9;
}

.global-tools {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0;
  color: var(--text-soft);
  font-size: 14px;
  white-space: nowrap;
}

.tool-item {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  color: rgba(0, 0, 0, 0.85);
  border-right: 1px solid #f0f0f0;
  line-height: 20px;
}

.tool-item::before {
  content: "";
  width: 14px;
  height: 14px;
  display: inline-block;
  flex: 0 0 14px;
  background: currentColor;
  opacity: 0.9;
}

.tool-user::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 7a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0 1.4c-3.1 0-5.2 1.7-5.2 4.1 0 .3.2.5.5.5h9.4c.3 0 .5-.2.5-.5 0-2.4-2.1-4.1-5.2-4.1Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.tool-company::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 7a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0 1.4c-3.1 0-5.2 1.7-5.2 4.1 0 .3.2.5.5.5h9.4c.3 0 .5-.2.5-.5 0-2.4-2.1-4.1-5.2-4.1Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.tool-calendar::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 1h1.2v1.2h3.6V1H10v1.2h1.5c.8 0 1.5.7 1.5 1.5v7.8c0 .8-.7 1.5-1.5 1.5h-9C1.7 13 1 12.3 1 11.5V3.7c0-.8.7-1.5 1.5-1.5H4V1Zm7.8 5H2.2v5.5c0 .2.1.3.3.3h9c.2 0 .3-.1.3-.3V6ZM2.5 3.4c-.2 0-.3.1-.3.3v1.1h9.6V3.7c0-.2-.1-.3-.3-.3h-9Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  margin-left: 18px;
  object-fit: cover;
}

.user-id {
  margin-left: 10px;
  color: rgba(0, 0, 0, 0.65);
}

.side-nav {
  height: calc(100vh - 48px);
  overflow: auto;
  padding: 8px 0 22px;
}

.nav-section {
  margin-bottom: 4px;
}

.nav-home {
  height: 36px;
  display: flex;
  align-items: center;
  margin: 0 8px 8px;
  gap: 8px;
  padding: 0 8px;
  position: relative;
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.85);
  background: transparent;
  font-size: 14px;
  line-height: 22px;
}

.nav-home::before {
  display: none;
}

.nav-home.active {
  color: #fff;
  background: var(--green);
}

.nav-home.active::before {
  background: #fff;
}

.nav-title {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  margin: 0;
  position: relative;
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
}

.nav-section:not(.nav-single) > .nav-title {
  padding-right: 16px;
}

.nav-section:not(.nav-single) > .nav-title:hover {
  background: rgba(255, 255, 255, 0.06);
}

.nav-section:not(.nav-single) > .nav-title::after {
  display: none;
}

.nav-title::before {
  display: none;
}

.nav-single .nav-title.active {
  color: #fff;
  background: var(--green);
}

.nav-single .nav-title.active::before {
  background: #fff;
}

.nav-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0 12px 6px;
  padding: 4px 0;
  border-radius: 4px;
  background: var(--side-soft);
}

.nav-section.collapsed > .nav-grid {
  display: none;
}

.nav-grid span {
  min-height: 28px;
  display: flex;
  align-items: center;
  padding: 0 8px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
  white-space: nowrap;
  cursor: pointer;
}

.nav-grid span.active {
  justify-self: start;
  align-self: center;
  color: #fff;
  min-height: 28px;
  margin: 0;
  padding: 0 10px;
  border-radius: 4px;
  background: var(--green);
}

.nav-single {
  margin-bottom: 6px;
}

.menu-icon {
  flex: 0 0 auto;
  display: inline-block;
  color: currentColor;
  fill: currentColor;
}

.nav-home .menu-icon,
.nav-single .menu-icon {
  width: 16px;
  height: 16px;
}

.nav-title .menu-icon {
  width: 14px;
  height: 14px;
}

.side-nav [role="button"]:focus {
  outline: 0;
}

.workspace {
  min-width: 0;
  padding-bottom: 0;
}

.topbar {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 26px;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.page-tabs {
  display: flex;
  align-items: center;
  gap: 28px;
  color: #555;
  font-size: 14px;
}

.page-tabs span {
  height: 58px;
  display: flex;
  align-items: center;
  border-bottom: 2px solid transparent;
}

.page-tabs span.active {
  color: var(--green);
  border-bottom-color: var(--green);
  font-weight: 600;
}

.page-company-select {
  width: 220px;
  margin-left: 18px;
}
.page-company-select .shared-company-filter,
.page-company-select .shared-select-trigger {
  width: 100%;
}

.create-topbar {
  min-height: 50px;
  padding: 0 18px;
}

.create-titlebar {
  display: flex;
  align-items: center;
  gap: 8px;
}

.circle-back {
  width: 26px;
  height: 26px;
  position: relative;
  flex: 0 0 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: #51629d;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.circle-back::before {
  content: "";
  width: 20px;
  height: 20px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.8 3.8 4.6 10l6.2 6.2M5 10h11' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.8 3.8 4.6 10l6.2 6.2M5 10h11' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.circle-back::after {
  display: none;
}

.circle-back:hover {
  background: #465896;
  box-shadow: 0 2px 8px rgba(81, 98, 157, 0.22);
}

.circle-back:active {
  transform: translateX(-1px);
}

.circle-back:focus-visible {
  outline: 2px solid rgba(81, 98, 157, 0.22);
  outline-offset: 2px;
}

.create-titlebar h1 {
  margin: 0;
  color: #222;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.crumb {
  color: var(--muted);
  font-size: 12px;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1.35;
  font-weight: 600;
}

h2 {
  margin-bottom: 6px;
  font-size: 14px;
  line-height: 22px;
  font-weight: 600;
}

h3 {
  margin-bottom: 14px;
  font-size: 14px;
}

p {
  margin-bottom: 0;
  color: var(--muted);
}

.top-actions,
.actions,
.filters,
.target-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
}

.primary-button,
.ghost-button,
.wide-button,
.icon-button {
  min-height: 32px;
  border-radius: 4px;
  padding: 4px 15px;
  font-size: 14px;
  font-weight: 400;
}

.primary-button {
  border: 1px solid var(--green);
  color: #fff;
  background: var(--green);
}

.primary-button:hover {
  background: #54ab29;
}

.dialog-action-button {
  min-width:64px;
  width:auto;
  height:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border-radius:3px;
  font-size:14px;
  font-weight:400;
  line-height:20px;
  white-space:nowrap;
}
.dialog-action-cancel {
  border-color:#ddd;
  color:#555;
  background:#fff;
}
.dialog-action-confirm {
  border-color:var(--green);
  color:#fff;
  background:var(--green);
}
.dialog-action-button:disabled {
  border-color:#ddd;
  color:#aaa;
  background:#f5f5f5;
  cursor:not-allowed;
}

.ghost-button,
.wide-button {
  border: 1px solid #e9e9e9;
  color: var(--text-soft);
  background: #fff;
}

.ghost-button:hover,
.wide-button:hover {
  color: #54ab29;
  border-color: #54ab29;
  background: #fff;
}

.wide-button {
  width: 100%;
}

.icon-button {
  width: 34px;
  border: 1px solid #d0d5dd;
  background: #fff;
  font-size: 22px;
  line-height: 1;
}

.task-area,
.form-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.list-page {
  padding: 16px;
}

.home-page {
  min-height: calc(100vh - 48px);
  padding: 16px;
}

.home-card,
.home-stat-card,
.home-panel,
.construction-card {
  background: #fff;
  border: 1px solid var(--line);
}

.home-card,
.home-stat-card,
.home-panel {
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.home-stat-card:hover,
.home-panel:hover {
  border-color: #e3e3e3;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.home-tabs {
  min-height: 65px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 8px 20px;
}

.home-tab-group {
  display: flex;
  align-items: center;
  gap: 32px;
}

.home-tab-group button,
.panel-head button,
.range-tabs button {
  border: 0;
  background: transparent;
  color: var(--text);
  font-size: 14px;
  line-height: 22px;
}

.home-tab-group button {
  height: 41px;
  font-size: 16px;
  font-weight: 600;
}

.home-tab-group button.active {
  color: var(--green);
}

.home-tab-group button:focus {
  outline: 0;
}

.home-tab-panel.hidden {
  display: none;
}

.home-tabs p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 20px;
}

.home-tabs p span,
.panel-head button {
  color: var(--green);
}

.home-tabs p span {
  cursor: pointer;
}

.home-tabs p span:hover,
.panel-head button:hover {
  color: #54ab29;
}

.home-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.home-stat-card {
  min-height: 157px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto auto;
  gap: 10px 16px;
  padding: 16px;
  background: #fafafa;
}

.home-stat-card p,
.home-stat-card strong {
  display: block;
  margin: 0;
}

.home-stat-card p {
  color: var(--text);
  font-size: 14px;
  line-height: 22px;
}

.home-stat-card strong {
  margin-top: 4px;
  color: var(--text);
  font-size: 24px;
  line-height: 32px;
}

.stat-icon {
  width: 40px;
  height: 40px;
  border-radius: 5px;
  align-self: start;
}

.stat-icon.blue { background: #3674ff; }
.stat-icon.green { background: #11c77a; }
.stat-icon.slate { background: #7181a4; }
.stat-icon.orange { background: #ff7a45; }

.stat-icon {
  position: relative;
}

.stat-icon::before {
  content: "";
  position: absolute;
  inset: 10px;
  background: #fff;
  opacity: 0.95;
}

.stat-icon.blue::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M10 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 2c-4 0-7 2.1-7 5v1h14v-1c0-2.9-3-5-7-5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-icon.green::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 4h12v12H4V4Zm2 8 2.2-2.6 2 2L14 7l1.2 1-4.9 5.7-2-2L7 13.2 6 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-icon.slate::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm1-12v5.2l2.2-2.2 1.4 1.4L10 15 5.4 10.4 6.8 9 9 11.2V6h2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-icon.chat::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 4h12c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2H9l-4 3v-3H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2Zm3 4v2h6V8H7Zm0 3v2h4v-2H7Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-icon.members::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm6 0a2.6 2.6 0 1 0 0-5.2A2.6 2.6 0 0 0 13 9ZM7 11c-3 0-5 1.6-5 4v1h10v-1c0-2.4-2-4-5-4Zm6 0c-.8 0-1.5.1-2.1.4 1.3.9 2.1 2.1 2.1 3.6v1h5v-1c0-2.4-2-4-5-4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-icon.trend::before {
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 14h12v2H4v-2Zm1-2 3.5-4 3 2.5L15 6l1.5 1.2-4.7 6-3-2.5L6.5 13 5 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stat-extra {
  grid-column: 1 / -1;
  padding-top: 10px;
  border-top: 1px solid #ededed;
  color: var(--text);
  font-size: 14px;
}

.stat-extra em {
  color: #ff4d4f;
  font-style: normal;
}

.help-dot {
  width: 14px;
  height: 14px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  border: 1px solid #bfbfbf;
  border-radius: 50%;
  color: #8c8c8c;
  font-size: 10px;
  font-style: normal;
  line-height: 1;
  cursor: help;
}

.help-dot[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  z-index: 30;
  min-width: 156px;
  max-width: 220px;
  transform: translateX(-50%);
  padding: 7px 9px;
  border-radius: 3px;
  color: #fff;
  background: rgba(0, 0, 0, 0.78);
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  text-align: left;
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.help-dot[data-tip]:hover::after {
  opacity: 1;
  visibility: visible;
}

.stat-trend {
  grid-column: 1 / -1;
  display: flex;
  gap: 28px;
  color: var(--text);
  font-size: 12px;
}

.stat-trend span {
  white-space: nowrap;
}

.stat-trend b {
  color: #10b981;
  font-size: 12px;
}

.stat-trend b.down {
  color: #ff4d4f;
}

.home-panel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
}

.home-panel-grid.group-panels {
  grid-template-columns: 1fr 1fr;
}

.home-panel {
  min-height: 222px;
  padding: 16px;
}

.home-panel + .home-panel {
  border-left: 0;
}

.panel-head {
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.panel-head strong,
.trend-grid h3 {
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
}

.panel-head select {
  width: 160px;
  height: 32px;
  padding: 0 30px 0 12px;
  color: var(--text-soft);
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background-color: #fff;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(0, 0, 0, 0.45) 50%),
    linear-gradient(135deg, rgba(0, 0, 0, 0.45) 50%, transparent 50%);
  background-position:
    calc(100% - 15px) 13px,
    calc(100% - 9px) 13px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  appearance: none;
  -webkit-appearance: none;
}

.source-demo {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.source-demo ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 20px;
}

.source-demo li {
  white-space: nowrap;
}

.dot {
  width: 8px;
  height: 8px;
  display: inline-block;
  margin-right: 7px;
  border-radius: 50%;
}

.dot.blue { background: #4f86f7; }
.dot.cyan { background: #5dc5eb; }
.dot.green { background: #55d6a1; }
.dot.purple { background: #8b62d9; }
.dot.slate { background: #697a99; }
.dot.amber { background: #f5b51b; }
.dot.violet { background: #6759ff; }

.donut {
  width: 126px;
  height: 126px;
  flex: 0 0 126px;
  border-radius: 50%;
  position: relative;
}

.donut::after {
  content: "";
  position: absolute;
  inset: 28px;
  border-radius: 50%;
  background: #fff;
}

.donut.source {
  background: conic-gradient(#55d6a1 0 74%, #6759ff 74% 80%, #f5b51b 80% 83%, #697a99 83% 86%, #8b62d9 86% 91%, #5dc5eb 91% 95%, #ff7a45 95% 100%);
}

.donut.gender {
  background: conic-gradient(#55d6a1 0 70%, #697a99 70% 92%, #4f86f7 92% 100%);
}

.tag-rank {
  display: grid;
  gap: 12px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  color: var(--text);
  font-size: 14px;
}

.tag-rank span {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
  border-radius: 3px;
  background: #d8d8d8;
  color: #fff;
  font-size: 12px;
}

.tag-rank li:nth-child(1) span { background: #ff5b54; }
.tag-rank li:nth-child(2) span { background: #ff7a45; }
.tag-rank li:nth-child(3) span { background: #5f719b; }

.group-rank-panel,
.group-distribution-panel {
  min-height: 222px;
}

.empty-rank {
  height: 150px;
}

.bar-chart {
  height: 160px;
  display: grid;
  grid-template-columns: 44px 1fr;
  grid-template-rows: 126px 24px;
  align-items: end;
  margin: 8px 10px 0 0;
}

.bar-axis {
  height: 126px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  padding-right: 8px;
  color: #999;
  font-size: 12px;
}

.bar-plot {
  height: 120px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: end;
  gap: 28px;
  padding: 0 24px 0 10px;
  border-left: 1px solid #bfbfbf;
  border-bottom: 1px solid #bfbfbf;
}

.bar-plot i {
  width: 30px;
  display: block;
  justify-self: center;
  border-radius: 4px 4px 0 0;
  background: #08c779;
}

.bar-labels {
  grid-column: 2;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  padding: 5px 10px 0;
  color: #999;
  font-size: 12px;
  text-align: center;
}

.trend-card {
  margin-top: 16px;
  padding: 0 16px 42px;
}

.range-tabs {
  height: 48px;
  display: flex;
  align-items: center;
  gap: 0;
}

.range-tabs button,
.range-tabs span {
  height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  border: 1px solid #d9d9d9;
  color: var(--text-soft);
  background: #fff;
}

.range-tabs button + button {
  margin-left: -1px;
}

.range-tabs button.active {
  z-index: 1;
  color: var(--green);
  border-color: var(--green);
  background: #f6ffed;
}

.range-tabs button:hover {
  z-index: 2;
  color: #54ab29;
  border-color: #54ab29;
}

.range-tabs span {
  margin-left: 12px;
  color: rgba(0, 0, 0, 0.65);
}

.trend-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
}

.trend-grid article {
  min-height: 410px;
  position: relative;
}

.trend-grid h3 {
  margin: 0 0 12px;
  padding-left: 10px;
  border-left: 4px solid #10b981;
}

.chart-legend {
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 20px;
}

.chart-legend span::before {
  content: "";
  width: 12px;
  height: 6px;
  display: inline-block;
  margin-right: 6px;
  vertical-align: 1px;
}

.legend-green::before {
  background: var(--green);
}

.legend-gray::before {
  background: #ddd;
}

.line-chart {
  height: 260px;
  position: relative;
  overflow: hidden;
  margin-left: 50px;
  border-left: 1px solid #444;
  border-bottom: 1px solid #ddd;
  background:
    repeating-linear-gradient(to bottom, transparent 0, transparent 64px, #ededed 65px),
    linear-gradient(#fff, #fff);
}

.line-chart::after {
  content: "8,000\A 6,000\A 4,000\A 2,000\A 0";
  white-space: pre;
  position: absolute;
  left: -42px;
  top: -3px;
  height: 260px;
  display: flex;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 65px;
}

.line-chart::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  top: 48px;
  background: var(--green);
  box-shadow: 12px 0 0 var(--green), 24px 0 0 var(--green), 36px 0 0 var(--green), 48px 0 0 var(--green);
}

.line-chart.spike::before {
  inset: 0;
  width: 100%;
  height: 100%;
  background: url("data:image/svg+xml,%3Csvg width='520' height='260' viewBox='0 0 520 260' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='0,258 155,258 178,0 205,258 520,258' fill='none' stroke='%23389e0d' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3Cg fill='white' stroke='%23389e0d' stroke-width='1.5'%3E%3Ccircle cx='0' cy='258' r='2.5'/%3E%3Ccircle cx='155' cy='258' r='2.5'/%3E%3Ccircle cx='178' cy='0' r='2.5'/%3E%3Ccircle cx='205' cy='258' r='2.5'/%3E%3Ccircle cx='260' cy='258' r='2.5'/%3E%3Ccircle cx='320' cy='258' r='2.5'/%3E%3Ccircle cx='380' cy='258' r='2.5'/%3E%3Ccircle cx='440' cy='258' r='2.5'/%3E%3Ccircle cx='500' cy='258' r='2.5'/%3E%3C/g%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  box-shadow: none;
}

.line-chart.spike::after {
  content: "2\A 1.5\A 1\A 0.5\A 0";
}

.line-chart.group-total::after {
  content: "1,800\A 1,500\A 1,200\A 900\A 600\A 300\A 0";
  line-height: 43px;
}

.line-chart.group-new::after {
  content: "1\A 0.8\A 0.6\A 0.4\A 0.2\A 0";
  line-height: 52px;
}

.chart-dates {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 4px 0 0 50px;
  color: #8c8c8c;
  font-size: 12px;
  line-height: 20px;
}

.chart-dates span {
  white-space: nowrap;
}

.construction-page {
  min-height: calc(100vh - 48px);
  display: grid;
  place-items: center;
  padding: 40px;
}

.construction-card {
  width: 420px;
  max-width: 100%;
  padding: 40px 32px;
  text-align: center;
}

.construction-card h2 {
  margin: 0 0 10px;
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

.construction-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 22px;
}

.detail-page {
  display: grid;
  gap: 14px;
  padding: 14px;
}

.task-area {
  padding: 16px 16px 20px;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.detail-panel {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
}

.detail-table-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  margin-bottom: 14px;
}

.help-popover {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.feature-help {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 30;
  width: 390px;
  max-width: min(390px, calc(100vw - 32px));
  margin: 0;
  padding: 11px 12px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.62);
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
}

.feature-help::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 22px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #e9e9e9;
  border-left: 1px solid #e9e9e9;
  background: #fff;
  transform: rotate(45deg);
}

.feature-help p {
  position: relative;
  margin: 0;
  padding-left: 13px;
  color: inherit;
}

.feature-help p + p {
  margin-top: 5px;
}

.feature-help p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #bfbfbf;
}

.feature-help.hidden {
  display: none;
}

.search-control {
  width: 300px;
  height: 32px;
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background: #fff;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.search-control:focus-within {
  border-color: #54ab29;
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.2);
}

.search-control input {
  width: 100%;
  min-width: 0;
  min-height: 30px;
  border: 0;
  border-radius: 0;
  padding: 0 12px;
  color: var(--text-soft);
  background: #fff;
  font-size: 14px;
  line-height: 30px;
  box-shadow: none;
}

.search-control input::placeholder {
  color: var(--placeholder);
}

.search-control input:focus {
  border: 0;
  box-shadow: none;
}

.search-button {
  width: 36px;
  align-self: stretch;
  position: relative;
  flex: 0 0 auto;
  border: 0;
  border-left: 1px solid #d9d9d9;
  background: #fff;
  cursor: pointer;
  transition: background 0.3s;
}

.search-button::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  border: 0;
  background: rgba(0, 0, 0, 0.72);
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='7' cy='7' r='4.8' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M10.8 10.8L14 14' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(-50%, -50%);
}

.search-button::after {
  display: none;
}

.search-button:hover {
  background: #fafafa;
}

.filter-select {
  height: 32px;
  min-height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 0 32px 0 11px;
  color: var(--text-soft);
  background-color: #fff;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(0, 0, 0, 0.45) 50%),
    linear-gradient(135deg, rgba(0, 0, 0, 0.45) 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 13px,
    calc(100% - 11px) 13px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.filter-select:focus {
  border-color: #54ab29;
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.2);
}

.detail-status-filter {
  width: 180px;
}

.detail-status-filter .shared-select-trigger {
  height: 32px;
}

.detail-status-filter .shared-select-menu {
  z-index: 90;
}

.detail-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr 1fr;
  gap: 0;
}

.detail-item {
  min-height: 60px;
  padding: 11px 24px 10px 0;
  border-bottom: 1px solid var(--line);
}

.detail-label {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  line-height: 20px;
}

.detail-value {
  display: block;
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
  max-width: 260px;
  overflow-wrap: anywhere;
}

.detail-item .status-pill {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 0;
}

.detail-item-name .detail-value {
  display: flex;
  align-items: center;
  gap: 8px;
}

.detail-item-name .status-pill {
  flex: 0 0 auto;
}

.detail-item-rule .detail-value {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  max-width: 320px;
}

.group-status-table {
  min-width: 760px;
}

.group-status-table .group-name-col {
  width: 42%;
}

.group-status-table .group-new-name-col {
  width: 42%;
}

.group-status-table .group-status-col {
  width: 16%;
}

.group-status-table th:last-child,
.group-status-table td:last-child {
  position: static;
  right: auto;
  z-index: auto;
  min-width: 0;
  text-align: center;
  box-shadow: none;
}

.group-status-table td:last-child .status-pill {
  justify-content: center;
}

.group-name-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
}

.group-name-status > span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-name-status .status-pill {
  flex: 0 0 auto;
}

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.section-head h2 {
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
}

.section-head.compact {
  margin-bottom: 14px;
}

.list-toolbar {
  display: block;
  gap: 12px;
  margin-bottom: 12px;
  padding: 0;
}

.list-toolbar .filters {
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 0;
}

.task-search-control {
  width: 280px;
}

.detail-search-control {
  width: 300px;
}

.group-search-control {
  width: 100%;
  margin-bottom: 12px;
}

.list-toolbar select {
  min-width: 136px;
}

.list-toolbar select.list-status-filter {
  min-width: 160px;
}

input,
select,
textarea {
  min-height: 32px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  padding: 4px 11px;
  color: var(--text-soft);
  background: #fff;
  font-size: 14px;
  outline: none;
}

/* Shared dropdown baseline. New native selects inherit this visual by default. */
select:not([multiple]),
.ui-select {
  appearance: none;
  padding-right: 30px;
  background-color: #fff;
  background-image: linear-gradient(45deg, transparent 50%, #999 50%), linear-gradient(135deg, #999 50%, transparent 50%);
  background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

select:not([multiple]):hover,
.ui-select:hover {
  border-color: #c9c9c9;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #54ab29;
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.2);
}

input.is-error,
select.is-error,
textarea.is-error,
.rename-editor.is-error,
.datetime-button.is-error,
.outline-action.is-error {
  border-color: var(--red);
}

textarea {
  resize: vertical;
  line-height: 22px;
}

.table-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
}

table {
  width: 100%;
  min-width: 840px;
  border-collapse: separate;
  border-spacing: 0;
}

th,
td {
  height: auto;
  padding: 12px 20px;
  border-bottom: 1px solid #f5f5f5;
  text-align: left;
  white-space: nowrap;
}

th {
  color: #2f333c;
  background: #f5f5f5;
  font-size: 13px;
  font-weight: 700;
}

td {
  color: var(--text);
  background: #fff;
  font-size: 14px;
}

.task-list-table th {
  color: #2f333c;
  font-weight: 700;
}

.task-list-table td {
  color: var(--text);
  font-weight: 400;
}

.task-list-table .task-title {
  color: var(--text);
  font-weight: 500;
}

.task-list-table .task-id {
  color: var(--text-soft);
  font-weight: 400;
}

.task-list-table .task-count,
.task-list-table .task-time,
.task-list-table .rule-meta {
  color: var(--muted);
}

.task-list-table .task-mode {
  color: var(--text);
  font-weight: 400;
}

tbody tr:hover td {
  background: #f5f5f5;
}

.task-list-table th:last-child,
.task-list-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 2;
  min-width: 178px;
  text-align: right;
  box-shadow: -8px 0 12px rgba(15, 23, 42, 0.04);
}

.task-list-table th:last-child {
  z-index: 3;
  background: #f5f5f5;
}

.task-list-table td:last-child {
  background: #fff;
}

.task-list-table tbody tr:hover td:last-child {
  background: #f5f5f5;
}

tr:last-child td {
  border-bottom: 0;
}

.status-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: #667085;
  background: transparent;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.status-pill::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.9;
}

.status-pill.success {
  color: #595959;
}

.status-pill.pending {
  color: #ff7a45;
}

.status-pill.running {
  color: #389e0d;
}

.status-pill.paused {
  color: #1677c2;
}

.status-pill.partial {
  color: #fa541c;
}

.status-pill.failed {
  color: #f5222d;
}

.status-pill.partial[data-tip],
.status-pill.failed[data-tip] {
  cursor: help;
}

.status-pill.partial[data-tip]::after,
.status-pill.failed[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  z-index: 20;
  min-width: 132px;
  max-width: 220px;
  transform: translateX(-50%);
  padding: 6px 8px;
  border-radius: 3px;
  color: #fff;
  background: rgba(0, 0, 0, 0.78);
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  text-align: left;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.status-pill.partial[data-tip]::before,
.status-pill.failed[data-tip]::before {
  z-index: 21;
}

.status-pill.partial[data-tip]:hover::after,
.status-pill.failed[data-tip]:hover::after {
  opacity: 1;
  visibility: visible;
}

.status-pill.cancelled {
  color: #a8adb3;
}

.text-button {
  min-height: 22px;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: #667085;
  background: transparent;
  font-size: 13px;
  font-weight: 400;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.text-button.action-detail {
  color: var(--green);
}

.text-button.action-edit,
.text-button.action-start {
  color: var(--green);
}

.text-button.action-pause {
  color: var(--green);
}

.text-button.action-cancel {
  color: var(--green);
}

.text-button.action-delete {
  color: #8c8c8c;
}

.text-button:hover {
  color: var(--green);
}

.row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.task-id {
  color: #6b7280;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 13px;
}

/* Task list page follows the live management table style. */
.list-page .task-area {
  border: 0;
  border-radius: 0;
  padding: 12px 16px 14px;
  background: #fff;
}

.list-page .section-head {
  min-height: 22px;
  margin-bottom: 10px;
  padding: 0;
  border: 0;
}

.list-page .section-head h2 {
  margin: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
}

.list-page .primary-button {
  min-width: 88px;
  height: 32px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 16px;
  border-radius: 4px;
  border-color: var(--green);
  background: var(--green);
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.list-page .primary-button::before {
  content: "+";
  position: relative;
  top: -1px;
  color: #fff;
  font-size: 18px;
  font-weight: 300;
  line-height: 16px;
}

.list-page .primary-button:hover {
  border-color: #54ab29;
  background: #54ab29;
}

.list-page .search-control {
  height: 32px;
  border-color: #d9d9d9;
  border-radius: 4px;
}

.list-page .search-control input {
  min-height: 30px;
  padding: 0 12px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 30px;
}

.list-page .search-button {
  width: 36px;
  border-left-color: #d9d9d9;
}

.list-page .search-button::before {
  width: 14px;
  height: 14px;
  border-width: 2px;
}

.list-page .search-button::after {
  width: 7px;
  transform: translate(3px, 5px) rotate(45deg);
}

.list-page .filter-select {
  height: 32px;
  min-height: 32px;
  padding-left: 12px;
  color: rgba(0, 0, 0, 0.65);
  background-position:
    calc(100% - 18px) 13px,
    calc(100% - 12px) 13px;
  line-height: 30px;
}

.list-page .help-toggle {
  height: 32px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  color: #486083;
  font-size: 14px;
}

.list-page .table-wrap {
  border: 0;
  border-radius: 0;
  overflow: auto;
}

.task-list-table {
  min-width: 1120px;
}

.task-list-table th,
.task-list-table td {
  padding: 14px 20px;
  border-bottom: 1px solid #f5f5f5;
  vertical-align: middle;
}

.task-list-table th {
  height: 52px;
  color: #2f333c;
  background: #f5f5f5;
  font-size: 14px;
  font-weight: 700;
  line-height: 22px;
}

.task-list-table td {
  height: 72px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.task-list-table tbody tr:hover td {
  background: #f5f5f5;
}

.task-list-table tbody tr:hover td:last-child {
  background: #f5f5f5;
}

.task-list-table th:nth-child(1),
.task-list-table td:nth-child(1) {
  width: 82px;
  padding-left: 20px;
}

.task-list-table th:nth-child(2),
.task-list-table td:nth-child(2) {
  width: 160px;
}

.task-list-table th:nth-child(3),
.task-list-table td:nth-child(3) {
  width: 90px;
}

.task-list-table th:nth-child(4),
.task-list-table td:nth-child(4) {
  width: 230px;
}

.task-list-table th:nth-child(5),
.task-list-table td:nth-child(5),
.task-list-table th:nth-child(6),
.task-list-table td:nth-child(6) {
  width: 170px;
}

.task-list-table th:nth-child(7),
.task-list-table td:nth-child(7) {
  width: 118px;
}

.task-list-table th:last-child,
.task-list-table td:last-child {
  width: 180px;
  min-width: 180px;
  padding-right: 20px;
}

.task-list-table .task-title {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.task-list-table .task-id,
.task-list-table .task-count,
.task-list-table .task-time,
.task-list-table .rule-meta {
  color: rgba(0, 0, 0, 0.45);
}

.task-list-table .task-mode {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.task-list-table .rule-meta {
  margin-top: 4px;
  font-size: 12px;
  line-height: 20px;
}

.task-list-table .rule-token {
  display: inline-flex;
  height: 22px;
  align-items: center;
  padding: 0 5px;
  border: 1px solid #b7eb8f;
  border-radius: 2px;
  color: #389e0d;
  background: #f6ffed;
  line-height: 20px;
}

.task-list-table .status-pill {
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.task-list-table .row-actions {
  gap: 10px;
}

.task-list-table .text-button {
  min-height: 22px;
  color: var(--green);
  font-size: 14px;
  line-height: 22px;
}

.task-list-table .text-button.action-delete {
  color: rgba(0, 0, 0, 0.35);
}

/* Scheduled group rename list aligned with finalized controls. */
.list-page{height:calc(100vh - 48px);padding:12px;background:#f3f4f6;box-sizing:border-box;overflow:hidden}
.list-page .task-area{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) 48px;padding:14px 16px 0;box-sizing:border-box}
.list-page .section-head{display:flex;align-items:center;min-height:30px;margin-bottom:8px}
.list-page .list-toolbar{margin-bottom:12px}
.list-page .list-toolbar .filters{align-items:center;flex-wrap:nowrap}
.list-page .task-search-control{width:300px;flex:0 0 300px}
.list-page .list-status-filter{width:160px;flex:0 0 160px}
.list-page .list-status-filter .shared-select-trigger{width:100%;height:32px}
.list-page .list-status-filter .shared-select-menu{z-index:80}
.list-page .table-wrap{min-height:0;border:1px solid #e4e7ea;overflow:auto;background:#fff}
.list-page .task-list-table th{position:sticky;z-index:3;top:0;height:44px;padding-top:0;padding-bottom:0;background:#f5f6f7}
.list-page .task-list-table td{height:56px;padding-top:8px;padding-bottom:8px}
.list-page .task-list-table th:last-child{z-index:4}
.task-list-footer{position:sticky;z-index:8;bottom:0;display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:-1px;border-top:1px solid #e3e6e8;color:#858c92;background:#fff;box-shadow:0 -3px 10px rgba(0,0,0,.045)}
.task-list-footer>span{position:absolute;left:0}
.task-list-footer>span:first-child{color:#646b71}
.task-list-footer #taskListRange{left:58px;font-size:12px}
.task-list-footer .task-list-pagination{justify-content:center;margin-left:0}
.scheduled-rename-topbar{min-height:58px;padding:0 26px}
.scheduled-rename-titlebar{display:flex;align-items:center;gap:18px;min-width:0}
.scheduled-rename-titlebar>strong{flex:none;color:#30363b;font-size:16px;font-weight:600;line-height:24px}
.scheduled-rename-titlebar .page-company-select{width:220px;margin-left:0}

.log-meta {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.rule-meta {
  display: flex;
  align-items: center;
  gap: 4px;
}

.rule-token {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  height: 20px;
  padding: 0 7px;
  border: 1px solid #9ad18b;
  border-radius: 3px;
  color: var(--green-dark);
  background: var(--green-soft);
  font-size: 12px;
  line-height: 18px;
}

.hidden {
  display: none;
}

.form-section {
  padding: 18px;
  margin-bottom: 14px;
}

label {
  display: grid;
  gap: 7px;
  margin-bottom: 14px;
  color: var(--text);
  font-weight: 400;
}

label input,
label select {
  width: 100%;
  font-weight: 400;
}

.segmented {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 6px;
  margin-bottom: 14px;
  background: #f9fafb;
}

.segmented button {
  min-height: 30px;
  border: 0;
  border-radius: 4px;
  padding: 0 12px;
  color: var(--text-soft);
  background: transparent;
}

.segmented button.active {
  color: var(--green);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 12px;
}

.target-toolbar {
  margin-bottom: 10px;
}

.target-toolbar input {
  flex: 1;
}

.target-list,
.preview-table {
  display: grid;
  gap: 8px;
}

.target-item,
.preview-row {
  min-height: 38px;
  display: grid;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  background: #fff;
}

.target-item {
  grid-template-columns: minmax(0, 1fr) auto;
}

.target-item button {
  border: 0;
  color: var(--red);
  background: transparent;
}

.preview-row {
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr);
}

.preview-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.preview-row b {
  color: var(--green);
}

.create-page {
  min-height: calc(100vh - 126px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: 12px;
  background: var(--bg);
}

.create-meta {
  min-height: 56px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 10px 16px;
  box-sizing: border-box;
  border: 0;
  border-radius: 4px;
  background: #fff;
}

.create-meta label {
  width: min(560px, 100%);
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 400;
}

.create-meta .create-task-name-row {
  display: grid;
  grid-template-columns: 86px minmax(220px, 360px);
  align-items: center;
  gap: 0 12px;
}

.create-task-name-row > span {
  line-height: 32px;
}

.create-task-name-row > input {
  height: 32px;
  min-height: 32px;
}

.create-task-name-row > .field-error {
  grid-column: 2;
  margin-top: 4px;
}

.create-meta label span {
  color: var(--text);
}

.required-mark {
  margin-left: 4px;
  color: #ff4d4f;
  font-style: normal;
  font-weight: 400;
}

.create-canvas {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(260px, 28%) minmax(380px, 38%) minmax(320px, 34%);
  border: 0;
  border-radius: 4px 4px 0 0;
  background: #fff;
  overflow: hidden;
}

.create-column {
  min-width: 0;
  padding: 18px;
}

.create-column + .create-column {
  border-left: 1px solid var(--line);
}

.column-title {
  min-height: 38px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.column-title h2 {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  line-height: 22px;
  font-weight: 600;
}

.column-title span {
  flex: none;
  color: var(--muted);
  font-size: 12px;
}

.column-tools {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}

.outline-action {
  min-height: 32px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  padding: 0 14px;
  color: var(--text-soft);
  background: #fff;
  font-size: 14px;
  font-weight: 400;
}

.outline-action:hover {
  border-color: #54ab29;
  color: #54ab29;
  background: #fff;
}

.target-toolbar.compact {
  width: 100%;
  margin-bottom: 0;
}

.target-toolbar.compact input {
  min-width: 0;
}

.selected-groups {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}

.create-page .target-item {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0 8px 0 12px;
  background: #fff;
  font-size: 14px;
}

.create-page .target-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.create-page .target-item button {
  width: 28px;
  min-height: 28px;
  border-radius: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
}

.create-page .target-item button:hover {
  color: var(--red);
  background: #fff1f0;
}

.rule-column {
  display: grid;
  grid-template-rows: auto auto auto auto 1fr;
  gap: 8px;
  justify-items: stretch;
}

.method-tabs {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(112px, 1fr));
  width: 100%;
  padding: 0;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
  gap: 0;
}

.method-tabs button {
  min-height: 34px;
  position: relative;
  border: 0;
  border-left: 1px solid #e9e9e9;
  border-radius: 0;
  color: var(--text-soft);
  background: transparent;
  font-size: 14px;
  font-weight: 400;
  transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.method-tabs button:first-child {
  border-left: 0;
}

.method-tabs button:hover {
  color: var(--green-dark);
  background: #fafafa;
}

.method-tabs button.active {
  color: var(--green-dark);
  background: #fff;
  font-weight: 500;
  box-shadow: none;
}

.method-tabs button.active::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px 2px 0 0;
  background: var(--green);
}

.method-tabs button:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.2);
}

.mode-panel {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
}

.mode-panel label {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 400;
}

.form-field {
  display: grid;
  gap: 6px;
}

.field-label {
  color: var(--text);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.field-tip {
  margin-top: -2px;
  color: var(--muted);
  font-size: 12px;
  line-height: 18px;
}

.field-error {
  display: none;
  color: var(--red);
  font-size: 12px;
  line-height: 18px;
}

.field-error:not(:empty) {
  display: block;
}

.mode-panel input {
  min-height: 32px;
}

.mode-panel textarea {
  min-height: 68px;
  width: 100%;
}

.rename-editor {
  margin-top: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}

.rename-editor:focus-within {
  border-color: #54ab29;
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.2);
}

.rename-editor-tools {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--line);
  background: #fafafa;
}

.token-chip {
  height: 26px;
  min-width: 74px;
  padding: 0 12px;
  border: 1px solid #e9e9e9;
  border-radius: 3px;
  color: var(--text-soft);
  background: #fff;
  font-size: 13px;
  line-height: 24px;
}

.token-chip:hover {
  color: #54ab29;
  border-color: #54ab29;
  background: #fff;
}

.hidden-rule-value {
  display: none;
}

.rename-editor-body {
  min-height: 94px;
  padding: 18px 24px;
  color: #555;
  background: #fff;
  font-size: 15px;
  font-weight: 400;
  line-height: 32px;
  outline: none;
  word-break: break-all;
}

.rename-editor-body:empty::before {
  content: "请输入文字";
  color: #bfbfbf;
}

.inline-token {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  margin: 0 5px;
  padding: 0 8px 0 10px;
  border: 1px solid #9ad18b;
  border-radius: 3px;
  color: var(--green-dark);
  background: var(--green-soft);
  font-size: 14px;
  line-height: 26px;
  vertical-align: baseline;
}

.inline-token button {
  width: 14px;
  height: 14px;
  border: 0;
  padding: 0;
  color: var(--green-dark);
  background: transparent;
  font-size: 12px;
  line-height: 14px;
}

.setting-block {
  align-self: end;
  display: grid;
  gap: 8px;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
}

.interval-setting {
  align-self: start;
}

.datetime-button {
  height: 32px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  margin: 0;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  padding: 0 34px 0 12px;
  color: var(--text);
  background: #fff;
  font-weight: 400;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}

.datetime-button:hover {
  border-color: var(--green);
}

.datetime-button:focus-within {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(56, 158, 13, 0.12);
}

.datetime-button.is-open {
  border-color: var(--green);
  background: #fbfff8;
}

.datetime-button.is-empty span {
  color: #bfbfbf;
}

.datetime-icon {
  position: absolute;
  right: 11px;
  top: 8px;
  width: 14px;
  height: 14px;
  border: 1px solid #8c8c8c;
  border-radius: 2px;
  pointer-events: none;
}

.datetime-icon::before,
.datetime-icon::after {
  content: "";
  position: absolute;
  background: #8c8c8c;
}

.datetime-icon::before {
  left: 2px;
  right: 2px;
  top: 4px;
  height: 1px;
}

.datetime-icon::after {
  left: 3px;
  top: -3px;
  width: 8px;
  height: 3px;
  border-right: 1px solid #8c8c8c;
  border-left: 1px solid #8c8c8c;
  background: transparent;
}

.datetime-button input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.scheduled-rename-datetime {
  width: 240px;
  height: 32px;
  position: relative;
}

.scheduled-rename-datetime > .bc-single-datetime-picker {
  width: 240px;
  height: 32px;
}

.scheduled-rename-datetime .bc-single-datetime-trigger {
  font-size: 14px;
}

.scheduled-rename-datetime .bc-single-datetime-panel {
  z-index: 240;
}

.scheduled-rename-datetime .bc-single-datetime-trigger.is-error {
  border-color: var(--red);
}

.block-title {
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
}

.interval-range {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.interval-range input {
  width: 58px;
  min-height: 32px;
  text-align: center;
}

.interval-range span,
.interval-range em {
  color: var(--muted);
  font-style: normal;
  white-space: nowrap;
}

.interval-range strong {
  flex: 1 1 150px;
  min-width: 0;
  margin-left: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
}

.time-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

.preview-column {
  display: grid;
  grid-template-rows: auto auto auto;
  align-content: start;
}

.create-page .preview-table {
  width: 100%;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}

.create-page .preview-row {
  min-height: auto;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 6px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 10px 12px;
  background: #fff;
  font-size: 14px;
}

.create-page .preview-row:last-child {
  border-bottom: 0;
}

.create-page .preview-row:hover {
  background: #fafafa;
}

.preview-before,
.preview-after {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  line-height: 20px;
}

.preview-before span,
.preview-after span {
  color: var(--muted);
  font-size: 12px;
}

.preview-before strong,
.preview-after strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: initial;
  white-space: normal;
  word-break: break-all;
  font-size: 14px;
}

.preview-before strong {
  color: rgba(0, 0, 0, 0.65);
  font-weight: 400;
}

.preview-after strong {
  color: var(--green-dark);
  font-weight: 600;
}

.create-footer {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 16px;
  border: 0;
  border-top: 0;
  border-radius: 0 0 4px 4px;
  background: #fff;
  box-shadow: 0 -1px 8px rgba(15, 23, 42, 0.04);
}

.create-footer .primary-button,
.create-footer .ghost-button {
  min-width: 96px;
}

.empty-state {
  min-height: 42px;
  display: grid;
  place-items: center;
  color: var(--muted);
  border: 1px dashed #d0d5dd;
  border-radius: 4px;
  font-size: 14px;
}

.group-modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.35);
}

.group-modal.hidden {
  display: none;
}

.group-modal-panel {
  width: 520px;
  max-width: calc(100vw - 40px);
  padding: 16px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

.group-modal-head,
.group-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.group-modal-head {
  margin-bottom: 12px;
}

.group-modal-head strong {
  font-size: 14px;
}

.group-modal-head button {
  width: 28px;
  height: 28px;
  border: 0;
  color: var(--muted);
  background: transparent;
}

.group-options {
  max-height: 300px;
  overflow: auto;
  display: grid;
  gap: 6px;
  margin: 12px 0 16px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 4px;
}

.group-option {
  min-height: 32px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0 8px;
  border-radius: 4px;
  color: var(--text);
  font-weight: 400;
}

.group-option:hover {
  background: #f5f5f5;
}

.group-option input {
  width: 14px;
  min-height: auto;
}

.group-modal-footer {
  justify-content: flex-end;
}

.active-friend-page {
  padding: 16px;
}

.active-friend-page .feature-shell {
  min-height: calc(100vh - 126px);
  background: #fff;
  border: 1px solid #f0f0f0;
}

.feature-tabs {
  height: 52px;
  display: flex;
  align-items: flex-end;
  gap: 28px;
  padding: 0 24px;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
}

.feature-tabs button {
  height: 52px;
  padding: 0 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  font-weight: 400;
  background: transparent;
}

.feature-tabs button.active {
  color: var(--green);
  border-bottom-color: var(--green);
  font-weight: 500;
}

.friend-panel {
  padding: 16px 24px 28px;
}

.friend-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.friend-summary-grid article {
  min-height: 92px;
  padding: 16px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  background: #fff;
}

.friend-summary-grid span,
.friend-summary-grid em {
  display: block;
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
  font-style: normal;
  line-height: 20px;
}

.friend-summary-grid strong {
  display: block;
  margin: 8px 0 4px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.friend-toolbar {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.friend-toolbar .friend-search-control {
  width: 300px;
}

.friend-toolbar .filter-select {
  width: 152px;
}

.friend-primary {
  height: 40px;
  min-width: 88px;
}

.friend-table-wrap {
  border: 0;
  border-radius: 0;
  min-height: 0;
  overflow: auto;
}

.friend-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.friend-panel[data-friend-panel="tasks"] .friend-table {
  table-layout: auto;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(1) {
  width: 88px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(2) {
  width: 170px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(3),
.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(4) {
  width: 118px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(5) {
  width: 126px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(6) {
  width: 86px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(7) {
  width: 168px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(8) {
  width: 92px;
}

.friend-panel[data-friend-panel="tasks"] .friend-table th:nth-child(9) {
  width: 112px;
}

.friend-table th {
  height: 48px;
  padding: 0 16px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  background: #f5f5f5;
}

.friend-table td {
  height: 56px;
  padding: 0 16px;
  border-bottom: 1px solid #f0f0f0;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  font-weight: 400;
  vertical-align: middle;
}

.friend-panel[data-friend-panel="tasks"] .friend-table td {
  white-space: nowrap;
}

.friend-table tr:hover td {
  background: #fafafa;
}

.friend-main-text {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.progress-text {
  display: block;
  margin-bottom: 6px;
  color: rgba(0, 0, 0, 0.65);
}

.mini-progress {
  width: 86px;
  height: 4px;
  display: block;
  overflow: hidden;
  border-radius: 4px;
  background: #edf0f2;
}

.mini-progress b {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: #52c41a;
}

.friend-table .row-actions {
  justify-content: flex-start;
  gap: 12px;
  white-space: nowrap;
}

.friend-table .text-button,
.number-board .text-button {
  color: var(--green);
  font-size: 14px;
  font-weight: 400;
}

.friend-table .action-delete {
  color: rgba(0, 0, 0, 0.45);
}

.friend-table .action-pause,
.friend-table .action-start {
  color: #2f6fce;
}

.number-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.number-board article,
.settings-layout article {
  min-height: 136px;
  padding: 18px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  background: #fff;
}

.number-board strong,
.settings-layout h3 {
  display: block;
  margin: 0 0 10px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 15px;
  font-weight: 500;
  line-height: 22px;
}

.number-board span,
.number-board em,
.settings-layout p {
  display: block;
  margin: 0 0 8px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
  font-style: normal;
  line-height: 22px;
}

.settings-layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.settings-layout .outline-action {
  height: 32px;
  margin-top: 8px;
  color: var(--green);
}

.modal-shell {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.35);
}

.modal-shell.hidden {
  display: none;
}

.modal-shell.shared-tag-picker-active {
  z-index:1500;
}

.friend-modal-panel {
  width: 680px;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.18);
}

.friend-modal-panel.large {
  width: 860px;
}

.friend-modal-panel.small {
  width: 520px;
}

.friend-modal-panel.number-group-dialog {
  width: 580px;
  border-radius: 3px;
}

.friend-modal-panel.phone-input-dialog {
  width: 600px;
  border-radius: 3px;
}

.friend-modal-panel.tag-select-dialog {
  width: 640px;
  height: 600px;
  border-radius: 3px;
}

.friend-modal-panel.account-picker-dialog,
.friend-modal-panel.wechat-choose-dialog {
  width: 662px;
  height: auto;
  max-height: calc(100vh - 96px);
  border-radius: 3px;
}

.friend-modal-panel.wechat-log-dialog {
  width: 540px;
  min-height: 162px;
  border-radius: 3px;
}

.friend-modal-panel.wechat-small-dialog {
  width: 560px;
  min-height: 292px;
  border-radius: 3px;
}

.friend-modal-panel.script-dialog {
  width: 560px;
  border-radius: 3px;
}

.tag-select-search {
  padding: 12px 20px 4px;
  border-bottom: 0;
}

.tag-select-search .search-control {
  width: 100%;
}

.tag-select-body {
  flex: 1 1 auto;
  padding: 0 20px 12px;
  overflow-y: auto;
}

.tag-group {
  padding-top: 6px;
}

.tag-group-head {
  height: 32px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.tag-group-head > button {
  width: 24px;
  height: 32px;
  display: grid;
  place-items: center;
  align-self: center;
  border: 0;
  padding: 0;
  margin: 0;
  line-height: 0;
  background: transparent;
  cursor: pointer;
}

.tag-group-head > button::before {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1px solid #666;
  border-bottom: 1px solid #666;
  transform: rotate(-45deg);
  transform-origin: center;
  transition: transform 0.15s ease;
}

.tag-group.open .tag-group-head > button::before {
  transform: rotate(45deg);
}

.tag-group-head label {
  min-width: 0;
  height: 32px;
  display: flex;
  align-items: center;
  align-self: center;
  gap: 8px;
  margin: 0;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 20px;
}

.tag-group-head input {
  width: 16px;
  height: 16px;
  min-height: 16px;
  flex: 0 0 16px;
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  outline: 0;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
}

.tag-group-head input:checked {
  border-color: var(--green);
  background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.2 8 3 3 6.6-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat;
}

.tag-group-head input:indeterminate {
  border-color: var(--green);
  background: var(--green) linear-gradient(#fff,#fff) center / 8px 2px no-repeat;
}

.tag-group-head input:focus-visible {
  box-shadow: 0 0 0 2px rgba(42,166,18,.12);
}

.tag-group-head span {
  min-width: 0;
  height: 20px;
  display: flex;
  align-items: center;
  line-height: 20px;
}

.tag-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 8px;
  padding: 4px 0 6px 54px;
}

.tag-group:not(.open) > .tag-chip-list {
  display: none;
}

.smart-top-tags {
  padding: 8px 0 10px 54px;
}


.tag-chip-list button {
  height: 28px;
  padding: 0 10px;
  border: 1px solid #dcdfe6;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 13px;
}

.tag-chip-list button:hover,
.tag-chip-list button.active {
  border-color: var(--green);
  color: var(--green);
  background: #f6ffed;
}

.tag-select-footer {
  height: 54px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 0 16px;
  border-top: 1px solid #e9e9e9;
  background: #fff;
}

.tag-select-footer span {
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
}

.tag-select-footer b {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.tag-select-footer .text-button {
  color: var(--green);
}

.tag-select-footer > div {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.tag-select-footer .ghost-button,
.tag-select-footer .primary-button {
  min-width: 64px;
  height: 32px;
}

.smart-tag-note {
  padding: 8px 0 0 20px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
}

.smart-tag-note label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.smart-tag-note input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.smart-tag-note p {
  margin: 8px 0 0;
  color: rgba(0, 0, 0, 0.45);
}

.number-group-body {
  min-height: 112px;
  display: flex;
  align-items: center;
  padding: 24px 28px;
}

.number-group-body label {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
}

.number-group-body span {
  width: 74px;
  flex: 0 0 74px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  text-align: right;
}

.number-group-body input {
  flex: 1;
  height: 34px;
  padding: 0 12px;
  border: 1px solid #dcdfe6;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.75);
  font-size: 14px;
  outline: 0;
}

.number-group-body input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(44, 166, 20, 0.08);
}

.friend-modal-head,
.friend-modal-footer {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 20px;
  border-bottom: 1px solid #f0f0f0;
}

.friend-modal-head strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 16px;
  font-weight: 500;
}

.friend-modal-head button {
  width: 30px;
  height: 30px;
  border: 0;
  color: rgba(0, 0, 0, 0.45);
  font-size: 22px;
  line-height: 1;
  background: transparent;
}

.friend-modal-body {
  overflow: auto;
  padding: 20px;
}

.friend-modal-footer {
  justify-content: flex-end;
  border-top: 1px solid #f0f0f0;
  border-bottom: 0;
}

.friend-modal-footer .primary-button,
.friend-modal-footer .ghost-button {
  min-width: 88px;
}

.script-dialog-body {
  padding: 24px;
}

.script-textarea-wrap {
  position: relative;
}

.script-textarea-wrap textarea {
  width: 100%;
  height: 158px;
  min-height: 158px;
  padding: 14px 14px 28px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  line-height: 22px;
  resize: vertical;
}

.script-textarea-wrap textarea::placeholder {
  color: #bfbfbf;
}

.script-textarea-wrap span {
  position: absolute;
  right: 12px;
  bottom: 10px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
  line-height: 18px;
}

.phone-input-body {
  padding: 26px 24px 28px;
}

.phone-input-row {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

.phone-input-row.textarea-row {
  align-items: start;
}

.phone-input-row > label {
  display: block;
  margin: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 32px;
  text-align: right;
}

.phone-input-field textarea {
  width: 100%;
  height: 186px;
  min-height: 186px;
  padding: 10px 12px;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 22px;
  resize: vertical;
}

.phone-input-field textarea::placeholder {
  color: #bfbfbf;
}

.phone-input-field p {
  margin: 0;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 24px;
}

.phone-input-row select {
  width: 100%;
  height: 32px;
  min-height: 32px;
  padding: 0 34px 0 12px;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  color: #bfbfbf;
  font-size: 14px;
  background:
    linear-gradient(45deg, transparent 50%, #bfbfbf 50%) calc(100% - 16px) 13px / 7px 7px no-repeat,
    linear-gradient(135deg, #bfbfbf 50%, transparent 50%) calc(100% - 11px) 13px / 7px 7px no-repeat,
    #fff;
  appearance: none;
}

.filter-setting-row {
  margin-bottom: 0;
}

.phone-filter-setting {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 22px;
}

.phone-filter-setting .switch {
  width: 42px;
  height: 22px;
}

.phone-filter-setting .switch::after {
  width: 18px;
  height: 18px;
}

.phone-filter-setting .help-dot {
  margin-left: -4px;
}

.account-picker-search,
.wechat-choose-search {
  height: 54px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
}

.account-picker-search .search-control,
.wechat-choose-search .search-control {
  width: 180px;
}

.account-picker-body,
.wechat-choose-body {
  flex: 0 0 400px;
  height: 400px;
  min-height: 0;
  display: grid;
  grid-template-columns: 460px 200px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.account-picker-left,
.wechat-choose-left {
  min-width: 0;
  border-right: 1px solid #e9e9e9;
}

.account-picker-select-all,
.wechat-select-all {
  height: 40px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 16px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  background: #fafafa;
}

.account-picker-select-all input,
.wechat-select-all input,
.account-picker-item input,
.wechat-choose-item input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.account-picker-list,
.wechat-choose-list {
  height: calc(100% - 40px);
  overflow-y: auto;
}

.account-picker-item,
.wechat-choose-item {
  min-height: 54px;
  display: grid;
  grid-template-columns: 16px 36px minmax(0, 1fr) auto 8px 40px;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 16px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  cursor: pointer;
}

.account-picker-item:hover,
.wechat-choose-item:hover {
  background: #fafafa;
}

.account-picker-item .wx-avatar,
.wechat-choose-item .wx-avatar {
  width: 36px;
  height: 36px;
}

.account-picker-item strong,
.wechat-choose-item strong {
  min-width: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 18px;
}

.account-picker-item em,
.wechat-choose-item em {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  color: #fa8c16;
  font-size: 12px;
  font-style: normal;
  line-height: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-picker-item b,
.wechat-choose-item b {
  min-width: 42px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.45);
  background: #fafafa;
  font-size: 12px;
  font-weight: 400;
  white-space: nowrap;
}

.account-picker-item i,
.wechat-choose-item i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d9d9d9;
}

.account-picker-item i.online,
.wechat-choose-item i.online {
  background: #13c26b;
}

.account-picker-item small,
.wechat-choose-item small {
  color: rgba(0, 0, 0, 0.65);
  font-size: 13px;
  line-height: 20px;
  white-space: nowrap;
}

.account-picker-right,
.wechat-choose-right {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
}

.account-picker-selected-head,
.wechat-selected-head {
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  background: #fafafa;
}

.account-picker-selected-head strong,
.wechat-selected-head strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.account-picker-selected-head button,
.wechat-selected-head button {
  border: 0;
  color: var(--green);
  background: transparent;
  font-size: 14px;
}

.account-picker-selected-list,
.wechat-selected-list {
  flex: 1;
  min-height: 0;
  padding: 8px 12px;
  overflow-y: auto;
}

.account-picker-selected-list article,
.wechat-selected-list article {
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
}

.account-picker-selected-list button,
.wechat-selected-list button {
  width: 20px;
  height: 20px;
  border: 0;
  color: rgba(0, 0, 0, 0.35);
  background: transparent;
  font-size: 18px;
  line-height: 1;
}

.account-picker-footer,
.wechat-choose-footer {
  height: 56px;
  flex: 0 0 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px 0 12px;
  border-top: 1px solid #f0f0f0;
  background: #fff;
}

.account-picker-footer span,
.wechat-choose-footer span {
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
}

.account-picker-footer b,
.wechat-choose-footer b {
  color: var(--green);
  font-weight: 400;
}

.account-picker-footer div,
.wechat-choose-footer div {
  display: flex;
  gap: 10px;
}

.account-picker-footer .primary-button,
.wechat-choose-footer .primary-button,
.account-picker-footer .ghost-button,
.wechat-choose-footer .ghost-button {
  min-width: 64px;
  height: 32px;
  padding: 0 16px;
}

.wechat-log-body {
  padding: 20px;
}

.wechat-log-item {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
}

.wechat-log-item i {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border: 2px solid var(--green);
  border-radius: 50%;
}

.wechat-log-item strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.wechat-log-item span {
  grid-column: 2;
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
  line-height: 20px;
}

.wechat-limit-body,
.wechat-group-body {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px 24px;
  overflow: visible;
}

.wechat-limit-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 32px;
}

.wechat-limit-body label,
.wechat-group-body label {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  line-height: 32px;
  white-space: nowrap;
}

.wechat-limit-body input {
  width: 80px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--green);
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
}

.wechat-limit-body span {
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 32px;
}

.wechat-limit-body .ghost-button {
  height: 32px;
  min-width: 96px;
  padding: 0 14px;
  line-height: 30px;
}

.wechat-group-select {
  width: 360px;
  position: relative;
}

.wechat-group-select > button {
  width: 100%;
  height: 32px;
  display: flex;
  align-items: center;
  padding: 0;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  background: #fff;
}

.wechat-group-select.open > button {
  border-color: var(--green);
  box-shadow: 0 0 0 1px rgba(44, 166, 20, 0.08);
}

.wechat-group-select input {
  width: 100%;
  height: 30px;
  padding: 0 34px 0 12px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: transparent;
  font-size: 14px;
  outline: 0;
}

.wechat-group-select input::placeholder {
  color: #bfbfbf;
}

.wechat-group-select i {
  width: 14px;
  height: 14px;
  position: absolute;
  right: 10px;
  top: 9px;
  background: #bfbfbf;
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5l4 4 4-4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wechat-group-select.open i {
  transform: rotate(180deg);
}

.wechat-group-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: 34px;
  z-index: 90;
  max-height: 268px;
  overflow-y: auto;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);
}

.wechat-group-menu button {
  width: 100%;
  height: 32px;
  display: block;
  padding: 0 12px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  text-align: left;
}

.wechat-group-menu button:hover {
  background: #f5f5f5;
}

.common-dropdown {
  position: relative;
  display: inline-flex;
  min-width: 0;
}

.common-dropdown > button {
  width: 100%;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  line-height: 30px;
  text-align: left;
}

.common-dropdown.open > button,
.common-dropdown > button:hover {
  border-color: var(--green);
}

.common-dropdown > button > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.common-dropdown > button > i {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  background: #bfbfbf;
  mask: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.15s ease, background 0.15s ease;
}

.common-dropdown.open > button > i {
  background: var(--green);
  transform: rotate(180deg);
}

.common-dropdown-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 2px);
  z-index: 55;
  width: 100%;
  max-height: 240px;
  overflow-y: auto;
  padding: 4px 0;
  border: 1px solid #e9e9e9;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
}

.common-dropdown-menu.hidden {
  display: none;
}

.common-dropdown-menu button {
  width: 100%;
  min-height: 32px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  text-align: left;
}

.common-dropdown-menu button:hover,
.common-dropdown-menu button.active {
  color: var(--green);
  background: #eaf4e5;
}

.unit-dropdown {
  width: 72px;
}

.auto-account-dropdown {
  width: 210px;
}

.auto-account-dropdown .common-dropdown-menu {
  top: auto;
  right: 0;
  bottom: calc(100% + 4px);
  left: auto;
  width: 210px;
}

.auto-account-dropdown [data-common-dropdown-value],
.auto-account-dropdown .common-dropdown-menu button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.account-dot {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #d9d9d9;
}

.account-dot.online {
  background: #13c26b;
}

.auto-account-dropdown b,
.account-dropdown-menu b {
  color: #fa8c16;
  font-weight: 400;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.form-grid.two {
  gap: 14px;
}

.field-row {
  display: grid;
  gap: 8px;
  margin: 0;
}

.field-row.full {
  grid-column: 1 / -1;
}

.field-row span,
.check-line,
.modal-section-title {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.field-row em {
  color: #ff4d4f;
  font-style: normal;
}

.field-row input,
.field-row select,
.field-row textarea,
.friend-message-input {
  width: 100%;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 22px;
  background: #fff;
}

.field-row textarea,
.friend-message-input {
  resize: vertical;
}

.radio-line,
.tag-options,
.check-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.radio-line label,
.check-line {
  color: rgba(0, 0, 0, 0.65);
}

.radio-line input,
.check-line input {
  width: 14px;
  min-height: 14px;
  margin-right: 6px;
}

.tag-options button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #b7eb8f;
  border-radius: 4px;
  color: var(--green);
  font-size: 13px;
  background: #f6ffed;
}

.tag-options.inline {
  margin-top: 12px;
}

.upload-box {
  display: grid;
  place-items: center;
  gap: 8px;
  min-height: 138px;
  margin: 16px 0;
  padding: 20px;
  border: 1px dashed #d9d9d9;
  border-radius: 4px;
  background: #fafafa;
  text-align: center;
}

.upload-box strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.upload-box span {
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
}

.detail-grid.compact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid #f0f0f0;
  border-bottom: 0;
}

.detail-grid.compact div {
  min-height: 72px;
  padding: 14px 16px;
  border-right: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}

.detail-grid.compact div:nth-child(3n) {
  border-right: 0;
}

.detail-grid.compact span {
  display: block;
  margin-bottom: 6px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
}

.detail-grid.compact strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.modal-section-title {
  margin: 18px 0 10px;
  font-weight: 500;
}

.modal-table th,
.modal-table td {
  height: 44px;
}

.exception-list {
  display: grid;
  gap: 10px;
}

.exception-list article {
  padding: 14px 16px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  background: #fff;
}

.exception-list strong {
  display: block;
  margin-bottom: 6px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.exception-list span {
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
  line-height: 22px;
}

.friend-origin-shell {
  min-height: calc(100vh - 126px);
  width: 1200px;
  max-width: 100%;
  margin: 0 auto;
  background: #fff;
}

.friend-process-card {
  min-height: 128px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px;
  border-bottom: 1px solid #f0f0f0;
}

.friend-process-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 16px;
}

.friend-process-figure {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
}

.process-ring {
  width: 62px;
  height: 62px;
  position: relative;
  display: block;
  border: 4px solid #eaf7e8;
  border-top-color: var(--green);
  border-radius: 50%;
}

.process-ring i {
  width: 22px;
  height: 22px;
  position: absolute;
  inset: 0;
  margin: auto;
  border-radius: 50%;
  background: #eaf7e8;
}

.friend-process-copy {
  min-width: 0;
  width: 560px;
}

.friend-process-copy h2 {
  margin: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}

.friend-process-copy p {
  margin: 6px 0 0;
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
  line-height: 22px;
}

.friend-process-track {
  width: 360px;
  height: 6px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 8px;
  background: #f0f0f0;
}

.friend-process-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
}

.friend-origin-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.friend-origin-actions .primary-button,
.friend-origin-actions .ghost-button {
  height: 32px;
  min-width: 92px;
  border-radius: 4px;
}

.friend-create-wrap {
  position: relative;
  display: inline-flex;
}

.friend-create-button {
  color: var(--green);
  border-color: var(--green);
}

.friend-create-menu {
  width: 400px;
  position: absolute;
  top: 40px;
  right: 0;
  z-index: 12;
  padding: 12px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.friend-create-menu button {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 10px;
  padding: 8px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #fff;
  text-align: left;
}

.friend-create-menu button:last-child {
  margin-bottom: 0;
}

.friend-create-menu button:hover {
  border-color: var(--green);
}

.friend-create-menu strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 700;
}

.friend-create-menu span {
  color: rgba(0, 0, 0, 0.45);
  font-size: 13px;
  line-height: 20px;
}

.icon-action {
  width: 32px;
  height: 32px;
  position: relative;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background: #fff;
}

.icon-action::before {
  content: "";
  width: 16px;
  height: 16px;
  position: absolute;
  inset: 0;
  margin: auto;
  border: 2px solid rgba(0, 0, 0, 0.45);
  border-radius: 50%;
}

.icon-action::after {
  content: "";
  width: 4px;
  height: 4px;
  position: absolute;
  inset: 0;
  margin: auto;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
}

.friend-view {
  padding-top: 0;
}

.friend-status-filter {
  display: flex;
  align-items: center;
  padding: 16px 16px 6px;
  margin-bottom: 0;
}

.friend-status-filter button {
  min-width: 116px;
  height: 34px;
  margin-right: -1px;
  border: 1px solid #d9d9d9;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  background: #fff;
}

.friend-status-filter button:first-child {
  border-radius: 4px 0 0 4px;
}

.friend-status-filter button:last-child {
  border-radius: 0 4px 4px 0;
}

.friend-status-filter button.active {
  z-index: 1;
  color: var(--green);
  border-color: var(--green);
}

.friend-state-help {
  position: relative;
  margin-left: 8px;
  color: var(--green);
  font-size: 14px;
  cursor: default;
}

.friend-state-help i {
  width: 14px;
  height: 14px;
  display: inline-grid;
  place-items: center;
  margin-left: 3px;
  border: 1px solid var(--green);
  border-radius: 50%;
  font-size: 10px;
  font-style: normal;
}

.friend-state-help em {
  width: 430px;
  position: absolute;
  left: 0;
  top: 24px;
  z-index: 15;
  display: none;
  padding: 10px 12px;
  border-radius: 4px;
  color: #fff;
  font-style: normal;
  line-height: 22px;
  background: rgba(0, 0, 0, 0.78);
}

.friend-state-help:hover em {
  display: block;
}

.friend-origin-toolbar {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: flex-end;
  padding: 0 16px 6px;
  margin-bottom: 0;
}

.friend-origin-search {
  width: 200px;
  margin-left: auto;
}

.friend-origin-toolbar .filter-select {
  width: 160px;
}

.origin-record-table th:nth-child(1) {
  width: 230px;
}

.origin-record-table th:nth-child(2) {
  width: 190px;
}

.origin-record-table th:nth-child(3) {
  width: 170px;
}

.origin-record-table th:nth-child(4) {
  width: 240px;
}

.origin-record-table th:nth-child(5) {
  width: 100px;
}

.origin-record-table th:nth-child(6) {
  width: 100px;
}

.member-cell,
.room-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.member-avatar,
.room-avatar {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #8c8c8c;
  font-size: 13px;
}

.member-avatar.green {
  background: #52c41a;
}

.member-avatar.blue {
  background: #2f6fce;
}

.member-avatar.orange {
  background: #fa8c16;
}

.room-avatar {
  background: #d9d9d9;
  color: rgba(0, 0, 0, 0.45);
}

.member-cell strong,
.room-cell strong {
  display: block;
  overflow: hidden;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-cell span:not(.member-avatar) {
  display: block;
  margin-top: 2px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 12px;
  line-height: 18px;
}

.comment-icon {
  width: 18px;
  height: 18px;
  position: relative;
  border: 0;
  border-radius: 50%;
  background: transparent;
  vertical-align: middle;
  cursor: pointer;
}

.comment-icon::before {
  content: "";
  width: 15px;
  height: 15px;
  position: absolute;
  left: 1px;
  top: 1px;
  border: 0;
  background: rgba(0, 0, 0, 0.45);
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 3C4.9 3 2.5 4.9 2.5 7.3C2.5 8.8 3.4 10.1 4.8 10.9L4.4 13L6.7 11.5C7.1 11.6 7.5 11.6 8 11.6C11.1 11.6 13.5 9.7 13.5 7.3C13.5 4.9 11.1 3 8 3Z' stroke='black' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.comment-icon::after {
  display: none;
}

.comment-icon:hover::before {
  background: var(--green);
}

.muted-cell {
  color: rgba(0, 0, 0, 0.25);
}

.friend-subpage-head {
  height: 42px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.friend-subpage-head strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 600;
}

.friend-subpage-head .primary-button {
  height: 34px;
  margin-left: auto;
}

.task-center-head {
  height: 48px;
  margin: -16px -16px 12px;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.task-center-card {
  height: calc(100vh - 76px);
  display: flex;
  flex-direction: column;
  border: 1px solid #e6e6e6;
  background: #fff;
}

.task-center-toolbar {
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 0 12px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.task-center-status {
  width: 160px;
}

.task-center-date {
  width: 254px;
  height: 32px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid #dcdfe6;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.35);
  background: #fff;
}

.task-center-date.open,
.stats-date-range.open {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(44, 166, 20, 0.08);
}

.task-center-date input {
  width: 92px;
  border: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.45);
  background: transparent;
  font-size: 13px;
  outline: 0;
}

.task-center-date input::placeholder {
  color: rgba(0, 0, 0, 0.28);
}

.task-center-date i {
  width: 14px;
  height: 14px;
  margin-left: auto;
  background: rgba(0, 0, 0, 0.35);
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 1.5v2M10 1.5v2M2.5 5.2h9M3 3h8a1 1 0 0 1 1 1v7.5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.date-range-popover {
  width: 560px;
  position: absolute;
  left: 0;
  top: 38px;
  z-index: 50;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 12px 14px 16px;
  border: 1px solid #e6e6e6;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
}

.date-range-popover.hidden {
  display: none;
}

.date-range-popover section {
  min-width: 0;
}

.date-range-popover header {
  height: 28px;
  display: grid;
  grid-template-columns: 28px 1fr 28px;
  align-items: center;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
}

.date-range-popover header strong {
  text-align: center;
  font-weight: 500;
}

.date-range-popover header button {
  width: 24px;
  height: 24px;
  border: 0;
  color: rgba(0, 0, 0, 0.35);
  background: transparent;
  font-size: 18px;
}

.date-weekdays,
.date-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.date-weekdays span {
  height: 28px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 13px;
  line-height: 28px;
  text-align: center;
}

.date-days button {
  height: 27px;
  border: 0;
  border-radius: 2px;
  color: rgba(0, 0, 0, 0.75);
  background: #fff;
  font-size: 13px;
}

.date-days button:hover {
  background: #f6ffed;
}

.date-days button.active {
  color: var(--green);
  box-shadow: inset 0 0 0 1px var(--green);
}

.date-days button.muted {
  color: rgba(0, 0, 0, 0.25);
  background: #f7f7f7;
}

.task-center-table-wrap {
  flex: 1 1 auto;
  overflow-y: auto;
}

.task-center-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.task-center-table th {
  height: 44px;
  padding: 0 18px;
  color: rgba(0, 0, 0, 0.85);
  background: #f5f5f5;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

.task-center-table td {
  height: 46px;
  padding: 0 18px;
  border-bottom: 1px solid #f0f0f0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 14px;
  font-weight: 400;
}

.task-center-table th:nth-child(1),
.task-center-table td:nth-child(1) {
  width: 32%;
}

.task-center-table th:nth-child(2),
.task-center-table td:nth-child(2) {
  width: 32%;
}

.task-dot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(0, 0, 0, 0.62);
  font-size: 14px;
}

.task-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #52c41a;
}

.task-dot.failed::before {
  background: #ff4d4f;
}

.stats-page-head {
  height: 48px;
  margin: -16px -16px 0;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.stats-page-head > span {
  width: 1px;
  height: 16px;
  background: #d9d9d9;
}

.stats-company-select {
  width: 200px;
}
.stats-company-select .shared-company-filter,
.stats-company-select .shared-select-trigger,
.active-friend-company-select .shared-company-filter,
.active-friend-company-select .shared-select-trigger,
.tag-company-select .shared-company-filter,
.tag-company-select .shared-select-trigger {
  width: 100%;
}

.stats-card {
  height: calc(100vh - 64px);
  display: flex;
  flex-direction: column;
  background: #fff;
}

.stats-tabs {
  height: 54px;
  display: flex;
  align-items: flex-end;
  padding: 0 12px;
  border-bottom: 1px solid #e9e9e9;
  background: #f0f0f0;
}

.stats-tabs button {
  height: 40px;
  min-width: 88px;
  border: 1px solid #d9d9d9;
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
  margin-right: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #f7f7f7;
  font-size: 14px;
}

.stats-tabs button.active {
  color: var(--green);
  font-weight: 600;
  background: #fff;
}

.stats-toolbar {
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.stats-account-filter {
  width: 300px;
}

.stats-date-range {
  width: 252px;
  height: 32px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid #dcdfe6;
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.35);
  background: #fff;
}

.stats-date-range input {
  width: 88px;
  border: 0;
  padding: 0;
  outline: 0;
  color: rgba(0, 0, 0, 0.45);
  background: transparent;
  font-size: 13px;
}

.stats-date-range input::placeholder {
  color: rgba(0, 0, 0, 0.28);
}

.stats-date-range i {
  width: 14px;
  height: 14px;
  margin-left: auto;
  background: rgba(0, 0, 0, 0.35);
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 1.5v2M10 1.5v2M2.5 5.2h9M3 3h8a1 1 0 0 1 1 1v7.5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stats-table-panel {
  flex: 1 1 auto;
  overflow: auto;
}

.stats-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.stats-table th {
  height: 46px;
  padding: 0 18px;
  color: rgba(0, 0, 0, 0.85);
  background: #f5f5f5;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

.stats-table td {
  height: 48px;
  padding: 0 18px;
  border-bottom: 1px solid #f0f0f0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 14px;
  font-weight: 400;
}

.stats-table tbody tr:nth-child(3) td {
  background: #f7f7f7;
}

.stats-avatar-name {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.stats-avatar-name .wx-avatar {
  width: 32px;
  height: 32px;
  border-radius: 3px;
}

.stats-pagination {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-top: 1px solid #e9e9e9;
}

.stats-pagination button {
  min-width: 32px;
  height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
}

.stats-pagination button.active {
  border-color: var(--green);
  color: var(--green);
}

.stats-pagination button:disabled {
  color: rgba(0, 0, 0, 0.25);
  background: #fafafa;
}

.back-link {
  height: 32px;
  border: 0;
  padding: 0;
  color: var(--green);
  background: transparent;
}

.script-setting-page {
  min-height: calc(100vh - 48px);
  padding: 0 12px 12px;
  background: #f0f0f0;
}

.script-head {
  height: 44px;
  margin: 0 -12px;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.script-head strong {
  font-size: 14px;
  font-weight: 500;
}

.script-tip {
  height: 36px;
  display: flex;
  align-items: center;
  margin: 0 -12px;
  padding: 0 16px;
  color: rgba(0, 0, 0, 0.72);
  background: #fff3e1;
  font-size: 14px;
  line-height: 22px;
}

.script-toolbar {
  height: 50px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 12px;
  background: #fff;
}

.script-toolbar .primary-button {
  min-width: 104px;
  height: 32px;
  border-radius: 3px;
}

.add-script-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.add-script-button::before {
  content: "";
  width: 14px;
  height: 14px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 0h2v6h6v2H8v6H6V8H0V6h6z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

.script-toolbar span,
.script-toolbar em {
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  font-style: normal;
  line-height: 22px;
}

.script-toolbar b {
  color: var(--green);
  font-weight: 400;
}

.script-table-wrap {
  margin: 0;
  background: #fff;
}

.script-table {
  width: 100%;
  border-collapse: collapse;
}

.script-table th {
  height: 44px;
  padding: 0 22px;
  color: rgba(0, 0, 0, 0.85);
  background: #f5f5f5;
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  white-space: nowrap;
}

.script-table td {
  height: 46px;
  padding: 0 22px;
  border-bottom: 1px solid #f0f0f0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
}

.script-table .text-button {
  margin-right: 16px;
  color: var(--green);
  font-size: 14px;
}

.script-table .switch {
  width: 44px;
  height: 22px;
  vertical-align: middle;
}

.script-table .switch::after {
  width: 18px;
  height: 18px;
}

.origin-task-table th:nth-child(1) {
  width: 180px;
}

.origin-task-table th:nth-child(2),
.origin-task-table th:nth-child(3) {
  width: 170px;
}

.origin-task-table th:nth-child(4) {
  width: 260px;
}

.origin-task-table th:nth-child(5) {
  width: 168px;
}

.origin-task-table th:nth-child(6) {
  width: 96px;
}

.origin-task-table th:nth-child(7) {
  width: 142px;
}

.friend-stat-line {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.friend-stat-line article {
  min-height: 92px;
  padding: 16px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  background: #fff;
}

.friend-stat-line span {
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
}

.friend-stat-line strong {
  display: block;
  margin-top: 8px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.friend-origin-note {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid #ffe7ba;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff7e6;
}

.add-friend-shell {
  width: 100%;
  min-width: 1100px;
  min-height: calc(100vh - 48px);
  background: #fff;
}

.add-friend-head {
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 0 20px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  z-index: 2;
}

.add-friend-shell.auto-remark-mode .add-friend-head,
.add-friend-shell.auto-remark-mode .add-friend-statusbox,
.add-friend-shell.script-mode .add-friend-head,
.add-friend-shell.script-mode .add-friend-statusbox {
  display: none;
}

.add-friend-shell.subpage-mode .add-friend-head,
.add-friend-shell.subpage-mode .add-friend-statusbox {
  display: none;
}

.add-friend-title {
  color: rgba(0, 0, 0, 0.85);
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
}

.company-select {
  width: 220px;
  position: relative;
  margin-left: 20px;
}

.company-select-trigger {
  width: 100%;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 11px 0 14px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  text-align: left;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.company-select-trigger span {
  min-width: 0;
  overflow: hidden;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.company-select-trigger i {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: rgba(0, 0, 0, 0.45);
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.15s ease, background 0.15s ease;
}

.company-select.open .company-select-trigger,
.company-select-trigger:hover {
  border-color: var(--green);
}

.company-select.open .company-select-trigger {
  box-shadow: none;
}

.company-select.open .company-select-trigger i {
  background: var(--green);
  transform: rotate(180deg);
}

.company-select-menu {
  width: 100%;
  position: absolute;
  left: 0;
  top: 34px;
  z-index: 40;
  padding: 0;
  border: 1px solid #e9e9e9;
  border-radius: 0 0 3px 3px;
  background: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}

.company-select-menu.hidden {
  display: none;
}

.company-select-menu button {
  width: 100%;
  height: 34px;
  display: block;
  padding: 0 14px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  text-align: left;
}

.company-select-menu button:hover {
  color: var(--green);
  background: #f3f8ef;
}

.company-select-menu button.active {
  color: var(--green);
  background: #eaf4e5;
}

.add-friend-statusbox {
  height: 80px;
  margin: 12px 12px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #e9e9e9;
  border-bottom: 0;
  background: linear-gradient(132deg, #fff, #f5f9ff 46%, #fff);
}

.status-run-icon,
.status-pause-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border: 2px solid #77c65e;
  border-radius: 50%;
  position: relative;
  background: #f7fff2;
}

.status-pause-icon {
  border-color: #ffad3a;
  background: #fff8eb;
}

.status-run-icon::before,
.status-pause-icon::before {
  content: "";
  width: 26px;
  height: 26px;
  position: absolute;
  left: 50%;
  top: 50%;
  border: 2px solid #31b411;
  border-radius: 50%;
  background: #36b51d;
  transform: translate(-50%, -50%);
}

.status-pause-icon::before {
  border-color: #fa9b1d;
  background: #fa9b1d;
}

.status-pause-icon::after {
  content: "";
  width: 4px;
  height: 11px;
  position: absolute;
  left: 50%;
  top: 50%;
  border-right: 3px solid #fff;
  border-left: 3px solid #fff;
  transform: translate(-50%, -50%);
}

.status-run-icon::after {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50% 50% 50% 0;
  background: #fff;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.add-friend-statusbox.paused .status-run-icon {
  border-color: #ffad3a;
  background: #fff8eb;
}

.add-friend-statusbox.paused .status-run-icon::before {
  border-color: #fa9b1d;
  background: #fa9b1d;
}

.add-friend-statusbox.paused .status-run-icon::after {
  width: 4px;
  height: 11px;
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  border-right: 3px solid #fff;
  border-left: 3px solid #fff;
  border-radius: 0;
  background: transparent;
  transform: translate(-50%, -50%);
}

.add-friend-status-copy {
  min-width: 0;
  flex: 1;
}

.add-friend-status-copy strong {
  display: block;
  margin-bottom: 3px;
  color: #52c41a;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

.status-pause-icon + .add-friend-status-copy strong,
.add-friend-statusbox.paused .add-friend-status-copy strong {
  color: #fa8c16;
}

.add-friend-status-copy p {
  margin: 0;
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
  line-height: 22px;
}

.add-friend-status-copy .text-button {
  color: var(--green);
}

.add-friend-status-copy .text-button:hover {
  color: #238b0d;
}

.add-friend-status-copy i {
  display: inline-block;
  width: 1px;
  height: 14px;
  margin: 0 8px;
  vertical-align: -2px;
  background: #d8d8d8;
}

.add-friend-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.add-friend-actions .ghost-button {
  height: 32px;
  min-width: 108px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-color: #d9d9d9;
  background: #fff;
  color: rgba(0, 0, 0, 0.65);
}

.add-friend-actions .ghost-button::before {
  content: "";
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: rgba(0, 0, 0, 0.65);
}

.add-friend-actions .action-power::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 1.5v4.4M4 3.1A5 5 0 1 0 10 3.1' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.add-friend-actions .action-calendar::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='3' width='10' height='9' rx='1.2' fill='none' stroke='black' stroke-width='1.2'/%3E%3Cpath d='M4.5 1.8v2.4M9.5 1.8v2.4M2.2 5.5h9.6' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.add-friend-actions .action-chart::before {
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.2 11.5h9.6M3.5 9V6.8M7 9V3.8M10.5 9V5.2' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.add-friend-view {
  height: calc(100vh - 200px);
  min-height: 520px;
  margin: 0 12px 12px;
  display: grid;
  grid-template-columns: 240px minmax(690px, 1fr) 340px;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #e9e9e9;
  background: #fff;
}

.add-friend-view.hidden,
.add-friend-sub.hidden,
.auto-remark-page.hidden {
  display: none;
}

.add-friend-view::before {
  content: "";
  display: none;
}

.phone-main-panel {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: #fff;
}

.phone-group-panel,
.wechat-setting-panel {
  min-width: 0;
  min-height: 0;
  border-right: 1px solid #e9e9e9;
  background: #fff;
}

.wechat-setting-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  border-right: 0;
  border-left: 1px solid #e9e9e9;
}

.group-top {
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
  background: #fff;
}

.group-top strong {
  color: #222333;
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}

.group-top span {
  color: rgba(0, 0, 0, 0.45);
}

.group-add-row {
  padding: 16px 16px 8px;
}

.group-add-row button {
  width: 100%;
  height: 36px;
  border: 1px dashed #d9d9d9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
}

.group-add-row button:hover {
  color: var(--green);
  border-color: var(--green);
}

.phone-group-list {
  height: calc(100% - 104px);
  padding: 0 16px 16px;
  overflow-y: auto;
}

.phone-group-item {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  margin-bottom: 4px;
  padding: 0 8px;
  border-radius: 4px;
  color: #222333;
  background: #fff;
  transition: background 0.15s ease, color 0.15s ease;
}

.phone-group-item > button:first-child {
  min-width: 0;
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  border: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  text-align: left;
}

.phone-group-item.is-editing > button:first-child::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  margin-right: 7px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.2 4.8C2.2 4.1 2.7 3.6 3.4 3.6H6L7.2 5H12.6C13.3 5 13.8 5.5 13.8 6.2V11.8C13.8 12.5 13.3 13 12.6 13H3.4C2.7 13 2.2 12.5 2.2 11.8V4.8Z' stroke='black' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.group-rename-input {
  min-width: 0;
  min-height: 30px;
  height: 30px;
  flex: 1;
  padding: 0 8px;
  border: 1px solid var(--green);
  border-radius: 3px;
  color: rgba(0, 0, 0, 0.85);
  background: #fff;
  font-size: 14px;
  line-height: 28px;
}

.phone-group-item.is-editing .group-more {
  display: none;
}

.phone-group-item span {
  min-width: 0;
  position: relative;
  padding-left: 22px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.phone-group-item span::before {
  content: "";
  width: 15px;
  height: 15px;
  position: absolute;
  left: 0;
  top: 4px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.2 4.8C2.2 4.1 2.7 3.6 3.4 3.6H6L7.2 5H12.6C13.3 5 13.8 5.5 13.8 6.2V11.8C13.8 12.5 13.3 13 12.6 13H3.4C2.7 13 2.2 12.5 2.2 11.8V4.8Z' stroke='black' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.phone-group-item span::after {
  display: none;
}

.phone-group-item:hover {
  background: #fafafa;
}

.phone-group-item.active {
  color: var(--green);
  background: #eaf2ff;
}

.group-more {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 0;
  color: var(--green);
  background: transparent;
  opacity: 0;
  position: relative;
}

.phone-group-item:hover .group-more,
.phone-group-item.active .group-more {
  opacity: 1;
}

.group-more::before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  background: currentColor;
  box-shadow: -5px 0 0 currentColor, 5px 0 0 currentColor;
  transform: translate(-50%, -50%);
}

.group-menu {
  position: absolute;
  right: -38px;
  top: 28px;
  z-index: 35;
  width: 88px;
  padding: 8px 0;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.group-menu button {
  width: 100%;
  height: 34px;
  display: block;
  padding: 0 16px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  text-align: left;
}

.group-menu button:hover {
  background: #f5f5f5;
}

.phone-group-list b {
  color: #888999;
  font-weight: 400;
  font-size: 12px;
}

.phone-main-toolbar {
  min-height: 54px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid #e9e9e9;
}

.phone-main-toolbar .primary-button,
.phone-main-toolbar .ghost-button {
  height: 32px;
  padding: 0 15px;
  white-space: nowrap;
}

.phone-main-toolbar .add-phone-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
}

.phone-main-toolbar .add-phone-button::before {
  content: "";
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2.2V11.8M2.2 7H11.8' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.phone-main-toolbar .friend-origin-search {
  width: 150px;
  margin-left: auto;
}

.phone-main-toolbar .filter-select {
  width: 110px;
}

.repeat-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
  white-space: nowrap;
}

.friend-status-tabs {
  display: inline-flex;
  align-items: center;
  height: 32px;
  margin-left: auto;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  overflow: hidden;
  background: #fff;
}

.friend-status-tabs button {
  min-width: 78px;
  height: 30px;
  padding: 0 14px;
  border: 0;
  border-right: 1px solid #e9e9e9;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
}

.friend-status-tabs button:last-child {
  border-right: 0;
}

.friend-status-tabs button.active {
  color: var(--green);
  box-shadow: inset 0 0 0 1px var(--green);
}

.filter-icon-button {
  width: 32px;
  height: 32px;
  position: relative;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  background: #fff;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.filter-icon-button::before {
  content: "";
  width: 16px;
  height: 16px;
  position: absolute;
  left: 7px;
  top: 7px;
  border: 0;
  background: rgba(0, 0, 0, 0.65);
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.5 3.5H13.5L9.5 8.2V12.2L6.5 13.5V8.2L2.5 3.5Z' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.filter-icon-button::after {
  display: none;
}

.filter-icon-button:hover {
  border-color: var(--green);
  background: #f6ffed;
}

.filter-icon-button:hover::before {
  background: var(--green);
}

.friend-popover {
  position: absolute;
  z-index: 30;
  min-width: 240px;
  padding: 12px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.filter-popover {
  top: 48px;
  right: 12px;
}

.filter-popover.right {
  top: 48px;
  right: 16px;
}

.friend-popover label {
  display: block;
  margin-bottom: 10px;
  color: rgba(0, 0, 0, 0.65);
}

.friend-popover select {
  width: 100%;
  height: 32px;
  margin-top: 6px;
}

.friend-popover .active-friend-filter-select {
  width: 100%;
  display: block;
  margin-top: 6px;
}

.friend-popover .active-friend-filter-select .shared-select-trigger {
  height: 32px;
  color: rgba(0, 0, 0, 0.65);
}

.friend-popover .active-friend-filter-select .shared-select-menu {
  z-index: 45;
  display: block;
}

.friend-popover .active-friend-filter-select .shared-select-menu.hidden {
  display: none;
}

.friend-popover div {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.friend-popover .primary-button,
.friend-popover .ghost-button {
  height: 30px;
  padding: 0 12px;
}

.batch-menu {
  right: 12px;
  bottom: 44px;
  min-width: 120px;
  padding: 6px;
}

.batch-menu button,
.row-more-menu button {
  width: 100%;
  height: 34px;
  border: 0;
  border-radius: 0;
  padding: 0 16px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  text-align: left;
  background: #fff;
}

.batch-menu button:hover,
.row-more-menu button:hover {
  background: #f5f5f5;
}

.add-phone-table th {
  height: 42px;
  padding: 10px 12px;
  background: #fafafa;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
  white-space: nowrap;
}

.add-phone-table td {
  height: 68px;
  padding: 9px 12px;
  white-space: nowrap;
}

.add-phone-table {
  min-width: 910px;
  table-layout: fixed;
}

.add-phone-table .row-actions {
  flex-wrap: nowrap;
}

.add-phone-table td:first-child strong,
.add-phone-table td:first-child span {
  display: block;
}

.phone-cell {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.phone-cell label,
.wechat-list label {
  display: inline-flex;
  align-items: center;
}

.phone-cell input,
.wechat-list input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--green);
}

.link-mini {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  display: inline-flex;
  margin-left: 4px;
  padding: 0;
  border: 0;
  border-radius: 2px;
  position: relative;
  background: transparent;
  cursor: pointer;
}

.link-mini::before,
.link-mini::after {
  content: "";
  position: absolute;
  border: 0;
  background: rgba(0, 0, 0, 0.45);
}

.link-mini::before {
  width: 15px;
  height: 15px;
  left: 0;
  top: 0;
  mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='5.2' y='3.2' width='7.6' height='8.6' rx='1.2' stroke='black' stroke-width='1.3'/%3E%3Cpath d='M3.2 5.5V12.8H10.2' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.link-mini::after {
  display: none;
}

.link-mini:hover::before {
  background: var(--green);
}

.friend-state {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--green);
  font-size: 14px;
}

.friend-state::before {
  content: "";
  width: 12px;
  height: 12px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.friend-state.success::before {
  content: "✓";
  align-items: center;
  justify-content: center;
  display: inline-flex;
  font-size: 10px;
  line-height: 1;
}

.friend-state.waiting::before {
  background: radial-gradient(circle, currentColor 0 35%, transparent 36%);
}

.friend-state.todo {
  color: rgba(0, 0, 0, 0.45);
}

.friend-state.todo::before {
  background: transparent;
}

.friend-state.assign {
  color: #ff6b2c;
}

.friend-state.assign::before {
  border-color: currentColor;
  background: radial-gradient(circle, currentColor 0 28%, transparent 30%);
}

.assign-wechat {
  color: rgba(0, 0, 0, 0.45);
  font-size: 14px;
}

.phone-row-action {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.phone-row-action > span {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  white-space: nowrap;
}

.phone-row-menu {
  position: fixed;
  z-index: 1200;
  width: 136px;
  padding: 6px 0;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
}

.phone-row-menu button {
  width: 100%;
  height: 34px;
  padding: 0 14px;
  border: 0;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  font-size: 14px;
  text-align: left;
}

.phone-row-menu button:hover {
  background: #f5f5f5;
}

[data-toggle-phone-row-menu].menu-open {
  border-color: var(--green);
}

[data-toggle-phone-row-menu].menu-open::before {
  background: var(--green);
  box-shadow: -5px 0 0 var(--green), 5px 0 0 var(--green);
}

.add-phone-table tr[data-row-status="未执行"]:hover,
.add-phone-table tr[data-row-status="未执行"].selected {
  outline: 1px solid #9ec5ff;
  outline-offset: -1px;
  background: #fff;
}

.add-phone-table td:nth-child(2) span,
.phone-cell span {
  display: block;
  margin-top: 5px;
  color: #888999;
  font-size: 12px;
  line-height: 20px;
}

.phone-info {
  min-width: 0;
}

.phone-main-line {
  height: 22px;
  display: flex;
  align-items: center;
  min-width: 0;
}

.phone-main-line strong {
  max-width: 132px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wechat-account-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.wechat-account-cell strong {
  max-width: 130px;
  overflow: hidden;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wx-avatar {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  position: relative;
  overflow: hidden;
  border-radius: 5px;
  background: #e9e9e9;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
}

.wx-avatar.red {
  background:
    radial-gradient(circle at 76% 24%, #ffd777 0 11%, transparent 12%),
    linear-gradient(135deg, transparent 0 48%, #c15f24 49% 64%, transparent 65%),
    linear-gradient(155deg, transparent 0 58%, #7f4a2c 59% 73%, transparent 74%),
    linear-gradient(180deg, #e85d36 0%, #f7a44b 52%, #f3d57b 100%);
}

.wx-avatar.gray {
  background:
    linear-gradient(135deg, transparent 0 50%, #bfc7cc 51% 66%, transparent 67%),
    linear-gradient(160deg, transparent 0 58%, #d7dde0 59% 75%, transparent 76%),
    linear-gradient(180deg, #f7f8f9 0%, #e7ecef 52%, #cfd6da 100%);
  position: relative;
}

.wx-avatar.gray::before {
  display: none;
}

.wx-avatar.gray::after {
  display: none;
}

.wx-avatar.photo {
  background:
    radial-gradient(circle at 78% 22%, #ffeaa1 0 10%, transparent 11%),
    linear-gradient(135deg, transparent 0 45%, #35b987 46% 62%, transparent 63%),
    linear-gradient(158deg, transparent 0 56%, #2d8fb9 57% 72%, transparent 73%),
    linear-gradient(180deg, #7bc8ff 0%, #95e4d0 54%, #e9d56b 100%);
}

.wx-avatar.photo2 {
  background:
    radial-gradient(circle at 22% 24%, #d6fff1 0 12%, transparent 13%),
    linear-gradient(135deg, transparent 0 50%, #4268de 51% 68%, transparent 69%),
    linear-gradient(160deg, transparent 0 58%, #1e9fcc 59% 74%, transparent 75%),
    linear-gradient(180deg, #a5f2cc 0%, #73cceb 52%, #415ee3 100%);
}

.wx-avatar.pale {
  background:
    radial-gradient(circle at 70% 22%, #ffffff 0 11%, transparent 12%),
    linear-gradient(135deg, transparent 0 48%, #c8cdd1 49% 64%, transparent 65%),
    linear-gradient(160deg, transparent 0 57%, #e3e6e8 58% 75%, transparent 76%),
    linear-gradient(180deg, #ffffff 0%, #eeeeee 48%, #d5d8db 100%);
}

.wx-avatar.mint {
  background:
    radial-gradient(circle at 76% 22%, #fff4a8 0 10%, transparent 11%),
    linear-gradient(135deg, transparent 0 45%, #18a78b 46% 61%, transparent 62%),
    linear-gradient(158deg, transparent 0 57%, #63d3a5 58% 74%, transparent 75%),
    linear-gradient(180deg, #baf4df 0%, #78dfcf 51%, #31a6ba 100%);
}

.wx-avatar.violet {
  background:
    radial-gradient(circle at 24% 22%, #f9dcff 0 11%, transparent 12%),
    linear-gradient(135deg, transparent 0 47%, #6b58c9 48% 64%, transparent 65%),
    linear-gradient(158deg, transparent 0 57%, #c764b8 58% 74%, transparent 75%),
    linear-gradient(180deg, #d9ccff 0%, #9c83e8 52%, #5368c7 100%);
}

.wx-avatar.rose {
  background:
    radial-gradient(circle at 76% 24%, #fff3c4 0 10%, transparent 11%),
    linear-gradient(135deg, transparent 0 46%, #e15587 47% 63%, transparent 64%),
    linear-gradient(158deg, transparent 0 57%, #9655c8 58% 74%, transparent 75%),
    linear-gradient(180deg, #ffc5d8 0%, #f18da7 51%, #9b65d5 100%);
}

.wx-avatar.sky {
  background:
    radial-gradient(circle at 72% 23%, #dffcff 0 10%, transparent 11%),
    linear-gradient(135deg, transparent 0 46%, #247fc5 47% 63%, transparent 64%),
    linear-gradient(158deg, transparent 0 57%, #25b6b2 58% 74%, transparent 75%),
    linear-gradient(180deg, #a9e8f5 0%, #59c9dc 50%, #3574c6 100%);
}

.wx-avatar.tiny {
  width: 40px;
  height: 40px;
  background:
    radial-gradient(circle at 72% 24%, #e9ffff 0 10%, transparent 11%),
    linear-gradient(135deg, transparent 0 46%, #3857be 47% 63%, transparent 64%),
    linear-gradient(160deg, transparent 0 56%, #21a6ad 57% 72%, transparent 73%),
    linear-gradient(180deg, #bceef2 0%, #6bcbd0 52%, #435bc0 100%);
}

.empty-dash {
  color: rgba(0, 0, 0, 0.65);
  font-weight: 600;
}

.friend-batchbar,
.wechat-batchbar {
  height: 40px;
  position: sticky;
  bottom: 12px;
  z-index: 18;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 12px 12px;
  padding: 0 9px;
  border: 1px solid #e9e9e9;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
}

.friend-phone-pagination,
.friend-wechat-pagination,
.managed-wechat-pagination {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
}

.wechat-setting-panel > .friend-wechat-pagination {
  flex: 0 0 34px;
  justify-content: flex-end;
  margin-left: 0;
  padding: 0 14px;
  border-top: 1px solid #f0f0f0;
  background: #fff;
  box-sizing: border-box;
}

.friend-phone-pagination button,
.friend-wechat-pagination button,
.managed-wechat-pagination button {
  min-width: 28px;
  height: 28px;
  padding: 0 7px;
  border: 1px solid #ddd;
  border-radius: 3px;
  color: #666;
  background: #fff;
}

.friend-phone-pagination button.active,
.friend-wechat-pagination button.active,
.managed-wechat-pagination button.active {
  border-color: var(--green);
  color: var(--green);
}

.friend-phone-pagination button:disabled,
.friend-wechat-pagination button:disabled,
.managed-wechat-pagination button:disabled {
  color: #bbb;
  background: #f7f7f7;
}

.managed-wechat-pagination span {
  min-width: 24px;
  color: #999;
  text-align: center;
}

.friend-batchbar b,
.wechat-batchbar b {
  color: var(--green);
  font-weight: 400;
}

.friend-batchbar button:not(.text-button) {
  height: 30px;
  padding: 0 14px;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
}

.friend-batchbar button:not(.text-button):disabled {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  cursor: not-allowed;
}

.friend-batchbar button:not(.text-button):not(:disabled) {
  border-color: var(--green);
  color: var(--green);
  background: #fff;
  cursor: pointer;
}

.friend-batchbar button:not(.text-button):not(:disabled):hover {
  background: #f6ffed;
}

.friend-phone-tag-dropdown {
  position: relative;
}

.friend-phone-tag-dropdown > button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.friend-phone-tag-dropdown > button i {
  width: 6px;
  height: 6px;
  margin-top: 3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(225deg);
}

.friend-phone-tag-dropdown.open > button i {
  margin-top: -3px;
  transform: rotate(45deg);
}

.friend-phone-tag-menu {
  left: 0;
  bottom: 38px;
  min-width: 136px;
  padding: 4px 0;
}

.friend-batchbar .friend-phone-tag-menu button {
  width: 100%;
  height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 0;
  color: rgba(0, 0, 0, 0.65);
  text-align: left;
  white-space: nowrap;
  background: #fff;
}

.friend-batchbar .friend-phone-tag-menu button:hover {
  color: var(--green);
  background: #f6ffed;
}

.add-phone-table td:first-child strong {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.add-phone-table td:first-child span {
  margin-top: 3px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 12px;
}

.soft-tag {
  display: inline-block;
  min-width: 48px;
  height: 22px;
  padding: 0 8px;
  border: 1px solid #b7eb8f;
  border-radius: 2px;
  color: var(--green);
  font-size: 12px;
  line-height: 20px;
  background: #f6ffed;
}

.soft-tag.blue {
  color: #2f6fce;
  border-color: #adc6ff;
  background: #f0f5ff;
}

.wechat-mini {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 160px;
  color: rgba(0, 0, 0, 0.65);
}

.wechat-setting-head {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
}

.wechat-setting-head strong {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
}

.wechat-setting-head button {
  border: 0;
  color: var(--green);
  background: transparent;
}

.wechat-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
}

.wechat-search .search-control {
  width: 100%;
}

.wechat-list {
  flex: 1;
  min-height: 0;
  padding: 4px 12px 12px;
  overflow-y: auto;
}

.wechat-list article {
  position: relative;
  min-height: 64px;
  display: grid;
  grid-template-columns: 18px 40px minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-radius: 0;
  cursor: pointer;
}

.row-more-menu {
  position: absolute;
  right: 0;
  top: 38px;
  z-index: 20;
  width: 148px;
  padding: 8px 0;
  border: 1px solid #e9e9e9;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.wechat-list article:hover {
  background: transparent;
}

.wechat-list article div {
  min-width: 0;
}

.wechat-list strong,
.wechat-list em {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wechat-list strong {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 400;
}

.wechat-list em {
  margin-top: 3px;
  color: rgba(0, 0, 0, 0.45);
  font-size: 12px;
  font-style: normal;
}

.wechat-list b {
  color: #ff4d4f;
  font-size: 12px;
  font-weight: 400;
  white-space: nowrap;
}

.wechat-list article.is-enabled b {
  color: var(--green);
}

.wechat-list article.is-disabled b {
  color: #ff4d4f;
}

.wechat-panel-title {
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
}

.wechat-panel-title span {
  color: rgba(0, 0, 0, 0.85);
}

.wechat-panel-title button,
.wechat-batchbar > button:last-of-type {
  height: 28px;
  padding: 0 12px;
  border: 1px solid var(--green);
  border-radius: 3px;
  color: var(--green);
  background: #fff;
}

.wechat-batchbar {
  height: 40px;
  flex: 0 0 40px;
  margin-top: auto;
  justify-content: flex-start;
  padding: 0 14px;
  border-top: 1px solid #e9e9e9;
  background: #fff;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.04);
}

.wechat-batchbar span {
  color: rgba(0, 0, 0, 0.65);
  font-size: 13px;
  white-space: nowrap;
}

.wechat-batchbar .text-button {
  padding: 0;
  color: var(--green);
  font-size: 14px;
  background: transparent;
}

.offline-badge {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  color: #fff;
  background: linear-gradient(145deg, #ff6a5f, #ee3f3a);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
  font-size: 13px;
  font-weight: 500;
}

.more-dot {
  width: 24px;
  height: 24px;
  position: relative;
  border: 1px solid #e9e9e9;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

.more-dot::before {
  content: "";
  width: 3px;
  height: 3px;
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  background: #bfbfbf;
  box-shadow: -5px 0 0 #bfbfbf, 5px 0 0 #bfbfbf;
  transform: translate(-50%, -50%);
}

.more-dot:hover {
  border-color: var(--green);
}

.more-dot:hover::before {
  background: var(--green);
  box-shadow: -5px 0 0 var(--green), 5px 0 0 var(--green);
}

.wechat-dot {
  width: 6px;
  height: 6px;
  position: absolute;
  left: 8px;
  top: 16px;
  border-radius: 50%;
}

.wechat-dot.online {
  background: #52c41a;
}

.wechat-dot.offline {
  background: #888999;
}

.add-friend-sub {
  padding: 16px;
}

.switch {
  width: 44px;
  height: 22px;
  display: inline-block;
  position: relative;
  border-radius: 12px;
  background: #c9c9c9;
  vertical-align: middle;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.switch::after {
  content: "";
  width: 18px;
  height: 18px;
  position: absolute;
  left: 2px;
  top: 2px;
  border-radius: 50%;
  background: #fff;
  transition: left 0.15s ease;
}

.switch.on {
  background: var(--green);
}

.switch.on::after {
  left: 24px;
}

.switch:hover {
  box-shadow: 0 0 0 3px rgba(44, 166, 20, 0.08);
}

.switch:focus-visible {
  outline: 2px solid rgba(44, 166, 20, 0.25);
  outline-offset: 2px;
}

.setting-dialog {
  width: 670px;
}

.setting-dialog .friend-modal-body {
  padding: 18px 20px 14px;
}

.setting-line {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
}

.setting-line span {
  width: 112px;
  flex: 0 0 112px;
  color: rgba(0, 0, 0, 0.85);
  line-height: 20px;
  white-space: nowrap;
}

.setting-line input {
  width: 84px;
  height: 32px;
  padding: 0 12px;
  border-color: #dcdfe6;
  border-radius: 3px;
}

.setting-line em {
  color: rgba(0, 0, 0, 0.45);
  font-style: normal;
}

.setting-line b,
.setting-line p {
  color: rgba(0, 0, 0, 0.45);
  font-weight: 400;
}

.setting-line b {
  white-space: nowrap;
}

.setting-line p {
  max-width: 250px;
  margin: 0 0 0 8px;
  line-height: 20px;
}

.setting-divider {
  height: 1px;
  margin: 8px 0 10px;
  background: #e9e9e9;
}

.tag-switch {
  align-items: flex-start;
  min-height: auto;
  padding-top: 6px;
}

.tag-switch p {
  max-width: 430px;
  margin-left: 0;
  line-height: 22px;
}

.tag-switch .switch {
  flex: 0 0 auto;
  margin-top: 2px;
}

.manage-dialog {
  width: 670px;
}

.manage-setting-list section {
  padding: 18px 0;
  border-bottom: 1px solid #e9e9e9;
}

.manage-setting-list section:last-child {
  border-bottom: 0;
}

.manage-setting-list section div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.manage-setting-list p {
  margin: 10px 0 0;
  color: rgba(0, 0, 0, 0.45);
  line-height: 22px;
}

.manage-setting-list input {
  width: 62px;
  height: 32px;
  margin: 0 6px;
  text-align: center;
}

.low-rate {
  padding: 12px;
  background: #f5f5f5;
}

.auto-remark-page {
  min-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  background: #f0f0f0;
}

.auto-remark-head {
  height: 48px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 14px;
  background: #fff;
  border-bottom: 1px solid #e9e9e9;
}

.back-circle {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-right: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: transparent;
  font-size: 0;
  background: #51629d;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.back-circle::before {
  content: "";
  width: 20px;
  height: 20px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.8 3.8 4.6 10l6.2 6.2M5 10h11' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.8 3.8 4.6 10l6.2 6.2M5 10h11' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.back-circle:hover {
  background: #465896;
  box-shadow: 0 2px 8px rgba(81, 98, 157, 0.22);
}

.back-circle:active {
  transform: translateX(-1px);
}

.back-circle:focus-visible {
  outline: 2px solid rgba(81, 98, 157, 0.22);
  outline-offset: 2px;
}

.auto-remark-scroll {
  width: 1000px;
  max-width: calc(100% - 80px);
  flex: 1 1 auto;
  margin: 14px auto 16px;
  overflow: visible;
}

.auto-card {
  margin-bottom: 14px;
  border: 1px solid #e9e9e9;
  background: #fff;
}

.auto-card-title {
  height: 48px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
}

.auto-card-title strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 500;
}

.auto-form-row {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
}

.auto-form-row.rule-row {
  align-items: start;
}

.auto-card .auto-form-row:last-child {
  border-bottom: 0;
}

.auto-form-row > label {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  line-height: 32px;
}

.muted {
  color: rgba(0, 0, 0, 0.45);
}

.auto-rule-box {
  margin: 0;
  border: 1px solid #e9e9e9;
  background: #fff;
}

.rule-tips {
  padding: 11px 14px;
  color: rgba(0, 0, 0, 0.45);
  border-bottom: 1px solid #e9e9e9;
}

.auto-rule-box p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  min-height: 44px;
  padding: 8px 14px;
  border-bottom: 1px solid #e9e9e9;
  color: rgba(0, 0, 0, 0.65);
  line-height: 28px;
}

.auto-rule-box p:first-of-type {
  display: block;
}

.auto-rule-box p label {
  width: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  margin-right: 16px;
  color: rgba(0, 0, 0, 0.65);
  line-height: 24px;
  cursor: pointer;
  vertical-align: middle;
}

.auto-rule-box p.friend-rule-options {
  display: grid;
  grid-template-columns: 92px max-content max-content;
  align-items: center;
  gap: 16px;
}

.friend-rule-label {
  width: 92px;
  color: rgba(0, 0, 0, 0.65);
  white-space: nowrap;
}

.auto-rule-box p.friend-rule-options label {
  margin: 0;
}

.auto-rule-box input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
  max-width: 14px;
  max-height: 14px;
  margin: 0;
  padding: 0;
  flex: 0 0 14px;
  border: 1px solid #d9d9d9;
  border-radius: 50%;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
}

.auto-rule-box input[type="radio"]:checked {
  border-color: var(--green);
  box-shadow: inset 0 0 0 3px #fff;
  background: var(--green);
}

.auto-rule-box input[type="radio"]:focus-visible {
  outline: 2px solid rgba(43, 168, 13, 0.18);
  outline-offset: 2px;
}

.auto-rule-box p:last-child {
  border-bottom: 0;
}

.auto-rule-box a,
.auto-pull-box a {
  color: var(--green);
}

.message-editor {
  border: 1px solid #e9e9e9;
  background: #fff;
}

.message-editor > div {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  border-bottom: 1px solid #e9e9e9;
}

.message-editor button,
.send-tools button {
  height: 28px;
  padding: 0 10px;
  border: 1px solid #e9e9e9;
  border-radius: 2px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
}

.message-editor a {
  margin-left: auto;
  color: var(--green);
}

.message-editor p {
  min-height: 72px;
  margin: 0;
  padding: 14px 16px;
  color: rgba(0, 0, 0, 0.65);
  line-height: 28px;
  cursor: text;
  outline: 0;
}

.editor-token {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 26px;
  padding: 0 8px;
  border: 1px solid #b7eb8f;
  color: var(--green);
  line-height: 24px;
  background: #f6ffed;
}

.message-editor .editor-token button {
  width: 14px;
  height: 20px;
  min-height: 20px;
  padding: 0;
  border: 0;
  color: var(--green);
  background: transparent;
  line-height: 20px;
}

.message-editor [data-remark-copy] {
  cursor: pointer;
}

.send-flow,
.auto-pull-box {
  border: 1px solid #e9e9e9;
  padding: 12px;
  background: #fff;
}

.send-delay {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 10px;
  background: #f5f5f5;
}

.send-delay + .send-item,
.send-item + .send-delay {
  margin-top: 8px;
}

.send-delay input {
  width: 64px;
  height: 28px;
}

.send-delay .unit-dropdown,
.send-delay .unit-dropdown > button {
  width: 62px;
  height: 28px;
  min-height: 28px;
  line-height: 26px;
}

.send-delay .unit-dropdown > button {
  border: 1px solid #dcdfe6;
  border-radius: 3px;
  padding: 0 8px;
  color: rgba(0, 0, 0, 0.65);
  background: #fff;
  line-height: 26px;
}

.send-delay .unit-dropdown > button:hover,
.send-delay .unit-dropdown.open > button {
  border-color: var(--green);
  color: var(--green);
  background: #fff;
}

.send-delay > button {
  height: 28px;
  border: 0;
  border-radius: 3px;
  color: #fff;
  background: #faad14;
}

.send-item {
  min-height: 60px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  padding: 0 24px;
  border: 1px solid #e9e9e9;
}

.send-item b {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: rgba(0, 0, 0, 0.45);
  text-align: center;
  background: #d9d9d9;
}

.send-item span {
  padding: 8px 12px;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.85);
  background: #fff;
}

.send-item.orange span {
  border: 0;
  background: #fff2e8;
}

.send-tools {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 10px;
  margin-top: 8px;
  background: #f5f5f5;
}

.auto-pull-box {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pull-tabs {
  margin-left: auto;
  display: flex;
  align-items: center;
}

.pull-tabs > button {
  height: 32px;
  padding: 0 16px;
  border: 1px solid #e9e9e9;
  background: #fff;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.pull-tabs > button.active {
  color: var(--green);
  border-color: var(--green);
  background: #f6ffed;
}

.auto-pull-box table {
  width: 100%;
  border-collapse: collapse;
}

.auto-pull-box th {
  height: 40px;
  padding: 0 12px;
}

.auto-remark-footer {
  height: 58px;
  flex: 0 0 auto;
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-top: 1px solid #e9e9e9;
  background: rgba(255, 255, 255, 0.96);
}

.auto-remark-footer .ghost-button,
.auto-remark-footer .primary-button {
  min-width: 74px;
  height: 32px;
}

/* Typography and control polish aligned with the live keyword-tag page. */
body {
  color: rgba(0, 0, 0, 0.65);
  font-size: 14px;
  line-height: 22px;
}

.global-brand {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
}

.global-tools,
.page-tabs,
.mode-switch button,
.nav-grid span,
.primary-button,
.ghost-button,
.wide-button,
.outline-action,
.text-button,
input,
select,
textarea {
  font-size: 14px;
  font-weight: 400;
}

.nav-title {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
}

.nav-grid span {
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  line-height: 20px;
}

.section-head h2,
.column-title h2,
.create-titlebar h1,
.group-modal-head strong {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
}

.detail-label,
.column-title span,
.field-tip,
.log-meta,
.rule-meta,
.group-option small {
  color: rgba(0, 0, 0, 0.45);
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
}

.detail-value,
.task-list-table .task-title,
.task-list-table .task-mode,
.target-item,
.preview-row,
.group-option,
.field-label,
label {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.detail-item-name .detail-value {
  font-weight: 500;
}

.search-control,
.filter-select,
input,
select,
textarea,
.outline-action,
.ghost-button,
.wide-button,
.text-button,
.token-chip,
.rename-editor {
  border-color: #e9e9e9;
}

.search-control input,
.filter-select,
input,
select,
textarea {
  color: rgba(0, 0, 0, 0.65);
}

.search-control input::placeholder,
input::placeholder,
textarea::placeholder {
  color: #bfbfbf;
}

th,
.task-list-table th {
  color: #2f333c;
  font-size: 14px;
  font-weight: 700;
  line-height: 22px;
  background: #f5f5f5;
}

td,
.task-list-table td {
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.task-list-table .task-id,
.task-list-table .task-count,
.task-list-table .task-time,
.task-list-table .rule-meta {
  color: rgba(0, 0, 0, 0.45);
  font-weight: 400;
}

.status-pill {
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.rule-token,
.inline-token {
  font-size: 12px;
  font-weight: 400;
}

@media (max-width: 1100px) {
  .app-shell {
    grid-template-columns: 200px minmax(0, 1fr);
  }

  .create-canvas {
    grid-template-columns: 1fr;
  }

  .create-column + .create-column {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .setting-block {
    align-self: auto;
    margin-bottom: 10px;
  }

  .time-fields {
    grid-template-columns: 1fr;
  }

  .detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Final scheduled rename list viewport and conventional action colors. */
.list-page{height:calc(100vh - 106px)}
.list-page .task-list-table .status-pill::before{width:6px;height:6px;opacity:1}
.list-page .task-list-table .status-pill.pending{color:#ff8243}
.list-page .task-list-table .status-pill.running{color:#389e0d}
.list-page .task-list-table .status-pill.paused{color:#d89614}
.list-page .task-list-table .status-pill.success{color:#00a85a}
.list-page .task-list-table .status-pill.partial{color:#fa8c16}
.list-page .task-list-table .status-pill.failed{color:#f5222d}
.list-page .task-list-table .status-pill.cancelled{color:rgba(0,0,0,.45)}
.list-page .task-list-table .text-button{transition:color .15s ease,opacity .15s ease}
.list-page .task-list-table .text-button.action-detail,
.list-page .task-list-table .text-button.action-edit,
.list-page .task-list-table .text-button.action-start,
.list-page .task-list-table .text-button.action-pause,
.list-page .task-list-table .text-button.action-cancel{color:var(--green)}
.list-page .task-list-table .text-button.action-delete{color:#a2a8ad!important}
.list-page .task-list-table .text-button:hover{color:inherit;text-decoration:underline;text-underline-offset:3px;opacity:.72}

@media (max-width: 1100px) {
  .list-page .task-list-table {
    min-width: 700px;
  }

  .list-page .task-list-table th,
  .list-page .task-list-table td {
    padding-right: 10px;
    padding-left: 10px;
  }

  .list-page .task-list-table th:nth-child(3),
  .list-page .task-list-table td:nth-child(3),
  .list-page .task-list-table th:nth-child(5),
  .list-page .task-list-table td:nth-child(5),
  .list-page .task-list-table th:nth-child(6),
  .list-page .task-list-table td:nth-child(6) {
    display: none;
  }

  .list-page .task-list-table th:last-child,
  .list-page .task-list-table td:last-child {
    width: 150px;
    min-width: 150px;
  }

  .list-page .task-list-table .row-actions {
    gap: 6px;
  }
}

@media (max-width: 760px) {
  body:has(#listPage:not(.hidden)) .app-shell {
    grid-template-columns: minmax(0, 1fr);
  }

  body:has(#listPage:not(.hidden)) .sidebar {
    display: none;
  }

  body:has(#listPage:not(.hidden)) .workspace {
    width: 100%;
  }

  .scheduled-rename-topbar {
    padding: 0 12px;
  }

  .scheduled-rename-titlebar {
    gap: 10px;
  }

  .scheduled-rename-titlebar .page-company-select {
    width: min(190px, 50vw);
  }

  .list-page .task-area {
    padding: 12px 12px 0;
  }

  .list-page .list-toolbar .filters {
    flex-wrap: wrap;
    gap: 8px;
  }

  .list-page .task-search-control {
    width: min(100%, 240px);
    flex: 1 1 180px;
  }

  .list-page .list-status-filter {
    width: 136px;
    flex: 0 0 136px;
  }

  .task-list-footer {
    min-width: 0;
  }
}

/* Shared 选择客户群 component C1.1 */
.customer-group-picker { z-index: 1300; }
.customer-group-picker-panel { width: min(1040px, calc(100vw - 32px)); height: min(710px, calc(100vh - 32px)); padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.customer-group-picker .group-modal-head { height: 54px; flex: 0 0 54px; margin: 0; padding: 0 16px; border-bottom: 1px solid #e8e8e8; }
.customer-group-picker .group-modal-head strong { font-size: 15px; font-weight: 600; }
.customer-group-picker .group-modal-head button { position: relative; }
.customer-group-picker .group-modal-head button::before,
.customer-group-picker .group-modal-head button::after { content: ""; position: absolute; left: 8px; top: 13px; width: 14px; height: 1px; background: #8c8c8c; transform: rotate(45deg); }
.customer-group-picker .group-modal-head button::after { transform: rotate(-45deg); }
.customer-group-picker-body { min-height: 0; flex: 1; display: grid; grid-template-columns: 360px minmax(390px, 1fr) 200px; overflow: hidden; }
.customer-group-picker-body > * { min-width: 0; min-height: 0; overflow: hidden; border-right: 1px solid #e8e8e8; }
.customer-group-picker-body > *:last-child { border-right: 0; }
.customer-group-picker-body > .group-filter-pane { overflow: visible; }
.customer-group-picker .group-filter-pane { position: relative; z-index: 80; display:flex; flex-direction:column; overflow: visible; background: #fff; }
.customer-group-picker .picker-pane-head { padding:0 16px; }
.customer-group-picker .group-result-pane,
.customer-group-picker .group-selected-pane { position: relative; z-index: 1; }
.compact-search { height: 32px; display: flex; border: 1px solid #d9d9d9; border-radius: 2px; background: #fff; }
.compact-search:focus-within { border-color: var(--green); }
.compact-search input { min-width: 0; height: 30px; min-height: 30px; flex: 1; padding: 0 10px; border: 0; outline: 0; font-size: 13px; }
.compact-search button { width: 32px; border: 0; border-left: 1px solid #e5e5e5; background: #fff; position: relative; }
.compact-search button::before { content: ""; position: absolute; width: 10px; height: 10px; border: 1.5px solid #666; border-radius: 50%; left: 9px; top: 8px; }
.compact-search button::after { content: ""; position: absolute; width: 6px; height: 1.5px; background: #666; transform: rotate(45deg); left: 19px; top: 19px; }
.group-account-filter { position: relative; }
.group-account-trigger { width: 100%; height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 10px 0 12px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; font-size: 13px; font-weight: 400; text-align: left; background: #fff; box-sizing: border-box; }
.group-account-trigger span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-account-trigger:focus,
.group-account-filter:focus-within .group-account-trigger { border-color: var(--green); outline: 0; box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.group-account-popover { position: absolute; z-index: 120; left: 0; top: 38px; width: 100%; max-height: 360px; padding: 8px 0 0; border: 1px solid #e5e5e5; border-radius: 3px; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14); box-sizing: border-box; }
.group-account-popover.hidden { display: none; }
.group-account-popover > .compact-search { margin: 0 8px 8px; }
.group-account-list { max-height: 300px; overflow: auto; }
.group-account-item { width: 100%; min-height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 0; text-align: left; background: #fff; }
.group-account-item:hover { background: #f5f5f5; }
.group-account-item.active { background: #edf4ff; }
.group-account-item.group-account-all { min-height: 36px; padding-left: 12px; }
.group-account-item .wx-avatar { display:none; }
.group-account-item > span:last-child,
.group-account-item > span:first-child { min-width: 0; display:flex; align-items:center; gap:4px; }
.group-account-item strong { font-size: 13px; font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-account-item em { color: #fa8c16; font-size: 12px; font-style: normal; }
.picker-pane-head { height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid #e8e8e8; }
.picker-pane-head strong { font-size: 13px; font-weight: 600; }
.picker-pane-head button { padding: 0; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.group-filter-pane .group-filter-block { display: grid; gap: 7px; margin: 10px 16px 0; color: #666; font-size: 13px; }
.group-filter-pane .group-filter-block > span { min-height: 18px; line-height: 18px; }
.group-filter-line { min-width: 0; display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 8px; }
.group-filter-pane select { width: 100%; height: 32px; padding: 0 30px 0 10px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; background: #fff; box-sizing:border-box; }
.group-filter-select { width:100%; min-width:0; height:32px; position:relative; }
.group-filter-select .shared-select-trigger { width:100%; height:32px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 10px 0 12px; border:1px solid #d9d9d9; border-radius:3px; color:#999; font-size:13px; font-weight:400; text-align:left; background:#fff; box-sizing:border-box; }
.group-filter-select .shared-select-trigger span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.group-filter-select.open .shared-select-trigger { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.group-filter-select .shared-select-trigger i,
.group-account-trigger i,
.group-size-trigger i,
.group-tag-trigger i {
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:0;
  background:#999;
  -webkit-mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform:none;
  transition:transform .15s ease,background .15s ease;
}
.group-filter-select.open .shared-select-trigger i { background:var(--green); transform:rotate(180deg); }
.group-filter-select .shared-select-menu { top:34px; z-index:130; width:100%; min-width:100%; padding:4px 0; overflow:hidden; border-color:#e7e7e7; border-radius:3px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.group-filter-select .shared-select-menu button { height:34px; padding:0 12px; color:#666; font-size:13px; line-height:34px; }
.group-filter-pane .compact-search,
.group-filter-pane .group-account-trigger,
.group-filter-pane .group-size-trigger,
.group-filter-pane .group-tag-trigger,
.group-keyword-input {
  height:32px;
  border-radius:3px;
  box-sizing:border-box;
}
.group-keyword-input { min-width:0; display:flex; border:1px solid #d9d9d9; background:#fff; }
.group-keyword-input:focus-within { border-color:var(--green); }
.group-keyword-input input { min-width:0; height:30px; min-height:30px; flex:1; padding:0 10px; border:0; outline:0; color:#777; font-size:13px; }
.group-keyword-input button { width:36px; flex:0 0 36px; border:0; border-left:1px solid #eee; color:var(--green); font-size:18px; line-height:30px; background:#fff; }
.group-keyword-tags { min-height:0; display:flex; flex-wrap:wrap; gap:6px; }
.group-keyword-tags:empty { display:none; }
.group-keyword-tags span { height:26px; display:inline-flex; align-items:center; gap:4px; padding:0 8px; border:1px solid #d9ecd4; border-radius:3px; color:#2f8d22; font-size:12px; background:#f6ffed; box-sizing:border-box; }
.group-keyword-tags button { width:14px; height:14px; padding:0; border:0; color:#6aa35f; line-height:14px; background:transparent; }
.group-filter-pane .compact-search input {
  height:30px;
  min-height:30px;
}
.group-size-picker { position: relative; }
.group-size-trigger { width: 100%; height: 32px; display: flex; align-items: center; justify-content: space-between; gap:10px; padding: 0 10px 0 12px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; font-size: 13px; text-align:left; background: #fff; }
.group-size-trigger:focus,
.group-size-picker:focus-within .group-size-trigger { border-color: var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.group-size-popover { position: absolute; z-index: 150; left: 0; top: 38px; width: 220px; padding: 16px; border: 1px solid #e5e5e5; border-radius: 3px; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12); }
.group-size-popover.hidden { display: none; }
.group-size-popover > div { display: grid; grid-template-columns: 1fr 16px 1fr; align-items: center; gap: 6px; }
.group-size-popover input { width: 100%; height: 32px; min-height: 32px; padding: 0 10px; border: 1px solid #e3e3e3; border-radius: 3px; font-size: 13px; text-align: center; }
.group-size-popover > div > span { color: #999; text-align: center; }
.group-size-popover > button { width: 100%; height: 32px; margin-top: 16px; border: 0; border-radius: 3px; color: #fff; font-size: 13px; background: var(--green); }
.group-tag-picker { position: relative; }
.group-tag-trigger { width: 100%; height: 32px; display: flex; align-items: center; justify-content: space-between; gap:10px; padding: 0 10px 0 12px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; font-size: 13px; text-align:left; background: #fff; }
.group-tag-trigger:focus,
.group-tag-picker:focus-within .group-tag-trigger { border-color: var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.group-tag-popover { position: absolute; z-index: 140; left: 0; top: -72px; width: 568px; max-height: 430px; padding: 12px; overflow: auto; border: 1px solid #e5e5e5; border-radius: 3px; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14); }
.group-tag-popover.hidden { display: none; }
.group-tag-modes { display: none; }
.group-filter-pane .group-tag-modes label { display: inline-flex; grid-template-columns: none; align-items: center; gap: 8px; margin: 0; white-space: nowrap; }
.group-tag-modes input { width: 15px; height: 15px; min-height: 15px; margin: 0; accent-color: var(--green); }
.group-tag-search { margin: 0 0 10px; }
.group-tag-section { padding: 6px 0 8px; }
.group-tag-head { min-height: 28px; display: flex; align-items: center; gap: 4px; }
.group-tag-head > button { width: 20px; height: 24px; border: 0; position: relative; background: transparent; }
.group-tag-head > button::before { content: ""; position: absolute; left: 7px; top: 8px; border: 5px solid transparent; border-left-color: #444; transform-origin: 2px 5px; }
.group-tag-section.open .group-tag-head > button::before { transform: rotate(90deg); }
.group-filter-pane .group-tag-head label { display: inline-flex; grid-template-columns: none; align-items: center; gap: 7px; margin: 0; }
.group-tag-head input { width: 16px; height: 16px; min-height: 16px; margin: 0; }
.group-tag-chips { display: none; flex-wrap: wrap; gap: 8px; padding: 5px 0 7px 52px; }
.group-tag-section.open .group-tag-chips { display: flex; }
.group-tag-chips button { height: 26px; padding: 0 10px; border: 1px solid #dcdfe6; border-radius: 3px; color: #666; font-size: 12px; background: #fff; }
.group-tag-popover .room-tag-select-chips button { height:28px; padding:0 11px; font-size:13px; }
.group-tag-chips button:hover,
.group-tag-chips button.active { border-color: var(--green); color: var(--green); background: #f6ffed; }
.group-result-head label { display: flex; align-items: center; gap: 10px; margin: 0; }
.group-result-head label span { color:#666; font-weight:400; }
.group-result-head input,
.group-option input { width: 16px; height: 16px; min-height: 16px; margin: 0; }
.customer-group-picker .group-options { max-height: none; height: auto; max-height: none; min-height: 0; display: block; overflow: auto; margin: 0; padding: 0; border: 0; border-radius: 0; }
.customer-group-picker .group-option { min-height: 66px; display: grid; grid-template-columns: 28px 40px minmax(0, 1fr); gap: 0; padding: 7px 16px; border-bottom: 1px solid #eee; border-radius: 0; }
.customer-group-picker .group-option .group-avatar-collage { width: 40px; height: 40px; }
.group-avatar-collage { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 1px; overflow: hidden; box-sizing: border-box; padding: 2px; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; }
.group-art-tile { display: block; min-width: 0; min-height: 0; border: 1px solid rgba(78, 84, 88, 0.06); border-radius: 1px; box-sizing: border-box; background-color: #d9d5cf; }
.group-art-tile.art-coral { background: radial-gradient(circle at 74% 30%, #d9c6bd 0 24%, transparent 25%), linear-gradient(90deg, #b98f8b 0 46%, #d8c9bd 47%); }
.group-art-tile.art-ocean { background: linear-gradient(25deg, transparent 0 42%, #a9bac1 43% 60%, transparent 61%), #c9d1d0; }
.group-art-tile.art-moss { background: radial-gradient(ellipse at 30% 78%, #87998a 0 34%, transparent 35%), #c4c9b8; }
.group-art-tile.art-violet { background: linear-gradient(135deg, #aaa0ae 0 36%, #d3c8ca 37% 67%, #908a9a 68%); }
.group-art-tile.art-sun { background: radial-gradient(circle at 35% 35%, #c3a474 0 27%, transparent 28%), #d8cbbb; }
.group-art-tile.art-ink { background: linear-gradient(90deg, #7f898b 0 30%, #b4b2ab 31% 66%, #cec5b8 67%); }
.group-avatar-art { position: relative; display: block; overflow: hidden; box-sizing: border-box; border: 1px solid rgba(31, 41, 55, 0.08); border-radius: 3px; background: var(--art-paper, #f6f0e7); }
.group-avatar-art::before,
.group-avatar-art::after { content: ""; position: absolute; pointer-events: none; }
.group-avatar-art::before { width: 18px; height: 31px; left: 4px; top: 8px; border-radius: 12px 12px 3px 3px; transform: rotate(24deg); background: var(--art-primary, #e45845); }
.group-avatar-art::after { width: 14px; height: 14px; right: 4px; top: 4px; border: 4px solid var(--art-secondary, #225fa4); border-radius: 50%; box-sizing: border-box; background: transparent; box-shadow: -4px 22px 0 -2px var(--art-accent, #f1c84b); }
.group-avatar-art.art-coral { --art-paper: #f8efe7; --art-primary: #e4543f; --art-secondary: #1e5f9f; --art-accent: #efc64b; }
.group-avatar-art.art-ocean { --art-paper: #edf4ef; --art-primary: #236e9b; --art-secondary: #e05d43; --art-accent: #54a86d; }
.group-avatar-art.art-ocean::before { left: 9px; top: 4px; transform: rotate(-18deg); }
.group-avatar-art.art-moss { --art-paper: #f4f0dc; --art-primary: #4c8b59; --art-secondary: #3c4e89; --art-accent: #e58a3c; }
.group-avatar-art.art-moss::after { right: 7px; top: 8px; border-radius: 2px; transform: rotate(18deg); }
.group-avatar-art.art-violet { --art-paper: #f1eaf5; --art-primary: #7450a5; --art-secondary: #d65142; --art-accent: #3e8f84; }
.group-avatar-art.art-violet::before { width: 26px; height: 17px; left: -2px; top: 18px; transform: rotate(-12deg); }
.group-avatar-art.art-sun { --art-paper: #fff1d7; --art-primary: #e59b30; --art-secondary: #2f6f9e; --art-accent: #d84d4d; }
.group-avatar-art.art-sun::after { width: 17px; height: 17px; right: 5px; top: 5px; border-width: 5px; }
.group-avatar-art.art-ink { --art-paper: #e9eef0; --art-primary: #263746; --art-secondary: #d9674f; --art-accent: #5da1a3; }
.group-avatar-art.art-ink::before { width: 13px; height: 38px; left: 10px; top: 1px; border-radius: 2px; transform: rotate(42deg); }
.customer-group-picker .group-option > span:last-child { display: grid; align-content: center; gap: 4px; padding-left: 8px; min-width: 0; }
.customer-group-picker .group-option strong { overflow: hidden; color: #333; font-size: 13px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.customer-group-picker .group-option em { color: #999; font-size: 12px; font-style: normal; }
.group-result-pane { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.group-result-pane .group-options { flex: 1; }
.group-selected-pane { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.group-selected-pane em { color: #999; font-style: normal; font-weight: 400; }
.group-selected-list { min-height: 0; flex: 1; overflow: auto; padding: 8px 12px; }
.group-selected-list > div:not(.group-selected-empty) { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; }
.group-selected-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-selected-list button { width: 20px; height: 20px; flex: 0 0 20px; border: 0; position: relative; background: transparent; }
.group-selected-list button::before,
.group-selected-list button::after { content: ""; position: absolute; left: 5px; top: 9px; width: 10px; height: 1px; background: #999; transform: rotate(45deg); }
.group-selected-list button::after { transform: rotate(-45deg); }
.group-selected-empty { padding-top: 24px; color: #999; font-size: 13px; text-align: center; }
.customer-group-picker .group-modal-footer { min-height: 54px; flex: 0 0 54px; margin: 0; padding: 0 16px; border-top: 1px solid #e8e8e8; justify-content:flex-end; }
.customer-group-picker .group-modal-footer button { min-width: 64px; height: 32px; }
.customer-group-picker .group-modal-batch { display:flex; align-items:center; gap:12px; margin-right:16px; color:#555; font-size:13px; }
.customer-group-picker .group-modal-batch b { color:var(--green); font-weight:400; }
.customer-group-picker .group-modal-batch .text-button { min-width:auto; height:auto; min-height:22px; color:var(--green); font-size:13px; font-weight:400; }

@media (max-width: 900px) {
  .customer-group-picker-body { grid-template-columns: 220px minmax(280px, 1fr); overflow-x: auto; }
  .group-selected-pane { display: none; }
}

.pull-group-settings-dialog { width: 730px; max-width: calc(100vw - 32px); }
.pull-group-settings-body { padding: 20px; }
.pull-group-notice { margin-bottom: 18px; padding: 10px 14px; border: 1px solid #dcece4; border-radius: 3px; color: #4f5965; font-size: 13px; font-weight: 400; line-height: 22px; background: #f6fbf8; }
.pull-group-notice p { margin: 0; padding-left: 22px; color: #4f5965 !important; font-weight: 400; text-indent: -22px; opacity: 1; }
.pull-group-notice p + p { margin-top: 2px; }
.pull-setting-row { min-height: 54px; display: flex; align-items: center; gap: 10px; font-size: 13px; }
.pull-setting-row > label { width: 84px; flex: 0 0 84px; text-align: right; }
.pull-setting-row > input[type="number"] { width: 60px; height: 32px; min-height: 32px; }
.pull-setting-row > span:not(.switch) { color: #999; }
.pull-setting-row > span b { color: var(--green); font-weight: 400; }
.pull-group-name-row { align-items: flex-start; padding-top: 8px; }
.pull-group-name-row > div { flex: 1; }
.pull-group-name-row > div > div { display: flex; align-items: center; gap: 8px; }
.pull-group-name-row input { height: 32px; min-height: 32px; }
.pull-group-name-row input:first-child { width: 320px; }
.pull-group-name-row input[type="number"] { width: 60px; }
.pull-group-name-row em { display: block; margin-top: 6px; color: #999; font-size: 12px; font-style: normal; }

/* Customer group management */
.room-page { min-width: 0; padding: 16px; background: #f2f2f2; }
.room-view { min-width: 0; background: #fff; }
.room-page-head,.room-subpage-head { min-height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid #e8e8e8; }
.room-page-head > strong,.room-subpage-head > strong { color: #2f333c; font-size: 15px; font-weight: 600; }
.room-head-actions { display: flex; gap: 8px; }
.room-head-actions button { min-width: 110px; height: 34px; }
.room-action-icon,.room-export-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.room-action-icon::before,.room-export-button::before { content: ""; width: 14px; height: 14px; flex: 0 0 14px; background: currentColor; mask-position: center; mask-repeat: no-repeat; mask-size: contain; }
.room-action-icon.transfer::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13m-5-5 5 5-5 5M5 5v14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.room-action-icon.manager::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M3 19c0-3 2.5-5 6-5s6 2 6 5M18 8v6m-3-3h6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.room-action-icon.settings::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 3v2m0 14v2M3 12h2m14 0h2M5.6 5.6 7 7m10 10 1.4 1.4M18.4 5.6 17 7M7 17l-1.4 1.4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.room-action-icon.tasks::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='5' width='16' height='15' rx='2' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M8 3v4m8-4v4M4 10h16M8 14h3m2 0h3' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.room-export-button::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v12m-4-4 4 4 4-4M5 18v2h14v-2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.room-filter-panel { position: relative; z-index: 10; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; overflow: visible; padding: 12px; border-bottom: 14px solid #f2f2f2; background: #fff; }
.room-filter-panel label { width: 250px; height: 32px; display: inline-flex; align-items: center; gap: 0; box-sizing: border-box; margin: 0; padding: 0 8px 0 10px; border: 1px solid #e5e5e5; border-radius: 3px; color: #777; font-size: 13px; line-height: 30px; white-space: nowrap; background: #fff; }
.room-filter-panel > label.room-date-filter { width: 320px; }
.room-filter-panel > label:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px rgba(45,171,17,.06); }
.room-filter-panel > label select,.room-filter-panel > label input { min-width: 0; width: auto; height: 30px; min-height: 30px; flex: 1; box-sizing: border-box; margin: 0; padding: 0 26px 0 4px; border: 0; color: #666; font-size: 13px; line-height: 30px; background-color: transparent; box-shadow: none; outline: 0; }
.room-filter-panel > label select { appearance: none; background-image: linear-gradient(45deg,transparent 50%,#b7b7b7 50%),linear-gradient(135deg,#b7b7b7 50%,transparent 50%); background-position: calc(100% - 13px) 13px,calc(100% - 9px) 13px; background-repeat: no-repeat; background-size: 4px 4px,4px 4px; }
.room-filter-panel .room-filter-name { flex: 0 0 auto; color: #777; line-height: 30px; }
.room-filter-panel > label .shared-select { width: auto; height: 30px; min-width: 0; flex: 1; }
.room-filter-panel > label .shared-select-trigger { height: 30px; position: relative; padding: 0 24px 0 4px; border: 0; color: #666; background: transparent; box-shadow: none; }
.room-filter-panel > label .shared-select-trigger:focus,.room-filter-panel > label .shared-select.open .shared-select-trigger { border: 0; box-shadow: none; }
.room-filter-panel > label .shared-select-trigger i { width: 12px; height: 12px; position: absolute; top: 9px; right: 4px; }
.room-filter-panel > label .shared-select-menu { width: max-content; min-width: calc(100% + 10px); top: 31px; left: -4px; max-height: 240px; overflow-y: auto; }
.room-filter-panel > label .shared-select-menu button { min-width: 100%; white-space: nowrap; }
.room-special-filter { height: 30px; position: relative; min-width: 0; flex: 1; }
.room-special-filter-value { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; overflow: hidden; padding: 0 !important; border: 0 !important; opacity: 0; pointer-events: none; }
.room-special-filter-trigger { width: 100%; height: 30px; position: relative; display: flex; align-items: center; padding: 0 24px 0 4px; border: 0; color: #999; font-size: 13px; font-weight: 400; text-align: left; background: transparent; }
.room-special-filter-trigger span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room-special-filter-trigger i { width: 12px; height: 12px; position: absolute; top: 9px; right: 4px; background: #999; mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s ease; }
.room-special-filter.open .room-special-filter-trigger i { background: var(--green); transform: rotate(180deg); }
.room-special-filter.has-value .room-special-filter-trigger { color: #555; }
.room-special-filter-popover { position: absolute; top: 32px; left: -72px; z-index: 120; width: 570px; box-sizing: border-box; padding: 12px; border: 1px solid #e5e5e5; border-radius: 3px; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.14); }
.room-special-filter-tag .room-special-filter-popover { right: -8px; left: auto; }
.room-special-filter-popover.hidden { display: none; }
.room-top-tag-modes { min-height: 42px; display: flex; align-items: center; justify-content: flex-start; gap: 42px; box-sizing: border-box; padding: 4px 2px 12px; border-bottom: 1px solid #eee; }
.room-top-tag-modes label { width: auto; height: 26px; display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; color: #555; line-height: 26px; background: transparent; }
.room-top-tag-modes input { width: 14px !important; height: 14px !important; min-height: 14px !important; flex: 0 0 14px !important; padding: 0 !important; accent-color: var(--green); }
.room-top-tag-list { max-height: 250px; overflow-y: auto; padding: 7px 0 9px; }
.room-top-tag-list section { padding: 7px 2px 8px; }
.room-top-tag-list strong { display: block; margin-bottom: 7px; color: #555; font-size: 13px; font-weight: 500; }
.room-top-tag-list section div { display: flex; flex-wrap: wrap; gap: 7px; }
.room-top-tag-list button { height: 28px; padding: 0 10px; border: 1px solid #ddd; border-radius: 3px; color: #666; font-size: 12px; font-weight: 400; background: #fff; }
.room-top-tag-list button.active { border-color: var(--green); color: var(--green); background: #f3f9f0; }
.room-special-filter-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 10px; border-top: 1px solid #eee; }
.room-special-filter-actions button { min-width: 64px; height: 32px; border: 1px solid #ddd; border-radius: 3px; color: #666; background: #fff; }
.room-special-filter-actions button.primary { border-color: var(--green); color: #fff; background: var(--green); }
.room-special-filter-size .room-special-filter-popover { left: -70px; width: 222px; padding: 10px; }
.room-size-range { display: flex; align-items: center; gap: 8px; }
.room-size-range input { width: 90px !important; height: 32px !important; min-height: 32px !important; flex: 0 0 90px !important; padding: 0 9px !important; border: 1px solid #ddd !important; }
.room-size-range span { color: #999; }
.room-size-confirm { width: 100%; height: 32px; margin-top: 10px; border: 1px solid var(--green); border-radius: 3px; color: #fff; background: var(--green); }
.room-group-tag-action-dialog { width: 626px; max-width: calc(100vw - 32px); max-height: min(660px, calc(100vh - 40px)); display:flex; flex-direction:column; }
.room-group-tag-action-dialog .friend-modal-head { height:48px; flex:0 0 48px; }
.room-group-tag-action-body { min-height:0; flex:1; display:flex; flex-direction:column; padding:10px 12px 0; overflow:hidden; }
.room-group-tag-search { height:32px; flex:0 0 32px; margin:0 0 10px; border-radius:3px; }
.room-group-tag-search input { height:30px; line-height:30px; }
.room-group-tag-search button { width:36px; flex:0 0 36px; }
.room-group-tag-action-body .room-top-tag-list { max-height:none; min-height:0; flex:1; overflow:auto; padding:0 0 8px; }
.room-group-tag-action-body .room-top-tag-list section,
.room-group-tag-action-body .room-top-tag-list .room-tag-select-section { padding:6px 0 8px; border-bottom:0; }
.room-tag-select-head { min-height:28px; display:flex; align-items:center; gap:6px; color:#666; }
.room-tag-select-head > button { width:20px; height:24px; flex:0 0 20px; padding:0; border:0; position:relative; background:transparent; }
.room-tag-select-head > button::before { content:""; position:absolute; left:7px; top:8px; border:5px solid transparent; border-left-color:#666; transform-origin:2px 5px; }
.room-tag-select-section.open .room-tag-select-head > button::before { transform:rotate(90deg); }
.room-tag-select-head label { height:24px; display:inline-flex; align-items:center; gap:8px; margin:0; color:#555; font-size:14px; line-height:24px; }
.room-tag-select-head input { width:16px; height:16px; min-height:16px; margin:0; accent-color:var(--green); }
.room-tag-select-chips { display:none; flex-wrap:wrap; gap:8px; padding:5px 0 7px 52px; }
.room-tag-select-section.open .room-tag-select-chips { display:flex; }
.room-group-tag-action-body .room-top-tag-list .room-tag-select-chips button { height:28px; padding:0 11px; border:1px solid #d9dfe8; border-radius:3px; color:#666; font-size:13px; background:#fff; }
.room-group-tag-action-body .room-top-tag-list .room-tag-select-chips button:hover,
.room-group-tag-action-body .room-top-tag-list .room-tag-select-chips button.active { border-color:var(--green); color:var(--green); background:#f6ffed; }
.room-group-tag-action-footer { height:50px; flex:0 0 50px; justify-content:flex-start; padding:0 8px 0 12px; }
.room-group-tag-action-footer > span { color:#666; font-size:13px; }
.room-group-tag-action-footer > span b { color: var(--green); font-weight: 400; }
.room-group-tag-action-footer > .text-button { margin-right: auto; color: var(--green); }
.room-group-tag-action-footer > div { display: flex; gap: 8px; }
.room-invite-dialog { width: 1000px; max-width: calc(100vw - 32px); }
.room-invite-dialog .friend-modal-head strong { display: flex; align-items: center; gap: 10px; }
.room-invite-dialog .friend-modal-head small { color: #999; font-size: 12px; font-weight: 400; }
.room-invite-layout { height: 560px; display: grid; grid-template-columns: 260px 1fr; min-height: 0; }
.room-invite-members { min-height: 0; display: flex; flex-direction: column; padding: 14px 14px 0; border-right: 1px solid #e8e8e8; }
.room-invite-members > .search-control { width: 100%; height: 32px; flex: 0 0 32px; }
.room-invite-member-list { flex: 1; overflow-y: auto; padding-top: 10px; }
.room-invite-member-list > button { width: 100%; min-height: 58px; display: flex; align-items: center; gap: 10px; padding: 7px 10px; border: 0; border-radius: 3px; color: #555; text-align: left; background: #fff; }
.room-invite-member-list > button:hover { background: #f5f8fc; }
.room-invite-member-list > button.active { background: #eaf2ff; }
.room-invite-member-list .wx-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
.member-art-avatar { width: 38px; height: 38px; flex: 0 0 38px; display: block; border-radius: 4px; }
.room-invite-member-list strong,.room-invite-person strong { display: block; color: #444; font-size: 14px; font-weight: 400; }
.room-invite-member-list small,.room-invite-person small { display: block; margin-top: 3px; color: #999; font-size: 12px; }
.room-invite-member-page { height: 50px; display: flex; align-items: center; justify-content: center; gap: 10px; border-top: 1px solid #eee; color: #777; }
.room-invite-member-page button { border: 0; color: #bbb; background: transparent; }
.room-invite-member-page span { min-width: 38px; height: 26px; border: 1px solid #ddd; border-radius: 3px; line-height: 24px; text-align: center; }
.room-invite-member-page em { font-style: normal; }
.room-invite-records { min-width: 0; overflow: auto; padding: 14px 16px; }
.room-invite-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.room-invite-toolbar .search-control { width: 220px; height: 32px; }
.room-invite-status-select { width: 130px; flex: 0 0 130px; }
.room-invite-toolbar > .primary-button { min-width: 130px; margin-left: auto; }
.room-invite-toolbar > .room-export-button { min-width: 104px; }
.room-invite-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.room-invite-table th { height: 46px; padding: 0 14px; color: #333; font-size: 13px; font-weight: 600; text-align: left; background: #f5f5f5; }
.room-invite-table td { height: 74px; padding: 9px 14px; border-bottom: 1px solid #eee; color: #444; font-size: 13px; }
.room-invite-person { display: flex; align-items: center; gap: 10px; }
.room-invite-person .wx-avatar { width: 40px; height: 40px; flex: 0 0 40px; }
.room-invite-person .member-art-avatar { width: 40px; height: 40px; flex-basis: 40px; }
.room-invite-status { color: var(--green); }
.room-invite-status.left { color: #ff4d4f; }
.room-invite-status.pending { color: #ee8a28; }
.room-invite-empty { height: 180px !important; color: #aaa !important; text-align: center; }
.room-filter-panel .room-date-filter { padding-right: 3px; }
.room-filter-panel .room-date-filter input { width: 82px; flex: 1 1 82px; padding: 0 3px; }
.room-filter-panel .room-date-filter input::placeholder { color: #b7b7b7; }
.room-filter-panel .room-date-separator { width: 20px; flex: 0 0 20px; color: #aaa; text-align: center; line-height: 30px; }
.room-filter-panel .room-date-filter > button { width: 28px; height: 30px; flex: 0 0 28px; position: relative; border: 0; background: transparent; }
.room-filter-panel .room-date-filter > button::before { content: ""; position: absolute; inset: 8px 7px 7px; border: 1px solid #aaa; border-radius: 1px; }
.room-filter-panel .room-date-filter > button::after { content: ""; position: absolute; left: 8px; right: 8px; top: 12px; border-top: 1px solid #aaa; }
.room-search { width: 240px; height: 32px; flex: 0 0 240px; box-sizing: border-box; }
.room-search input { width: auto; min-width: 0; height: 30px; min-height: 30px; flex: 1; padding: 0 10px; }
.room-search button { width: 34px; height: 30px; flex: 0 0 34px; }
.room-filter-summary { width: calc(100% + 24px); min-height: 50px; display: flex; align-items: center; gap: 10px; box-sizing: border-box; margin: 4px -12px -12px; padding: 8px 12px; border-top: 1px solid #f0f0f0; color: #555; font-size: 13px; }
.room-filter-summary.hidden { display: none; }
.room-filter-summary > span { color: #555; }
.room-filter-summary > div { display: flex; align-items: center; gap: 8px; }
.room-filter-chip { height: 28px; display: inline-flex; align-items: center; gap: 7px; padding: 0 9px; border-radius: 3px; color: #555; background: #eef3ff; }
.room-filter-chip button { padding: 0; border: 0; color: #8a8a8a; font-size: 16px; line-height: 1; background: transparent; }
.room-filter-summary > button { padding: 0; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.room-list-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid #e8e8e8; }
.room-list-head strong { color: #333; font-size: 15px; font-weight: 600; }
.room-list-head small { color: #999; font-size: 13px; font-weight: 400; }
.room-export-button { min-width: 124px; height: 34px; }
.room-table-wrap { width: 100%; overflow: auto; }
.room-management-table { width: 1684px; min-width: 1684px; table-layout: fixed; border-collapse: collapse; }
.room-management-table col.room-col-check { width: 44px; }.room-management-table col.room-col-group { width: 280px; }.room-management-table col.room-col-wechat { width: 160px; }.room-management-table col.room-col-tags { width: 160px; }.room-management-table col.room-col-contact { width: 110px; }.room-management-table col.room-col-rename { width: 140px; }.room-management-table col.room-col-confirm { width: 140px; }.room-management-table col.room-col-add { width: 120px; }.room-management-table col.room-col-created { width: 155px; }.room-management-table col.room-col-owned { width: 155px; }.room-management-table col.room-col-actions { width: 220px; }
.room-management-table th { height: 48px; box-sizing: border-box; padding: 0 12px; color: #333; font-size: 14px; font-weight: 600; white-space: nowrap; text-align: left; }
.room-management-table td { height: 74px; box-sizing: border-box; padding: 8px 12px; border-bottom: 1px solid #eee; color: #333; font-size: 14px; vertical-align: middle; white-space: nowrap; }
.room-management-table th:first-child,.room-management-table td:first-child { width: 38px; text-align: center; }
.room-management-table th:last-child,.room-management-table td:last-child { position: sticky; right: 0; z-index: 2; width: 220px; min-width: 220px; max-width: 220px; overflow: visible; background: #fff; box-shadow: -4px 0 7px rgba(0,0,0,.035); }
.room-management-table th:last-child { z-index: 3; background: #f5f5f5; }
.room-management-table input[type="checkbox"] { width: 14px; height: 14px; min-height: 14px; margin: 0; padding: 0; accent-color: var(--green); }
.room-info-cell { display: flex; align-items: center; gap: 10px; min-width: 240px; }
.room-info-cell > div { display: grid; gap: 1px; }
.room-list-avatar,.room-group-avatar { flex: 0 0 auto; }
.room-list-avatar { width: 42px; height: 42px; }
.room-name-link { max-width: 205px; overflow: hidden; padding: 0; border: 0; color: #333; font-size: 14px; text-align: left; text-overflow: ellipsis; white-space: nowrap; background: transparent; }
.room-name-link:hover { color: var(--green); }
.room-info-cell small { color: #999; font-size: 12px; line-height: 17px; white-space: nowrap; }
.room-info-cell small i { display: inline-block; width: 1px; height: 11px; margin: 0 8px; vertical-align: -1px; background: #ddd; }
.room-tag { display: inline-block; margin: 2px 4px 2px 0; padding: 1px 7px; border: 1px solid #d9d9d9; border-radius: 3px; color: #666; font-size: 12px; background: #fafafa; }
.room-allow { color: var(--green); font-family: inherit; font-size: 14px; font-weight: 400; line-height: 20px; }
.room-allow::before { content: "✓"; margin-right: 4px; }
.room-allow.off { color: #ff4d4f; }
.room-allow.off::before { content: "⊘"; }
.room-row-actions { display: grid; grid-template-columns: repeat(3,max-content); align-items: center; justify-content: start; gap: 5px 10px; color: #333; font-family: inherit; font-size: 14px; font-weight: 400; line-height: 20px; text-align: left; white-space: nowrap; }
.room-row-actions button { padding: 0; border: 0; color: var(--green); font-family: inherit; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: 0; text-align: left; background: transparent; appearance: none; }
.room-row-actions button[data-room-danger] { color: #b8b8b8; }
.room-batch-bar { position: sticky; bottom: 0; z-index: 3; min-height: 56px; display: flex; align-items: center; gap: 10px; padding: 8px 16px; border-top: 1px solid #e8e8e8; background: #fff; box-shadow: 0 -3px 8px rgba(0,0,0,.04); }
.room-batch-bar > span { color: #666; font-size: 13px; }
.room-batch-bar b { color: var(--green); font-weight: 500; }
.room-batch-bar > button,.room-pagination button,.room-batch-menu > button { height: 32px; padding: 0 13px; border: 1px solid var(--green); border-radius: 3px; color: var(--green); background: #fff; }
.room-batch-bar > button:disabled { border-color: #ddd; color: #bbb; background: #f7f7f7; }
.room-batch-menu { position: relative; }
.room-batch-menu > button { display: inline-flex; align-items: center; gap: 8px; }
.room-batch-menu > button:disabled { border-color: #ddd; color: #bbb; background: #f7f7f7; }
.room-batch-menu > button i { width: 7px; height: 7px; border-left: 1px solid currentColor; border-top: 1px solid currentColor; transform: rotate(45deg) translateY(2px); }
.room-batch-menu.open > button i { transform: rotate(225deg) translateY(-2px); }
.room-batch-menu-pop { position: absolute; right: 0; bottom: 38px; z-index: 30; min-width: 184px; overflow: hidden; padding: 4px 0; border-radius: 3px; background: #fff; box-shadow: 0 3px 12px rgba(0,0,0,.18); }
.room-batch-menu-pop button { width: 100%; height: 34px; display: block; padding: 0 14px; border: 0; color: #555; font-size: 13px; text-align: left; white-space: nowrap; background: #fff; }
.room-batch-menu-pop button:hover { color: var(--green); background: #f3f9f0; }
.room-pagination { display: flex; align-items: center; gap: 4px; margin: 0 auto; }
.room-pagination button { min-width: 32px; padding: 0 8px; border-color: #ddd; color: #666; }
.room-pagination button.active { border-color: var(--green); color: var(--green); }
.room-subpage-head { justify-content: flex-start; gap: 10px; }
.room-detail-summary { min-height: 100px; display: flex; align-items: center; gap: 14px; padding: 16px 22px; border-bottom: 1px solid #eee; }
.room-group-avatar { width: 58px; height: 58px; display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: repeat(3,1fr); gap: 1px; overflow: hidden; box-sizing: border-box; padding: 3px; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; }
.room-detail-summary > div:nth-child(2) { min-width: 280px; }
.room-detail-summary strong { font-size: 18px; }
.room-detail-summary p { margin: 8px 0 0; color: #777; font-size: 13px; }
.room-detail-summary p b { color: #333; font-weight: 500; }
.room-detail-summary button:first-of-type { margin-left: auto; }
.room-detail-meta { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid #eee; }
.room-detail-meta > div { min-height: 100px; padding: 16px 22px; }
.room-detail-meta > div + div { border-left: 1px solid #eee; }
.room-detail-meta strong { font-size: 14px; }
.room-detail-meta p { color: #666; font-size: 13px; }
.room-detail-meta span { margin-right: 8px; padding: 2px 8px; border: 1px solid #d9d9d9; border-radius: 3px; }
.room-member-toolbar,.room-task-filter { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #eee; }
.room-member-toolbar > label { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.room-member-toolbar input[type="radio"] { min-height: auto; accent-color: var(--green); }
.room-member-toolbar .compact-search { width: 170px; }
.room-member-toolbar select,.room-member-toolbar > input { width: 142px; height: 32px; min-height: 32px; padding: 0 8px; border: 1px solid #d9d9d9; }
.room-member-table,.room-task-table,.room-invite-table { width: 100%; border-collapse: collapse; }
.room-member-table th,.room-invite-table th { height: 48px; padding: 0 22px; text-align: left; }
.room-member-table td,.room-invite-table td { height: 64px; padding: 8px 22px; border-bottom: 1px solid #eee; }
.room-member-cell { display: flex; align-items: center; gap: 10px; }
.room-member-cell > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 4px; color: #fff; background: #7b8e9e; }
.room-member-cell div { display: grid; }
.room-member-cell strong { font-weight: 400; }
.room-member-cell small { color: #fa8c16; }
.room-activity { margin-top: 16px; padding: 18px 22px; background: #fff; }
.room-activity small { margin-left: 8px; color: #999; font-weight: 400; }
.room-activity div { height: 110px; display: grid; place-items: center; color: #bbb; }
.room-task-panel { margin: 14px 16px 0; background: #fff; }
.room-task-filter { height: 56px; box-sizing: border-box; padding: 11px 12px; gap: 14px; }
.room-task-filter .shared-select { width: 200px; flex: 0 0 200px; }
.room-task-filter > .ghost-button { width: 60px; height: 32px; min-height: 32px; padding: 0; }
.shared-select { height: 32px; position: relative; z-index: 1; }
.shared-select.open { z-index: 80; }
.shared-select > select { position: absolute; width: 1px; height: 1px; min-height: 0; overflow: hidden; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.shared-select-trigger { width: 100%; height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 10px; box-sizing: border-box; padding: 0 10px 0 12px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; font-size: 13px; font-weight: 400; text-align: left; background: #fff; }
.shared-select-trigger span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shared-select-trigger i { width: 14px; height: 14px; flex: 0 0 14px; background: #999; mask: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s ease,background .15s ease; }
.shared-select-trigger:focus { border-color: var(--green); outline: 0; box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.shared-select.open .shared-select-trigger { border-color: var(--green); outline: 0; box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.shared-select.open .shared-select-trigger i { background: var(--green); transform: rotate(180deg); }
.shared-select.has-value .shared-select-trigger { color: #555; }
.shared-select-inline-search { display: none; position: absolute; inset: 0; z-index: 3; width: 100%; height: 32px; min-height: 32px; box-sizing: border-box; padding: 0 30px 0 12px; border: 1px solid var(--green); border-radius: 3px; color: #555; font-size: 13px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") calc(100% - 9px) center / 14px 14px no-repeat; outline: 0; box-shadow: none; }
.shared-select-searchable.open .shared-select-inline-search { display: block; }
.shared-company-collapse { display:none; width:30px; height:30px; position:absolute; z-index:4; top:1px; right:1px; align-items:center; justify-content:center; padding:0; border:0; background:#f2f5fd; cursor:pointer; }
.shared-company-filter.open .shared-company-collapse { display:flex; }
.shared-company-collapse i { width:14px; height:14px; display:block; background:var(--green); mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 8.75L7 5.25L10.5 8.75' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; -webkit-mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 8.75L7 5.25L10.5 8.75' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.shared-company-filter.open .shared-select-inline-search { padding-right:34px; background-image:none; }
.shared-select-searchable.open .shared-select-trigger i { opacity: 0; }
.shared-select-menu { width: 100%; position: absolute; top: 34px; left: 0; z-index: 90; overflow: hidden; box-sizing: border-box; padding: 4px 0; border: 1px solid #e7e7e7; border-radius: 3px; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.shared-select-menu.hidden { display: none; }
.shared-select-menu button { width: 100%; height: 34px; display: block; padding: 0 12px; border: 0; color: #666; font-size: 13px; font-weight: 400; text-align: left; background: #fff; }
.shared-select-menu button:hover { color: var(--green); background: #f3f8ef; }
.shared-select-menu button.active { color: var(--green); background: #eaf4e5; }
.room-filter-panel .shared-select-menu button.active::after { content: "✓"; float: right; color: var(--green); font-size: 12px; }
.room-filter-panel .shared-select-account .shared-select-menu button.active::after { margin-left: auto; }
.room-filter-panel .shared-select-searchable .shared-select-menu { left: -76px; width: 240px; min-width: 240px; max-height: 270px; overflow-y: auto; }
.room-filter-panel .shared-select-searchable .shared-select-inline-search { height: 30px; min-height: 30px; }
.shared-select-account .shared-select-menu button { height: 34px; display: flex; align-items: center; gap: 7px; }
.shared-select-account .shared-select-menu button .account-state { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #48c774; }
.shared-select-account .shared-select-menu button .account-state.off { background: #d9d9d9; }
.shared-select-account .shared-select-menu button span { min-width: 0; overflow: hidden; color: #555; text-overflow: ellipsis; white-space: nowrap; }
.shared-select-account .shared-select-menu button em { color: #f59a23; font-style: normal; }
.shared-select-account .shared-select-menu button:hover span,.shared-select-account .shared-select-menu button.active span { color: var(--green); }
.wechat-account-select { min-width:180px; }
.wechat-account-select .shared-select-trigger { height:32px; padding:0 10px 0 12px; color:#777; border-color:#d9d9d9; background:#fff; }
.wechat-account-select.open .shared-select-trigger { color:#666; border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.wechat-account-select .shared-select-menu { top:34px; max-height:310px; overflow-y:auto; padding:0; border-color:#e4e4e4; border-radius:2px; box-shadow:0 4px 10px rgba(0,0,0,.13); }
.wechat-account-select .shared-select-menu button { height:36px; padding:0 12px; color:#666; line-height:36px; background:#fff; }
.wechat-account-select .shared-select-menu button:hover { color:#555; background:#f4f8f1; }
.wechat-account-select .shared-select-menu button.active { color:var(--green); background:#eaf4e5; }
.wechat-account-select .shared-select-menu button em,.wechat-account-select .shared-select-trigger em { color:#f59a23; font-style:normal; }
.wechat-account-select .shared-select-menu button.active em,.wechat-account-select .shared-select-menu button:hover em { color:#f59a23; }
.wechat-account-select .account-state { display:none !important; }
.room-task-date-range { width: 254px; height: 32px; display: grid; grid-template-columns: 1fr 18px 1fr 30px; align-items: center; box-sizing: border-box; border: 1px solid #d9d9d9; border-radius: 3px; background: #fff; }
.room-task-date-range:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px rgba(42,166,18,.08); }
.room-task-date-range input { width: 100%; height: 30px; min-height: 30px; box-sizing: border-box; margin: 0; padding: 0 8px; border: 0; color: #666; font-size: 13px; box-shadow: none; }
.room-task-date-range input::placeholder { color: #b7b7b7; }
.room-task-date-range span { color: #aaa; text-align: center; }
.room-task-date-range button { width: 30px; height: 30px; position: relative; border: 0; background: transparent; }
.room-task-date-range button::before { content: ""; position: absolute; inset: 8px; border: 1px solid #aaa; border-radius: 1px; }
.room-task-date-range button::after { content: ""; position: absolute; left: 9px; right: 9px; top: 12px; border-top: 1px solid #aaa; }
.room-task-table { table-layout: fixed; font-size: 13px; }
.room-task-table th { height: 46px; box-sizing: border-box; padding: 0 20px; color: #333; font-weight: 600; text-align: left; background: #f7f7f7; }
.room-task-table thead tr:nth-child(2) th { height: 44px; }
.room-task-table td { height: 47px; box-sizing: border-box; padding: 0 20px; border-bottom: 1px solid #eee; color: #444; }
.room-task-table tbody tr:nth-child(even) td { background: #fafafa; }
.room-task-table th:nth-child(1) { width: 20%; }.room-task-table th:nth-child(2) { width: 20%; }.room-task-table th:nth-child(3) { width: 20%; }.room-task-table .room-task-result-head { text-align: center; }
.room-task-table th i { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; margin-left: 6px; border-radius: 50%; color: #fff; font-size: 11px; font-style: normal; font-weight: 600; line-height: 16px; vertical-align: -2px; background: #929292; }
.room-task-status::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: currentColor; vertical-align: middle; }
.room-task-status { color: #777; }.room-task-status::before { color: var(--green); background: var(--green); }.room-task-status.running::before { background: #1677ff; }.room-task-status.failed::before { background: #d95d58; }
.room-empty { height: 160px !important; color: #aaa !important; text-align: center !important; }
.room-action-dialog { width: 500px; overflow: visible; }.room-setting-dialog { width: 600px; }
.room-rename-dialog { width: 780px; max-width: calc(100vw - 32px); overflow: hidden; }
.room-rename-dialog .friend-modal-head strong { color: #333; font-size: 15px; font-weight: 600; }
.room-rename-body { min-height: 390px; padding: 30px 40px 24px; color: #666; font-size: 13px; }
.room-rename-modes { min-height: 34px; display: grid; grid-template-columns: 78px max-content max-content; align-items: center; column-gap: 18px; margin-bottom: 18px; padding-left: 86px; }
.room-rename-modes > span { padding-right: 14px; color: #555; text-align: right; white-space: nowrap; }
.room-rename-modes label { display: inline-flex; align-items: center; gap: 7px; color: #666; cursor: pointer; }
.room-rename-modes input[type="radio"] { width: 16px; height: 16px; min-height: 16px; margin: 0; accent-color: var(--green); }
.room-rename-panel { padding-left: 86px; }.room-rename-panel.hidden { display: none; }
.room-rename-field { display: grid; grid-template-columns: 78px 1fr; align-items: start; }
.room-rename-field > label,.room-replace-field > label { display: flex; align-items: center; justify-content: flex-end; gap: 5px; padding-right: 14px; color: #555; text-align: right; white-space: nowrap; }
.room-rename-field > label { min-height: 44px; }
.room-rename-field b,.room-replace-field b { flex: 0 0 auto; margin: 0; color: var(--green); font-weight: 400; }
.room-name-editor { border: 1px solid #ddd; background: #fff; }
.room-name-toolbar { height: 44px; display: flex; align-items: center; gap: 8px; padding: 0 16px; border-bottom: 1px solid #e8e8e8; background: #fafafa; }
.room-name-toolbar button { height: 28px; padding: 0 10px; border: 1px solid #ddd; border-radius: 3px; color: #777; font-size: 13px; background: #fff; }
.room-name-toolbar span:first-of-type { margin-left: auto; }.room-name-toolbar span { color: #777; white-space: nowrap; }
.room-name-toolbar input { width: 60px; height: 30px; min-height: 30px; padding: 0 10px; border: 1px solid #ddd; border-radius: 3px; color: #666; font-size: 13px; }
.room-name-toolbar .room-name-copy { margin-left: 6px; border: 0; color: var(--green); background: transparent; }
.room-name-content { min-height: 100px; padding: 14px 12px; box-sizing: border-box; color: #555; line-height: 28px; outline: 0; }
.room-name-content:empty::before { content: attr(data-placeholder); color: #c5c5c5; pointer-events: none; }
.room-name-content:focus { box-shadow: inset 0 0 0 1px rgba(42,171,18,.28); }
.room-name-token { display: inline-flex; align-items: center; height: 26px; margin: 0 4px 2px 0; padding: 0 8px; border: 1px solid #9bd486; border-radius: 3px; color: var(--green); line-height: 24px; background: #f4fbf1; }
.room-name-hint { min-height: 28px; padding: 7px 12px; box-sizing: border-box; border-top: 1px solid #eee; color: #aaa; font-size: 12px; line-height: 18px; background: #fafafa; }
.room-rename-example,.room-replace-example { margin: 20px 0 0 78px; color: #999; font-size: 13px; line-height: 24px; }.room-rename-example span,.room-replace-example span { display: block; }.room-rename-example p,.room-replace-example p { margin: 0; }
.room-replace-field { display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: center; margin-bottom: 18px; }
.room-replace-field > label { min-height: 34px; }
.room-replace-field input { width: 100%; height: 34px; min-height: 34px; padding: 0 11px; box-sizing: border-box; border: 1px solid #d9d9d9; border-radius: 3px; color: #555; font-size: 13px; outline: 0; }
.room-replace-field input:focus { border-color: var(--green); box-shadow: 0 0 0 2px rgba(42,171,18,.08); }
.room-replace-example { margin-top: 26px; }.room-replace-note { margin-top: 20px !important; }
.room-rename-dialog .friend-modal-footer { min-height: 52px; }
.room-action-form { display: grid; gap: 20px; overflow: visible; padding: 18px 20px 34px; }
.room-wizard [data-room-wizard-step="1"] .room-action-form { position: relative; z-index: 10; }
.room-wizard [data-room-wizard-step="1"] > .friend-modal-footer { position: relative; z-index: 1; }
.room-action-form label { height: 34px; min-height: 34px; display: grid; grid-template-columns: 84px 240px; align-items: center; justify-content: center; gap: 10px; }
.room-action-form label > span { text-align: right; white-space: nowrap; }.room-action-form b { color: #ff4d4f; }.room-action-form select,.room-action-form input { width: 100%; height: 34px; min-height: 34px; padding: 0 30px 0 10px; border: 1px solid #d9d9d9; border-radius: 3px; color: #555; font-size: 13px; background-color: #fff; }
.room-action-form select:focus,.room-action-form input:focus { border-color: var(--green); outline: 0; box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.room-account-select { position: relative; z-index: 11; width: 240px; }
.room-account-select:focus-within { z-index: 50; }
.room-account-select > input { display: none; }
.room-account-trigger { width: 240px; height: 34px; display: flex; align-items: center; justify-content: space-between; padding: 0 10px; border: 1px solid #d9d9d9; border-radius: 3px; color: #bfbfbf; font-size: 13px; text-align: left; background: #fff; }
.room-account-trigger.has-value { color: #555; }
.room-account-trigger i { width: 7px; height: 7px; border-right: 1px solid #aaa; border-bottom: 1px solid #aaa; transform: rotate(45deg) translateY(-2px); }
.room-account-trigger.open { border-color: var(--green); box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.room-account-trigger.open i { transform: rotate(225deg) translate(-2px,-2px); }
.room-account-menu { position: absolute; top: 38px; left: 0; z-index: 100; width: 240px; overflow: hidden; border-radius: 3px; background: #fff; box-shadow: 0 3px 10px rgba(0,0,0,.16); }
.room-account-search { position: relative; padding: 8px; border-bottom: 1px solid #eee; }
.room-account-search input { width: 100%; height: 30px; min-height: 30px; padding: 0 28px 0 9px; }
.room-account-search i { position: absolute; top: 16px; right: 17px; width: 10px; height: 10px; border: 1px solid #999; border-radius: 50%; }
.room-account-search i::after { content: ""; position: absolute; right: -4px; bottom: -3px; width: 5px; height: 1px; background: #999; transform: rotate(45deg); }
.room-account-menu > button { width: 100%; height: 38px; display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 7px; padding: 0 10px; border: 0; color: #555; font-size: 13px; text-align: left; background: #fff; }
.room-account-menu > button:hover { background: #f3f9f0; }
.room-account-menu > button em { width: 6px; height: 6px; border-radius: 50%; background: #24bf62; }
.room-account-menu > button em.off { background: #d9d9d9; }
.room-account-menu > button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room-account-menu > button span b { color: #ff8a00; font-weight: 400; }
.room-account-menu > button small { color: #24a148; font-size: 12px; }
.room-account-menu > button small.off { color: #aaa; }
.room-account-trigger { width: 100%; height: 34px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; border: 1px solid #d9d9d9; border-radius: 3px; color: #999; font-size: 13px; text-align: left; background: #fff; }
.room-account-trigger:hover,.room-account-trigger:focus { border-color: var(--green); outline: 0; }
.room-account-trigger i { width: 7px; height: 7px; border-right: 1px solid #999; border-bottom: 1px solid #999; transform: rotate(45deg) translateY(-2px); }
.room-account-trigger span:not(:empty):not([data-placeholder]) { color: #555; }
.room-action-form p { margin: -6px 0 0 132px; color: #999; font-size: 12px; }
.room-wizard:has(.room-group-wizard:not(.hidden)) { width: 900px; max-width: calc(100vw - 32px); }
.room-wizard:has(.room-group-wizard:not(.hidden)) .friend-modal-head { min-height: 48px; }
.room-wizard:has(.room-group-wizard:not(.hidden)) .friend-modal-head strong { font-size: 14px; font-weight: 600; }
.room-wizard-notice { height: 38px; display: flex; align-items: center; padding: 0 16px; color: #555; font-size: 14px; background: #fff1df; }
.room-wizard-notice::before { content: "!"; width: 15px; height: 15px; display: inline-flex; align-items: center; justify-content: center; margin-right: 8px; border-radius: 50%; color: #fff; font-size: 11px; background: #f5a623; }
.room-group-picker-step { height: 546px; display: grid; grid-template-columns: 400px 1fr; }
.room-group-filter-pane,.room-group-result-pane { min-width: 0; }
.room-group-filter-pane { position: relative; z-index: 3; overflow: visible; padding: 0 16px; border-right: 1px solid #e8e8e8; }
.room-group-result-pane { overflow: hidden; }
.room-picker-pane-head { height: 38px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #eee; }
.room-picker-pane-head strong,.room-picker-pane-head label { color: #555; font-size: 13px; font-weight: 400; }
.room-group-filter-pane > .room-picker-pane-head strong { color: #999; }
.room-group-picker-step .room-picker-pane-head button { min-width: 66px; height: 26px; padding: 0 8px; border: 1px solid var(--green); border-radius: 3px; color: var(--green); font-size: 13px; line-height: 24px; background: #fff; }
.room-group-filter-pane > label { display: block; margin: 16px 0 7px; color: #999; font-size: 13px; }
.room-filter-combo,.room-filter-double { display: grid; grid-template-columns: 126px 1fr; }
.room-filter-combo input,.room-filter-combo select,.room-filter-double select { width: 100%; height: 32px; min-height: 32px; padding: 0 10px; border: 1px solid #d9d9d9; border-radius: 0; color: #777; font-size: 13px; line-height: 30px; background-color: #fff; outline: 0; box-sizing: border-box; }
.room-filter-combo input::placeholder { color: #bbb; }
.room-filter-combo select,.room-filter-double select { appearance: none; padding-right: 28px; background-image: linear-gradient(45deg,transparent 50%,#999 50%),linear-gradient(135deg,#999 50%,transparent 50%); background-position: calc(100% - 15px) 13px,calc(100% - 10px) 13px; background-size: 5px 5px,5px 5px; background-repeat: no-repeat; }
.room-filter-combo input:focus,.room-filter-combo select:focus,.room-filter-double select:focus { position: relative; z-index: 2; border-color: var(--green); box-shadow: 0 0 0 2px rgba(42,166,18,.08); }
.room-filter-combo select,.room-filter-double select:first-child { border-radius: 3px 0 0 3px; }
.room-filter-combo input,.room-filter-double select:last-child { margin-left: -1px; border-radius: 0 3px 3px 0; }
.room-filter-combo { grid-template-columns: 126px 1fr 38px; }
.room-filter-combo button { margin-left: -1px; border: 1px solid #d9d9d9; border-radius: 0 3px 3px 0; color: var(--green); background: #fff; }
.room-filter-double + .room-filter-double { margin-top: 12px; }
.room-filter-double > input[readonly] { width: 100%; height: 32px; min-height: 32px; box-sizing: border-box; padding: 0 10px; border: 1px solid #e1e1e1; border-radius: 3px 0 0 3px; color: #999; font-size: 13px; background: #fafafa; outline: 0; }
.room-filter-combo .shared-select,.room-filter-double .shared-select { width: 100%; min-width: 0; }
.room-filter-combo .shared-select-trigger,.room-filter-double .shared-select-trigger { border-radius: 0; }
.room-filter-combo .shared-select:first-child .shared-select-trigger,.room-filter-double .shared-select:first-child .shared-select-trigger { border-radius: 3px 0 0 3px; }
.room-filter-double .shared-select:last-child { margin-left: -1px; }
.room-filter-double .shared-select:last-child .shared-select-trigger { border-radius: 0 3px 3px 0; }
.room-filter-combo .shared-select.open,.room-filter-double .shared-select.open { z-index: 100; }
.room-filter-double .shared-select-trigger:disabled { cursor: not-allowed; border-color: #e1e1e1; color: #999; background: #f5f5f5; box-shadow: none; }
.room-filter-double .shared-select-trigger:disabled i { opacity: .45; }
.room-filter-double .room-special-filter { width: 100%; height: 32px; min-width: 0; margin-left: -1px; }
.room-filter-double .room-special-filter-trigger { height: 32px; box-sizing: border-box; padding: 0 10px 0 12px; border: 1px solid #d9d9d9; border-radius: 0 3px 3px 0; background: #fff; }
.room-filter-double .room-special-filter.open .room-special-filter-trigger { position: relative; z-index: 2; border-color: var(--green); box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.room-group-filter-pane .room-special-filter-tag .room-special-filter-popover { right: auto; left: 0; width: 560px; }
.room-group-filter-pane .room-special-filter-size .room-special-filter-popover { right: auto; left: 0; width: 222px; }
.room-group-filter-pane .room-top-tag-modes { display: flex; align-items: center; justify-content: flex-start; }
.room-group-filter-pane .room-top-tag-modes label { width: auto; height: 26px; display: inline-flex; flex-direction: row; align-items: center; gap: 7px; margin: 0; line-height: 26px; }
.room-group-filter-pane .room-top-tag-modes input[type="radio"] { position: static; margin: 0; transform: none; }
.room-group-result-pane { display: flex; flex-direction: column; }
.room-group-result-pane > .room-picker-pane-head { padding: 0 16px; }
.room-picker-pane-head input,.room-group-result-list input,.room-group-footer input { width: 14px; height: 14px; min-height: 14px; margin: 0 7px 0 0; accent-color: var(--green); }
.room-group-result-pane > .room-picker-pane-head > label { height: 38px; display: flex; align-items: center; margin: 0; line-height: 1; }
.room-group-result-pane > .room-picker-pane-head input[type="checkbox"],.room-group-result-list input[type="checkbox"] { position: static !important; inset: auto !important; float: none !important; flex: 0 0 14px; transform: none !important; vertical-align: middle; }
.room-group-result-list { flex: 1; overflow-y: auto; }
.room-group-result-pane.show-empty .room-group-result-list { display: none; }
.room-group-result-pane.show-empty .room-group-empty { display: flex; }
.room-group-empty { flex: 1; flex-direction: column; align-items: center; padding-top: 22px; color: #aaa; text-align: center; }
.room-group-empty > i { width: 88px; height: 88px; position: relative; margin-bottom: 14px; border-radius: 50%; background: #f5f5f5; }
.room-group-empty > i::before { content: ""; width: 38px; height: 46px; position: absolute; left: 24px; top: 19px; border-radius: 3px; background: linear-gradient(#fff 0 7px,#d8d8d8 8px 11px,#fff 12px 27px,#d8d8d8 28px 32px,#fff 33px); box-shadow: 0 3px 0 #d8d8d8; }
.room-group-empty > i::after { content: ""; width: 17px; height: 17px; position: absolute; right: 18px; bottom: 18px; border: 4px solid #aaa; border-radius: 50%; box-sizing: border-box; box-shadow: 9px 9px 0 -7px #aaa; }
.room-group-empty strong { margin-bottom: 4px; color: #aaa; font-size: 14px; font-weight: 400; }
.room-group-empty span { color: #aaa; font-size: 13px; }
.room-group-result-list > label { min-height: 66px; display: grid; grid-template-columns: 20px 42px 1fr; align-items: center; gap: 8px; padding: 8px 16px; border-bottom: 1px solid #eee; }
.room-group-result-list > label:hover { background: #fafafa; }
.room-group-result-list > label > span:last-child { display: grid; gap: 5px; }
.room-group-result-list strong { color: #444; font-size: 13px; font-weight: 500; }
.room-group-result-list small { color: #999; font-size: 12px; }
.room-group-mini-avatar,.room-group-mini-avatar.tone-2,.room-group-mini-avatar.tone-3,.room-group-mini-avatar.tone-4 { width: 40px; height: 40px; border-radius: 4px; background: #fff; }
.room-group-footer { min-height: 54px; padding: 0 16px; }
.room-group-footer > label { display: flex; align-items: center; margin-right: auto; color: #999; font-size: 13px; }
.room-group-footer a { color: var(--green); }
.room-group-footer .green { border-color: var(--green); color: var(--green); }
.room-group-footer .ghost-button,.room-group-footer .primary-button { min-width: 68px; height: 32px; padding: 0 16px; }
.room-plan-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 22px 30px; }
.room-plan-body > div { min-height: 64px; display: grid; align-content: center; gap: 6px; padding: 0 16px; border-bottom: 1px solid #eee; }
.room-plan-body > div:nth-child(odd) { border-right: 1px solid #eee; }
.room-plan-body span { color: #999; font-size: 12px; }.room-plan-body strong { color: #333; font-size: 14px; font-weight: 400; }
.room-plan-dialog { width: 830px; max-width: calc(100vw - 40px); height: 480px; max-height: calc(100vh - 40px); overflow: hidden; }
.room-plan-dialog .friend-modal-head { flex: 0 0 48px; }
.room-plan-layout { min-height: 0; flex: 1; display: grid; grid-template-columns: 210px 1fr; overflow: hidden; }
.room-plan-nav { padding: 18px 0; background: #f5f5f5; }
.room-plan-nav button { width: 100%; min-height: 42px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 0 14px 0 22px; border: 0; color: #666; font-size: 13px; text-align: left; background: transparent; }
.room-plan-nav button:hover { color: #333; background: #fafafa; }
.room-plan-nav button.active { position: relative; color: #333; background: #fff; }
.room-plan-nav button.active::before { content: ""; width: 3px; position: absolute; top: 0; bottom: 0; left: 0; background: var(--green); }
.room-plan-nav button em { color: #999; font-size: 12px; font-style: normal; white-space: nowrap; }
.room-plan-nav button[data-configured="true"] em { color: #28b84f; }
.room-plan-content { min-width: 0; overflow-y: auto; padding: 20px; background: #fff; }
.room-plan-card { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 14px 16px; border-radius: 3px; background: #fafafa; }
.room-plan-card > div { min-width: 0; }
.room-plan-card strong { color: #333; font-size: 14px; font-weight: 500; }
.room-plan-card p { display: flex; flex-wrap: wrap; gap: 0 14px; margin: 7px 0 0; color: #999; font-size: 12px; line-height: 18px; }
.room-plan-card b { color: #ff765d; font-weight: 400; }.room-plan-card span { color: #999; }
.room-plan-card .ghost-button { width: 64px; height: 32px; min-height: 32px; flex: 0 0 64px; padding: 0; }
.room-plan-detail-view { margin-top: 12px; padding: 8px 16px; border: 1px solid #eee; border-radius: 3px; background: #fff; }
.room-plan-detail-view p { min-height: 42px; display: grid; grid-template-columns: 100px 1fr; align-items: center; margin: 0; border-bottom: 1px solid #f0f0f0; font-size: 13px; }
.room-plan-detail-view p:last-child { border-bottom: 0; }.room-plan-detail-view span { color: #999; }.room-plan-detail-view strong { color: #555; font-weight: 400; }
.room-plan-empty { height: 250px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: #aaa; font-size: 13px; }
.room-plan-empty i { width: 62px; height: 48px; position: relative; border: 2px solid #e0e0e0; border-radius: 4px; box-sizing: border-box; }
.room-plan-empty i::before { content: ""; width: 22px; position: absolute; top: 14px; left: 18px; border-top: 2px solid #e0e0e0; box-shadow: 0 8px 0 #e0e0e0; }
.room-plan-dialog .friend-modal-footer { flex: 0 0 52px; }
.room-setting-dialog .friend-modal-head strong { color: #333; font-size: 14px; font-weight: 500; }
.room-settings { display: grid; gap: 18px; padding: 20px 24px 24px; }
.room-settings h5 { margin: 0 0 9px; color: #333; font-size: 14px; font-weight: 600; line-height: 20px; }
.room-setting-options,.room-interval-list { box-sizing: border-box; padding: 10px 16px; background: #f7f7f7; }
.room-setting-options { display: grid; gap: 0; }
.room-setting-options label { min-height: 30px; display: flex; align-items: center; gap: 8px; margin: 0; color: #666; font-size: 14px; font-weight: 400; line-height: 20px; }
.room-setting-options input { width: 16px; height: 16px; min-height: 16px; margin: 0; accent-color: var(--green); }
.room-settings i { width: 14px; height: 14px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: 0 0 14px; border: 1px solid #8c8c8c; border-radius: 50%; color: #666; font-size: 10px; font-style: normal; font-weight: 600; line-height: 12px; }
.room-interval-list { display: grid; gap: 10px; padding-top: 12px; padding-bottom: 12px; }
.room-interval-list label { min-height: 32px; display: flex; align-items: center; gap: 7px; margin: 0; color: #666; font-size: 14px; font-weight: 400; line-height: 20px; }
.room-interval-list label > span { width: 138px; flex: 0 0 138px; text-align: right; }
.room-interval-list input { width: 80px; height: 32px; min-height: 32px; box-sizing: border-box; padding: 0 12px; color: #666; font-size: 14px; }
.room-interval-list em { color: #666; font-style: normal; white-space: nowrap; }
.room-interval-list button { padding: 0; border: 0; color: var(--green); font-size: 14px; font-weight: 400; background: transparent; }

/* Shared WeCom account picker */
.friend-modal-panel.wechat-choose-dialog { width: 700px; height: min(640px, calc(100vh - 48px)); max-height: calc(100vh - 48px); overflow: hidden; }
#wechatChooseModal { z-index: 1600; }
.wechat-choose-dialog .friend-modal-head { flex: 0 0 52px; }
.wechat-choose-search { height: 48px; flex: 0 0 48px; padding: 0 14px; }
.wechat-choose-search .search-control { width: 230px; height: 32px; }
.mom-wechat-picker-tools { min-width:0; display:flex; align-items:center; gap:8px; margin-left:10px; }
.mom-wechat-picker-tools.hidden { display:none; }
.mom-wechat-group-select { width:120px; flex:0 0 120px; }
.mom-wechat-group-select .shared-select-menu { z-index:12; max-height:220px; overflow-y:auto; }
.wechat-choose-dialog.moments-picker-v12 .wechat-select-all { display:none; }
.wechat-choose-dialog.moments-picker-v12 .wechat-choose-list { height:100%; }
.wechat-choose-body { grid-template-columns: minmax(450px, 1fr) 214px; height: auto; min-height: 0; flex: 1 1 auto; overflow: hidden; }
.wechat-choose-left,.wechat-choose-right { min-height: 0; overflow: hidden; }
.wechat-choose-list,.wechat-selected-list { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.wechat-choose-list { height: calc(100% - 40px); }
.wechat-choose-item { min-height: 46px; grid-template-columns: 16px 34px minmax(0, 1fr) auto 8px 38px; gap: 7px; padding: 4px 10px 4px 14px; }
.wechat-choose-item .wx-avatar { width: 34px; height: 34px; }
.wechat-choose-item strong { font-size: 13px; line-height: 16px; }
.wechat-choose-item em { margin-top: 1px; line-height: 14px; }
.wechat-choose-item b { height: 22px; padding: 0 7px; }
.wechat-choose-item small { font-size: 12px; }
.wechat-choose-item.hidden { display: none; }
.wechat-choose-item input,.wechat-select-all input { accent-color: var(--green); }
.wechat-choose-dialog.single-select .wechat-select-all input { visibility: hidden; }
.wechat-choose-dialog.single-select .wechat-select-all { gap: 0; padding-left: 16px; font-weight: 500; }
.wechat-choose-footer { position: relative; z-index: 3; flex: 0 0 56px; overflow: hidden; }
.wechat-choose-footer b { color: var(--green); font-weight: 500; }
.wechat-choose-footer .primary-button,.wechat-choose-footer .ghost-button { min-width: 64px; height: 32px; }
.wechat-choose-footer .wechat-choose-footer-batch,.wechat-choose-footer .wechat-choose-footer-actions { display:flex; align-items:center; gap:12px; }
.wechat-choose-footer-batch .text-button { height:32px; padding:0; border:0; color:var(--green); background:transparent; }
.wechat-choose-footer-batch .text-button:hover,.wechat-choose-footer-batch .text-button:focus { color:#208f18; outline:0; }
.wechat-choose-footer-batch .text-button:disabled { color:#bbb; cursor:not-allowed; }

@media (max-width: 1200px) {
  .room-filter-panel { gap: 10px; }
  .room-member-toolbar { flex-wrap: wrap; }
}

/* Customer group detail */
.room-detail-workspace {
  min-height: calc(100vh - 104px);
  display: grid;
  grid-template-columns: 280px minmax(610px, 1fr) 330px;
  gap: 16px;
  padding: 16px;
  box-sizing: border-box;
  background: #f2f2f2;
}
.room-detail-sidebar,.room-detail-main,.room-detail-workspace > .room-activity { min-width: 0; margin: 0; background: #fff; }
.room-detail-sidebar { padding: 0 16px; }
.room-detail-identity { min-height: 162px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border-bottom: 1px dashed #e8e8e8; }
.room-detail-identity .room-group-avatar { width: 52px; height: 52px; }
.room-detail-identity strong { max-width: 220px; overflow: hidden; color: #333; font-size: 15px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.room-detail-facts { padding: 13px 0; border-bottom: 1px dashed #e8e8e8; }
.room-detail-facts p { min-height: 27px; display: flex; align-items: center; margin: 0; color: #999; font-size: 13px; }
.room-detail-facts b { margin-left: 5px; color: #666; font-weight: 400; }
.room-detail-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px 0; border-bottom: 1px dashed #e8e8e8; }
.room-detail-actions .ghost-button { height: 34px; min-height: 34px; padding: 0 10px; }
.room-detail-notice,.room-detail-tags { padding: 16px 0; }
.room-detail-notice > strong,.room-detail-tags > strong { color: #333; font-size: 14px; font-weight: 600; }
.room-detail-notice > p { margin: 12px 0 0; color: #999; font-size: 13px; line-height: 22px; }
.room-detail-notice > div { height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #aaa; font-size: 13px; }
.room-detail-notice i { width: 64px; height: 64px; position: relative; border-radius: 50%; background: #f5f5f5; }
.room-detail-notice i::before { content: ""; width: 28px; height: 34px; position: absolute; left: 18px; top: 14px; border-radius: 3px; background: linear-gradient(#fff 0 7px,#d8d8d8 8px 11px,#fff 12px 23px,#d8d8d8 24px 27px,#fff 28px); box-shadow: 0 3px 0 #d8d8d8; }
.room-detail-notice i::after { content: ""; width: 14px; height: 14px; position: absolute; right: 11px; bottom: 11px; border: 3px solid #aaa; border-radius: 50%; box-sizing: border-box; box-shadow: 7px 7px 0 -6px #aaa; }
.room-detail-tags p { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.room-detail-tags span { padding: 2px 8px; border: 1px solid #ddd; border-radius: 3px; color: #666; font-size: 12px; background: #fafafa; }
.room-detail-tags em { color: #aaa; font-size: 13px; font-style: normal; }
.room-detail-main { overflow: visible; padding: 16px; }
.room-member-tabs { height: 38px; display: flex; align-items: stretch; margin-bottom: 12px; border-bottom: 1px solid #e8e8e8; }
.room-member-tabs label { min-width: 92px; position: relative; display: flex; align-items: center; justify-content: center; box-sizing: border-box; color: #666; font-size: 13px; cursor: pointer; background: #fff; transition: color .15s ease,background .15s ease; }
.room-member-tabs label:hover { color: var(--green); background: #fafdf9; }
.room-member-tabs label.active { color: var(--green); font-weight: 500; }
.room-member-tabs label.active::after { content: ""; height: 2px; position: absolute; right: 14px; bottom: -1px; left: 14px; border-radius: 2px 2px 0 0; background: var(--green); }
.room-member-tabs input { position: absolute; opacity: 0; pointer-events: none; }
.room-detail-main .room-member-toolbar { display: grid; grid-template-columns: 190px 190px 148px 148px; align-items: center; gap: 8px; padding: 0 0 12px; border-bottom: 0; }
.room-detail-main .search-control { width: 190px; height: 32px; flex: 0 0 190px; }
.room-detail-main .shared-select { width: 148px; flex: 0 0 148px; }
.room-detail-main .room-member-toolbar > .shared-select:nth-child(6) { width: 190px; grid-column: 2; grid-row: 2; transform: translateY(-8px); }
.room-member-date { width: 190px; height: 32px; flex: 0 0 190px; position: relative; box-sizing: border-box; border: 1px solid #d9d9d9; border-radius: 3px; }
.room-member-date:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px rgba(45,171,17,.08); }
.room-member-date input { width: 100%; height: 30px; min-height: 30px; box-sizing: border-box; padding: 0 32px 0 11px; border: 0; color: #666; font-size: 13px; box-shadow: none; }
.room-member-date input::placeholder { color: #aaa; }
.room-member-date i { width: 14px; height: 14px; position: absolute; top: 8px; right: 9px; border: 1px solid #aaa; border-radius: 2px; box-sizing: border-box; pointer-events: none; }
.room-member-date i::after { content: ""; position: absolute; top: 3px; left: 1px; right: 1px; border-top: 1px solid #aaa; }
.room-detail-main #roomRefreshInfo { width: 102px; height: 32px; min-height: 32px; grid-column: 4; grid-row: 2; justify-self: end; margin: 0; padding: 0 12px; border-color: var(--green); color: var(--green); }
.room-detail-main #roomRefreshInfo:disabled { color: #8db983; background: #f5fbf3; }
.room-member-table-wrap { overflow-x: auto; border-top: 1px solid #eee; }
.room-detail-main .room-member-table { min-width: 760px; table-layout: fixed; font-size: 13px; }
.room-detail-main .room-member-table th { height: 44px; padding: 0 12px; color: #333; font-weight: 600; background: #f5f5f5; }
.room-detail-main .room-member-table td { height: 66px; padding: 8px 12px; color: #555; font-size: 13px; line-height: 20px; }
.room-detail-main .room-member-table th:nth-child(1) { width: 22%; }.room-detail-main .room-member-table th:nth-child(2) { width: 15%; }.room-detail-main .room-member-table th:nth-child(3) { width: 20%; }.room-detail-main .room-member-table th:nth-child(4) { width: 25%; }.room-detail-main .room-member-table th:nth-child(5) { width: 18%; }
.room-detail-main .room-member-table td > small { color: #999; font-size: 12px; }
.room-detail-main .room-member-cell > .wx-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
.room-detail-main .room-member-cell > .member-art-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
.room-detail-main .room-member-cell strong { color: #444; font-size: 13px; font-weight: 400; }
.room-detail-main .room-member-cell small { color: #f59a23; font-size: 12px; }
.room-detail-workspace > .room-activity { padding: 0 18px 18px; border-left: 1px solid #eee; }
.room-detail-workspace > .room-activity > strong { min-height: 64px; display: flex; flex-direction: column; justify-content: center; gap: 4px; box-sizing: border-box; border-bottom: 1px solid #eee; color: #333; font-size: 15px; font-weight: 600; line-height: 20px; }
.room-detail-workspace > .room-activity > strong small { display: block; margin: 0; color: #aaa; font-size: 12px; font-weight: 400; line-height: 18px; }
.room-detail-workspace > .room-activity > .room-activity-list { width: 100%; height: auto; position: relative; display: block; margin: 18px 0 4px; padding-left: 8px; box-sizing: border-box; color: #555; place-items: initial; justify-items: stretch; text-align: left; }
.room-detail-workspace > .room-activity > .room-activity-list::before { content: ""; width: 1px; position: absolute; top: 7px; bottom: 26px; left: 12px; background: #c9dfc4; }
.room-detail-workspace .room-activity-item { width: 100%; min-height: 84px; height: auto; position: relative; display: block; box-sizing: border-box; margin: 0; padding: 0 4px 18px 26px; color: #555; border: 0; place-items: initial; justify-items: stretch; text-align: left; }
.room-detail-workspace .room-activity-item:hover p { color: var(--green); }
.room-activity-item > i { width: 9px; height: 9px; position: absolute; z-index: 1; left: 0; top: 5px; box-sizing: border-box; border: 2px solid #fff; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 1px #8ac77d; }
.room-activity-item p { width: 100%; margin: 0 0 7px; color: #444; font-size: 13px; line-height: 20px; text-align: left; transition: color .15s ease; }
.room-activity-item time { width: 100%; display: block; color: #aaa; font-size: 12px; line-height: 18px; text-align: left; }
.room-detail-workspace > .room-activity > .room-activity-page { height: 32px; display: flex; align-items: center; justify-content: center; gap: 6px; padding-top: 4px; border-top: 1px solid #f2f2f2; color: #aaa; }
.room-activity-page button { width: 28px; height: 28px; border: 0; border-radius: 3px; color: #bbb; background: transparent; }
.room-activity-page button:not(:disabled):hover { color: var(--green); background: #f4faf2; }
.room-activity-page span { width: 26px; height: 26px; display: grid; place-items: center; box-sizing: border-box; border: 1px solid var(--green); border-radius: 3px; color: var(--green); font-size: 13px; }
@media (max-width: 1450px) {
  .room-detail-workspace { grid-template-columns: 250px minmax(570px,1fr) 285px; gap: 12px; padding: 12px; }
  .room-detail-main .room-member-toolbar { grid-template-columns: 176px 176px 138px 138px; }
  .room-detail-main .search-control,.room-member-date { width: 176px; flex-basis: 176px; }
  .room-detail-main .shared-select { width: 138px; flex-basis: 138px; }
  .room-detail-main .room-member-toolbar > .shared-select:nth-child(6) { width: 176px; }
}

/* Customer management */
.customer-page { height:calc(100vh - 48px); min-height:0; overflow:hidden; color:#444; background:#f2f2f2; }
.customer-view[data-customer-view="list"]:not(.hidden) { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.customer-view[data-customer-view="list"] > :not(.customer-table-wrap) { flex:0 0 auto; }
.customer-page-head { height: 46px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid #eee; background: #fff; }
.customer-head-title { display: flex; align-items: center; gap: 14px; }
.customer-head-title > strong { font-size: 15px; font-weight: 600; }
.customer-company-select,
.customer-company-select .shared-company-filter,
.customer-company-select .shared-select-trigger { width: 220px; height:30px; min-height:30px; }
.customer-task-button { height: 30px; min-height:30px; padding: 0 15px 0 34px; position: relative; }
.customer-task-button::before { content: ""; width: 14px; height: 14px; position: absolute; left: 13px; top: 7px; border: 1px solid #777; border-radius: 2px; box-sizing: border-box; }
.customer-filter-panel { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: 8px; margin: 8px 16px 0; padding: 10px 12px; border: 1px solid #eee; background: #fff; }
.customer-filter-panel .search-control { width: 100%; height: 30px; }
.customer-filter-panel .search-control input { height: 28px; min-height: 28px; font-size:13px; }
.customer-filter-panel .search-button { width: 34px; height: 28px; }
.customer-filter-panel .customer-shared-select { width: 100%; }
.customer-filter-panel select,
.customer-filter-panel .shared-select-trigger {
  height:30px;
  min-height:30px;
  font-size:13px;
}
.customer-selected-filters { min-height: 50px; display: flex; align-items: center; gap: 10px; margin: 0 16px; padding: 0 14px; box-sizing: border-box; border-top: 1px dashed #e5e5e5; color: #555; font-size: 13px; background: #fff; }
.customer-selected-filters.hidden { display: none; }
.customer-selected-filters > span { flex: 0 0 auto; }
.customer-selected-filters > div { display: flex; flex-wrap: wrap; gap: 8px; }
.customer-selected-filters > div button { height: 28px; display: inline-flex; align-items: center; gap: 8px; padding: 0 8px 0 10px; border: 0; border-radius: 2px; color: #596273; font-size: 12px; background: #edf3ff; }
.customer-selected-filters > div button i { width: 11px; height: 11px; position: relative; display: inline-block; }
.customer-selected-filters > div button i::before,.customer-selected-filters > div button i::after { content: ""; width: 10px; position: absolute; left: 1px; top: 5px; border-top: 1px solid #8992a0; transform: rotate(45deg); }
.customer-selected-filters > div button i::after { transform: rotate(-45deg); }
.customer-selected-filters > button { height: 28px; flex: 0 0 auto; padding: 0 4px; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.customer-date-range { height: 30px; position: relative; grid-column: span 2; display: grid; grid-template-columns: auto 1fr auto 1fr 18px; align-items: center; gap: 6px; box-sizing: border-box; padding: 0 8px 0 11px; border: 1px solid #d9d9d9; border-radius: 3px; color: #aaa; font-size: 13px; background: #fff; cursor: pointer; }
.customer-date-range.open { border-color: var(--green); box-shadow: 0 0 0 2px rgba(42,166,18,.08); }
.customer-date-range input { width: 100%; height: 26px; min-height: 26px; padding: 0 2px; border: 0; color: #666; font-size: 13px; box-shadow: none; }
.customer-date-range b { color: #aaa; font-weight: 400; }
.customer-date-range i { width: 14px; height: 14px; position: relative; border: 1px solid #aaa; border-radius: 2px; box-sizing: border-box; }
.customer-date-range i::after { content: ""; position: absolute; top: 3px; left: 1px; right: 1px; border-top: 1px solid #aaa; }
.customer-date-range .date-range-popover { left: 0; top: 34px; z-index: 80; cursor: default; }
.customer-date-range .date-days button.range-end { color: #fff; background: var(--green); }
.customer-tag-filter { height: 30px; position: relative; min-width: 0; }
.customer-tag-filter-trigger { width: 100%; height: 30px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; border: 1px solid #d9d9d9; border-radius: 3px; color: #aaa; font-size: 13px; background: #fff; }
.customer-tag-filter.has-value .customer-tag-filter-trigger { color:#555; }
.customer-account-select .shared-select-menu button em,.customer-account-select .shared-select-trigger em { color:#f59a23; font-style:normal; }
.customer-account-select .shared-select-menu button { height:34px; }
.customer-account-select .shared-select-menu button.active em { color:#f59a23; }
.customer-tag-filter-trigger i { width: 7px; height: 7px; margin: -3px 2px 0 8px; border-right: 1px solid #999; border-bottom: 1px solid #999; transform: rotate(45deg); }
.customer-tag-filter.open .customer-tag-filter-trigger { border-color: var(--green); box-shadow: 0 0 0 2px rgba(42,166,18,.08); }
.customer-tag-filter.open .customer-tag-filter-trigger i { margin-top: 3px; transform: rotate(225deg); }
.customer-tag-filter-menu { width: 330px; position: absolute; left: 0; top: 36px; z-index: 90; padding: 0 12px 12px; border: 1px solid #e4e4e4; border-radius: 3px; background: #fff; box-shadow: 0 8px 20px rgba(0,0,0,.13); }
.customer-tag-filter-menu.hidden { display: none; }
.customer-tag-filter-menu header { height: 40px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #eee; }
.customer-tag-filter-menu header strong { color: #333; font-size: 13px; font-weight: 500; }
.customer-tag-filter-menu header button { padding: 0; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.customer-tag-filter-menu section { padding-top: 10px; }
.customer-tag-filter-menu section b { display: block; margin-bottom: 7px; color: #666; font-size: 12px; font-weight: 500; }
.customer-tag-filter-menu section div { display: flex; flex-wrap: wrap; gap: 6px; }
.customer-tag-filter-menu [data-customer-tag-value] { height: 26px; padding: 0 9px; border: 1px solid #d9d9d9; border-radius: 3px; color: #666; font-size: 12px; background: #fff; }
.customer-tag-filter-menu [data-customer-tag-value].active { border-color: var(--green); color: var(--green); background: #f6fbf4; }
.customer-tag-filter-menu { width:560px; max-height:460px; display:flex; flex-direction:column; overflow:hidden; padding:0; }
.customer-tag-filter.smart .customer-tag-filter-menu { right: 0; left: auto; }
.customer-tag-component-search { width: auto; flex: 0 0 32px; margin: 12px 12px 6px; }
.customer-tag-component-body { min-height: 210px; max-height: 340px; padding: 0 12px 10px; overflow-y: auto; }
.customer-tag-component-body .tag-select-body { padding: 0; overflow: visible; }
.customer-tag-component-body .tag-group { padding-top: 6px; }
.customer-tag-component-body .tag-group-head label { font-size: 13px; }
.customer-tag-component-body .tag-chip-list { gap: 7px 6px; padding: 4px 0 5px 54px; }
.customer-tag-component-body .smart-top-tags { padding: 8px 0 8px 54px; }
.customer-tag-component-body .tag-chip-list button { height: 26px; padding: 0 9px; font-size: 12px; }
.customer-tag-component-body .smart-tag-note { padding-left: 24px; font-size: 13px; }
.customer-tag-filter-menu > footer { height: 48px; display: flex; flex: 0 0 48px; align-items: center; gap: 8px; padding: 0 12px; border-top: 1px solid #eee; background: #fff; }
.customer-tag-filter-menu > footer > span { color: #666; font-size: 13px; }
.customer-tag-filter-menu > footer b { color: var(--green); font-weight: 400; }
.customer-tag-filter-menu > footer .text-button { padding: 0; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.customer-tag-filter-menu > footer > div { display: flex; gap: 8px; margin-left: auto; }
.customer-tag-filter-menu > footer button { height: 30px; }
.customer-list-head { min-height: 44px; display: flex; align-items: center; justify-content: space-between; margin: 8px 16px 0; padding: 0 14px; border-bottom: 1px solid #eee; background: #fff; }
.customer-list-head > div { display: flex; align-items: center; gap: 12px; }
.customer-list-head strong { color: #333; font-size: 14px; font-weight: 600; }
.customer-list-head span { color: #888; font-size: 13px; }
.customer-list-head button { height: 30px; min-height: 30px; }
.customer-auto-phone { height: 32px; position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; color: #666; font-size: 13px; line-height: 20px; cursor: pointer; }
.customer-auto-phone input { width: 1px; height: 1px; position: absolute; left: 0; top: 50%; margin: 0; opacity: 0; }
.customer-auto-phone i { width: 34px; height: 18px; position: relative; flex: 0 0 34px; box-sizing: border-box; border-radius: 10px; background: var(--green); }
.customer-auto-phone i::after { content: ""; width: 14px; height: 14px; position: absolute; right: 2px; top: 2px; border-radius: 50%; background: #fff; }
.customer-auto-phone input:not(:checked) + i { background: #c8c8c8; }
.customer-auto-phone input:not(:checked) + i::after { right: 18px; }
.customer-auto-phone span { display: block; color: #666; font-size: 13px; line-height: 20px; white-space: nowrap; }
.customer-list-head > div:last-child { height:44px; align-items:center; gap:8px; }
.customer-list-head > div:last-child > * { align-self:center; margin-top:0; margin-bottom:0; }
.customer-list-head > div:last-child button { height:30px; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; line-height:28px; vertical-align:middle; }
.customer-list-head > div:last-child .text-button { min-width:40px; padding:0 8px; border:0; }
.customer-list-head > div:last-child .ghost-button { padding:0 13px; }
.customer-list-head .customer-auto-phone { height:30px; align-items:center; line-height:30px; }
.customer-list-head .customer-auto-phone span { height:30px; display:inline-flex; align-items:center; line-height:30px; }
.customer-table-wrap { min-height:0; flex:1 1 auto; margin:0 16px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; background:#fff; }
.customer-table { width: 100%; min-width: 1740px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.customer-table th { height:46px; position:sticky; z-index:2; top:0; padding:0 10px; color:#333; font-weight:600; text-align:left; background:#f5f5f5; }
.customer-table td { min-height: 58px; padding: 9px 10px; border-bottom: 1px solid #eee; color: #555; line-height: 20px; vertical-align: middle; }
.customer-table th:nth-child(1),.customer-table td:nth-child(1) { width: 32px; text-align: center; }
.customer-table th:nth-child(2) { width: 180px; }.customer-table th:nth-child(3) { width: 110px; }.customer-table th:nth-child(4) { width: 58px; }.customer-table th:nth-child(5) { width: 150px; }.customer-table th:nth-child(6) { width: 104px; }.customer-table th:nth-child(7) { width: 104px; }.customer-table th:nth-child(8) { width: 86px; }.customer-table th:nth-child(9) { width: 150px; }.customer-table th:nth-child(10),.customer-table th:nth-child(11) { width: 142px; }.customer-table th:nth-child(12) { width: 150px; }.customer-table th:nth-child(13) { width: 210px; }
.customer-table th:last-child,.customer-table td:last-child { position: sticky; z-index: 2; right: 0; box-shadow: -5px 0 8px rgba(0,0,0,.035); background: #fff; }
.customer-table th:last-child { z-index:4; background:#f5f5f5; }
.customer-table .customer-column-hidden { display: none; }
.customer-table input[type="checkbox"],.customer-columns-body input,.customer-tag-picker input { width: 15px; height: 15px; min-height: 15px; accent-color: var(--green); }
.customer-name-cell { display: flex; align-items: center; gap: 9px; }
.customer-name-cell .wx-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
.customer-name-cell .wx-avatar[class*="customer-art-"] {
  border-radius: 5px;
  background:
    conic-gradient(from var(--customer-art-turn) at 72% 72%, var(--customer-art-c) 0 25%, transparent 0 100%),
    linear-gradient(90deg, var(--customer-art-a) 0 48%, transparent 48%),
    var(--customer-art-paper);
  box-shadow: inset 0 0 0 1px rgba(90, 105, 98, 0.08);
}
.customer-name-cell .wx-avatar[class*="customer-art-"]::before,
.customer-name-cell .wx-avatar[class*="customer-art-"]::after {
  content: "";
  position: absolute;
  display: block;
}
.customer-name-cell .wx-avatar[class*="customer-art-"]::before {
  width: 20px;
  height: 20px;
  top: var(--customer-art-y);
  left: var(--customer-art-x);
  border-radius: var(--customer-art-radius);
  background: var(--customer-art-b);
  transform: rotate(var(--customer-art-rotate));
}
.customer-name-cell .wx-avatar[class*="customer-art-"]::after {
  width: 10px;
  height: 10px;
  right: 5px;
  top: 5px;
  border: 3px solid var(--customer-art-d);
  border-radius: 50%;
  background: transparent;
}
.customer-art-dawn { --customer-art-paper:#fff3f2; --customer-art-a:#e8b8bd; --customer-art-b:#f2cfad; --customer-art-c:#c6b8d8; --customer-art-d:#e8c46f; --customer-art-turn:18deg; --customer-art-x:5px; --customer-art-y:15px; --customer-art-radius:50% 50% 4px 4px; --customer-art-rotate:-10deg; }
.customer-art-lake { --customer-art-paper:#f2f7f3; --customer-art-a:#b9d5cb; --customer-art-b:#d7c5dc; --customer-art-c:#f0d3a6; --customer-art-d:#d5a8ae; --customer-art-turn:65deg; --customer-art-x:3px; --customer-art-y:4px; --customer-art-radius:3px 50% 50% 3px; --customer-art-rotate:8deg; }
.customer-art-meadow { --customer-art-paper:#f8f7e9; --customer-art-a:#c7d9b7; --customer-art-b:#f0cea9; --customer-art-c:#dcb9c5; --customer-art-d:#e4bd69; --customer-art-turn:110deg; --customer-art-x:7px; --customer-art-y:14px; --customer-art-radius:50%; --customer-art-rotate:0deg; }
.customer-art-orchid { --customer-art-paper:#f7f1f8; --customer-art-a:#cbbbdc; --customer-art-b:#e6b9c9; --customer-art-c:#c3d4be; --customer-art-d:#edcc80; --customer-art-turn:155deg; --customer-art-x:2px; --customer-art-y:12px; --customer-art-radius:50% 4px 50% 4px; --customer-art-rotate:18deg; }
.customer-art-sunset { --customer-art-paper:#fff4e9; --customer-art-a:#eab9aa; --customer-art-b:#f1cca4; --customer-art-c:#bfc9dc; --customer-art-d:#d8b4c1; --customer-art-turn:205deg; --customer-art-x:5px; --customer-art-y:3px; --customer-art-radius:4px 4px 50% 50%; --customer-art-rotate:-8deg; }
.customer-art-stone { --customer-art-paper:#f4f3ef; --customer-art-a:#c4ceca; --customer-art-b:#d8c5b9; --customer-art-c:#d7d0a5; --customer-art-d:#e4b5aa; --customer-art-turn:250deg; --customer-art-x:3px; --customer-art-y:15px; --customer-art-radius:50% 4px 4px 50%; --customer-art-rotate:12deg; }
.customer-art-indigo { --customer-art-paper:#f2f2fa; --customer-art-a:#babfdd; --customer-art-b:#d8b8d1; --customer-art-c:#c4d6cc; --customer-art-d:#edce87; --customer-art-turn:300deg; --customer-art-x:7px; --customer-art-y:13px; --customer-art-radius:50%; --customer-art-rotate:0deg; }
.customer-art-wheat { --customer-art-paper:#fbf7e8; --customer-art-a:#ddcf9f; --customer-art-b:#edc1a8; --customer-art-c:#c9bdd8; --customer-art-d:#b7d2bf; --customer-art-turn:345deg; --customer-art-x:2px; --customer-art-y:4px; --customer-art-radius:4px 50% 4px 50%; --customer-art-rotate:-15deg; }
.customer-name-cell strong { display: block; max-width: 128px; overflow: hidden; color: #444; font-size: 13px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.customer-name-cell small { font-size: 12px; }
.customer-name-cell small.wechat-source { color: var(--green); }
.customer-name-cell small.other-source { color: #f59a23; }
.customer-tag { display: inline-block; margin: 2px 3px 2px 0; padding: 1px 6px; border: 1px solid #d9d9d9; border-radius: 3px; color: #666; font-size: 12px; background: #fafafa; }
.customer-tag.smart { border-color: #e2e5e1; color: #777; background: #fafbfa; }
.customer-table td:nth-child(5),.customer-table td:nth-child(9) { overflow: hidden; }
.customer-table-tags { width: 100%; display: flex; align-items: center; gap: 4px; overflow: hidden; white-space: nowrap; }
.customer-table-tags .customer-tag { max-width: 54px; min-width: 0; flex: 0 1 auto; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.customer-tag-more { flex: 0 0 auto; color: #999; font-size: 13px; letter-spacing: 1px; }
.customer-tag-tooltip { max-width: 360px; position: fixed; z-index: 1000; padding: 7px 10px; border: 1px solid #dedede; border-radius: 3px; color: #555; font-size: 12px; line-height: 20px; overflow-wrap: anywhere; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.13); pointer-events: none; }
.customer-relation { color: var(--green); }
.customer-relation::before { content: ""; width: 6px; height: 6px; display: inline-block; margin-right: 5px; border-radius: 50%; background: currentColor; vertical-align: 1px; }
.customer-relation.lost { color: #ef6a61; }
.customer-relation.unverified { color:#d99a32; }
.customer-relation.blocked { color:#d65d58; }
.customer-edit-mini { width: 20px; height: 20px; display: inline-grid; place-items: center; margin-left: 3px; padding: 0; border: 0; border-radius: 3px; vertical-align: -5px; background: transparent; cursor: pointer; }
.customer-edit-mini::before { content: ""; width: 13px; height: 13px; background: #999; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.customer-edit-mini:hover { background: #f3f8f1; }
.customer-edit-mini:hover::before { background: var(--green); }
.customer-row-actions { width: 130px; display:flex; align-items:center; gap:14px; justify-content:flex-start; }
.customer-row-actions button { padding: 0; border: 0; color: var(--green); font-size: 13px; font-weight: 400; background: transparent; }
.customer-row-actions button.muted { color: #aaa; }
.customer-list-wechat { display:inline-flex; align-items:center; white-space:nowrap; }
.customer-list-wechat i { width:6px; height:6px; flex:0 0 6px; margin-right:7px; border-radius:50%; background:#d8d8d8; }
.customer-list-wechat i.online { background:#24bd65; }
.customer-list-wechat i.offline { background:#cfcfcf; }
.customer-empty { height: 180px; color: #aaa !important; text-align: center; }
.customer-batch-bar { min-height:50px; position:relative; z-index:30; display:flex; align-items:center; gap:8px; margin:0 16px; padding:0 14px; border-top:1px solid #e5e5e5; background:#fff; box-shadow:0 -4px 12px rgba(0,0,0,.04); }
.customer-batch-bar > button { height: 32px; padding: 0 12px; border: 1px solid var(--green); border-radius: 3px; color: var(--green); background: #fff; }
.customer-batch-bar > button:disabled { border-color: #ddd; color: #bbb; background: #f8f8f8; }
.customer-batch-bar b { color: var(--green); font-weight: 500; }
.customer-batch-dropdown { position: relative; }
.customer-batch-dropdown > button { height: 32px; display: flex; align-items: center; gap: 8px; padding: 0 10px 0 12px; border: 1px solid var(--green); border-radius: 3px; color: var(--green); background: #fff; }
.customer-batch-dropdown > button:disabled { border-color: #ddd; color: #bbb; background: #f8f8f8; }
.customer-batch-dropdown > button i { width: 6px; height: 6px; margin-top: -3px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }
.customer-batch-dropdown.open > button i { margin-top: 3px; transform: rotate(225deg); }
.customer-batch-menu { min-width: 126px; position: absolute; left: 0; bottom: 36px; z-index: 35; padding: 4px 0; border: 1px solid #e5e5e5; border-radius: 3px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.13); }

.corp-page { height:calc(100vh - 48px); min-height:0; display:flex; flex-direction:column; overflow:hidden; margin:0; padding:16px 20px 20px; color:#333; font-size:14px; background:#f2f2f2; }
.corp-page.hidden { display:none; }
.corp-page-head { height:46px; display:flex; align-items:center; flex:0 0 auto; margin:0 0 0; padding:0 20px; background:#fff; }
.corp-page-head h2 { margin:0; color:#333; font-size:14px; font-weight:600; line-height:20px; }
.corp-table-wrap { min-height:0; flex:1 1 auto; margin:0; padding:8px 20px 20px; overflow:auto; background:#fff; }
.corp-table { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; font-size:14px; background:#fff; }
.corp-table th { height:44px; padding:0 20px; border-bottom:1px solid #eee; color:#222; font-weight:600; line-height:44px; text-align:left; background:#f5f5f5; }
.corp-table td { height:48px; padding:0 20px; border-bottom:1px solid #ececec; color:#333; font-weight:400; line-height:22px; vertical-align:middle; word-break:break-all; overflow-wrap:anywhere; }
.corp-table tbody tr:hover { background:#f5f5f5; }
.corp-table th:nth-child(1) { width:38%; }
.corp-table th:nth-child(2) { width:21%; }
.corp-table th:nth-child(3) { width:30%; }
.corp-table th:nth-child(4) { width:11%; }
.corp-remark-cell { min-height:48px; display:inline-flex; align-items:center; gap:6px; max-width:100%; }
.corp-remark-text { min-width:0; color:#333; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.corp-edit-icon { width:18px; height:18px; flex:0 0 18px; padding:0; border:0; border-radius:3px; background:transparent; position:relative; }
.corp-edit-icon::before { content:""; width:12px; height:12px; display:block; margin:3px auto; background:#999; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.corp-edit-icon:hover { background:#f5faf3; }
.corp-edit-icon:hover::before { background:var(--green); }
.corp-delete-button { padding:0; border:0; color:var(--green); font-size:14px; font-weight:400; line-height:20px; background:transparent; }
.corp-action-modal { z-index:1900; }
.corp-dialog { width:560px; }
.corp-dialog .friend-modal-body { padding:22px 28px; }
.corp-delete-dialog { width:416px; border-radius:3px; }
.corp-delete-dialog .friend-modal-body { padding:32px 32px 10px; }
.corp-delete-dialog .friend-modal-footer { height:56px; padding:0 32px 24px; border-top:0; }
.corp-delete-dialog .ghost-button,
.corp-delete-dialog .primary-button { min-width:64px; height:32px; }
.corp-delete-confirm { display:flex; align-items:flex-start; gap:14px; }
.corp-delete-confirm i { flex:0 0 auto; width:20px; height:20px; margin-top:2px; border:1px solid #f5a623; border-radius:50%; color:#f5a623; font-size:14px; font-style:normal; font-weight:600; line-height:18px; text-align:center; box-sizing:border-box; }

.subaccounts-page { height:calc(100vh - 48px); min-height:0; overflow:hidden; background:#f2f2f2; }
.subaccounts-page.hidden { display:none; }
.subaccounts-root { height:100%; min-height:0; display:flex; flex-direction:column; padding:12px 16px 16px; box-sizing:border-box; }
.subaccounts-titlebar { height:46px; min-height:46px; flex:0 0 46px; display:flex; align-items:center; margin-bottom:10px; padding:0 18px; border:1px solid #e8e8e8; border-bottom-color:#eee; background:#fff; box-sizing:border-box; }
.subaccounts-titlebar .page-title-name { color:#333; font-size:14px; font-weight:600; line-height:20px; }
.subaccounts-titlebar > i { width:1px; height:18px; background:#ddd; }
.subaccounts-admin-login { width:auto; min-width:92px; height:32px; margin-left:auto; padding:0 14px; color:var(--green); border-color:var(--green); }
.subaccounts-panel { min-height:0; flex:1; display:flex; flex-direction:column; border:1px solid #e8e8e8; background:#fff; overflow:hidden; }
.subaccounts-account-layout { min-height:0; flex:1; display:grid; grid-template-columns:252px minmax(0,1fr); overflow:hidden; background:#fff; }
.subaccounts-account-main { min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.subaccounts-group-panel { min-width:0; min-height:0; display:flex; flex-direction:column; border-right:1px solid #eee; background:#fff; overflow:hidden; }
.subaccounts-group-panel header { height:50px; flex:0 0 50px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; box-sizing:border-box; }
.subaccounts-group-panel header strong { color:#333; font-size:15px; font-weight:500; }
.subaccounts-group-panel header button { padding:0; border:0; color:var(--green); font-size:13px; background:transparent; }
.subaccounts-group-tools { height:48px; flex:0 0 48px; display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:10px; padding:7px 16px 8px; box-sizing:border-box; }
.subaccounts-group-tools .search-control { width:100%; height:32px; }
.subaccounts-group-tools .search-control input { height:30px; font-size:13px; }
.subaccounts-group-add-mini { width:32px; height:32px; border:1px solid #d9d9d9; border-radius:3px; color:#555; font-size:18px; line-height:30px; background:#fff; }
.subaccounts-group-add-mini:hover { color:var(--green); border-color:var(--green); }
.subaccounts-group-nav { min-height:0; flex:1; overflow:auto; padding:4px 16px 14px; box-sizing:border-box; }
.subaccounts-group-nav button { width:100%; height:40px; display:grid; grid-template-columns:14px minmax(0,1fr) 20px; align-items:center; gap:6px; margin:0 0 2px; padding:0 8px; border:0; border-radius:3px; color:#333; font-size:14px; text-align:left; background:#fff; box-sizing:border-box; }
.subaccounts-group-nav button.active { background:#edf4ff; }
.subaccounts-group-nav button:hover { background:#f6f8fb; }
.subaccounts-group-nav button.active:hover { background:#edf4ff; }
.subaccounts-group-nav i { color:#aaa; font-style:normal; font-size:13px; }
.subaccounts-group-nav span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.subaccounts-group-nav em { color:#999; font-style:normal; font-size:13px; }
.subaccounts-group-nav b { color:#999; font-size:18px; font-weight:400; text-align:center; }
.subaccounts-group-nav p { margin:18px 0; color:#999; text-align:center; }
.subaccounts-group-panel.managed-wechat-groups { min-height:0; padding:10px; border-width:0 1px 0 0; border-color:#eee; overflow:hidden; box-sizing:border-box; }
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-search { flex:0 0 auto; margin-bottom:10px; }
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-search > button[aria-label]::before {
  width:16px;
  height:16px;
  margin:0;
  position:absolute;
  left:50%;
  top:50%;
  border:0;
  border-radius:0;
  background:rgba(0,0,0,.58);
  mask:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='7' cy='7' r='4.8' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M10.8 10.8L14 14' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform:translate(-50%,-50%);
  box-sizing:border-box;
}
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-search > button[aria-label]::after { display:none; }
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-nav { min-height:0; flex:1; padding:0; gap:4px; overflow:auto; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row,
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-main { height:38px; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row { display:grid; grid-template-columns:minmax(0,1fr) 28px; align-items:center; column-gap:2px; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-main { width:auto; min-width:0; display:grid; grid-template-columns:13px minmax(0,1fr); align-items:center; gap:9px; margin:0; padding:0 6px 0 12px; border:0; border-radius:0; box-sizing:border-box; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-main span { min-width:0; max-width:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-more { width:28px; height:28px; display:block; margin:0; padding:0; border:0; border-radius:3px; color:#777; line-height:28px; text-align:center; background:transparent; }
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-menu { width:92px; right:8px; top:32px; }
.subaccounts-group-panel.managed-wechat-groups .subaccounts-group-menu button { width:100%; height:36px; display:block; padding:0 14px; line-height:36px; white-space:nowrap; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row.active .managed-wechat-group-main,
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row.active .managed-wechat-group-more { color:#2dab11; background:transparent; }
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row.active .managed-wechat-group-main:hover,
.subaccounts-group-panel.managed-wechat-groups .managed-wechat-group-row.active .managed-wechat-group-more:hover { background:transparent; }
.subaccounts-tabs { height:44px; flex:0 0 44px; display:flex; align-items:center; gap:22px; padding:0 20px; border-bottom:1px solid #eee; background:#fff; }
.subaccounts-tabs button { height:44px; position:relative; padding:0; border:0; color:#555; font-size:14px; background:transparent; }
.subaccounts-tabs button.active { color:var(--green); }
.subaccounts-tabs button.active::after { content:""; position:absolute; right:0; bottom:0; left:0; height:2px; background:var(--green); }
.subaccounts-toolbar { min-height:50px; flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid #eee; box-sizing:border-box; }
.subaccounts-add { height:32px; padding:0 14px; font-size:14px; font-weight:400; }
.subaccounts-search { width:220px; }
.subaccounts-search input { height:32px; }
.subaccounts-filter { width:124px; flex:0 0 124px; }
.subaccounts-table-wrap { min-height:0; flex:1; overflow:auto; background:#fff; }
.subaccounts-table { width:100%; min-width:1160px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.subaccounts-table th { height:40px; position:sticky; top:0; z-index:3; padding:0 10px; overflow:hidden; color:#333; font-size:14px; font-weight:500; line-height:40px; text-align:left; text-overflow:ellipsis; background:#f5f5f5; box-sizing:border-box; }
.subaccounts-table td { height:58px; padding:6px 10px; overflow:visible; border-bottom:1px solid #eee; color:#444; font-size:14px; line-height:20px; vertical-align:middle; box-sizing:border-box; }
.subaccounts-table th:first-child,.subaccounts-table td:first-child { width:42px; padding-left:14px; padding-right:0; }
.subaccounts-table th:nth-child(2),.subaccounts-table td:nth-child(2) { width:220px; }
.subaccounts-table th:nth-child(3),.subaccounts-table td:nth-child(3) { width:110px; color:#666; }
.subaccounts-table th:nth-child(4),.subaccounts-table td:nth-child(4) { width:110px; }
.subaccounts-table th:nth-child(5),.subaccounts-table td:nth-child(5) { width:102px; }
.subaccounts-table th:nth-child(6),.subaccounts-table td:nth-child(6) { width:86px; }
.subaccounts-table th:nth-child(7),.subaccounts-table td:nth-child(7),
.subaccounts-table th:nth-child(8),.subaccounts-table td:nth-child(8) { width:145px; color:#666; }
.subaccounts-table th:last-child,.subaccounts-table td:last-child { width:136px; position:sticky; right:0; z-index:4; padding-left:14px; background:#fff; box-shadow:-8px 0 14px rgba(0,0,0,.04); }
.subaccounts-table th:last-child { z-index:6; background:#f5f5f5; box-shadow:-8px 0 14px rgba(0,0,0,.05); }
.subaccount-user { min-width:0; display:flex; align-items:center; }
.subaccount-user > div { min-width:0; display:grid; gap:3px; overflow:hidden; }
.subaccount-user strong,.subaccount-user small,.subaccount-user em { font-weight:400; }
.subaccount-user strong { min-width:0; color:#333; font-size:14px; line-height:18px; white-space:nowrap; }
.subaccount-user small { min-width:0; color:#999; font-size:12px; line-height:16px; white-space:nowrap; }
.subaccount-user em { color:#f59a23; font-size:13px; font-style:normal; }
.subaccount-status { display:inline-flex; align-items:center; gap:6px; color:#999; white-space:nowrap; }
.subaccount-status i { width:6px; height:6px; border-radius:50%; background:currentColor; }
.subaccount-status.on { color:var(--green); }
.subaccount-status.off { color:#f2554a; }
.subaccount-status.wait { color:#f59a23; }
.subaccount-actions { display:flex; align-items:center; justify-content:start; gap:10px; overflow:visible; white-space:nowrap; }
.subaccount-actions button { min-height:22px; padding:0; border:0; color:var(--green); font-size:13px; line-height:22px; background:transparent; }
.subaccount-actions button:nth-last-child(2) { color:#777; }
.subaccount-actions button.is-enable { color:var(--green); }
.subaccount-actions button.is-disable { color:#d98b16; }
.subaccount-actions button:last-child { color:#999; }
.subaccounts-empty { height:180px; color:#aaa; text-align:center; }
.subaccounts-batchbar { height:44px; flex:0 0 44px; display:flex; align-items:center; gap:9px; padding:0 12px; border-top:1px solid #eee; background:#fff; box-shadow:0 -4px 12px rgba(0,0,0,.03); }
.subaccounts-batchbar span { color:#555; }
.subaccounts-batchbar b,.subaccounts-batchbar .text-button { color:var(--green); font-weight:400; }
.subaccounts-batchbar .text-button { padding:0; border:0; background:transparent; }
.subaccounts-batchbar .ghost-button { height:30px; padding:0 12px; border-color:#d9d9d9; color:#555; background:#fff; }
.subaccounts-batchbar .ghost-button:disabled { color:#bbb; border-color:#ddd; background:#f7f7f7; }
.subaccounts-pagination { margin-left:auto; display:flex; align-items:center; gap:5px; }
.subaccounts-pagination button { min-width:30px; height:30px; padding:0 8px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.subaccounts-pagination button.active { color:var(--green); border-color:var(--green); }
.subaccounts-pagination button:disabled { color:#bbb; background:#f7f7f7; }
.subaccounts-role-layout { min-height:0; flex:1; display:grid; grid-template-columns:300px minmax(0,1fr); overflow:hidden; }
.subaccounts-role-list { min-height:0; overflow:auto; border-right:1px solid #eee; background:#fff; }
.subaccounts-role-list header { height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #eee; }
.subaccounts-role-list header strong { font-size:14px; font-weight:600; }
.subaccounts-role-list header button { height:30px; padding:0 12px; }
.subaccounts-role-list article { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.subaccounts-role-list article.active { background:#edf4ff; }
.subaccounts-role-list article div { min-width:0; display:grid; gap:3px; }
.subaccounts-role-list article strong { color:#333; font-size:14px; font-weight:500; }
.subaccounts-role-list article span,.subaccounts-role-list article small { color:#999; font-size:12px; }
.subaccounts-role-list article button { flex:0 0 auto; border:0; color:var(--green); background:transparent; }
.subaccounts-permission-panel { min-width:0; overflow:auto; padding:18px 20px; }
.subaccounts-permission-panel h3 { margin:0 0 6px; font-size:15px; font-weight:600; }
.subaccounts-permission-panel p { margin:0 0 16px; color:#777; line-height:22px; }
.subaccounts-permission-grid { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:12px; }
.subaccounts-permission-grid section { min-height:116px; padding:13px 14px; border:1px solid #eee; border-radius:4px; background:#fff; box-sizing:border-box; }
.subaccounts-permission-grid strong { display:block; margin-bottom:10px; font-weight:500; }
.subaccounts-permission-grid label { display:inline-flex; align-items:center; gap:6px; margin:0 18px 8px 0; color:#555; }
.subaccounts-modal { position:fixed; inset:0; z-index:1800; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.45); }
.subaccounts-modal.hidden { display:none; }
.subaccounts-dialog { width:620px; overflow:visible; border-radius:4px; background:#fff; box-shadow:0 12px 32px rgba(0,0,0,.18); }
.subaccounts-dialog.account-dialog { width:680px; max-height:min(820px,calc(100vh - 48px)); display:flex; flex-direction:column; overflow:hidden; }
.subaccounts-dialog.small { width:460px; }
.subaccounts-dialog.subaccounts-group-create-dialog { overflow:hidden; }
.subaccounts-dialog.role-dialog { width:720px; }
.subaccounts-dialog.group-dialog { width:620px; max-height:min(680px,calc(100vh - 48px)); display:flex; flex-direction:column; overflow:hidden; }
.subaccounts-dialog header { height:50px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.subaccounts-dialog header strong { font-size:15px; font-weight:600; }
.subaccounts-dialog header button { width:28px; height:28px; border:0; color:#999; font-size:24px; line-height:24px; background:transparent; }
.subaccounts-dialog section { padding:18px 22px; color:#555; }
.subaccounts-dialog.account-dialog section { min-height:0; overflow:auto; }
.subaccounts-dialog footer { height:56px; display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:0 22px; border-top:1px solid #eee; box-sizing:border-box; }
.subaccounts-form { display:grid; gap:14px; }
.subaccounts-form label,.subaccounts-role-name { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:center; gap:10px; }
.subaccounts-form label > span,.subaccounts-role-name span { color:#555; text-align:right; }
.subaccounts-form input,.subaccounts-role-name input { height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#333; font-size:14px; box-sizing:border-box; }
.subaccounts-form input:focus,.subaccounts-role-name input:focus { border-color:var(--green); outline:0; }
.account-form > .subaccount-form-row > input { max-width:500px; }
.account-form { gap:12px; padding:16px 22px 18px; }
.account-form > label,
.account-form > .subaccount-form-row { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:center; gap:10px; }
.account-form > label > span,
.account-form > .subaccount-form-row > span { color:#333; font-size:14px; line-height:32px; text-align:right; }
.account-form > label > small,
.account-form > .subaccount-form-row > small { grid-column:2; margin-top:-5px; color:#999; font-size:13px; }
.account-form > .subaccount-form-row.has-tip { row-gap:6px; }
.subaccounts-section-title { height:34px; display:flex; align-items:center; padding:0 14px; border-left:4px solid var(--green); border-radius:3px; color:#333; font-size:15px; font-weight:600; background:#f5f5f5; box-sizing:border-box; }
.subaccount-account-inputs { display:grid; grid-template-columns:180px 26px minmax(0,1fr); align-items:center; max-width:500px; }
.subaccount-account-inputs input:first-child { border-radius:3px 0 0 3px; }
.subaccount-account-inputs input:last-child { border-radius:0 3px 3px 0; }
.subaccount-account-inputs em { height:32px; display:grid; place-items:center; border:1px solid #d9d9d9; border-width:1px 0; color:#777; font-style:normal; background:#fafafa; box-sizing:border-box; }
.subaccount-radio-row { height:32px; min-height:32px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.subaccount-radio-row label,.subaccount-allow-row label { height:32px; min-height:32px; display:inline-flex; align-items:center; gap:7px; color:#333; line-height:32px; }
.subaccount-radio-row input[type="radio"],.subaccount-allow-row input[type="checkbox"],.subaccount-scope-box input[type="checkbox"] { width:16px; height:16px; margin:0; accent-color:var(--green); }
.subaccount-radio-row input[type="radio"] { flex:0 0 16px; }
.subaccount-validity-row { min-height:32px; align-items:center; }
.subaccount-validity-row .subaccount-radio-row { height:32px; min-height:32px; display:flex; align-items:center; gap:24px; flex-wrap:nowrap; }
.subaccount-validity-row .subaccount-radio-row label { height:32px; min-height:32px; display:inline-flex; align-items:center; white-space:nowrap; }
.subaccount-date-input { width:150px; height:32px; align-self:center; margin-left:4px; color:#555; line-height:30px; background:#fff; }
.subaccount-date-input:disabled { color:#999; cursor:not-allowed; background:#fafafa; }
.subaccount-scope-row { min-height:32px; align-items:center; margin-top:0; }
.subaccount-scope-row .subaccount-radio-row { display:grid; grid-template-columns:96px 140px 140px; align-items:center; column-gap:18px; }
.subaccount-scope-row .subaccount-radio-row label { height:32px; min-height:32px; white-space:nowrap; }
.subaccount-scope-box { width:500px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; overflow:visible; margin:-4px 0 0 106px; padding:6px 12px; border-radius:3px; background:#f5f5f5; box-sizing:border-box; }
.subaccount-scope-box.hidden { display:none; }
.subaccount-scope-box label { height:24px; min-height:24px; display:flex; align-items:center; gap:8px; color:#555; line-height:24px; }
.subaccount-scope-box label:first-child { grid-column:1 / -1; color:#333; }
.subaccount-scope-box label:not(:first-child) { padding-left:20px; }
.subaccount-allow-row { margin-top:-2px; }
.subaccounts-dialog-select { width:220px; }
.subaccounts-dialog-select.wide { width:320px; max-width:500px; }
.subaccounts-dialog-select.open { z-index:200; }
.subaccounts-dialog-select .shared-select-menu { z-index:210; }
.subaccounts-tip { margin:0 0 0 102px; color:#999; font-size:13px; }
.subaccounts-tip.compact { margin:10px 0 0; }
.subaccounts-dialog .modal-grid { grid-template-columns:repeat(2,minmax(220px,1fr)); margin-top:16px; }
.subaccounts-group-body { min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.subaccounts-group-add { height:34px; flex:0 0 34px; display:flex; justify-content:flex-end; gap:10px; margin-bottom:14px; }
.subaccounts-group-add input { width:260px; height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#333; font-size:14px; box-sizing:border-box; }
.subaccounts-group-add input:focus { border-color:var(--green); outline:0; }
.subaccounts-group-add button { height:32px; padding:0 14px; }
.subaccounts-group-list { min-height:0; max-height:390px; overflow:auto; border:1px solid #eee; border-radius:3px; background:#fff; }
.subaccounts-group-list table { width:100%; border-collapse:collapse; table-layout:fixed; }
.subaccounts-group-list th { height:40px; padding:0 12px; color:#333; font-size:14px; font-weight:600; text-align:left; background:#f5f5f5; }
.subaccounts-group-list td { height:46px; padding:6px 12px; border-bottom:1px solid #eee; color:#555; font-size:14px; box-sizing:border-box; }
.subaccounts-group-list tr:last-child td { border-bottom:0; }
.subaccounts-group-list th:nth-child(2),.subaccounts-group-list td:nth-child(2) { width:100px; text-align:center; }
.subaccounts-group-list th:last-child,.subaccounts-group-list td:last-child { width:130px; text-align:right; }
.subaccounts-group-list input { width:100%; height:30px; padding:0 8px; border:1px solid transparent; border-radius:3px; color:#333; font-size:14px; background:#fff; box-sizing:border-box; }
.subaccounts-group-list input:not([readonly]):focus { border-color:var(--green); outline:0; }
.subaccounts-group-list input[readonly] { color:#999; background:#fafafa; }
.subaccounts-group-list button { height:28px; padding:0 6px; border:0; color:var(--green); font-size:14px; background:transparent; }
.subaccounts-group-list button:disabled { color:#bbb; cursor:not-allowed; }
.subaccounts-create-group-field { min-height:72px; display:grid; grid-template-columns:78px minmax(0,1fr); align-items:center; gap:10px; padding:4px 10px; color:#555; font-size:14px; box-sizing:border-box; }
.subaccounts-create-group-field span { text-align:right; }
.subaccounts-create-group-field input { width:100%; height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#333; font-size:14px; box-sizing:border-box; }
.subaccounts-create-group-field input:focus { border-color:var(--green); outline:0; }
.corp-delete-confirm strong { display:block; color:#333; font-size:16px; font-weight:600; line-height:22px; }
.corp-delete-confirm p { margin:10px 0 0; color:#777; font-size:14px; line-height:24px; }
.corp-edit-form { display:grid; gap:14px; }
.corp-edit-form label { display:grid; grid-template-columns:82px 1fr; align-items:center; gap:10px; color:#555; }
.corp-edit-form input { height:32px; min-height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; font-size:13px; }
.corp-edit-form input:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); outline:0; }
.customer-batch-menu.hidden { display: none; }
.customer-batch-menu button { width: 100%; height: 32px; padding: 0 14px; border: 0; color: #555; font-size: 13px; text-align: left; background: #fff; }
.customer-batch-menu button:hover { color: var(--green); background: #f5faf3; }
.customer-pagination { display: flex; align-items: center; gap: 5px; margin-left: auto; }
.customer-pagination button { width: 30px; height: 30px; border: 1px solid #ddd; border-radius: 3px; color: #666; background: #fff; }
.customer-pagination button.active { border-color: var(--green); color: var(--green); }
.customer-subpage-head { height: 52px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid #eee; background: #fff; }
.customer-subpage-head strong { font-size: 15px; font-weight: 600; }
.customer-task-panel { margin: 14px 16px; background: #fff; }
.customer-task-filters { min-height:60px; display:flex; align-items:center; gap:10px; padding:0 14px; box-sizing:border-box; border-bottom:1px solid #eee; }
.customer-task-filters .customer-shared-select { width:190px; height:32px; flex:0 0 190px; margin:0; align-self:center; }
.customer-task-filters .customer-shared-select .shared-select-trigger { height:32px; margin:0; }
.customer-task-filters .customer-date-range { width:320px; height:32px; min-height:32px; flex:0 0 320px; align-self:center; margin:0; grid-template-columns:1fr auto 1fr 18px; }
.customer-task-filters .customer-date-range input { height:30px; min-height:30px; margin:0; line-height:30px; }
.customer-task-filters > .ghost-button { height:32px; min-height:32px; align-self:center; margin:0; padding-top:0; padding-bottom:0; line-height:30px; }
.customer-task-filters table,.customer-task-panel table { width: 100%; border-collapse: collapse; font-size: 13px; }
.customer-task-table-wrap { width:100%; overflow:auto; }
.customer-task-table-wrap table { min-width:1120px; table-layout:auto; }
.customer-task-panel th { height: 46px; padding: 0 16px; color: #333; text-align: left; background: #f5f5f5; }
.customer-task-panel td { height: 52px; padding: 0 16px; border-bottom: 1px solid #eee; }
.customer-task-panel th,.customer-task-panel td { white-space:nowrap; }
.customer-task-help { width:14px; height:14px; display:inline-grid; place-items:center; margin-left:4px; border-radius:50%; color:#fff; font-size:10px; font-style:normal; font-weight:600; background:#aaa; cursor:help; }
.customer-task-status { color: var(--green); }
.customer-task-status::before { content: ""; width: 6px; height: 6px; display: inline-block; margin-right: 6px; border-radius: 50%; background: currentColor; }
.customer-modal { z-index: 1700; }
.customer-detail-dialog { width: 720px; }
.customer-detail-body { min-height: 300px; display: grid; grid-template-columns: 180px 1fr; }
.customer-detail-body aside { display: flex; flex-direction: column; align-items: center; padding: 34px 18px; border-right: 1px solid #eee; }
.customer-detail-body aside .wx-avatar { width: 64px; height: 64px; }
.customer-detail-body aside strong { margin-top: 13px; color: #333; font-size: 15px; }
.customer-detail-body aside small { margin-top: 4px; color: #f59a23; }
.customer-detail-body section { padding: 20px 24px; }
.customer-detail-body h4 { margin: 0 0 12px; color: #333; font-size: 14px; }
.customer-detail-body dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 22px; }
.customer-detail-body dl div { min-height: 58px; border-bottom: 1px solid #eee; }
.customer-detail-body dt { margin-bottom: 6px; color: #999; font-size: 12px; }.customer-detail-body dd { margin: 0; color: #555; font-size: 13px; }
.customer-detail-body section p span { display: inline-block; margin-right: 6px; padding: 3px 8px; border: 1px solid #b8d9b0; border-radius: 3px; color: #3d8f2d; background: #f6fbf4; }
.customer-group-dialog { width: 760px; }.customer-group-body { min-height: 320px; padding: 16px 20px; }.customer-group-body > .search-control { width: 260px; margin-bottom: 12px; }
.customer-group-body table { width: 100%; border-collapse: collapse; font-size: 13px; }.customer-group-body th { height: 42px; padding: 0 12px; text-align: left; background: #f5f5f5; }.customer-group-body td { height: 62px; padding: 0 12px; border-bottom: 1px solid #eee; }.customer-group-body em { color: var(--green); font-style: normal; }
.customer-group-cell { display: flex; align-items: center; gap: 9px; }.customer-group-cell .group-avatar-collage { width: 36px; height: 36px; flex: 0 0 36px; }
.customer-columns-dialog { width: 650px; }
.customer-columns-body { min-height: 360px; padding: 0 24px 22px; }
.customer-columns-toolbar { height: 52px; display: flex; align-items: center; gap: 20px; border-bottom: 1px solid #eee; color: #777; font-size: 13px; }
.customer-columns-toolbar label { display: inline-flex; align-items: center; gap: 7px; color: #444; cursor: pointer; }
.customer-columns-toolbar b { color: var(--green); font-weight: 500; }
.customer-columns-toolbar button { margin-left: auto; padding: 0; border: 0; color: var(--green); font-size: 13px; background: transparent; }
.customer-columns-body section { padding-top: 18px; }
.customer-columns-body section + section { margin-top: 17px; border-top: 1px solid #f0f0f0; }
.customer-columns-body h4 { margin: 0 0 11px; color: #333; font-size: 13px; font-weight: 500; }
.customer-column-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px 12px; }
.customer-column-options label { height: 38px; position: relative; display: flex; align-items: center; gap: 8px; padding: 0 11px; box-sizing: border-box; border: 1px solid #e5e5e5; border-radius: 3px; color: #555; font-size: 13px; background: #fff; cursor: pointer; }
.customer-column-options label:hover { border-color: #b9d8b3; background: #fbfdfb; }
.customer-column-options label:has(input:checked) { border-color: #b9d8b3; background: #f8fcf7; }
.customer-column-options label.fixed { color: #666; background: #fafafa; cursor: default; }
.customer-column-options label.fixed:hover { border-color: #e5e5e5; }
.customer-column-options input { flex: 0 0 15px; margin: 0; }
.customer-column-options em { margin-left: auto; color: #aaa; font-size: 12px; font-style: normal; }
.customer-batch-dialog { width: 660px; }
.customer-batch-body { min-height: 240px; padding: 20px 24px; }
.customer-tag-search { width: 280px; margin-bottom: 18px; }
.customer-tag-picker section > strong { display: block; margin-bottom: 12px; }
.customer-tag-picker section > div { display: flex; flex-wrap: wrap; gap: 8px; }
.customer-tag-picker label { position: relative; }
.customer-tag-picker label input { position: absolute; opacity: 0; }
.customer-tag-picker label span { display: block; padding: 5px 10px; border: 1px solid #ddd; border-radius: 3px; color: #666; }
.customer-tag-picker label input:checked + span { border-color: var(--green); color: var(--green); background: #f5fbf3; }
.customer-confirm-text { padding: 46px 20px; color: #555; text-align: center; }
.customer-batch-dialog.compact-confirm { width:460px; }
.customer-batch-dialog.compact-confirm .customer-batch-body { min-height:0; padding:26px 28px; }
.customer-batch-dialog.compact-confirm .friend-modal-footer { padding:10px 16px; }
.customer-confirm-content { display:flex; align-items:flex-start; gap:13px; color:#555; }
.customer-confirm-content > i { width:20px; height:20px; display:grid; flex:0 0 20px; place-items:center; margin-top:1px; border-radius:50%; color:#fff; font-size:13px; font-style:normal; font-weight:600; background:#f5a623; }
.customer-confirm-content strong { display:block; margin-bottom:8px; color:#333; font-size:14px; font-weight:500; }
.customer-confirm-content p { margin:0; color:#888; font-size:13px; line-height:1.65; }
.customer-confirm-dialog { width:440px; }
.customer-confirm-body { padding:26px 28px; }
.customer-confirm-dialog .friend-modal-footer { padding:10px 16px; }
.customer-remark-editor { color: #555; font-size: 13px; }
.customer-remark-mode { height: 34px; display: flex; align-items: center; gap: 18px; margin: 0 26px 18px; }
.customer-remark-mode > span { margin-right: -4px; }
.customer-remark-mode label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.customer-remark-mode input { position: absolute; opacity: 0; pointer-events: none; }
.customer-remark-mode i { width: 15px; height: 15px; display: inline-block; box-sizing: border-box; border: 1px solid #d8d8d8; border-radius: 50%; background: #fff; }
.customer-remark-mode input:checked + i { border: 4px solid var(--green); }
.customer-remark-content-row { display: grid; grid-template-columns: 98px 1fr; align-items: start; }
.customer-remark-content-row > span { padding-top: 10px; text-align: right; }
.required-label::before { content: "*"; margin-right: 5px; color: var(--green); }
.customer-remark-compose { overflow: hidden; border: 1px solid #ddd; }
.customer-remark-tools { height: 43px; display: flex; align-items: center; gap: 7px; padding: 0 12px; border-bottom: 1px solid #e5e5e5; background: #fafafa; }
.customer-remark-tools button { height: 28px; padding: 0 9px; border: 1px solid #ddd; border-radius: 2px; color: #666; font-size: 12px; background: #fff; }
.customer-remark-tools button:hover { border-color: #a8d39e; color: var(--green); }
.customer-remark-tools .customer-remark-copy { margin-left: auto; padding: 0; border: 0; color: var(--green); background: transparent; }
.customer-remark-compose textarea { width: 100%; height: 100px; display: block; padding: 13px; box-sizing: border-box; border: 0; resize: none; color: #444; font: inherit; line-height: 1.7; outline: 0; }
.customer-remark-content { min-height:100px; padding:12px 13px; box-sizing:border-box; color:#444; line-height:30px; outline:0; }
.customer-remark-content:empty::before { content:"请输入内容"; color:#bbb; pointer-events:none; }
.customer-remark-content .editor-token { margin:0 3px; border-color:#8bdc73; border-radius:2px; color:var(--green); background:#f6fff3; vertical-align:middle; }
.customer-remark-content .editor-token button { width:14px; height:20px; min-height:20px; padding:0; border:0; color:var(--green); line-height:20px; background:transparent; }
.customer-remark-compose textarea::placeholder, .customer-remark-replace input::placeholder { color: #bbb; }
.customer-remark-example { margin: 20px 0 0 98px; padding: 4px 14px 13px; color: #555; background: #fff0df; }
.customer-remark-example p { margin: 10px 0 0; line-height: 1.65; }
.customer-remark-example em { display: inline-block; padding: 2px 7px; border: 1px solid #d8dde6; color: #536073; font-style: normal; background: #f4f6f9; }
.customer-remark-example strong { color: #333; font-weight: 600; }
.customer-remark-replace > label { display: grid; grid-template-columns: 98px 1fr; align-items: center; margin-bottom: 18px; }
.customer-remark-replace > label > span { padding-right: 10px; text-align: right; }
.customer-remark-replace input { height: 34px; padding: 0 11px; border: 1px solid #ddd; border-radius: 2px; color: #444; font: inherit; outline: 0; }
.customer-remark-replace input:focus { border-color: var(--green); }
.customer-remark-replace .customer-remark-example { margin-top: 30px; }
.customer-salutation-dialog { width: 500px; }
.customer-salutation-body { min-height: 112px; display: flex; align-items: center; padding: 24px 32px; }
.customer-salutation-body label { width: 84px; flex: 0 0 84px; color: #444; font-size: 13px; text-align: right; }
.customer-salutation-body input { width: 320px; height: 34px; padding: 0 11px; border: 1px solid #d9d9d9; border-radius: 3px; color: #444; font-size: 13px; outline: none; }
.customer-salutation-body input:focus { border-color: var(--green); box-shadow: 0 0 0 1px rgba(39,163,20,.08); }
.customer-salutation-body input::placeholder { color: #bbb; }
.customer-salutation-footer { gap: 8px; }
.customer-salutation-footer span { flex: 1; }
.customer-salutation-footer .text-button { padding: 0; border: 0; color: #888; font-size: 13px; background: transparent; }
.customer-salutation-footer .text-button:hover { color: var(--green); }
@media (max-width: 1180px) { .customer-filter-panel { grid-template-columns: repeat(5,minmax(150px,1fr)); } }

/* Customer detail subpage */
.customer-detail-page { min-height: calc(100vh - 48px); background: #f2f2f2; }
.customer-detail-summary { min-height:136px; display:flex; align-items:flex-start; gap:12px; margin:10px 8px; padding:16px 18px; box-sizing:border-box; background:#fff; }
.customer-detail-summary > .wx-avatar { width: 60px; height: 60px; flex: 0 0 60px; position: relative; overflow: hidden; border-radius: 3px; }
.customer-detail-summary > .wx-avatar[class*="customer-art-"] { background: linear-gradient(var(--customer-art-turn),transparent 0 36%,var(--customer-art-c) 36% 58%,transparent 58%),linear-gradient(90deg,var(--customer-art-a) 0 48%,transparent 48%),var(--customer-art-paper); box-shadow: inset 0 0 0 1px rgba(90,105,98,.08); }
.customer-detail-summary > .wx-avatar[class*="customer-art-"]::before { content:""; width: 28px; height: 28px; position:absolute; top:var(--customer-art-y); left:var(--customer-art-x); border-radius:var(--customer-art-radius); background:var(--customer-art-b); transform:rotate(var(--customer-art-rotate)); }
.customer-detail-summary > .wx-avatar[class*="customer-art-"]::after { content:""; width: 14px; height: 14px; position:absolute; top:7px; right:7px; border:3px solid var(--customer-art-d); border-radius:50%; }
.customer-detail-identity { min-width: 0; flex: 1; color: #555; font-size: 13px; }
.customer-detail-identity > div { display: flex; align-items: center; gap: 5px; }
.customer-detail-identity > div strong { color:#333; font-size:15px; font-weight:500; }
.customer-detail-identity > div i { width: 13px; height: 13px; background: var(--green); -webkit-mask: radial-gradient(circle at 50% 28%,#000 0 20%,transparent 22%),linear-gradient(#000 0 0) center bottom/80% 50% no-repeat; mask: radial-gradient(circle at 50% 28%,#000 0 20%,transparent 22%),linear-gradient(#000 0 0) center bottom/80% 50% no-repeat; }
.customer-detail-identity > small { display:block; margin:2px 0 6px; color:var(--green); font-size:12px; line-height:18px; }
.customer-detail-identity p { min-height:26px; display:flex; align-items:center; flex-wrap:wrap; column-gap:6px; row-gap:4px; margin:0; line-height:24px; }
.customer-detail-identity p + p { margin-top:2px; }
.customer-detail-identity p b { width:66px; flex:0 0 66px; color:#555; font-weight:400; }
.customer-detail-identity p > span { min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.customer-detail-identity p em,.customer-profile-smart em { min-height:24px; display:inline-flex; align-items:center; box-sizing:border-box; padding:2px 8px; border:1px solid #e3e3e3; border-radius:3px; color:#666; font-size:12px; font-style:normal; line-height:18px; background:#f7f7f7; }
.customer-detail-chat { min-width: 82px; margin-left:auto; }
.customer-detail-main { margin:0 8px; background:#fff; }
.customer-detail-tabs { height:48px; display:flex; align-items:flex-end; gap:28px; padding:0 20px; border-bottom:1px solid #e8e8e8; }
.customer-detail-tabs button { height:48px; position:relative; padding:0; border:0; color:#666; font-size:14px; background:transparent; }
.customer-detail-tabs button.active { color:var(--green); }
.customer-detail-tabs button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.customer-detail-panel:not(.hidden) { min-height: 625px; display:grid; grid-template-columns:260px minmax(540px,1fr) 330px; }
.customer-account-list { padding:16px; border-right:1px solid #e8e8e8; }
.customer-account-list h4 { margin:0 0 10px; color:#888; font-size:13px; font-weight:400; }
.customer-account-list button { width:100%; min-height:62px; display:flex; align-items:center; gap:10px; margin-bottom:8px; padding:7px 9px; border:1px solid #e5e5e5; border-radius:3px; text-align:left; background:#fff; }
.customer-account-list button.active { border-color:var(--green); background:#fbfefb; }
.customer-account-list button > .wx-avatar { width:40px; height:40px; flex:0 0 40px; }
.customer-account-list button span:nth-child(2) { min-width:0; flex:1; }
.customer-account-list button strong,.customer-account-list button small { display:block; font-weight:400; }
.customer-account-list button strong { color:#444; font-size:13px; }
.customer-account-list button small { margin-top:3px; color:#f59a23; font-size:12px; }
.customer-account-list button em { color:#ef6a61; font-size:12px; font-style:normal; }
.customer-account-list button.offline { border-color:#e7e7e7; background:#fafafa; }
.customer-account-list button.offline > .wx-avatar { filter:grayscale(1); opacity:.48; }
.customer-account-list button.offline strong,.customer-account-list button.offline small,.customer-account-list button.offline em { color:#aaa; }
.customer-profile-form { max-width:760px; padding:16px 46px 28px; color:#555; font-size:13px; }
.customer-profile-form > label,.customer-profile-form > p { min-height:52px; display:grid; grid-template-columns:88px minmax(300px,1fr); align-items:center; margin:0; }
.customer-profile-form > label > span,.customer-profile-form > p > span { text-align:right; padding-right:12px; }
.customer-profile-form label > div:not(#customerProfileSmartTags) { height:34px; position:relative; }
.customer-profile-form input,.customer-profile-form select,.customer-profile-form textarea { width:100%; height:34px; box-sizing:border-box; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#555; font:inherit; background:#fff; outline:0; }
.customer-profile-form input:focus,.customer-profile-form select:focus,.customer-profile-form textarea:focus { border-color:var(--green); }
.customer-profile-form label > div > em { position:absolute; right:10px; top:9px; color:#aaa; font-size:12px; font-style:normal; }
.customer-profile-form > p b { color:#666; font-weight:400; }
.customer-profile-tags > div { min-height:36px; height:auto !important; display:flex; align-items:center; gap:10px; padding:4px 10px; box-sizing:border-box; border:1px solid #ddd; border-radius:3px; background:#fff; }
.customer-profile-tag-values { min-width:0; display:flex; flex:1; align-items:center; flex-wrap:wrap; gap:6px; }
.customer-profile-tag-values em { position:static !important; min-height:24px; display:inline-flex; align-items:center; box-sizing:border-box; padding:2px 9px; border:1px solid #dedede; border-radius:3px; color:#666; font-size:12px; font-style:normal; line-height:18px; background:#f5f5f5; }
.customer-profile-tag-values small { color:#aaa; font-size:12px; }
.customer-profile-tags button { height:26px; flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:0 4px; border:0; color:#777; font-size:13px; background:transparent; }
.customer-profile-tags button i { width:12px; height:12px; position:relative; display:inline-block; }
.customer-profile-tags button i::before,.customer-profile-tags button i::after { content:""; position:absolute; background:currentColor; }
.customer-profile-tags button i::before { width:10px; height:1px; top:5px; left:1px; }
.customer-profile-tags button i::after { width:1px; height:10px; top:1px; left:5px; }
.customer-profile-tags button:hover { color:var(--green); }
.customer-phone-line { grid-template-columns:88px minmax(300px,1fr) !important; }
.customer-phone-line > .customer-phone-editor { min-width:0; display:flex; align-items:center; gap:8px; padding:0; text-align:left; }
.customer-phone-line b { width:max-content; border-bottom:1px dashed #ddd; color:#666; line-height:30px; }
.customer-phone-line input { width:220px; flex:0 0 220px; }
.customer-phone-save,.customer-phone-cancel { height:30px; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.customer-phone-save { border-color:var(--green); color:#fff; background:var(--green); }
.customer-edit-mini { flex:0 0 28px; }
.customer-profile-description { align-items:start !important; padding-top:8px; }
.customer-profile-description > span { padding-top:10px; }
.customer-profile-description > div { height:104px !important; }
.customer-profile-description textarea { height:98px; padding:10px 12px; resize:none; }
.customer-profile-description div > em { top:auto !important; bottom:-18px; }
.customer-behavior { padding:16px; border-left:1px solid #e8e8e8; }
.customer-behavior header { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:13px; }
.customer-behavior header strong { color:#333; font-size:14px; }
.customer-behavior header span { color:#aaa; font-size:12px; }
.customer-behavior-select { width:150px; position:relative; z-index:8; }
.customer-behavior-select .shared-select-menu { z-index:12; }
.customer-behavior-list { margin-top:8px; padding:14px 12px; background:#fafafa; }
.customer-behavior-list article { min-height:72px; position:relative; padding-left:24px; }
.customer-behavior-list article:not(:last-child)::before { content:""; width:1px; position:absolute; top:11px; bottom:-6px; left:4px; background:#76c966; }
.customer-behavior-list article i { width:8px; height:8px; position:absolute; top:6px; left:0; border-radius:50%; background:var(--green); }
.customer-behavior-list p { margin:0 0 6px; color:#555; font-size:13px; line-height:1.55; }
.customer-behavior-list time { color:#aaa; font-size:12px; }
.customer-behavior-empty { margin:18px 0; color:#aaa; font-size:13px; text-align:center; }
.customer-behavior footer { color:#bbb; text-align:center; }
.customer-behavior footer b { display:inline-grid; place-items:center; width:24px; height:24px; margin:0 9px; border:1px solid var(--green); border-radius:3px; color:var(--green); font-weight:400; }
.customer-detail-panel[data-customer-detail-panel="groups"]:not(.hidden) { display:block; padding:16px; }
.customer-group-tabs { height:38px; display:flex; align-items:center; }
.customer-group-tabs button { min-width:120px; height:32px; border:1px solid #ddd; color:#666; background:#fff; }
.customer-group-tabs button + button { margin-left:-1px; }
.customer-group-tabs button.active { position:relative; z-index:1; border-color:var(--green); color:var(--green); }
.customer-detail-groups { width:100%; margin-top:2px; border-collapse:collapse; table-layout:fixed; font-size:13px; }
.customer-detail-groups th { height:46px; padding:0 20px; color:#333; font-weight:600; text-align:left; background:#f5f5f5; }
.customer-detail-groups th:nth-child(1) { width:32%; }.customer-detail-groups th:nth-child(2) { width:16%; }.customer-detail-groups th:nth-child(3) { width:42%; }.customer-detail-groups th:nth-child(4) { width:20%; }
.customer-detail-groups td { height:68px; padding:0 20px; border-bottom:1px solid #eee; color:#555; }
.customer-detail-group-name { display:flex; align-items:center; gap:10px; }
.customer-detail-group-name .group-avatar-collage { width:40px; height:40px; flex:0 0 40px; }
.customer-detail-group-name strong,.customer-detail-group-name small { display:block; }
.customer-detail-group-name strong { color:#444; font-weight:400; }.customer-detail-group-name small { margin-top:4px; color:#999; font-size:12px; }
.customer-account-dot,.customer-account-name i { width:6px; height:6px; display:inline-block; margin-right:7px; border-radius:50%; background:#d8d8d8; vertical-align:2px; }
.customer-account-dot.online,.customer-account-name i.online { background:#24bd65; }
.customer-account-name { display:inline-block; margin-right:12px; white-space:nowrap; }
@media (max-width: 1320px) { .customer-detail-panel:not(.hidden) { grid-template-columns:220px minmax(480px,1fr) 280px; }.customer-profile-form { padding-right:24px; padding-left:24px; } }

.customer-columns-dialog { width:480px; }
.customer-columns-body { min-height:0; max-height:620px; overflow:auto; padding:18px 24px 20px; }
.customer-column-sort-list { display:flex; flex-direction:column; gap:8px; }
.customer-column-sort-list label { height:40px; display:flex; align-items:center; gap:12px; padding:0 14px; border:0; border-radius:4px; color:#555; font-size:13px; background:#f7f7f7; cursor:grab; user-select:none; }
.customer-column-sort-list label:active { cursor:grabbing; }
.customer-column-sort-list label.dragging { opacity:.45; }
.customer-column-sort-list label.drag-over { box-shadow:0 -2px 0 var(--green); }
.customer-column-sort-list label > i { width:12px; height:18px; flex:0 0 12px; background:radial-gradient(circle,#777 1px,transparent 1.5px) 0 0/6px 6px; }
.customer-column-sort-list label > span { flex:1; }
.customer-column-sort-list input { position:absolute; opacity:0; pointer-events:none; }
.customer-column-sort-list label > b { width:15px; height:15px; position:relative; flex:0 0 15px; box-sizing:border-box; border:1px solid #d7d7d7; border-radius:4px; background:#fff; }
.customer-column-sort-list input:checked + b { border-color:var(--green); background:var(--green); }
.customer-column-sort-list input:checked + b::after { content:""; width:7px; height:4px; position:absolute; top:3px; left:3px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg); }
.customer-column-sort-list label.fixed { color:#555; background:#fafafa; cursor:default; }
.customer-column-sort-list label.fixed > b { border-color:#ddd; background:#f2f2f2; }
.customer-column-sort-list label.fixed input:checked + b::after { border-color:#bbb; }
.customer-columns-dialog .friend-modal-footer { padding:10px 16px; }

/* Customer tags: finalized shared list, filter and empty date-range styles. */
.customer-tag-page { min-width:960px; height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; color:#555; font-size:13px; background:#f2f2f2; }
.customer-tag-page.hidden { display:none; }
.customer-tag-head { height:48px; flex:0 0 48px; display:flex; align-items:center; gap:18px; padding:0 16px; box-sizing:border-box; border-bottom:1px solid #e6e6e6; background:#fff; }
.customer-tag-main-tabs { height:100%; display:flex; align-items:stretch; }
.customer-tag-main-tabs button { min-width:92px; position:relative; border:0; color:#666; font-size:14px; background:transparent; }
.customer-tag-main-tabs button.active { color:var(--green); }
.customer-tag-main-tabs button.active::after { content:""; height:2px; position:absolute; right:14px; bottom:0; left:14px; background:var(--green); }
.customer-tag-company { width:210px; }
.customer-tag-company .shared-company-filter,
.customer-tag-company .shared-select-trigger { width:100%; }
.customer-tag-task { margin-left:auto; }
.customer-tag-panel { min-height:0; flex:1; display:flex; gap:12px; padding:12px; box-sizing:border-box; }
.customer-tag-panel.hidden { display:none; }
.customer-tag-sidebar { width:280px; flex:0 0 280px; display:flex; flex-direction:column; min-height:0; border:1px solid #e7e7e7; background:#fff; }
.customer-tag-kind-tabs { height:45px; display:flex; flex:0 0 45px; align-items:stretch; padding:0 14px; border-bottom:1px solid #eee; }
.customer-tag-kind-tabs button { width:50%; height:45px; position:relative; padding:0 8px; border:0; color:#777; font-size:13px; background:transparent; }
.customer-tag-kind-tabs button.active { color:var(--green); background:transparent; }
.customer-tag-kind-tabs button.active::after { content:""; height:2px; position:absolute; right:18px; bottom:0; left:18px; display:block; background:var(--green); }
.customer-tag-search { width:auto; height:32px; flex:0 0 32px; margin:10px 12px 8px; }
.customer-tag-search input { height:32px; padding-right:38px; border-radius:3px; }
.customer-tag-search .search-button { width:36px; height:30px; display:block; right:1px; border-left:1px solid #e4e4e4; border-radius:0 3px 3px 0; }
.customer-tag-tree { min-height:0; flex:1; overflow:auto; padding:0 10px 16px; }
.customer-tag-tree-group { margin-bottom:1px; }
.customer-tag-tree-title,.customer-tag-tree-item { width:100%; height:32px; display:flex; align-items:center; border:0; color:#555; font-size:13px; text-align:left; background:transparent; }
.customer-tag-tree-title { gap:7px; padding:0 7px 0 3px; font-weight:400; }
.customer-tag-tree-drag { width:10px; height:18px; flex:0 0 10px; opacity:.55; background:radial-gradient(circle,#999 1px,transparent 1.3px) 0 1px/5px 5px; }
.customer-tag-tree-group[draggable="true"] > .customer-tag-tree-title,.customer-tag-tree-item[draggable="true"] { cursor:grab; }
.customer-tag-tree-group[draggable="true"] > .customer-tag-tree-title:active,.customer-tag-tree-item[draggable="true"]:active { cursor:grabbing; }
.customer-tag-tree-group.dragging,.customer-tag-tree-item.dragging { opacity:.4; }
.customer-tag-tree-group.drag-over > .customer-tag-tree-title,.customer-tag-tree-item.drag-over { box-shadow:inset 0 2px 0 var(--green); }
.customer-tag-tree-arrow { width:0; height:0; flex:0 0 auto; border-top:4px solid transparent; border-bottom:4px solid transparent; border-left:5px solid #777; transform:rotate(0); }
.customer-tag-tree-group.open .customer-tag-tree-title .customer-tag-tree-arrow { transform:rotate(90deg); }
.customer-tag-tree-folder { width:14px; height:10px; position:relative; flex:0 0 14px; border-radius:1px; background:#c7c7c7; }
.customer-tag-tree-folder::before { content:""; width:6px; height:3px; position:absolute; top:-2px; left:1px; border-radius:1px 1px 0 0; background:#c7c7c7; }
.customer-tag-tree-title span,.customer-tag-tree-item span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.customer-tag-tree-title span { flex:1; }
.customer-tag-tree-title em,.customer-tag-tree-item em { color:#aaa; font-size:12px; font-style:normal; font-weight:400; }
.customer-tag-tree-group:not(.open) > div { display:none; }
.customer-tag-tree-item { gap:8px; padding:0 11px 0 27px; border-radius:3px; }
.customer-tag-tree-item .customer-tag-tree-drag { margin-right:7px; }
.customer-tag-tree-item:hover { color:var(--green); background:#f5faf2; }
.customer-tag-tree-item.active { color:#31851f; background:#eaf3ff; }
.customer-tag-content { min-width:0; flex:1; display:flex; flex-direction:column; border:1px solid #e7e7e7; background:#fff; }
.customer-tag-toolbar { height:58px; flex:0 0 58px; display:flex; align-items:center; gap:10px; padding:0 14px; border-bottom:1px solid #eee; }
.customer-tag-toolbar .primary-button { height:34px; padding:0 18px; }
.customer-tag-toolbar .primary-button::before { content:"+"; margin-right:7px; font-size:18px; vertical-align:-1px; }
.customer-tag-account { width:190px; }
.customer-tag-customer-search { width:260px; }
.customer-tag-history { margin-left:auto; color:var(--green); }
.customer-tag-table-scroll { min-height:0; flex:1; overflow:auto; }
.customer-tag-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.customer-tag-table th { height:44px; padding:0 14px; color:#444; font-weight:600; text-align:left; background:#f5f5f5; }
.customer-tag-table th:first-child { width:36px; }.customer-tag-table th:nth-child(2) { width:220px; }.customer-tag-table th:nth-child(3) { width:220px; }
.customer-tag-table td { min-height:68px; padding:12px 14px; border-bottom:1px solid #eee; color:#555; vertical-align:middle; }
.customer-tag-person { display:flex; align-items:center; gap:10px; min-width:0; }
.customer-tag-person .wx-avatar { width:40px; height:40px; flex:0 0 40px; position:relative; overflow:hidden; border-radius:4px; }
.customer-tag-person .wx-avatar[class*="customer-art-"] { background:conic-gradient(from var(--customer-art-turn) at 72% 72%,var(--customer-art-c) 0 25%,transparent 0 100%),linear-gradient(90deg,var(--customer-art-a) 0 48%,transparent 48%),var(--customer-art-paper); box-shadow:inset 0 0 0 1px rgba(90,105,98,.08); }
.customer-tag-person .wx-avatar[class*="customer-art-"]::before,.customer-tag-person .wx-avatar[class*="customer-art-"]::after { content:""; position:absolute; display:block; }
.customer-tag-person .wx-avatar[class*="customer-art-"]::before { width:21px; height:21px; top:var(--customer-art-y); left:var(--customer-art-x); border-radius:var(--customer-art-radius); background:var(--customer-art-b); transform:rotate(var(--customer-art-rotate)); }
.customer-tag-person .wx-avatar[class*="customer-art-"]::after { width:10px; height:10px; top:5px; right:5px; border:3px solid var(--customer-art-d); border-radius:50%; }
.customer-tag-person strong,.customer-tag-person small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.customer-tag-person strong { color:#444; font-weight:400; }.customer-tag-person small { margin-top:4px; color:#f08b20; font-size:12px; }
.customer-tag-person small.customer-source.wechat-source { color:var(--green); }
.customer-tag-person small.customer-source.other-source { color:#f59a23; }
.customer-tag-row-labels p { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:3px 0; }
.customer-tag-row-labels b { width:42px; color:#888; font-weight:400; }
.customer-tag-row-labels em,.customer-tag-manage-table em { display:inline-flex; align-items:center; min-height:25px; padding:1px 9px; box-sizing:border-box; border:1px solid #ddd; border-radius:3px; color:#666; font-size:12px; font-style:normal; background:#fff; }
.customer-tag-empty { padding:80px 0; color:#aaa; text-align:center; }
.customer-tag-batch { min-height:48px; flex:0 0 48px; display:flex; align-items:center; gap:12px; padding:0 14px; border-top:1px solid #e7e7e7; background:#fff; }
.customer-tag-batch span b { color:var(--green); font-weight:400; }
.customer-tag-batch .text-button { color:var(--green); font-size:13px; font-weight:400; }
.customer-tag-batch > button:not(.text-button) { height:32px; padding:0 14px; border:1px solid var(--green); border-radius:3px; color:var(--green); background:#fff; }
.customer-tag-batch > button:disabled { border-color:#ddd; color:#bbb; background:#f7f7f7; }
.customer-tag-manage { width:100%; min-height:0; overflow:auto; border:1px solid #e7e7e7; background:#fff; }
.customer-tag-manage-tabs { height:50px; display:flex; align-items:end; gap:0; padding:0 16px; border-bottom:1px solid #eee; }
.customer-tag-manage-tabs > button:not(.customer-tag-create) { min-width:96px; height:38px; border:1px solid #ddd; color:#666; background:#fff; }
.customer-tag-manage-tabs > button.active:not(.customer-tag-create) { position:relative; z-index:1; border-color:var(--green); color:var(--green); }
.customer-tag-create { height:32px; margin:0 0 8px auto; }
.customer-tag-notice { margin:14px 16px; padding:11px 14px; border:1px solid #f7dfbd; color:#806c50; background:#fff7e9; }
.customer-tag-manage-table { width:calc(100% - 32px); margin:0 16px 20px; border-collapse:collapse; table-layout:fixed; }
.customer-tag-manage-table th { height:44px; padding:0 18px; color:#444; text-align:left; background:#f5f5f5; }
.customer-tag-manage-table th:first-child { width:210px; }.customer-tag-manage-table th:last-child { width:120px; }
.customer-tag-manage-table td { min-height:60px; padding:14px 18px; border-bottom:1px solid #eee; vertical-align:middle; }
.customer-tag-manage-table td > strong,.customer-tag-manage-table td > small { display:block; }.customer-tag-manage-table td > strong { color:#444; font-weight:400; }.customer-tag-manage-table td > small { margin-top:5px; color:#999; }
.customer-tag-manage-table td > div { display:flex; flex-wrap:wrap; gap:8px; }
.customer-tag-manage-table .muted { color:#aaa; }

.customer-tag-customer-dialog { width:min(1120px,calc(100vw - 64px)); height:min(700px,calc(100vh - 64px)); display:flex; flex-direction:column; }
.customer-tag-customer-body { min-height:0; flex:1; display:grid; grid-template-columns:360px minmax(0,1fr) 220px; overflow:hidden; border-top:1px solid #eee; }
.customer-tag-customer-filter { min-height:0; display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:0 16px 14px; overflow:auto; border-right:1px solid #eee; border-bottom:0; box-sizing:border-box; }
.customer-tag-customer-filter > * { min-width:0; flex:0 0 auto; }
.customer-tag-customer-filter > .picker-pane-head { height:42px; margin:0 -16px; padding:0 16px; }
.customer-tag-filter-block { display:grid; gap:7px; margin:0; color:#666; font-size:13px; }
.customer-tag-filter-block > span { line-height:18px; }
.customer-tag-filter-line { min-width:0; height:32px; min-height:32px; display:grid; grid-template-columns:112px minmax(0,1fr); align-items:center; gap:8px; overflow:visible; }
.customer-tag-filter-block .customer-tag-filter-line + .customer-tag-filter-line { margin-top:8px; }
.customer-tag-filter-line > .shared-select:only-child { grid-column:1 / -1; }
.customer-tag-customer-filter .shared-select,
.customer-tag-customer-filter .search-control,
.customer-tag-customer-filter .final-date-range,
.customer-tag-keyword-input { width:100%; min-width:0; }
.customer-tag-customer-filter .shared-select,
.customer-tag-customer-filter .shared-select [data-shared-select-trigger],
.customer-tag-customer-filter .final-date-range,
.customer-tag-customer-filter .customer-tag-modal-tag-trigger,
.customer-tag-keyword-input { height:32px; min-height:32px; box-sizing:border-box; }
.customer-tag-customer-filter .shared-select [data-shared-select-trigger] { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 10px 0 12px; border:1px solid #d9d9d9; border-radius:3px; color:#999; text-align:left; background:#fff; }
.customer-tag-customer-filter .shared-select [data-shared-select-trigger] span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.customer-tag-customer-filter .shared-select [data-shared-select-trigger] i { width:14px; height:14px; flex:0 0 14px; border:0; background:#999; mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transform:none; transition:transform .15s ease,background .15s ease; }
.customer-tag-customer-filter .shared-select.open [data-shared-select-trigger] { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.customer-tag-customer-filter .shared-select.open [data-shared-select-trigger] i { background:var(--green); transform:rotate(180deg); }
.customer-tag-customer-filter .shared-select.has-value [data-shared-select-trigger] { color:#555; }
.customer-tag-customer-filter .shared-select-menu { top:34px; padding:4px 0; border-color:#e7e7e7; border-radius:3px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.customer-tag-customer-filter .shared-select-menu button { height:34px; padding:0 12px; color:#666; font-size:13px; line-height:34px; }
.customer-tag-customer-filter .shared-select-trigger,
.customer-tag-customer-filter .shared-select [data-shared-select-trigger],
.customer-tag-customer-filter .search-control input,
.customer-tag-keyword-input input,
.customer-tag-customer-filter .final-date-range input,
.customer-tag-customer-filter > .ghost-button { color:#777; font-family:inherit; font-size:13px; font-weight:400; line-height:32px; }
.customer-tag-customer-filter .search-control input::placeholder,
.customer-tag-keyword-input input::placeholder,
.customer-tag-customer-filter .final-date-range input::placeholder { color:#aaa; font-size:13px; font-weight:400; }
.customer-tag-keyword-input { height:32px; display:flex; border:1px solid #ddd; border-radius:3px; background:#fff; box-sizing:border-box; }
.customer-tag-keyword-input input { min-width:0; height:30px; min-height:30px; flex:1; padding:0 10px; border:0; outline:0; }
.customer-tag-keyword-input button { width:36px; flex:0 0 36px; border:0; border-left:1px solid #eee; color:var(--green); font-size:18px; line-height:30px; background:#fff; }
.customer-tag-keyword-input:focus-within { border-color:var(--green); }
.customer-tag-keyword-tags { min-height:0; display:flex; flex-wrap:wrap; gap:6px; }
.customer-tag-keyword-tags:empty { display:none; }
.customer-tag-keyword-tags span { height:26px; display:inline-flex; align-items:center; gap:4px; padding:0 8px; border:1px solid #d9ecd4; border-radius:3px; color:#2f8d22; font-size:12px; background:#f6ffed; box-sizing:border-box; }
.customer-tag-keyword-tags button { width:14px; height:14px; padding:0; border:0; color:#6aa35f; line-height:14px; background:transparent; }
.customer-tag-modal-tag-trigger { width:100%; height:32px; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#999; font:400 13px/30px inherit; background:#fff; box-sizing:border-box; cursor:pointer; }
.customer-tag-modal-tag-trigger:hover { border-color:#cfcfcf; color:#777; }
.customer-tag-modal-tag-trigger.has-value { color:#666; }
.customer-tag-modal-tag-trigger span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.customer-tag-modal-tag-trigger i { width:8px; height:8px; flex:0 0 8px; border-right:1px solid #aaa; border-bottom:1px solid #aaa; transform:rotate(45deg) translateY(-2px); }
.customer-tag-customer-filter .customer-tag-filter-line > .shared-select,
.customer-tag-customer-filter .customer-tag-filter-line > .shared-select [data-shared-select-trigger],
.customer-tag-customer-filter .customer-tag-filter-line > .final-date-range {
  height:32px;
  min-height:32px;
  align-self:center;
}
.customer-tag-customer-filter .final-date-range { height:32px; min-height:32px; display:grid; grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) 24px; align-items:center; gap:0; box-sizing:border-box; padding:0; border:1px solid #d9d9d9; border-radius:3px; }
.customer-tag-customer-filter .customer-tag-filter-line .final-date-range { transform:none; }
.customer-tag-customer-filter .final-date-range input { min-width:0; height:30px; min-height:30px; margin:0; padding:0 6px; border:0; line-height:30px; text-align:center; box-sizing:border-box; background:transparent; }
.customer-tag-customer-filter .final-date-range b,
.customer-tag-customer-filter .final-date-range i { align-self:center; justify-self:center; }
.customer-tag-customer-filter .final-date-range b { height:30px; display:flex; align-items:center; justify-content:center; margin:0; line-height:30px; }
.customer-tag-customer-filter .final-date-range i { width:14px; height:14px; margin:0; }
.customer-tag-modal-table { min-height:0; overflow:auto; padding:0 16px; }
.customer-tag-modal-table table { width:100%; border-collapse:collapse; table-layout:fixed; }
.customer-tag-modal-table th { height:42px; padding:0 12px; text-align:left; background:#f5f5f5; }.customer-tag-modal-table th:first-child { width:34px; }.customer-tag-modal-table th:nth-child(2) { width:260px; }
.customer-tag-modal-table td { height:60px; padding:8px 12px; border-bottom:1px solid #eee; }
.customer-tag-selected-pane { min-height:0; overflow:auto; border-left:1px solid #eee; background:#fff; }
.customer-tag-selected-pane > div:first-child { height:42px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border-bottom:1px solid #eee; background:#f5f5f5; box-sizing:border-box; }
.customer-tag-selected-pane strong { font-size:14px; font-weight:600; }
.customer-tag-selected-pane button { padding:0; color:var(--green); border:0; background:transparent; }
#customerTagModalSelectedList { display:flex; flex-direction:column; gap:6px; padding:10px 12px; }
#customerTagModalSelectedList p { margin:28px 0 0; color:#aaa; text-align:center; }
#customerTagModalSelectedList span { min-height:30px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 8px; color:#555; background:#f7f7f7; box-sizing:border-box; }
#customerTagModalSelectedList span button { flex:0 0 auto; color:#999; }
.wechat-account-display { color:#555; font-style:normal; white-space:nowrap; }
.wechat-account-display em { color:#f59a23; font-style:normal; }
.customer-tag-modal-count { margin-right:0; }.customer-tag-modal-count b { color:var(--green); font-weight:400; }.customer-tag-customer-dialog .friend-modal-footer .ghost-button:first-of-type { margin-left:auto; }
.customer-tag-history-dialog { width:660px; max-width:calc(100vw - 48px); overflow:hidden; }
.customer-tag-history-dialog .friend-modal-head { height:52px; padding:0 20px; }
.customer-tag-history-body { width:100%; box-sizing:border-box; padding:22px 24px 26px; }
.customer-tag-history-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }
.customer-tag-history-summary h3 { margin:0; color:#333; font-size:15px; font-weight:600; line-height:22px; }
.customer-tag-history-summary p { margin:5px 0 0; color:#999; font-size:12px; line-height:20px; }
.customer-tag-history-summary > span { min-width:112px; height:38px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 12px; box-sizing:border-box; border:1px solid #e4e4e4; border-radius:3px; color:#888; font-size:12px; background:#fafafa; }
.customer-tag-history-summary > span b { color:#333; font-size:17px; font-weight:500; }
.customer-tag-history-table { width:100%; overflow:hidden; border:1px solid #e8e8e8; border-radius:3px; }
.customer-tag-history-body table { width:100% !important; min-width:0 !important; border-collapse:collapse; table-layout:fixed; }
.customer-tag-history-body th,.customer-tag-history-body td { height:44px; box-sizing:border-box; padding:0 16px; border-bottom:1px solid #eee; color:#555; font-size:13px; font-weight:400; text-align:left; }
.customer-tag-history-body th { height:42px; color:#444; font-weight:600; background:#f5f5f5; }
.customer-tag-history-body tr:last-child td { border-bottom:0; }
.customer-tag-history-body th:nth-child(1),.customer-tag-history-body td:nth-child(1) { width:42%; }
.customer-tag-history-body th:nth-child(2),.customer-tag-history-body td:nth-child(2) { width:28%; }
.customer-tag-history-body th:nth-child(3),.customer-tag-history-body td:nth-child(3) { width:30%; }
.customer-tag-history-dialog .friend-modal-footer { height:58px; padding:0 20px; border-top:1px solid #eee; }
.customer-tag-history-dialog .friend-modal-footer button { min-width:88px; height:32px; }
.tag-growth { color:var(--green) !important; }
.tag-growth i { width:7px; height:9px; position:relative; display:inline-block; margin-right:7px; }
.tag-growth i::before { content:""; position:absolute; top:0; left:2px; border-right:3px solid transparent; border-bottom:4px solid var(--green); border-left:3px solid transparent; }
.tag-growth i::after { content:""; width:2px; height:5px; position:absolute; top:4px; left:4px; background:var(--green); }
.tag-flat { color:#aaa !important; }
.customer-tag-edit-dialog { width:520px; }.customer-tag-edit-body { padding:22px 28px 28px; }.customer-tag-edit-body label { display:grid; grid-template-columns:90px 1fr; align-items:center; gap:10px; margin:14px 0; }.customer-tag-edit-body input { height:34px; box-sizing:border-box; padding:0 11px; border:1px solid #ddd; border-radius:3px; outline:0; }.customer-tag-edit-body input:focus { border-color:var(--green); }
.final-date-range { height:34px; display:grid; grid-template-columns:1fr 20px 1fr 24px; align-items:center; box-sizing:border-box; border:1px solid #ddd; border-radius:3px; background:#fff; }
.final-date-range input { width:100%; min-width:0; height:32px; padding:0 8px; box-sizing:border-box; border:0; color:#555; text-align:center; outline:0; background:transparent; }
.final-date-range b { color:#aaa; font-weight:400; text-align:center; }
.final-date-range i { width:14px; height:14px; position:relative; justify-self:center; box-sizing:border-box; border:1px solid #999; border-radius:2px; }
.final-date-range i::before { content:""; height:3px; position:absolute; top:-2px; right:2px; left:2px; border-left:1px solid #999; border-right:1px solid #999; }
.final-date-range:focus-within { border-color:var(--green); }
.customer-tag-customer-filter .customer-tag-filter-line {
  align-items:stretch;
}
.customer-tag-customer-filter .customer-tag-filter-line > .shared-select,
.customer-tag-customer-filter .customer-tag-filter-line > .shared-select [data-shared-select-trigger],
.customer-tag-customer-filter .customer-tag-filter-line > .final-date-range {
  height:32px;
  min-height:32px;
  align-self:stretch;
}
.customer-tag-customer-filter .customer-tag-filter-line > .final-date-range {
  grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) 24px;
  gap:0;
  padding:0;
}
.customer-tag-customer-filter .customer-tag-filter-line > .final-date-range input {
  height:30px;
  min-height:30px;
  line-height:30px;
}
@media (max-width:1100px) { .customer-tag-customer-filter { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.smart-tag-page { height:calc(100vh - 48px); min-width:1080px; display:flex; flex-direction:column; overflow:hidden; color:#444; font-size:13px; background:#f2f2f2; }
.smart-tag-page.hidden { display:none; }
.smart-tag-head { height:48px; flex:0 0 48px; display:flex; align-items:center; justify-content:space-between; padding:0 16px 0 22px; box-sizing:border-box; border-bottom:1px solid #e6e6e6; background:#fff; }
.smart-tag-main-tabs { height:100%; display:flex; align-items:stretch; gap:18px; }
.smart-tag-main-tabs button { min-width:72px; position:relative; border:0; color:#666; font-size:14px; font-weight:400; background:transparent; }
.smart-tag-main-tabs button.active { color:var(--green); }
.smart-tag-main-tabs button.active::after { content:""; height:2px; position:absolute; right:4px; bottom:0; left:4px; background:var(--green); }
.smart-tag-manage-button { height:30px; padding:0 13px 0 32px; position:relative; }
.smart-tag-manage-button::before { content:""; width:14px; height:14px; position:absolute; left:12px; top:7px; background:#777; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 15.5A3.5 3.5 0 1 0 12 8a3.5 3.5 0 0 0 0 7.5Z'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .34 1.88l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06A1.7 1.7 0 0 0 15 19.4a1.7 1.7 0 0 0-1 .92V20a2 2 0 1 1-4 0v-.08a1.7 1.7 0 0 0-1-.92 1.7 1.7 0 0 0-1.88.34l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.7 1.7 0 0 0 4.6 15a1.7 1.7 0 0 0-.92-1H3.6a2 2 0 1 1 0-4h.08a1.7 1.7 0 0 0 .92-1 1.7 1.7 0 0 0-.34-1.88l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.7 1.7 0 0 0 9 4.6a1.7 1.7 0 0 0 1-.92V3.6a2 2 0 1 1 4 0v.08a1.7 1.7 0 0 0 1 .92 1.7 1.7 0 0 0 1.88-.34l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.7 1.7 0 0 0 19.4 9c.14.34.47.68.92 1h.08a2 2 0 1 1 0 4h-.08a1.7 1.7 0 0 0-.92 1Z'/%3E%3C/svg%3E") center/contain no-repeat; }
.smart-tag-panel { min-height:0; flex:1; display:flex; flex-direction:column; }
.smart-tag-panel.hidden { display:none; }
.smart-tag-category-tabs { height:50px; flex:0 0 50px; display:flex; align-items:flex-end; gap:9px; padding:0 16px 0 28px; box-sizing:border-box; background:#f2f2f2; }
.smart-tag-category-tabs button { min-width:110px; height:38px; padding:0 16px; border:1px solid #ddd; border-bottom-color:#e7e7e7; border-radius:3px 3px 0 0; color:#555; font-size:13px; font-weight:400; background:#fff; }
.smart-tag-category-tabs button:not([data-smart-tag-category="自定义标签"]) { display:none; }
.smart-tag-category-tabs button.active { position:relative; z-index:1; border-color:#d9d9d9; border-bottom-color:#fff; color:var(--green); background:#fff; }
.smart-tag-category-tabs button.active::after { content:""; height:2px; position:absolute; right:18px; bottom:-1px; left:18px; background:var(--green); }
.smart-tag-workspace { min-height:0; flex:1; display:flex; padding:0 12px 12px; box-sizing:border-box; }
.smart-tag-sidebar { width:280px; flex:0 0 280px; display:flex; flex-direction:column; min-height:0; border:1px solid #e7e7e7; background:#fff; }
.smart-tag-sidebar h3,.smart-tag-customers h3,.smart-dashboard-sidebar h3 { height:46px; display:flex; align-items:center; margin:0; padding:0 16px; border-bottom:1px solid #eee; color:#333; font-size:14px; font-weight:600; }
.smart-tag-side-tools { height:50px; display:flex; align-items:center; gap:10px; padding:0 12px; box-sizing:border-box; }
.smart-tag-side-tools .search-control { flex:1; height:32px; }
.smart-tag-side-tools > button { width:32px; height:32px; border:1px solid #d9d9d9; border-radius:3px; color:#333; font-size:22px; font-weight:300; background:#fff; }
.smart-tag-tree { min-height:0; flex:1; overflow:auto; padding:0 14px 16px; }
.smart-tag-tree-group { margin-bottom:2px; }
.smart-tag-tree-group:not(.open) > div { display:none; }
.smart-tag-tree-title,.smart-tag-tree-item { width:100%; height:32px; display:flex; align-items:center; border:0; color:#555; font-size:13px; font-weight:400; text-align:left; background:transparent; }
.smart-tag-tree-title { gap:8px; padding:0 5px 0 0; }
.smart-tag-tree-arrow { width:0; height:0; flex:0 0 auto; border-top:4px solid transparent; border-bottom:4px solid transparent; border-left:5px solid #777; transform:rotate(90deg); }
.smart-tag-tree-group:not(.open) .smart-tag-tree-arrow { transform:none; }
.smart-tag-tree-title span,.smart-tag-tree-item span { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.smart-tag-tree-title em,.smart-tag-tree-item em { min-width:24px; color:#999; font-size:12px; font-style:normal; font-weight:400; text-align:right; }
.smart-tag-tree-item { gap:8px; padding:0 5px 0 25px; border-radius:3px; }
.smart-tag-tree-item:hover { color:var(--green); background:#f5faf2; }
.smart-tag-tree-item.active { color:#31851f; background:#eaf3ff; }
.smart-tag-customers { min-width:0; flex:1; display:flex; flex-direction:column; margin-left:12px; border:1px solid #e7e7e7; background:#fff; }
.smart-tag-toolbar { min-height:58px; display:flex; align-items:center; gap:10px; padding:0 14px; box-sizing:border-box; border-bottom:1px solid #eee; }
.smart-tag-toolbar .primary-button { height:34px; padding:0 18px; }
.smart-tag-toolbar .primary-button::before { content:"+"; margin-right:7px; font-size:18px; vertical-align:-1px; }
.smart-tag-toolbar .shared-select { width:190px; flex:0 0 190px; }
.smart-tag-toolbar .smart-tag-filter-select { height:32px; }
.smart-tag-toolbar .smart-tag-filter-select .shared-select-trigger { height:32px; padding:0 10px 0 12px; color:#999; font-size:13px; font-weight:400; line-height:32px; border-color:#d9d9d9; background:#fff; }
.smart-tag-toolbar .smart-tag-filter-select.has-value .shared-select-trigger { color:#555; }
.smart-tag-toolbar .smart-tag-filter-select.open .shared-select-trigger { color:#555; border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.smart-tag-toolbar .smart-tag-filter-select .shared-select-menu { top:34px; padding:0; border-color:#e4e4e4; border-radius:2px; box-shadow:0 4px 10px rgba(0,0,0,.13); }
.smart-tag-toolbar .smart-tag-filter-select .shared-select-menu button { height:36px; padding:0 12px; color:#666; font-size:13px; font-weight:400; line-height:36px; background:#fff; }
.smart-tag-toolbar .smart-tag-filter-select .shared-select-menu button:hover { color:#555; background:#f4f8f1; }
.smart-tag-toolbar .smart-tag-filter-select .shared-select-menu button.active { color:var(--green); background:#eaf4e5; }
.smart-tag-customer-search { width:250px; }
.smart-tag-customer-search input { height:32px; color:#555; font-size:13px; font-weight:400; }
.smart-tag-customer-search input::placeholder { color:#b8b8b8; opacity:1; }
.smart-tag-task-button { margin-left:auto; }
.smart-tag-table-scroll { min-height:0; flex:1; overflow:auto; }
.smart-tag-table { width:100%; min-width:900px; border-collapse:collapse; table-layout:fixed; }
.smart-tag-table th { height:44px; padding:0 14px; color:#444; font-weight:600; text-align:left; background:#f5f5f5; }
.smart-tag-table td { height:66px; padding:8px 14px; border-bottom:1px solid #eee; color:#555; vertical-align:middle; }
.smart-tag-table th:first-child { width:36px; }.smart-tag-table th:nth-child(2),.smart-tag-table th:nth-child(3) { width:230px; }
.smart-tag-batch-bar { height:56px; flex:0 0 56px; display:flex; align-items:center; gap:12px; padding:0 16px; box-sizing:border-box; border-top:1px solid #e8e8e8; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.03); }
.smart-tag-batch-bar span { color:#666; font-size:13px; }
.smart-tag-batch-bar b { color:var(--green); font-weight:400; }
.smart-tag-batch-bar .text-button { color:var(--green); font-size:13px; }
.smart-tag-batch-bar .ghost-button { height:32px; padding:0 16px; color:var(--green); border-color:var(--green); background:#fff; }
.smart-tag-batch-bar .ghost-button:disabled { cursor:not-allowed; color:#c8c8c8; border-color:#e4e4e4; background:#f7f7f7; }
.smart-tag-batch-bar .ghost-button:first-of-type { margin-left:auto; }
.smart-tag-manage-panel { min-height:0; flex:1; display:flex; flex-direction:column; overflow:hidden; background:#f2f2f2; }
.smart-tag-manage-panel > h3 { height:44px; flex:0 0 44px; display:flex; align-items:center; margin:0; padding:0 12px; box-sizing:border-box; color:#333; font-size:14px; font-weight:600; background:#f2f2f2; }
.smart-tag-manage-toolbar { height:56px; flex:0 0 56px; display:flex; align-items:center; gap:10px; padding:0 16px; box-sizing:border-box; background:#fff; }
.smart-tag-manage-toolbar .primary-button { height:32px; padding:0 16px; }
.smart-tag-manage-toolbar .primary-button::before { content:"+"; margin-right:7px; font-size:18px; vertical-align:-1px; }
.smart-tag-manage-search { width:220px; height:32px; }
.smart-tag-manage-search input { height:32px; color:#555; font-size:13px; font-weight:400; }
.smart-tag-manage-search input::placeholder { color:#b8b8b8; opacity:1; }
.smart-tag-manage-toolbar > span { margin-left:auto; color:#999; font-size:13px; white-space:nowrap; }
.smart-tag-manage-table-wrap { min-height:0; flex:1; overflow:auto; background:#fff; }
.smart-tag-manage-table { width:100%; min-width:980px; border-collapse:collapse; table-layout:fixed; }
.smart-tag-manage-table th { height:42px; padding:0 18px; color:#333; font-size:13px; font-weight:600; text-align:left; background:#f5f5f5; }
.smart-tag-manage-table td { height:68px; padding:14px 18px; border-bottom:1px solid #eee; color:#444; font-size:13px; vertical-align:top; }
.smart-tag-manage-table th:first-child,.smart-tag-manage-table td:first-child { width:190px; }
.smart-tag-manage-table th:last-child,.smart-tag-manage-table td:last-child { width:260px; }
.smart-tag-manage-tags { display:flex; flex-wrap:wrap; gap:8px 8px; align-items:flex-start; padding-top:0; }
.smart-tag-manage-tags > span { min-height:26px; position:relative; display:inline-flex; align-items:center; padding:0 9px; border:1px solid #e1e1e1; border-radius:3px; color:#666; background:#f3f3f3; }
.smart-tag-manage-tags > span:hover { background:#fff; }
.smart-tag-manage-tags > span em { display:none; position:absolute; left:50%; top:30px; z-index:5; min-width:122px; padding:10px 12px; transform:translateX(-50%); box-sizing:border-box; border:1px solid #e8e8e8; background:#fff; box-shadow:0 3px 10px rgba(0,0,0,.12); font-style:normal; white-space:nowrap; }
.smart-tag-manage-tags > span:hover em { display:flex; gap:12px; }
.smart-tag-manage-tags button,.smart-tag-manage-actions button { height:22px; padding:0; border:0; color:var(--green); font-size:13px; font-weight:400; line-height:22px; background:transparent; }
.smart-tag-manage-actions button.muted { color:#999; }
.smart-tag-manage-actions { display:flex; align-items:center; gap:18px; justify-content:flex-start; }
.smart-action-modal { z-index:1900; }
.smart-input-dialog { width:480px; max-width:calc(100vw - 40px); overflow:hidden; }
.smart-action-body { padding:26px 28px 30px; }
.smart-action-body label { display:grid; grid-template-columns:82px minmax(0,1fr); align-items:center; gap:10px; color:#444; font-size:13px; }
.smart-action-body input { width:100%; height:34px; padding:0 11px; box-sizing:border-box; border:1px solid #dcdcdc; border-radius:3px; color:#444; font-size:13px; outline:0; }
.smart-action-body input:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.smart-action-body input::placeholder { color:#b8b8b8; opacity:1; }
.smart-action-error { margin:8px 0 0 92px; color:#f05a4f; font-size:12px; }
.smart-add-tags-dialog { width:520px; max-width:calc(100vw - 40px); overflow:hidden; }
.smart-add-tags-body { padding:24px 24px 22px; }
.smart-create-group-dialog { width:520px; max-width:calc(100vw - 40px); overflow:hidden; }
.smart-create-group-body { padding:22px 24px 20px; }
.smart-create-group-name { display:grid; gap:10px; margin-bottom:18px; color:#444; font-size:13px; }
.smart-create-group-name input { width:100%; height:34px; padding:0 11px; box-sizing:border-box; border:1px solid #dcdcdc; border-radius:3px; color:#444; font-size:13px; outline:0; }
.smart-create-group-name input:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.smart-create-tags-block p { display:flex; align-items:center; gap:8px; margin:0 0 10px; color:#444; font-size:13px; }
.smart-create-tags-block p em { color:#999; font-style:normal; }
.smart-add-tag-row { display:grid; grid-template-columns:minmax(0,1fr) 34px; align-items:center; gap:10px; margin-bottom:8px; }
.smart-add-tag-row input { height:34px; padding:0 11px; box-sizing:border-box; border:1px solid #dcdcdc; border-radius:3px; color:#444; font-size:13px; outline:0; }
.smart-add-tag-row input:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.smart-add-tag-row input::placeholder { color:#b8b8b8; opacity:1; }
.smart-add-tag-row button { width:30px; height:30px; position:relative; border:1px solid #ddd; border-radius:3px; background:#fff; }
.smart-add-tag-row button::before { content:""; position:absolute; left:8px; top:7px; width:13px; height:15px; border:1px solid #8b8b8b; border-top:0; border-radius:0 0 2px 2px; box-sizing:border-box; }
.smart-add-tag-row button::after { content:""; position:absolute; left:7px; top:5px; width:15px; height:1px; background:#8b8b8b; box-shadow:4px -3px 0 -1px #8b8b8b; }
.smart-add-tag-line { height:32px; padding:0 16px; color:var(--green); border-color:var(--green); background:#fff; }
.smart-create-group-dialog .smart-action-error { margin:8px 0 0; }
.smart-add-tags-dialog .friend-modal-footer span,.smart-batch-delete-dialog .friend-modal-footer span,.smart-move-tags-dialog .friend-modal-footer span { margin-right:auto; color:#999; font-size:13px; }
.smart-add-tags-dialog .smart-action-error { margin:8px 0 0; }
.smart-batch-delete-dialog { width:700px; max-width:calc(100vw - 40px); overflow:hidden; }
.smart-batch-delete-body { padding:22px 24px 24px; }
.smart-batch-check { min-height:30px; display:inline-flex; align-items:flex-start; gap:8px; color:#555; font-size:13px; line-height:22px; }
.smart-batch-check input { position:absolute; opacity:0; pointer-events:none; }
.smart-batch-check i { width:14px; height:14px; flex:0 0 14px; margin-top:4px; border:1px solid #cfcfcf; border-radius:3px; box-sizing:border-box; background:#fff; }
.smart-batch-check input:checked + i { border-color:var(--green); background:var(--green); box-shadow:inset 0 0 0 3px #fff; }
.smart-batch-check input:indeterminate + i { border-color:var(--green); background:linear-gradient(var(--green),var(--green)) center/8px 2px no-repeat #fff; }
.smart-batch-all { display:flex; margin-bottom:12px; }
.smart-delete-check-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px 22px; }
.smart-delete-empty { margin:0; color:#999; font-size:13px; }
.smart-move-tags-dialog { width:620px; max-width:calc(100vw - 40px); overflow:hidden; }
.smart-move-tags-body { max-height:430px; overflow:auto; padding:20px 24px 8px; }
.smart-move-tags-body section { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid #f0f0f0; }
.smart-move-tags-body section > strong { color:#444; font-size:13px; font-weight:500; line-height:28px; }
.smart-move-tags-body section > div { display:flex; flex-wrap:wrap; gap:8px; }
.smart-move-tags-body button { min-height:28px; padding:0 10px; border:1px solid #ddd; border-radius:3px; color:#555; font-size:13px; background:#fff; }
.smart-move-tags-body button.active { color:var(--green); border-color:var(--green); background:#f4fbf0; }
.smart-dashboard-label { height:50px; display:flex; align-items:flex-end; padding-left:28px; box-sizing:border-box; background:#f2f2f2; }
.smart-dashboard-label span { height:38px; display:flex; align-items:center; padding:0 18px; border:1px solid #ddd; border-bottom-color:#fff; border-radius:3px 3px 0 0; color:var(--green); background:#fff; }
.smart-dashboard-layout { min-height:0; flex:1; display:grid; grid-template-columns:280px minmax(0,1fr); padding:0 12px 12px; box-sizing:border-box; }
.smart-dashboard-sidebar { min-height:0; border:1px solid #e7e7e7; background:#fff; }
.smart-dashboard-sidebar .search-control { width:auto; height:32px; margin:12px 16px; display:grid; grid-template-columns:minmax(0,1fr) 34px; }
.smart-dashboard-sidebar .search-control input { width:100%; min-width:0; }
.smart-dashboard-sidebar .search-control .search-button { width:34px; min-width:34px; }
#smartDashboardGroups { display:flex; flex-direction:column; padding:0 16px; }
#smartDashboardGroups button { height:38px; padding:0 16px; border:0; color:#555; font-size:13px; text-align:left; background:#fff; }
#smartDashboardGroups button.active { color:#333; background:#d9e8cf; }
#smartDashboardGroups button.hidden { display:none; }
.smart-dashboard-content { min-width:0; border:1px solid #e7e7e7; border-left:0; background:#fff; overflow:auto; }
.smart-dashboard-charts { display:grid; grid-template-columns:minmax(360px,1fr) minmax(480px,1.45fr); gap:16px; padding:28px 16px 12px; }
.smart-dashboard-charts article { min-height:320px; border:1px solid #e8e8e8; background:#fff; }
.smart-dashboard-charts h3,.smart-dashboard-data-head h3 { margin:0; padding:0 0 0 0; color:#333; font-size:14px; font-weight:600; }
.smart-dashboard-charts article h3 { padding:18px 18px 0; }
.smart-pie-wrap { height:270px; display:flex; align-items:center; justify-content:center; gap:44px; }
.smart-pie { width:176px; height:176px; border-radius:50%; background:conic-gradient(#5a8cf0 0 25%,#5ad39a 0 34%,#ff9a3c 0 42%,#715cf6 0 58%,#69c7ec 0 100%); }
#smartPieLegend { margin:0; padding:0; list-style:none; }
#smartPieLegend li { height:22px; display:flex; align-items:center; gap:7px; color:#555; font-size:12px; }
#smartPieLegend i { width:24px; height:14px; border-radius:2px; background:#5a8cf0; }
#smartPieLegend li:nth-child(2) i { background:#5ad39a; } #smartPieLegend li:nth-child(3) i { background:#6f7e95; } #smartPieLegend li:nth-child(4) i { background:#ffb000; } #smartPieLegend li:nth-child(5) i { background:#715cf6; } #smartPieLegend li:nth-child(6) i { background:#69c7ec; } #smartPieLegend li:nth-child(7) i { background:#9a67c7; } #smartPieLegend li:nth-child(8) i { background:#ff8a36; } #smartPieLegend li:nth-child(9) i { background:#009688; } #smartPieLegend li:nth-child(10) i { background:#f37aa6; }
#smartPieLegend .smart-page-dot { justify-content:center; color:#999; }
.smart-bar-legend { height:46px; display:flex; align-items:center; justify-content:center; gap:22px; color:#555; font-size:12px; }
.smart-bar-legend span::before { content:""; width:24px; height:14px; display:inline-block; margin-right:6px; border-radius:2px; vertical-align:-2px; background:#5a8cf0; }
.smart-bar-legend span:nth-child(2)::before { background:#5ad39a; }
.smart-bars { height:230px; display:flex; align-items:flex-end; gap:14px; padding:22px 34px 38px; box-sizing:border-box; border-top:1px solid transparent; }
.smart-bars span { height:180px; flex:1; min-width:28px; position:relative; display:flex; align-items:flex-end; justify-content:center; gap:4px; border-top:1px solid #ddd; border-bottom:1px solid #ddd; }
.smart-bars i,.smart-bars b { width:16px; min-height:1px; display:block; background:#5a8cf0; }
.smart-bars b { background:#5ad39a; }
.smart-bars em { width:80px; position:absolute; left:50%; bottom:-28px; transform:translateX(-50%) rotate(-12deg); color:#555; font-size:11px; font-style:normal; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.smart-dashboard-data-head { display:flex; align-items:flex-end; justify-content:space-between; padding:10px 16px 12px; }
.smart-dashboard-data-head > div { display:grid; gap:12px; }
.smart-dashboard-data-head .final-date-range { width:260px; }
.smart-dashboard-table-scroll { padding:0 16px 22px; overflow:auto; }
.smart-dashboard-table { width:100%; min-width:1120px; border-collapse:collapse; }
.smart-dashboard-table th { height:44px; padding:0 16px; color:#333; font-weight:600; text-align:left; background:#f5f5f5; white-space:nowrap; }
.smart-dashboard-table td { height:48px; padding:0 16px; border-bottom:1px solid #eee; color:#555; white-space:nowrap; }

.managed-wechat-page { height:calc(100vh - 48px); min-height:0; display:flex; flex-direction:column; overflow:hidden; margin:0; padding:14px 16px 18px; color:#333; font-size:14px; background:#f2f2f2; }
.managed-wechat-page.hidden { display:none; }
.managed-wechat-head { min-height:54px; display:flex; align-items:center; gap:18px; flex:0 0 auto; margin-bottom:14px; padding:0 18px; border:1px solid #e8e8e8; background:#fff; }
.managed-wechat-title { color:#333; font-size:14px; font-weight:600; line-height:20px; }
.managed-wechat-summary { display:flex; align-items:center; gap:20px; color:#999; font-size:13px; }
.managed-wechat-summary b { color:#2dab11; font-weight:500; }
.managed-wechat-head-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
.managed-wechat-head-actions .ghost-button { height:32px; padding:0 16px; border-color:#d9d9d9; color:#555; background:#fff; }
.managed-wechat-head-actions .ghost-button:hover { color:#2dab11; border-color:#2dab11; }
.managed-wechat-setting { width:28px; height:28px; border:0; background:transparent; position:relative; }
.managed-wechat-setting::before { content:""; position:absolute; inset:5px; background:#666; mask:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.4 13.5a7.8 7.8 0 0 0 .1-1.5 7.8 7.8 0 0 0-.1-1.5l2-1.5-2-3.5-2.4 1a7.6 7.6 0 0 0-2.6-1.5L14 2h-4l-.4 2.5A7.6 7.6 0 0 0 7 6L4.6 5 2.6 8.5l2 1.5a7.8 7.8 0 0 0-.1 1.5 7.8 7.8 0 0 0 .1 1.5l-2 1.5 2 3.5 2.4-1a7.6 7.6 0 0 0 2.6 1.5L10 22h4l.4-2.5A7.6 7.6 0 0 0 17 18l2.4 1 2-3.5-2-1.5ZM12 15.5A3.5 3.5 0 1 1 12 8a3.5 3.5 0 0 1 0 7.5Z"/></svg>') center/contain no-repeat; }
.managed-wechat-layout { min-height:0; flex:1; display:grid; grid-template-columns:250px minmax(0,1fr); gap:12px; background:transparent; }
.managed-wechat-groups { overflow:auto; padding:12px 10px; border:1px solid #e8e8e8; background:#fff; }
.managed-wechat-group-search { display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:8px; margin-bottom:20px; position:relative; }
.managed-wechat-group-search input { grid-column:1; height:34px; padding:0 36px 0 12px; border:1px solid #dcdfe6; border-radius:3px; color:#555; font-size:14px; outline:none; }
.managed-wechat-group-search input:focus { border-color:#2dab11; }
.managed-wechat-group-search > button[aria-label] { position:absolute; right:44px; top:1px; width:32px; height:32px; border:0; border-left:1px solid #e5e5e5; background:#fff; }
.managed-wechat-group-search > button[aria-label]::before { content:""; display:block; width:15px; height:15px; margin:8px auto; border:2px solid #777; border-radius:50%; box-sizing:border-box; }
.managed-wechat-group-search > button[aria-label]::after { content:""; position:absolute; width:7px; height:2px; right:7px; top:21px; background:#777; transform:rotate(45deg); }
.managed-wechat-add-group { grid-column:2; width:32px; height:34px; border:1px solid #dcdfe6; border-radius:3px; color:#2dab11; font-size:22px; line-height:30px; background:#fff; }
.managed-wechat-add-group:hover { border-color:#2dab11; background:#f7fcf4; }
.managed-wechat-group-list { display:flex; flex-direction:column; gap:8px; }
.managed-wechat-group-row { position:relative; display:flex; align-items:center; height:40px; border-radius:4px; }
.managed-wechat-group-row.hidden { display:none; }
.managed-wechat-group-row:hover { background:#f5f7f4; }
.managed-wechat-group-row.active { background:#edf4ff; }
.managed-wechat-group-row.dragging { opacity:.55; }
.managed-wechat-group-row.drag-over { box-shadow:inset 0 0 0 1px #2dab11; background:#f2fbef; }
.managed-wechat-group-main { min-width:0; flex:1; height:40px; display:flex; align-items:center; gap:9px; padding:0 12px; border:0; color:#333; font-size:14px; text-align:left; background:transparent; cursor:pointer; }
.managed-wechat-group-main i { position:relative; width:13px; height:13px; flex:0 0 13px; box-sizing:border-box; }
.managed-wechat-group-main i.fixed::before { content:""; position:absolute; left:1px; top:1px; width:4px; height:4px; border:1px solid #c9c9c9; border-radius:1px; box-sizing:border-box; box-shadow:7px 0 0 0 #fff,7px 0 0 1px #c9c9c9,0 7px 0 0 #fff,0 7px 0 1px #c9c9c9,7px 7px 0 0 #fff,7px 7px 0 1px #c9c9c9; }
.managed-wechat-group-main i.drag::before { content:""; position:absolute; left:2px; top:1px; width:2px; height:2px; border-radius:50%; background:#d4d4d4; box-shadow:0 5px #d4d4d4,0 10px #d4d4d4,6px 0 #d4d4d4,6px 5px #d4d4d4,6px 10px #d4d4d4; }
.managed-wechat-group-main span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.managed-wechat-group-main em { margin-left:0; color:#777; font-style:normal; }
.managed-wechat-group-row.active .managed-wechat-group-main,.managed-wechat-group-row.active em { color:#2dab11; }
.managed-wechat-group-more { width:28px; height:28px; margin-right:6px; border:0; color:#555; font-size:14px; line-height:20px; background:transparent; opacity:1; }
.managed-wechat-group-more:hover { color:#2dab11; }
.managed-wechat-group-menu { position:absolute; right:8px; top:32px; z-index:20; width:86px; padding:6px 0; border:1px solid #e6e6e6; border-radius:3px; box-shadow:0 4px 12px rgba(0,0,0,.12); background:#fff; }
.managed-wechat-group-menu button { width:100%; height:34px; padding:0 14px; border:0; color:#555; font-size:14px; text-align:left; background:#fff; }
.managed-wechat-group-menu button:hover { color:#2dab11; background:#f5f5f5; }
.managed-wechat-main { min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
.managed-wechat-toolbar { height:54px; display:flex; align-items:center; gap:10px; flex:0 0 auto; padding:10px 14px; border:1px solid #e8e8e8; border-bottom:0; box-sizing:border-box; }
.managed-wechat-add { height:32px; padding:0 18px; border-radius:3px; }
.managed-wechat-search { width:180px; height:32px; }
.managed-wechat-search input { height:32px; font-size:13px; color:#555; }
.managed-wechat-filter { width:140px; flex:0 0 140px; }
.managed-wechat-filter .shared-select-menu { max-height:260px; overflow-y:auto; }
.managed-wechat-toolbar > .ghost-button { height:32px; padding:0 14px; border-color:#d9d9d9; color:#555; background:#fff; }
.managed-wechat-toolbar > .ghost-button:hover { color:#2dab11; border-color:#2dab11; }
.managed-wechat-table-wrap { min-height:0; flex:1; overflow:auto; border:1px solid #e8e8e8; border-top:0; background:#fff; }
.managed-wechat-table { width:100%; min-width:960px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.managed-wechat-table th { height:44px; padding:0 14px; color:#333; font-size:14px; font-weight:600; text-align:left; background:#f3f3f3; }
.managed-wechat-table td { height:64px; padding:9px 14px; color:#333; font-size:14px; font-weight:400; line-height:20px; border-bottom:1px solid #ededed; vertical-align:middle; }
.managed-wechat-table tr:hover td { background:#f7f7f7; }
.managed-wechat-table th:first-child,.managed-wechat-table td:first-child { width:40px; padding-left:18px; padding-right:0; }
.managed-wechat-table th:nth-child(2),.managed-wechat-table td:nth-child(2) { width:160px; }
.managed-wechat-table th:nth-child(3),.managed-wechat-table td:nth-child(3) { width:150px; }
.managed-wechat-table th:nth-child(4),.managed-wechat-table td:nth-child(4) { width:86px; }
.managed-wechat-table th:nth-child(5),.managed-wechat-table td:nth-child(5) { width:70px; }
.managed-wechat-table th:nth-child(6),.managed-wechat-table td:nth-child(6) { width:86px; }
.managed-wechat-table th:nth-child(7),.managed-wechat-table td:nth-child(7) { width:58px; }
.managed-wechat-table th:nth-child(8),.managed-wechat-table td:nth-child(8) { width:150px; }
.managed-wechat-table th:nth-child(9),.managed-wechat-table td:nth-child(9) { width:140px; }
.managed-wechat-table th:last-child,.managed-wechat-table td:last-child { position:sticky; right:0; z-index:2; background:#fff; box-shadow:-8px 0 12px rgba(255,255,255,.92); }
.managed-wechat-table th:last-child { z-index:3; background:#f3f3f3; }
.managed-wechat-table tr:hover td:last-child { background:#f7f7f7; }
.managed-wechat-account { display:flex; align-items:center; gap:10px; min-width:0; }
.managed-wechat-account .wx-avatar { width:34px; height:34px; flex:0 0 34px; border-radius:3px; }
.managed-wechat-account strong { display:block; color:#333; font-size:14px; font-weight:400; line-height:18px; }
.managed-wechat-account small { display:block; margin-top:1px; color:#f59a23; font-size:12px; line-height:16px; }
.managed-wechat-status { display:inline-flex; align-items:center; gap:5px; color:#999; font-size:14px; font-weight:400; }
.managed-wechat-status i { width:6px; height:6px; border-radius:50%; background:#d9d9d9; }
.managed-wechat-status.online { color:#2dab11; }
.managed-wechat-status.online i { background:#2dab11; }
.managed-wechat-status.offline { color:#f2554a; }
.managed-wechat-status.offline i { background:#f2554a; }
.managed-wechat-admin-cell { white-space:nowrap; }
.managed-wechat-actions { position:relative; display:flex; align-items:center; gap:12px; min-height:32px; }
.managed-wechat-actions > button { min-height:26px; border:0; padding:0 8px; border-radius:3px; color:#2dab11; font-size:14px; font-weight:400; line-height:20px; background:transparent; }
.managed-wechat-actions > button[data-managed-wechat-action="offline"] { color:#fff; background:#f2554a; }
.managed-wechat-actions > button[data-managed-wechat-action="online"] { color:#fff; background:#2dab11; }
.managed-wechat-actions > button:hover { color:#1d8d08; }
.managed-wechat-actions > button[data-managed-wechat-action]:hover { color:#fff; opacity:.9; }
.managed-wechat-more { white-space:nowrap; }
.managed-wechat-row-menu { right:auto; left:0; top:28px; width:144px; }
.managed-wechat-empty { height:180px; color:#bbb; text-align:center; }
.managed-wechat-batchbar { height:50px; display:flex; align-items:center; gap:10px; flex:0 0 auto; padding:0 14px; border-top:1px solid #e8e8e8; background:#fff; }
.managed-wechat-batchbar span { color:#555; font-size:14px; }
.managed-wechat-batchbar b,.managed-wechat-batchbar .text-button { color:#2dab11; font-weight:400; }
.managed-wechat-batchbar .text-button { border:0; background:transparent; }
.managed-wechat-batchbar .ghost-button { height:32px; padding:0 16px; color:#2dab11; border-color:#2dab11; background:#fff; }
.managed-wechat-batchbar .ghost-button:disabled { color:#bbb; border-color:#ddd; background:#f6f6f6; }
.managed-wechat-dialog { width:560px; }
.managed-wechat-dialog.wide { width:640px; }
.managed-wechat-dialog.change-group-dialog { overflow:visible; }
.managed-wechat-dialog.change-group-dialog .friend-modal-body { overflow:visible; padding:16px 0 20px; }
.managed-wechat-dialog.change-group-dialog .friend-modal-footer { height:56px; padding:0 22px; border-top:1px solid #eee; gap:12px; }
.managed-wechat-dialog.offline-confirm { width:500px; overflow:hidden; }
.managed-wechat-dialog.single-offline-confirm { width:430px; }
.managed-wechat-offline-confirm-body { display:flex; gap:16px; padding:30px 32px 24px; box-sizing:border-box; }
.managed-wechat-offline-confirm-body i { width:22px; height:22px; flex:0 0 22px; position:relative; margin-top:1px; border-radius:50%; background:#f5a623; }
.managed-wechat-offline-confirm-body i::before { content:"!"; position:absolute; inset:0; color:#fff; font-size:16px; font-weight:700; line-height:22px; text-align:center; }
.managed-wechat-offline-confirm-body strong { display:block; margin:0 0 10px; color:#333; font-size:16px; font-weight:600; line-height:22px; }
.managed-wechat-offline-confirm-body p { max-width:370px; margin:0; color:#666; font-size:14px; line-height:22px; }
.managed-wechat-dialog.offline-confirm .friend-modal-footer { height:auto; justify-content:flex-end; gap:10px; padding:0 32px 24px; border-top:0; }
.managed-wechat-dialog.single-offline-confirm .managed-wechat-offline-confirm-body { padding:30px 32px 24px; }
.managed-wechat-dialog.single-offline-confirm .managed-wechat-offline-confirm-body p { max-width:310px; }
.managed-wechat-dialog.offline-countdown { width:520px; overflow:hidden; }
.managed-wechat-dialog.offline-countdown .friend-modal-head { height:52px; padding:0 20px; border-bottom:1px solid #eee; }
.managed-wechat-dialog.offline-countdown .friend-modal-head strong { font-size:15px; font-weight:600; }
.managed-wechat-countdown-body { height:168px; display:flex; align-items:center; justify-content:center; color:#333; font-size:16px; line-height:24px; }
.managed-wechat-countdown-body b { margin:0 6px; color:#ff3347; font-size:22px; font-weight:700; }
.managed-wechat-dialog.offline-countdown .friend-modal-footer { height:62px; justify-content:center; padding:0; border-top:1px solid #eee; }
.wechat-login-dialog { width:380px; overflow:hidden; }
.wechat-login-dialog .friend-modal-head { height:46px; padding:0 18px; border-bottom:1px solid #eee; }
.wechat-login-dialog .friend-modal-head strong { font-size:15px; font-weight:600; color:#333; }
.wechat-login-body { display:flex; justify-content:center; padding:24px 0 30px; background:#fff; }
.wechat-login-card { width:260px; min-height:350px; display:flex; flex-direction:column; align-items:center; box-sizing:border-box; padding:22px 20px 26px; border-radius:3px; color:#fff; background:linear-gradient(180deg,#57a8f3 0%,#2d65dc 100%); }
.wechat-login-card p { margin:0 0 16px; font-size:16px; line-height:22px; font-weight:500; }
.wechat-login-qr { width:180px; height:180px; display:block; box-sizing:border-box; border:8px solid #fff; object-fit:cover; background:#fff; }
.wechat-login-qr.refreshing { animation:wechatQrPulse .24s ease; }
.wechat-login-card span { margin:14px 0 18px; color:rgba(255,255,255,.9); font-size:14px; line-height:22px; text-align:center; }
.wechat-login-card button { height:32px; min-width:64px; padding:0 18px; border:0; border-radius:3px; color:#2861d8; font-size:14px; background:#fff; }
@keyframes wechatQrPulse { 0% { opacity:.45; transform:scale(.985); } 100% { opacity:1; transform:scale(1); } }
.new-wechat-login-choice { width:580px; overflow:hidden; }
.new-wechat-login-choice .friend-modal-head,.new-wechat-port-dialog .friend-modal-head { height:52px; padding:0 20px; border-bottom:1px solid #eee; }
.new-wechat-login-choice .friend-modal-head strong,.new-wechat-port-dialog .friend-modal-head strong { font-size:15px; font-weight:600; color:#333; }
.new-wechat-login-body { padding:16px 24px 28px; }
.new-wechat-login-option { min-height:112px; padding:14px 12px 12px; box-sizing:border-box; border:1px solid #e4e4e4; background:#fff; }
.new-wechat-login-option + .new-wechat-login-option { margin-top:12px; }
.new-wechat-login-option.highlighted { border-color:#9ab9ff; background:#dbe7ff; }
.new-wechat-login-option strong { display:block; margin-bottom:8px; color:#333; font-size:18px; line-height:24px; font-weight:600; }
.new-wechat-login-option p { max-width:500px; margin:0 0 12px; color:#888; font-size:14px; line-height:22px; }
.new-wechat-login-option .primary-button,.new-wechat-login-option .ghost-button { height:32px; padding:0 16px; border-radius:3px; }
.new-wechat-login-option .ghost-button { color:#2dab11; border-color:#2dab11; background:#fff; }
.new-wechat-port-dialog { width:560px; overflow:visible; }
.new-wechat-port-body { padding:26px 36px 22px; }
.new-wechat-port-body > strong { display:block; margin-bottom:28px; color:#333; font-size:15px; font-weight:600; line-height:22px; }
.new-wechat-port-select { position:relative; width:400px; }
.new-wechat-port-select > button { width:100%; height:34px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border:1px solid #dcdfe6; border-radius:3px; color:#555; font-size:14px; line-height:32px; text-align:left; background:#fff; box-sizing:border-box; cursor:pointer; }
.new-wechat-port-select.open > button { border-color:#2dab11; box-shadow:0 0 0 2px rgba(45,171,17,.06); }
.new-wechat-port-select > button i { width:7px; height:7px; border-right:1px solid #9a9a9a; border-bottom:1px solid #9a9a9a; transform:rotate(45deg); transition:transform .16s ease; }
.new-wechat-port-select.open > button i { transform:rotate(225deg); }
.new-wechat-port-menu { position:absolute; left:0; right:0; top:33px; z-index:20; padding:4px 0; border:1px solid #dcdfe6; border-top:0; border-radius:0 0 3px 3px; box-shadow:0 4px 12px rgba(0,0,0,.12); background:#fff; overflow:hidden; }
.new-wechat-port-menu.hidden { display:none; }
.new-wechat-port-menu button { width:100%; height:32px; display:block; padding:0 12px; border:0; color:#555; font-size:14px; line-height:32px; text-align:left; background:#fff; cursor:pointer; }
.new-wechat-port-menu button.active { color:#333; font-weight:600; background:#dbe9d2; }
.new-wechat-port-menu button:hover { background:#f3f3f3; }
.new-wechat-port-dialog .friend-modal-footer { height:60px; gap:10px; padding:0 24px; border-top:0; }
.managed-wechat-confirm { padding:8px 0; color:#666; line-height:24px; }
.managed-wechat-confirm p { margin:0 0 8px; color:#333; font-size:15px; font-weight:500; }
.managed-wechat-confirm span { color:#888; font-size:14px; }
.managed-wechat-log-list { padding:4px 0; }
.managed-wechat-log-list article { display:flex; gap:12px; padding:12px 0; color:#555; }
.managed-wechat-log-list i { width:8px; height:8px; margin-top:7px; border-radius:50%; background:#2dab11; }
.managed-wechat-log-list strong { display:block; font-size:14px; font-weight:400; line-height:22px; }
.managed-wechat-log-list time { display:block; color:#999; font-size:13px; line-height:20px; }
.managed-wechat-log-table-wrap { max-height:560px; overflow:auto; padding:8px 0 0; }
.managed-wechat-log-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.managed-wechat-log-table th { height:46px; padding:0 20px; color:#333; font-size:14px; font-weight:600; text-align:left; background:#f3f3f3; }
.managed-wechat-log-table td { height:47px; padding:0 20px; color:#333; font-size:14px; border-bottom:1px solid #eee; }
.managed-wechat-log-table th:nth-child(1),.managed-wechat-log-table td:nth-child(1) { width:44%; }
.managed-wechat-log-table th:nth-child(2),.managed-wechat-log-table td:nth-child(2) { width:16%; }
.managed-wechat-limit-form label,.managed-wechat-dialog-field { display:flex; align-items:center; gap:10px; padding:22px 0; color:#555; font-size:14px; }
.managed-wechat-limit-form input,.managed-wechat-dialog-field input { width:90px; height:34px; padding:0 10px; border:1px solid #dcdfe6; border-radius:3px; color:#333; font-size:14px; outline:none; box-sizing:border-box; }
.managed-wechat-dialog-field input { width:320px; }
.managed-wechat-limit-form input:focus,.managed-wechat-dialog-field input:focus { border-color:#2dab11; }
.managed-wechat-dialog.group-create-dialog { width:460px; overflow:hidden; }
.managed-wechat-dialog.group-create-dialog .friend-modal-head { height:50px; padding:0 20px; border-bottom:1px solid #eee; }
.managed-wechat-dialog.group-create-dialog .friend-modal-head strong { font-size:15px; font-weight:600; }
.managed-wechat-dialog.group-create-dialog .friend-modal-body { padding:18px 32px 20px; }
.managed-wechat-dialog.group-create-dialog .managed-wechat-dialog-field { min-height:72px; display:grid; grid-template-columns:78px minmax(0,1fr); gap:10px; padding:0; box-sizing:border-box; }
.managed-wechat-dialog.group-create-dialog .managed-wechat-dialog-field span { text-align:right; }
.managed-wechat-dialog.group-create-dialog .managed-wechat-dialog-field input { width:100%; height:32px; }
.managed-wechat-dialog.group-create-dialog .friend-modal-footer { height:56px; gap:12px; padding:0 22px; border-top:1px solid #eee; }
.managed-wechat-limit-form button { height:34px; padding:0 14px; border:1px solid #dcdfe6; border-radius:3px; color:#777; background:#fff; }
.managed-wechat-empty-dialog { height:120px; display:flex; align-items:center; justify-content:center; color:#aaa; font-size:14px; }
.managed-wechat-change-group { width:460px; min-height:94px; margin:0 auto; padding:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
.managed-wechat-change-group .managed-wechat-move-mode { width:100%; display:flex; align-items:center; justify-content:center; gap:22px; margin:0 0 18px; padding:0; }
.managed-wechat-move-mode label { display:flex; align-items:center; gap:7px; color:#555; font-size:14px; line-height:20px; white-space:nowrap; cursor:pointer; }
.managed-wechat-move-mode input { position:absolute; opacity:0; pointer-events:none; }
.managed-wechat-move-mode i { width:15px; height:15px; border:1px solid #d9d9d9; border-radius:50%; box-sizing:border-box; background:#fff; }
.managed-wechat-move-mode input:checked + i { border-color:#2dab11; box-shadow:inset 0 0 0 4px #fff; background:#2dab11; }
.managed-wechat-group-picker { position:relative; width:360px; margin:0 auto; border-radius:3px; background:#fff; }
.managed-wechat-group-picker > button { width:100%; height:34px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border:1px solid #2dab11; border-radius:3px; color:#aaa; font-size:14px; background:#fff; }
.managed-wechat-group-picker > button em { width:14px; height:14px; position:relative; }
.managed-wechat-group-picker > button em::before { content:""; position:absolute; left:1px; top:1px; width:11px; height:11px; border:2px solid #bbb; border-radius:50%; box-sizing:border-box; }
.managed-wechat-group-picker > button em::after { content:""; position:absolute; right:0; bottom:1px; width:6px; height:2px; background:#bbb; transform:rotate(45deg); }
.managed-wechat-group-dropdown { display:none; position:absolute; left:0; right:0; top:33px; z-index:60; border:1px solid #e6e6e6; border-top:0; border-radius:0 0 3px 3px; box-shadow:0 4px 12px rgba(0,0,0,.12); background:#fff; }
.managed-wechat-group-dropdown.open { display:block; }
.managed-wechat-group-picker-search { display:none; }
.managed-wechat-group-options { max-height:154px; overflow:auto; padding:4px 0; }
.managed-wechat-group-options button { width:100%; height:32px; display:block; padding:0 12px; border:0; color:#555; font-size:14px; text-align:left; background:#fff; }
.managed-wechat-group-options button:hover { background:#f4f4f4; color:#333; }
.managed-wechat-group-options button.hidden { display:none; }

/* Room tag */
.room-tag-page { min-width:960px; height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; color:#555; font-size:13px; background:#f2f2f2; }
.room-tag-page.hidden { display:none; }
.room-tag-head { height:48px; flex:0 0 48px; display:flex; align-items:center; padding:0 16px; box-sizing:border-box; border-bottom:1px solid #e6e6e6; background:#fff; }
.room-tag-panel { min-height:0; flex:1; display:flex; gap:12px; padding:12px; box-sizing:border-box; }
.room-tag-panel.hidden,.room-tag-manage.hidden { display:none; }
.room-tag-sidebar { width:280px; flex:0 0 280px; display:flex; flex-direction:column; min-height:0; border:1px solid #e7e7e7; background:#fff; }
.room-tag-sidebar h3 { height:56px; flex:0 0 56px; display:flex; align-items:center; margin:0; padding:0 16px; box-sizing:border-box; border-bottom:1px solid #eee; color:#333; font-size:14px; font-weight:600; }
.room-tag-tree-search { width:auto; height:32px; flex:0 0 32px; margin:10px 12px 8px; }
.room-tag-tree-search input { height:32px; padding-right:38px; border-radius:3px; }
.room-tag-tree-search .search-button { width:36px; height:30px; right:1px; border-left:1px solid #e4e4e4; border-radius:0 3px 3px 0; }
.room-tag-tree { min-height:0; flex:1; overflow:auto; padding:8px 10px 16px; }
.room-tag-tree-group { margin-bottom:1px; }
.room-tag-tree-group:not(.open) > div { display:none; }
.room-tag-tree-title,.room-tag-tree-item { width:100%; height:32px; display:flex; align-items:center; border:0; color:#555; font-size:13px; font-weight:400; text-align:left; background:transparent; cursor:pointer; }
.room-tag-tree-title { gap:7px; padding:0 7px 0 3px; }
.room-tag-tree-item { gap:8px; padding:0 11px 0 27px; border-radius:3px; }
.room-tag-tree-group[draggable="true"] > .room-tag-tree-title,.room-tag-tree-item[draggable="true"] { cursor:grab; }
.room-tag-tree-group[draggable="true"] > .room-tag-tree-title:active,.room-tag-tree-item[draggable="true"]:active { cursor:grabbing; }
.room-tag-tree-group.dragging,.room-tag-tree-item.dragging { opacity:.4; }
.room-tag-tree-group.drag-over > .room-tag-tree-title,.room-tag-tree-item.drag-over { box-shadow:inset 0 2px 0 var(--green); }
.room-tag-tree-title span,.room-tag-tree-item span { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.room-tag-tree-title em,.room-tag-tree-item em { color:#aaa; font-size:12px; font-style:normal; font-weight:400; }
.room-tag-tree-item:hover { color:var(--green); background:#f5faf2; }
.room-tag-tree-item.active { color:#31851f; background:#eaf3ff; }
.room-tag-content { min-width:0; flex:1; display:flex; flex-direction:column; border:1px solid #e7e7e7; background:#fff; }
.room-tag-toolbar { height:58px; flex:0 0 58px; display:flex; align-items:center; gap:10px; padding:0 14px; box-sizing:border-box; border-bottom:1px solid #eee; }
.room-tag-toolbar .primary-button { height:34px; padding:0 18px; }
.room-tag-toolbar .primary-button::before { content:"+"; margin-right:7px; font-size:18px; vertical-align:-1px; }
.room-tag-auto { color:#666; white-space:nowrap; }
.room-tag-auto button { padding:0 2px; border:0; color:var(--green); background:transparent; cursor:pointer; }
.room-tag-account { width:200px; flex:0 0 200px; }
.room-tag-group-search { width:200px; height:32px; }
.room-tag-group-search input { height:32px; padding-right:38px; }
.room-tag-group-search .search-button { width:36px; height:30px; right:1px; border-left:1px solid #e4e4e4; border-radius:0 3px 3px 0; }
.room-tag-task { margin-left:auto; }
.room-tag-table-scroll { min-height:0; flex:1; overflow:auto; }
.room-tag-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.room-tag-table th { height:44px; padding:0 18px; color:#444; font-size:13px; font-weight:600; text-align:left; background:#f5f5f5; }
.room-tag-table th:first-child { width:42px; }
.room-tag-table th:nth-child(2) { width:58%; }
.room-tag-table td { height:66px; padding:8px 18px; border-bottom:1px solid #eee; color:#555; font-size:13px; vertical-align:middle; }
.room-tag-table input[type="checkbox"] { width:15px; height:15px; accent-color:var(--green); }
.room-tag-group-cell { display:flex; align-items:center; gap:10px; color:#444; }
.room-tag-avatar { width:40px; height:40px; flex:0 0 40px; }
.room-tag-batch { height:56px; flex:0 0 56px; display:flex; align-items:center; gap:12px; padding:0 16px; box-sizing:border-box; border-top:1px solid #e7e7e7; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.03); }
.room-tag-batch span b { color:var(--green); font-weight:400; }
.room-tag-batch .text-button { color:var(--green); font-size:13px; font-weight:400; }
.room-tag-batch > button:not(.text-button) { height:32px; padding:0 14px; border:1px solid var(--green); border-radius:3px; color:var(--green); background:#fff; }
.room-tag-batch > button:disabled { border-color:#ddd; color:#bbb; background:#f7f7f7; }
.room-tag-manage { min-height:0; flex:1; display:flex; flex-direction:column; padding:12px; box-sizing:border-box; background:#f2f2f2; }
.room-tag-manage-toolbar { height:58px; flex:0 0 58px; display:flex; align-items:center; gap:12px; padding:0 14px; box-sizing:border-box; border:1px solid #e7e7e7; border-bottom:0; background:#fff; }
.room-tag-manage-toolbar .primary-button { height:34px; padding:0 18px; }
.room-tag-manage-toolbar .primary-button::before { content:"+"; margin-right:7px; font-size:18px; vertical-align:-1px; }
.room-tag-manage-toolbar span { color:#999; }
.room-tag-manage-table-wrap { min-height:0; flex:1; overflow:auto; border:1px solid #e7e7e7; background:#fff; }
.room-tag-manage-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.room-tag-manage-table th { height:44px; padding:0 20px; color:#444; font-size:13px; font-weight:600; text-align:left; background:#f5f5f5; }
.room-tag-manage-table th:first-child,.room-tag-manage-table td:first-child { width:220px; }
.room-tag-manage-table th:last-child,.room-tag-manage-table td:last-child { width:180px; }
.room-tag-manage-table td { height:60px; padding:13px 20px; border-bottom:1px solid #eee; color:#444; font-size:13px; vertical-align:middle; }
.room-tag-manage-tags { display:flex; flex-wrap:wrap; gap:8px; }
.room-tag-manage-tags em { display:inline-flex; align-items:center; min-height:25px; padding:1px 9px; box-sizing:border-box; border:1px solid #ddd; border-radius:3px; color:#666; font-size:12px; font-style:normal; background:#fff; }
.room-tag-manage-actions { display:flex; align-items:center; gap:14px; }
.room-tag-manage-actions button { height:24px; padding:0; border:0; color:var(--green); font-size:13px; font-weight:400; line-height:24px; background:transparent; cursor:pointer; }
.room-tag-action-modal { z-index:1900; }
.room-tag-create-dialog { width:520px; max-width:calc(100vw - 40px); overflow:hidden; }
.room-tag-create-body { padding:24px 24px 26px; }
.room-tag-create-field { display:grid; grid-template-columns:82px minmax(0,1fr); align-items:start; gap:10px; margin:0 0 20px; color:#444; font-size:13px; }
.room-tag-create-field > span { height:34px; line-height:34px; }
.room-tag-create-tags { margin-bottom:0; }
.room-tag-create-control { position:relative; }
.room-tag-create-control input { width:100%; height:34px; padding:0 52px 0 11px; box-sizing:border-box; border:1px solid #dcdcdc; border-radius:3px; color:#444; font-size:13px; outline:0; background:#fff; }
.room-tag-create-control input:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.room-tag-create-control input::placeholder { color:#b8b8b8; opacity:1; }
.room-tag-char-count { position:absolute; top:0; right:11px; height:34px; color:#777; font-size:13px; font-style:normal; line-height:34px; pointer-events:none; }
.room-tag-create-row { display:grid; grid-template-columns:minmax(0,1fr) 34px; align-items:center; gap:10px; margin-bottom:8px; }
.room-tag-create-row button { width:30px; height:30px; position:relative; border:1px solid #ddd; border-radius:3px; background:#fff; cursor:pointer; }
.room-tag-create-row button::before { content:""; position:absolute; left:8px; top:7px; width:13px; height:15px; border:1px solid #8b8b8b; border-top:0; border-radius:0 0 2px 2px; box-sizing:border-box; }
.room-tag-create-row button::after { content:""; position:absolute; left:7px; top:5px; width:15px; height:1px; background:#8b8b8b; box-shadow:4px -3px 0 -1px #8b8b8b; }
.room-tag-add-line { height:32px; padding:0 16px; color:var(--green); border-color:var(--green); background:#fff; }
.room-tag-action-error { margin:10px 0 0 92px; color:#f05a4f; font-size:12px; }
.room-tag-create-dialog .friend-modal-footer { height:56px; padding:0 24px; border-top:1px solid #eee; }
.room-tag-add-dialog .room-tag-create-body { padding-top:24px; padding-bottom:40px; }
.room-tag-add-dialog .friend-modal-footer span { margin-right:auto; color:#999; font-size:13px; }
.room-tag-move-dialog { width:700px; max-width:calc(100vw - 40px); overflow:hidden; }
.room-tag-move-body { padding:24px; }
.room-tag-move-search { width:200px; margin-bottom:12px; }
.room-tag-move-list { min-height:280px; max-height:420px; overflow:auto; border:1px solid #e5e5e5; padding:14px 16px; box-sizing:border-box; background:#fff; }
.room-tag-move-list section { padding:4px 0 18px; }
.room-tag-move-list section > strong { display:block; margin-bottom:10px; color:#999; font-size:13px; font-weight:400; }
.room-tag-move-list section > div { display:flex; flex-wrap:wrap; gap:10px; }
.room-tag-move-list button { height:30px; padding:0 12px; border:1px solid #dcdfe6; border-radius:3px; background:#fff; color:#555; font-size:13px; }
.room-tag-move-list button.active { color:var(--green); border-color:var(--green); background:#f4fbf0; }
.room-tag-auto-dialog { width:600px; max-width:calc(100vw - 40px); overflow:hidden; }
.room-tag-auto-body { padding:22px 24px 26px; }
.room-tag-auto-note { padding:12px 16px; margin-bottom:14px; border-radius:3px; color:#333; font-size:13px; line-height:1.75; background:#fff2df; }
.room-tag-auto-note p { margin:0; }
.room-tag-auto-rule { min-height:32px; display:flex; align-items:center; gap:9px; margin:0 0 12px; color:#555; font-size:13px; }
.room-tag-auto-rule input[type="checkbox"] { width:15px; height:15px; margin:0; accent-color:var(--green); }
.room-tag-auto-rule input[type="number"] { width:92px; height:32px; padding:0 10px; border:1px solid #dcdcdc; border-radius:3px; color:#555; font-size:13px; outline:0; }
.room-tag-auto-rule input[type="number"]:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.room-tag-auto-keywords { height:34px; display:flex; align-items:center; margin:0 0 10px 24px; border:1px solid #dcdcdc; border-radius:3px; overflow:hidden; background:#fff; }
.room-tag-auto-keywords:focus-within { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.room-tag-auto-keywords input { min-width:0; flex:1; height:32px; padding:0 11px; border:0; color:#555; font-size:13px; outline:0; }
.room-tag-auto-keywords input::placeholder { color:#b8b8b8; opacity:1; }
.room-tag-auto-keywords span { padding:0 8px; color:#999; font-size:13px; white-space:nowrap; }
.room-tag-auto-keywords span b { color:#999; font-weight:400; }
.room-tag-auto-keywords button { width:36px; height:32px; border:0; border-left:1px solid #e6e6e6; color:var(--green); font-size:18px; background:#fff; cursor:pointer; }
.room-tag-auto-chips { display:flex; flex-wrap:wrap; gap:8px; min-height:0; margin:0 0 12px 24px; }
.room-tag-auto-chips button { height:26px; padding:0 9px; border:1px solid #dcdfe6; border-radius:3px; color:#555; font-size:12px; background:#fff; cursor:pointer; }

/* 群活码 */
.live-code-page { min-height:calc(100vh - 48px); background:#f2f2f2; color:#444; font-size:13px; }
.live-code-page button,.live-code-page input,.live-code-page select,.live-code-page textarea { font:inherit; }
.live-code-page-head,.live-code-subhead { height:52px; display:flex; align-items:center; gap:18px; padding:0 20px; border-bottom:1px solid #e8e8e8; background:#fff; box-sizing:border-box; }
.live-code-page-head > strong,.live-code-subhead > strong { color:#333; font-size:15px; }
.live-code-subhead-meta { margin-left:-9px; color:#999; font-size:13px; }
.live-code-company { width:220px; }
.live-code-company .shared-select-trigger { width:100%; height:34px; text-align:left; padding:0 10px 0 12px; border:1px solid #dcdcdc; border-radius:3px; background:#fff; color:#555; }
.live-code-company .shared-select-menu { top:36px; max-height:210px; overflow-y:auto; }
.live-code-company .shared-select-menu button { height:34px; }
.live-code-list-shell,.live-code-secondary-shell { margin:14px; background:#fff; }
.live-code-actions { height:58px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #eee; }
.live-code-action-left { display:flex; gap:10px; }
.live-code-page .outline-button,.live-code-page .primary-button { height:34px; padding:0 17px; border-radius:3px; cursor:pointer; }
.live-code-page .outline-button { border:1px solid #ddd; color:#555; background:#fff; }
.live-code-page .primary-button { border:1px solid var(--green); color:#fff; background:var(--green); }
.live-code-new-wrap { position:relative; }
.live-code-new-menu { position:absolute; z-index:30; top:42px; right:0; width:360px; padding:8px 0; border:1px solid #ddd; border-radius:3px; box-shadow:0 4px 14px rgba(0,0,0,.12); background:#fff; }
.live-code-new-menu button { width:100%; display:block; padding:13px 16px; border:0; text-align:left; background:#fff; cursor:pointer; }
.live-code-new-menu button:hover { background:#f6fbf3; }
.live-code-new-menu strong { display:block; margin-bottom:5px; color:#333; font-size:14px; }
.live-code-new-menu span { display:block; color:#999; line-height:1.55; }
.live-code-filters { min-height:66px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 14px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-filters .search-control { width:190px; flex:0 0 190px; }
.live-code-filters select,.live-code-room-toolbar select { width:150px; height:34px; padding:0 32px 0 11px; border:1px solid #dcdcdc; border-radius:3px; color:#666; background:#fff; outline:0; }
.live-code-filters > select { width:125px; flex:0 0 125px; }
.live-code-filters > select:last-child { width:145px; flex-basis:145px; }
.live-code-filters .live-code-date { width:240px; flex:0 0 240px; }
.live-code-date { height:34px; display:flex; align-items:center; border:1px solid #dcdcdc; border-radius:3px; overflow:hidden; }
.live-code-date input { width:118px; height:32px; padding:0 10px; border:0; outline:0; color:#666; }
.live-code-date span { color:#aaa; }
.live-calendar { padding:0 9px; }
.live-code-card { min-height:142px; display:grid; grid-template-columns:26px 76px minmax(220px,1fr) minmax(420px,1.5fr) 260px; align-items:center; gap:10px; padding:16px 14px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-card:hover { background:#fafafa; }
.live-code-check input { width:15px; height:15px; accent-color:var(--green); }
.live-code-qr { width:58px; height:58px; display:block; position:relative; border:4px solid #fff; box-shadow:0 0 0 1px #ddd; background:#fff; object-fit:cover; box-sizing:border-box; }
.live-code-qr i { position:absolute; width:12px; height:12px; border:4px solid #111; background:#fff; }
.live-code-qr i:nth-child(1){left:1px;top:1px}.live-code-qr i:nth-child(2){right:1px;top:1px}.live-code-qr i:nth-child(3){left:1px;bottom:1px}.live-code-qr i:nth-child(4){right:5px;bottom:5px;width:5px;height:5px;border-width:2px}
.live-code-main { align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.live-code-name { display:flex; align-items:center; gap:8px; }
.live-code-name strong { color:#333; font-size:15px; }
.live-code-name span { padding:2px 6px; border:1px solid #c9e7bd; border-radius:2px; color:var(--green); background:#f5fbf2; font-size:12px; }
.live-code-state { margin:9px 0 8px; color:#f08b28; }
.live-code-state b,.live-dot { width:7px; height:7px; display:inline-block; margin-right:6px; border-radius:50%; background:currentColor; vertical-align:1px; }
.live-code-state.enabled,.live-dot.online { color:var(--green); }
.live-code-main p { margin:0; color:#999; }
.live-code-metrics { display:grid; grid-template-columns:repeat(4,minmax(92px,1fr)); margin:0; }
.live-code-metrics div { min-height:54px; padding:0 16px; border-left:1px solid #eee; }
.live-code-metrics dt { margin-bottom:10px; color:#999; }
.live-code-metrics dd { margin:0; color:#555; white-space:nowrap; }
.live-code-metrics b { color:#333; font-weight:500; }
.live-code-row-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:10px 12px; align-content:center; }
.live-code-row-actions button,.text-action { padding:0; border:0; text-align:left; color:var(--green); background:transparent; cursor:pointer; white-space:nowrap; }
.live-code-row-actions button:disabled { color:#ccc; cursor:not-allowed; }
.live-code-row-actions button.muted { color:#999; }
.live-code-empty { height:280px; display:grid; place-items:center; color:#bbb; }
.live-code-pagination { height:58px; display:flex; align-items:center; justify-content:center; gap:8px; }
.live-code-pagination button { width:32px; height:32px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.live-code-pagination button.active { border-color:var(--green); color:var(--green); }
.live-code-back { width:28px; height:28px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:#5369aa; font-size:20px; line-height:1; cursor:pointer; }
.live-code-create-shell { width:min(1120px,calc(100vw - 270px)); margin:16px auto 0; background:#fff; }
.live-code-steps { height:84px; display:flex; justify-content:center; margin:0; padding:20px 0 0; border-bottom:1px solid #eee; list-style:none; box-sizing:border-box; }
.live-code-steps li { width:220px; position:relative; display:flex; align-items:flex-start; gap:9px; color:#aaa; }
.live-code-steps li:not(:last-child)::after { content:""; position:absolute; top:15px; left:128px; width:78px; border-top:1px solid #ddd; }
.live-code-steps b { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#ccc; }
.live-code-steps span { line-height:30px; }
.live-code-steps li.active { color:#333; }
.live-code-steps li.active b { background:var(--green); }
.live-code-create-body { min-height:480px; padding:22px 32px; box-sizing:border-box; }
.live-code-create-footer { height:62px; display:flex; justify-content:center; align-items:center; gap:12px; border-top:1px solid #eee; }
.live-code-form { display:grid; grid-template-columns:minmax(600px,760px) 280px; gap:34px; justify-content:center; }
.live-code-form > section { grid-column:1; }
.live-code-form section { padding-bottom:12px; }
.live-code-form h3 { margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid #eee; color:#333; font-size:15px; }
.live-code-form section > label,.live-code-form details > label { min-height:44px; display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; }
.live-code-form section > label > span,.live-code-form details > label > span { width:112px; padding-top:9px; text-align:right; color:#555; flex:none; }
.live-code-form em { color:#f05a4f; font-style:normal; }
.live-code-form input[type="text"],.live-code-form input:not([type]),.live-code-form input[type="number"],.live-code-form textarea { width:460px; min-height:34px; padding:7px 11px; border:1px solid #ddd; border-radius:3px; outline:0; box-sizing:border-box; color:#555; }
.live-code-form input:focus,.live-code-form textarea:focus { border-color:var(--green); }
.live-code-form input.error { border-color:#f05a4f; }
.live-code-form textarea { height:78px; resize:none; }
.live-code-form small,.live-code-form label > i { padding-top:9px; color:#999; font-style:normal; }
.live-upload { height:34px; padding:0 14px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.live-radio-row { min-height:34px; display:flex; align-items:center; gap:26px; }
.live-radio-row label,.inline-check { display:flex; align-items:center; gap:6px; }
.live-radio-row input,.inline-check input { accent-color:var(--green); }
.live-code-form details { margin-left:122px; }
.live-code-form summary { margin:12px 0 18px; color:var(--green); cursor:pointer; }
.live-code-phone { grid-column:2; grid-row:1; min-height:430px; padding-left:24px; border-left:1px solid #eee; }
.live-code-phone > strong { display:block; margin-bottom:14px; color:#333; }
.live-code-phone > div { width:230px; min-height:380px; padding:24px 18px; border:8px solid #333; border-radius:22px; text-align:center; box-sizing:border-box; background:#f7f7f7; }
.live-code-phone h4 { margin:10px 0 14px; }
.live-code-phone p { color:#888; line-height:1.6; }
.live-code-phone button { width:100%; height:36px; margin:5px 0; border:1px solid #ddd; background:#fff; }
.live-code-qr.large { margin:30px auto; width:122px; height:122px; background-size:12px 12px; }
.live-group-tags,.live-code-selected-groups { width:460px; display:flex; flex-wrap:wrap; gap:8px; }
.live-group-tags button,.live-code-selected-groups button { height:28px; padding:0 10px; border:1px solid #ddd; border-radius:3px; color:#555; background:#fff; }
.live-group-tags button.add { color:var(--green); border-color:var(--green); }
.live-code-selected-groups i { color:#aaa; font-style:normal; line-height:34px; }
.live-code-secondary-head { height:50px; display:flex; align-items:center; padding:0 20px; background:#fff; }
.live-code-secondary-shell { min-height:560px; }
.live-code-tabs { height:50px; display:flex; align-items:flex-end; gap:28px; padding:0 20px; border-bottom:1px solid #eee; }
.live-code-tabs button { position:relative; height:49px; padding:0 2px; border:0; color:#666; background:#fff; font-size:14px; cursor:pointer; }
.live-code-tabs button.active { color:var(--green); font-weight:600; }
.live-code-tabs button.active::after { content:""; position:absolute; right:0; bottom:0; left:0; height:2px; background:var(--green); }
.live-code-stats-filter,.live-code-room-toolbar { min-height:58px; display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-stats-filter .search-control,.live-code-room-toolbar .search-control { width:250px; }
.live-code-stats-filter > span { margin-left:auto; color:#999; }
.live-code-stats-shell { position:relative; overflow:visible; }
.live-code-stats-toolbar { min-height:64px; display:flex; align-items:center; gap:12px; padding:12px 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-stats-controls { height:34px; display:flex; align-items:stretch; gap:12px; }
.live-code-stats-controls > .live-code-stats-locator,
.live-code-stats-controls > .live-code-stats-range,
.live-code-stats-controls > .live-code-stats-single-date,
.live-code-stats-controls > .outline-button {
  height:34px;
  min-height:34px;
  margin:0;
  align-self:stretch;
  box-sizing:border-box;
}
.live-code-stats-controls > .outline-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:32px;
}
.live-code-stats-locator { position:relative; width:210px; display:flex; align-items:center; flex:none; }
.live-code-stats-locator > button { width:210px; height:34px; display:flex; align-items:center; justify-content:space-between; padding:0 11px; border:1px solid #d8d8d8; border-radius:3px; color:#555; background:#fff; font-size:13px; cursor:pointer; }
.live-code-stats-locator > button i { width:7px; height:7px; border-right:1px solid #999; border-bottom:1px solid #999; transform:rotate(45deg) translateY(-2px); }
.live-code-stats-locator > button[aria-expanded="true"] { border-color:var(--green); }
.live-code-stats-locator > button[aria-expanded="true"] i { transform:rotate(225deg) translate(-2px,-1px); }
.live-code-stats-options { position:absolute; z-index:40; top:38px; right:0; width:210px; max-height:260px; overflow:auto; border:1px solid #ddd; border-radius:2px; box-shadow:0 4px 12px rgba(0,0,0,.12); background:#fff; }
.live-code-stats-options button { width:100%; height:36px; padding:0 12px; border:0; text-align:left; color:#555; background:#fff; font-size:13px; cursor:pointer; }
.live-code-stats-options button:hover,.live-code-stats-options button.active { color:var(--green); background:#edf6e8; }
.live-code-stats-range { width:300px; height:34px; display:grid; grid-template-columns:140px 20px 140px; align-items:center; flex:none; border:1px solid #d8d8d8; border-radius:3px; background:#fff; box-sizing:border-box; }
.live-code-stats-range label { width:140px; height:32px; display:flex; align-items:center; cursor:pointer; }
.live-code-stats-range input { width:100%; height:32px; padding:0 10px; border:0; outline:0; color:#555; background:transparent; font:inherit; line-height:32px; box-sizing:border-box; cursor:pointer; }
.live-code-stats-range b { height:32px; display:flex; align-items:center; justify-content:center; color:#aaa; font-weight:400; line-height:32px; }
.live-code-stats-single-date { width:210px; height:34px; display:block; border:1px solid #d8d8d8; border-radius:3px; background:#fff; box-sizing:border-box; }
.live-code-stats-single-date input { width:100%; height:32px; padding:0 10px; border:0; outline:0; color:#555; background:transparent; font:inherit; line-height:32px; box-sizing:border-box; cursor:pointer; }
.live-code-stats-updated { margin-left:auto; color:#999; font-size:12px; }
.live-code-stats-summary { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); margin:0 20px; padding:18px 0; border-bottom:1px solid #eee; }
.live-code-stats-summary div { padding-left:22px; border-right:1px solid #eee; }
.live-code-stats-summary div:first-child { padding-left:0; }
.live-code-stats-summary div:last-child { border-right:0; }
.live-code-stats-summary span { display:block; margin-bottom:8px; color:#999; }
.live-code-stats-summary strong { color:#333; font-size:22px; font-weight:500; }
.live-code-stats-table th,.live-code-stats-table td { text-align:center; }
.live-code-stats-table th:first-child,.live-code-stats-table td:first-child { padding-left:30px; text-align:left; }
.live-code-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.live-code-table th { height:46px; padding:0 20px; text-align:left; color:#333; background:#f5f5f5; }
.live-code-table td { height:54px; padding:0 20px; border-bottom:1px solid #eee; color:#555; }
.live-code-account { display:flex; align-items:center; gap:10px; }
.live-code-account .wx-avatar { width:36px; height:36px; }
.live-code-account em { color:#f0a12b; font-style:normal; }
.live-dot { color:#aaa; }
.live-code-creators-shell { min-height:calc(100vh - 132px); }
.live-code-creators-toolbar { height:56px; display:flex; align-items:center; padding:0 14px; box-sizing:border-box; }
.live-code-creators-toolbar .primary-button { height:34px; padding:0 17px; }
.live-code-creators-table th:nth-child(1) { width:44%; }
.live-code-creators-table th:nth-child(2) { width:31%; }
.live-code-creators-table td { height:64px; }
.live-code-creators-table .live-code-account > span:last-child { display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.live-code-creators-table .live-code-account b { color:#444; font-weight:400; }
.live-code-creators-table .text-action { padding:0; border:0; color:var(--green); background:transparent; cursor:pointer; }
.live-code-creator-valid { display:inline-flex; align-items:center; gap:8px; color:#555; }
.live-code-creator-valid i { width:6px; height:6px; border-radius:50%; background:var(--green); }
.live-code-creators-empty td { height:160px; text-align:center; color:#aaa; }
.live-code-creator-picker { max-height:390px; overflow-y:auto; padding:8px 20px; }
.live-code-creator-picker label { min-height:58px; display:grid; grid-template-columns:18px 40px minmax(0,1fr) 52px; align-items:center; gap:10px; border-bottom:1px solid #eee; cursor:pointer; }
.live-code-creator-picker label:last-child { border-bottom:0; }
.live-code-creator-picker input { width:15px; height:15px; margin:0; accent-color:var(--green); }
.live-code-creator-picker .wx-avatar { width:36px; height:36px; }
.live-code-creator-picker-name { min-width:0; display:flex; flex-direction:column; gap:3px; }
.live-code-creator-picker-name b { color:#444; font-weight:400; }
.live-code-creator-picker-name em { color:#f0a12b; font-style:normal; }
.live-code-creator-picker label > i { color:#999; font-style:normal; text-align:right; }
.live-code-creator-picker label > i.online { color:var(--green); }
.live-code-creator-picker-empty { padding:70px 0; color:#aaa; text-align:center; }
.live-code-dialog [data-live-confirm-creator-add]:disabled { border-color:#ddd; color:#aaa; background:#f5f5f5; cursor:not-allowed; }
.live-code-remove-confirm { padding-top:28px; padding-bottom:28px; }
.live-code-rooms-shell { padding:0 14px 14px; background:#f5f5f5; }
.live-code-rooms-shell .live-code-room-toolbar { margin:0 -14px 12px; padding:10px 14px; background:#fff; }
.live-code-room-toolbar .primary-button { height:34px; min-width:82px; padding:0 14px; }
.live-code-room-toolbar .search-control { width:218px; }
.live-code-room-count { color:#999; font-size:13px; }
.live-code-room-list { display:grid; gap:14px; }
.live-code-room-card { overflow:hidden; border:1px solid #e4e4e4; border-radius:3px; background:#fff; }
.live-code-room-main { min-height:76px; display:grid; grid-template-columns:minmax(320px,1fr) minmax(520px,46%); align-items:center; gap:24px; padding:10px 16px; box-sizing:border-box; }
.live-code-room-identity { min-width:0; display:flex; align-items:center; gap:12px; }
.live-code-room-identity .group-avatar-collage { width:42px; height:42px; flex:none; }
.live-code-room-identity strong { display:block; overflow:hidden; color:#333; font-size:14px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.live-code-room-identity p { margin:5px 0 0; color:#999; font-size:12px; }
.live-code-room-metrics { display:grid; grid-template-columns:repeat(4,minmax(92px,1fr)); }
.live-code-room-metrics span { padding-left:20px; border-left:1px solid #eee; color:#999; white-space:nowrap; }
.live-code-room-metrics b { margin-left:7px; color:#333; font-size:15px; font-weight:500; }
.live-code-room-meta { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:7px 16px; border-top:1px solid #eee; background:#f7f7f7; box-sizing:border-box; }
.live-code-room-statuses { min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:8px 28px; color:#666; font-size:12px; }
.live-code-room-statuses b { color:#555; font-weight:400; }
.live-code-room-statuses b.normal { color:#36a91b; }
.live-code-room-statuses b.error { color:#ef4f48; }
.live-code-room-statuses b.warning { color:#e89616; }
.live-code-room-statuses b.muted,.live-code-room-refreshed { color:#999; }
.live-code-room-help { width:15px; height:15px; display:inline-block; margin-left:6px; border-radius:50%; color:#fff; background:#ef4f48; font:normal 11px/15px Arial; text-align:center; }
.live-code-room-actions { flex:none; display:flex; align-items:center; gap:8px; }
.live-code-room-actions button { height:28px; padding:0 11px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; cursor:pointer; }
.live-code-room-actions button:hover { border-color:#7ebd69; color:var(--green); }
.live-code-room-actions button.disable { color:#777; }
.live-code-room-actions button.enable { border-color:#73bd5f; color:var(--green); }
.live-code-room-empty { min-height:260px; display:grid; place-items:center; color:#aaa; background:#fff; }
.live-code-room-data h4 { margin:0 0 18px; color:#333; font-size:15px; }
.live-code-room-data > div { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #eee; }
.live-code-room-data span { padding:14px; color:#999; text-align:center; }
.live-code-room-data b { display:block; margin-top:7px; color:#333; font-size:20px; font-weight:500; }
.live-code-poster-shell { min-height:640px; display:grid; grid-template-columns:360px 400px; grid-template-rows:1fr 64px; justify-content:center; gap:32px 72px; margin:14px; padding:30px 48px 0; background:#fff; box-sizing:border-box; }
.live-code-poster-shell h3 { height:42px; display:flex; align-items:center; margin:0 0 16px; border-bottom:1px solid #eee; color:#333; font-size:14px; font-weight:600; }
.live-poster-upload-panel,.live-poster-preview-panel { min-width:0; }
.live-poster-upload { width:100%; height:196px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; border:1px dashed #cfcfcf; border-radius:3px; color:#888; background:#fafafa; cursor:pointer; }
.live-poster-upload:hover { border-color:var(--green); color:var(--green); background:#fbfff9; }
.live-poster-upload span { font-size:24px; font-weight:300; line-height:1; }
.live-poster-upload strong { font-size:14px; font-weight:400; }
.live-poster-upload small { color:#aaa; font-size:12px; }
.live-poster-tips { margin-top:18px; padding:14px 16px; background:#fafafa; color:#888; line-height:1.8; }
.live-poster-tips p { display:flex; gap:9px; margin:0; }
.live-poster-tips b { color:#aaa; font-weight:400; }
.live-poster-stage { display:flex; justify-content:center; padding:16px; border:1px solid #eee; background:#f8f8f8; }
.live-poster-preview { width:300px; height:460px; position:relative; overflow:hidden; background:linear-gradient(160deg,#f0efe8,#d7e4dd); background-position:center; background-repeat:no-repeat; background-size:cover; user-select:none; touch-action:none; }
.live-poster-preview > span { position:absolute; left:50%; bottom:12px; transform:translateX(-50%); padding:4px 9px; border-radius:2px; color:#fff; background:rgba(0,0,0,.42); font-size:12px; white-space:nowrap; pointer-events:none; opacity:.78; }
.live-code-qr.poster { position:absolute; left:85px; top:276px; width:126px; height:126px; border:7px solid #fff; box-sizing:border-box; box-shadow:0 2px 10px rgba(0,0,0,.12); cursor:grab; touch-action:none; user-select:none; }
.live-code-qr.poster > img { width:100%; height:100%; display:block; pointer-events:none; }
.live-code-qr.poster > button { width:15px; height:15px; position:absolute; right:-10px; bottom:-10px; z-index:2; padding:0; border:2px solid #fff; border-radius:50%; background:var(--green); box-shadow:0 1px 4px rgba(0,0,0,.24); cursor:nwse-resize; }
.live-code-qr.poster.dragging { cursor:grabbing; box-shadow:0 4px 16px rgba(0,0,0,.24); }
.live-code-qr.poster.resizing { box-shadow:0 4px 16px rgba(0,0,0,.24); }
.live-code-poster-shell footer { grid-column:1/-1; display:flex; align-items:center; justify-content:center; margin:0 -48px; border-top:1px solid #eee; }
.live-code-poster-shell footer .primary-button { min-width:112px; }
.live-code-modal { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.42); }
.live-code-modal.hidden { display:none !important; }
.live-code-dialog { width:500px; border-radius:4px; overflow:hidden; background:#fff; box-shadow:0 8px 26px rgba(0,0,0,.2); }
.live-code-dialog header { height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid #eee; }
.live-code-dialog header button { border:0; color:#999; background:transparent; font-size:22px; }
.live-dialog-content { min-height:100px; padding:28px 30px; color:#555; line-height:1.7; box-sizing:border-box; }
.live-code-dialog footer { height:58px; display:flex; justify-content:flex-end; align-items:center; gap:10px; padding:0 20px; border-top:1px solid #eee; }
.live-invite-settings label { display:flex; align-items:center; justify-content:space-between; }
.live-invite-settings p { color:#999; }

/* 接受新客户 */
.new-fan-page { min-height:calc(100vh - 48px); color:#444; background:#f2f2f2; font-size:14px; }
.new-fan-page .hidden,.new-fan-modal.hidden { display:none !important; }
.new-fan-page button,.new-fan-page input,.new-fan-page select { font:inherit; }
.new-fan-head,.new-fan-subhead { min-height:50px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid #e8e8e8; box-sizing:border-box; background:#fff; }
.new-fan-head > strong,.new-fan-subhead > strong { color:#333; font-size:15px; }
.shared-config-actions { height:100%; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.shared-config-auto { height:34px; display:inline-flex; align-items:center; gap:7px; margin:0; color:#666; line-height:20px; }
.shared-config-auto input[type="checkbox"] { width:14px; height:14px; flex:0 0 14px; margin:0; accent-color:var(--green); }
.shared-config-auto span { display:inline-flex; align-items:center; height:34px; }
.shared-config-help { width:18px; height:34px; position:relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 18px; }
.shared-config-help > button { width:18px; height:18px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid #aaa; border-radius:50%; color:#888; background:#fff; font:13px/16px Arial; }
.shared-config-tooltip { width:250px; position:absolute; z-index:80; top:40px; right:-8px; display:none; padding:10px 12px; border-radius:3px; color:#fff; background:rgba(45,45,45,.94); font-size:13px; line-height:1.65; white-space:normal; box-sizing:border-box; box-shadow:0 4px 12px rgba(0,0,0,.16); }
.shared-config-tooltip::before { content:""; position:absolute; right:11px; top:-6px; border-right:6px solid transparent; border-bottom:6px solid rgba(45,45,45,.94); border-left:6px solid transparent; }
.shared-config-help:hover .shared-config-tooltip,
.shared-config-help:focus-within .shared-config-tooltip,
.shared-config-help.open .shared-config-tooltip { display:block; }
.shared-field-tip {
  width:16px;
  height:32px;
  position:relative;
  flex:0 0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}
.shared-field-tip > button {
  width:16px;
  height:16px;
  min-height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:1px solid #aaa;
  border-radius:50%;
  color:#888;
  background:#fff;
  font:11px/1 Arial,sans-serif;
  box-sizing:border-box;
  cursor:help;
}
.shared-field-tip > button:hover,
.shared-field-tip > button:focus-visible {
  border-color:var(--green);
  color:var(--green);
  outline:0;
}
.shared-field-tip-popover {
  width:260px;
  position:absolute;
  z-index:120;
  top:29px;
  left:50%;
  display:none;
  padding:9px 12px;
  border-radius:3px;
  color:#fff;
  background:rgba(45,45,45,.94);
  box-shadow:0 4px 12px rgba(0,0,0,.16);
  font-size:12px;
  font-weight:400;
  line-height:20px;
  text-align:left;
  white-space:normal;
  box-sizing:border-box;
  transform:translateX(-50%);
}
.shared-field-tip-popover::before {
  content:"";
  position:absolute;
  top:-6px;
  left:50%;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.94);
  border-left:6px solid transparent;
  transform:translateX(-50%);
}
.shared-field-tip:hover .shared-field-tip-popover,
.shared-field-tip:focus-within .shared-field-tip-popover { display:block; }
.shared-date-range-picker {
  width:300px;
  height:34px;
  position:relative;
  display:grid;
  grid-template-columns:1fr 20px 1fr 30px;
  align-items:center;
  flex:0 0 300px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.shared-date-range-picker.open,
.shared-date-range-picker:focus-within {
  border-color:var(--green);
  box-shadow:0 0 0 2px rgba(42,166,18,.08);
}
.shared-date-range-picker > input,
.shared-date-range-picker > input:not([type="radio"]):not([type="checkbox"]):not([type="color"]) {
  width:100%;
  min-width:0;
  height:32px;
  min-height:32px;
  margin:0;
  padding:0 9px;
  border:0;
  color:#555;
  background:transparent;
  box-shadow:none;
  font-size:13px;
  line-height:32px;
  text-align:center;
  cursor:pointer;
  box-sizing:border-box;
}
.shared-date-range-picker > input::placeholder { color:#aaa; }
.shared-date-range-picker > b { color:#aaa; font-weight:400; text-align:center; }
.shared-date-calendar-button {
  width:30px;
  height:32px;
  min-height:32px;
  position:relative;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.shared-date-calendar-button i {
  width:14px;
  height:14px;
  position:absolute;
  top:9px;
  left:8px;
  border:1px solid #999;
  border-radius:2px;
  box-sizing:border-box;
}
.shared-date-calendar-button i::before {
  content:"";
  height:3px;
  position:absolute;
  top:-2px;
  right:2px;
  left:2px;
  border-right:1px solid #999;
  border-left:1px solid #999;
}
.shared-date-calendar-button i::after {
  content:"";
  position:absolute;
  top:3px;
  right:1px;
  left:1px;
  border-top:1px solid #999;
}
.shared-date-range-panel {
  width:560px;
  position:absolute;
  z-index:120;
  top:38px;
  left:0;
  border:1px solid #e5e5e5;
  border-radius:3px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.14);
}
.shared-date-range-panel.hidden { display:none; }
.shared-date-calendars { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:12px 14px 8px; }
.shared-date-month { min-width:0; }
.shared-date-month header { height:30px; display:grid; grid-template-columns:54px 1fr 54px; align-items:center; }
.shared-date-month header strong { color:#333; font-size:14px; font-weight:500; text-align:center; }
.shared-date-month-nav { display:flex; align-items:center; }
.shared-date-month-nav button { width:26px; height:26px; padding:0; border:0; color:#888; background:transparent; font-size:17px; }
.shared-date-month-nav button:hover { color:var(--green); }
.shared-date-weekdays,
.shared-date-days { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.shared-date-weekdays span { height:28px; color:#666; font-size:12px; line-height:28px; text-align:center; }
.shared-date-days button { height:27px; padding:0; border:0; border-radius:2px; color:#555; background:#fff; font-size:12px; }
.shared-date-days button:not(:disabled):hover { color:var(--green); background:#f3faef; }
.shared-date-days button.muted { color:#ccc; background:#fafafa; }
.shared-date-days button.unavailable { color:#d2d2d2; background:#f7f7f7; cursor:not-allowed; }
.shared-date-days button.in-range { color:#4d8f3c; border-radius:0; background:#edf8e9; }
.shared-date-days button.range-start,
.shared-date-days button.range-end { color:#fff; background:var(--green); }
.shared-date-shortcuts { height:42px; display:flex; align-items:center; gap:20px; padding:0 18px; border-top:1px solid #eee; }
.shared-date-shortcuts button { height:28px; padding:0; border:0; color:#555; background:transparent; font-size:12px; }
.shared-date-shortcuts button:hover { color:var(--green); }
/* Shared 时刻选择 component C1.0 */
.shared-time-picker {
  width:126px;
  height:34px;
  position:relative;
  flex:0 0 126px;
  box-sizing:border-box;
}
.shared-time-picker.has-seconds { width:138px; flex-basis:138px; }
.shared-time-picker > input[type="hidden"] { display:none; }
.shared-time-trigger {
  width:100%;
  height:34px;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0;
  padding:0 9px 0 10px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  color:#555;
  background:#fff;
  font-size:13px;
  font-weight:400;
  line-height:32px;
  text-align:left;
  box-sizing:border-box;
}
.shared-time-picker.open .shared-time-trigger,
.shared-time-trigger:focus {
  border-color:var(--green);
  box-shadow:0 0 0 2px rgba(42,166,18,.08);
  outline:0;
}
.shared-time-picker.is-empty .shared-time-trigger span { color:#aaa; }
.shared-time-trigger i {
  width:14px;
  height:14px;
  position:relative;
  flex:0 0 14px;
  border:1px solid #8f8f8f;
  border-radius:50%;
  box-sizing:border-box;
}
.shared-time-trigger i::before,
.shared-time-trigger i::after {
  content:"";
  position:absolute;
  left:6px;
  bottom:6px;
  width:1px;
  background:#8f8f8f;
  transform-origin:bottom center;
}
.shared-time-trigger i::before { height:5px; }
.shared-time-trigger i::after { height:4px; transform:rotate(90deg); }
.shared-time-panel {
  width:126px;
  max-height:268px;
  position:absolute;
  z-index:620;
  top:38px;
  left:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:minmax(0,224px) 40px;
  overflow:hidden;
  border:1px solid #e4e4e4;
  border-radius:3px;
  background:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.14);
}
.shared-time-picker.has-seconds .shared-time-panel {
  width:174px;
  grid-template-columns:repeat(3,1fr);
}
.shared-time-panel.hidden { display:none; }
.shared-time-column {
  max-height:224px;
  overflow-y:auto;
  padding:0;
}
.shared-time-column + .shared-time-column { border-left:1px solid #f0f0f0; }
.shared-time-column button {
  width:100%;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  color:#555;
  background:#fff;
  font-size:13px;
  line-height:28px;
}
.shared-time-column button:hover { color:var(--green); background:#f4f8f1; }
.shared-time-column button.active { color:var(--green); background:#eaf4e5; }
.shared-time-footer {
  grid-column:1 / -1;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 8px;
  border-top:1px solid #f0f0f0;
  background:#fff;
  box-sizing:border-box;
}
.shared-time-footer button {
  height:28px;
  margin:0;
  padding:0 8px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:var(--green);
  font-size:13px;
  line-height:28px;
}
.shared-time-footer button[data-shared-time-confirm] {
  min-width:40px;
  height:26px;
  padding:0 7px;
  color:#fff;
  background:var(--green);
  font-size:12px;
  line-height:26px;
}
.shared-config-command { height:34px; min-width:82px; display:inline-flex; align-items:center; justify-content:center; margin:0; padding:0 16px; border-radius:3px; font-size:13px; line-height:32px; box-sizing:border-box; }
.shared-config-command.is-apply { border:1px solid #f5a623; color:#fff; background:#f5a623; }
.shared-config-command.is-manage { border:1px solid #cfcfcf; color:#555; background:#fff; }
.new-fan-help-icon { width:18px; height:18px; padding:0; border:1px solid #aaa; border-radius:50%; color:#888; background:#fff; line-height:16px; }
.new-fan-alert { min-height:46px; display:flex; align-items:center; gap:10px; margin:14px 18px; padding:9px 14px; border:1px solid #ffe1ba; border-radius:2px; box-sizing:border-box; color:#715f4d; background:#fff4e6; }
.new-fan-alert i { width:18px; height:18px; flex:none; border-radius:50%; color:#fff; background:#f5a623; font:normal 13px/18px Arial; text-align:center; }
.new-fan-alert button { padding:0; border:0; color:var(--green); background:transparent; cursor:pointer; }
.new-fan-form-shell { width:min(1040px,calc(100% - 36px)); margin:0 auto; padding-bottom:76px; }
.new-fan-card { margin-bottom:14px; border:1px solid #e7e7e7; background:#fff; }
.new-fan-section-title { height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 22px; border-bottom:1px solid #eee; box-sizing:border-box; }
.new-fan-section-title strong { color:#333; font-size:15px; }
.new-fan-section-title button { border:0; color:var(--green); background:transparent; cursor:pointer; }
.new-fan-field { min-height:60px; display:flex; padding:13px 24px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.new-fan-field:last-child { border-bottom:0; }
.new-fan-field > label { width:122px; flex:none; padding-top:7px; color:#555; text-align:right; }
.new-fan-field > div { min-width:0; flex:1; display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.new-fan-field small { color:#999; font-size:13px; font-weight:400; }
.new-fan-inline { display:flex; align-items:center; gap:10px; }
.new-fan-number,.new-fan-sleep-time input { height:34px; padding:0 10px; border:1px solid #ddd; border-radius:3px; box-sizing:border-box; color:#555; outline:0; background:#fff; }
.new-fan-number { width:86px; }
.new-fan-number:focus,.new-fan-sleep-time input:focus { border-color:var(--green); }
.new-fan-number:disabled { color:#bbb; background:#f5f5f5; }
.new-fan-recommend { height:30px; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:var(--green); background:#fff; }
.new-fan-radio { min-height:32px; display:inline-flex; align-items:center; gap:7px; margin-right:16px; cursor:pointer; }
.new-fan-radio input { position:absolute; opacity:0; pointer-events:none; }
.new-fan-radio i { width:14px; height:14px; border:1px solid #ccc; border-radius:50%; box-sizing:border-box; background:#fff; }
.new-fan-radio input:checked + i { border:4px solid var(--green); }
.new-fan-switch { display:inline-flex; align-items:center; cursor:pointer; }
.new-fan-switch input { position:absolute; opacity:0; }
.new-fan-switch i { width:42px; height:22px; position:relative; display:block; border-radius:12px; background:#c7c7c7; transition:.2s; }
.new-fan-switch i::after { content:""; width:18px; height:18px; position:absolute; left:2px; top:2px; border-radius:50%; background:#fff; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.15); }
.new-fan-switch input:checked + i { background:var(--green); }
.new-fan-switch input:checked + i::after { transform:translateX(20px); }
.new-fan-sleep-time { width:100%; display:flex; align-items:center; gap:9px; margin-top:6px; padding:12px 14px; background:#f7f7f7; }
.new-fan-sleep-time input { width:112px; }
.new-fan-sleep-time .shared-time-picker { width:112px; flex-basis:112px; }
.new-fan-dependent { width:100%; display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:4px; padding:12px 14px; box-sizing:border-box; color:#666; background:#f7f7f7; }
.new-fan-dependent b { font-weight:400; }
.new-fan-dependent label { display:flex; align-items:center; gap:5px; }
.new-fan-dependent input[type="checkbox"] { accent-color:var(--green); }
.new-fan-source-options { min-height:54px; align-items:center; justify-content:center; gap:0; padding:10px 16px; }
.new-fan-source-options b { width:88px; height:24px; display:inline-flex; align-items:center; justify-content:flex-end; margin-right:8px; color:#666; font-weight:400; line-height:20px; text-align:right; white-space:nowrap; }
.new-fan-source-options label { min-width:82px; height:24px; display:inline-flex; align-items:center; margin-right:8px; color:#333; line-height:20px; white-space:nowrap; }
.new-fan-source-options input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }
.new-fan-source-options span { position:relative; display:inline-flex; align-items:center; gap:7px; line-height:20px; white-space:nowrap; }
.new-fan-source-options span::before { content:""; width:14px; height:14px; flex:0 0 14px; border:1px solid #cfcfcf; border-radius:2px; background:#fff; box-sizing:border-box; }
.new-fan-source-options input[type="checkbox"]:checked + span::before { border-color:var(--green); background:var(--green); }
.new-fan-source-options input[type="checkbox"]:checked + span::after { content:""; position:absolute; width:7px; height:4px; margin-left:3px; margin-top:-2px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg); }
.new-fan-text-options { min-height:66px; display:grid; grid-template-columns:104px minmax(0,1fr); align-items:center; gap:12px; padding:12px 16px; }
.new-fan-text-options b { width:104px; color:#666; font-weight:400; line-height:20px; text-align:right; white-space:nowrap; }
.new-fan-text-options .new-fan-tag-input { width:100%; min-height:34px; flex:none; }
.new-fan-tag-input { min-height:36px; flex:1; display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:4px 7px; border:1px solid #ddd; border-radius:3px; background:#fff; }
.new-fan-tag-input:focus-within { border-color:var(--green); }
.new-fan-tag-input > span { display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 8px; border:1px solid #d5e8cf; border-radius:2px; color:#4c8541; background:#f7fbf5; }
.new-fan-tag-input span button { padding:0; border:0; color:#8aab82; background:transparent; }
.new-fan-tag-input input { min-width:190px; flex:1; height:26px; border:0; outline:0; color:#555; }
.new-fan-footer { height:62px; position:fixed; z-index:20; left:var(--sidebar-width,220px); right:0; bottom:0; display:flex; align-items:center; justify-content:center; gap:12px; border-top:1px solid #ddd; background:rgba(255,255,255,.98); }
.new-fan-apply-save { height:34px; padding:0 18px; border:1px solid #f3a11a; border-radius:3px; color:#fff; background:#f3a11a; }
.new-fan-subhead { justify-content:flex-start; gap:10px; }
.new-fan-single-summary { min-height:84px; display:flex; align-items:center; justify-content:space-between; margin:14px 18px; padding:14px 22px; border:1px solid #e5e5e5; box-sizing:border-box; background:#fff; }
.new-fan-single-summary strong { margin-right:12px; color:#333; font-size:16px; }
.new-fan-single-summary b { color:var(--green); font-weight:500; }
.new-fan-single-summary p { margin:9px 0 0; color:#999; }
.new-fan-single-summary em { color:#f39c12; font-style:normal; }
.new-fan-single-summary > div:last-child { display:flex; gap:10px; }
.new-fan-toast { position:fixed; z-index:1300; left:50%; top:72px; transform:translateX(-50%); padding:10px 20px; border-radius:3px; color:#fff; background:rgba(0,0,0,.72); box-shadow:0 4px 16px rgba(0,0,0,.12); }
.new-fan-modal { position:fixed; z-index:1200; inset:0; display:grid; place-items:center; padding:24px; box-sizing:border-box; background:rgba(0,0,0,.42); }
.new-fan-dialog { width:520px; max-height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.22); }
.new-fan-modal.wide .new-fan-dialog { width:min(960px,calc(100vw - 60px)); }
.new-fan-dialog > header { min-height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.new-fan-dialog > header > div { display:flex; flex-direction:column; gap:4px; }
.new-fan-dialog > header strong { color:#333; font-size:16px; }
.new-fan-dialog > header small { color:#999; }
.new-fan-dialog > header button { padding:0; border:0; color:#999; background:transparent; font-size:22px; }
.new-fan-dialog > footer { min-height:58px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 20px; border-top:1px solid #eee; box-sizing:border-box; }
.new-fan-picker-tools { min-height:58px; display:flex; align-items:center; gap:10px; padding:10px 16px; border-bottom:1px solid #eee; box-sizing:border-box; }
.new-fan-picker-tools .search-control { width:250px; }
.new-fan-picker-tools select { width:180px; height:34px; padding:0 10px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.new-fan-picker-body { min-height:430px; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(240px,.85fr); overflow:hidden; }
.new-fan-picker-body > section { min-width:0; border-right:1px solid #eee; }
.new-fan-picker-head { height:46px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid #eee; }
.new-fan-picker-head label { width:auto; flex:0 0 auto; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.new-fan-picker-head label input { flex:0 0 auto; }
.new-fan-picker-head button,.new-fan-picker-body aside button { border:0; color:var(--green); background:transparent; }
.new-fan-account-list { max-height:384px; overflow-y:auto; }
.new-fan-account-list > label { height:64px; display:grid; grid-template-columns:22px 42px 1fr 72px; align-items:center; gap:10px; padding:0 18px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.new-fan-account-list input { accent-color:var(--green); }
.new-fan-account-list .wx-avatar { width:40px; height:40px; }
.new-fan-account-list strong,.new-fan-account em { display:block; font-weight:400; }
.new-fan-account-list em,.new-fan-account em { margin-top:3px; color:#f0a12b; font-style:normal; font-size:12px; }
.new-fan-account-list small { color:#28a745; }
.new-fan-account-list small.off { color:#999; }
.new-fan-account-list small i { width:6px; height:6px; display:inline-block; margin-right:6px; border-radius:50%; background:currentColor; vertical-align:middle; }
.new-fan-picker-body aside { padding:16px; overflow:auto; }
.new-fan-picker-body aside > div:first-child { display:flex; justify-content:space-between; margin-bottom:10px; }
.new-fan-picker-body aside [data-new-fan-selected-list] { display:flex; flex-direction:column; gap:4px; }
.new-fan-picker-body aside [data-new-fan-selected-list] span { height:32px; display:flex; align-items:center; justify-content:space-between; padding:0 8px; background:#f7f7f7; }
.new-fan-picker-body aside h4 { margin:24px 0 10px; padding-top:16px; border-top:1px solid #eee; }
.new-fan-picker-body aside p { display:flex; flex-direction:column; gap:6px; margin:0; color:#777; }
.new-fan-picker-body aside p b { color:var(--green); font-weight:400; }
.new-fan-picker-body aside p small { color:#aaa; }
.new-fan-manage-note { padding:12px 20px; color:#777; background:#fff8ec; }
.new-fan-manage-table { max-height:500px; overflow:auto; }
.new-fan-manage-table table { width:100%; border-collapse:collapse; table-layout:fixed; }
.new-fan-manage-table th { height:46px; padding:0 14px; text-align:left; background:#f5f5f5; }
.new-fan-manage-table td { height:60px; padding:0 14px; border-bottom:1px solid #eee; }
.new-fan-manage-table th:first-child,.new-fan-manage-table td:first-child { width:34px; }
.new-fan-account { display:flex; align-items:center; gap:10px; }
.new-fan-account .wx-avatar { width:38px; height:38px; }
.new-fan-dialog > footer .new-fan-pages { margin-right:auto; display:flex; gap:5px; }
.new-fan-pages button { width:30px; height:30px; border:1px solid #ddd; color:#666; background:#fff; }
.new-fan-pages button.active { border-color:var(--green); color:var(--green); }
.new-fan-detail-tabs { display:flex; padding:14px 18px 0; border-bottom:1px solid #eee; }
.new-fan-detail-tabs button { height:38px; padding:0 20px; border:0; border-bottom:2px solid transparent; color:#666; background:#fff; }
.new-fan-detail-tabs button.active { border-color:var(--green); color:var(--green); }
.new-fan-detail-search { padding:12px 18px; }
.new-fan-detail-search .search-control { width:280px; }
.new-fan-detail-table { width:calc(100% - 36px); margin:0 18px 22px; border-collapse:collapse; }
.new-fan-detail-table th { height:44px; padding:0 14px; text-align:left; background:#f5f5f5; }
.new-fan-detail-table td { height:120px; color:#aaa; text-align:center; }
@media (max-width:1100px) {
  .new-fan-form-shell { width:calc(100% - 24px); }
  .new-fan-field > label { width:100px; }
  .new-fan-footer { left:200px; }
}

@media (max-width:1200px) {
  .live-code-card { grid-template-columns:24px 64px minmax(190px,1fr) minmax(330px,1.3fr) 210px; }
  .live-code-metrics div { padding:0 8px; }
  .live-code-create-shell { width:calc(100vw - 250px); }
}

/* 名片加好友 */
.card-friend-page { min-height:calc(100vh - 48px); color:#333; background:#f2f2f2; }
.card-friend-page button,.card-friend-page input,.card-friend-page select,.card-friend-page textarea { font:inherit; }
.card-friend-titlebar { height:54px; padding:0 18px; display:flex; align-items:center; gap:12px; border-bottom:1px solid #e8e8e8; background:#fff; }
.card-friend-titlebar strong { font-size:15px; font-weight:600; }
.card-friend-titlebar > button:last-child { margin-left:auto; height:34px; padding:0 16px; }
.card-friend-chart-icon { width:14px; height:14px; display:inline-block; margin-right:6px; vertical-align:-2px; border-left:1px solid #777; border-bottom:1px solid #777; background:linear-gradient(90deg,transparent 15%,#777 15% 28%,transparent 28% 43%,#777 43% 56%,transparent 56% 72%,#777 72% 85%,transparent 85%); }
.card-friend-alert { height:44px; padding:0 16px; display:flex; align-items:center; gap:9px; color:#555; background:#fff0df; }
.card-friend-alert i { width:16px; height:16px; display:inline-grid; place-items:center; color:#fff; font-size:11px; font-style:normal; border-radius:50%; background:#f5a300; }
.card-friend-content { margin:12px; min-height:calc(100vh - 190px); background:#fff; }
.card-friend-filters { height:58px; padding:0 14px; display:flex; align-items:center; gap:10px; border-bottom:1px solid #eee; }
.card-friend-filters .search-control { width:260px; }
.card-friend-filters select,.card-friend-stat-tools select { width:180px; height:34px; padding:0 34px 0 12px; color:#666; border:1px solid #ddd; border-radius:3px; background:#fff; }
.card-friend-table-wrap { overflow:auto; }
.card-friend-table,.card-friend-stat-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.card-friend-table th,.card-friend-stat-table th { height:46px; padding:0 14px; text-align:left; font-weight:600; background:#f5f5f5; }
.card-friend-table td,.card-friend-stat-table td { height:66px; padding:8px 14px; border-bottom:1px solid #eee; vertical-align:middle; }
.card-friend-table th:first-child,.card-friend-table td:first-child { width:42px; text-align:center; }
.card-friend-table th:nth-child(2) { width:230px; }
.card-friend-table th:nth-child(3) { width:110px; }
.card-friend-table th:nth-child(4) { width:180px; }
.card-friend-table th:nth-child(5) { width:130px; }
.card-friend-table th:nth-child(6) { width:110px; }
.card-friend-account { display:flex; align-items:center; gap:10px; min-width:0; }
.card-friend-account .wx-avatar { width:40px; height:40px; flex:0 0 auto; }
.card-friend-account span:last-child { display:grid; gap:4px; min-width:0; }
.card-friend-account strong { font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card-friend-account small { color:#f08a22; }
.card-friend-status { color:#999; }
.card-friend-status i { width:6px; height:6px; display:inline-block; margin-right:7px; border-radius:50%; background:#aaa; }
.card-friend-status.enabled { color:#2aa515; }
.card-friend-status.enabled i { background:#2fbd21; }
.card-friend-table td p { margin:2px 0; color:#666; }
.card-friend-table td:last-child button { display:block; margin:3px 0; padding:0; color:#289b18; border:0; background:none; cursor:pointer; }
.card-friend-empty { height:200px; display:grid; place-items:center; color:#aaa; }
.card-friend-list-pagination { min-width:116px; min-height:32px; display:flex; align-items:center; justify-content:center; gap:7px; background:#fff; }
.card-friend-list-pagination.hidden { display:none; }
.card-friend-list-pagination button { min-width:32px; height:32px; padding:0 8px; color:#666; border:1px solid #ddd; border-radius:3px; background:#fff; }
.card-friend-list-pagination button.active { color:#289b18; border-color:#2aa515; }
.card-friend-list-pagination button:disabled { color:#bbb; background:#f7f7f7; cursor:not-allowed; }
.card-friend-batch { position:sticky; bottom:0; z-index:8; min-height:54px; padding:0 18px; display:flex; align-items:center; gap:10px; border-top:1px solid #ddd; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.04); }
.card-friend-batch > div { flex:1; }
.card-friend-batch span b { color:#2aa515; font-weight:400; }
.card-friend-batch button { height:32px; padding:0 13px; color:#289b18; border:1px solid #2aa515; border-radius:3px; background:#fff; }
.card-friend-batch button[data-card-friend-toggle-all] { padding:0; border:0; }
.card-friend-batch button:disabled { color:#bbb; border-color:#ddd; background:#f7f7f7; cursor:not-allowed; }
.card-friend-modal { position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.44); }
.card-friend-modal.hidden { display:none; }
.card-friend-export-success {
  width:416px;
  min-height:164px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 72px;
  align-items:start;
  column-gap:12px;
  padding:32px;
  border-radius:4px;
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.card-friend-export-success > i {
  width:20px;
  height:20px;
  margin-top:1px;
  position:relative;
  border:2px solid #18c75a;
  border-radius:50%;
}
.card-friend-export-success > i::after {
  content:"";
  width:8px;
  height:4px;
  position:absolute;
  top:5px;
  left:4px;
  border-left:2px solid #18c75a;
  border-bottom:2px solid #18c75a;
  transform:rotate(-45deg);
}
.card-friend-export-success strong {
  display:block;
  margin-bottom:12px;
  color:#333;
  font-size:16px;
  font-weight:600;
}
.card-friend-export-success p {
  margin:0;
  color:#666;
  font-size:14px;
}
.card-friend-export-success p span { color:var(--green); }
.card-friend-export-success button {
  width:64px;
  height:32px;
  align-self:end;
  padding:0;
}
.card-friend-dialog { width:660px; max-width:calc(100vw - 40px); border-radius:4px; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.card-friend-dialog > header { height:54px; padding:0 18px; display:flex; align-items:center; border-bottom:1px solid #eee; }
.card-friend-dialog > header strong { font-size:16px; }
.card-friend-dialog > header button { margin-left:auto; color:#999; font-size:25px; line-height:1; border:0; background:none; }
.card-friend-dialog > footer { height:62px; padding:0 18px; display:flex; justify-content:flex-end; align-items:center; gap:10px; border-top:1px solid #eee; }
.card-friend-form { padding:22px 30px 8px; }
.card-friend-form > label { min-height:62px; display:grid; grid-template-columns:150px 1fr; align-items:start; }
.card-friend-form > label > span { padding-top:9px; color:#555; }
.card-friend-form textarea { width:100%; height:72px; padding:9px 12px; resize:none; border:1px solid #ddd; border-radius:3px; }
.card-friend-form textarea + small { display:block; margin-top:-24px; padding-right:8px; color:#aaa; text-align:right; }
.card-friend-form textarea + small b { font-weight:400; }
.card-friend-number-row { display:flex; align-items:center; gap:9px; min-height:36px; }
.card-friend-number-row input { width:78px; height:34px; padding:0 10px; border:1px solid #ddd; border-radius:3px; }
.card-friend-number-row em { color:#777; font-style:normal; }
.card-friend-number-row i { color:#999; font-style:normal; }
.card-friend-number-row button { height:32px; padding:0 12px; color:#289b18; border:1px solid #ddd; border-radius:3px; background:#fff; }
.card-friend-switch { display:inline-block; margin-top:6px; }
.card-friend-switch input { position:absolute; opacity:0; }
.card-friend-switch i { width:42px; height:22px; display:block; position:relative; border-radius:12px; background:#ccc; transition:.15s; }
.card-friend-switch i::after { content:""; width:18px; height:18px; position:absolute; top:2px; left:2px; border-radius:50%; background:#fff; transition:.15s; }
.card-friend-switch input:checked + i { background:#2aa515; }
.card-friend-switch input:checked + i::after { left:22px; }
.card-friend-sleep { margin-top:10px; display:flex; align-items:center; gap:8px; }
.card-friend-sleep.hidden { display:none; }
.card-friend-sleep input { width:105px; height:34px; padding:0 8px; border:1px solid #ddd; border-radius:3px; }
.card-friend-sleep small { color:#999; }
.card-friend-accept-dialog { width:590px; }
.card-friend-accept-dialog > section { padding:22px 28px 26px; }
.card-friend-accept-title { margin-bottom:16px; font-weight:600; }
.card-friend-accept-dialog section > label { margin:16px 0; display:flex; align-items:flex-start; gap:10px; }
.card-friend-accept-dialog section > label input { margin-top:3px; }
.card-friend-accept-dialog section > label span { display:grid; gap:7px; }
.card-friend-accept-dialog section > label strong { font-weight:400; }
.card-friend-accept-dialog section > label small { color:#999; }
.card-friend-stat-head .card-friend-back { width:28px; height:28px; padding:0; display:grid; place-items:center; color:#fff; font-size:20px; border:0; border-radius:50%; background:#5669a5; }
.card-friend-stat-head > strong { margin-left:2px; }
.card-friend-stat-shell { margin:12px; min-height:calc(100vh - 126px); background:#fff; }
.card-friend-stat-tabs { height:50px; padding-left:14px; display:flex; align-items:flex-end; gap:2px; border-bottom:1px solid #ddd; background:#f4f4f4; }
.card-friend-stat-tabs button { height:39px; padding:0 22px; color:#666; border:1px solid #ddd; border-bottom:0; background:#fff; }
.card-friend-stat-tabs button.active { color:#289b18; font-weight:600; border-top-color:#2aa515; }
.card-friend-stat-tools { height:58px; padding:0 16px; display:flex; align-items:center; gap:10px; }
.card-friend-date-range { width:300px; height:34px; display:flex; align-items:center; border:1px solid #ddd; border-radius:3px; }
.card-friend-date-range input { width:120px; height:32px; padding:0 10px; border:0; }
.card-friend-date-range span { color:#aaa; }
.card-friend-date-range i { margin-left:auto; padding-right:9px; color:#999; font-style:normal; }
.card-friend-stat-table td { height:48px; }
.card-friend-stat-table .card-friend-account .wx-avatar { width:36px; height:36px; }
.card-friend-pagination { padding:22px; display:flex; justify-content:center; gap:7px; }

/* V1.8 新客户运营 */
.fan-operation-page { height:calc(100vh - 48px); overflow:hidden; color:#333; background:#f2f2f2; }
.fan-operation-page button,.fan-operation-page input,.fan-operation-page select,.fan-operation-page textarea { font:inherit; }
.fop-page { height:100%; display:flex; flex-direction:column; overflow:hidden; }
.fop-titlebar { height:54px; flex:0 0 54px; display:flex; align-items:center; gap:12px; padding:0 18px; border-bottom:1px solid #e5e5e5; box-sizing:border-box; background:#fff; }
.fop-titlebar > strong { font-size:15px; font-weight:600; }
.fop-company-select { margin-left:24px; }
.fop-company-select select { width:190px; height:34px; padding:0 34px 0 12px; border:1px solid #ddd; border-radius:3px; color:#555; background:#fff; }
.fop-auto { height:34px; display:inline-flex; align-items:center; gap:7px; margin-left:auto; color:#555; white-space:nowrap; }
.fop-auto input,.fop-type-list input,.fop-plan-choice input,.fop-account-row input,.fop-account-head input,.fop-send-table input,.fop-batch-tools input,.fop-cancel-row input,.fop-condition-form input { width:15px; height:15px; margin:0; accent-color:var(--green); }
.fop-titlebar > .ghost-button { height:34px; padding:0 16px; color:#269b16; border-color:#2da51b; }
.fop-tip { width:18px; height:18px; position:relative; display:inline-grid; place-items:center; margin-left:5px; vertical-align:middle; }
.fop-tip > i { width:16px; height:16px; display:grid; place-items:center; border:1px solid #aaa; border-radius:50%; color:#888; font-size:11px; font-style:normal; box-sizing:border-box; }
.fop-tip > b { width:230px; position:absolute; z-index:30; top:25px; right:-10px; display:none; padding:9px 11px; color:#fff; font-size:12px; font-weight:400; line-height:1.5; white-space:normal; background:rgba(45,45,45,.92); box-shadow:0 4px 14px rgba(0,0,0,.16); }
.fop-tip:hover > b,.fop-tip:focus > b { display:block; }
.fop-workspace { min-height:0; flex:1; display:grid; grid-template-columns:252px minmax(0,1fr); gap:12px; padding:12px; overflow:hidden; box-sizing:border-box; }
.fop-plan-pane { min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
.fop-plan-tools { height:54px; flex:0 0 54px; display:flex; align-items:center; gap:8px; padding:0 12px; border-bottom:1px solid #eee; }
.fop-plan-tools .primary-button { height:34px; flex:1; }
.fop-settings-button { width:34px; height:34px; display:grid; place-items:center; padding:0; color:#666; font-size:17px; border:1px solid #ddd; border-radius:3px; background:#fff; }
.fop-plan-search { width:auto; height:34px; flex:0 0 34px; margin:10px 12px; }
.fop-plan-list { min-height:0; overflow-y:auto; border-top:1px solid #f2f2f2; }
.fop-plan-card { min-height:92px; position:relative; padding:13px 12px 12px; border-bottom:1px solid #eee; box-sizing:border-box; cursor:pointer; background:#fff; }
.fop-plan-card:hover { background:#fafafa; }
.fop-plan-card.active { box-shadow:inset 3px 0 var(--green); background:#f2f8ef; }
.fop-plan-card > div:first-child { height:24px; display:flex; align-items:center; gap:6px; }
.fop-plan-card strong { min-width:0; flex:1; overflow:hidden; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.fop-plan-card > div:first-child button { height:26px; padding:0 5px; border:0; color:#299e19; background:transparent; }
.fop-plan-card .fop-more { width:28px; color:#777; letter-spacing:1px; }
.fop-plan-card p,.fop-plan-card small { margin:6px 0 0; color:#999; font-size:12px; }
.fop-plan-menu { min-width:92px; position:absolute; z-index:25; top:40px; right:8px; padding:4px 0; border:1px solid #ddd; background:#fff; box-shadow:0 5px 14px rgba(0,0,0,.12); }
.fop-plan-menu.hidden { display:none; }
.fop-plan-menu button { width:100%; height:32px; padding:0 14px; border:0; text-align:left; background:#fff; }
.fop-plan-menu button:hover { color:var(--green); background:#f5f8f4; }
.fop-plan-empty,.fop-rule-empty { min-height:220px; display:grid; place-items:center; color:#aaa; }
.fop-rule-scroll { min-width:0; min-height:0; overflow-y:auto; background:#fff; }
.fop-rule-panel { min-height:100%; padding-bottom:66px; box-sizing:border-box; }
.fop-rule-panel > h3 { height:54px; display:flex; align-items:center; margin:0; padding:0 20px; border-bottom:1px solid #eee; font-size:15px; }
.fop-notice { min-height:42px; display:flex; align-items:center; gap:9px; margin:12px 16px; padding:8px 14px; box-sizing:border-box; color:#666; background:#fff4e5; }
.fop-notice i,.fop-info i { width:16px; height:16px; flex:0 0 16px; display:grid; place-items:center; border-radius:50%; color:#fff; font-size:11px; font-style:normal; background:#f3a11a; }
.fop-form-row { min-height:66px; display:grid; grid-template-columns:154px minmax(0,1fr); align-items:start; padding:14px 22px; border-bottom:1px solid #eee; box-sizing:border-box; }
.fop-form-row > label { min-height:36px; display:flex; align-items:center; justify-content:flex-end; padding-right:16px; color:#555; text-align:right; box-sizing:border-box; }
.fop-form-row > div { min-width:0; min-height:36px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.fop-form-row strong { font-weight:500; }
.fop-form-row small { color:#999; }
.fop-text-button { height:32px; padding:0; border:0; color:#299e19; background:transparent; }
.fop-action-buttons { height:34px; display:flex; align-items:center; gap:8px; }
.fop-action-buttons button,.fop-cancel-dependent > button { height:32px; padding:0 13px; border:1px solid #d8dfe6; border-radius:3px; color:#555; background:#fff; }
.fop-tag-row > div { display:grid; grid-template-columns:auto minmax(180px,1fr); align-items:center; }
.fop-tag-summary { min-height:34px; display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.fop-tag-summary > span { height:26px; display:inline-flex; align-items:center; gap:5px; padding:0 8px; border:1px solid #cfe6c9; border-radius:2px; color:#4b8b3d; background:#f5fbf3; }
.fop-tag-summary > span button { padding:0; border:0; color:#6f9f65; background:transparent; }
.fop-info { grid-column:1/-1; min-height:34px; display:flex; align-items:center; gap:8px; margin:2px 0 0; padding:0 12px; color:#777; font-size:12px; background:#f5f8fb; }
.fop-info i { background:#4c9bd8; }
.fop-remark-dependent { width:100%; display:grid; gap:9px; }
.fop-remark-dependent.hidden,.fop-cancel-dependent.hidden,.fop-sleep-fields.hidden { display:none; }
.fop-remark-dependent > div:first-child { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.fop-remark-dependent > div:first-child button { height:30px; padding:0 10px; color:#555; border:1px solid #ddd; border-radius:3px; background:#fff; }
.fop-remark-editor { min-height:36px; display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:4px 7px; border:1px solid #ddd; border-radius:3px; box-sizing:border-box; }
.fop-remark-editor span { height:26px; display:inline-flex; align-items:center; gap:6px; padding:0 8px; color:#555; background:#f5f5f5; }
.fop-remark-editor b { color:#999; font-weight:400; }
.fop-content-row > div { display:block; }
.fop-message-list { display:grid; gap:10px; }
.fop-message-row { min-height:98px; position:relative; display:grid; grid-template-columns:32px minmax(230px,.62fr) minmax(300px,1.38fr); align-items:start; gap:10px; padding:12px; border:1px solid #e3e3e3; border-radius:3px; box-sizing:border-box; }
.fop-message-row > em { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; color:#fff; font-style:normal; background:#6b7897; }
.fop-delay { min-height:34px; display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.fop-delay input { width:64px; height:34px; padding:0 8px; border:1px solid #ddd; border-radius:3px; box-sizing:border-box; }
.fop-delay select { width:72px; height:34px; border:1px solid #ddd; border-radius:3px; }
.fop-delay span { width:100%; color:#999; font-size:12px; }
.fop-message-row textarea { width:100%; height:70px; padding:9px 10px; resize:none; border:1px solid #ddd; border-radius:3px; box-sizing:border-box; }
.fop-group-action { min-height:70px; display:flex; align-items:center; gap:10px; padding:0 12px; background:#f7f7f7; }
.fop-group-action span { color:#299e19; }
.fop-group-action button { margin-left:auto; height:30px; padding:0 12px; color:#299e19; border:1px solid #ddd; background:#fff; }
.fop-group-tools { height:34px; display:flex; align-items:center; gap:5px; padding-left:4px; border-left:1px solid #ddd; }
.fop-group-action .fop-group-tools button { width:30px; min-width:30px; height:30px; display:grid; place-items:center; margin:0; padding:0; color:#666; font-size:16px; line-height:1; }
.fop-group-action .fop-group-tools button:hover { color:#299e19; border-color:#65b958; }
.fop-content-count { margin:8px 0; color:#999; text-align:right; }
.fop-material-tabs { display:flex; flex-wrap:wrap; gap:7px; }
.fop-material-tabs button { height:32px; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#555; background:#fff; }
.fop-material-tabs button:hover { color:#299e19; border-color:#72bd66; }
.fop-cancel-row > div { display:grid; gap:0; }
.fop-cancel-row section { min-height:44px; display:grid; align-items:center; }
.fop-cancel-row section > label { min-height:36px; display:flex; align-items:center; gap:8px; }
.fop-cancel-dependent { min-height:44px; display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:6px 14px; background:#f7f7f7; }
.fop-cancel-dependent label { display:flex; align-items:center; gap:6px; }
.fop-cancel-dependent input[type=text] { width:280px; height:32px; padding:0 10px; border:1px solid #ddd; border-radius:3px; }
.fop-save-bar { height:58px; position:sticky; z-index:12; bottom:0; display:flex; align-items:center; justify-content:center; gap:12px; border-top:1px solid #ddd; background:rgba(255,255,255,.98); }
.fop-save-bar button { height:34px; padding:0 18px; }
.fop-apply-button { color:#fff; border:1px solid #f2a019; border-radius:3px; background:#f2a019; }
.fop-modal { position:fixed; z-index:1300; inset:0; display:grid; place-items:center; padding:22px; box-sizing:border-box; background:rgba(0,0,0,.44); }
.fop-modal.hidden { display:none; }
.fop-dialog { width:540px; max-width:calc(100vw - 44px); max-height:calc(100vh - 44px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 12px 34px rgba(0,0,0,.22); }
.fop-wide-dialog { width:min(980px,calc(100vw - 60px)); }
.fop-send-dialog { width:min(1060px,calc(100vw - 60px)); }
.fop-dialog > header { height:54px; flex:0 0 54px; display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #eee; }
.fop-dialog > header strong { font-size:16px; }
.fop-dialog > header button { width:34px; height:34px; margin-left:auto; padding:0; color:#999; font-size:24px; border:0; background:transparent; }
.fop-dialog-body { min-height:0; overflow:auto; }
.fop-dialog > footer { min-height:60px; flex:0 0 60px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 18px; border-top:1px solid #eee; box-sizing:border-box; }
.fop-dialog > footer > div { display:flex; gap:10px; margin-left:auto; }
.fop-dialog > footer button { height:34px; padding:0 18px; }
.fop-type-list { padding:16px 22px; }
.fop-type-list > label { min-height:78px; display:flex; align-items:flex-start; gap:10px; padding:14px 10px; border-bottom:1px solid #eee; box-sizing:border-box; }
.fop-type-list > label input { margin-top:4px; }
.fop-type-list span { display:grid; gap:8px; }
.fop-type-list small { color:#999; line-height:1.5; }
.fop-condition-form { display:grid; gap:18px; padding:24px 30px; }
.fop-condition-form > label { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:center; }
.fop-condition-form > label > span { text-align:right; padding-right:14px; }
.fop-condition-form select,.fop-condition-form button,.fop-name-field input,.fop-account-tools select,.fop-send-tools select { height:34px; border:1px solid #ddd; border-radius:3px; background:#fff; }
.fop-condition-form select { min-width:180px; padding:0 10px; }
.fop-condition-form > label > div { min-height:34px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.fop-condition-form button { padding:0 14px; color:#299e19; }
.fop-condition-form [data-fop-condition-summary] { width:100%; color:#999; line-height:24px; }
.fop-condition-tags { display:grid; gap:10px; margin:-8px 0 0 110px; padding:12px; border:1px solid #e4e4e4; background:#fafafa; }
.fop-condition-tags.hidden { display:none; }
.fop-condition-tags section { display:grid; grid-template-columns:82px minmax(0,1fr); align-items:start; gap:8px; }
.fop-condition-tags section > strong { height:28px; display:flex; align-items:center; font-weight:400; }
.fop-condition-tags section > div { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.fop-condition-tags label { position:relative; }
.fop-condition-tags label input { position:absolute; opacity:0; }
.fop-condition-tags label span { height:28px; display:flex; align-items:center; padding:0 9px; border:1px solid #d9dfe7; border-radius:3px; color:#666; background:#fff; }
.fop-condition-tags label input:checked + span { color:#299e19; border-color:#60b953; background:#f3faef; }
.fop-name-field { min-height:100px; display:grid; grid-template-columns:110px 1fr; align-items:center; padding:20px 30px; }
.fop-name-field span { padding-right:14px; text-align:right; }
.fop-name-field input { padding:0 10px; }
.fop-tag-dialog { width:650px; }
.fop-tag-search { margin:12px 18px; }
.fop-tag-tree { max-height:430px; overflow-y:auto; padding:0 18px 14px; }
.fop-tag-tree section { padding:10px 0; border-bottom:1px solid #eee; }
.fop-tag-tree section.hidden { display:none; }
.fop-tag-tree section > label { height:28px; display:flex; align-items:center; gap:8px; }
.fop-tag-tree section > div { display:flex; flex-wrap:wrap; gap:8px; padding:8px 0 0 54px; }
.fop-tag-tree section > div label { position:relative; }
.fop-tag-tree section > div input { position:absolute; opacity:0; }
.fop-tag-tree section > div span { height:28px; display:flex; align-items:center; padding:0 10px; border:1px solid #d9dfe7; border-radius:3px; color:#666; background:#fff; }
.fop-tag-tree section > div input:checked + span { color:#299e19; border-color:#60b953; background:#f3faef; }
.fop-selected-count { margin-right:0; }
.fop-selected-count b { color:#299e19; font-weight:400; }
.fop-batch-grid { min-height:500px; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(270px,.8fr); }
.fop-batch-grid > section { min-width:0; border-right:1px solid #eee; }
.fop-batch-tools { height:56px; display:flex; align-items:center; gap:14px; padding:0 16px; border-bottom:1px solid #eee; }
.fop-batch-tools > label { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.fop-batch-tools .search-control { flex:1; }
.fop-plan-choices { max-height:444px; overflow-y:auto; }
.fop-plan-choice { height:58px; display:grid; grid-template-columns:22px 1fr; align-items:center; gap:8px; padding:0 18px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.fop-plan-choice span { display:flex; align-items:center; justify-content:space-between; }
.fop-plan-choice small { color:#999; }
.fop-batch-grid aside { padding:16px; overflow:auto; }
.fop-batch-grid aside h4 { margin:0 0 12px; }
.fop-batch-grid aside p { display:grid; grid-template-columns:1fr auto; gap:5px; margin:0 0 8px; padding:10px; background:#f7f7f7; }
.fop-batch-grid aside p b { color:#3aaf28; font-weight:400; }
.fop-batch-grid aside p small { grid-column:1/-1; color:#aaa; }
.fop-account-tools,.fop-send-tools { min-height:58px; display:flex; align-items:center; gap:10px; padding:10px 16px; border-bottom:1px solid #eee; box-sizing:border-box; }
.fop-account-tools .search-control,.fop-send-tools .search-control { width:240px; }
.fop-account-tools select,.fop-send-tools select { width:160px; padding:0 10px; color:#666; }
.fop-account-columns { min-height:500px; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(250px,.75fr); }
.fop-account-columns > section { min-width:0; border-right:1px solid #eee; }
.fop-account-head { height:46px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; border-bottom:1px solid #eee; }
.fop-account-head label { display:flex; align-items:center; gap:7px; }
.fop-account-head button,.fop-account-columns aside button { padding:0; border:0; color:#299e19; background:transparent; }
.fop-account-row { height:62px; display:grid; grid-template-columns:22px minmax(0,1fr) 72px; align-items:center; gap:9px; padding:0 16px; border-bottom:1px solid #eee; box-sizing:border-box; }
.fop-account { min-width:0; display:flex; align-items:center; gap:10px; }
.fop-account .wx-avatar { width:38px; height:38px; flex:0 0 38px; }
.fop-account > span:last-child { min-width:0; display:grid; gap:4px; }
.fop-account strong { overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.fop-account small { color:#ed901f; }
.fop-account-row > em { color:#2da91b; font-style:normal; }
.fop-account-row > em.off { color:#999; }
.fop-account-row > em i { width:6px; height:6px; display:inline-block; margin-right:6px; border-radius:50%; background:currentColor; }
.fop-account-columns aside { padding:16px; overflow:auto; }
.fop-account-columns aside > div:first-child { display:flex; justify-content:space-between; margin-bottom:10px; }
.fop-account-columns aside [data-fop-account-selected] { display:grid; gap:5px; }
.fop-account-columns aside [data-fop-account-selected] span { height:32px; display:flex; align-items:center; justify-content:space-between; padding:0 8px; background:#f7f7f7; }
.fop-pages { display:flex; justify-content:center; gap:6px; padding:12px; }
.fop-pages button { min-width:30px; height:30px; border:1px solid #ddd; color:#666; background:#fff; }
.fop-pages button.active { color:#299e19; border-color:#2da91b; }
.fop-send-tools .ghost-button { height:34px; margin-left:auto; }
.fop-send-table { max-height:500px; overflow:auto; }
.fop-send-table table { width:100%; border-collapse:collapse; table-layout:fixed; }
.fop-send-table th { height:46px; padding:0 12px; text-align:left; background:#f5f5f5; }
.fop-send-table td { height:62px; padding:0 12px; border-bottom:1px solid #eee; }
.fop-send-table th:first-child,.fop-send-table td:first-child { width:38px; text-align:center; }
.fop-send-table th:nth-child(2) { width:260px; }
.fop-send-table th:nth-child(3) { width:150px; }
.fop-send-table th:nth-child(4) { width:220px; }
.fop-send-table td:last-child button { padding:0; border:0; color:#299e19; background:transparent; }
.fop-table-empty { height:180px !important; color:#aaa; text-align:center; }
.fop-send-bottom { min-height:54px; display:flex; align-items:center; gap:12px; padding:0 16px; }
.fop-send-bottom > span b { color:#299e19; }
.fop-send-bottom .fop-pages { margin-left:auto; }
.fop-send-form { padding:22px 30px; }
.fop-send-form > label { min-height:56px; display:grid; grid-template-columns:130px minmax(0,1fr); align-items:center; }
.fop-send-form > label > span { padding-right:14px; text-align:right; }
.fop-send-form > label > div { display:flex; align-items:center; gap:9px; }
.fop-send-form input[type=number],.fop-sleep-fields input { height:34px; padding:0 9px; border:1px solid #ddd; border-radius:3px; }
.fop-send-form input[type=number] { width:90px; }
.fop-send-form em { color:#777; font-style:normal; }
.fop-sleep-fields { display:flex; align-items:center; justify-content:center; gap:9px; margin-top:6px; padding:12px; background:#f7f7f7; }
.fop-toast { position:fixed; z-index:1500; top:70px; left:50%; transform:translateX(-50%); padding:9px 18px; color:#fff; border-radius:3px; background:rgba(0,0,0,.74); }
.fop-toast.hidden { display:none; }
@media (max-width:1100px) {
  .fop-workspace { grid-template-columns:220px minmax(0,1fr); }
  .fop-form-row { grid-template-columns:126px minmax(0,1fr); padding-inline:14px; }
  .fop-message-row { grid-template-columns:30px 210px minmax(250px,1fr); }
}

.card-friend-pagination button { width:32px; height:32px; color:#666; border:1px solid #ddd; background:#fff; }
.card-friend-pagination button.active { color:#289b18; border-color:#2aa515; }

/* 名片加好友：筛选、批量操作与下层设置统一基线 */
.card-friend-page {
  --card-friend-control-height:32px;
  --card-friend-label-width:154px;
}
.card-friend-filters .search-control,
.card-friend-filters .card-friend-shared-select {
  height:var(--card-friend-control-height);
}
.card-friend-filters .search-control { width:220px; }
.card-friend-filters .card-friend-shared-select { width:136px; position:relative; }
.card-friend-shared-select > input[type="hidden"] { display:none; }
.card-friend-shared-select .shared-select-trigger { height:var(--card-friend-control-height); }
.card-friend-shared-select .shared-select-menu { top:34px; z-index:80; max-height:240px; overflow-y:auto; }
.card-friend-account-select { width:220px; }
.card-friend-account-select .shared-select-trigger span { color:#555; }
.card-friend-account-select .shared-select-trigger em,
.card-friend-account-select .shared-select-menu em { color:#f59a23; font-style:normal; }
.card-friend-table input[type="checkbox"],
.card-friend-accept-dialog input[type="checkbox"] {
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  accent-color:var(--green);
}
.card-friend-table th:first-child,
.card-friend-table td:first-child { padding-right:8px; padding-left:8px; }
.card-friend-table th:nth-child(2) { width:22%; }
.card-friend-table th:nth-child(3),
.card-friend-table th:nth-child(4),
.card-friend-table th:nth-child(5),
.card-friend-table th:nth-child(6) { width:9%; }
.card-friend-table th:nth-child(7) { width:12%; }
.card-friend-table th:nth-child(8) { width:232px; }
.card-friend-table th:last-child { padding-right:22px; text-align:right; }
.card-friend-table td:last-child { padding-right:22px; line-height:20px; text-align:right; white-space:nowrap; }
.card-friend-table td:last-child button { min-height:24px; display:inline-flex; align-items:center; margin:0 0 0 6px; font-size:13px; white-space:nowrap; }
.dead-friend-table th:nth-child(2) { width:24%; }
.dead-friend-table th:nth-child(3),
.dead-friend-table th:nth-child(4),
.dead-friend-table th:nth-child(5),
.dead-friend-table th:nth-child(6) { width:10%; }
.dead-friend-table th:nth-child(7) { width:132px; }
.dead-friend-table th:last-child,
.dead-friend-table td:last-child { padding-right:14px; }
.dead-friend-table td:last-child {
  white-space:normal;
}
.dead-friend-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:4px 8px;
}
.dead-friend-actions button {
  min-height:22px;
  margin:0;
  font-size:14px;
}
.dead-friend-table td:last-child .dead-friend-actions button {
  font-size:14px;
}
.dead-friend-actions button:last-child {
  flex:0 0 100%;
  justify-content:flex-end;
}
.card-friend-count { color:var(--green); font-weight:500; }
.card-friend-batch { gap:12px; }
.card-friend-batch > span { white-space:nowrap; }
.card-friend-batch button { white-space:nowrap; }
.card-friend-top-tabs {
  height:100%;
  display:flex;
  align-items:center;
  gap:24px;
  margin-left:28px;
}
.card-friend-top-tabs button {
  height:100%;
  padding:0 2px;
  position:relative;
  border:0;
  color:#555;
  background:transparent;
}
.card-friend-top-tabs button.active { color:var(--green); font-weight:500; }
.card-friend-top-tabs button.active::after {
  content:"";
  height:2px;
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  background:var(--green);
}
.card-friend-titlebar > .ghost-button,
.card-friend-titlebar > button:last-child {
  margin-left:auto;
}
.card-friend-titlebar .back-circle { margin-left:0; }
.card-friend-main-titlebar {
  height:58px;
  padding:0 14px 0 16px;
  justify-content:space-between;
}
.card-friend-title-left,
.card-friend-title-actions {
  height:100%;
  display:flex;
  align-items:center;
}
.card-friend-title-left {
  min-width:0;
  gap:12px;
}
.card-friend-title-left > i {
  width:1px;
  height:16px;
  display:block;
  background:#e5e5e5;
}
.card-friend-title-left .shared-company-filter {
  width:200px;
  flex:0 0 200px;
}
.card-friend-title-actions {
  gap:8px;
  margin-left:auto;
}
.card-friend-title-actions .ghost-button {
  min-width:58px;
  height:34px;
  padding:0 14px;
  margin:0;
}
.card-friend-help {
  height:32px;
  display:inline-flex;
  align-items:center;
  padding:0 4px;
}
.card-friend-dialog { width:660px; }
.card-friend-dialog > header { height:52px; padding:0 20px; }
.card-friend-dialog > header button {
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  margin-left:auto;
  padding:0;
  font-size:22px;
  line-height:1;
}
.card-friend-dialog-alert {
  min-height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 20px;
  color:#76552d;
  background:#fff7e8;
  border-bottom:1px solid #ffe6bd;
  box-sizing:border-box;
}
.card-friend-dialog-alert i {
  width:16px;
  height:16px;
  flex:0 0 16px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#f5a300;
  font-size:11px;
  font-style:normal;
}
.card-friend-form { padding:20px 34px 10px; }
.card-friend-delete-form { padding-top:0; }
.card-friend-delete-form .card-friend-dialog-alert {
  margin:0 -34px 16px;
  border-top:0;
}
.card-friend-delete-form > label,
.card-friend-delete-tags > label {
  width:510px;
  max-width:100%;
  margin:0 auto;
  grid-template-columns:86px minmax(0,1fr);
  column-gap:12px;
}
.card-friend-delete-form > label {
  min-height:58px;
}
.card-friend-delete-form > label:nth-of-type(2) {
  margin-top:4px;
}
.card-friend-form > label {
  min-height:56px;
  display:grid;
  grid-template-columns:var(--card-friend-label-width) minmax(0,1fr);
  align-items:start;
  column-gap:14px;
}
.card-friend-form > label:first-child { min-height:56px; }
.card-friend-form > label > span {
  height:var(--card-friend-control-height);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:0;
  color:#555;
  line-height:20px;
  white-space:nowrap;
}
.card-friend-form textarea { height:64px; box-sizing:border-box; }
.card-friend-form textarea + small { margin-top:-23px; }
.card-friend-number-row { min-height:var(--card-friend-control-height); gap:8px; }
.card-friend-number-row input,
.card-friend-number-row input:not([type="radio"]):not([type="checkbox"]):not([type="color"]) {
  width:82px;
  height:var(--card-friend-control-height);
  min-height:var(--card-friend-control-height);
}
.card-friend-number-row button { height:var(--card-friend-control-height); }
.card-friend-sleep-control { min-height:var(--card-friend-control-height); }
.card-friend-switch {
  width:42px;
  height:var(--card-friend-control-height);
  display:flex;
  align-items:center;
  margin:0;
}
.card-friend-sleep { min-height:34px; flex-wrap:wrap; margin-top:8px; }
.card-friend-sleep input,
.card-friend-sleep input:not([type="radio"]):not([type="checkbox"]):not([type="color"]) { width:112px; height:32px; min-height:32px; }
.card-friend-sleep .shared-time-picker { width:112px; flex-basis:112px; }
.card-friend-sleep .shared-time-trigger { height:32px; min-height:32px; line-height:30px; }
.card-friend-sleep .shared-time-panel { top:34px; }
.card-friend-sleep small { flex:1 0 100%; padding-left:0; }
.card-friend-check-grid,
.card-friend-condition-tabs {
  min-height:32px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}
.card-friend-check-grid label,
.card-friend-condition-tabs label {
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  color:#555;
}
.card-friend-check-grid input,
.card-friend-condition-tabs input {
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  accent-color:var(--green);
}
.card-friend-delete-tags {
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:0;
}
.card-friend-delete-tags.hidden { display:none; }
.card-friend-delete-tags > label {
  min-height:40px;
  display:grid;
  grid-template-columns:var(--card-friend-label-width) minmax(0,1fr);
  align-items:start;
  column-gap:14px;
}
.card-friend-delete-tags > label > span {
  height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  color:#555;
}
.card-friend-delete-form > label,
.card-friend-delete-tags > label {
  width:510px;
  max-width:100%;
  margin-right:auto;
  margin-left:auto;
  grid-template-columns:86px minmax(0,1fr);
  column-gap:12px;
}
.card-friend-delete-tags .shared-tag-setting {
  width:100%;
  min-height:72px;
  padding:10px 12px;
  border-color:#e6e6e6;
  background:#fafafa;
}
.card-friend-delete-tags .shared-tag-setting-trigger {
  width:auto;
  min-width:96px;
}
.card-friend-delete-tags .shared-tag-setting-summary {
  min-height:26px;
  align-items:center;
}
.card-friend-delete-tags .shared-tag-setting-summary > span {
  height:24px;
  padding:0 7px;
  color:#555;
  border-color:#d9d9d9;
  background:#f5f5f5;
}
.card-friend-delete-tags .shared-tag-setting-summary > span button {
  color:#888;
}
.card-friend-help-dialog {
  width:600px;
  position:relative;
}
.card-friend-help-close {
  width:38px;
  height:38px;
  position:absolute;
  top:16px;
  right:18px;
  display:grid;
  place-items:center;
  padding:0;
  color:#999;
  border:0;
  background:none;
  font-size:30px !important;
  font-weight:300;
  line-height:1;
}
.card-friend-help-close:hover {
  color:#666;
}
.card-friend-help-body {
  padding:40px 32px 8px;
  color:#666;
  font-size:14px;
}
.card-friend-help-body p {
  margin:0 0 16px;
  line-height:22px;
}
.card-friend-help-body h3 {
  margin:0 0 6px;
  color:#333;
  font-size:16px;
  font-weight:600;
}
.card-friend-help-body h4 {
  margin:16px 0 4px;
  color:#555;
  font-size:15px;
  font-weight:600;
}
.card-friend-help-dialog > footer {
  height:64px;
  padding:0 32px 24px;
  border-top:0;
  align-items:flex-end;
}
.card-friend-setting-table th:nth-child(2) { width:28%; }
.card-friend-setting-table th:nth-child(3) { width:16%; }
.card-friend-setting-table th:nth-child(4) { width:18%; }
.card-friend-setting-table th:nth-child(5) { width:20%; }
.card-friend-setting-table th:nth-child(6) { width:96px; }
.card-friend-dialog > footer { height:58px; padding:0 20px; }
.card-friend-dialog > footer .dialog-action-button { min-width:64px; height:32px; }
.card-friend-setting-dialog {
  width:610px;
}
.card-friend-setting-dialog > header {
  height:48px;
  padding:0 20px;
}
.card-friend-setting-form {
  padding:20px 20px 24px;
}
.card-friend-setting-form .card-friend-dialog-alert {
  min-height:38px;
  margin:0 0 12px;
  padding:8px 14px;
  border:0;
  border-radius:3px;
}
.card-friend-rule-title {
  height:40px;
  display:flex;
  align-items:center;
  margin:0 0 18px;
  padding:0 12px;
  border-left:3px solid var(--green);
  color:#333;
  background:#f5f5f5;
  font-weight:500;
  box-sizing:border-box;
}
.card-friend-setting-form > label {
  width:510px;
  max-width:100%;
  min-height:52px;
  margin:0 auto 0;
  grid-template-columns:112px minmax(0,1fr);
  column-gap:12px;
}
.card-friend-setting-form > label > span {
  height:32px;
}
.card-friend-setting-form .card-friend-number-row,
.card-friend-setting-form .card-friend-sleep {
  min-height:32px;
  margin-top:0;
}
.card-friend-setting-form .card-friend-number-row input,
.card-friend-setting-form .card-friend-number-row input:not([type="radio"]):not([type="checkbox"]):not([type="color"]) {
  width:80px;
  height:32px;
  min-height:32px;
}
.card-friend-setting-form .card-friend-number-row button {
  height:32px;
  padding:0;
  color:var(--green);
  border:0;
  background:transparent;
}
.card-friend-setting-stack {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}
.card-friend-setting-stack > div {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
}
.card-friend-setting-stack small {
  color:#999;
  font-size:12px;
  line-height:18px;
}
.card-friend-setting-form .card-friend-sleep small[data-card-delete-period-summary] {
  flex:0 0 auto;
  padding-left:4px;
  color:#555;
  font-size:13px;
  line-height:32px;
}
.card-friend-setting-dialog > footer {
  height:58px;
  padding:0 16px;
  gap:10px;
  border-top:1px solid #eee;
  background:#fff;
}
.card-friend-setting-dialog > footer .dialog-action-button {
  min-width:64px;
  height:32px;
  padding:0 16px;
  border-radius:3px;
  font-size:14px;
}
.card-friend-setting-dialog > footer .dialog-action-cancel {
  color:#555;
  border-color:#ddd;
  background:#fff;
}
.card-friend-setting-dialog > footer .dialog-action-confirm {
  color:#fff;
  border-color:var(--green);
  background:var(--green);
}
.card-friend-help-dialog > footer {
  height:72px;
  padding:0 34px 30px;
  border-top:0;
  align-items:flex-end;
}
.card-friend-help-dialog > footer .dialog-action-button {
  min-width:64px;
  height:32px;
}
.card-friend-accept-dialog { width:620px; }
.card-friend-accept-dialog > section { padding:22px 34px 28px; }
.card-friend-accept-title { height:32px; display:flex; align-items:center; gap:6px; margin:0 0 10px; }
.card-friend-accept-title .shared-field-tip-popover {
  width:max-content;
  max-width:420px;
  top:50%;
  left:24px;
  white-space:nowrap;
  transform:translateY(-50%);
}
.card-friend-accept-title .shared-field-tip-popover::before {
  top:50%;
  left:-6px;
  border-top:6px solid transparent;
  border-right:6px solid rgba(45,45,45,.94);
  border-bottom:6px solid transparent;
  border-left:0;
  transform:translateY(-50%);
}
.card-friend-accept-dialog section > label { min-height:58px; margin:0; display:flex; align-items:flex-start; gap:10px; padding:8px 0; }
.card-friend-accept-dialog section > label input { flex:0 0 16px; margin-top:2px; }
.card-friend-accept-dialog section > label span { gap:4px; line-height:20px; }
.card-friend-stat-tabs {
  height:50px;
  padding:0 16px;
  display:flex;
  align-items:stretch;
  gap:28px;
  border-bottom:1px solid #eee;
  background:#fff;
}
.card-friend-stat-tabs button {
  height:50px;
  padding:0 2px;
  border:0;
  border-bottom:2px solid transparent;
  color:#555;
  background:transparent;
}
.card-friend-stat-tabs button.active {
  color:var(--green);
  font-weight:600;
  border:0;
  border-bottom:2px solid var(--green);
}
.card-friend-stat-tools { height:58px; padding:0 16px; gap:10px; border-bottom:1px solid #eee; }
.card-friend-stat-tools .card-friend-account-select { position:relative; }
.card-friend-stat-tools > button { height:34px; min-height:34px; margin:0; align-self:center; }
.card-friend-stat-tools > button:disabled { color:#bbb; border-color:#ddd; background:#f7f7f7; cursor:not-allowed; }
.card-friend-stat-empty { height:180px; display:grid; place-items:center; color:#aaa; }
.card-friend-stat-table th:first-child { width:34%; }
.card-friend-pagination { padding:18px; }
@media (max-width:1180px) {
  .card-friend-table { min-width:1060px; }
  .card-friend-batch { overflow:auto; }
  .card-friend-batch > div { min-width:30px; }
}

.private-center-route-loading {
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#4b5563;
  background:rgba(255,255,255,.72);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 120ms ease, visibility 0s linear 120ms;
}
.private-center-route-loading.is-visible {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}
.private-center-route-loading.is-leaving {
  opacity:0;
  pointer-events:none;
}
.private-center-route-loading > span {
  width:22px;
  height:22px;
  box-sizing:border-box;
  border:2px solid #d9ead5;
  border-top-color:#25a21a;
  border-radius:50%;
  animation:private-center-route-spin 650ms linear infinite;
}
.private-center-route-loading > em {
  font-size:14px;
  line-height:22px;
  font-style:normal;
  letter-spacing:0;
}
@keyframes private-center-route-spin {
  to { transform:rotate(360deg); }
}
@media (prefers-reduced-motion:reduce) {
  .private-center-route-loading { transition:none; }
  .private-center-route-loading > span { animation:none; }
}

button.single-plan-application-trigger[data-component-key="singlePlanApplication"][data-component-version="C1.4"] {
  height:32px;
  padding:0 15px;
  border:1px solid #fa8c16;
  border-radius:3px;
  background:#fa8c16;
  color:#fff;
  font:inherit;
  cursor:pointer;
}
button.single-plan-application-trigger[data-component-key="singlePlanApplication"][data-component-version="C1.4"]:hover {
  border-color:#fa8c16;
  background:#fa8c16;
  color:#fff;
}
button.single-plan-application-trigger[data-component-key="singlePlanApplication"][data-component-version="C1.4"]:disabled {
  cursor:not-allowed;
  opacity:.45;
}

/* 公用标签设置组件：企微标签与智能标签使用同一结构、尺寸和回显规则。 */
.shared-tag-setting {
  min-width:0;
  min-height:82px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:10px 12px;
  border:1px solid #e4e4e4;
  border-radius:3px;
  background:#fafafa;
  box-sizing:border-box;
}
.shared-tag-setting-trigger {
  width:96px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  color:#555;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
}
.shared-tag-setting-trigger:hover,
.shared-tag-setting-trigger:focus {
  color:var(--green);
  border-color:#72c260;
  outline:0;
}
.shared-tag-setting-summary {
  width:100%;
  min-height:28px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.shared-tag-setting-summary > span {
  height:28px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  color:var(--green);
  border:1px solid #8bcd7d;
  border-radius:3px;
  background:#f5fbf2;
  box-sizing:border-box;
}
.shared-tag-setting-summary > span button {
  width:14px;
  height:14px;
  min-height:14px;
  padding:0;
  color:var(--green);
  border:0;
  background:transparent;
  line-height:12px;
}
.shared-tag-setting-summary > small { color:#aaa; font-size:12px; line-height:28px; }
.shared-tag-setting[data-component-key="corpTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span,
.shared-tag-setting[data-component-key="smartTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span {
  height:24px;
  padding:0 7px;
  color:#606266 !important;
  border-color:#dcdfe6 !important;
  background:#f7f7f7 !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:20px;
}
.shared-tag-setting[data-component-key="corpTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span button,
.shared-tag-setting[data-component-key="smartTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span button {
  color:#909399 !important;
  font-size:12px !important;
}
.shared-tag-setting[data-component-key="corpTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span button:hover,
.shared-tag-setting[data-component-key="smartTag"][data-component-version="C1.2"] .shared-tag-setting-summary > span button:hover {
  color:#606266 !important;
}
.mom-filter-tag-trigger.has-value[data-component-key="corpTag"][data-component-version="C1.2"],
.mom-filter-tag-trigger.has-value[data-component-key="smartTag"][data-component-version="C1.2"] { color:#606266; font-size:12px; }
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  width:min(620px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:10px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"] {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:10px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"].hidden { display:none; }
@media (max-width:820px) {
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups,
  .fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"] { grid-template-columns:1fr; }
}

/* 按条件触发：线上三行结构，企微标签复用公用组件的紧凑形态。 */
.fan-operation-page:not(.hidden) .fop-condition-inline {
  width:min(860px,100%);
  gap:10px;
  padding:18px 24px;
  border:1px solid #e2e2e2;
  border-radius:0;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label {
  min-height:40px;
  grid-template-columns:126px minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label > span {
  justify-self:end;
  color:#333;
  font-size:14px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline select {
  width:180px;
  height:34px;
}
.fan-operation-page:not(.hidden) .fop-condition-tag-setting {
  grid-template-columns:126px minmax(0,1fr) !important;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact {
  width:auto;
  min-height:34px;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-trigger {
  width:96px;
  flex:0 0 96px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary {
  width:auto;
  min-width:0;
  min-height:28px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > small { display:none; }

/* 二次确认定稿组件：用于删除、解绑及其他不可逆操作。 */
.shared-second-confirm-c13 {
  position:relative;
  width:min(560px,calc(100vw - 32px));
  overflow:hidden;
  border-radius:5px;
  background:#fff;
  box-shadow:0 12px 34px rgba(0,0,0,.2);
}
.shared-second-confirm-c13 .shared-second-confirm-close {
  position:absolute;
  z-index:1;
  top:12px;
  right:14px;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#9aa0a6;
  font:20px/28px Arial,sans-serif;
  text-align:center;
  cursor:pointer;
}
.shared-second-confirm-c13 .shared-second-confirm-close:hover {
  background:#f3f4f5;
  color:#555;
}
.shared-second-confirm-c13 .shared-second-confirm-content {
  min-height:176px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:start;
  gap:18px;
  padding:38px 46px 26px;
  box-sizing:border-box;
}
.shared-second-confirm-c13 .shared-second-confirm-content > i {
  width:40px;
  height:40px;
  display:block;
  font-style:normal;
  box-sizing:border-box;
}
.shared-second-confirm-c13 .shared-second-confirm-content > i img {
  display:block;
  width:100%;
  height:100%;
}
.shared-second-confirm-c13 .shared-second-confirm-content strong {
  min-height:40px;
  display:flex;
  align-items:center;
  margin:0;
  color:#2f2f2f;
  font-size:22px;
  font-weight:600;
  line-height:1.4;
}
.shared-second-confirm-c13 .shared-second-confirm-content p {
  margin:14px 0 0;
  color:#666;
  font-size:16px;
  line-height:1.8;
  white-space:pre-line;
}
.shared-second-confirm-shell { z-index:1900; }
.shared-second-confirm-c13 > footer {
  min-height:70px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:12px;
  padding:0 46px 24px;
  box-sizing:border-box;
}
.shared-second-confirm-c13 > footer .dialog-action-button {
  min-width:88px;
  height:38px;
  padding:0 20px;
  border-radius:4px;
  font-size:15px;
}
.shared-second-confirm-c13 > footer .dialog-action-cancel {
  color:#555;
  border-color:#d9d9d9;
  background:#fff;
}
.shared-second-confirm-c13 > footer .dialog-action-confirm {
  color:#fff;
  border-color:var(--green);
  background:var(--green);
}
.shared-second-confirm-c13 > footer .dialog-action-confirm:hover {
  color:#fff;
  border-color:#2f8f0b;
  background:#2f8f0b;
}
.shared-second-confirm-c13.shared-second-confirm-compact {
  width:min(460px,calc(100vw - 32px));
}
.shared-second-confirm-c13.shared-second-confirm-compact .shared-second-confirm-content {
  min-height:0;
  grid-template-columns:22px minmax(0,1fr);
  gap:10px;
  padding:24px 48px 12px 32px;
}
.shared-second-confirm-c13.shared-second-confirm-compact .shared-second-confirm-content > i {
  width:22px;
  height:22px;
  margin-top:-1px;
}
.shared-second-confirm-c13.shared-second-confirm-compact .shared-second-confirm-content strong {
  min-height:20px;
  font-size:17px;
  line-height:20px;
}
.shared-second-confirm-c13.shared-second-confirm-compact .shared-second-confirm-content p {
  margin-top:6px;
  font-size:14px;
  line-height:1.6;
}
.shared-second-confirm-c13.shared-second-confirm-compact > footer {
  min-height:0;
  gap:10px;
  padding:0 32px 20px;
}
.shared-second-confirm-c13.shared-second-confirm-compact > footer .dialog-action-button {
  min-width:72px;
  height:34px;
  padding:0 16px;
  font-size:14px;
}
@media (max-width:600px) {
  .shared-second-confirm-c13 .shared-second-confirm-content { grid-template-columns:40px minmax(0,1fr); gap:12px; padding:28px 24px 20px; }
  .shared-second-confirm-c13 .shared-second-confirm-content > i { width:36px; height:36px; font-size:20px; }
  .shared-second-confirm-c13 .shared-second-confirm-content strong { min-height:36px; font-size:19px; }
  .shared-second-confirm-c13 .shared-second-confirm-content p { font-size:14px; }
  .shared-second-confirm-c13 > footer { padding:0 24px 20px; }
}

/* V1.6: 群活码 / 接受新客户 / 名片加好友，按线上页面收口 */
.live-code-page-head {
  height:48px;
  padding:0 18px;
  gap:18px;
  border-bottom:1px solid #e8e8e8;
  background:#fff;
}
.live-code-page-head > strong { font-size:15px; font-weight:600; }
.live-code-company { width:220px; }
.live-code-list-shell { margin:12px; border:1px solid #e8e8e8; background:#fff; }
.live-code-actions { min-height:56px; padding:10px 14px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-actions .primary-button { min-width:82px; height:34px; }
.live-code-action-left { margin-left:auto; }
.live-code-action-left .outline-button { height:34px; padding:0 15px; }
.live-code-new-menu { top:40px; width:360px; padding:6px 0; border:1px solid #ddd; border-radius:3px; box-shadow:0 7px 20px rgba(0,0,0,.14); }
.live-code-new-menu button { padding:12px 16px; }
.live-code-new-menu button:hover { background:#f4f8f1; }
.live-code-new-menu strong { font-size:14px; font-weight:500; }
.live-code-new-menu span { margin-top:5px; color:#999; font-size:12px; }
.live-code-filters { min-height:58px; padding:10px 14px; gap:10px; border-bottom:1px solid #eee; box-sizing:border-box; }
.live-code-filters { flex-wrap:nowrap; }
.live-code-filters .search-control { width:190px; flex:0 0 190px; }
.live-code-filters select { width:125px; flex:0 0 125px; height:34px; color:#666; }
.live-code-filters > select:last-child { width:145px; flex-basis:145px; }
.live-code-date { width:240px; flex:0 0 240px; height:34px; }
.live-code-card { min-height:112px; margin:0; padding:14px 16px; border:0; border-bottom:1px solid #eee; border-radius:0; box-shadow:none; }
.live-code-card:hover { background:#fafafa; }
.live-code-main p { margin-top:8px; color:#999; font-size:12px; }
.live-code-name strong { font-size:15px; font-weight:500; }
.live-code-state { margin-top:8px; font-size:13px; }
.live-code-metrics { min-height:66px; }
.live-code-metrics dt { margin-bottom:9px; color:#888; font-weight:400; }
.live-code-metrics dd { color:#555; }
.live-code-row-actions { grid-template-columns:repeat(3,max-content); justify-content:start; align-content:center; column-gap:14px; row-gap:9px; }
.live-code-row-actions button { color:#289b18; font-size:13px; white-space:nowrap; }
.live-code-row-actions button.muted { color:#999; }
.live-code-pagination { margin:20px 0; }

.live-code-subhead { height:48px; padding:0 18px; border-bottom:1px solid #e8e8e8; background:#fff; }
.live-code-subhead strong { font-size:15px; font-weight:600; }
.live-code-create-shell { width:min(1120px,calc(100vw - var(--sidebar-width,220px) - 48px)); margin:14px auto 76px; border:1px solid #e5e5e5; background:#fff; }
.live-code-steps { height:78px; margin:0; padding:0 120px; border-bottom:1px solid #eee; background:#fff; }
.live-code-steps li::after { background:#ddd; }
.live-code-steps li.active::after { background:#2aa515; }
.live-code-steps li b { width:26px; height:26px; line-height:26px; font-size:13px; }
.live-code-steps li span { margin-top:6px; font-size:13px; }
.live-code-create-body { min-height:440px; padding:24px 34px; box-sizing:border-box; }
.live-code-form { max-width:900px; margin:0 auto; }
.live-code-form section { margin:0 0 18px; padding:0; border:1px solid #e7e7e7; background:#fff; }
.live-code-form section > h3 { height:46px; margin:0; padding:0 18px; display:flex; align-items:center; border-bottom:1px solid #eee; font-size:14px; font-weight:600; }
.live-code-form section > label { min-height:62px; margin:0; padding:13px 22px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.live-code-form section > label:last-child { border-bottom:0; }
.live-code-form section > label > span:first-child { width:132px; color:#555; text-align:right; }
.live-code-form input:not([type=radio]):not([type=checkbox]):not([type=color]),
.live-code-form textarea { min-height:34px; border-color:#ddd; border-radius:3px; }
.live-upload { height:34px; padding:0 14px; border:1px solid #ddd; border-radius:3px; color:#555; background:#fff; }
.live-code-scan-form { max-width:980px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start; }
.live-code-phone { margin:0; border:1px solid #e5e5e5; background:#fff; }
.live-code-phone > strong { height:46px; padding:0 16px; display:flex; align-items:center; border-bottom:1px solid #eee; font-size:14px; }
.live-code-phone > div { min-height:360px; padding:28px 20px; }
.live-code-phone small { color:#aaa; font-size:12px; }
.live-code-order-radios { display:flex; align-items:center; gap:28px; }
.live-code-selected-groups { min-height:34px; padding:4px 8px; border:1px solid #ddd; border-radius:3px; }
.live-code-create-footer { height:62px; position:fixed; z-index:25; left:var(--sidebar-width,220px); right:0; bottom:0; justify-content:center; border-top:1px solid #ddd; background:#fff; }
.live-code-create-footer button { min-width:88px; height:34px; }

.live-code-rule-form {
  width:100%;
  max-width:1100px;
  display:block;
}
.live-code-rule-form .live-code-rule-panel {
  margin:0;
  border:0;
}
.live-code-rule-form .live-code-rule-panel > h3 {
  height:52px;
  padding:0 16px;
  border:0;
  border-bottom:1px solid #eee;
  font-size:14px;
}
.live-code-rule-content {
  padding:24px;
}
.live-code-rule-block + .live-code-rule-block {
  margin-top:20px;
}
.live-code-rule-heading {
  height:42px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-left:2px solid var(--green);
  box-sizing:border-box;
  color:#333;
  background:#f5f5f5;
  font-size:14px;
  font-weight:600;
}
.live-code-rule-check-heading label {
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.live-code-rule-check-heading input,
.live-code-rule-form input[type="radio"],
.live-code-rule-form input[type="checkbox"] {
  accent-color:var(--green);
}
.live-code-rule-row {
  min-height:54px;
  display:flex;
  align-items:center;
  gap:10px;
  padding-top:8px;
  box-sizing:border-box;
}
.live-code-rule-label {
  width:112px;
  flex:none;
  color:#555;
  text-align:left;
}
.live-code-help {
  width:16px;
  height:16px;
  margin-left:4px;
  padding:0;
  border:1px solid #888;
  border-radius:50%;
  color:#777;
  background:#fff;
  font-size:11px;
  line-height:14px;
  cursor:help;
}
.live-code-pick-group-button {
  height:34px;
  padding:0 16px;
  color:#666;
  background:#fff;
}
.live-code-rule-selected {
  max-width:660px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.live-code-rule-selected span {
  height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 9px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#666;
  background:#fafafa;
  font-size:12px;
}
.live-code-rule-form .live-code-member-limit {
  width:100px !important;
}
.live-code-rule-form .live-code-order-radios {
  gap:24px;
  color:#777;
}
.live-code-duplicate-check {
  color:#777;
}

/* 群活码创建向导 */
.live-code-wizard-head {
  height:56px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 16px;
  border-bottom:1px solid #e8e8e8;
  box-sizing:border-box;
  background:#fff;
}
.live-code-wizard-title { display:flex; align-items:center; gap:10px; }
.live-code-wizard-title .back-circle { margin:0; }
.live-code-wizard-title strong { font-size:14px; font-weight:600; color:#333; }
.live-code-wizard-head .live-code-steps {
  width:480px;
  height:56px;
  padding:0;
  border:0;
  background:transparent;
}
.live-code-wizard-head .live-code-steps li {
  width:160px;
  height:56px;
  align-items:center;
  gap:9px;
}
.live-code-wizard-head .live-code-steps li:not(:last-child)::after {
  top:27px;
  left:104px;
  width:62px;
  border-top:1px solid #ddd;
}
.live-code-wizard-head .live-code-steps li.active::after { border-color:#ddd; background:transparent; }
.live-code-wizard-head .live-code-steps li.complete::after { border-color:#2aa515; background:transparent; }
.live-code-wizard-head .live-code-steps li b { flex:0 0 24px; width:24px; height:24px; line-height:24px; }
.live-code-wizard-head .live-code-steps li span { margin:0; line-height:24px; }
.live-code-wizard-head .live-code-steps li.complete b { color:#2aa515; border-color:#2aa515; background:#fff; }
.live-code-wizard-head .live-code-steps li.complete span { color:#555; }
.live-code-create-shell.is-basic-step {
  width:min(1100px,calc(100vw - var(--sidebar-width,220px) - 64px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-basic-step .live-code-create-body {
  min-height:290px;
  padding:0;
  background:#fff;
}
.live-code-basic-form { max-width:none; margin:0; }
.live-code-basic-form section { margin:0; border:0; }
.live-code-basic-form section > h3 {
  height:54px;
  padding:0 18px;
  border-bottom:1px solid #eee;
  font-size:14px;
}

/* 普通群活码 - 扫码页设置（标准模式） */
.live-code-create-shell.is-scan-step {
  width:min(1100px,calc(100vw - var(--sidebar-width,220px) - 64px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-scan-step .live-code-create-body { min-height:750px; padding:0; }
.live-code-standard-form { max-width:none; grid-template-columns:minmax(0,710px) 390px; gap:0; align-items:stretch; background:#fff; }
.live-code-standard-form .live-code-scan-settings { margin:0; border:0; border-right:1px solid #eee; }
.live-code-standard-form .live-code-scan-settings > h3,
.live-code-standard-form .live-code-scan-preview > h3 {
  height:56px;
  margin:0;
  padding:0 18px;
  display:flex;
  align-items:center;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:15px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-scan-fields { padding:16px 16px 12px; }
.live-code-field-row {
  min-height:46px;
  display:grid;
  grid-template-columns:104px minmax(0,360px);
  align-items:center;
  column-gap:16px;
}
.live-code-field-row > span { color:#444; font-size:13px; text-align:left; }
.live-code-field-row > input { width:100%; height:34px; padding:0 12px; box-sizing:border-box; }
.live-code-mode-switch { display:flex; align-items:center; }
.live-code-mode-switch button {
  min-width:88px;
  height:34px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ddd;
  margin-left:-1px;
  color:#666;
  background:#fff;
  font-size:13px;
  font-weight:400;
  box-sizing:border-box;
  cursor:pointer;
}
.live-code-mode-switch button:first-child { margin-left:0; border-radius:3px 0 0 3px; }
.live-code-mode-switch button:last-child { border-radius:0 3px 3px 0; }
.live-code-mode-switch button.active { position:relative; z-index:1; border-color:#2aa515; color:#2aa515; background:#fff; }
.live-code-inline-check { width:max-content; display:flex; align-items:center; gap:8px; color:#555; font-size:13px; cursor:pointer; }
.live-code-inline-check input { width:16px; height:16px; margin:0; accent-color:#2aa515; }
.live-code-upload-row { min-height:144px; align-items:start; padding-top:8px; }
.live-code-upload-row > span { padding-top:12px; }
.live-code-upload-control { display:flex; flex-direction:column; align-items:flex-start; }
.live-code-upload-control .live-logo-upload { width:104px; height:104px; }
.live-code-upload-control p { margin:9px 0 0; color:#aaa; font-size:12px; line-height:20px; }
.live-code-more-settings { margin-top:4px; border-top:1px solid #eee; }
.live-code-more-settings summary { height:36px; display:flex; align-items:center; justify-content:center; color:#777; font-size:12px; cursor:pointer; list-style:none; }
.live-code-more-settings summary::-webkit-details-marker { display:none; }
.live-code-more-settings .when-closed { display:none; }
.live-code-more-settings:not([open]) .when-open { display:none; }
.live-code-more-settings:not([open]) .when-closed { display:inline; }
.live-code-scan-preview { min-height:750px; background:#fff; }
.live-code-preview-device { width:336px; margin:0 auto; padding-top:12px; }
.live-code-preview-status { height:28px; padding:0 8px; display:flex; align-items:center; justify-content:space-between; color:#111; font-size:12px; }
.live-code-preview-status span { font-size:11px; letter-spacing:1px; }
.live-code-preview-bar { height:42px; padding:0 8px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #eee; color:#111; }
.live-code-preview-bar b { font-size:24px; font-weight:300; line-height:1; }
.live-code-preview-bar span { font-size:18px; letter-spacing:2px; }
.live-code-preview-stage { min-height:355px; padding:20px; background:#f4f6ff; box-sizing:border-box; }
.live-code-preview-card { min-height:315px; padding:52px 20px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:7px; background:#fff; box-sizing:border-box; }
.live-code-preview-card img { width:202px; height:202px; object-fit:contain; }
.live-code-preview-card p { margin:18px 0 0; color:#999; font-size:12px; }
.live-code-preview-note { margin:18px 10px 0; color:#aaa; font-size:12px; line-height:20px; text-align:center; }
.live-code-poster-form .live-code-scan-settings,
.live-code-poster-form .live-code-scan-preview { min-height:800px; }
.live-code-poster-upload-row { min-height:220px; }
.live-code-poster-help {
  margin:10px 0 0;
  padding-left:17px;
  color:#999;
  font-size:12px;
  line-height:22px;
}
.live-code-poster-stage {
  position:relative;
  height:640px;
  background:#f4f6ff;
  box-sizing:border-box;
}
.live-code-poster-qr {
  position:absolute;
  left:50%;
  bottom:28px;
  width:198px;
  height:198px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed #e1e1e1;
  color:#666;
  background:#fff;
  font-size:13px;
  transform:translateX(-50%);
  box-sizing:border-box;
}
.live-code-basic-fields { padding:24px 24px 22px; }
.live-code-basic-form .live-code-basic-fields > label {
  display:flex;
  align-items:center;
  min-height:42px;
  margin:0 0 10px;
  padding:0;
  border:0;
}
.live-code-basic-form .live-code-basic-fields > label > span {
  flex:0 0 120px;
  width:120px;
  color:#444;
  text-align:left;
}
.live-code-basic-form .live-code-name-field input { width:400px; height:34px; }
.live-code-basic-form .live-code-logo-field { align-items:flex-start; }
.live-code-basic-form .live-code-logo-field > span { padding-top:8px; }
.live-code-logo-control { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.live-logo-upload {
  width:104px;
  height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:1px dashed #d8d8d8;
  border-radius:2px;
  color:#555;
  background:#fff;
  cursor:pointer;
}
.live-logo-upload i { font-style:normal; font-size:22px; line-height:20px; color:#777; }
.live-logo-upload b { font-size:14px; font-weight:400; }
.live-code-logo-control p { margin:0; color:#999; font-size:12px; }

.new-fan-head { height:48px; padding:0 18px; border-bottom:1px solid #e8e8e8; background:#fff; }
.new-fan-head > strong { font-size:15px; font-weight:600; }
.new-fan-head .shared-config-actions { margin-left:auto; }
.new-fan-alert { width:calc(100% - 24px); margin:12px; }
.new-fan-form-shell { width:min(1120px,calc(100% - 24px)); }
.new-fan-card { box-shadow:none; }
.new-fan-modal.wide .new-fan-dialog { width:min(1120px,calc(100vw - 56px)); }
.new-fan-picker-tools { min-height:56px; padding:10px 16px; }
.new-fan-picker-tools select { appearance:none; background:#fff linear-gradient(45deg,transparent 50%,#999 50%) calc(100% - 14px) 14px/5px 5px no-repeat; }
.new-fan-picker-head label { width:auto; flex:0 0 auto; white-space:nowrap; }
.new-fan-picker-head label input { flex:0 0 auto; }
.new-fan-picker-body { min-height:448px; grid-template-columns:minmax(430px,1.45fr) 250px 260px; }
.new-fan-picker-body > section,
.new-fan-selected-panel { border-right:1px solid #eee; }
.new-fan-account-list { max-height:402px; }
.new-fan-account-list > label { height:58px; grid-template-columns:22px 38px minmax(0,1fr) 72px; }
.new-fan-account-list .wx-avatar { width:36px; height:36px; }
.new-fan-picker-body aside { padding:0; }
.new-fan-picker-body aside > div:first-child { height:46px; margin:0; padding:0 14px; display:flex; align-items:center; border-bottom:1px solid #eee; box-sizing:border-box; }
.new-fan-picker-body aside [data-new-fan-selected-list] { padding:8px 12px; }
.new-fan-record-panel article { margin:12px; padding:14px; border:1px solid #e7e7e7; border-radius:2px; background:#fafafa; }
.new-fan-record-panel article b,
.new-fan-record-panel article span,
.new-fan-record-panel article small { display:block; margin-bottom:7px; }
.new-fan-record-panel article b { color:#2aa515; font-weight:500; }
.new-fan-record-panel article span { color:#555; }
.new-fan-record-panel article small { color:#999; }
.new-fan-record-panel article button { padding:0; }

/* 公共组件：单方案应用 */
.new-fan-dialog:has(.apply-wechat-picker) { width:min(1040px,calc(100vw - 32px)); }
.apply-wechat-picker { min-height:0; display:flex; flex:1; flex-direction:column; overflow:hidden; }
.apply-wechat-tools { height:56px; min-height:56px; align-items:center; gap:10px; }
.apply-wechat-tools .search-control { width:180px; }
.apply-wechat-filter-select { width:140px; flex:0 0 140px; }
.apply-wechat-filter-select .shared-select-trigger { height:32px; }
.apply-wechat-filter-select .shared-select-menu { max-height:220px; overflow-y:auto; }
.apply-wechat-body { height:600px; min-height:0; flex:1; grid-template-columns:minmax(430px,1fr) 220px 300px; }
.apply-wechat-account-panel { min-width:0; display:grid; grid-template-rows:46px minmax(0,1fr) 42px; overflow:hidden; }
.apply-wechat-list-head input,
.apply-wechat-account-list input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.apply-wechat-account-list { max-height:none; overflow-y:auto; }
.apply-wechat-account-list > label { height:56px; padding:0 14px; grid-template-columns:18px 38px minmax(0,1fr) 62px; gap:9px; }
.apply-wechat-account-list > label:has(input:checked) { background:#edf2ff; }
.apply-wechat-account-list > label.hidden { display:none; }
.apply-wechat-account-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apply-wechat-list-footer { height:42px; position:sticky; z-index:3; bottom:0; display:flex; align-items:center; justify-content:space-between; flex:0 0 42px; padding:0 12px; border-top:1px solid #eee; color:#777; background:#fff; box-shadow:0 -2px 7px rgba(0,0,0,.05); box-sizing:border-box; }
.apply-wechat-footer-summary { min-width:0; display:flex; align-items:center; gap:12px; }
.apply-wechat-footer-summary > span { white-space:nowrap; }
.apply-wechat-footer-summary > span b { color:var(--green); font-weight:500; }
.apply-wechat-footer-summary [data-apply-wechat-select-all] { width:auto; min-width:56px; height:28px; padding:0; border:0; color:var(--green); background:transparent; font:inherit; white-space:nowrap; }
.apply-wechat-footer-summary [data-apply-wechat-select-all]:disabled { color:#bbb; cursor:default; }
.apply-wechat-list-footer > div { display:flex; align-items:center; gap:9px; }
.apply-wechat-list-footer > div:last-child button { width:26px; height:26px; padding:0; border:0; color:#999; background:#fff; font-size:18px; }
.apply-wechat-list-footer > div:last-child button:disabled { color:#d4d4d4; cursor:default; }
.apply-wechat-list-footer > div:last-child span { min-width:54px; text-align:center; }
.apply-wechat-list-footer > div:last-child b { font-weight:400; }
.apply-wechat-selected-panel,
.apply-wechat-record-panel { min-width:0; overflow:hidden; background:#fff; }
.apply-wechat-selected-panel > div:first-child,
.apply-wechat-record-panel > div:first-child { height:46px; }
.apply-wechat-selected-panel strong em { color:#777; font-style:normal; font-weight:400; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] { height:calc(100% - 46px); display:flex; flex-direction:column; gap:0; padding:4px 14px; overflow-y:auto; box-sizing:border-box; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] > span { min-height:40px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 2px; border-bottom:1px solid #eee; background:#fff; box-sizing:border-box; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] > span b { min-width:0; overflow:hidden; color:#555; font-size:13px; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] > span button { width:20px; height:20px; flex:0 0 20px; display:flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:2px; color:#999; background:transparent; font:16px/20px Arial; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] > span button:hover { color:var(--green); background:#f0f8ed; }
.apply-wechat-selected-panel [data-apply-wechat-selected-list] > small { padding:16px 2px; color:#999; }
.apply-wechat-record-list { height:calc(100% - 46px); padding:10px 12px; overflow-y:auto; box-sizing:border-box; }
.apply-wechat-record-panel .apply-wechat-record-list article { min-height:82px; position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:10px 8px; margin:0 0 8px; padding:12px; border:0; border-radius:3px; background:#f7f7f7; box-sizing:border-box; }
.apply-wechat-record-panel article strong { overflow:hidden; color:#555; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.apply-wechat-record-panel article button { color:var(--green); }
.apply-wechat-record-panel article span,
.apply-wechat-record-panel article small { align-self:end; margin:0; color:#999; }
.apply-wechat-record-panel article span i { width:6px; height:6px; display:inline-block; margin-right:7px; border-radius:50%; background:#31bb17; vertical-align:middle; }
.apply-wechat-record-panel article small { text-align:right; white-space:nowrap; }
.new-fan-dialog:has(.apply-wechat-picker) > footer { min-height:54px; }
.new-fan-dialog:has(.apply-wechat-picker) > footer .dialog-action-button { flex:0 0 auto; }

@media (max-width:1000px) {
  .apply-wechat-body { grid-template-columns:minmax(400px,1fr) 200px 280px; }
}

/* 公共组件：应用管理 */
.new-fan-dialog:has(.application-manage-table) { width:min(920px,calc(100vw - 32px)); height:min(800px,calc(100vh - 32px)); }
.new-fan-dialog > .application-manage-title > div { flex-direction:row; align-items:center; gap:8px; }
.application-manage-title small { color:#999; font-size:12px; }
.application-manage-summary { height:70px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; color:#666; box-sizing:border-box; }
.application-manage-summary .outline-button { height:34px; padding:0 16px; border:1px solid var(--green); border-radius:3px; color:var(--green); background:#fff; box-sizing:border-box; }
.application-manage-summary .outline-button:disabled { border-color:#ddd; color:#bbb; background:#f7f7f7; }
.application-manage-batch { position:relative; z-index:6; }
.application-manage-batch.open .outline-button { background:#f5fbf2; }
.application-manage-batch-menu { width:96px; position:absolute; top:38px; right:0; z-index:10; padding:4px 0; border:1px solid #e6e6e6; border-radius:3px; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,.13); box-sizing:border-box; }
.application-manage-batch-menu.hidden { display:none; }
.application-manage-batch-menu button { width:100%; height:34px; display:block; padding:0 12px; border:0; color:#666; font-size:13px; text-align:left; white-space:nowrap; background:#fff; }
.application-manage-batch-menu button:hover { color:var(--green); background:#f3f8ef; }
.application-manage-table { min-height:0; max-height:none; flex:1; padding:0 20px; overflow-y:auto; }
.application-manage-table table { border-radius:3px 3px 0 0; overflow:hidden; }
.application-manage-table th { height:38px; position:sticky; z-index:2; top:0; padding:0 10px; background:#f5f5f5; font-weight:600; }
.application-manage-table td { height:58px; padding:0 10px; }
.application-manage-table th:first-child,
.application-manage-table td:first-child { width:52px; padding:0; text-align:center; }
.application-manage-table th:nth-child(2),
.application-manage-table td:nth-child(2) { width:250px; }
.application-manage-table th:nth-child(3),
.application-manage-table td:nth-child(3) { width:180px; white-space:nowrap; }
.application-manage-table th:nth-child(4),
.application-manage-table td:nth-child(4) { width:160px; white-space:nowrap; }
.application-manage-table th:nth-child(5),
.application-manage-table td:nth-child(5) { width:120px; white-space:nowrap; }
.application-manage-table input[type="checkbox"] { width:16px; height:16px; margin:0; accent-color:var(--green); }
.application-manage-table tbody tr:has([data-application-manage-check]:checked) { background:#dce9d4; }
.application-manage-table .new-fan-account { gap:9px; }
.application-manage-table .new-fan-account .wx-avatar { width:40px; height:40px; }
.application-manage-table .new-fan-account > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.application-manage-table .new-fan-switch i { width:44px; height:22px; }
.application-manage-table .new-fan-switch input:checked + i::after { transform:translateX(22px); }
.application-manage-pagination { height:56px; min-height:56px; display:flex; align-items:center; justify-content:center; gap:8px; }
.application-manage-pagination button { min-width:26px; height:26px; padding:0 6px; border:1px solid transparent; border-radius:3px; color:#666; background:#fff; }
.application-manage-pagination button.active { border-color:var(--green); color:var(--green); }
.application-manage-pagination button:disabled { color:#ccc; cursor:default; }

/* 群活码标准模式：群名称与示例群头像 */
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting {
  min-height:244px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting > span {
  height:32px;
  display:flex;
  align-items:center;
  margin-top:44px;
  padding-top:0;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls > .live-code-inline-check {
  height:32px;
  min-height:32px;
  line-height:20px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls > .live-code-inline-check input {
  flex:0 0 16px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls > input {
  width:360px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-avatar-control {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-avatar-control > button {
  width:104px;
  height:104px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px;
  border:1px dashed #d8d8d8;
  border-radius:2px;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-avatar-control .group-avatar-collage,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-avatar-control img {
  width:88px;
  height:88px;
  display:block;
  object-fit:cover;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-avatar-control p { margin:0; color:#999; font-size:12px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-card { position:relative; padding-top:76px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-group {
  position:absolute;
  top:20px;
  left:24px;
  display:flex;
  align-items:center;
  gap:10px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-group > span,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-group .group-avatar-collage,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-group img {
  width:54px;
  height:54px;
  display:block;
  object-fit:cover;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-group strong { max-width:180px; overflow:hidden; color:#555; font-size:13px; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-preview-card > .live-code-preview-qr { width:202px; height:202px; object-fit:contain; }

/* 群活码手机预览：统一状态栏与导航图标 */
.live-code-phone-system,
.live-code-create-shell .live-code-phone-system {
  width:82px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  color:#111;
  font-size:0;
  letter-spacing:0;
  box-sizing:border-box;
}
.live-code-phone-signal,
.live-code-create-shell .live-code-phone-signal {
  width:18px;
  height:14px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  font-style:normal;
}
.live-code-phone-signal > i,
.live-code-create-shell .live-code-phone-signal > i {
  width:3px;
  display:block;
  border-radius:1px 1px 0 0;
  background:#111;
  font-size:0;
  letter-spacing:0;
}
.live-code-phone-signal > i:nth-child(1) { height:5px; }
.live-code-phone-signal > i:nth-child(2) { height:8px; }
.live-code-phone-signal > i:nth-child(3) { height:11px; }
.live-code-phone-signal > i:nth-child(4) { height:14px; }
.live-code-phone-wifi,
.live-code-create-shell .live-code-phone-wifi {
  width:18px;
  height:14px;
  position:relative;
  display:block;
  font-style:normal;
}
.live-code-phone-wifi::before,
.live-code-phone-wifi::after {
  content:"";
  position:absolute;
  left:50%;
  border:2px solid #111;
  border-right-color:transparent;
  border-bottom-color:transparent;
  border-left-color:transparent;
  border-radius:50%;
  transform:translateX(-50%);
  box-sizing:border-box;
}
.live-code-phone-wifi::before { top:0; width:18px; height:14px; }
.live-code-phone-wifi::after { top:6px; width:9px; height:7px; }
.live-code-phone-battery,
.live-code-create-shell .live-code-phone-battery {
  width:23px;
  height:12px;
  position:relative;
  display:block;
  border:2px solid #111;
  border-radius:2px;
  font-style:normal;
  box-sizing:border-box;
}
.live-code-phone-battery::before {
  content:"";
  position:absolute;
  inset:2px;
  background:#111;
}
.live-code-phone-battery::after {
  content:"";
  position:absolute;
  top:2px;
  right:-4px;
  width:2px;
  height:4px;
  border-radius:0 1px 1px 0;
  background:#111;
}
.live-code-phone-close,
.live-code-create-shell .live-code-phone-close {
  width:28px;
  height:28px;
  position:relative;
  display:block;
  font-size:0;
  line-height:0;
}
.live-code-phone-close::before,
.live-code-phone-close::after {
  content:"";
  position:absolute;
  top:13px;
  left:4px;
  width:20px;
  height:2px;
  border-radius:1px;
  background:#111;
}
.live-code-phone-close::before { transform:rotate(45deg); }
.live-code-phone-close::after { transform:rotate(-45deg); }
.live-code-phone-more,
.live-code-create-shell .live-code-phone-more {
  width:40px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  color:#111;
  font-size:0;
  font-style:normal;
  letter-spacing:0;
  box-sizing:border-box;
}
.live-code-phone-more > i,
.live-code-create-shell .live-code-phone-more > i {
  width:4px;
  height:4px;
  display:block;
  flex:0 0 4px;
  border-radius:50%;
  background:#111;
  font-size:0;
  font-style:normal;
  letter-spacing:0;
}

.card-friend-titlebar { height:48px; }
.card-friend-titlebar strong { font-size:15px; }
.card-friend-alert { height:42px; }
.card-friend-content { margin:12px 12px 68px; min-height:calc(100vh - 176px); border:1px solid #e8e8e8; }
.card-friend-filters { height:58px; }
.card-friend-table th { font-size:14px; font-weight:600; }
.card-friend-table td { height:68px; }
.card-friend-batch { position:fixed; z-index:30; left:calc(var(--sidebar-width,220px) + 12px); right:12px; bottom:0; height:56px; padding:0 20px; }
.card-friend-batch > div { flex:1; }
.card-friend-dialog { overflow:hidden; }
.card-friend-form { padding:24px 36px 12px; }
.card-friend-form > label { grid-template-columns:160px minmax(0,1fr); }
.card-friend-accept-dialog > section { padding:26px 36px 30px; }
.card-friend-stat-shell { margin:12px; border:1px solid #e8e8e8; }

@media (max-width:1260px) {
  .new-fan-picker-body { grid-template-columns:minmax(380px,1.3fr) 220px 230px; }
  .live-code-card { grid-template-columns:24px 64px minmax(180px,1fr) minmax(300px,1.2fr) 220px; }
}

/* V1.6 页面密度与线上结构对齐 */
.live-code-page-head {
  justify-content:space-between;
  padding:0 14px;
}
.live-code-head-main {
  min-width:0;
  display:flex;
  align-items:center;
  gap:18px;
}
.live-code-page-head .live-code-action-left {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.live-code-page-head .live-code-action-left .outline-button {
  min-width:82px;
  height:34px;
  padding:0 14px;
  border-color:#d9d9d9;
  color:#555;
  background:#fff;
  transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease;
}
.live-code-page-head .live-code-action-left .outline-button:hover {
  border-color:#8bcf78;
  color:var(--green);
  background:#f8fcf6;
}
.live-code-page-head .live-code-action-left .outline-button:active {
  border-color:var(--green);
  background:#f1f8ed;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.live-code-page-head .live-code-action-left .outline-button:focus-visible {
  outline:0;
  border-color:var(--green);
  box-shadow:0 0 0 2px rgba(45,171,17,.1);
}
.live-invite-settings { padding:22px 24px; }
.live-invite-row { min-height:62px; display:flex; align-items:flex-start; justify-content:space-between; gap:28px; }
.live-invite-row > div { min-width:0; }
.live-invite-row strong { display:block; margin-bottom:8px; color:#444; font-size:14px; font-weight:500; }
.live-invite-settings .live-invite-row p { margin:0; color:#999; font-size:13px; line-height:1.6; }
.live-invite-row > .switch { flex:0 0 auto; margin-top:2px; }
.live-code-list-shell {
  margin:12px;
  border:0;
}
.live-code-filters {
  height:54px;
  min-height:54px;
  padding:10px 12px;
  flex-wrap:nowrap;
}
.live-code-new-wrap { flex:0 0 auto; }
.live-code-new-wrap .primary-button {
  min-width:78px;
  height:32px;
  padding:0 15px;
}
.live-code-new-menu {
  top:38px;
  right:auto;
  left:0;
  width:402px;
  padding:12px;
  border:1px solid #e5e5e5;
  border-radius:4px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  background:#fff;
  box-sizing:border-box;
}
.live-code-new-menu button {
  width:100%;
  min-height:72px;
  display:block;
  padding:14px 16px 13px;
  border:1px solid #e5e5e5;
  border-radius:4px;
  text-align:left;
  background:#fff;
  cursor:pointer;
  box-sizing:border-box;
}
.live-code-new-menu button + button {
  margin-top:10px;
}
.live-code-new-menu button:hover,
.live-code-new-menu button.active {
  border-color:var(--green);
  background:#fbfff9;
}
.live-code-new-menu strong {
  display:block;
  margin:0 0 7px;
  color:#333;
  font-size:14px;
  font-weight:600;
  line-height:20px;
}
.live-code-new-menu span {
  display:block;
  margin:0;
  color:#777;
  font-size:13px;
  line-height:22px;
}
.live-code-filters .search-control { width:188px; flex-basis:188px; }
.live-code-filter-select { width:112px; flex:0 0 112px; position:relative; }
.live-code-filter-select.builder { width:146px; flex-basis:146px; }
.live-code-filter-select.creator { width:138px; flex-basis:138px; }
.live-code-filter-select .shared-select-trigger { height:34px; padding:0 9px 0 11px; color:#999; font-size:13px; font-weight:400; line-height:32px; }
.live-code-filter-select.has-value .shared-select-trigger { color:#555; }
.live-code-filter-select.open .shared-select-trigger { color:#555; }
.live-code-filter-select .shared-select-menu { top:36px; z-index:500; max-height:244px; overflow-y:auto; padding:0; border-radius:2px; }
.live-code-filter-select.builder .shared-select-menu { width:210px; }
.live-code-filter-select .shared-select-menu button { height:36px; padding:0 11px; color:#666; font-size:13px; font-weight:400; line-height:36px; }
.live-code-filter-select.builder em { color:#f59a23; font-style:normal; font-weight:400; }
.live-code-filter-select .shared-select-menu button:hover { color:#555; background:#f4f8f1; }
.live-code-filter-select .shared-select-menu button.active { color:var(--green); background:#eaf4e5; }
.live-code-filters .live-code-date { width:224px; height:32px; flex:0 0 224px; position:relative; overflow:visible; box-sizing:border-box; border-color:#d9d9d9; }
.live-code-date > button { width:100%; height:30px; display:grid; grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 16px; align-items:center; padding:0 6px 0 10px; border:0; color:#999; font:400 13px/30px inherit; background:#fff; cursor:pointer; }
.live-code-date > button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; font-size:13px; font-weight:400; }
.live-code-date > button b { color:#aaa; font-weight:400; text-align:center; }
.live-code-date > button i { width:13px; height:13px; justify-self:end; background:#999; mask:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='3' width='10' height='9' rx='1' stroke='black'/%3E%3Cpath d='M4 1.5V4M10 1.5V4M2 5.5H12' stroke='black' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.live-code-date.has-value > button { color:#555; }
.live-code-date:focus-within { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.live-code-filters .search-control input { color:#555; font-size:13px; font-weight:400; }
.live-code-filters .search-control input::placeholder { color:#aaa; opacity:1; }
.live-code-date-panel { width:560px; position:absolute; z-index:520; top:35px; left:0; display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:12px 14px 16px; border:1px solid #e5e5e5; border-radius:3px; box-shadow:0 6px 18px rgba(0,0,0,.14); background:#fff; box-sizing:border-box; }
.live-code-date-panel.hidden { display:none; }
.live-code-date-panel section { min-width:0; }
.live-code-date-panel header { height:28px; display:grid; grid-template-columns:28px 1fr 28px; align-items:center; color:#333; font-size:14px; }
.live-code-date-panel header strong { text-align:center; font-weight:500; }
.live-code-date-panel header button { width:24px; height:24px; border:0; color:#aaa; background:transparent; font-size:18px; cursor:pointer; }
.live-code-date-panel .date-days button.range-end { color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.live-code-date-panel .date-days button.in-range { background:#f1f8ed; }
.live-code-date-panel .live-code-date-clear { position:absolute; right:12px; bottom:4px; border:0; color:#999; background:transparent; font-size:12px; cursor:pointer; }
.live-code-card {
  min-height:0;
  display:block;
  padding:0;
  margin-bottom:10px;
  border:1px solid #e8e8e8;
}
.live-code-cards { padding:10px 12px 0; }
.live-code-card-top {
  min-height:94px;
  display:grid;
  grid-template-columns:66px minmax(210px,1fr) minmax(430px,1.55fr);
  align-items:center;
  gap:8px;
  padding:9px 12px;
  box-sizing:border-box;
}
.live-code-card-top .live-code-qr { width:58px; height:58px; }
.live-code-main { align-self:center; }
.live-code-name strong { font-size:14px; font-weight:500; }
.live-code-state { margin:5px 0 4px; }
.live-code-main p { margin:0; font-size:12px; }
.live-code-metrics {
  min-height:54px;
  display:grid;
  grid-template-columns:repeat(4,minmax(92px,1fr));
  align-items:center;
}
.live-code-metrics div {
  min-height:50px;
  padding:0 14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-left:1px solid #eee;
}
.live-code-metrics dt { margin-bottom:5px; color:#888; font-weight:400; }
.live-code-metrics dd { display:flex; align-items:baseline; gap:8px; }
.live-code-metrics dd b { color:#333; font-size:18px; font-weight:400; }
.live-code-metrics dd small { color:#999; font-size:12px; }
.live-code-row-actions {
  height:42px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #f0f0f0;
  background:#f7f7f7;
  box-sizing:border-box;
}
.live-code-row-actions > div {
  display:flex;
  align-items:center;
  gap:8px;
}
.live-code-row-actions button {
  height:27px;
  padding:0 8px;
  border:1px solid #ddd;
  border-radius:2px;
  color:#555;
  font-size:13px;
  background:#fff;
}
.live-code-row-actions button.live-code-toggle.start {
  border-color:#9bd38f;
  color:#289b18;
  background:#f6fff4;
}
.live-code-row-actions button.live-code-toggle.pause {
  border-color:#e7c69a;
  color:#b66a14;
  background:#fffaf2;
}
.live-code-row-actions button.live-code-toggle:disabled {
  border-color:#ddd;
  color:#bbb;
  background:#f5f5f5;
  cursor:not-allowed;
}
.live-code-row-actions button:disabled { color:#bbb; background:#f5f5f5; }
.live-code-row-actions button.muted { color:#777; }

.new-fan-page { font-size:13px; }
.new-fan-head { padding:0 14px; }
.new-fan-head .shared-config-actions { white-space:nowrap; }
.new-fan-alert {
  min-height:40px;
  margin:10px 12px;
}
.new-fan-form-shell { width:min(1000px,calc(100% - 24px)); }
.new-fan-card { margin-bottom:12px; }
.new-fan-section-title {
  height:44px;
  padding:0 18px;
  font-size:14px;
}
.new-fan-field {
  min-height:54px;
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  align-items:start;
  padding:9px 20px;
}
.new-fan-field > label {
  width:112px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-top:0;
  line-height:20px;
}
.new-fan-field > div { min-height:34px; align-content:center; }
.new-fan-radio { min-height:34px; }
.new-fan-dependent { margin-top:8px; }
.new-fan-source-options {
  min-height:54px;
  align-items:center;
  justify-content:flex-start;
  padding:10px 16px;
}
.new-fan-source-options b,
.new-fan-source-options label,
.new-fan-source-options span {
  height:34px;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  line-height:34px;
  box-sizing:border-box;
}
.new-fan-source-options b {
  margin-right:8px;
}
.new-fan-source-options label {
  margin-right:8px;
}
.new-fan-sleep-field > div {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  column-gap:10px;
}
.new-fan-sleep-field .new-fan-switch,
.new-fan-sleep-field > div > small {
  height:34px;
  min-height:34px;
  display:flex;
  align-items:center;
  box-sizing:border-box;
}
.new-fan-sleep-field .new-fan-switch { margin:0; }
.new-fan-sleep-field .new-fan-sleep-time {
  grid-column:1 / -1;
}
.new-fan-source-options {
  display:grid;
  grid-template-columns:96px repeat(5,max-content);
  align-items:center;
  column-gap:10px;
  row-gap:0;
}
.new-fan-source-options b,
.new-fan-source-options label {
  width:auto;
  min-width:0;
  margin:0;
}
.new-fan-source-options b { justify-content:flex-end; }
.new-fan-source-options label { justify-content:flex-start; }
.new-fan-field small { font-size:12px; }

.card-friend-page { font-size:13px; }
.card-friend-titlebar { padding:0 14px; }
.card-friend-alert { padding:0 14px; }
.card-friend-content {
  margin:12px 12px 64px;
  border:0;
}
.card-friend-filters {
  height:54px;
  padding:0 12px;
  gap:9px;
}
.card-friend-filters .search-control { width:200px; }
.card-friend-filters select { width:128px; }
.card-friend-table th {
  height:42px;
  font-size:13px;
  font-weight:600;
}
.card-friend-table td {
  height:62px;
  padding:7px 12px;
}
.card-friend-account .wx-avatar { width:38px; height:38px; }
.card-friend-batch { height:52px; min-height:52px; }

.card-friend-filters .search-control { width:220px; }
.card-friend-form > label { grid-template-columns:var(--card-friend-label-width) minmax(0,1fr); }
.card-friend-delete-form > label,
.card-friend-delete-tags > label {
  grid-template-columns:86px minmax(0,1fr);
}
.card-friend-setting-form > label {
  grid-template-columns:112px minmax(0,1fr);
}

@media (max-width:1260px) {
  .live-code-card-top {
    grid-template-columns:70px minmax(190px,.85fr) minmax(390px,1.45fr);
  }
  .live-code-metrics div { padding:0 10px; }
  .live-code-row-actions { padding-left:14px; }
  .live-code-row-actions > div { gap:8px; }
}

/* 全站页面级标题与内容区统一采用紧凑的 8px 纵向节奏。 */
:root {
  --feature-edge:12px;
  --feature-gap:8px;
  --feature-head-height:48px;
}

:is(
  .room-page-head,
  .room-subpage-head,
  .managed-wechat-head,
  .corp-page-head
) {
  width:auto;
  min-height:var(--feature-head-height);
  height:var(--feature-head-height);
  margin-left:0;
  margin-right:0;
  margin-bottom:var(--feature-gap);
  box-sizing:border-box;
  background:#fff;
}

:is(
  .friend-subpage-head,
  .room-tag-head,
  .smart-tag-head,
  .customer-page-head,
  .customer-subpage-head,
  .live-code-page-head,
  .live-code-subhead,
  .new-fan-head,
  .new-fan-subhead,
  .card-friend-titlebar
) {
  width:auto;
  min-height:var(--feature-head-height);
  height:var(--feature-head-height);
  margin-left:var(--feature-edge);
  margin-right:var(--feature-edge);
  margin-bottom:var(--feature-gap);
  box-sizing:border-box;
  background:#fff;
}

/* 标题下方的首屏内容只保留一档间距，避免双重 margin 叠加。 */
.live-code-list-shell,
.card-friend-content,
.card-friend-stat-shell,
.new-fan-alert {
  margin-top:0;
}

/* 托管企微号：标题、分组与列表使用同一起始线。 */
.managed-wechat-page {
  padding:12px 16px 16px;
}
.managed-wechat-head {
  padding:0 16px;
  border-color:#e6e6e6;
}

/* V1.10 单向好友：主列表铺满容器，列宽保持紧凑分配。 */
.dead-friend-table {
  width:100%;
  min-width:1120px;
  max-width:none;
  table-layout:fixed;
}
.dead-friend-table th,
.dead-friend-table td {
  padding-right:10px;
  padding-left:10px;
}
.dead-friend-table th:first-child,
.dead-friend-table td:first-child {
  width:44px;
}
.dead-friend-table th:nth-child(2) {
  width:27%;
}
.dead-friend-table th:nth-child(3),
.dead-friend-table th:nth-child(4),
.dead-friend-table th:nth-child(5),
.dead-friend-table th:nth-child(6) {
  width:9%;
}
.dead-friend-table th:nth-child(7) {
  width:252px;
}
.dead-friend-table th:last-child,
.dead-friend-table td:last-child {
  padding-right:10px;
}
.dead-friend-actions {
  flex-wrap:nowrap;
  gap:0 12px;
  white-space:nowrap;
}
.dead-friend-actions button,
.dead-friend-actions button:last-child {
  flex:0 0 auto;
  justify-content:flex-end;
}
.dead-friend-actions button[data-card-friend-cancel-row] {
  color:#999;
}
.dead-friend-actions button[data-card-friend-delete-row] {
  color:var(--green);
}
.dead-friend-actions button[data-card-friend-single] {
  color:var(--green);
}
.dead-friend-table td:last-child .dead-friend-actions button[data-card-friend-cancel-row] {
  color:#999;
}
.dead-friend-table td:last-child .dead-friend-actions button[data-card-friend-delete-row] {
  color:var(--green);
}
.dead-friend-table td:last-child .dead-friend-actions button[data-card-friend-single] {
  color:var(--green);
}
.managed-wechat-summary {
  gap:18px;
}
.managed-wechat-layout {
  grid-template-columns:240px minmax(0,1fr);
  gap:10px;
}
.managed-wechat-groups {
  padding:10px;
}
.managed-wechat-group-search {
  margin-bottom:10px;
}
.managed-wechat-group-list {
  gap:4px;
}
.managed-wechat-group-row,
.managed-wechat-group-main {
  height:38px;
}
.managed-wechat-toolbar {
  height:50px;
  padding:8px 12px;
  gap:9px;
}
.managed-wechat-table th {
  height:42px;
  padding-left:12px;
  padding-right:12px;
}
.managed-wechat-table td {
  height:62px;
  padding:8px 12px;
}
.managed-wechat-batchbar {
  height:46px;
  padding:0 12px;
}

/* 企业管理：标题和表格各自留白，不紧贴页面边缘。 */
.corp-page {
  padding:12px 16px 16px;
}
.corp-page-head {
  padding:0 16px;
}
.corp-table-wrap {
  margin:0;
  padding:8px 16px 16px;
}
.corp-table th,
.corp-table td {
  padding-left:18px;
  padding-right:18px;
}

/* 群活码列表独立滚动，标题、筛选与分页保持可见。 */
.live-code-page.live-code-list-scroll {
  height:calc(100vh - 48px);
  min-height:0;
  overflow:hidden;
}
.live-code-page.live-code-list-scroll #liveCodeRoot {
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.live-code-page.live-code-list-scroll .live-code-page-head,
.live-code-page.live-code-list-scroll .live-code-filters {
  flex:0 0 auto;
}
.live-code-page.live-code-list-scroll .live-code-list-shell {
  min-height:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.live-code-page.live-code-list-scroll .live-code-scroll-body {
  min-height:0;
  flex:1 1 auto;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-gutter:stable;
}
.live-code-page.live-code-list-scroll .live-code-cards {
  min-height:0;
  overflow:visible;
}
.live-code-page.live-code-list-scroll [data-live-pagination] {
  position:static;
}

/* 普通群活码 - 第一步基础设置 */
.live-code-wizard-head {
  height:48px;
  padding:0 16px;
  border-bottom:1px solid #e6e6e6;
  background:#fff;
}
body.live-code-wizard-mode {
  --sidebar-width:226px;
}
body.live-code-wizard-mode .global-header {
  display:flex;
}
body.live-code-wizard-mode .sidebar {
  display:block;
}
body.live-code-wizard-mode .app-shell {
  min-height:calc(100vh - 48px);
  display:grid;
}
body.live-code-wizard-mode .workspace {
  width:auto;
  min-height:calc(100vh - 48px);
  padding-bottom:0;
}
body.live-code-wizard-mode .live-code-page {
  min-height:calc(100vh - 48px);
}
.live-code-wizard-title { gap:10px; }
.live-code-wizard-title strong {
  font-size:14px;
  font-weight:500;
}

/* V1.7: 主菜单与内容区独立滚动，页面级功能标题统一吸顶。 */
html,
body {
  height:100%;
  overflow:hidden;
}
.app-shell {
  height:calc(100vh - 48px);
  min-height:0;
}
.sidebar {
  min-height:0;
  overflow:hidden;
}
.side-nav {
  height:100%;
  overscroll-behavior:contain;
}
.workspace {
  height:100%;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
:is(
  .friend-subpage-head,
  .room-tag-head,
  .smart-tag-head,
  .customer-page-head,
  .customer-subpage-head,
  .live-code-page-head,
  .live-code-subhead,
  .new-fan-head,
  .new-fan-subhead,
  .card-friend-titlebar
) {
  position:sticky;
  z-index:45;
  top:0;
  box-shadow:0 2px 5px rgba(0,0,0,.04);
}

/* 接受新客户：减少空白并统一字段、控件和联动区域的视觉节奏。 */
.new-fan-alert {
  min-height:38px;
  margin-bottom:8px;
  padding-top:7px;
  padding-bottom:7px;
}
.new-fan-form-shell {
  width:min(1160px,calc(100% - 24px));
}
.new-fan-card { margin-bottom:10px; }
.new-fan-section-title {
  height:42px;
  padding:0 16px;
}
.new-fan-field {
  min-height:46px;
  grid-template-columns:104px minmax(0,1fr);
  padding:6px 18px;
}
.new-fan-field > label {
  width:104px;
  height:32px;
  margin:0;
}
.new-fan-field > div {
  min-height:32px;
  gap:8px;
}
.new-fan-field > label,
.new-fan-field > div > span,
.new-fan-field > div > small,
.new-fan-radio,
.new-fan-number,
.new-fan-recommend {
  height:32px;
  min-height:32px;
  align-items:center;
  box-sizing:border-box;
  line-height:20px;
}
.new-fan-field > div > span,
.new-fan-field > div > small {
  display:inline-flex;
}
.new-fan-field > div:not(:has(.new-fan-dependent:not(.hidden))):not(:has(.new-fan-sleep-time)) {
  height:32px;
}
.new-fan-radio {
  min-height:32px;
  margin:0 12px 0 0;
}
.new-fan-number,
.new-fan-sleep-time input {
  height:32px;
}
.new-fan-recommend { height:32px; }
.new-fan-dependent {
  margin-top:4px;
  padding:8px 12px;
}
.new-fan-source-options { min-height:46px; padding:6px 12px; }
.new-fan-text-options { min-height:54px; padding:8px 12px; }
.new-fan-sleep-field .new-fan-switch,
.new-fan-sleep-field > div > small {
  height:32px;
  min-height:32px;
}
.new-fan-sleep-field .new-fan-sleep-time { margin-top:4px; padding:8px 12px; }
.live-code-wizard-head .live-code-steps {
  width:430px;
  height:48px;
}
.live-code-wizard-head .live-code-steps li {
  width:143px;
  height:48px;
  gap:8px;
}
.live-code-wizard-head .live-code-steps li:not(:last-child)::after {
  top:24px;
  left:92px;
  width:54px;
  border-top-color:#ddd;
}
.live-code-wizard-head .live-code-steps li b {
  flex:0 0 24px;
  width:24px;
  height:24px;
  border:1px solid #d6d6d6;
  border-radius:50%;
  color:#999;
  background:#fff;
  font-size:13px;
  font-weight:400;
  line-height:22px;
  box-sizing:border-box;
  text-align:center;
}
.live-code-wizard-head .live-code-steps li.active b {
  border-color:var(--green);
  color:#fff;
  background:var(--green);
}
.live-code-wizard-head .live-code-steps li span {
  color:#999;
  font-size:14px;
}
.live-code-wizard-head .live-code-steps li.active span {
  color:#333;
}
.live-code-create-shell.is-basic-step {
  width:min(1100px,calc(100vw - 240px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-basic-step .live-code-create-body {
  min-height:290px;
  padding:0;
  background:#fff;
}
.live-code-create-shell.is-basic-step .live-code-basic-form {
  width:100%;
  display:block;
  max-width:none;
  margin:0;
}
.live-code-create-shell.is-basic-step .live-code-basic-form section {
  min-height:290px;
  margin:0;
  border:0;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-basic-step .live-code-basic-form section > h3 {
  height:54px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:14px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-basic-step .live-code-basic-fields {
  padding:24px 24px 28px;
}
.live-code-create-shell.is-basic-step .live-code-basic-fields > label {
  min-height:42px;
  margin:0 0 10px;
  align-items:center;
}
.live-code-create-shell.is-basic-step .live-code-basic-fields > label > span {
  flex:0 0 120px;
  width:120px;
  padding:0;
  color:#333;
  text-align:left;
}
.live-code-create-shell.is-basic-step .live-code-name-field input,
.live-code-create-shell.is-basic-step .live-code-name-field input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:400px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  box-sizing:border-box;
}
.live-code-create-shell.is-basic-step .live-code-name-field input::placeholder {
  color:#bbb;
}
.live-code-create-shell.is-basic-step .live-code-logo-field {
  align-items:flex-start;
  margin-top:0;
}
.live-code-create-shell.is-basic-step .live-code-logo-field > span {
  padding-top:10px;
}
.live-code-create-shell.is-basic-step .live-code-logo-control {
  gap:10px;
}
.live-code-create-shell.is-basic-step .live-logo-upload {
  width:104px;
  height:104px;
  border:1px dashed #ddd;
  border-radius:0;
  gap:7px;
  color:#333;
  background:#fff;
}
.live-code-create-shell.is-basic-step .live-logo-upload i {
  color:#666;
  font-size:22px;
  line-height:20px;
}
.live-code-create-shell.is-basic-step .live-logo-upload b {
  color:#333;
  font-size:14px;
  font-weight:400;
}
.live-code-create-shell.is-basic-step .live-code-logo-control p {
  margin:0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-basic-step .live-code-create-footer {
  left:0;
  height:56px;
  border-top:1px solid #ddd;
  background:#fff;
}
.live-code-create-shell.is-basic-step .live-code-create-footer .primary-button {
  min-width:74px;
  height:32px;
  padding:0 16px;
}

/* 分组群活码 - 第二步扫码页设置 */
.live-code-create-shell.is-group-scan-step {
  width:min(1100px,calc(100vw - 240px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-group-scan-step .live-code-create-body {
  min-height:704px;
  padding:0;
  background:transparent;
}
.live-code-group-scan-scope {
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:78px;
  margin:0 0 10px;
  border-radius:3px;
  background:#fff;
}
.live-code-group-scan-scope button {
  min-width:176px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 18px;
  border:0;
  border-radius:6px;
  color:#666;
  background:transparent;
  font-size:14px;
}
.live-code-group-scan-scope button i {
  width:14px;
  height:14px;
  border:1px solid #d8d8d8;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
}
.live-code-group-scan-scope button.active {
  color:#555;
  background:#f3f3f3;
}
.live-code-group-scan-scope button.active i {
  border:4px solid var(--green);
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form {
  width:100%;
  min-height:642px;
  display:grid;
  grid-template-columns:minmax(0,710px) 390px;
  gap:0;
  align-items:stretch;
  margin:0;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-scan-settings {
  min-height:642px;
  border:0;
  border-right:1px solid #eee;
}
.live-code-create-shell.is-group-scan-step .live-code-scan-preview {
  min-height:642px;
  border:0;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-scan-settings > h3,
.live-code-create-shell.is-group-scan-step .live-code-scan-preview > h3 {
  height:56px;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:15px;
  font-weight:600;
}
.live-code-create-shell.is-group-scan-step .live-code-scan-fields {
  padding:16px;
}
.live-code-create-shell.is-group-scan-step .live-code-field-row {
  min-height:52px;
  grid-template-columns:104px 360px;
  column-gap:16px;
}
.live-code-create-shell.is-group-scan-step .live-code-field-row > span {
  color:#444;
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-field-row > input {
  width:360px;
  height:32px;
  min-height:32px;
  padding:0 12px;
}
.live-code-create-shell.is-group-scan-step .live-code-mode-switch button {
  min-width:88px;
  height:34px;
  border-radius:3px;
}
.live-code-create-shell.is-group-scan-step .live-code-mode-switch button + button {
  margin-left:8px;
}
.live-code-create-shell.is-group-scan-step .live-code-upload-row {
  min-height:260px;
  padding-top:2px;
  align-items:start;
}
.live-code-create-shell.is-group-scan-step .live-code-upload-row > span {
  padding-top:11px;
}
.live-code-create-shell.is-group-scan-step .live-logo-upload {
  width:104px;
  height:104px;
  border-radius:0;
}
.live-code-create-shell.is-group-scan-step .live-code-poster-help {
  margin:11px 0 0;
  padding-left:0;
  color:#999;
  line-height:22px;
  list-style-position:inside;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-device {
  width:356px;
  margin:0 auto;
  padding-top:0;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-status {
  height:40px;
  padding:0 8px;
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-status b {
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-bar {
  height:40px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 34px;
  align-items:center;
  padding:0 8px;
  border-bottom:1px solid #e5e5e5;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-bar b {
  font-size:28px;
  text-align:left;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-bar em {
  overflow:hidden;
  color:#666;
  font-style:normal;
  font-size:14px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-code-create-shell.is-group-scan-step .live-code-preview-bar span {
  color:#111;
  font-size:20px;
  letter-spacing:2px;
  text-align:right;
}
.live-code-create-shell.is-group-scan-step .live-code-poster-stage {
  height:484px;
  overflow:hidden;
  background:#f3f6ff;
}
.live-code-create-shell.is-group-scan-step .live-code-poster-qr {
  right:0;
  bottom:0;
  left:auto;
  width:200px;
  height:200px;
  border:1px dashed #e5e5e5;
  background:#fff;
  transform:none;
}
.live-code-create-shell.is-group-scan-step .live-code-create-footer {
  left:0;
  height:56px;
  border-top:1px solid #ddd;
  background:#fff;
}

/* 普通群活码 - 第二步标准模式 */
body.live-code-wizard-mode .live-code-create-footer {
  left:var(--sidebar-width);
  height:48px;
  gap:10px;
  border-top:1px solid #ddd;
  background:#fff;
}
body.live-code-wizard-mode .live-code-create-footer button {
  min-width:74px;
  height:32px;
  padding:0 16px;
}
.live-code-create-shell.is-scan-step {
  width:min(1100px,calc(100vw - 288px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-scan-step .live-code-create-body {
  min-height:555px;
  padding:0;
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-standard-form {
  width:100%;
  min-height:555px;
  display:grid;
  grid-template-columns:710px 390px;
  gap:0;
  max-width:none;
  margin:0;
  align-items:stretch;
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-scan-settings {
  min-height:555px;
  margin:0;
  border:0;
  border-right:1px solid #eee;
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-scan-preview {
  min-height:555px;
  margin:0;
  border:0;
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-scan-settings > h3,
.live-code-create-shell.is-scan-step .live-code-scan-preview > h3 {
  height:58px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:15px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-scan-step .live-code-scan-fields {
  padding:16px 16px 12px;
}
.live-code-create-shell.is-scan-step .live-code-field-row {
  min-height:52px;
  display:grid;
  grid-template-columns:104px 360px;
  align-items:center;
  column-gap:16px;
}
.live-code-create-shell.is-scan-step .live-code-field-row > span {
  color:#444;
  font-size:14px;
  text-align:left;
}
.live-code-create-shell.is-scan-step .live-code-field-row > input,
.live-code-create-shell.is-scan-step .live-code-field-row > input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:360px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-scan-step .live-code-field-row > input::placeholder {
  color:#bbb;
}
.live-code-create-shell.is-scan-step .live-code-mode-switch button {
  min-width:88px;
  height:32px;
  padding:0 14px;
  border-radius:0;
  font-size:14px;
}
.live-code-create-shell.is-scan-step .live-code-mode-switch button:first-child {
  border-radius:3px 0 0 3px;
}
.live-code-create-shell.is-scan-step .live-code-mode-switch button:last-child {
  border-radius:0 3px 3px 0;
}
.live-code-create-shell.is-scan-step .live-code-mode-switch button.active {
  border-color:var(--green);
  color:var(--green);
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-inline-check {
  height:24px;
  gap:8px;
  color:#555;
  font-size:14px;
}
.live-code-create-shell.is-scan-step .live-code-inline-check input {
  width:16px;
  height:16px;
  margin:0;
}
.live-code-create-shell.is-scan-step .live-code-upload-row {
  min-height:154px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-scan-step .live-code-upload-row > span {
  padding-top:12px;
}
.live-code-create-shell.is-scan-step .live-code-upload-control {
  align-items:flex-start;
}
.live-code-create-shell.is-scan-step .live-code-upload-control .live-logo-upload {
  width:104px;
  height:104px;
  border:1px dashed #ddd;
  border-radius:0;
  color:#333;
  background:#fff;
}
.live-code-create-shell.is-scan-step .live-code-upload-control p {
  margin:9px 0 0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-scan-step .live-code-more-settings {
  width:100%;
  margin:0;
  border-top:1px solid #eee;
}
.live-code-create-shell.is-scan-step .live-code-more-settings summary {
  height:36px;
  margin:0;
  justify-content:center;
  color:#777;
  font-size:13px;
}
.live-code-create-shell.is-scan-step .live-code-preview-device {
  width:356px;
  margin:0 auto;
  padding-top:12px;
}
.live-code-create-shell.is-scan-step .live-code-preview-status {
  height:30px;
  padding:0 8px;
  font-size:14px;
  font-weight:600;
}
.live-code-create-shell.is-scan-step .live-code-preview-status span {
  color:#111;
  font-size:15px;
  letter-spacing:0;
}
.live-code-create-shell.is-scan-step .live-code-preview-bar {
  height:42px;
  padding:0 8px;
  border-bottom:1px solid #eee;
}
.live-code-create-shell.is-scan-step .live-code-preview-stage {
  min-height:376px;
  padding:20px;
  background:#f4f6ff;
}
.live-code-create-shell.is-scan-step .live-code-preview-card {
  min-height:334px;
  padding:54px 20px 26px;
  border-radius:7px;
  box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.live-code-create-shell.is-scan-step .live-code-preview-card img {
  width:202px;
  height:202px;
}
.live-code-create-shell.is-scan-step .live-code-preview-card p {
  margin:18px 0 0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-scan-step .live-code-preview-note {
  margin:16px 0 0;
  color:#999;
  font-size:13px;
  text-align:center;
}

/* 普通群活码 - 第二步海报模式 */
.live-code-create-shell.is-scan-step .live-code-poster-form,
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-scan-settings,
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-scan-preview {
  min-height:688px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-scan-fields {
  padding:16px 16px 12px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-poster-upload-row {
  min-height:190px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-poster-upload-row > span {
  padding-top:12px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-poster-help {
  margin:10px 0 0;
  padding-left:0;
  list-style-position:inside;
  color:#999;
  font-size:13px;
  line-height:22px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-preview-device {
  width:356px;
  margin:0 auto;
  padding-top:12px;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-preview-bar em {
  display:none;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-poster-stage {
  position:relative;
  width:356px;
  height:540px;
  min-height:540px;
  padding:0;
  background:#f4f6ff;
  box-sizing:border-box;
}
.live-code-create-shell.is-scan-step .live-code-poster-form .live-code-poster-qr {
  position:absolute;
  right:0;
  bottom:0;
  left:auto;
  width:200px;
  height:200px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed #e1e1e1;
  color:#777;
  background:#fff;
  font-size:13px;
  transform:none;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-poster-qr.is-transformable {
  right:auto;
  bottom:auto;
  left:0;
  top:0;
  padding:7px;
  border:0;
  color:transparent;
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.14);
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-poster-qr.is-transformable.dragging { cursor:grabbing; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-poster-qr.is-transformable > img {
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  pointer-events:none;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-poster-qr.is-transformable > button {
  width:16px;
  height:16px;
  position:absolute;
  right:-8px;
  bottom:-8px;
  z-index:3;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  cursor:nwse-resize;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-poster-drag-tip {
  position:absolute;
  left:0;
  right:0;
  bottom:14px;
  color:#999;
  font-size:12px;
  text-align:center;
  pointer-events:none;
}

/* 普通群活码 - 第三步群和规则设置 */
.live-code-create-shell.is-rule-step {
  width:min(1100px,calc(100vw - 266px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-rule-step .live-code-create-body {
  min-height:480px;
  padding:0;
  background:#fff;
}
.live-code-create-shell.is-rule-step .live-code-rule-form {
  width:100%;
  display:block;
  max-width:none;
  margin:0;
  background:#fff;
}
.live-code-create-shell.is-rule-step .live-code-rule-panel {
  min-height:480px;
  margin:0;
  border:0;
  background:#fff;
}
.live-code-create-shell.is-rule-step .live-code-rule-panel > h3 {
  height:56px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:14px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-content {
  padding:22px 24px 28px;
}
.live-code-create-shell.is-rule-step .live-code-rule-block + .live-code-rule-block {
  margin-top:22px;
}
.live-code-create-shell.is-rule-step .live-code-rule-heading {
  height:44px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-left:3px solid var(--green);
  border-radius:3px;
  color:#333;
  background:#f5f5f5;
  font-size:15px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-heading.live-code-rule-check-heading {
  justify-content:flex-start;
}
.live-code-create-shell.is-rule-step .live-code-rule-check-heading label {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
  line-height:20px;
}
.live-code-create-shell.is-rule-step .live-code-rule-check-heading input,
.live-code-create-shell.is-rule-step .live-code-rule-form input[type="radio"],
.live-code-create-shell.is-rule-step .live-code-rule-form input[type="checkbox"] {
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  accent-color:var(--green);
}
.live-code-create-shell.is-rule-step .live-code-rule-row {
  min-height:52px;
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  align-items:center;
  column-gap:12px;
  padding:0;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-group-row {
  min-height:62px;
  display:flex;
  gap:10px;
  padding-top:6px;
}
.live-code-create-shell.is-rule-step .live-code-rule-label {
  width:112px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
  color:#333;
  font-size:14px;
  text-align:left;
  white-space:nowrap;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-label .live-code-help {
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-color:#aaa;
  color:#888;
  font-size:11px;
  line-height:1;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-label .live-code-help:hover,
.live-code-create-shell.is-rule-step .live-code-rule-label .live-code-help:focus-visible {
  border-color:var(--green);
  color:var(--green);
}
.live-code-create-shell.is-rule-step .live-code-pick-group-button {
  min-width:100px;
  height:40px;
  padding:0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ddd;
  border-radius:2px;
  color:#666;
  background:#fff;
  font-size:14px;
}
.live-code-create-shell.is-rule-step .live-code-pick-group-button:hover {
  border-color:var(--green);
  color:var(--green);
  background:#fbfff9;
}
.live-code-create-shell.is-rule-step .live-code-rule-selected {
  max-width:820px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.live-code-create-shell.is-rule-step .live-code-member-limit,
.live-code-create-shell.is-rule-step .live-code-member-limit:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:100px !important;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-order-radios {
  height:32px;
  gap:28px;
  color:#777;
}
.live-code-create-shell.is-rule-step .live-code-order-radios label,
.live-code-create-shell.is-rule-step .live-code-duplicate-check {
  height:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#777;
  line-height:20px;
}
.live-code-create-shell.is-rule-step .live-code-auto-create-fields {
  padding:14px 0 2px;
}
.live-code-create-shell.is-rule-step .live-code-auto-row {
  min-height:62px;
  display:grid;
  grid-template-columns:120px minmax(0,720px);
  align-items:center;
  column-gap:16px;
}
.live-code-create-shell.is-rule-step .live-code-auto-label {
  height:32px;
  display:flex;
  align-items:center;
  color:#333;
  font-size:14px;
  white-space:nowrap;
}
.live-code-create-shell.is-rule-step .live-code-auto-control {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.live-code-create-shell.is-rule-step .live-code-auto-picker {
  min-width:100px;
  height:40px;
  padding:0 16px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#666;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-auto-picker:hover {
  border-color:var(--green);
  color:var(--green);
}
.live-code-create-shell.is-rule-step .live-code-auto-selected {
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:8px 12px;
  border:1px solid #e5e5e5;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-auto-selected > span,
.live-code-create-shell.is-rule-step .live-code-name-rule-canvas > span {
  height:28px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 10px;
  border:1px solid #9bd486;
  border-radius:3px;
  color:var(--green);
  background:#f4fbf1;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-auto-selected > span button,
.live-code-create-shell.is-rule-step .live-code-name-rule-canvas > span button {
  width:14px;
  height:14px;
  padding:0;
  border:0;
  color:inherit;
  background:transparent;
  font-size:14px;
  line-height:12px;
}
.live-code-create-shell.is-rule-step .live-code-auto-name-row {
  min-height:214px;
  align-items:start;
  padding-top:8px;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-editor {
  width:100%;
  min-height:190px;
  border:1px solid #ddd;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar {
  height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 14px;
  border-bottom:1px solid #eee;
  background:#fafafa;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar > button {
  height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#666;
  background:#fff;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar > button:disabled {
  border-color:#e6e6e6;
  color:#aaa;
  background:#f5f5f5;
  cursor:not-allowed;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar label,
.live-code-create-shell.is-rule-step .live-code-trigger-rule {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:10px;
  color:#666;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar input,
.live-code-create-shell.is-rule-step .live-code-trigger-rule input,
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar input:not([type=radio]):not([type=checkbox]):not([type=color]),
.live-code-create-shell.is-rule-step .live-code-trigger-rule input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:108px !important;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-toolbar input:disabled {
  color:#aaa;
  background:#f5f5f5;
  cursor:not-allowed;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-canvas {
  min-height:132px;
  display:flex;
  align-items:flex-start;
  align-content:flex-start;
  flex-wrap:wrap;
  gap:10px;
  padding:18px;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-name-rule-canvas > span b { font-weight:400; }
.live-code-create-shell.is-rule-step .live-code-name-rule-canvas small { color:#aaa; }
.live-code-create-shell.is-rule-step .live-code-name-rule-empty {
  height:32px;
  padding:0 12px;
  border:1px dashed #cfdacb;
  border-radius:3px;
  color:var(--green);
  background:#f8fff6;
}
.live-code-dialog:has(.live-code-group-tag-action-body) {
  width:620px;
  max-width:calc(100vw - 32px);
}
.live-code-dialog .live-code-group-tag-action-body {
  min-height:180px;
  padding:10px 20px 4px;
  line-height:normal;
}
.live-code-dialog .live-code-group-tag-action-body .room-top-tag-list {
  max-height:390px;
  padding:0;
}
.live-code-dialog .live-code-group-tag-action-body .room-top-tag-list section {
  padding:10px 2px;
  border-bottom:1px solid #f0f0f0;
}
.live-code-dialog .live-code-group-tag-action-body .room-top-tag-list section:last-child { border-bottom:0; }
.live-code-dialog .live-code-group-tag-action-footer { justify-content:flex-start; }
.live-code-dialog .live-code-group-tag-action-footer > span {
  color:#666;
  font-size:13px;
}
.live-code-dialog .live-code-group-tag-action-footer > span b {
  color:var(--green);
  font-weight:400;
}
.live-code-dialog .live-code-group-tag-action-footer > .text-button {
  margin-right:auto;
  padding:0;
  border:0;
  color:var(--green);
  background:transparent;
}
.live-code-dialog .live-code-group-tag-action-footer > div {
  display:flex;
  gap:8px;
}
.live-code-create-shell.is-rule-step .live-code-auto-tag-row {
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-rule-step .live-code-auto-tag-check {
  height:32px;
  min-height:32px;
}
.live-code-create-shell.is-rule-step .live-code-auto-tags { min-height:44px; }
.live-code-rule-tag-picker {
  max-height:520px;
  padding:8px 20px 18px;
  overflow-y:auto;
}
.live-code-rule-tag-picker section {
  padding:14px 0;
  border-bottom:1px solid #eee;
}
.live-code-rule-tag-picker section > strong {
  display:block;
  margin-bottom:12px;
  color:#555;
}
.live-code-rule-tag-picker section > div {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.live-code-rule-tag-picker label {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:7px;
  color:#666;
}
.live-code-rule-tag-picker input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.live-code-create-shell.is-rule-step .live-code-create-footer {
  left:0;
  height:48px;
}

/* 分组群活码 - 第三步按分组设置群规则 */
.live-code-create-shell.is-rule-step .live-code-group-rule-layout {
  min-height:480px;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:8px;
  background:#f3f3f3;
}
.live-code-create-shell.is-rule-step .live-code-rule-group-nav {
  min-height:480px;
  padding:14px 12px;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-rule-step .live-code-rule-group-nav h4 {
  margin:0 0 14px;
  color:#999;
  font-size:14px;
  font-weight:400;
}
.live-code-create-shell.is-rule-step .live-code-rule-group-nav button {
  width:100%;
  height:32px;
  display:flex;
  align-items:center;
  padding:0 8px;
  border:0;
  border-radius:3px;
  color:#333;
  background:#fff;
  font-size:14px;
  text-align:left;
}
.live-code-create-shell.is-rule-step .live-code-rule-group-nav button.active {
  background:#edf4ff;
}

/* 分组群活码 - 第一步标准样式 */
.live-code-create-shell.is-group-basic-step {
  width:min(1100px,calc(100vw - 240px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-group-basic-step .live-code-create-body {
  min-height:690px;
  padding:0;
  background:transparent;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form {
  width:100%;
  display:grid;
  grid-template-columns:710px 390px;
  gap:12px 0;
  background:transparent;
}
.live-code-create-shell.is-group-basic-step .live-code-group-code-panel {
  grid-column:1 / -1;
  min-height:290px;
  margin:0 0 12px;
  border:0;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-code-panel > h3,
.live-code-create-shell.is-group-basic-step .live-code-group-settings > h3,
.live-code-create-shell.is-group-basic-step .live-code-group-preview > h3 {
  height:54px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:14px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-panel-body {
  padding:24px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field {
  min-height:52px;
  display:grid;
  grid-template-columns:120px 400px;
  align-items:center;
  column-gap:0;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field > label {
  color:#333;
  font-size:14px;
  text-align:left;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field > input,
.live-code-create-shell.is-group-basic-step .live-code-group-field > input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:400px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field > input::placeholder {
  color:#bbb;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-upload {
  min-height:144px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-upload > label {
  padding-top:12px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-upload {
  width:104px;
  height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px dashed #ddd;
  border-radius:0;
  color:#333;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-upload i {
  color:#666;
  font-style:normal;
  font-size:22px;
  line-height:20px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-upload span:not(.live-code-summer-art) {
  color:#333;
  font-size:14px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field p {
  margin:9px 0 0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-page-panel {
  grid-column:1 / -1;
  min-height:560px;
  display:grid;
  grid-template-columns:710px 390px;
  gap:0;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-settings {
  min-height:560px;
  border-right:1px solid #eee;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-settings-body {
  padding:20px 24px 28px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-settings .live-code-group-field {
  grid-template-columns:120px 400px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-template {
  display:flex;
  align-items:center;
  gap:18px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-template button {
  height:32px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  color:#555;
  background:transparent;
  font-size:14px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-template button i {
  width:16px;
  height:16px;
  border:1px solid #d8d8d8;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-template button.active i {
  border:4px solid var(--green);
}
.live-code-create-shell.is-group-basic-step .live-code-group-template button.active {
  color:#555;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-guide {
  min-height:162px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-guide > label {
  padding-top:12px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-guide-editor {
  width:400px;
  border:1px solid #ddd;
  border-radius:0;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-guide-editor > div {
  height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-guide-editor > div span {
  color:#777;
  font-size:20px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-guide-editor > div button {
  padding:0;
  border:0;
  color:var(--green);
  background:transparent;
}
.live-code-create-shell.is-group-basic-step .live-code-group-guide-editor textarea {
  width:100%;
  height:102px;
  min-height:102px;
  padding:12px;
  border:0;
  outline:0;
  resize:none;
  color:#555;
  line-height:22px;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-groups {
  align-items:start;
  padding-top:10px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-field.is-groups > label {
  padding-top:8px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-list {
  width:442px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-row {
  display:grid;
  grid-template-columns:400px 32px;
  gap:8px;
  margin-bottom:8px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-row input,
.live-code-create-shell.is-group-basic-step .live-code-group-name-row input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:400px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-row button {
  width:32px;
  height:32px;
  border:1px solid #ddd;
  border-radius:3px;
  color:transparent;
  background:#fff;
  position:relative;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-row button::before {
  content:"";
  position:absolute;
  left:9px;
  top:8px;
  width:12px;
  height:14px;
  border:1px solid #777;
  border-top:0;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-name-row button::after {
  content:"";
  position:absolute;
  left:8px;
  top:5px;
  width:14px;
  height:1px;
  background:#777;
  box-shadow:4px -2px 0 -1px #777;
}
.live-code-create-shell.is-group-basic-step .live-code-group-add-line {
  display:flex;
  align-items:center;
  gap:10px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-add-line button {
  width:84px;
  height:32px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#666;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-add-line span {
  color:#999;
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview {
  min-height:560px;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone {
  width:356px;
  min-height:638px;
  margin:0 auto;
  padding-top:12px;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-status {
  height:30px;
  padding:0 8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#111;
  font-size:14px;
  font-weight:600;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-status span {
  font-size:15px;
  letter-spacing:0;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-bar {
  height:42px;
  padding:0 8px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 40px;
  align-items:center;
  border-bottom:1px solid #eee;
  color:#111;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-bar b {
  font-size:24px;
  font-weight:300;
  line-height:1;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-bar span {
  overflow:hidden;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:14px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-phone-bar i {
  color:#111;
  font-style:normal;
  font-size:18px;
  text-align:right;
  letter-spacing:2px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview-body {
  min-height:532px;
  padding:14px 20px;
  background:#f4f6ff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview-body p {
  margin:0 0 12px;
  padding:12px;
  border-top:2px solid var(--green);
  border-radius:6px;
  color:#666;
  background:#fff;
  font-size:13px;
  line-height:22px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview-body > div {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview-body button {
  height:48px;
  padding:0 18px;
  border:0;
  border-radius:6px;
  color:#333;
  text-align:left;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
  font-size:14px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-preview-art {
  display:none;
}
.live-code-create-shell.is-group-basic-step .live-code-create-footer {
  left:0;
  height:48px;
}

.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-page-panel,
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-settings,
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview {
  min-height:760px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-body {
  min-height:370px;
  background:#3c2b8f;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-field.is-upload {
  min-height:150px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-upload.has-poster {
  width:96px;
  height:96px;
  overflow:hidden;
  border:1px dashed #ddd;
  background:#3c2b8f;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art {
  width:88px;
  height:88px;
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:1px;
  background:
    radial-gradient(circle at 12% 92%, #6b4ec0 0 10%, transparent 11%),
    radial-gradient(circle at 86% 90%, #5379b7 0 12%, transparent 13%),
    linear-gradient(145deg, transparent 0 58%, rgba(255,255,255,.12) 59% 61%, transparent 62%),
    #4630a0;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art::before {
  content:"";
  position:absolute;
  left:-4px;
  top:0;
  right:-4px;
  height:18px;
  background:
    linear-gradient(135deg,#2ebed0 0 50%,transparent 51%) 0 0/22px 18px,
    linear-gradient(225deg,#ffd45f 0 50%,transparent 51%) 11px 0/22px 18px,
    linear-gradient(135deg,#ff8db0 0 50%,transparent 51%) 22px 0/22px 18px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art b,
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art em {
  position:absolute;
  left:10px;
  right:8px;
  color:#fff;
  font-style:normal;
  font-weight:900;
  line-height:1.05;
  text-align:center;
  text-shadow:2px 2px 0 rgba(45,29,122,.8);
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art b {
  top:26px;
  font-size:21px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-summer-art em {
  top:48px;
  font-size:17px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-color-swatch {
  width:48px;
  height:32px;
  padding:3px;
  border:1px solid #ddd;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-color-swatch::before {
  content:"";
  display:block;
  width:100%;
  height:100%;
  background:#3c2b8f;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art {
  height:270px;
  position:relative;
  display:block;
  overflow:hidden;
  background:
    radial-gradient(circle at 80% 104%, #5775b9 0 15%, transparent 16%),
    radial-gradient(circle at 14% 104%, #6e4cb5 0 13%, transparent 14%),
    radial-gradient(circle at 50% 72%, rgba(255,255,255,.16) 0 28%, transparent 29%),
    linear-gradient(155deg,#4e35b4 0%,#372187 100%);
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art::before {
  content:"";
  position:absolute;
  left:-10px;
  right:-10px;
  top:0;
  height:56px;
  background:
    linear-gradient(135deg,#27b9cd 0 50%,transparent 51%) 0 0/46px 40px,
    linear-gradient(225deg,#ffcf55 0 50%,transparent 51%) 23px 0/46px 40px,
    linear-gradient(135deg,#ff8ca8 0 50%,transparent 51%) 46px 0/46px 40px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art b,
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art em {
  position:absolute;
  left:28px;
  right:24px;
  color:#fff;
  font-style:normal;
  font-weight:900;
  line-height:.98;
  text-align:center;
  text-shadow:4px 4px 0 rgba(45,29,122,.9);
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art b {
  top:58px;
  font-size:54px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art em {
  top:122px;
  font-size:48px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-art::after {
  content:"";
  position:absolute;
  left:46px;
  right:44px;
  bottom:0;
  height:72px;
  background:
    radial-gradient(circle at 16% 72%, #79533f 0 14%, transparent 15%),
    radial-gradient(circle at 50% 62%, #f0b42d 0 11%, transparent 12%),
    radial-gradient(circle at 72% 50%, #df7d55 0 13%, transparent 14%),
    radial-gradient(circle at 92% 68%, #9ec0d0 0 11%, transparent 12%);
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-body {
  padding:0 20px 18px;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-body p {
  margin:0 0 12px;
  border-top:0;
}
.live-code-create-shell.is-group-basic-step .live-code-group-basic-form.is-custom-template .live-code-group-preview-body button {
  height:48px;
}

/* 分组群活码 - 第二步统一设置所有分组（标准模式） */
.live-code-create-shell.is-group-scan-step {
  width:min(1100px,calc(100vw - 288px));
  margin:16px auto 76px;
  border:0;
  background:transparent;
}
.live-code-create-shell.is-group-scan-step .live-code-create-body {
  min-height:608px;
  padding:0;
  background:transparent;
}
.live-code-create-shell.is-group-scan-step .live-code-group-scan-scope {
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:72px;
  margin:0 0 10px;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-group-scan-scope button {
  min-width:176px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 18px;
  border:0;
  border-radius:6px;
  color:#666;
  background:transparent;
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-scan-scope button i {
  width:16px;
  height:16px;
  border:1px solid #d8d8d8;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-group-scan-scope button.active {
  color:#555;
  background:#f3f3f3;
}
.live-code-create-shell.is-group-scan-step .live-code-group-scan-scope button.active i {
  border:4px solid var(--green);
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) {
  width:100%;
  min-height:555px;
  display:grid;
  grid-template-columns:710px 390px;
  gap:0;
  max-width:none;
  margin:0;
  align-items:stretch;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-scan-settings {
  min-height:555px;
  margin:0;
  border:0;
  border-right:1px solid #eee;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-scan-preview {
  min-height:555px;
  margin:0;
  border:0;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-scan-settings > h3,
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-scan-preview > h3 {
  height:58px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 16px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:15px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-scan-fields {
  padding:16px 16px 12px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row {
  min-height:52px;
  display:grid;
  grid-template-columns:104px 360px;
  align-items:center;
  column-gap:16px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row > span {
  color:#444;
  font-size:14px;
  text-align:left;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row > input,
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row > input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:360px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-mode-switch button {
  min-width:88px;
  height:32px;
  padding:0 14px;
  margin-left:-1px;
  border-radius:0;
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-mode-switch button + button {
  margin-left:-1px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-mode-switch button:first-child {
  border-radius:3px 0 0 3px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-mode-switch button:last-child {
  border-radius:0 3px 3px 0;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-inline-check {
  height:24px;
  gap:8px;
  color:#555;
  font-size:14px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-inline-check input {
  width:16px;
  height:16px;
  margin:0;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-upload-row {
  min-height:154px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-upload-row > span {
  padding-top:12px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-upload-control .live-logo-upload {
  width:104px;
  height:104px;
  border:1px dashed #ddd;
  border-radius:0;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-upload-control p {
  margin:9px 0 0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-more-settings {
  width:100%;
  margin:0;
  border-top:1px solid #eee;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-more-settings summary {
  height:36px;
  margin:0;
  justify-content:center;
  color:#777;
  font-size:13px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-device {
  width:356px;
  margin:0 auto;
  padding-top:12px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-status {
  height:30px;
  padding:0 8px;
  font-size:14px;
  font-weight:600;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-status span {
  color:#111;
  font-size:15px;
  letter-spacing:0;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-bar {
  height:42px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 40px;
  align-items:center;
  padding:0 8px;
  border-bottom:1px solid #eee;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-bar b {
  font-size:24px;
  font-weight:300;
  line-height:1;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-bar em {
  overflow:hidden;
  color:#666;
  font-style:normal;
  font-size:14px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-bar span {
  color:#111;
  font-size:18px;
  letter-spacing:2px;
  text-align:right;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-stage {
  min-height:376px;
  padding:20px;
  background:#f4f6ff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card {
  min-height:334px;
  padding:54px 20px 26px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card img {
  width:202px;
  height:202px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card p {
  margin:18px 0 0;
  color:#999;
  font-size:13px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-note {
  margin:16px 0 0;
  color:#999;
  font-size:13px;
  text-align:center;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-create-footer {
  left:var(--sidebar-width);
  height:48px;
  border-top:1px solid #ddd;
  background:#fff;
}

@media (max-width:1100px) {
  body.live-code-wizard-mode { --sidebar-width:200px; }
}

/* 分组群活码 - 第二步单独设置每个分组（标准模式） */
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout {
  width:100%;
  min-height:555px;
  display:grid;
  grid-template-columns:150px 1fr;
  gap:8px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-nav {
  min-height:555px;
  padding:14px 12px;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-nav h4 {
  margin:0 0 14px;
  color:#999;
  font-size:14px;
  font-weight:400;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-nav button {
  width:100%;
  height:32px;
  display:flex;
  align-items:center;
  padding:0 8px;
  border:0;
  border-radius:3px;
  color:#333;
  background:#fff;
  font-size:14px;
  text-align:left;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-nav button.active {
  background:#edf4ff;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-standard-form:not(.live-code-poster-form) {
  width:942px;
  min-height:555px;
  grid-template-columns:554px 388px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-scan-settings,
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-scan-preview {
  min-height:555px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-scan-settings > h3 em {
  height:26px;
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:0 10px;
  border-radius:2px;
  color:#555;
  background:#f3f3f3;
  font-style:normal;
  font-size:13px;
  font-weight:600;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-field-row {
  grid-template-columns:104px 360px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-preview-device {
  width:356px;
}

.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form {
  width:942px;
  min-height:650px;
  display:grid;
  grid-template-columns:554px 388px;
  gap:0;
  max-width:none;
  margin:0;
  align-items:stretch;
  border-radius:3px;
  background:#fff;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-scan-settings,
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-scan-preview {
  min-height:650px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-scan-settings > h3 em {
  height:26px;
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:0 10px;
  border-radius:2px;
  color:#555;
  background:#f3f3f3;
  font-style:normal;
  font-size:13px;
  font-weight:600;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-field-row {
  grid-template-columns:104px 360px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-field-row > input,
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-field-row > input:not([type=radio]):not([type=checkbox]):not([type=color]) {
  width:360px;
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-mode-switch button {
  height:32px;
  margin-left:-1px;
  border-radius:0;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-mode-switch button:first-child {
  border-radius:3px 0 0 3px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-mode-switch button:last-child {
  border-radius:0 3px 3px 0;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-poster-upload-row {
  min-height:220px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-poster-upload-row > span {
  padding-top:12px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-poster-help {
  margin:10px 0 0;
  padding-left:0;
  list-style-position:inside;
  color:#999;
  font-size:13px;
  line-height:22px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-preview-device {
  width:356px;
  margin:0 auto;
  padding-top:12px;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-poster-stage {
  width:356px;
  height:484px;
  min-height:484px;
  position:relative;
  padding:0;
  background:#f4f6ff;
}
.live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form .live-code-poster-qr {
  right:0;
  bottom:0;
  left:auto;
  width:200px;
  height:200px;
  transform:none;
}

/* 分组群活码：表单标题、勾选项与提示图标最终对齐规则 */
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row.live-code-group-name-setting {
  min-height:244px;
  align-items:start;
  padding-top:8px;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-group-name-setting > span {
  height:32px;
  display:flex;
  align-items:center;
  align-self:auto;
  margin-top:44px;
  padding:0;
}
.live-code-create-shell.is-group-scan-step .live-code-standard-form:not(.live-code-poster-form) .live-code-group-name-controls > .live-code-inline-check {
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  line-height:20px;
}
.live-code-create-shell.is-rule-step .live-code-group-rule-layout .live-code-rule-check-heading label,
.live-code-create-shell.is-rule-step .live-code-group-rule-layout .live-code-order-radios label,
.live-code-create-shell.is-rule-step .live-code-group-rule-layout .live-code-duplicate-check {
  min-height:32px;
  display:inline-flex;
  align-items:center;
}
.live-code-create-shell.is-rule-step .live-code-group-rule-layout .live-code-rule-label {
  height:32px;
  display:flex;
  align-items:center;
}
.live-code-create-shell.is-rule-step .live-code-group-rule-layout .live-code-rule-label .live-code-help {
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
}

/* 群活码扫码页预览：状态栏、群信息与二维码统一布局 */
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-device {
  width:356px;
  padding-top:8px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-status {
  height:32px;
  padding:0 12px;
  font-size:13px;
  font-weight:600;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-system {
  width:auto;
  height:18px;
  gap:8px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal {
  width:16px;
  height:13px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal > i { width:2px; border-radius:1px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal > i:nth-child(1) { height:4px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal > i:nth-child(2) { height:7px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal > i:nth-child(3) { height:10px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-signal > i:nth-child(4) { height:13px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-wifi {
  width:17px;
  height:13px;
  background:#111;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M2 5.5C7.7.8 16.3.8 22 5.5l-2.2 2.7c-4.5-3.6-11.1-3.6-15.6 0L2 5.5Zm4.1 5c3.4-2.7 8.4-2.7 11.8 0l-2.2 2.7a5.9 5.9 0 0 0-7.4 0l-2.2-2.7ZM10 15.4a2.6 2.6 0 0 1 4 0L12 18l-2-2.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M2 5.5C7.7.8 16.3.8 22 5.5l-2.2 2.7c-4.5-3.6-11.1-3.6-15.6 0L2 5.5Zm4.1 5c3.4-2.7 8.4-2.7 11.8 0l-2.2 2.7a5.9 5.9 0 0 0-7.4 0l-2.2-2.7ZM10 15.4a2.6 2.6 0 0 1 4 0L12 18l-2-2.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-wifi::before,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-wifi::after { content:none; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-battery {
  width:22px;
  height:11px;
  border-width:1.5px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-battery::before { inset:2px; }
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-bar {
  height:40px;
  grid-template-columns:32px minmax(0,1fr) 32px;
  padding:0 10px;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-close {
  width:24px;
  height:24px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-close::before,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-close::after {
  top:11px;
  left:4px;
  width:16px;
  height:2px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-more {
  width:32px;
  height:24px;
  justify-content:flex-end;
  gap:4px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-phone-more > i {
  width:3px;
  height:3px;
  flex-basis:3px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-stage {
  min-height:376px;
  padding:18px;
  background:#f4f6ff;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card {
  min-height:340px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px 20px;
  border-radius:7px;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.03);
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card:has(.live-code-preview-group) {
  justify-content:flex-start;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-group {
  width:100%;
  min-height:46px;
  position:static;
  display:flex;
  align-items:center;
  align-self:stretch;
  gap:10px;
  margin:0 0 14px;
  padding:0 4px 12px;
  border-bottom:1px solid #f0f0f0;
  box-sizing:border-box;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-group > span,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-group .group-avatar-collage,
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-group img {
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:3px;
  object-fit:cover;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-group strong {
  min-width:0;
  max-width:none;
  overflow:hidden;
  color:#444;
  font-size:13px;
  font-weight:500;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card > .live-code-preview-qr {
  width:196px;
  height:196px;
  flex:0 0 196px;
  object-fit:contain;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-card p {
  margin:14px 0 0;
  color:#999;
  font-size:12px;
}
.live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-preview-note {
  margin:14px 0 0;
  color:#999;
  font-size:12px;
  text-align:center;
}

/* 公共页面级返回按钮：标题栏间距统一 */
:is(
  .room-subpage-head,
  .friend-subpage-head,
  .customer-subpage-head,
  .live-code-subhead,
  .live-code-wizard-title,
  .new-fan-subhead,
  .card-friend-titlebar,
  .material-subpage-head,
  .fop-group-page-header
):has(> .back-circle) {
  gap:10px;
}

/* 群活码创建向导：所有步骤与分组层级的最终视觉基线 */
body.live-code-wizard-mode {
  --live-code-shell-width:min(1100px,calc(100vw - var(--sidebar-width) - 48px));
  --live-code-panel-head:56px;
  --live-code-control-height:32px;
  --live-code-field-height:52px;
  --live-code-form-padding:24px;
  --live-code-label-width:112px;
  --live-code-rule-label-width:120px;
  --live-code-column-gap:16px;
}
body.live-code-wizard-mode .live-code-wizard-head {
  height:48px;
  padding:0 20px;
}
body.live-code-wizard-mode .live-code-wizard-title {
  height:48px;
  align-items:center;
}
body.live-code-wizard-mode .live-code-create-shell {
  width:var(--live-code-shell-width);
  margin:16px auto 72px;
  border:0;
  background:transparent;
}
body.live-code-wizard-mode .live-code-create-body {
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell :is(input,button,textarea) {
  box-sizing:border-box;
}
body.live-code-wizard-mode .live-code-create-shell input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
body.live-code-wizard-mode .live-code-create-shell select {
  height:var(--live-code-control-height);
  min-height:var(--live-code-control-height);
}
body.live-code-wizard-mode .live-code-create-shell :is(input[type="radio"],input[type="checkbox"]) {
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  accent-color:var(--green);
}
body.live-code-wizard-mode .live-code-create-shell :is(.live-code-inline-check,.inline-check) {
  min-height:var(--live-code-control-height);
  display:inline-flex;
  align-items:center;
  gap:8px;
  line-height:20px;
}

/* 普通活码第一步 */
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-basic-form section > h3,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step :is(
  .live-code-group-code-panel > h3,
  .live-code-group-settings > h3,
  .live-code-group-preview > h3
),
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) :is(
  .live-code-scan-settings > h3,
  .live-code-scan-preview > h3
),
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-panel > h3 {
  height:var(--live-code-panel-head);
  display:flex;
  align-items:center;
  margin:0;
  padding:0 20px;
  border-bottom:1px solid #eee;
  color:#333;
  font-size:14px;
  font-weight:600;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-basic-fields {
  padding:20px var(--live-code-form-padding) 28px;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-basic-fields > label {
  min-height:var(--live-code-field-height);
  display:grid;
  grid-template-columns:var(--live-code-label-width) minmax(0,400px);
  align-items:start;
  column-gap:var(--live-code-column-gap);
  margin:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-basic-fields > label > span {
  width:auto;
  height:var(--live-code-control-height);
  display:flex;
  align-items:center;
  padding:0;
  text-align:left;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-name-field input {
  width:100%;
  max-width:400px;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-logo-field {
  min-height:148px;
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-basic-step .live-code-logo-field > span {
  padding:0;
}

/* 分组活码第一步 */
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-basic-form {
  width:100%;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:12px 0;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-code-panel {
  margin:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-panel-body,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-settings-body {
  padding:20px var(--live-code-form-padding) 28px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-page-panel {
  grid-template-columns:minmax(0,1fr) 390px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-settings .live-code-group-field {
  min-height:var(--live-code-field-height);
  grid-template-columns:var(--live-code-label-width) minmax(0,400px);
  column-gap:var(--live-code-column-gap);
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field > label {
  width:auto;
  height:var(--live-code-control-height);
  display:flex;
  align-items:center;
  padding:0;
  text-align:left;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field > input,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-name-row input {
  width:100%;
  max-width:400px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-upload {
  min-height:148px;
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-upload > label,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-guide > label,
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-groups > label {
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-guide {
  min-height:162px;
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-field.is-groups {
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-name-list {
  width:100%;
  max-width:440px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-basic-step .live-code-group-name-row {
  grid-template-columns:minmax(0,400px) 32px;
  gap:8px;
  margin-bottom:8px;
}

/* 第二步：标准/海报模式及统一/单独分组设置 */
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-group-scan-scope {
  height:56px;
  margin:0 0 12px;
  gap:48px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-group-scan-scope button {
  min-width:184px;
  height:var(--live-code-control-height);
  padding:0 16px;
  border-radius:4px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form {
  width:100%;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-scan-settings {
  border-right:1px solid #eee;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-form .live-code-scan-preview {
  padding-bottom:64px;
  box-sizing:border-box;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-scan-fields {
  padding:16px var(--live-code-form-padding) 24px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-field-row {
  min-height:var(--live-code-field-height);
  grid-template-columns:var(--live-code-label-width) minmax(0,360px);
  align-items:center;
  column-gap:var(--live-code-column-gap);
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-field-row > span {
  width:auto;
  height:var(--live-code-control-height);
  display:flex;
  align-items:center;
  padding:0;
  color:#444;
  text-align:left;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-field-row > input,
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls > input {
  width:100% !important;
  max-width:360px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-mode-switch {
  height:var(--live-code-control-height);
  display:flex;
  align-items:center;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-mode-switch button {
  min-width:88px;
  height:var(--live-code-control-height);
  margin:0 0 0 -1px;
  padding:0 14px;
  border-radius:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-mode-switch button:first-child {
  margin-left:0;
  border-radius:3px 0 0 3px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-mode-switch button:last-child {
  border-radius:0 3px 3px 0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-upload-row {
  min-height:148px;
  align-items:start;
  padding:8px 0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-upload-row > span {
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-upload-row {
  min-height:190px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-upload-control p,
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-poster-help {
  margin:8px 0 0;
  line-height:22px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting {
  min-height:244px;
  align-items:start;
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting.is-collapsed {
  min-height:var(--live-code-field-height);
  align-items:center;
  padding-top:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting > span {
  margin-top:44px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-setting.is-collapsed > span {
  margin-top:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row.live-code-group-name-setting.is-collapsed {
  min-height:var(--live-code-field-height);
  align-items:center;
  padding-top:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-standard-form:not(.live-code-poster-form) .live-code-field-row.live-code-group-name-setting.is-collapsed > span {
  margin-top:0;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) .live-code-group-name-controls {
  gap:12px;
}
body.live-code-wizard-mode .live-code-create-shell:is(.is-scan-step,.is-group-scan-step) :is(.live-code-preview-status,.live-code-preview-bar) {
  box-sizing:border-box;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-group-single-layout {
  grid-template-columns:150px minmax(0,1fr);
  gap:12px;
}
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-standard-form,
body.live-code-wizard-mode .live-code-create-shell.is-group-scan-step .live-code-group-single-layout .live-code-poster-form {
  width:100%;
  grid-template-columns:minmax(0,1fr) 388px;
}
body.live-code-wizard-mode .live-code-create-shell .live-code-group-single-nav {
  padding:12px;
}
body.live-code-wizard-mode .live-code-create-shell .live-code-group-single-nav h4 {
  height:32px;
  display:flex;
  align-items:center;
  margin:0 0 8px;
  padding:0 8px;
}
body.live-code-wizard-mode .live-code-create-shell .live-code-group-single-nav button {
  height:var(--live-code-control-height);
  margin-bottom:2px;
}

/* 第三步：群规则 */
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-content {
  padding:20px var(--live-code-form-padding) 28px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-block + .live-code-rule-block {
  margin-top:16px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-heading {
  height:44px;
  display:flex;
  align-items:center;
  padding:0 12px;
  box-sizing:border-box;
  color:#333;
  font-size:14px;
  font-weight:600;
  line-height:20px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-heading strong {
  font:inherit;
  color:inherit;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-check-heading label {
  height:var(--live-code-control-height);
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:inherit;
  font:inherit;
  line-height:20px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-row {
  min-height:var(--live-code-field-height);
  grid-template-columns:var(--live-code-rule-label-width) minmax(0,1fr);
  column-gap:var(--live-code-column-gap);
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-group-row {
  min-height:60px;
  display:grid;
  grid-template-columns:var(--live-code-rule-label-width) max-content minmax(0,1fr);
  align-items:center;
  gap:var(--live-code-column-gap);
  padding:4px 0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-label,
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-label {
  width:var(--live-code-rule-label-width);
  height:var(--live-code-control-height);
  display:flex;
  align-items:center;
  padding:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-rule-label .live-code-help {
  margin:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step :is(
  .live-code-order-radios,
  .live-code-order-radios label,
  .live-code-duplicate-check,
  .live-code-rule-check-heading label
) {
  min-height:var(--live-code-control-height);
  align-items:center;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step :is(
  .live-code-order-radios label,
  .live-code-duplicate-check,
  .live-code-rule-check-heading label
) {
  margin:0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-order-radios {
  height:auto;
  min-height:var(--live-code-control-height);
  flex-wrap:wrap;
  gap:8px 28px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-create-fields {
  padding:12px 0 0;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-row {
  min-height:var(--live-code-field-height);
  grid-template-columns:var(--live-code-rule-label-width) minmax(0,720px);
  column-gap:var(--live-code-column-gap);
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-picker {
  min-width:100px;
  height:var(--live-code-control-height);
  padding:0 14px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-control {
  gap:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-selected {
  min-height:40px;
  padding:6px 10px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-name-row {
  min-height:184px;
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-name-rule-editor {
  min-height:160px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-name-rule-toolbar {
  height:48px;
  padding:0 12px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-name-rule-canvas {
  min-height:110px;
  padding:14px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-auto-tag-row {
  padding-top:8px;
}
body.live-code-wizard-mode .live-code-create-shell.is-rule-step .live-code-group-rule-layout {
  grid-template-columns:150px minmax(0,1fr);
  gap:12px;
}
body.live-code-wizard-mode .live-code-create-footer {
  left:var(--sidebar-width);
  height:48px;
}

@media (max-width:1100px) {
  body.live-code-wizard-mode {
    --live-code-shell-width:calc(100vw - var(--sidebar-width) - 32px);
    --live-code-form-padding:20px;
    --live-code-column-gap:12px;
  }
}

/* V1.8 新客户运营：按公共定稿规范统一滚动、控件和图标。 */
.workspace:has(> .fan-operation-page:not(.hidden)) {
  min-height:0;
  overflow:hidden;
}
.fan-operation-page {
  --fop-control-height:32px;
  --fop-check-size:16px;
  --fop-label-width:154px;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.fop-page { min-height:0; }
.fop-titlebar {
  height:48px;
  min-height:48px;
  flex-basis:48px;
  padding:0 16px;
  gap:10px;
}
.fop-titlebar > strong { font-size:14px; font-weight:600; }
.fop-company-select { margin-left:18px; }
.fop-company-select select,
.fop-page select,
.fop-condition-form select,
.fop-account-tools select,
.fop-send-tools select {
  height:var(--fop-control-height);
  min-height:var(--fop-control-height);
  padding:0 30px 0 10px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  appearance:none;
  background-color:#fff;
  background-image:linear-gradient(45deg,transparent 50%,#999 50%),linear-gradient(135deg,#999 50%,transparent 50%);
  background-position:calc(100% - 14px) 13px,calc(100% - 10px) 13px;
  background-repeat:no-repeat;
  background-size:4px 4px,4px 4px;
}
.fop-company-select select { width:190px; }
.fop-auto,
.fop-titlebar > .ghost-button { height:var(--fop-control-height); }
.fop-titlebar > .ghost-button { padding:0 14px; }
.fop-page :is(input[type="checkbox"],input[type="radio"]) {
  width:var(--fop-check-size);
  height:var(--fop-check-size);
  min-height:var(--fop-check-size);
  flex:0 0 var(--fop-check-size);
  margin:0;
  vertical-align:middle;
  accent-color:var(--green);
}
.fop-workspace {
  height:calc(100% - 48px);
  min-height:0;
  grid-template-columns:252px minmax(0,1fr);
  padding:12px;
  overflow:hidden;
}
.fop-plan-pane,
.fop-rule-scroll { height:100%; min-height:0; }
.fop-plan-pane { overflow:hidden; }
.fop-plan-list,
.fop-rule-scroll {
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.fop-rule-scroll:focus { outline:none; }
.fop-rule-panel { min-height:max-content; padding-bottom:0; }
.fop-plan-tools {
  height:52px;
  min-height:52px;
  flex-basis:52px;
  padding:0 10px;
}
.fop-plan-tools .primary-button {
  height:var(--fop-control-height);
  min-height:var(--fop-control-height);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 14px;
}
.fop-add-icon { width:14px; height:14px; position:relative; display:inline-block; }
.fop-add-icon::before,
.fop-add-icon::after { content:""; position:absolute; top:6px; left:2px; width:10px; height:2px; border-radius:1px; background:currentColor; }
.fop-add-icon::after { transform:rotate(90deg); }
.fop-settings-button {
  width:var(--fop-control-height);
  height:var(--fop-control-height);
  min-height:var(--fop-control-height);
  border-radius:3px;
}
.fop-settings-button > span {
  width:16px;
  height:14px;
  position:relative;
  display:block;
}
.fop-settings-button > span::before {
  content:"";
  width:16px;
  height:1px;
  position:absolute;
  top:2px;
  left:0;
  background:#666;
  box-shadow:0 5px #666,0 10px #666;
}
.fop-settings-button > span::after {
  content:"";
  width:3px;
  height:3px;
  position:absolute;
  top:0;
  left:4px;
  border:1px solid #666;
  border-radius:50%;
  background:#fff;
  box-shadow:6px 5px 0 -1px #fff,6px 5px 0 0 #666,-2px 10px 0 -1px #fff,-2px 10px 0 0 #666;
}
.fop-plan-search { height:var(--fop-control-height); min-height:var(--fop-control-height); flex-basis:var(--fop-control-height); }
.fop-plan-card { min-height:88px; padding:11px 12px; }
.fop-plan-card > div:first-child { height:28px; }
.fop-plan-card > div:first-child button { height:28px; display:inline-grid; place-items:center; }
.fop-plan-card .fop-more { width:28px; padding:0; }
.fop-more > span { width:3px; height:3px; display:block; border-radius:50%; background:#777; box-shadow:-5px 0 #777,5px 0 #777; }
.fop-rule-panel > h3 {
  height:48px;
  min-height:48px;
  padding:0 18px;
  font-size:14px;
}
.fop-notice { min-height:40px; margin:10px 14px; padding:7px 12px; }
.fop-form-row {
  min-height:52px;
  grid-template-columns:var(--fop-label-width) minmax(0,1fr);
  align-items:start;
  padding:10px 20px;
}
.fop-form-row > label,
.fop-form-row > div {
  min-height:var(--fop-control-height);
}
.fop-form-row > label {
  height:var(--fop-control-height);
  padding-right:16px;
  line-height:20px;
}
.fop-form-row > div { align-items:center; gap:8px; }
.fop-form-row :is(button,input:not([type="checkbox"]):not([type="radio"]),select) {
  min-height:var(--fop-control-height);
}
.fop-text-button { height:var(--fop-control-height); }
.fop-action-buttons { height:var(--fop-control-height); gap:8px; }
.fop-action-buttons button,
.fop-cancel-dependent > button,
.fop-material-tabs button { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-tag-row > div { align-items:start; column-gap:8px; row-gap:6px; }
.fop-tag-summary { min-height:var(--fop-control-height); }
.fop-info { min-height:32px; margin-top:0; }
.fop-remark-dependent { gap:8px; }
.fop-remark-dependent > div:first-child button { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-remark-editor { min-height:36px; padding:4px 7px; }
.fop-remark-editor span { height:26px; gap:5px; }
.fop-remark-editor span button {
  width:14px;
  height:14px;
  min-height:14px;
  position:relative;
  padding:0;
  border:0;
  background:transparent;
}
.fop-remark-editor span button::before,
.fop-remark-editor span button::after { content:""; width:9px; height:1px; position:absolute; top:6px; left:2px; background:#888; transform:rotate(45deg); }
.fop-remark-editor span button::after { transform:rotate(-45deg); }
.fop-message-row {
  min-height:92px;
  grid-template-columns:32px minmax(220px,.58fr) minmax(300px,1.42fr);
  align-items:start;
  padding:10px;
}
.fop-delay { min-height:var(--fop-control-height); }
.fop-delay input,
.fop-delay select { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-message-row textarea { height:68px; }
.fop-group-action { min-height:68px; padding:0 10px; }
.fop-group-action .fop-text-command { height:30px; min-height:30px; margin-left:auto; padding:0 10px; }
.fop-group-tools { flex:0 0 auto; }
.fop-group-action .fop-group-tools button { position:relative; font-size:0; }
.fop-group-action .fop-group-tools button::before { position:absolute; inset:0; display:grid; place-items:center; color:#666; font-size:16px; line-height:30px; }
.fop-group-tools .is-add::before { content:"+"; }
.fop-group-tools .is-delete::before { content:"×"; }
.fop-group-tools .is-top::before { content:"⇈"; }
.fop-group-tools .is-up::before { content:"↑"; }
.fop-group-tools .is-down::before { content:"↓"; }
.fop-group-tools .is-bottom::before { content:"⇊"; }
.fop-material-tabs { gap:8px; }
.fop-material-tabs button { display:inline-flex; align-items:center; gap:2px; padding:0 11px; }
.fop-material-tabs .fop-tip { margin-left:2px; }
.fop-cancel-row > label { align-items:center; }
.fop-cancel-row section > label { min-height:var(--fop-control-height); height:var(--fop-control-height); }
.fop-cancel-dependent { min-height:42px; padding:5px 12px; gap:16px; }
.fop-cancel-dependent input[type="text"] { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-cancel-dependent input[type="text"].hidden { display:none; }
.fop-save-bar {
  height:54px;
  min-height:54px;
  bottom:0;
  gap:10px;
}
.fop-save-bar button { height:var(--fop-control-height); min-height:var(--fop-control-height); padding:0 16px; }
.fop-dialog > header { height:52px; min-height:52px; flex-basis:52px; padding:0 18px; }
.fop-dialog > header strong { font-size:15px; }
.fop-dialog > footer { min-height:58px; height:58px; flex-basis:58px; padding:0 18px; }
.fop-dialog > footer button { height:var(--fop-control-height); min-height:var(--fop-control-height); min-width:64px; padding:0 16px; }
.fop-condition-form { gap:14px; padding:22px 30px; }
.fop-condition-form > label { min-height:var(--fop-control-height); grid-template-columns:110px minmax(0,1fr); }
.fop-condition-form > label > span { height:var(--fop-control-height); display:flex; align-items:center; justify-content:flex-end; }
.fop-condition-form select,
.fop-condition-form button,
.fop-name-field input,
.fop-account-tools select,
.fop-send-tools select { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-tag-tree section > label {
  height:32px;
  display:grid;
  grid-template-columns:18px 16px minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.fop-tag-tree section > label > span { height:18px; display:grid; place-items:center; color:#777; line-height:18px; }
.fop-tag-tree section > div { padding-top:8px; padding-left:50px; }
.fop-account-tools,
.fop-send-tools { min-height:56px; padding:10px 16px; }
.fop-account-tools .search-control,
.fop-send-tools .search-control,
.fop-account-tools select,
.fop-send-tools select,
.fop-send-tools .ghost-button { height:var(--fop-control-height); min-height:var(--fop-control-height); }
.fop-pages button { min-width:30px; height:30px; min-height:30px; border-radius:3px; }
.fop-toast { top:62px; }

.card-friend-batch .card-friend-list-pagination button {
  min-width:30px;
  width:30px;
  height:30px;
  min-height:30px;
  padding:0;
  color:#666;
  border:1px solid #ddd;
  border-radius:3px;
  background:#fff;
}
.card-friend-batch .card-friend-list-pagination button.active { color:var(--green); border-color:var(--green); }
.card-friend-batch .card-friend-list-pagination button:disabled { color:#bbb; border-color:#ddd; background:#f7f7f7; }

/* V1.10 黑白名单 */
.black-white-page { height:calc(100vh - 48px); overflow:hidden; color:#333; background:#f2f2f2; font-size:14px; }
#blackWhiteRoot { height:100%; min-height:0; }
.bw-page { height:100%; display:flex; flex-direction:column; overflow:hidden; }
.bw-page button,.bw-page input,.bw-page textarea,.bw-page select { font:inherit; }
.bw-tabs { height:48px; flex:0 0 48px; display:flex; align-items:center; justify-content:space-between; padding:0 18px 0 20px; border-bottom:1px solid #e8e8e8; background:#fff; box-sizing:border-box; }
.bw-tabs > div { display:flex; align-items:center; gap:26px; height:100%; }
.bw-tabs button { height:48px; padding:0 2px; position:relative; border:0; color:#555; background:transparent; cursor:pointer; }
.bw-tabs button.active { color:var(--green); font-weight:500; }
.bw-tabs button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.bw-tabs [data-bw-delete-record] { height:32px; padding:0 16px; border:1px solid #ddd; border-radius:3px; background:#fff; }
.bw-tabs .text { color:var(--green); }
.bw-content { flex:1; min-height:0; margin:16px 14px 0; padding:12px 16px 12px; display:grid; grid-template-rows:auto auto minmax(240px,1fr) auto; overflow:hidden; background:#fff; box-sizing:border-box; }
.bw-action-row { min-height:36px; flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; position:relative; z-index:4; }
.bw-action-left,.bw-action-right { display:flex; align-items:center; gap:8px; }
.bw-action-left .ghost-button,.bw-action-right .ghost-button { height:32px; padding:0 14px; border-radius:3px; }
.bw-action-left .primary-ghost { color:var(--green); border-color:var(--green); background:#fff; }
.bw-icon-button {
  display:inline-flex;
  align-items:center;
  gap:6px;
  position:relative;
}
.bw-icon-button::before {
  content:"";
  width:14px;
  height:14px;
  flex:0 0 14px;
  display:inline-block;
  box-sizing:border-box;
  color:#8c8c8c;
}
.bw-icon-button[data-bw-clean-menu]::before {
  border:1px solid #8c8c8c;
  border-radius:2px;
  background:
    linear-gradient(#8c8c8c,#8c8c8c) 3px 4px/8px 1px,
    linear-gradient(#8c8c8c,#8c8c8c) 3px 7px/8px 1px,
    linear-gradient(#8c8c8c,#8c8c8c) 3px 10px/6px 1px;
  background-repeat:no-repeat;
}
.bw-icon-button[data-bw-modal="auto-clean"]::before {
  border:1px solid currentColor;
  border-radius:50%;
  border-right-color:#fff;
  background:linear-gradient(currentColor,currentColor) 8px 1px/5px 1px no-repeat;
  transform:rotate(-35deg);
}
.bw-icon-button[data-bw-modal="speech"]::before {
  border:1px solid currentColor;
  border-radius:2px;
  background:
    linear-gradient(currentColor,currentColor) 3px 4px/8px 1px,
    linear-gradient(currentColor,currentColor) 3px 8px/6px 1px;
  background-repeat:no-repeat;
}
.bw-dropdown { position:relative; }
.bw-menu { min-width:128px; position:absolute; top:36px; left:0; z-index:35; padding:6px 0; border:1px solid #e5e5e5; border-radius:3px; background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.12); }
.bw-action-right .bw-menu { right:0; left:auto; }
.bw-menu.hidden { display:none; }
.bw-menu button { width:100%; height:32px; padding:0 14px; border:0; color:#333; text-align:left; background:#fff; }
.bw-menu button:hover { color:var(--green); background:#f5f7f5; }
.bw-filter-row { min-height:32px; flex:0 0 auto; display:flex; align-items:center; gap:10px; margin-bottom:14px; overflow:visible; position:relative; z-index:3; }
.bw-filter-group { height:32px; display:inline-flex; align-items:center; gap:8px; flex:0 0 auto; }
.bw-filter-group > span { height:32px; display:inline-flex; align-items:center; color:#666; line-height:32px; white-space:nowrap; }
.bw-filter-row .shared-date-range-picker { width:292px; flex:0 0 292px; height:32px; align-self:center; }
.bw-filter-row .shared-date-range-picker input,
.bw-filter-row .shared-date-calendar-button { height:30px; min-height:30px; }
.bw-filter-row .shared-date-range-picker > b { height:30px; display:flex; align-items:center; justify-content:center; line-height:30px; }
.bw-search { width:200px; height:32px; display:flex; align-self:center; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; }
.bw-search input { min-width:0; flex:1; height:30px; border:0; }
.bw-search .search-button { flex:0 0 32px; border-width:0 0 0 1px; }
.bw-list { min-height:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-content:start; gap:12px; padding:0 2px 8px 0; overflow-y:auto; overflow-x:hidden; }
.bw-list-pagination { height:42px; flex:0 0 42px; display:flex; align-items:center; justify-content:flex-end; gap:8px; color:#666; font-size:13px; }
.bw-list-pagination button { min-width:30px; height:30px; padding:0 8px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; }
.bw-list-pagination button.active { color:var(--green); border-color:var(--green); background:#f6ffed; }
.bw-list-pagination button:disabled { color:#bbb; background:#f7f7f7; cursor:not-allowed; }
.bw-card { min-height:88px; position:relative; padding:8px 32px 7px 12px; border:1px solid #e8e8e8; border-radius:3px; background:#fff; box-sizing:border-box; }
.bw-card-remove { width:14px; height:14px; position:absolute; top:12px; right:12px; padding:0; border:1px solid #9d9d9d; border-radius:1px; background:#fff; }
.bw-card-remove::before { content:""; width:8px; height:1px; position:absolute; top:6px; left:2px; background:#9d9d9d; }
.bw-customer { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.bw-customer .wx-avatar { width:36px; height:36px; flex:0 0 36px; border-radius:4px; }
.bw-customer .wx-avatar[class*="customer-art-"] { position:relative; overflow:hidden; background:conic-gradient(from var(--customer-art-turn) at 72% 72%,var(--customer-art-c) 0 25%,transparent 0 100%),linear-gradient(90deg,var(--customer-art-a) 0 48%,transparent 48%),var(--customer-art-paper); box-shadow:inset 0 0 0 1px rgba(90,105,98,.08); }
.bw-customer .wx-avatar[class*="customer-art-"]::before,
.bw-customer .wx-avatar[class*="customer-art-"]::after { content:""; position:absolute; display:block; }
.bw-customer .wx-avatar[class*="customer-art-"]::before { width:21px; height:21px; top:var(--customer-art-y); left:var(--customer-art-x); border-radius:var(--customer-art-radius); background:var(--customer-art-b); transform:rotate(var(--customer-art-rotate)); }
.bw-customer .wx-avatar[class*="customer-art-"]::after { width:10px; height:10px; top:5px; right:5px; border:3px solid var(--customer-art-d); border-radius:50%; }
.bw-customer > div { min-width:0; display:flex; flex-direction:column; gap:1px; }
.bw-customer-name {
  min-width:0;
  display:flex;
  align-items:center;
  gap:4px;
  line-height:20px;
}
.bw-customer strong { min-width:0; overflow:hidden; font-weight:400; line-height:20px; text-overflow:ellipsis; white-space:nowrap; }
.bw-customer small { color:#f59a23; }
.bw-customer small.wechat { color:var(--green); }
.bw-customer-name small { flex:0 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bw-customer em { color:#777; font-style:normal; line-height:18px; }
.bw-meta { margin:2px 0 0 46px; color:#888; line-height:19px; }
.bw-meta p { display:flex; align-items:center; gap:6px; margin:0; min-width:0; }
.bw-meta span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bw-meta small { color:#777; white-space:nowrap; }
.bw-meta i { width:14px; height:14px; display:inline-flex; flex:0 0 14px; align-items:center; justify-content:center; border:1px solid #bbb; border-radius:50%; font-style:normal; }
.bw-meta i::before { content:"?"; color:#999; font-size:11px; }
.bw-meta-help {
  position:relative;
  cursor:help;
}
.bw-meta-help b {
  width:250px;
  position:absolute;
  left:50%;
  bottom:24px;
  z-index:20;
  display:none;
  padding:8px 10px;
  color:#fff;
  border-radius:3px;
  background:rgba(0,0,0,.72);
  font-size:13px;
  font-weight:400;
  line-height:20px;
  transform:translateX(-50%);
  white-space:normal;
  box-sizing:border-box;
}
.bw-meta-help:hover b {
  display:block;
}
.bw-meta-help b::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  margin-left:-5px;
  border-width:6px 5px 0;
  border-style:solid;
  border-color:rgba(0,0,0,.72) transparent transparent;
}
.bw-meta button { padding:0; border:0; color:var(--green); background:transparent; white-space:nowrap; }
.bw-empty { min-height:120px; display:grid; place-items:center; color:#aaa; }
.bw-help-panel { flex:1; min-height:0; margin:16px 14px 0; padding:24px 28px; overflow:auto; background:#fff; box-sizing:border-box; }
.bw-help-dialog { width:790px; }
.bw-help-dialog .bw-help-panel { margin:0; padding:24px 30px 28px; }
.bw-help-panel section { max-width:880px; margin-bottom:24px; }
.bw-help-panel h4 { margin:0 0 12px; font-size:16px; font-weight:600; }
.bw-help-panel p { margin:10px 0 0; color:#555; line-height:24px; }
.bw-modal { position:fixed; inset:0; z-index:95; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.44); }
.bw-modal.hidden { display:none; }
.bw-dialog { max-width:calc(100vw - 40px); max-height:calc(100vh - 40px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.bw-dialog > header { height:54px; flex:0 0 54px; padding:0 20px; display:flex; align-items:center; border-bottom:1px solid #eee; box-sizing:border-box; }
.bw-dialog > header strong { font-size:16px; font-weight:600; }
.bw-dialog > header button { margin-left:auto; border:0; color:#999; font-size:24px; background:transparent; }
.bw-dialog > section { min-height:0; overflow:auto; padding:18px 22px; }
.bw-dialog > footer { height:58px; flex:0 0 58px; padding:0 20px; display:flex; align-items:center; justify-content:flex-end; gap:10px; border-top:1px solid #eee; box-sizing:border-box; }
.bw-record-dialog { width:860px; }
.bw-enterprise-dialog { width:760px; max-height:min(720px,calc(100vh - 40px)); }
.bw-clean-dialog,.bw-speech-dialog { width:560px; }
.bw-dialog table { width:100%; border-collapse:collapse; table-layout:fixed; }
.bw-dialog th { height:42px; padding:0 12px; text-align:left; background:#f5f5f5; font-weight:600; }
.bw-dialog td { height:52px; padding:8px 12px; border-bottom:1px solid #eee; }
.bw-dialog table button { padding:0; border:0; color:var(--green); background:transparent; }
.bw-tip { margin:0 0 14px; color:#666; line-height:22px; }
.bw-enterprise-dialog > section { min-height:0; display:flex; flex-direction:column; padding:18px 22px 12px; overflow:hidden; }
.bw-enterprise-top { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.bw-enterprise-top .bw-tip { flex:1; margin:0; color:#666; font-size:13px; line-height:20px; }
.bw-enterprise-add { height:34px; position:relative; display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.bw-enterprise-add .primary-button { min-width:88px; height:32px; padding:0 14px; }
.bw-enterprise-add-pop { width:310px; position:absolute; top:38px; right:0; z-index:30; display:grid; gap:10px; padding:14px; border:1px solid #e5e5e5; border-radius:4px; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.16); box-sizing:border-box; }
.bw-enterprise-add-pop strong { font-size:14px; font-weight:600; }
.bw-enterprise-add-pop input { width:100%; height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; font-size:13px; box-sizing:border-box; }
.bw-enterprise-add-pop input:focus { border-color:var(--green); outline:0; box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.bw-enterprise-add-pop > div { display:flex; justify-content:flex-end; gap:8px; }
.bw-enterprise-add-pop button { min-width:64px; height:32px; }
.bw-enterprise-table-wrap { min-height:0; max-height:420px; overflow:auto; border:1px solid #eee; border-radius:3px; background:#fff; }
.bw-enterprise-table-wrap table { margin:0; }
.bw-enterprise-table-wrap thead th { position:sticky; top:0; z-index:2; height:40px; color:#333; font-size:13px; font-weight:600; background:#f6f6f6; }
.bw-enterprise-dialog table th:last-child,
.bw-enterprise-dialog table td:last-child { width:90px; text-align:right; }
.bw-enterprise-dialog table td { height:40px; color:#555; font-size:13px; font-weight:400; }
.bw-enterprise-dialog table td:nth-child(2) { color:#666; }
.bw-enterprise-dialog table td button { color:#2b9f18; font-size:13px; }
.bw-enterprise-dialog table tbody tr:hover { background:#fafafa; }
.bw-enterprise-pagination { height:46px; padding-top:8px; box-sizing:border-box; }
.bw-pagination { height:48px; display:flex; justify-content:center; align-items:center; gap:7px; }
.bw-pagination button { min-width:30px; height:30px; border:1px solid #ddd; border-radius:3px; background:#fff; }
.bw-pagination button.active { color:var(--green); border-color:var(--green); }
.bw-pagination button:disabled { color:#bbb; background:#f7f7f7; cursor:not-allowed; }
.bw-form { display:grid; gap:12px; }
.bw-form > label { min-height:36px; display:grid; grid-template-columns:130px minmax(0,1fr); align-items:start; column-gap:12px; }
.bw-form > label > span { height:32px; display:flex; align-items:center; justify-content:flex-end; color:#555; }
.bw-form label label { height:32px; display:inline-flex; align-items:center; margin-right:18px; gap:6px; }
.bw-form input[type="radio"],.bw-form input[type="checkbox"] { width:16px; height:16px; min-height:16px; margin:0; accent-color:var(--green); }
.bw-form p { margin:0 0 2px 142px; color:#999; }
.bw-clean-dialog {
  width:560px;
}
.bw-clean-dialog > section {
  padding:20px 34px 18px;
}
.bw-clean-form {
  gap:10px;
}
.bw-clean-row {
  width:470px;
  max-width:100%;
  min-height:32px;
  margin:0 auto;
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  align-items:start;
  column-gap:12px;
}
.bw-clean-row > span {
  height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  color:#555;
  white-space:nowrap;
}
.bw-clean-row:has(.bw-option-stack) > span {
  align-items:flex-start;
  padding-top:5px;
  box-sizing:border-box;
}
.bw-clean-control {
  min-width:0;
}
.bw-clean-control p {
  max-width:300px;
  margin:6px 0 0;
  color:#999;
  font-size:14px;
  line-height:21px;
}
.bw-clean-switch {
  width:44px;
  height:22px;
  display:inline-flex;
  align-items:center;
  position:relative;
  margin:5px 0;
  cursor:pointer;
}
.bw-clean-switch input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.bw-clean-switch i {
  width:44px;
  height:22px;
  display:block;
  position:relative;
  pointer-events:none;
  border-radius:999px;
  background:#d8d8d8;
  transition:background .16s ease;
}
.bw-clean-switch i::after {
  content:"";
  width:18px;
  height:18px;
  position:absolute;
  top:2px;
  left:2px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
  transition:left .16s ease;
}
.bw-clean-switch input:checked + i {
  background:var(--green);
}
.bw-clean-switch input:checked + i::after {
  left:24px;
}
.bw-option-row,
.bw-option-stack {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:24px;
}
.bw-option-stack {
  min-height:0;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:0;
}
.bw-clean-form label label {
  height:28px;
  margin-right:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#555;
}
.bw-clean-dialog > footer {
  height:58px;
  padding:0 20px;
}
.bw-speech-dialog > section {
  padding:18px 24px 22px;
}
.bw-speech-variable-box {
  margin-bottom:14px;
}
.bw-variable-row {
  min-height:46px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 18px;
}
.bw-variable-row button,
.bw-ai-row button {
  height:28px;
  padding:0 10px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#555;
  background:#fff;
}
.bw-variable-row .bw-emoji-button {
  width:28px;
  padding:0;
  color:#777;
  font-size:20px;
  line-height:1;
  border:0;
  background:transparent;
}
.bw-variable-row [data-bw-insert-var] {
  color:#555;
  background:#fff;
}
.bw-variable-row .bw-copy-button {
  margin-left:auto;
  color:var(--green);
  border-color:transparent;
  background:transparent;
}
.bw-speech-editor {
  min-height:104px;
  padding:14px 18px;
  line-height:30px;
}
.bw-speech-editor:focus-within {
  border-color:#69bd58;
  box-shadow:inset 0 0 0 1px #69bd58;
}
.bw-ai-row {
  display:flex;
  align-items:center;
  gap:8px;
}
.bw-ai-row button {
  min-width:92px;
  color:#1d8f59;
  border-color:#bce9df;
  background:linear-gradient(90deg,#d8f8df 0%,#c8eefb 100%);
}
.bw-picker-dialog { width:min(1180px,calc(100vw - 48px)); }
.bw-picker { height:min(620px,calc(100vh - 160px)); display:grid; grid-template-columns:260px 330px minmax(0,1fr); gap:12px; padding:14px; }
.bw-picker > aside,.bw-picker > div,.bw-picker > main { min-height:0; overflow:auto; padding:12px; border:1px solid #eee; background:#fff; }
.bw-picker .search-control { width:100%; margin-bottom:10px; }
.bw-picker label { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0; }
.bw-picker-filter { display:flex; flex-direction:column; gap:10px; }
.bw-picker-filter label { display:grid; align-items:start; gap:6px; }
.bw-picker-filter input,.bw-picker-filter select { height:32px; padding:0 10px; border:1px solid #ddd; border-radius:3px; }
.bw-group-picker {
  height:min(558px,calc(100vh - 154px));
  min-height:0;
  display:grid;
  grid-template-columns:360px 300px minmax(320px,1fr) 210px;
  overflow:hidden;
  padding:0;
}
.bw-group-picker > * {
  min-width:0;
  min-height:0;
  overflow:hidden;
  border-right:1px solid #e8e8e8;
  background:#fff;
}
.bw-group-picker > *:last-child { border-right:0; }
.bw-group-member-dialog { width:min(1220px,calc(100vw - 48px)); max-height:calc(100vh - 36px); }
.bw-group-member-dialog > header { height:50px; flex:0 0 50px; padding:0 16px; }
.bw-group-member-dialog > footer { height:50px; flex:0 0 50px; justify-content:flex-end; gap:12px; padding:0 16px; }
.bw-group-member-dialog > footer .dialog-action-button { min-width:64px; height:32px; }
.bw-member-modal-batch { display:flex; align-items:center; gap:12px; margin-right:16px; color:#555; font-size:13px; }
.bw-member-modal-batch b { color:var(--green); font-weight:400; }
.bw-member-modal-batch .text-button { min-width:auto; height:auto; min-height:22px; color:var(--green); font-size:13px; font-weight:400; }
.bw-group-filter-pane { position:relative; z-index:80; display:flex; flex-direction:column; overflow:visible; background:#fff; }
.bw-column-search {
  height:48px;
  padding:8px 12px;
  border-bottom:1px solid #e8e8e8;
  box-sizing:border-box;
}
.bw-group-picker .group-options { max-height:none; height:auto; min-height:0; flex:1; display:block; overflow:auto; margin:0; padding:0; border:0; border-radius:0; }
.bw-group-picker .group-option { width:100%; min-height:66px; display:grid; grid-template-columns:40px minmax(0,1fr); align-items:center; gap:8px; padding:7px 16px; border:0; border-bottom:1px solid #eee; border-radius:0; text-align:left; background:#fff; cursor:pointer; }
.bw-group-picker .group-option.active { background:#edf4ff; }
.bw-group-picker .group-option .group-avatar-collage { width:40px; height:40px; }
.bw-group-picker .group-option > span:last-child { display:grid; align-content:center; gap:4px; min-width:0; }
.bw-group-picker .group-option strong { overflow:hidden; color:#333; font-size:13px; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.bw-group-picker .group-option em { color:#999; font-size:12px; font-style:normal; }
.bw-group-list-head label {
  display:flex;
  align-items:center;
  gap:26px;
  margin:0;
}
.bw-pane-head {
  height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 20px;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.bw-pane-head label {
  min-height:0;
  display:flex;
  align-items:center;
  gap:10px;
}
.bw-pane-head strong {
  font-weight:600;
}
.bw-pane-head button {
  padding:0;
  color:var(--green);
  border:0;
  background:transparent;
}
.bw-member-head { padding:0 12px; display:grid; grid-template-columns:auto minmax(128px,174px); align-items:center; gap:12px; }
.bw-member-head label {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  min-width:0;
}
.bw-member-head label strong { white-space:nowrap; }
.bw-member-head .compact-search {
  width:100%;
  min-width:0;
  height:32px;
  align-self:center;
  border-radius:3px;
  box-sizing:border-box;
}
.bw-member-head .compact-search input {
  height:30px;
  min-height:30px;
  line-height:30px;
  padding:0 10px;
}
.bw-member-head .compact-search button {
  width:32px;
  height:30px;
  flex:0 0 32px;
}
.bw-group-member-list {
  min-height:0;
  flex:1;
  overflow:auto;
}
.bw-group-member-list > label {
  min-height:62px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:7px 16px;
  margin:0;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.bw-group-member-list > label.active { background:#edf4ff; }
.bw-member-empty { height:160px; display:grid; place-items:center; color:#999; font-size:13px; }
.bw-group-member-pane input,
.bw-member-head input {
  width:16px;
  height:16px;
  min-height:16px;
  margin:0;
  accent-color:var(--green);
}
.bw-group-selected-pane .picker-pane-head { padding:0 12px; }
.bw-row-record-dialog { width:900px; }
.bw-row-record-dialog > header strong {
  display:flex;
  align-items:center;
  gap:8px;
}
.bw-row-record-dialog > header em {
  color:#f04438;
  font-size:13px;
  font-style:normal;
  font-weight:400;
}
.bw-row-record-dialog > section {
  padding:24px;
}
.bw-row-record-user {
  margin-bottom:22px;
}
.bw-row-record-user .bw-customer {
  margin-bottom:8px;
}
.bw-row-record-user .bw-customer-name {
  display:flex;
  align-items:center;
  gap:4px;
}
.bw-row-record-user .bw-customer-name strong,
.bw-row-record-user .bw-customer-name small {
  line-height:20px;
}
.bw-row-record-user p {
  display:flex;
  align-items:center;
  gap:18px;
  margin:0;
  color:#555;
  line-height:20px;
  white-space:nowrap;
}
.bw-record-empty {
  min-height:160px;
  color:#bbb;
}
.bw-record-empty span {
  width:48px;
  height:34px;
  display:block;
  position:relative;
  margin:0 auto 8px;
  border:1px solid #e5e5e5;
  border-radius:3px;
}
.bw-record-empty span::before {
  content:"";
  width:28px;
  height:10px;
  position:absolute;
  top:-7px;
  left:9px;
  border:1px solid #e5e5e5;
  border-bottom:0;
  border-radius:8px 8px 0 0;
}
.bw-record-empty p {
  margin:0;
}
.bw-record-detail { margin:12px 0; color:#666; }

/* V1.10 客户朋友圈 */
.moments-page { height:calc(100vh - 48px); overflow:hidden; color:#333; background:#f2f2f2; font-size:13px; }
#momentsRoot { height:100%; min-height:0; }
.mom-page,.mom-data-page { height:100%; display:flex; flex-direction:column; overflow:hidden; }
.mom-page button,.mom-page input,.mom-page textarea,.mom-data-page button,.mom-data-page input,.mom-create-page button,.mom-create-page input,.mom-create-page textarea { font:inherit; }
.mom-top-tabs { height:48px; position:relative; z-index:40; padding:0 14px; display:flex; align-items:center; gap:20px; overflow:visible; border-bottom:1px solid #e8e8e8; background:#fff; }
.mom-top-tabs > button:not(.ghost-button) { height:48px; padding:0 2px; position:relative; border:0; background:transparent; color:#555; }
.mom-top-tabs > button.active { color:var(--green); font-weight:500; }
.mom-top-tabs > button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.mom-top-tabs > i { width:1px; height:16px; background:#e5e5e5; }
.mom-top-tabs .shared-company-filter { width:200px; flex:0 0 200px; }
.mom-top-tabs > .ghost-button { margin-left:auto; height:32px; }
.mom-top-tabs > .primary-ghost { color:var(--green); border-color:var(--green); }
.mom-alert { min-height:40px; padding:8px 16px; display:flex; align-items:center; gap:8px; background:#fff0df; color:#555; line-height:20px; box-sizing:border-box; }
.mom-alert i { width:16px; height:16px; flex:0 0 16px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; font-style:normal; background:var(--green); }
.mom-alert i::before { content:"i"; display:block; font:700 11px/16px Arial,sans-serif; transform:translateY(-.25px); }
.mom-alert span { min-width:0; }
.mom-shell { margin:14px 17px 0; flex:1; min-height:0; display:flex; flex-direction:column; background:#fff; }
.mom-toolbar { min-height:54px; position:relative; z-index:30; padding:11px; display:flex; align-items:center; gap:12px; overflow:visible; border-bottom:1px solid #eee; box-sizing:border-box; }
.mom-toolbar .primary-button { width:110px; height:32px; flex:0 0 110px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; line-height:20px; white-space:nowrap; box-sizing:border-box; overflow:hidden; }
.icon-ghost { width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; padding:0; border:1px solid #ddd; border-radius:3px; background:#fff; }
.icon-ghost::before { content:"⚙"; color:#777; font-family:Arial,sans-serif; font-size:20px; line-height:1; }
.mom-select { height:34px; min-width:120px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; }
.mom-select::after { content:"⌄"; color:#999; margin-left:18px; }
.mom-select em { color:#f59a23; font-style:normal; }
.v110-shared-select { flex:0 0 auto; }
.v110-shared-select .shared-select-trigger { height:32px; min-height:32px; }
.v110-shared-select .shared-select-menu { top:34px; max-height:240px; overflow-y:auto; }
.v110-shared-select .shared-select-menu button { white-space:nowrap; }
.mom-toolbar .mom-filter-select { width:160px; }
.mom-toolbar .mom-group-filter { width:120px; flex:0 0 120px; }
.mom-toolbar .mom-group-menu { width:120px; padding:0; overflow:hidden; }
.mom-toolbar .mom-group-options { max-height:260px; }
.mom-toolbar .mom-group-manage { padding:0 12px !important; text-align:left !important; }
.mom-toolbar [data-v110-select="mom-creator"] { width:140px; }
.mom-toolbar [data-v110-select="mom-status"] .shared-select-menu [data-value=""] { display:none; }
.mom-data-tools .mom-account-select { width:220px; }
.mom-data-filters .mom-filter-select { width:120px; }
.bw-picker-select-row { display:flex; align-items:center; gap:8px; min-width:0; }
.bw-picker-select-row .bw-picker-select { width:112px; min-width:0; }
@media (max-width:1360px) {
  .bw-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:980px) {
  .bw-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.mom-search { width:160px; }
.mom-main { flex:1; min-height:0; position:relative; z-index:1; display:grid; grid-template-columns:463px minmax(0,1fr); border-top:0; overflow:hidden; }
.mom-toolbar .v110-shared-select.open,.mom-toolbar .shared-date-range-picker.open { z-index:100; }
.mom-toolbar .shared-select-menu { z-index:110; }
.mom-toolbar .shared-date-range-panel { right:0; left:auto; z-index:120; }
.mom-task-list { min-height:0; padding:12px; overflow:auto; border-right:1px solid #ddd; background:#f5f5f5; box-sizing:border-box; }
.mom-task-card { width:100%; height:104px; display:grid; grid-template-rows:71px 31px; margin-bottom:8px; padding:0; overflow:visible; border:1px solid #e7e7e7; border-radius:3px; background:#fff; text-align:left; cursor:pointer; box-sizing:border-box; }
.mom-task-card.active { border:1px solid var(--green); background:#eef5ff; }
.mom-task-body { min-width:0; padding:11px 12px 8px; box-sizing:border-box; }
.mom-task-card .mom-task-head { height:22px; position:relative; display:flex; align-items:center; gap:6px; }
.mom-task-card strong { flex:1; font-size:14px; font-weight:400; }
.mom-task-card .mom-task-head > span::before { content:""; width:10px; height:10px; display:inline-grid; place-items:center; margin-right:5px; border:1px solid currentColor; border-radius:50%; font-size:8px; line-height:8px; vertical-align:1px; }
.mom-task-card .mom-task-head > span.done::before { content:"!"; color:#ff5b5b; }
.mom-task-card .mom-task-head > span.pending::before { display:none; }
.mom-task-card .mom-task-head > span.cancel::before { content:"!"; color:#666; }
.mom-task-card span.done { color:var(--green); }
.mom-task-card span.pending { color:#d46b08; }
.mom-task-card span.cancel { color:#999; }
.mom-task-card [data-mom-more] { width:20px; height:22px; padding:0; border:0; background:transparent; color:#777; line-height:16px; }
.mom-more-menu { position:absolute; top:30px; right:0; z-index:12; width:auto; min-width:72px; padding:5px 0; border:1px solid #e5e5e5; border-radius:3px; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.14); }
.mom-more-menu button { width:auto; height:32px; display:block; padding:0 10px; border:0; color:#555; text-align:right; white-space:nowrap; background:#fff; }
.mom-more-menu button:hover { color:var(--green); background:#f5fbf2; }
.mom-task-type { height:22px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:7px; }
.mom-task-card p { margin:0; color:#888; }
.mom-task-card time { color:#888; }
.mom-task-card footer { min-width:0; height:31px; display:flex; align-items:center; gap:7px; padding:0 12px; border-top:1px solid #ededed; color:#999; white-space:nowrap; box-sizing:border-box; }
.mom-task-card footer em { font-style:normal; }
.mom-task-card footer em::before { content:"✓"; margin-right:3px; color:#999; }
.mom-task-card footer b { margin-left:auto; color:#777; font-weight:400; }
.mom-detail { min-height:0; overflow:hidden; background:#fff; }
.mom-detail-empty { height:100%; display:grid; place-items:center; color:#aaa; }
.mom-detail section { height:100%; min-height:0; display:flex; flex-direction:column; padding:0; overflow:hidden; }
.mom-detail h3 { height:50px; flex:0 0 50px; display:flex; align-items:center; margin:0; padding:0 14px; border-bottom:1px solid #e5e5e5; font-size:14px; font-weight:600; box-sizing:border-box; }
.mom-detail-scroll { flex:1; min-height:0; padding:22px 20px 0; overflow:auto; box-sizing:border-box; }
.mom-detail-wechat-scroll { padding:0 16px; }
.mom-detail-wechat-scroll .mom-detail-tabs { margin-top:8px; }
.mom-detail h2 { margin:0 0 10px; font-size:22px; }
.mom-status-line { display:flex; gap:8px; margin-bottom:12px; }
.mom-status-line span,.mom-status-line b { height:28px; display:inline-flex; align-items:center; padding:0 10px; border-radius:3px; background:#e6f7ff; color:#333; font-weight:400; }
.mom-status-line b.done { color:#fff; background:var(--green); }
.mom-info-grid { min-height:82px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-content:center; gap:14px 20px; padding:12px; background:#f5f5f5; box-sizing:border-box; }
.mom-info-grid button { padding:0; border:0; color:var(--green); background:transparent; }
.mom-detail-tabs { height:36px; margin-top:20px; display:flex; align-items:flex-end; border-bottom:1px solid #ddd; }
.mom-detail-tabs button { height:36px; padding:0 18px; border:1px solid #ddd; border-bottom:0; background:#fff; }
.mom-detail-tabs button.active { color:var(--green); border-top-color:var(--green); }
.mom-content-preview { padding:16px 0 24px; border-bottom:1px solid #eee; }
.mom-content-preview p { max-width:680px; margin:0 0 14px; color:#444; line-height:22px; white-space:pre-wrap; }
.mom-link-preview { width:min(360px,100%); min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px 9px 12px; border:1px solid #dedede; border-radius:3px; background:#fff; box-sizing:border-box; }
.mom-link-preview img { width:58px; height:58px; flex:0 0 58px; object-fit:cover; }
.mom-link-preview > div { min-width:0; }
.mom-link-preview strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:400; }
.mom-link-preview small { display:block; margin-top:5px; }
.mom-link-preview small,.mom-content-preview > small,.mom-comments small { color:#999; }
.mom-content-preview > small { display:block; margin-top:14px; }
.mom-detail-image-grid { width:min(408px,100%); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
.mom-detail-image-grid.single { width:min(300px,100%); grid-template-columns:1fr; }
.mom-detail-image-grid.double { width:min(360px,100%); grid-template-columns:repeat(2,minmax(0,1fr)); }
.mom-detail-image-grid figure { min-width:0; position:relative; aspect-ratio:1; margin:0; overflow:hidden; background:#f3f3f3; }
.mom-detail-image-grid.single figure { aspect-ratio:4/3; }
.mom-detail-image-grid figure img { width:100%; height:100%; display:block; object-fit:cover; }
.mom-detail-image-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:5px 7px; overflow:hidden; color:#fff; background:rgba(0,0,0,.52); font-size:12px; line-height:18px; text-overflow:ellipsis; white-space:nowrap; }
.mom-detail-rich-media,.mom-detail-link-wrap,.mom-detail-video { width:min(360px,100%); position:relative; }
.mom-detail-rich-media > :first-child { width:100%; max-width:100%; margin:0; box-sizing:border-box; }
.mom-detail-video video { width:100%; max-height:280px; display:block; border-radius:3px; background:#111; object-fit:contain; }
.mom-content-type-label { display:block; width:max-content; margin-top:6px; padding:0; color:#888; font-size:12px; line-height:18px; }
.mom-record-media { width:246px; min-height:68px; display:flex; align-items:center; gap:10px; overflow:hidden; border:1px solid #e0e0e0; background:#fff; box-sizing:border-box; }
.mom-record-media.image { height:104px; position:relative; align-items:stretch; }
.mom-record-media.image img { width:100%; height:100%; display:block; object-fit:cover; }
.mom-record-media.image span { position:absolute; right:0; bottom:0; left:0; padding:5px 8px; overflow:hidden; color:#fff; background:rgba(0,0,0,.48); text-overflow:ellipsis; white-space:nowrap; }
.mom-record-media.video,.mom-record-media.channel { padding:9px 12px; }
.mom-record-media.video > i { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:50%; color:#fff; background:#555; font-style:normal; }
.mom-record-media.channel > i { width:48px; height:48px; display:grid; place-items:center; flex:0 0 48px; border-radius:4px; color:#fff; background:#28a745; font-size:12px; font-style:normal; }
.mom-record-media > div { min-width:0; }
.mom-record-media strong,.mom-record-media small { display:block; overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.mom-record-media small { margin-top:5px; color:#999; }
.mom-save-toast { position:fixed; top:72px; left:50%; z-index:1000; min-width:190px; padding:10px 18px; border-radius:3px; color:#fff; background:rgba(30,30,30,.88); box-shadow:0 5px 16px rgba(0,0,0,.2); text-align:center; transform:translateX(-50%); }
.mom-comments { margin-top:8px; }
.mom-comments h4 { margin:0 0 10px; }
.mom-comments dl { min-height:64px; margin:0; padding:10px 14px; background:#f7f7f7; box-sizing:border-box; }
.mom-comments dl > div { display:block; }
.mom-comments dt,.mom-comments dd { margin:0; min-height:22px; }
.mom-detail > section > footer { height:50px; flex:0 0 50px; display:flex; align-items:center; justify-content:center; gap:8px; border-top:1px solid #ddd; background:#fff; }
.mom-detail > section > footer .primary-ghost { color:var(--green); border-color:var(--green); }
.mom-wechat-detail { padding:0 0 18px; }
.mom-wechat-toolbar { height:54px; display:flex; align-items:flex-start; padding-top:11px; box-sizing:border-box; }
.mom-wechat-search { width:180px; height:32px; flex:0 0 180px; display:grid; grid-template-columns:minmax(0,1fr) 34px; border-radius:3px; box-sizing:border-box; }
.mom-wechat-search input { width:100%; min-width:0; height:30px; padding:0 10px; border:0; box-sizing:border-box; }
.mom-wechat-search .search-button { width:34px; min-width:34px; border-width:0 0 0 1px; }
.mom-wechat-detail table { width:100%; min-width:0; border-collapse:collapse; table-layout:fixed; }
.mom-wechat-detail th { height:44px; padding:0 12px; color:#444; font-weight:500; text-align:left; background:#f5f5f5; }
.mom-wechat-detail th:first-child { width:42%; }
.mom-wechat-detail th:not(:first-child) { width:19.333%; }
.mom-wechat-detail td { height:58px; padding:0 12px; border-bottom:1px solid #eee; color:#555; box-sizing:border-box; }
.mom-wechat-detail tbody tr:nth-child(even) td { background:#f7f7f7; }
.mom-wechat-employee { min-width:0; display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:8px; }
.mom-wechat-avatar { width:34px; height:34px; border-radius:4px; }
.mom-wechat-avatar.online::after { content:""; position:absolute; top:2px; right:2px; width:7px; height:7px; border:1px solid #fff; border-radius:50%; background:#33bd35; box-sizing:border-box; }
.mom-wechat-avatar.offline { filter:grayscale(1); opacity:.72; }
.mom-wechat-avatar em { position:absolute; right:0; bottom:0; left:0; height:14px; display:grid; place-items:center; color:#fff; background:rgba(80,80,80,.78); font-size:10px; font-style:normal; line-height:14px; }
.mom-wechat-info { min-width:0; display:flex; flex-direction:column; gap:1px; }
.mom-wechat-employee strong { overflow:hidden; color:#333; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.mom-wechat-employee small { overflow:hidden; color:#f3982d; text-overflow:ellipsis; white-space:nowrap; }
.mom-delivery-status { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.mom-delivery-status i { width:13px; height:13px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font:10px/11px Arial,sans-serif; font-style:normal; box-sizing:border-box; }
.mom-delivery-status.failed i { color:#ff5b57; }
.mom-delivery-status.success i { color:#33bd35; }
.mom-delivery-status.unsent i { color:#ff7d43; }
.mom-wechat-empty { height:90px; display:grid; place-items:center; color:#aaa; }
.mom-create-page { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#ededed; }
.mom-create-head { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:12px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.mom-create-head strong { color:#222; font-size:15px; font-weight:500; }
.mom-create-scroll { flex:1; min-height:0; padding:14px 0 28px; overflow:auto; box-sizing:border-box; }
.mom-create-layout { width:min(1000px,calc(100% - 48px)); margin:0 auto; }
.mom-create-form { width:100%; min-height:0; margin:0; padding:0; background:transparent; box-sizing:border-box; }
.mom-create-section { margin:0 0 14px; overflow:visible; border:1px solid #e5e5e5; border-radius:3px; background:#fff; }
.mom-create-section > h4 { height:50px; display:flex; align-items:center; gap:10px; margin:0; padding:0 22px; border-bottom:1px solid #e8e8e8; color:#333; font-size:14px; font-weight:500; box-sizing:border-box; }
.mom-create-section > h4 small { color:#aaa; font-size:12px; font-weight:400; }
.mom-create-section-body { padding:18px 20px 20px; }
.mom-create-row,.mom-target-row { min-height:36px; display:grid; grid-template-columns:120px minmax(0,1fr); align-items:start; gap:0; margin:0 0 12px; }
.mom-create-row > span,.mom-target-row > span { height:34px; display:flex; align-items:center; color:#555; }
.mom-create-row > div,.mom-create-row > button,.mom-create-row > .v110-shared-select { justify-self:start; }
.mom-create-input { width:min(748px,100%); height:34px; display:flex; align-items:center; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; }
.mom-create-basic .mom-create-input { width:min(748px,100%); }
.mom-create-basic [data-v110-select="mom-create-group"] { width:min(300px,100%); }
.mom-create-input input { min-width:0; height:32px; flex:1; padding:0 10px; border:0; background:transparent; }
.mom-create-input small { width:58px; flex:0 0 58px; color:#999; text-align:center; }
.mom-create-select { width:300px; }
.mom-send-time-controls { display:flex; align-items:center; gap:8px; }
.mom-send-time-controls .mom-create-send-select { width:120px; flex:0 0 120px; }
.mom-schedule-date-picker { width:180px; height:34px; position:relative; flex:0 0 180px; }
.mom-schedule-date-trigger { width:100%; height:34px; position:relative; display:flex; align-items:center; padding:0 34px 0 10px; overflow:hidden; color:#aaa; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; cursor:pointer; }
.mom-schedule-date-picker.open .mom-schedule-date-trigger { border-color:var(--green); box-shadow:0 0 0 2px rgba(42,166,18,.08); }
.mom-schedule-date-trigger.has-value { color:#555; }
.mom-schedule-date-trigger > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mom-schedule-date-trigger > i { width:13px; height:13px; position:absolute; right:11px; top:9px; border:1px solid #aaa; border-radius:1px; box-sizing:border-box; }
.mom-schedule-date-trigger > i::before { content:""; position:absolute; top:3px; right:0; left:0; border-top:1px solid #aaa; }
.mom-schedule-date-panel { width:284px; position:absolute; z-index:150; top:38px; right:0; border:1px solid #e5e5e5; border-radius:3px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.14); }
.mom-schedule-date-panel.hidden { display:none; }
.mom-schedule-date-panel .shared-date-calendars { grid-template-columns:1fr; }
.mom-schedule-date-panel .shared-date-shortcuts { justify-content:flex-start; }
.mom-choose-wechat { height:32px; padding:0 14px; color:#666; border-color:#ddd; background:#fff; }
.mom-create-row:has(> .mom-choose-wechat) { pointer-events:none; }
.mom-create-row:has(> .mom-choose-wechat) .mom-choose-wechat { pointer-events:auto; cursor:pointer; }
.mom-target-row { margin-bottom:0; }
.mom-target-box { width:min(748px,100%); border:1px solid #ddd; background:#fff; box-sizing:border-box; }
.mom-target-box-head { height:46px; display:flex; align-items:center; padding:0 14px; background:#f7f8f9; box-sizing:border-box; }
.mom-target-segment { width:206px; height:30px; display:flex; flex:0 0 206px; align-self:center; align-items:center; margin:0; padding:0 6px; border:1px solid #e5e5e5; border-radius:15px; background:#fff; box-sizing:border-box; transform:translateY(1px); }
.mom-target-segment label { height:28px; position:relative; display:flex; flex:1 1 50%; align-items:center; justify-content:center; gap:0; margin:0; padding:0 4px; color:#666; line-height:28px; box-sizing:border-box; cursor:pointer; }
.mom-target-segment label > input {
  width:1px;
  height:1px;
  min-height:1px;
  position:absolute;
  overflow:hidden;
  margin:0;
  opacity:0;
  pointer-events:none;
}
.mom-target-segment label > span { height:100%; display:inline-flex; align-items:center; gap:6px; line-height:20px; white-space:nowrap; }
.mom-target-segment label > span::before {
  content:"";
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:1px solid #bfbfbf;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
}
.mom-target-segment label > input:checked + span::before { border-color:var(--green); background:var(--green); box-shadow:inset 0 0 0 3px #fff; }
.mom-target-segment label > input:focus-visible + span::before { outline:2px solid rgba(41,154,24,.22); outline-offset:2px; }
.mom-target-box-head > button { margin-left:auto; padding:0; color:var(--green); border:0; background:transparent; }
.mom-target-box-head > i { width:15px; height:15px; display:grid; place-items:center; margin-left:7px; border:1px solid #aaa; border-radius:50%; color:#999; font:10px/13px Arial,sans-serif; font-style:normal; }
.mom-target-box-body { height:54px; display:flex; align-items:center; gap:8px; padding:0 16px; border-top:1px solid #ddd; color:#999; box-sizing:border-box; }
.mom-target-box-body > i { width:14px; height:14px; display:grid; place-items:center; border:1px solid #aaa; border-radius:50%; font:10px/12px Arial,sans-serif; font-style:normal; }
.mom-dialog.mom-condition-dialog { width:min(720px,calc(100vw - 40px)); }
.mom-condition-dialog > section { max-height:min(620px,calc(100vh - 170px)); padding:18px 20px 20px; overflow:auto; background:#f6f7f8; }
.mom-condition-meta { min-height:44px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:24px; padding:0 16px; border:1px solid #e3e3e3; background:#fff; color:#666; box-sizing:border-box; }
.mom-condition-meta b { color:#333; font-weight:400; }
.mom-condition-groups > section { margin-top:12px; border:1px solid #dedede; background:#fff; }
.mom-condition-groups > section > header { height:44px; display:flex; align-items:center; padding:0 16px; border-bottom:1px solid #e7e7e7; background:#fafafa; }
.mom-condition-groups > section > header strong { font-size:14px; font-weight:400; }
.mom-condition-rows { padding:12px 18px 14px; }
.mom-condition-rows > div { min-height:36px; display:grid; grid-template-columns:112px 112px minmax(0,1fr); align-items:center; gap:12px; color:#555; }
.mom-condition-rows > div > span { color:#777; white-space:nowrap; }
.mom-condition-rows b,.mom-condition-rows p,.mom-condition-rows em { margin:0; color:#555; font-weight:400; font-style:normal; }
.mom-condition-rows .mom-condition-wide > p { grid-column:2 / -1; white-space:nowrap; }
.mom-condition-tags { min-width:0; overflow:hidden; color:#555; text-overflow:ellipsis; white-space:nowrap; }
.mom-condition-exclude { margin:0 18px 16px; padding-top:12px; border-top:1px solid #e5e5e5; }
.mom-condition-exclude > strong { display:block; margin-bottom:4px; color:#555; font-weight:400; line-height:24px; }
.mom-condition-exclude .mom-condition-rows { padding:4px 0 0; }
@media (max-width:640px) {
  .mom-condition-dialog > section { padding:12px; }
  .mom-condition-meta { grid-template-columns:1fr; gap:4px; padding:8px 12px; }
  .mom-condition-rows { padding:10px 12px; }
  .mom-condition-rows > div { grid-template-columns:96px 104px minmax(0,1fr); gap:8px; }
  .mom-condition-exclude { margin-right:12px; margin-left:12px; }
}
.mom-condition-all { min-height:90px; display:flex; align-items:center; gap:9px; margin-top:14px; padding:0 16px; border:1px solid #e3e3e3; background:#fff; color:#777; }
.mom-condition-all i { width:14px; height:14px; display:grid; place-items:center; border:1px solid #aaa; border-radius:50%; font:10px/12px Arial,sans-serif; font-style:normal; }
.mom-target-box.filter-mode { background:#fafafa; }
[data-component-name="筛选客户"] { font-size:14px; line-height:20px; }
[data-component-name="筛选客户"] button,
[data-component-name="筛选客户"] input,
[data-component-name="筛选客户"] .shared-select-trigger,
[data-component-name="筛选客户"] .shared-select-menu button,
[data-component-name="筛选客户"] .shared-date-range-picker > input { font-family:inherit; font-size:14px; font-weight:400; }
[data-component-name="筛选客户群"] { font-size:14px; line-height:20px; }
[data-component-name="筛选客户群"] button,
[data-component-name="筛选客户群"] input,
[data-component-name="筛选客户群"] .shared-select-trigger,
[data-component-name="筛选客户群"] .shared-select-menu button,
[data-component-name="筛选客户群"] .shared-date-range-picker > input { font-family:inherit; font-size:14px; font-weight:400; }
.shared-customer-filter { padding:14px 16px 16px; border-top:1px solid #ddd; box-sizing:border-box; }
.mom-filter-group { border:1px solid #e5e5e5; background:#fff; }
.mom-filter-group + .mom-filter-group { margin-top:14px; }
.mom-filter-group > header { height:46px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #e8e8e8; box-sizing:border-box; }
.mom-filter-group > header strong { font-size:14px; font-weight:500; }
.mom-filter-group > header > div { display:flex; align-items:center; gap:8px; }
.mom-filter-add,.mom-filter-remove { width:22px; height:22px; display:grid; place-items:center; padding:0; border:1px solid var(--green); color:var(--green); background:#fff; font:20px/18px Arial,sans-serif; }
.mom-filter-group-body { padding:8px 14px 14px; }
.mom-filter-condition-rows { padding:0; }
.mom-filter-field { min-height:48px; display:grid; grid-template-columns:120px minmax(0,1fr); align-items:center; }
.mom-filter-field > span { color:#666; font-size:14px; line-height:20px; }
.mom-filter-field > div { min-width:0; display:flex; align-items:center; gap:8px; }
.mom-filter-operator { width:128px; flex:0 0 128px; }
.mom-filter-value { width:240px; flex:0 0 240px; }
.mom-filter-tag-control,
.shared-customer-filter .mom-filter-tag-trigger { width:360px; max-width:calc(100% - 136px); min-width:0; flex:0 1 360px; }
.mom-filter-tag-trigger {
  width:100%;
  height:32px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 11px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  color:#aaa;
  font-size:14px;
  line-height:20px;
  background:#fff;
  box-sizing:border-box;
  text-align:left;
}
.mom-filter-tag-trigger:hover,.mom-filter-tag-trigger:focus { border-color:#72c260; outline:0; }
.mom-filter-tag-trigger.has-value { color:#555; }
.mom-filter-tag-trigger > span {
  min-width:0;
  flex:1;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.mom-filter-tag-trigger > i {
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-right:1px solid #aaa;
  border-bottom:1px solid #aaa;
  transform:rotate(45deg) translateY(-2px);
  box-sizing:border-box;
}
.mom-filter-single,.mom-filter-date,.mom-filter-date .shared-date-range-picker { width:376px; }
.mom-filter-date .shared-date-range-picker { height:32px; flex:0 0 376px; }
.mom-filter-date .shared-date-range-picker > input,.mom-filter-date .shared-date-range-picker > b,.mom-filter-date .shared-date-calendar-button { height:30px; line-height:30px; }
.mom-filter-date .shared-date-range-panel { left:0; right:auto; z-index:90; }
.mom-filter-exclude { margin-top:8px; padding-top:8px; border-top:1px solid #e5e5e5; }
.mom-filter-exclude > label { height:34px; display:inline-flex; align-items:center; gap:8px; color:#555; font-size:14px; line-height:20px; cursor:pointer; }
.mom-filter-exclude > label input { flex:0 0 16px; }
.mom-filter-exclude:has(> label input:not(:checked)) > .mom-filter-condition-rows { display:none; }
.shared-customer-group-filter { padding:14px 16px 16px; border-top:1px solid #ddd; overflow:visible; box-sizing:border-box; }
.shared-customer-group-filter .mom-filter-group,
.shared-customer-group-filter .mom-filter-group-body,
.shared-customer-group-filter .mom-filter-field { overflow:visible; }
.shared-customer-group-filter .shared-customer-group-keyword-field { align-items:start; padding:8px 0; box-sizing:border-box; }
.shared-customer-group-filter .shared-customer-group-keyword-field > span { padding-top:6px; }
.shared-customer-group-filter .shared-customer-group-keyword-field > div { align-items:flex-start; }
.shared-customer-group-filter .mom-filter-tag-trigger { width:360px; max-width:calc(100% - 136px); flex:0 1 360px; }
.shared-customer-group-keyword-wrap { width:360px; max-width:calc(100% - 136px); min-width:0; flex:0 1 360px; }
.shared-customer-group-keyword-control { width:100%; height:32px; display:grid; grid-template-columns:minmax(0,1fr) 32px; }
.shared-customer-group-keyword-control > input { width:100%; height:32px; min-height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px 0 0 3px; color:#555; background:#fff; outline:0; box-sizing:border-box; }
.shared-customer-group-keyword-control > input:focus { position:relative; z-index:1; border-color:#72c260; }
.shared-customer-group-keyword-control > button { width:32px; height:32px; padding:0; border:1px solid #d9d9d9; border-left:0; border-radius:0 3px 3px 0; color:var(--green); background:#fff; font-size:18px; cursor:pointer; }
.shared-customer-group-keyword-control > button:hover { border-color:#72c260; background:#f4fbf2; }
.shared-customer-group-keyword-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
.shared-customer-group-keyword-tags > span { height:24px; display:inline-flex; align-items:center; gap:4px; padding:0 7px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fafafa; }
.shared-customer-group-keyword-tags button { width:14px; height:14px; padding:0; border:0; color:#999; line-height:14px; background:transparent; cursor:pointer; }
.shared-customer-group-number { width:376px; display:grid !important; grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr); align-items:center; gap:0 !important; }
.shared-customer-group-number input { width:100%; height:32px; min-height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; outline:0; box-sizing:border-box; }
.shared-customer-group-number input:focus { border-color:#72c260; }
.shared-customer-group-number b { color:#999; font-weight:400; text-align:center; }
@media (max-width:760px) {
  .mom-filter-field { grid-template-columns:108px minmax(0,1fr); }
  .mom-filter-field > div { width:100%; }
  .mom-filter-operator { width:34%; flex-basis:34%; }
  .mom-filter-value { width:auto; min-width:0; flex:1; }
  .mom-filter-tag-control,
  .shared-customer-filter .mom-filter-tag-trigger { width:auto; max-width:none; min-width:0; flex:1; }
  .mom-filter-single,.mom-filter-date,.mom-filter-date .shared-date-range-picker { width:100%; }
  .shared-customer-group-filter .mom-filter-tag-trigger,.shared-customer-group-keyword-wrap { width:auto; max-width:none; min-width:0; flex:1; }
  .shared-customer-group-number { width:100%; }
}
.mom-editor { border:1px solid #ddd; background:#fff; box-sizing:border-box; }
.mom-content-editor { width:min(748px,100%); }
.mom-editor > header { height:42px; display:flex; align-items:center; padding:0 10px; border-bottom:1px solid #e5e5e5; background:#fafafa; }
.mom-editor > header button:first-child { width:28px; height:28px; padding:0; border:0; color:#666; background:transparent; font-size:23px; line-height:28px; }
.mom-editor > header .text-button { margin-left:auto; padding:0 6px; color:var(--green); border:0; background:transparent; }
.mom-editor textarea { width:100%; height:100px; min-height:100px; display:block; padding:14px 12px; border:0; border-radius:0; resize:none; box-sizing:border-box; }
.mom-editor > footer { min-height:49px; display:flex; align-items:center; padding:0 10px; border-top:1px solid #e5e5e5; color:#999; box-sizing:border-box; }
.mom-content-editor > footer { gap:16px; }
.mom-content-editor > footer label { display:flex; align-items:center; gap:6px; color:#666; transform:translateY(4px); }
.mom-image-upload-panel { padding:12px 18px 10px; border-top:1px solid #e5e5e5; background:#fafafa; box-sizing:border-box; }
.mom-image-upload-grid { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; }
.mom-image-upload-item,.mom-image-upload-button { width:98px; height:98px; position:relative; flex:0 0 98px; border:1px solid #ddd; border-radius:3px; background:#fff; box-sizing:border-box; }
.mom-image-upload-item { padding:7px; }
.mom-image-upload-item img { width:100%; height:100%; display:block; object-fit:cover; }
.mom-image-upload-item button { width:20px; height:20px; position:absolute; top:-7px; right:-7px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:rgba(60,60,60,.78); font-size:15px; line-height:20px; }
.mom-image-upload-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#666; }
.mom-image-upload-button i { color:#777; font-size:24px; font-style:normal; line-height:20px; }
.mom-image-upload-button span { font-size:14px; }
.mom-image-upload-panel > small { display:block; margin-top:12px; color:#bbb; line-height:22px; }
.mom-video-upload-panel { min-height:154px; padding:12px 18px 10px; border-top:1px solid #e5e5e5; background:#fafafa; box-sizing:border-box; }
.mom-video-upload-button,.mom-video-upload-item { width:98px; height:98px; position:relative; border:1px solid #ddd; border-radius:3px; background:#fff; box-sizing:border-box; }
.mom-video-upload-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#666; }
.mom-video-upload-button i { color:#777; font-size:24px; font-style:normal; line-height:20px; }
.mom-video-upload-item video { width:100%; height:100%; display:block; background:#111; object-fit:contain; }
.mom-video-upload-item > button { width:20px; height:20px; position:absolute; z-index:2; top:-7px; right:-7px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:rgba(60,60,60,.78); font-size:15px; line-height:20px; }
.mom-video-upload-panel > small { display:block; margin-top:12px; color:#bbb; line-height:22px; }
.mom-link-panel { min-height:92px; padding:12px 18px 10px; border-top:1px solid #e5e5e5; background:#fafafa; box-sizing:border-box; }
.mom-link-panel > .ghost-button { height:32px; color:#666; border-color:#ddd; }
.mom-link-card { width:246px; min-height:68px; display:flex; align-items:center; gap:10px; margin-bottom:10px; padding:7px; border:1px solid #ddd; background:#fff; box-sizing:border-box; }
.mom-link-card img,.mom-link-card-placeholder { width:54px; height:54px; flex:0 0 54px; display:block; background:#eee; object-fit:cover; }
.mom-link-card > div { min-width:0; }
.mom-link-card strong,.mom-link-card p { display:block; overflow:hidden; margin:0; color:#555; font-weight:400; line-height:22px; text-overflow:ellipsis; white-space:nowrap; }
.mom-link-card p { color:#777; }
.mom-link-dialog { width:min(560px,calc(100vw - 40px)); }
.mom-link-dialog > section { padding:18px 20px 14px; }
.mom-link-dialog > section > label { min-height:44px; display:grid; grid-template-columns:42px minmax(0,1fr); align-items:start; gap:0; }
.mom-link-dialog > section > label > span { height:32px; display:flex; align-items:center; color:#555; }
.mom-link-dialog > section input,.mom-link-dialog > section textarea { width:100%; border:1px solid #ddd; box-sizing:border-box; }
.mom-link-dialog > section input { height:32px; padding:0 10px; }
.mom-link-description-row { grid-template-columns:42px minmax(0,1fr) 104px !important; gap:10px !important; }
.mom-link-description-row textarea { height:108px; padding:9px 10px; resize:none; }
.mom-link-cover { width:104px; height:98px; position:relative; display:grid; place-items:center; border:1px dashed #ddd; background:#fafafa; box-sizing:border-box; }
.mom-link-cover img { width:90px; height:90px; object-fit:cover; }
.mom-link-cover > button { height:32px; }
.mom-link-cover img + button { width:20px; height:20px; position:absolute; top:-7px; right:-7px; padding:0; border:0; border-radius:50%; color:#fff; background:rgba(60,60,60,.78); }
.mom-link-tip { display:flex; align-items:center; gap:7px; margin:0 0 0 42px; color:#888; line-height:26px; }
.mom-link-tip i { width:14px; height:14px; display:grid; place-items:center; border:1px solid #888; border-radius:50%; font:10px/12px Arial,sans-serif; font-style:normal; }
.mom-channel-panel { min-height:92px; padding:12px 18px 10px; border-top:1px solid #e5e5e5; background:#fafafa; box-sizing:border-box; }
.mom-channel-panel > .ghost-button { height:32px; color:#666; border-color:#ddd; }
.mom-channel-echo { width:280px; margin-bottom:10px; }
.mom-channel-echo .shared-video-channel-card { width:100%; max-width:100%; margin:0; box-sizing:border-box; }
.mom-dialog.mom-channel-picker-dialog { width:min(1000px,calc(100vw - 64px)); height:min(720px,calc(100vh - 48px)); }
.mom-dialog.mom-channel-picker-dialog > header { flex:0 0 54px; }
.mom-dialog.mom-channel-picker-dialog > section { min-height:0; flex:1; padding:0; overflow:hidden; }
.mom-dialog.mom-channel-picker-dialog .shared-material-picker { height:100%; border:0; box-sizing:border-box; }
.mom-dialog.mom-channel-picker-dialog > footer { flex:0 0 58px; }
.mom-send-time-row { margin-top:18px; margin-bottom:0; }
.mom-create-form input[type="radio"],.mom-create-form input[type="checkbox"] { width:16px; height:16px; min-height:16px; margin:0; accent-color:var(--green); }
.mom-create-form .primary-ghost { color:var(--green); border-color:var(--green); }
.mom-comment-item + .mom-comment-item { margin-top:14px; }
.mom-comment-editor { width:min(668px,100%); }
.mom-comment-editor > footer { padding:0 8px; }
.mom-comment-editor > footer > span { margin-right:8px; }
.mom-comment-editor > footer > input { width:78px; height:32px; min-height:32px; padding:0 10px; border:1px solid #ddd; box-sizing:border-box; }
.mom-comment-unit { width:82px; margin-left:-1px; }
.mom-add-comment { width:min(668px,100%); height:40px; padding:0; border:1px dashed var(--green); color:#777; background:#fff; }
.mom-add-comment:disabled { border-color:#ccc; color:#aaa; cursor:not-allowed; }
.mom-comment-section .mom-create-row:last-child { margin-bottom:0; }
.mom-append-page .mom-create-head { height:42px; flex-basis:42px; }
.mom-append-page .mom-create-scroll { padding-top:22px; }
.mom-append-section .mom-create-section-body { padding:22px 20px 24px; }
.mom-append-section .mom-create-row > span { justify-content:flex-end; padding-right:10px; box-sizing:border-box; }
.mom-append-comment-item + .mom-append-comment-item { margin-top:14px; }
.mom-append-comment-editor { width:min(748px,100%); }
.mom-append-comment-editor > footer { height:49px; min-height:49px; gap:8px; padding:0 8px; }
.mom-append-comment-editor > footer > span { color:#999; white-space:nowrap; }
.mom-append-date-picker { width:196px; flex:0 0 196px; }
.mom-append-date-panel { right:auto; left:0; z-index:180; }
.mom-append-add-row { margin-bottom:0; }
.mom-append-add-row .mom-add-comment { width:min(748px,100%); }
.mom-delete-section > h4 { gap:8px; overflow:visible; }
.mom-delete-section > h4 .mom-switch { width:40px; height:22px; position:relative; display:inline-flex; flex:0 0 40px; align-items:center; align-self:center; margin:0; vertical-align:middle; }
.mom-switch input { width:1px!important; height:1px!important; min-height:1px!important; position:absolute; top:0; left:0; margin:0; opacity:0; pointer-events:none; }
.mom-switch i { width:40px; height:22px; position:relative; display:block; flex:0 0 40px; border-radius:11px; background:#c9c9c9; cursor:pointer; box-sizing:border-box; }
.mom-switch i::after { content:""; width:18px; height:18px; position:absolute; top:2px; left:2px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:left .15s ease; }
.mom-switch input:checked + i { background:var(--green); }
.mom-switch input:checked + i::after { left:20px; }
.mom-switch input:focus-visible + i { outline:2px solid rgba(42,166,18,.24); outline-offset:2px; }
.mom-delete-time-row { margin-bottom:8px; }
.mom-delete-time { height:32px; display:flex; align-items:center; }
.mom-delete-time > span { margin-right:10px; color:#777; }
.mom-delete-time input { width:68px; height:32px; min-height:32px; padding:0 10px; border:1px solid #ddd; box-sizing:border-box; }
.mom-delete-time b { width:52px; height:32px; display:grid; place-items:center; margin-left:-1px; border:1px solid #ddd; color:#777; background:#fafafa; font-weight:400; box-sizing:border-box; }
.mom-delete-notes { color:#999; line-height:24px; }
.mom-delete-notes p { margin:0; }
.mom-create-footer { height:56px; flex:0 0 56px; display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:0 24px; border-top:1px solid #dedede; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.04); box-sizing:border-box; }
.mom-create-footer button { min-width:96px; height:32px; }
.mom-create-page:not(.mom-append-page) > .mom-create-footer { justify-content:center; padding-right:0; padding-left:0; }
.mom-modal { position:fixed; inset:0; z-index:95; display:grid; place-items:center; background:rgba(0,0,0,.44); }
.mom-modal.hidden { display:none; }
.mom-warn { min-height:62px; display:flex; align-items:flex-start; gap:9px; margin-bottom:12px; padding:10px 14px; border:1px solid #ffd4ad; background:#fff3e8; color:#555; line-height:20px; box-sizing:border-box; }
.mom-warn > i { width:14px; height:14px; display:grid; place-items:center; margin-top:2px; border-radius:50%; color:#fff; background:#ff8a00; font:10px/14px Arial,sans-serif; font-style:normal; }
.mom-warn p { margin:0; }
.mom-warn p + p { margin-top:2px; }
.mom-dialog > header { height:54px; padding:0 20px; display:flex; align-items:center; border-bottom:1px solid #eee; }
.mom-dialog > header strong { font-size:16px; }
.mom-dialog > header button { margin-left:auto; border:0; color:#999; font-size:24px; background:transparent; }
.mom-dialog textarea { width:100%; min-height:92px; padding:10px; border:1px solid #ddd; border-radius:3px; resize:none; box-sizing:border-box; }
.mom-radio-row { height:34px; display:flex; align-items:center; gap:18px; }
.mom-radio-row label { display:inline-flex; align-items:center; gap:6px; min-height:32px; margin:0 14px 0 0; }
.mom-dialog { width:520px; max-width:calc(100vw - 40px); max-height:calc(100vh - 60px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border-radius:4px; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.mom-dialog > section { min-height:0; overflow:auto; padding:20px; }
.mom-dialog > footer { height:58px; padding:0 20px; display:flex; justify-content:flex-end; align-items:center; gap:10px; border-top:1px solid #eee; }
.mom-group-manage-dialog { width:520px; height:min(620px,calc(100vh - 24px)); }
.mom-group-manage-dialog > header { height:46px; flex:0 0 46px; }
.mom-group-manage-dialog > header strong,.mom-group-edit-dialog > header strong { font-weight:500; }
.mom-group-manage-dialog > section { flex:1; padding:24px; scrollbar-width:thin; }
.mom-group-manage-dialog > footer { height:54px; flex:0 0 54px; }
.mom-group-manage-dialog > footer button,.mom-group-edit-dialog > footer button { min-width:64px; height:32px; font-weight:400; }
.mom-group-manage-list { display:flex; flex-direction:column; gap:11px; }
.mom-group-manage-row { min-height:32px; position:relative; display:grid; grid-template-columns:minmax(0,1fr) 32px 32px; gap:10px; }
.mom-group-manage-row > input { width:100%; height:32px; min-height:32px; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#666; background:#fff; font-size:13px; font-weight:400; box-sizing:border-box; }
.mom-group-row-action { width:32px; height:32px; position:relative; padding:0; border:1px solid #ddd; border-radius:3px; background:#fff; }
.mom-group-row-action::before { content:""; width:14px; height:14px; position:absolute; top:8px; left:8px; background:#666; }
.mom-group-row-action.edit::before { -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/contain no-repeat; }
.mom-group-row-action.delete::before { -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 10v6M14 10v6'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 10v6M14 10v6'/%3E%3C/svg%3E") center/contain no-repeat; }
.mom-group-row-action:hover { border-color:#bbb; background:#fafafa; }
.mom-group-row-action:hover::before { background:var(--green); }
.mom-group-submodal { position:fixed; z-index:200; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.4); }
.mom-group-edit-dialog { width:580px; max-height:none; }
.mom-group-edit-dialog > header { height:48px; flex:0 0 48px; }
.mom-group-edit-dialog > section { padding:26px 24px 24px; }
.mom-group-edit-dialog > section input { width:100%; height:32px; min-height:32px; padding:0 12px; border:1px solid #ddd; border-radius:3px; color:#666; font-size:13px; font-weight:400; box-sizing:border-box; }
.mom-group-edit-dialog > footer { height:54px; flex:0 0 54px; }
.mom-group-delete-popover { width:140px; height:92px; position:absolute; z-index:10; top:-5px; right:39px; padding:14px 12px 10px; border-radius:3px; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.18); box-sizing:border-box; }
.mom-group-delete-popover::after { content:""; position:absolute; top:18px; right:-6px; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:6px solid #fff; }
.mom-group-delete-popover > div { height:24px; display:flex; align-items:center; gap:7px; color:#555; white-space:nowrap; }
.mom-group-delete-popover > div i { width:14px; height:14px; flex:0 0 14px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#f5a623; font:10px/14px Arial,sans-serif; }
.mom-group-delete-popover footer { margin-top:10px; display:flex; justify-content:flex-end; gap:8px; }
.mom-group-delete-popover footer button { min-width:44px; height:26px; min-height:26px; padding:0 8px; font-size:12px; font-weight:400; }
.mom-setting-dialog { width:520px; }
.mom-setting-dialog > header strong { font-weight:500; }
.mom-setting-dialog > section { padding:24px; }
.mom-setting-toggle-row { height:56px; display:flex; align-items:center; gap:14px; padding:0 18px; border-radius:3px; color:#666; background:#edf3ff; box-sizing:border-box; }
.mom-setting-toggle-row input { width:44px; height:22px; min-height:22px; position:relative; flex:0 0 44px; margin:0; appearance:none; -webkit-appearance:none; border:0; border-radius:12px; background:#c8c8c8; cursor:pointer; transition:background .15s ease; }
.mom-setting-toggle-row input::after { content:""; width:18px; height:18px; position:absolute; top:2px; left:2px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.22); transition:left .15s ease; }
.mom-setting-toggle-row input:checked { background:var(--green); }
.mom-setting-toggle-row input:checked::after { left:24px; }
.mom-setting-toggle-row input:focus-visible { outline:2px solid rgba(42,166,18,.24); outline-offset:2px; }
.mom-setting-dialog ol { margin:18px 0 0; padding-left:20px; color:#999; font-size:13px; line-height:1.75; }
.mom-setting-dialog li { padding-left:2px; }
.mom-setting-dialog > footer button { min-width:64px; height:32px; font-weight:400; }
.mom-modify-task-dialog > section { display:flex; flex-direction:column; gap:16px; padding:24px; overflow:visible; }
.mom-modify-task-dialog > section > label { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:12px; color:#555; }
.mom-modify-task-dialog > section > label > span { text-align:right; }
.mom-modify-task-dialog > section input { width:100%; height:32px; min-height:32px; padding:0 10px; border:1px solid #ddd; border-radius:3px; box-sizing:border-box; }
.mom-modify-group-select { width:100%; }
.mom-wechat-picker-dialog > footer,
.sop-wechat-picker-dialog > footer { justify-content:space-between; }
.mom-wechat-picker-dialog > footer > span,
.sop-wechat-picker-dialog > footer > span { color:#666; }
.mom-wechat-picker-dialog > footer b,
.sop-wechat-picker-dialog > footer b { color:var(--green); }
.mom-picker-notice { min-height:34px; margin-bottom:12px; padding:7px 10px; border-radius:3px; color:#8c6b45; background:#fff3e6; box-sizing:border-box; line-height:20px; }
.mom-wechat-pick-list { margin-top:12px; border:1px solid #eee; border-radius:3px; overflow:hidden; }
.mom-wechat-pick-list label { min-height:58px; display:grid; grid-template-columns:22px minmax(0,1fr) 64px; align-items:center; gap:10px; padding:0 12px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }
.mom-wechat-pick-list label:last-child { border-bottom:0; }
.mom-wechat-pick-list input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.mom-wechat-pick-list .card-friend-account { min-width:0; }
.mom-wechat-pick-list > label > span:last-child { display:flex; align-items:center; gap:6px; color:#999; }
.mom-wechat-pick-list > label > span:last-child i { width:6px; height:6px; border-radius:50%; background:#d6d6d6; }
.mom-wechat-pick-list > label > span:last-child.online { color:#555; }
.mom-wechat-pick-list > label > span:last-child.online i { background:#33bd35; }
.mom-data-page { background:#f2f2f2; }
.mom-subhead { height:56px; padding:0 16px; display:flex; align-items:center; gap:14px; border-bottom:1px solid #e8e8e8; background:#fff; }
.mom-subhead .shared-company-filter { width:200px; }
.mom-data-tools,.mom-data-filters { min-height:56px; margin:12px 12px 0; padding:10px 16px; display:flex; align-items:center; gap:10px; overflow-x:auto; background:#fff; box-sizing:border-box; }
.mom-data-tools span { color:#777; }
.mom-data-tools .ghost-button { margin-left:auto; }
.mom-data-filters { margin-top:0; border-top:1px solid #eee; }
.mom-data-page .mom-empty { margin:0 12px; flex:1; background:#fff; }
.mom-data-filters .shared-date-range-picker { width:292px; flex:0 0 292px; }
.mom-toolbar .shared-date-range-picker { width:400px; flex:0 0 400px; grid-template-columns:76px minmax(0,1fr) 20px minmax(0,1fr) 30px; }
.mom-toolbar .shared-date-range-picker::before { content:"发布时间："; height:30px; padding-left:10px; display:flex; align-items:center; color:#777; font-size:13px; font-weight:400; white-space:nowrap; box-sizing:border-box; }
.mom-toolbar .shared-date-range-picker { height:32px; }
.mom-toolbar .shared-date-range-picker > input,
.mom-toolbar .shared-date-range-picker > b,
.mom-toolbar .shared-date-calendar-button { height:30px; line-height:30px; }

@media (max-width:1400px) {
  .mom-toolbar .shared-date-range-picker { width:360px; flex-basis:360px; }
}

@media (max-width:1180px) {
  .fop-workspace { grid-template-columns:220px minmax(0,1fr); }
  .fop-form-row { grid-template-columns:132px minmax(0,1fr); padding-inline:14px; }
  .fop-message-row { grid-template-columns:30px 200px minmax(250px,1fr); }
}
.keyword-tag-page,
.keyword-tag-page > #keywordTagRoot,
.kwt-page { height:100%; min-height:0; overflow:hidden; }
.workspace:has(.keyword-tag-page:not(.hidden)) { overflow:hidden; }
.kwt-page { --kwt-control-height:32px; display:flex; flex-direction:column; color:#444; background:#f2f2f2; }
.kwt-titlebar { height:50px; flex:0 0 50px; display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.kwt-titlebar strong { color:#222; font-size:15px; }
.kwt-tabs { height:48px; flex:0 0 48px; display:flex; align-items:flex-end; gap:30px; padding:0 22px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.kwt-tabs > button { height:48px; padding:0 2px; color:#555; border:0; border-bottom:2px solid transparent; background:transparent; }
.kwt-tabs > button.active { color:var(--green); font-weight:700; border-bottom-color:var(--green); }
.kwt-main { flex:1; min-height:0; overflow:hidden; }
.kwt-rule-view,.kwt-chat-view { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
.kwt-company-row { min-height:54px; flex:0 0 54px; display:flex; align-items:center; gap:10px; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.kwt-company-row select,.kwt-chat-toolbar select,.kwt-task-toolbar select,.kwt-account-filters select,.kwt-keyword-setting select { height:var(--kwt-control-height); padding:0 30px 0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; }
.kwt-company-row > select { width:190px; }
.kwt-company-row .kwt-auto { height:var(--kwt-control-height); display:flex; align-items:center; gap:7px; margin-left:auto; }
.kwt-company-row input[type="checkbox"],.kwt-chat-toolbar input[type="checkbox"],.kwt-account-picker input[type="checkbox"],.kwt-batch-plan input[type="checkbox"],.kwt-manage-table input[type="checkbox"],.kwt-tag-tree input[type="checkbox"] { width:16px; height:16px; margin:0; accent-color:var(--green); }
.kwt-company-row button,.kwt-toolbar button,.kwt-chat-toolbar button,.kwt-task-toolbar button { height:var(--kwt-control-height); }
.kwt-notice { min-height:42px; flex:0 0 42px; display:flex; align-items:center; gap:9px; padding:0 20px; color:#5f5f5f; border:1px solid #f5d49a; border-width:1px 0; background:#fff7e8; box-sizing:border-box; }
.kwt-notice i { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; color:#fff; font-style:normal; font-weight:700; background:#f5a000; }
.kwt-toolbar { min-height:58px; flex:0 0 58px; display:flex; align-items:center; gap:10px; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.kwt-toolbar > .primary-button { min-width:96px; }
.kwt-toolbar .search-control { width:190px; height:var(--kwt-control-height); }
.kwt-toolbar .search-control input { height:var(--kwt-control-height); }
.kwt-filter-input { width:150px; height:var(--kwt-control-height); padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; box-sizing:border-box; }
.kwt-table-wrap { flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
.kwt-table-scroll { flex:1; min-height:0; overflow:auto; }
.kwt-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.kwt-table th { height:44px; padding:0 16px; color:#333; text-align:left; font-weight:700; background:#f5f5f5; }
.kwt-table td { height:66px; padding:8px 16px; vertical-align:middle; border-bottom:1px solid #eee; box-sizing:border-box; }
.kwt-table th:nth-child(1) { width:15%; }.kwt-table th:nth-child(2),.kwt-table th:nth-child(3) { width:17%; }.kwt-table th:nth-child(4) { width:19%; }.kwt-table th:nth-child(5) { width:14%; }.kwt-table th:nth-child(6) { width:18%; }
.kwt-chips { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.kwt-chips > span { height:24px; display:flex; align-items:center; padding:0 7px; color:#607064; border:1px solid #d9e4d6; border-radius:2px; background:#f7fbf5; white-space:nowrap; }
.kwt-chips em { color:var(--green); font-style:normal; }
.kwt-empty { color:#999; }
.kwt-keywords { line-height:1.5; word-break:break-word; }
.kwt-keywords button,.kwt-actions button,.kwt-manage-table td button { padding:0; color:var(--green); border:0; background:transparent; }
.kwt-actions { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; }
.kwt-table-footer { height:48px; flex:0 0 48px; display:flex; align-items:center; padding:0 18px; border-top:1px solid #eee; box-sizing:border-box; }
.kwt-pages { display:flex; align-items:center; gap:5px; margin-left:auto; }
.kwt-pages button { min-width:28px; height:28px; padding:0 7px; color:#666; border:1px solid transparent; border-radius:3px; background:#fff; }
.kwt-pages button.active { color:var(--green); border-color:var(--green); }.kwt-pages button:disabled { color:#bbb; }
.kwt-no-data { height:260px; display:grid; place-items:center; color:#999; }
.kwt-chat-alert { min-height:42px; flex:0 0 42px; display:flex; align-items:center; padding:0 20px; color:#765d35; border-bottom:1px solid #f5d49a; background:#fff7e8; }
.kwt-chat-toolbar { min-height:64px; flex:0 0 64px; display:flex; align-items:center; gap:10px; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.kwt-chat-toolbar > select { width:190px; }.kwt-chat-toolbar .shared-date-range-picker { width:292px; flex:0 0 292px; align-self:center; }
.kwt-chat-search { width:260px; height:var(--kwt-control-height); }.kwt-chat-search input { height:var(--kwt-control-height); }
.kwt-chat-count { display:flex; align-items:center; gap:12px; color:#777; white-space:nowrap; }.kwt-chat-count b { color:var(--green); }
.kwt-chat-toolbar > label { height:var(--kwt-control-height); display:flex; align-items:center; gap:7px; margin-left:auto; white-space:nowrap; }
.kwt-chat-table th:first-child { width:54px; }.kwt-chat-table th:nth-child(2),.kwt-chat-table th:nth-child(3),.kwt-chat-table th:nth-child(4),.kwt-chat-table th:nth-child(5) { width:auto; }
.kwt-chat-batch { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:16px; padding:0 18px; border-top:1px solid #eee; }.kwt-chat-batch button:nth-last-child(2) { margin-left:auto; }.kwt-chat-batch button { height:32px; }
.kwt-task-view { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
.kwt-task-view > header { height:50px; flex:0 0 50px; display:flex; align-items:center; gap:12px; padding:0 18px; border-bottom:1px solid #eee; }
.kwt-task-view .circle-back-button { width:28px; height:28px; }
.kwt-task-toolbar { height:58px; flex:0 0 58px; display:flex; align-items:center; gap:10px; padding:0 20px; border-bottom:1px solid #eee; }.kwt-task-toolbar > select { width:160px; }.kwt-task-toolbar .shared-date-range-picker { width:292px; }
.kwt-modal { position:fixed; inset:0; z-index:1300; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.44); box-sizing:border-box; }.kwt-modal.hidden { display:none; }
.kwt-dialog { width:560px; max-width:calc(100vw - 40px); max-height:calc(100vh - 40px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 12px 34px rgba(0,0,0,.22); }
.kwt-dialog > header { height:52px; min-height:52px; display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #eee; box-sizing:border-box; }.kwt-dialog > header strong { color:#222; font-size:15px; }.kwt-dialog > header button { width:32px; height:32px; margin-left:auto; padding:0; color:#999; font-size:22px; border:0; background:transparent; }
.kwt-dialog-body { min-height:0; overflow:auto; }.kwt-dialog > footer { height:58px; min-height:58px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 18px; border-top:1px solid #eee; box-sizing:border-box; }.kwt-dialog > footer button { min-width:64px; height:32px; }
.kwt-rule-dialog { width:720px; }.kwt-form { padding:8px 24px 16px; }.kwt-form-row { min-height:54px; display:grid; grid-template-columns:112px minmax(0,1fr); align-items:center; gap:14px; }.kwt-form-row > label { text-align:right; }.kwt-form-row > input[type="text"] { width:360px; height:32px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; box-sizing:border-box; }.kwt-form-row > div { min-width:0; }.kwt-form-row > div > .kwt-chips { margin-top:8px; }
.kwt-inline-options { min-height:32px; display:flex; align-items:center; gap:26px; }.kwt-inline-options label { height:32px; display:flex; align-items:center; gap:7px; }.kwt-inline-options input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.kwt-keyword-setting { align-items:start; padding-top:11px; }.kwt-keyword-setting > label { padding-top:8px; }.kwt-keyword-setting select { width:150px; margin:8px 0; }
.kwt-token-input { min-height:66px; display:flex; align-items:flex-start; gap:6px; padding:7px; border:1px solid #d9d9d9; border-radius:3px; box-sizing:border-box; }.kwt-token-input > div { display:flex; flex-wrap:wrap; gap:6px; }.kwt-token-input span { height:26px; display:flex; align-items:center; gap:4px; padding:0 7px; color:var(--green); border:1px solid #8bcd7d; background:#f5fbf2; }.kwt-token-input span button { padding:0; color:var(--green); border:0; background:transparent; }.kwt-token-input input { min-width:190px; height:26px; flex:1; border:0; outline:0; }.kwt-token-input > button { width:28px; height:28px; color:var(--green); border:1px solid #8bcd7d; background:#fff; }
.kwt-tag-dialog { width:650px; }.kwt-tag-search { height:32px; margin:14px 18px 4px; }.kwt-tag-search input { height:32px; }.kwt-tag-tree section > label { display:grid; grid-template-columns:18px 16px 1fr; align-items:center; column-gap:8px; }.kwt-tree-arrow { width:18px; height:18px; display:grid; place-items:center; color:#777; line-height:18px; }.kwt-tag-tree section > label strong { line-height:18px; }.kwt-selected-summary { height:42px; display:flex; align-items:center; gap:8px; padding:0 18px; border-top:1px solid #eee; }.kwt-selected-summary button { padding:0; color:var(--green); border:0; background:transparent; }
.kwt-account-dialog { width:980px; }.kwt-account-dialog .kwt-dialog-body { overflow:hidden; }.kwt-account-picker { height:min(590px,calc(100vh - 150px)); display:grid; grid-template-columns:minmax(450px,1.55fr) minmax(180px,.65fr) minmax(250px,.8fr); overflow:hidden; }.kwt-account-main,.kwt-selected-pane,.kwt-record-pane { min-width:0; display:flex; flex-direction:column; overflow:hidden; border-right:1px solid #eee; }
.kwt-account-filters { height:58px; flex:0 0 58px; display:grid; grid-template-columns:1.25fr .9fr .75fr; align-items:center; gap:8px; padding:0 14px; border-bottom:1px solid #eee; }.kwt-account-filters .search-control,.kwt-account-filters input { height:32px; }.kwt-account-selectbar { height:44px; flex:0 0 44px; display:flex; align-items:center; padding:0 14px; border-bottom:1px solid #eee; }.kwt-account-selectbar label { display:flex; align-items:center; gap:8px; }.kwt-account-selectbar button { margin-left:auto; padding:0; color:var(--green); border:0; background:transparent; }
.kwt-account-list { flex:1; min-height:0; overflow-y:auto; }.kwt-account-list > label { min-height:58px; display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:8px; padding:5px 14px; border-bottom:1px solid #f0f0f0; box-sizing:border-box; }.kwt-account-list > label.selected { background:#eef3ff; }.kwt-account-cell { display:flex; align-items:center; gap:9px; min-width:0; }.kwt-account-cell > span:last-child { min-width:0; display:flex; flex-direction:column; gap:3px; }.kwt-account-cell strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.kwt-account-cell small { color:#f59a23; }.kwt-account-list em { color:#999; font-style:normal; }.kwt-account-list em::before { content:""; width:6px; height:6px; display:inline-block; margin-right:6px; border-radius:50%; background:#ccc; }.kwt-account-list em.online { color:var(--green); }.kwt-account-list em.online::before { background:#28bd39; }
.kwt-account-pager { height:42px; flex:0 0 42px; display:flex; align-items:center; padding:0 14px; border-top:1px solid #eee; }.kwt-account-pager .kwt-pages { margin-left:auto; }
.kwt-selected-pane > header,.kwt-record-pane > header { height:48px; flex:0 0 48px; display:flex; align-items:center; padding:0 14px; border-bottom:1px solid #eee; }.kwt-selected-pane header button { margin-left:auto; padding:0; color:var(--green); border:0; background:transparent; }.kwt-selected-pane > div,.kwt-record-pane > div { flex:1; min-height:0; overflow-y:auto; padding:8px 14px; }.kwt-selected-pane p { min-height:34px; display:flex; align-items:center; margin:0; border-bottom:1px solid #eee; }.kwt-selected-pane p button { margin-left:auto; color:#999; border:0; background:transparent; }.kwt-selected-pane > div > span { color:#999; }
.kwt-record-pane article { min-height:72px; display:grid; grid-template-columns:1fr auto; align-content:center; row-gap:6px; margin-bottom:8px; padding:0 12px; background:#f7f7f7; }.kwt-record-pane article span { color:var(--green); }.kwt-record-pane article small { grid-column:1 / -1; color:#999; text-align:right; }
.kwt-batch-dialog { width:760px; }.kwt-batch-plan { height:500px; display:grid; grid-template-columns:1.15fr .85fr; overflow:hidden; }.kwt-batch-plan > section,.kwt-batch-plan > aside { min-width:0; overflow-y:auto; padding:14px; }.kwt-batch-plan > section { border-right:1px solid #eee; }.kwt-batch-plan .search-control { height:32px; margin-bottom:10px; }.kwt-batch-plan .search-control input { height:32px; }.kwt-batch-plan label { min-height:50px; display:flex; align-items:center; gap:9px; border-bottom:1px solid #eee; }.kwt-batch-plan label span { display:flex; flex-direction:column; gap:4px; }.kwt-batch-plan label small { color:#999; }.kwt-batch-plan aside > strong { height:36px; display:flex; align-items:center; }.kwt-batch-plan article { min-height:68px; display:grid; grid-template-columns:1fr auto; align-content:center; gap:6px; padding:0 10px; background:#f7f7f7; border-bottom:8px solid #fff; }.kwt-batch-plan article em { color:var(--green); font-style:normal; }.kwt-batch-plan article small { grid-column:1/-1; color:#999; }
.kwt-manage-dialog { width:880px; }.kwt-manage-head { height:62px; display:flex; align-items:center; padding:0 18px; }.kwt-manage-head > div { position:relative; margin-left:auto; }.kwt-manage-head button { height:32px; }.kwt-batch-menu { position:absolute; top:35px; right:0; z-index:3; width:110px; padding:5px 0; border:1px solid #ddd; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,.15); }.kwt-batch-menu.hidden { display:none; }.kwt-batch-menu button { width:100%; height:34px; padding:0 12px; text-align:left; border:0; background:#fff; }.kwt-batch-menu button:hover { background:#f5f5f5; }.kwt-manage-table th:nth-child(1) { width:44px; }.kwt-manage-table th:nth-child(2) { width:31%; }.kwt-manage-table th:nth-child(3) { width:24%; }.kwt-manage-table th:nth-child(4) { width:18%; }.kwt-manage-table th:nth-child(5) { width:auto; }.kwt-manage-table td { height:58px; }.kwt-manage-table tr.selected td { background:#dfead6; }
.kwt-detail-list { padding:18px 24px; }.kwt-detail-list p { min-height:42px; display:grid; grid-template-columns:100px 1fr; align-items:center; margin:0; border-bottom:1px solid #eee; }.kwt-confirm-text { margin:0; padding:34px 24px; }.kwt-toast { position:fixed; left:50%; bottom:72px; z-index:1400; transform:translateX(-50%); padding:10px 18px; color:#fff; border-radius:3px; background:rgba(0,0,0,.72); }.kwt-toast.hidden { display:none; }
@media (max-width:1180px) { .kwt-toolbar { overflow-x:auto; }.kwt-chat-toolbar { overflow-x:auto; }.kwt-chat-count { display:none; }.kwt-account-picker { grid-template-columns:minmax(420px,1.5fr) minmax(180px,.7fr); }.kwt-record-pane { display:none; } }

/* V1.8 新客户运营二次对齐：明确左右独立滚动并贴齐线上密度。 */
.fan-operation-page:not(.hidden),
.fan-operation-page:not(.hidden) > #fanOperationRoot,
.fan-operation-page:not(.hidden) .fop-page {
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.fan-operation-page:not(.hidden) .fop-page {
  display:flex;
  flex-direction:column;
}
.fan-operation-page:not(.hidden) .fop-titlebar {
  height:48px;
  min-height:48px;
  flex:0 0 48px;
  padding:0 16px;
  border-bottom:1px solid #e7e7e7;
  box-shadow:none;
}
.fan-operation-page:not(.hidden) .fop-title-actions {
  height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-auto {
  height:32px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-left:0;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-auto .fop-tip { margin-left:1px; }
.fan-operation-page:not(.hidden) .fop-title-actions .fop-tip > b {
  width:260px;
  top:27px;
  right:-12px;
  padding:10px 12px;
  border-radius:3px;
  line-height:1.7;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-tip > b::before {
  content:"";
  position:absolute;
  top:-6px;
  right:16px;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.92);
  border-left:6px solid transparent;
}
.fan-operation-page:not(.hidden) .fop-title-batch {
  height:32px;
  min-height:32px;
  padding:0 16px;
  color:#fff;
  border:1px solid #f2a019;
  border-radius:3px;
  background:#f2a019;
}
.fan-operation-page:not(.hidden) .fop-title-batch:hover { border-color:#e8950d; background:#e8950d; }
.fan-operation-page:not(.hidden) .fop-workspace {
  width:100%;
  height:0;
  min-height:0;
  flex:1 1 0;
  display:grid;
  grid-template-columns:252px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  gap:10px;
  padding:10px;
  overflow:hidden;
  background:#f2f2f2;
}
.fan-operation-page:not(.hidden) .fop-plan-pane,
.fan-operation-page:not(.hidden) .fop-rule-scroll {
  width:100%;
  height:auto;
  min-height:0;
  align-self:stretch;
  border:1px solid #ededed;
  background:#fff;
  box-shadow:none;
}
.fan-operation-page:not(.hidden) .fop-plan-pane {
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.fan-operation-page:not(.hidden) .fop-plan-list {
  height:0;
  min-height:0;
  flex:1 1 0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.fan-operation-page:not(.hidden) .fop-rule-scroll {
  position:relative;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:auto;
}
.fan-operation-page:not(.hidden) :is(.fop-plan-list,.fop-rule-scroll)::-webkit-scrollbar { width:8px; }
.fan-operation-page:not(.hidden) :is(.fop-plan-list,.fop-rule-scroll)::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:8px; background:#c7c7c7; background-clip:padding-box; }
.fan-operation-page:not(.hidden) :is(.fop-plan-list,.fop-rule-scroll)::-webkit-scrollbar-track { background:transparent; }
.fan-operation-page:not(.hidden) .fop-plan-tools {
  height:52px;
  min-height:52px;
  flex:0 0 52px;
  padding:0 10px;
  border-bottom:0;
}
.fan-operation-page:not(.hidden) .fop-plan-tools .primary-button {
  height:32px;
  min-height:32px;
  border-radius:3px;
  font-weight:600;
}
.fan-operation-page:not(.hidden) .fop-settings-button {
  width:32px;
  height:32px;
  min-height:32px;
}
.fan-operation-page:not(.hidden) .fop-plan-search {
  height:32px;
  min-height:32px;
  flex:0 0 32px;
  margin:0 10px 10px;
}
.fan-operation-page:not(.hidden) .fop-plan-search input,
.fan-operation-page:not(.hidden) .fop-plan-search button { height:32px; }
.fan-operation-page:not(.hidden) .fop-plan-card {
  min-height:82px;
  padding:9px 11px 8px;
  border-bottom:1px solid #ececec;
}
.fan-operation-page:not(.hidden) .fop-plan-card.active {
  box-shadow:inset 3px 0 0 var(--green);
  background:#f1f8ee;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child { height:26px; }
.fan-operation-page:not(.hidden) .fop-plan-card strong { color:#333; font-size:14px; font-weight:600; }
.fan-operation-page:not(.hidden) .fop-plan-card p,
.fan-operation-page:not(.hidden) .fop-plan-card small {
  min-height:18px;
  margin:2px 0 0;
  color:#999;
  font-size:12px;
  line-height:18px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child button {
  height:26px;
  min-height:26px;
  color:var(--green);
  line-height:26px;
}
.fan-operation-page:not(.hidden) .fop-rule-panel {
  width:100%;
  min-height:max-content;
  padding:0;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-rule-panel > h3 {
  height:48px;
  min-height:48px;
  position:sticky;
  z-index:8;
  top:0;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 18px;
  border-bottom:1px solid #ededed;
  background:#fff;
  font-size:14px;
  font-weight:600;
}
.fan-operation-page:not(.hidden) .fop-notice {
  min-height:40px;
  margin:10px 14px;
  padding:7px 12px;
  border:1px solid #ffe0a8;
  color:#666;
  background:#fff5e6;
}
.fan-operation-page:not(.hidden) .fop-form-row {
  min-height:56px;
  grid-template-columns:154px minmax(0,1fr);
  align-items:start;
  padding:11px 18px;
  border-bottom:1px solid #ededed;
}
.fan-operation-page:not(.hidden) .fop-form-row > label {
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:0 16px 0 0;
  color:#555;
  line-height:20px;
}
.fan-operation-page:not(.hidden) .fop-form-row > div {
  min-height:32px;
  align-items:center;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-type-row > div { flex-wrap:nowrap; }
.fan-operation-page:not(.hidden) .fop-type-row strong { color:#444; font-weight:600; }
.fan-operation-page:not(.hidden) .fop-text-button {
  height:32px;
  min-height:32px;
  color:var(--green);
}
.fan-operation-page:not(.hidden) .fop-action-buttons button,
.fan-operation-page:not(.hidden) .fop-material-tabs button,
.fan-operation-page:not(.hidden) .fop-cancel-dependent > button,
.fan-operation-page:not(.hidden) .fop-remark-dependent > div:first-child button {
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  color:#555;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-action-buttons button:hover,
.fan-operation-page:not(.hidden) .fop-material-tabs button:hover,
.fan-operation-page:not(.hidden) .fop-cancel-dependent > button:hover,
.fan-operation-page:not(.hidden) .fop-remark-dependent > div:first-child button:hover {
  color:var(--green);
  border-color:#69bd58;
}
.fan-operation-page:not(.hidden) .fop-tag-row > div {
  display:grid;
  grid-template-columns:auto minmax(160px,1fr);
  align-items:start;
  column-gap:8px;
  row-gap:7px;
}
.fan-operation-page:not(.hidden) .fop-action-buttons,
.fan-operation-page:not(.hidden) .fop-tag-summary { min-height:32px; }
.fan-operation-page:not(.hidden) .fop-info {
  min-height:32px;
  grid-column:1/-1;
  margin:0;
  padding:0 11px;
  border:1px solid #e4eef7;
  color:#777;
  background:#f5f9fc;
}
.fan-operation-page:not(.hidden) .fop-remark-dependent { width:100%; gap:8px; }
.fan-operation-page:not(.hidden) .fop-remark-editor {
  min-height:36px;
  padding:4px 7px;
  border-color:#d9d9d9;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-content-row { padding-top:10px; padding-bottom:10px; }
.fan-operation-page:not(.hidden) .fop-content-row > div { width:100%; }
.fan-operation-page:not(.hidden) .fop-message-list { gap:8px; }
.fan-operation-page:not(.hidden) .fop-message-row {
  min-height:88px;
  grid-template-columns:32px minmax(210px,.55fr) minmax(300px,1.45fr);
  gap:10px;
  padding:10px;
  border:1px solid #e1e1e1;
  border-radius:3px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-message-row > em {
  width:24px;
  height:24px;
  margin-top:1px;
  background:#70809f;
}
.fan-operation-page:not(.hidden) .fop-delay input,
.fan-operation-page:not(.hidden) .fop-delay select { height:32px; min-height:32px; }
.fan-operation-page:not(.hidden) .fop-message-row textarea {
  height:68px;
  border-color:#d9d9d9;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-action {
  min-height:66px;
  padding:0 10px;
  background:#f7f7f7;
}
.fan-operation-page:not(.hidden) .fop-content-count { margin:6px 0; }
.fan-operation-page:not(.hidden) .fop-material-tabs { gap:7px; }
.fan-operation-page:not(.hidden) .fop-cancel-row > div { width:100%; }
.fan-operation-page:not(.hidden) .fop-cancel-row section { min-height:40px; }
.fan-operation-page:not(.hidden) .fop-cancel-row section > label {
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-cancel-dependent {
  min-height:42px;
  margin-bottom:5px;
  padding:5px 12px;
  background:#f7f7f7;
}
.fan-operation-page:not(.hidden) .fop-save-bar {
  height:54px;
  min-height:54px;
  position:sticky;
  z-index:10;
  bottom:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-top:1px solid #ddd;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-save-bar button { height:32px; min-height:32px; }
@media (max-width:1180px) {
  .fan-operation-page:not(.hidden) .fop-workspace { grid-template-columns:224px minmax(0,1fr); }
  .fan-operation-page:not(.hidden) .fop-form-row { grid-template-columns:132px minmax(0,1fr); padding-inline:14px; }
  .fan-operation-page:not(.hidden) .fop-message-row { grid-template-columns:30px 190px minmax(250px,1fr); }
}

/* V1.8 关键词标签定稿对齐：标签树筛选、列表操作、悬浮说明和聊天批量区。 */
.keyword-tag-page:not(.hidden) .kwt-toolbar {
  position:relative;
  z-index:30;
  overflow:visible;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .search-control { flex:0 0 190px; }
.keyword-tag-page:not(.hidden) .kwt-tag-filter {
  width:150px;
  height:32px;
  position:relative;
  flex:0 0 150px;
}
.keyword-tag-page:not(.hidden) .kwt-filter-trigger {
  width:100%;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 10px;
  color:#666;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-filter-trigger.active {
  color:var(--green);
  border-color:#74bd65;
  box-shadow:0 0 0 2px rgba(50,158,33,.08);
}
.keyword-tag-page:not(.hidden) .kwt-filter-trigger i { color:#999; font-style:normal; }
.keyword-tag-page:not(.hidden) .kwt-filter-popover {
  width:490px;
  max-height:430px;
  position:absolute;
  z-index:80;
  top:38px;
  right:0;
  display:flex;
  flex-direction:column;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
  box-shadow:0 7px 20px rgba(0,0,0,.16);
}
.keyword-tag-page:not(.hidden) .kwt-filter-popover > .search-control {
  width:auto;
  height:32px;
  flex:0 0 32px;
  margin:12px;
}
.keyword-tag-page:not(.hidden) .kwt-filter-popover > .search-control input { height:32px; }
.keyword-tag-page:not(.hidden) .kwt-filter-tree {
  min-height:110px;
  max-height:330px;
  overflow-y:auto;
  padding:0 12px 8px;
}
.keyword-tag-page:not(.hidden) .kwt-filter-tree section { padding:7px 0; border-bottom:1px solid #f0f0f0; }
.keyword-tag-page:not(.hidden) .kwt-filter-group {
  height:28px;
  display:grid;
  grid-template-columns:18px 16px minmax(0,1fr);
  align-items:center;
  gap:7px;
}
.keyword-tag-page:not(.hidden) .kwt-filter-group input,
.keyword-tag-page:not(.hidden) .kwt-filter-tree section > div input {
  width:16px;
  height:16px;
  margin:0;
  accent-color:var(--green);
}
.keyword-tag-page:not(.hidden) .kwt-filter-tree section > div {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px 8px;
  padding:4px 0 0 41px;
}
.keyword-tag-page:not(.hidden) .kwt-filter-tree section > div label {
  height:28px;
  display:flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  border:1px solid #dde2e8;
  border-radius:3px;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-filter-tree section > div label:has(input:checked) {
  color:var(--green);
  border-color:#72c260;
  background:#f5fbf2;
}
.keyword-tag-page:not(.hidden) .kwt-filter-empty { height:110px; display:grid; place-items:center; color:#999; }
.keyword-tag-page:not(.hidden) .kwt-filter-popover > footer {
  height:42px;
  min-height:42px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-top:1px solid #eee;
}
.keyword-tag-page:not(.hidden) .kwt-filter-popover > footer button {
  width:auto;
  height:28px;
  margin-left:auto;
  padding:0;
  color:var(--green);
  border:0;
  background:transparent;
}
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(1) { width:15%; }
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(2),
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(3) { width:17%; }
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(4) { width:19%; }
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(5) { width:14%; }
.keyword-tag-page:not(.hidden) .kwt-table th:nth-child(6) { width:18%; }
.keyword-tag-page:not(.hidden) .kwt-table td { height:66px; padding-top:7px; padding-bottom:7px; }
.keyword-tag-page:not(.hidden) .kwt-actions { flex-wrap:nowrap; gap:12px; white-space:nowrap; }
.keyword-tag-page:not(.hidden) .kwt-keywords { display:flex; align-items:center; gap:2px; }
.keyword-tag-page:not(.hidden) .kwt-keywords > span:first-child {
  max-width:calc(100% - 38px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.keyword-tag-page:not(.hidden) .kwt-inline-tip { position:relative; display:inline-flex; align-items:center; }
.keyword-tag-page:not(.hidden) .kwt-inline-tip > button { height:28px; padding:0; color:var(--green); border:0; background:transparent; }
.keyword-tag-page:not(.hidden) .kwt-inline-tip > [role="tooltip"] {
  width:250px;
  position:absolute;
  z-index:100;
  left:50%;
  bottom:calc(100% + 7px);
  display:none;
  transform:translateX(-50%);
  padding:10px 12px;
  color:#fff;
  line-height:1.6;
  white-space:normal;
  border-radius:3px;
  background:rgba(45,45,45,.94);
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.keyword-tag-page:not(.hidden) .kwt-inline-tip:hover > [role="tooltip"],
.keyword-tag-page:not(.hidden) .kwt-inline-tip:focus-within > [role="tooltip"] { display:block; }
.keyword-tag-page:not(.hidden) .kwt-inline-tip > [role="tooltip"] b,
.keyword-tag-page:not(.hidden) .kwt-inline-tip > [role="tooltip"] em { display:block; font-style:normal; font-weight:400; }
.keyword-tag-page:not(.hidden) .kwt-inline-tip > [role="tooltip"] .kwt-chips { margin:6px 0; }
.keyword-tag-page:not(.hidden) .kwt-inline-tip > [role="tooltip"] .kwt-chips span { color:#333; background:#fff; }
.keyword-tag-page:not(.hidden) .kwt-data-tip > [role="tooltip"] { width:230px; right:-30px; left:auto; transform:none; }
.keyword-tag-page:not(.hidden) .kwt-form-separator { height:1px; margin:8px 0; background:#eee; }
.keyword-tag-page:not(.hidden) .kwt-form-row > div > button.ghost-button { height:32px; }
.keyword-tag-page:not(.hidden) .kwt-rule-dialog {
  width:min(920px,calc(100vw - 48px));
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-dialog-body {
  max-height:calc(100vh - 150px);
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-form {
  padding:18px 28px 22px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-form-row {
  min-height:58px;
  grid-template-columns:118px minmax(0,1fr);
  gap:18px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-form-row > label {
  color:#333;
  text-align:left;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-form-row > input[type="text"] {
  width:100%;
  height:36px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-inline-options {
  min-height:36px;
  gap:30px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-setting {
  padding:8px 0 14px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-setting > label {
  padding-top:9px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-builder {
  display:grid;
  gap:10px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose {
  height:38px;
  display:grid;
  grid-template-columns:180px minmax(0,1fr) 42px;
  align-items:stretch;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose input,
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose > button {
  height:38px;
  margin:0;
  border:1px solid #d9d9d9;
  border-radius:0;
  box-sizing:border-box;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose > .kwt-logic-select {
  width:180px;
  height:38px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose .kwt-logic-select .shared-select-trigger {
  height:38px;
  border-radius:3px 0 0 3px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose .kwt-logic-select .shared-select-menu {
  top:40px;
  z-index:300;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose input {
  min-width:0;
  margin-left:-1px;
  padding:0 12px;
  outline:0;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose input:focus {
  position:relative;
  z-index:1;
  border-color:var(--green);
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-compose > button {
  margin-left:-1px;
  color:var(--green);
  font-size:22px;
  border-radius:0 3px 3px 0;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-values {
  min-height:48px;
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:8px;
  padding:9px 12px;
  border:1px solid #e2e2e2;
  background:#fafafa;
  box-sizing:border-box;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-values > span {
  height:28px;
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:0 8px;
  color:#555;
  border:1px dashed #d8d8d8;
  border-radius:3px;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-values button {
  padding:0;
  color:#999;
  border:0;
  background:transparent;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-keyword-values small {
  color:#aaa;
  line-height:28px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-form-separator {
  margin:12px 0 6px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-rule-tag-row {
  align-items:start;
  padding:8px 0;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .kwt-rule-tag-row > label {
  padding-top:7px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline {
  min-height:32px;
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline .shared-tag-setting-trigger {
  width:auto;
  min-width:96px;
  height:32px;
  flex:0 0 auto;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline .shared-tag-setting-summary {
  min-height:32px;
  display:flex;
  align-items:center;
  flex:1;
  flex-wrap:wrap;
  gap:7px;
  padding:0;
  border:0;
  background:transparent;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline .shared-tag-setting-summary > span {
  height:28px;
  color:#555;
  border-color:#d9d9d9;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline .shared-tag-setting-summary > span button {
  color:#999;
}
.keyword-tag-page:not(.hidden) .kwt-rule-dialog .shared-tag-setting.inline .shared-tag-setting-summary small {
  color:#aaa;
}
.keyword-tag-page:not(.hidden) .kwt-tag-tree section > label {
  min-height:30px;
  grid-template-columns:18px 16px minmax(0,1fr);
  gap:7px;
}
.keyword-tag-page:not(.hidden) .kwt-tag-tree section > div { padding-left:41px; }
.keyword-tag-page:not(.hidden) .kwt-chat-company {
  height:54px;
  min-height:54px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 20px;
  border-bottom:1px solid #eee;
}
.keyword-tag-page:not(.hidden) .kwt-chat-company select { width:190px; height:32px; }
.keyword-tag-page:not(.hidden) .kwt-chat-alert { gap:9px; box-sizing:border-box; }
.keyword-tag-page:not(.hidden) .kwt-chat-alert i {
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:#fff;
  font-style:normal;
  font-weight:700;
  border-radius:50%;
  background:#f5a000;
}
.keyword-tag-page:not(.hidden) .kwt-chat-toolbar { height:58px; min-height:58px; flex:0 0 58px; }
.keyword-tag-page:not(.hidden) .kwt-chat-toolbar .shared-date-range-picker { width:292px; flex:0 0 292px; }
.keyword-tag-page:not(.hidden) input.kwt-chat-search {
  width:280px;
  height:32px;
  padding:0 10px;
  border:1px solid #d9d9d9;
  border-radius:3px;
}
.keyword-tag-page:not(.hidden) .kwt-task-button { display:flex; align-items:center; gap:6px; }
.keyword-tag-page:not(.hidden) .kwt-chat-select { position:relative; display:flex; align-items:center; gap:3px; }
.keyword-tag-page:not(.hidden) .kwt-chat-select > button { width:20px; height:24px; padding:0; border:0; background:transparent; }
.keyword-tag-page:not(.hidden) .kwt-chat-select > span {
  width:98px;
  position:absolute;
  z-index:20;
  top:25px;
  left:0;
  padding:5px 0;
  border:1px solid #ddd;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.14);
}
.keyword-tag-page:not(.hidden) .kwt-chat-select > span button { width:100%; height:32px; padding:0 12px; text-align:left; border:0; background:#fff; }
.keyword-tag-page:not(.hidden) .kwt-chat-select > span button:hover { background:#f5f5f5; }
.keyword-tag-page:not(.hidden) .kwt-chat-batch button { padding:0 14px; border:1px solid #d9d9d9; border-radius:3px; background:#fff; }
.keyword-tag-page:not(.hidden) .kwt-chat-batch button.primary-button { color:#fff; border-color:var(--green); background:var(--green); }
.keyword-tag-page:not(.hidden) .kwt-chat-batch button:disabled { color:#bbb; border-color:#ddd; background:#f7f7f7; }
.keyword-tag-page:not(.hidden) .kwt-manage-head { height:72px; display:grid; grid-template-columns:1fr auto; grid-template-rows:24px 32px; }
.keyword-tag-page:not(.hidden) .kwt-manage-head > span { grid-column:1/-1; color:#999; font-size:12px; }
.keyword-tag-page:not(.hidden) .kwt-manage-head > p { margin:0; }
.keyword-tag-page:not(.hidden) .kwt-manage-head > div { grid-column:2; grid-row:2; }
@media (max-width:1180px) {
  .keyword-tag-page:not(.hidden) .kwt-toolbar { overflow-x:auto; overflow-y:hidden; }
  .keyword-tag-page:not(.hidden) .kwt-filter-popover { position:fixed; top:250px; right:20px; }
  .keyword-tag-page:not(.hidden) .kwt-chat-toolbar { overflow-x:auto; }
}

/* V1.8 新客户运营线上结构复核：方案栏与消息编辑区按线上层级重排。 */
.fan-operation-page:not(.hidden) .fop-workspace {
  grid-template-columns:350px minmax(0,1fr);
  gap:12px;
  padding:10px 10px 0;
}
.fan-operation-page:not(.hidden) .fop-plan-tools {
  height:58px;
  min-height:58px;
  flex:0 0 58px;
  gap:8px;
  padding:0 10px;
  border-bottom:1px solid #ececec;
}
.fan-operation-page:not(.hidden) .fop-plan-tools .primary-button {
  width:110px;
  min-width:110px;
  flex:0 0 110px;
}
.fan-operation-page:not(.hidden) .fop-plan-tools .fop-plan-search {
  min-width:0;
  height:32px;
  min-height:32px;
  flex:1 1 auto;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-plan-list {
  padding:12px 10px;
  background:#f3f3f3;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-plan-card {
  min-height:80px;
  margin:0 0 10px;
  padding:0;
  overflow:visible;
  border:1px solid #e2e2e2;
  border-radius:4px;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.fan-operation-page:not(.hidden) .fop-plan-card:last-child { margin-bottom:0; }
.fan-operation-page:not(.hidden) .fop-plan-card.active {
  border-color:var(--green);
  box-shadow:0 0 0 1px var(--green),0 2px 5px rgba(0,0,0,.06);
  background:#eaf1ff;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child {
  height:44px;
  padding:0 12px;
  border-bottom:1px solid #e7e7e7;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-plan-card strong { font-size:15px; font-weight:500; }
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child button {
  color:#555;
  border:1px solid #dedede;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child [data-fop-manage] {
  min-width:48px;
  padding:0 10px;
  border-radius:3px 0 0 3px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .fop-more {
  margin-left:-7px;
  border-left:0;
  border-radius:0 3px 3px 0;
}

/* V1.14 新客户运营发送内容：媒体按缩略图收紧，隐藏文件名，类型贴近右下角。 */
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-row > .shared-send-media.is-online-preview {
  width:max-content;
  max-width:100%;
  min-height:0;
  align-self:start;
  justify-self:start;
  align-items:flex-end;
  gap:8px;
  margin:6px 8px 6px 0;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview .shared-send-media-preview {
  width:160px;
  max-width:calc(100vw - 360px);
  height:auto;
  flex:0 1 auto;
  overflow:hidden;
  border-radius:4px;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-video.is-online-preview .shared-send-media-preview {
  width:240px;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-emoji.is-online-preview .shared-send-media-preview {
  width:128px;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview .shared-send-media-preview > img {
  width:100%;
  max-width:100%;
  height:auto;
  max-height:none;
  display:block;
  object-fit:contain;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview > div {
  min-width:0;
  flex:0 0 auto;
  display:block;
  overflow:visible;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview > div > strong {
  display:none;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview > div > small {
  display:block;
  color:#888;
  font-size:12px;
  font-weight:400;
  line-height:18px;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-emoji.is-online-preview > .shared-send-emoji-badge {
  height:auto;
  margin:0;
  padding:0;
  color:#888;
  border:0;
  background:transparent;
  font-size:12px;
  line-height:18px;
}
@media(max-width:760px){
  .fan-operation-page:not(.hidden) :is([data-component-key="sendContent"][data-component-version="C1.5"],[data-component-key="sendContent"][data-component-version="C1.6"],[data-component-key="sendContent"][data-component-version="C1.7"]) .shared-send-media.is-online-preview .shared-send-media-preview{max-width:calc(100vw - 220px)}
}
.fan-operation-page:not(.hidden) .fop-plan-meta {
  height:35px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px;
  color:#999;
  font-size:12px;
  line-height:1;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-condition-row { align-items:start; }
.fan-operation-page:not(.hidden) .fop-condition-inline {
  max-width:760px;
  min-height:196px;
  display:grid;
  align-content:start;
  gap:14px;
  padding:16px 18px;
  border:1px solid #e1e1e1;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label {
  min-height:34px;
  display:grid;
  grid-template-columns:126px minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label > span {
  color:#444;
  text-align:right;
}
.fan-operation-page:not(.hidden) .fop-condition-inline select {
  height:34px;
  min-height:34px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-condition-inline select { width:180px; padding:0 30px 0 10px; }
.fan-operation-page:not(.hidden) .fop-condition-tag-setting {
  grid-template-columns:126px minmax(0,1fr) 140px 126px !important;
}
.fan-operation-page:not(.hidden) .fop-condition-tag-setting > button { padding:0 14px; color:var(--green); }
.fan-operation-page:not(.hidden) .fop-condition-selected {
  min-width:0;
  min-height:34px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-condition-selected > span {
  height:28px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  color:#555;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fafafa;
}
.fan-operation-page:not(.hidden) .fop-condition-selected > span button {
  width:14px;
  height:14px;
  min-height:14px;
  padding:0;
  color:#888;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-name-dialog { width:520px; }
.fan-operation-page:not(.hidden) .fop-name-dialog .fop-name-field {
  min-height:76px;
  padding:18px 28px 6px;
}
.fan-operation-page:not(.hidden) .fop-name-hint {
  margin:0 28px 18px 138px;
  color:#999;
  font-size:12px;
}
.fan-operation-page:not(.hidden) .fop-confirm-dialog { width:500px; }
.fan-operation-page:not(.hidden) .fop-confirm-content { padding:30px 34px; }
.fan-operation-page:not(.hidden) .fop-confirm-content strong { display:block; color:#333; font-size:15px; }
.fan-operation-page:not(.hidden) .fop-confirm-content p { margin:12px 0 0; color:#888; line-height:1.6; }
.fan-operation-page:not(.hidden) .fop-confirm-dialog [data-fop-delete-confirm] { border-color:#d94b4b; background:#d94b4b; }
.fan-operation-page:not(.hidden) .fop-plan-manage-dialog {
  width:min(1180px,calc(100vw - 80px));
  max-height:calc(100vh - 80px);
}
.fan-operation-page:not(.hidden) .fop-plan-manage-dialog > header strong { display:flex; align-items:center; gap:8px; font-size:16px; }
.fan-operation-page:not(.hidden) .fop-plan-manage-dialog > header small { color:#999; font-size:12px; font-weight:400; }
.fan-operation-page:not(.hidden) .fop-manage-body { min-height:320px; padding:18px 22px 14px; }
.fan-operation-page:not(.hidden) .fop-manage-toolbar {
  height:48px;
  display:flex;
  align-items:center;
  color:#666;
}
.fan-operation-page:not(.hidden) .fop-manage-batch { position:relative; margin-left:auto; }
.fan-operation-page:not(.hidden) .fop-manage-batch > button { height:34px; min-height:34px; padding:0 16px; color:var(--green); border-color:var(--green); }
.fan-operation-page:not(.hidden) .fop-manage-batch-menu {
  width:126px;
  position:absolute;
  z-index:20;
  top:38px;
  right:0;
  padding:5px 0;
  border:1px solid #ddd;
  border-radius:3px;
  background:#fff;
  box-shadow:0 5px 14px rgba(0,0,0,.14);
}
.fan-operation-page:not(.hidden) .fop-manage-batch-menu.hidden { display:none; }
.fan-operation-page:not(.hidden) .fop-manage-batch-menu button { width:100%; height:34px; padding:0 14px; color:#555; text-align:left; border:0; background:#fff; }
.fan-operation-page:not(.hidden) .fop-manage-batch-menu button:hover { color:var(--green); background:#f5f8f4; }
.fan-operation-page:not(.hidden) .fop-manage-table { max-height:520px; overflow:auto; }
.fan-operation-page:not(.hidden) .fop-manage-table table { width:100%; border-collapse:collapse; table-layout:fixed; }
.fan-operation-page:not(.hidden) .fop-manage-table th { height:44px; padding:0 14px; color:#333; text-align:left; background:#f5f5f5; }
.fan-operation-page:not(.hidden) .fop-manage-table td { height:66px; padding:6px 14px; border-bottom:1px solid #eee; box-sizing:border-box; }
.fan-operation-page:not(.hidden) .fop-manage-table th:first-child,
.fan-operation-page:not(.hidden) .fop-manage-table td:first-child { width:54px; text-align:center; }
.fan-operation-page:not(.hidden) .fop-manage-table th:nth-child(2) { width:36%; }
.fan-operation-page:not(.hidden) .fop-manage-table th:nth-child(3) { width:25%; }
.fan-operation-page:not(.hidden) .fop-manage-table th:nth-child(4) { width:18%; }
.fan-operation-page:not(.hidden) .fop-manage-table tr.selected td { background:#dfead6; }
.fan-operation-page:not(.hidden) .fop-manage-table td:last-child button { padding:0; color:var(--green); border:0; background:transparent; }
.fan-operation-page:not(.hidden) .fop-manage-footer { height:48px; display:flex; align-items:center; color:#777; }
.fan-operation-page:not(.hidden) .fop-manage-footer .fop-pages { margin-left:auto; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog {
  width:min(1240px,calc(100vw - 50px));
  height:min(760px,calc(100vh - 50px));
  max-height:calc(100vh - 50px);
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-dialog-body { flex:1; overflow:hidden; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid {
  width:100%;
  height:100%;
  min-height:0;
  grid-template-columns:minmax(560px,1.7fr) minmax(330px,.95fr);
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid > section {
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools {
  height:62px;
  min-height:62px;
  padding:0 22px;
  background:#fafafa;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools > label { font-size:15px; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control {
  width:330px;
  height:34px;
  flex:0 0 330px;
  margin-left:auto;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control :is(input,button) { height:34px; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choices {
  flex:1;
  max-height:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:12px;
  padding:22px;
  overflow-y:auto;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice {
  height:88px;
  grid-template-columns:28px minmax(0,1fr);
  gap:10px;
  padding:0 18px;
  border:1px solid #ddd;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice.selected { border-color:var(--green); background:#f2f8ef; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice > span {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice strong { color:#444; font-size:15px; font-weight:500; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice small { color:#999; font-size:13px; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid > aside {
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid aside h4 {
  height:62px;
  min-height:62px;
  display:flex;
  align-items:center;
  margin:0;
  padding:0 22px;
  font-size:15px;
  border-bottom:1px solid #eee;
}
.fan-operation-page:not(.hidden) .fop-application-records { flex:1; min-height:0; padding:14px 18px; overflow-y:auto; }
.fan-operation-page:not(.hidden) .fop-application-records article {
  min-height:106px;
  margin-bottom:10px;
  padding:16px;
  border-radius:3px;
  background:#f7f7f7;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-application-records article > div,
.fan-operation-page:not(.hidden) .fop-application-records article > p { display:flex; align-items:center; justify-content:space-between; margin:0; }
.fan-operation-page:not(.hidden) .fop-application-records article strong { font-size:15px; font-weight:500; }
.fan-operation-page:not(.hidden) .fop-application-records article button { padding:0; color:var(--green); border:0; background:transparent; }
.fan-operation-page:not(.hidden) .fop-application-records article p { margin-top:20px; color:#777; }
.fan-operation-page:not(.hidden) .fop-application-records article p span { display:flex; align-items:center; gap:8px; }
.fan-operation-page:not(.hidden) .fop-application-records article p i { width:7px; height:7px; border-radius:50%; background:#35bc26; }
.fan-operation-page:not(.hidden) .fop-application-records article p small { color:#999; }
.fan-operation-page:not(.hidden) .fop-rule-panel > h3 { height:48px; min-height:48px; }
.fan-operation-page:not(.hidden) .fop-plan-draft {
  background:#f5f9ff;
}
.fan-operation-page:not(.hidden) .fop-plan-draft .fop-draft-badge {
  height:22px;
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  color:var(--green);
  font-size:12px;
  border:1px solid #8bcd7d;
  border-radius:3px;
  background:#f5fbf2;
}
.fan-operation-page:not(.hidden) .fop-rule-loading {
  min-height:100%;
  display:grid;
  place-items:center;
  padding:0;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-create-loading {
  display:grid;
  justify-items:center;
  gap:12px;
  color:#909399;
  font-size:13px;
}
.fan-operation-page:not(.hidden) .fop-create-loading progress {
  width:140px;
  height:6px;
  accent-color:var(--green);
}
.fan-operation-page:not(.hidden) .fop-notice { margin:10px 18px; }
.fan-operation-page:not(.hidden) .fop-form-row {
  grid-template-columns:140px minmax(0,1fr);
  padding:10px 20px;
}
.fan-operation-page:not(.hidden) .fop-form-row > label { padding-right:18px; }
.fan-operation-page:not(.hidden) .fop-tag-row > div {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-group {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-group > button {
  height:32px;
  min-height:32px;
  padding:0 12px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  color:#555;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-group > button:hover {
  color:var(--green);
  border-color:#69bd58;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-group .fop-tag-summary {
  min-height:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-group .fop-tag-summary:empty { display:none; }
.fan-operation-page:not(.hidden) .fop-action-buttons {
  width:auto;
  height:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-tag-summary:empty { display:none; }
.fan-operation-page:not(.hidden) .fop-info {
  width:auto;
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border:0;
  color:#555;
  background:#dff5ec;
}
.fan-operation-page:not(.hidden) .fop-remark-row > div {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-remark-dependent {
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-remark-dependent > div:first-child {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-remark-editor { min-height:100px; align-content:start; }
.fan-operation-page:not(.hidden) .fop-content-row { align-items:start; padding-top:10px; padding-bottom:10px; }
.fan-operation-page:not(.hidden) .fop-content-row > label { align-items:flex-start; padding-top:5px; }
.fan-operation-page:not(.hidden) .fop-content-row > div { width:100%; align-items:stretch; }
.fan-operation-page:not(.hidden) .fop-message-list { width:100%; display:flex; flex-direction:column; gap:8px; }
.fan-operation-page:not(.hidden) .fop-message-list > .shared-content-empty {
  min-height:40px;
  height:40px;
}
.fan-operation-page:not(.hidden) .fop-message-row {
  width:100%;
  min-height:100px;
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  grid-template-rows:40px minmax(60px,auto);
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid #e1e1e1;
  border-radius:0;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-message-row > .fop-delay {
  grid-column:1/-1;
  grid-row:1;
  min-height:40px;
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
  padding:4px 10px;
  border-bottom:1px solid #e5e5e5;
  background:#f7f7f7;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-delay input { width:66px; }
.fan-operation-page:not(.hidden) .fop-delay select { width:64px; }
.fan-operation-page:not(.hidden) .fop-delay span { color:#777; }
.fan-operation-page:not(.hidden) .fop-message-row > em {
  grid-column:1;
  grid-row:2;
  align-self:start;
  justify-self:center;
  margin-top:13px;
}
.fan-operation-page:not(.hidden) .fop-message-row > textarea {
  grid-column:2;
  grid-row:2;
  width:calc(100% - 12px);
  height:48px;
  min-height:48px;
  margin:6px 12px 6px 0;
  padding:9px 10px;
  resize:none;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-action,
.fan-operation-page:not(.hidden) .fop-media-message {
  grid-column:2;
  grid-row:2;
  min-height:46px;
  align-self:stretch;
  display:flex;
  align-items:center;
  gap:10px;
  margin:7px 10px 7px 0;
  padding:0 12px;
  background:#f7f7f7;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-action > span { color:var(--green); }
.fan-operation-page:not(.hidden) .fop-media-message > span { color:#888; }
.fan-operation-page:not(.hidden) .fop-media-message > button {
  height:30px;
  margin-left:auto;
  padding:0 10px;
  color:var(--green);
  border:1px solid #d9d9d9;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-tools { margin-left:0; }
.fan-operation-page:not(.hidden) .fop-content-count {
  height:26px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin:0;
  color:#777;
}
.fan-operation-page:not(.hidden) .fop-material-tabs {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding-top:4px;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label { align-items:flex-start; padding-top:5px; }
.fan-operation-page:not(.hidden) .fop-save-bar { height:54px; min-height:54px; }
@media (max-width:1280px) {
  .fan-operation-page:not(.hidden) .fop-workspace { grid-template-columns:300px minmax(0,1fr); }
  .fan-operation-page:not(.hidden) .fop-form-row { grid-template-columns:124px minmax(0,1fr); padding-inline:14px; }
}

/* V1.8 定稿筛选组件：企业、企微标签和智能标签统一结构与交互密度。 */
.shared-company-filter { width:190px; flex:0 0 190px; }
.shared-company-menu { top:34px; padding:0; overflow:hidden; }
.shared-company-filter.open .shared-select-inline-search { color:#555; background-color:#f2f5fd; }
.shared-company-options { max-height:248px; overflow-y:auto; padding:4px 0; }
.shared-company-options > button.hidden { display:none; }
.shared-company-manage {
  height:38px !important;
  color:var(--green) !important;
  text-align:center !important;
  border-top:1px solid #eee !important;
  background:#fff !important;
}
.shared-company-manage:hover { background:#f4f8f1 !important; }
.fan-operation-page:not(.hidden) .fop-company-select .shared-company-filter { width:190px; }
.shared-tag-tree { min-height:110px; color:#555; }
.shared-tag-tree section { padding:7px 0; border-bottom:1px solid #f0f0f0; }
.shared-tag-group {
  min-height:28px;
  display:grid;
  grid-template-columns:18px 16px minmax(0,1fr);
  align-items:center;
  gap:7px;
}
.shared-tag-arrow { width:18px; height:18px; display:grid; place-items:center; color:#777; line-height:18px; }
.shared-tag-tree input[type="checkbox"] { width:16px; height:16px; margin:0; accent-color:var(--green); }
.shared-tag-tree section > div { display:flex; align-items:center; flex-wrap:wrap; gap:7px 8px; padding:4px 0 0 41px; }
.shared-tag-tree section > div label {
  height:28px;
  display:flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  border:1px solid #dde2e8;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.shared-tag-tree section > div label:has(input:checked) { color:var(--green); border-color:#72c260; background:#f5fbf2; }
.shared-tag-empty { height:110px; display:grid; place-items:center; color:#999; }
.keyword-tag-page:not(.hidden) .kwt-company-row,
.keyword-tag-page:not(.hidden) .kwt-chat-company { position:relative; z-index:35; overflow:visible; }
.keyword-tag-page:not(.hidden) .kwt-company-row .shared-company-filter,
.keyword-tag-page:not(.hidden) .kwt-chat-company .shared-company-filter { width:190px; flex:0 0 190px; }
.keyword-tag-page:not(.hidden) .kwt-batch-apply {
  min-width:82px;
  height:32px;
  padding:0 14px;
  color:#fff;
  border:1px solid #f2a019;
  border-radius:3px;
  background:#f5a623;
}
.keyword-tag-page:not(.hidden) .kwt-batch-apply:hover { background:#ed9813; }
.keyword-tag-page:not(.hidden) .kwt-tabs {
  position:relative;
  z-index:35;
  align-items:center;
  overflow:visible;
}
.keyword-tag-page:not(.hidden) .kwt-tabs > button { align-self:stretch; }
.keyword-tag-page:not(.hidden) .kwt-tab-rule-actions {
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}
.keyword-tag-page:not(.hidden) .kwt-tab-rule-actions .shared-company-filter {
  width:190px;
  flex:0 0 190px;
}
.keyword-tag-page:not(.hidden) .kwt-tab-rule-actions .shared-plan-batch-actions { margin-left:12px; }
.keyword-tag-page:not(.hidden) .kwt-tab-rule-actions .shared-field-tip-popover {
  top:calc(100% + 6px);
  right:-8px;
  bottom:auto;
  left:auto;
  width:260px;
  transform:none;
}
.keyword-tag-page:not(.hidden) .kwt-tab-rule-actions .shared-field-tip-popover::before {
  top:-6px;
  right:11px;
  bottom:auto;
  left:auto;
  border-top:0;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.94);
  border-left:6px solid transparent;
  transform:none;
}
.keyword-tag-page:not(.hidden) .kwt-titlebar {
  position:relative;
  z-index:40;
  overflow:visible;
}
.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions {
  flex:1;
  height:32px;
  align-self:center;
  line-height:normal;
  margin-left:16px;
}
.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions > .shared-company-filter,
.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions > .shared-plan-batch-actions {
  align-self:center;
}
.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions .shared-plan-batch-actions { margin-left:auto; }
.keyword-tag-page:not(.hidden) .kwt-rule-table th {
  height:46px;
  padding:0 18px;
  color:#30343b;
  background:#f5f5f5;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(1) { width:14%; }
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(2),
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(3) { width:22%; }
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(4) { width:14%; }
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(5) { width:12%; }
.keyword-tag-page:not(.hidden) .kwt-rule-table th:nth-child(6) { width:16%; }
.keyword-tag-page:not(.hidden) .kwt-rule-table td {
  height:88px;
  padding:14px 18px;
  line-height:22px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table tbody tr:hover td { background:#fafcf9; }
.keyword-tag-page:not(.hidden) .kwt-rule-table td:first-child strong {
  display:block;
  overflow:hidden;
  color:#333;
  font-weight:400;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-chips { gap:6px; }
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-chips > span,
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-chips > em {
  min-width:0;
  height:26px;
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  border:1px solid #e1e1e1;
  border-radius:3px;
  color:#666;
  font-style:normal;
  background:#f7f7f7;
  box-sizing:border-box;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table td:nth-child(5) {
  color:#555;
  white-space:normal;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-actions {
  min-height:32px;
  align-items:center;
  gap:14px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-actions > button,
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-actions > .kwt-inline-tip > button {
  min-width:28px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:32px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-inline-tip > [role="tooltip"] {
  top:calc(100% + 7px);
  right:auto;
  bottom:auto;
  left:0;
  transform:none;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-actions .kwt-inline-tip > [role="tooltip"] {
  right:0;
  left:auto;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-inline-tip > [role="tooltip"]::before {
  content:"";
  position:absolute;
  top:-6px;
  left:12px;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.94);
  border-left:6px solid transparent;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-actions .kwt-inline-tip > [role="tooltip"]::before {
  right:12px;
  left:auto;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"] {
  width:300px;
  max-height:220px;
  padding:11px 12px 10px;
  overflow:auto;
  border:0;
  border-radius:4px;
  color:#f5f5f5;
  font-size:13px;
  line-height:19px;
  background:rgba(42,42,42,.96);
  box-shadow:0 6px 18px rgba(0,0,0,.2);
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"] b {
  margin:0 0 8px;
  color:#fff;
  font-size:13px;
  line-height:20px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"] .kwt-chips {
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:5px;
  margin:0 0 8px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"] .kwt-chips > span {
  width:auto;
  max-width:100%;
  min-height:24px;
  height:auto;
  padding:2px 7px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:3px;
  color:#f2f2f2;
  line-height:18px;
  white-space:normal;
  overflow-wrap:anywhere;
  background:rgba(255,255,255,.08);
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"] em {
  margin-top:2px;
  color:#ffc067;
  font-size:12px;
  line-height:18px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-table .kwt-rule-detail-tip > [role="tooltip"]::before {
  border-bottom-color:rgba(42,42,42,.96);
}
.keyword-tag-page:not(.hidden) .kwt-rule-main {
  margin:12px 14px 14px;
  border:1px solid #e7e7e7;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.keyword-tag-page:not(.hidden) .kwt-rule-main .kwt-rule-view {
  border-radius:2px;
}
.keyword-tag-page:not(.hidden) .kwt-rule-main .kwt-notice {
  margin-bottom:12px;
  box-shadow:0 12px 0 #f2f2f2;
}
.keyword-tag-page:not(.hidden) .kwt-filter-tree > .shared-tag-tree { min-height:110px; }
.keyword-tag-page:not(.hidden) .kwt-tag-tree > .shared-tag-tree,
.fan-operation-page:not(.hidden) .fop-tag-tree > .shared-tag-tree { padding:0 18px 10px; }

/* V1.8 新客户运营方案类型定稿组件。 */
.fop-type-dialog { width:760px; max-width:calc(100vw - 40px); }
.fop-type-dialog .fop-dialog-body { padding:22px 28px 18px; }
.fop-type-list { display:grid; gap:14px; padding:0; }
.fop-type-list > label {
  min-height:112px;
  display:grid;
  grid-template-columns:16px minmax(0,1fr) 76px;
  align-items:center;
  gap:14px;
  padding:18px 22px;
  border:1px solid #e3e3e3;
  border-radius:4px;
  background:#fff;
  box-sizing:border-box;
  cursor:pointer;
}
.fop-type-list > label:hover { border-color:#78c668; background:#fcfffb; }
.fop-type-list > label:has(input:checked) { border-color:var(--green); background:#fcfffb; box-shadow:0 0 0 1px rgba(45,171,17,.05); }
.fop-type-list > label input { margin:0; }
.fop-type-list > label > span { min-width:0; display:grid; gap:8px; }
.fop-type-list > label strong { color:#333; font-size:16px; line-height:24px; }
.fop-type-list > label small { color:#999; font-size:13px; line-height:21px; }
.fop-type-icon {
  width:76px;
  height:76px;
  position:relative;
  display:block;
  border-radius:8px;
  background:#edf3ff;
}
.fop-type-icon::before,
.fop-type-icon::after { content:""; position:absolute; box-sizing:border-box; }
.fop-type-icon.default::before { width:32px; height:30px; top:23px; left:22px; border:3px solid #3777f5; border-radius:3px; }
.fop-type-icon.default::after { width:26px; height:3px; top:35px; left:25px; background:#3777f5; box-shadow:8px 8px 0 -1px #edf3ff,-7px 8px 0 -1px #edf3ff; }
.fop-type-icon.condition { background:#fff0e8; }
.fop-type-icon.condition::before { width:28px; height:28px; top:24px; left:24px; transform:rotate(45deg); border:3px solid #ff7d45; border-radius:3px 7px 3px 7px; }
.fop-type-icon.condition::after { width:6px; height:6px; top:33px; left:33px; border:2px solid #ff7d45; border-radius:50%; background:#fff0e8; }
.fop-type-dialog > footer { height:58px; min-height:58px; flex-basis:58px; }
.fop-type-dialog > footer button { min-width:82px; }
@media (max-width:980px) {
  .fop-type-dialog { width:calc(100vw - 32px); }
  .fop-type-dialog .fop-dialog-body { padding:18px; }
  .fop-type-list > label { grid-template-columns:16px minmax(0,1fr) 64px; padding:16px; }
  .fop-type-icon { width:64px; height:64px; }
  .fop-type-icon.default::before { top:17px; left:16px; }
  .fop-type-icon.default::after { top:29px; left:19px; }
  .fop-type-icon.condition::before { top:18px; left:18px; }
  .fop-type-icon.condition::after { top:27px; left:27px; }
}

/* V1.8 新客户运营自动备注：变量工具栏、编辑区和分隔符交互。 */
.fan-operation-page:not(.hidden) .fop-remark-toolbar {
  min-height:48px;
  display:flex !important;
  align-items:center;
  gap:12px;
  padding:0 12px;
  border:1px solid #e1e1e1;
  background:#fafafa;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-remark-toolbar > span { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.fan-operation-page:not(.hidden) .fop-remark-toolbar button { height:32px; padding:0 12px; border:1px solid #d9d9d9; border-radius:3px; color:#666; background:#fff; }
.fan-operation-page:not(.hidden) .fop-remark-toolbar .fop-remark-copy { margin-left:auto; padding:0; color:var(--green); border:0; background:transparent; }
.fan-operation-page:not(.hidden) .fop-remark-editor {
  min-height:100px;
  display:flex;
  align-content:flex-start;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:8px;
  padding:14px 16px;
  border-top:0;
  border-radius:0;
}
.fan-operation-page:not(.hidden) .fop-remark-editor span {
  height:28px;
  padding:0 9px;
  color:var(--green);
  border:1px solid #76c866;
  border-radius:3px;
  background:#f5fbf2;
}
.fan-operation-page:not(.hidden) .fop-remark-editor span button::before,
.fan-operation-page:not(.hidden) .fop-remark-editor span button::after { background:var(--green); }
.fan-operation-page:not(.hidden) .fop-remark-divider { height:28px; display:flex; align-items:center; color:#666; font-weight:400; }
.fan-operation-page:not(.hidden) input.fop-remark-separator {
  width:120px;
  min-width:70px;
  height:28px;
  flex:1 1 120px;
  padding:0 2px;
  border:0;
  outline:0;
  background:transparent;
}

/* V1.8 新客户运营发送内容：线上两层消息结构与素材底栏。 */
.fan-operation-page:not(.hidden) .fop-message-row { grid-template-rows:48px minmax(76px,auto); }
.fan-operation-page:not(.hidden) .fop-message-row > .fop-delay { min-height:48px; padding:6px 10px; }
.fan-operation-page:not(.hidden) .fop-delay input { width:82px; }
.fan-operation-page:not(.hidden) .fop-delay select { width:82px; }
.fan-operation-page:not(.hidden) .fop-delay span { font-size:14px; white-space:nowrap; }
.fan-operation-page:not(.hidden) .fop-group-badge {
  height:32px;
  display:flex;
  align-items:center;
  margin-left:2px;
  padding:0 11px;
  color:#fff;
  font-weight:400;
  border-radius:3px;
  background:#f5a623;
}
.fan-operation-page:not(.hidden) .fop-message-row > em { margin-top:18px; background:#e3e3e3; color:#333; }
.fan-operation-page:not(.hidden) .fop-message-row > textarea { width:auto; min-width:120px; max-width:calc(100% - 24px); height:48px; margin:13px auto 13px 0; font-size:14px; }
.fan-operation-page:not(.hidden) .fop-group-action,
.fan-operation-page:not(.hidden) .fop-media-message { min-height:58px; margin:9px 12px 9px 0; background:#fff; }
.fan-operation-page:not(.hidden) .fop-group-action > span {
  height:36px;
  display:flex;
  align-items:center;
  padding:0 14px;
  color:#333;
  border-radius:3px;
  background:#fff0e5;
}
.fan-operation-page:not(.hidden) .fop-group-action .fop-text-command { min-width:68px; color:#555; border-color:#ddd; background:#fff; }
.fan-operation-page:not(.hidden) .fop-media-message.is-image { align-items:flex-start; position:relative; }
.fan-operation-page:not(.hidden) .fop-image-preview {
  width:210px;
  height:120px;
  display:block;
  border-radius:5px;
  background-image:url("assets/wechat-landscape-avatars.png");
  background-size:400% 200%;
  background-position:33.333% 0;
  background-repeat:no-repeat;
}
.fan-operation-page:not(.hidden) .fop-media-message.is-image > button { opacity:0; transition:opacity .15s ease; }
.fan-operation-page:not(.hidden) .fop-media-message.is-image:hover > button,
.fan-operation-page:not(.hidden) .fop-media-message.is-image:focus-within > button { opacity:1; }
.fan-operation-page:not(.hidden) .fop-material-bar {
  min-height:58px;
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:10px;
  padding:8px 10px;
  border:1px solid #e1e1e1;
  background:#f8f8f8;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-material-bar .fop-content-count { height:32px; flex:0 0 auto; font-size:14px; }
.fan-operation-page:not(.hidden) .fop-material-bar .fop-material-tabs { min-width:0; flex:1; padding:0; }

.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"] { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"].hidden { display:none; }
.fan-operation-page:not(.hidden) .fop-cancel-tag-line { min-height:32px; display:grid; grid-template-columns:96px minmax(0,1fr); align-items:start; gap:10px; }
.fan-operation-page:not(.hidden) .fop-cancel-tag-line > button { height:32px; padding:0 13px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; }
.fan-operation-page:not(.hidden) .fop-cancel-tag-summary { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.fan-operation-page:not(.hidden) .fop-cancel-tag-summary > span { height:26px; display:flex; align-items:center; gap:5px; padding:0 8px; color:var(--green); border:1px solid #8bcd7d; background:#f5fbf2; }
.fan-operation-page:not(.hidden) .fop-cancel-tag-summary button { padding:0; color:var(--green); border:0; background:transparent; }

/* 公用定式：带固定变量的文本框。普通文字可编辑，变量作为不可编辑标签插入。 */
.shared-fixed-variable-box {
  width:100%;
  display:flex;
  flex-direction:column;
  gap:0 !important;
  box-sizing:border-box;
}
.shared-fixed-variable-toolbar {
  min-height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 12px;
  border:1px solid #e1e1e1;
  background:#fafafa;
  box-sizing:border-box;
}
.shared-fixed-variable-editor {
  min-height:100px;
  display:block;
  padding:14px 16px;
  color:#555;
  line-height:30px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  border:1px solid #e1e1e1;
  border-top:0;
  outline:0;
  background:#fff;
  box-sizing:border-box;
  cursor:text;
}
.shared-fixed-variable-editor:focus { border-color:#69bd58; box-shadow:inset 0 0 0 1px #69bd58; }
.shared-fixed-variable {
  height:28px;
  display:inline-flex !important;
  align-items:center;
  gap:4px;
  margin:0 4px;
  padding:0 8px;
  color:var(--green);
  line-height:26px;
  vertical-align:middle;
  white-space:nowrap;
  border:1px solid #76c866;
  border-radius:3px;
  background:#f5fbf2;
  box-sizing:border-box;
  cursor:default;
}
.shared-fixed-variable > button,
.shared-fixed-variable > span[data-bw-remove-var] {
  width:14px !important;
  height:20px !important;
  min-height:20px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 !important;
  color:var(--green) !important;
  line-height:1;
  border:0 !important;
  background:transparent !important;
  cursor:pointer;
}
.shared-fixed-variable > button::before,
.shared-fixed-variable > button::after,
.shared-fixed-variable > span[data-bw-remove-var]::before,
.shared-fixed-variable > span[data-bw-remove-var]::after { content:none !important; }
.shared-fixed-variable-note {
  min-height:34px;
  display:flex;
  align-items:center;
  padding:0 12px;
  color:#999;
  line-height:20px;
  border:1px solid #e1e1e1;
  border-top:0;
  box-sizing:border-box;
}

/* 自动备注标题、开关和设置区使用同一条32px对齐轨道。 */
.fan-operation-page:not(.hidden) .fop-remark-row { align-items:start; }
.fan-operation-page:not(.hidden) .fop-remark-row > label {
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  padding-top:0;
}
.fan-operation-page:not(.hidden) .fop-remark-row > div {
  width:100%;
  min-height:32px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:start;
  gap:10px 12px;
}
.fan-operation-page:not(.hidden) .fop-remark-switch {
  grid-column:1;
  width:44px;
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-remark-dependent {
  grid-column:1 / -1;
  width:100%;
}
.fan-operation-page:not(.hidden) .shared-fixed-variable-toolbar { min-height:48px; }
.fan-operation-page:not(.hidden) .shared-fixed-variable-editor {
  min-height:100px;
  display:block;
  padding:14px 16px;
  line-height:30px;
  border:1px solid #e1e1e1;
  border-top:0;
}

/* V1.8 发送内容定式：卡片只读展示，新增与编辑统一进入右侧操作项。 */
.fan-operation-page:not(.hidden) .fop-message-row {
  grid-template-columns:52px minmax(180px,1fr) 242px;
  grid-template-rows:48px minmax(76px,auto);
}
.fan-operation-page:not(.hidden) .fop-message-row > .fop-delay { grid-column:1 / -1; }
.fan-operation-page:not(.hidden) .fop-message-row > em { grid-column:1; grid-row:2; }
.fan-operation-page:not(.hidden) .fop-text-message,
.fan-operation-page:not(.hidden) .fop-group-action,
.fan-operation-page:not(.hidden) .fop-media-message {
  grid-column:2;
  grid-row:2;
  min-width:0;
  align-self:stretch;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-text-message {
  min-height:48px;
  display:flex;
  align-items:center;
  margin:13px 12px 13px 0;
  padding:0 14px;
  color:#333;
  line-height:22px;
  overflow-wrap:anywhere;
  border:1px solid #e1e1e1;
  border-radius:3px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-text-message.empty { color:#aaa; }
.fan-operation-page:not(.hidden) .fop-message-actions {
  grid-column:3;
  grid-row:2;
  align-self:center;
  justify-self:end;
  height:44px;
  display:flex;
  align-items:center;
  gap:8px;
  margin-right:12px;
  padding-left:12px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-message-actions > i {
  width:1px;
  height:28px;
  margin:0 3px;
  background:#e1e1e1;
}
.fan-operation-page:not(.hidden) .fop-message-actions > button {
  width:40px;
  height:40px;
  min-width:40px;
  position:relative;
  padding:0;
  color:#777;
  border:1px solid #d9d9d9;
  border-radius:4px;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.fan-operation-page:not(.hidden) .fop-message-actions > button:hover {
  color:var(--green);
  border-color:#72bd66;
  background:#fbfffa;
}
.fan-operation-page:not(.hidden) .fop-message-actions > button:disabled {
  color:#c5c5c5;
  border-color:#e5e5e5;
  background:#fafafa;
  cursor:not-allowed;
}
.fan-operation-page:not(.hidden) .fop-message-actions > button::before,
.fan-operation-page:not(.hidden) .fop-message-actions > button::after {
  content:"";
  position:absolute;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-message-actions .is-add::before { width:18px; height:1px; top:19px; left:10px; background:currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-add::after { width:1px; height:18px; top:10px; left:19px; background:currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-edit::before { width:18px; height:6px; top:15px; left:10px; transform:rotate(-45deg); border:2px solid currentColor; border-radius:1px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-edit::after { width:20px; height:1px; left:9px; bottom:8px; background:currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-delete::before { width:15px; height:17px; top:13px; left:12px; border:2px solid currentColor; border-top:0; border-radius:0 0 2px 2px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-delete::after { width:18px; height:2px; top:10px; left:10px; background:currentColor; box-shadow:5px -3px 0 -1px currentColor,-5px -3px 0 -1px currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-down::before { width:11px; height:11px; top:12px; left:14px; transform:rotate(45deg); border-right:2px solid currentColor; border-bottom:2px solid currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-bottom::before { width:2px; height:14px; top:9px; left:19px; background:currentColor; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-bottom::after { width:12px; height:12px; top:12px; left:14px; transform:rotate(45deg); border-right:2px solid currentColor; border-bottom:2px solid currentColor; box-shadow:5px 5px 0 -4px currentColor; }
.fan-operation-page:not(.hidden) .fop-message-edit-dialog { width:600px; }
.fan-operation-page:not(.hidden) .fop-message-edit-form { display:grid; gap:10px; padding:22px 26px; }
.fan-operation-page:not(.hidden) .fop-message-edit-form > label { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:start; gap:12px; }
.fan-operation-page:not(.hidden) .fop-message-edit-form > label > span { min-height:32px; display:flex; align-items:center; justify-content:flex-end; color:#555; }
.fan-operation-page:not(.hidden) .fop-message-edit-form textarea { min-height:140px; padding:10px 12px; resize:vertical; line-height:1.6; border:1px solid #d9d9d9; border-radius:3px; box-sizing:border-box; }
.fan-operation-page:not(.hidden) .fop-message-edit-form textarea:focus { border-color:#69bd58; outline:0; box-shadow:0 0 0 1px rgba(45,171,17,.08); }
.fan-operation-page:not(.hidden) .fop-message-edit-form > small { padding-left:104px; color:#999; }
.fan-operation-page:not(.hidden) .fop-message-edit-switch { align-items:center !important; }
.fan-operation-page:not(.hidden) .fop-message-edit-switch > .new-fan-switch { height:32px; display:flex; align-items:center; }
.fan-operation-page:not(.hidden) .fop-message-edit-image { display:flex; align-items:flex-end; gap:12px; }
.fan-operation-page:not(.hidden) .fop-message-edit-image .fop-image-preview { width:180px; height:104px; }
.fan-operation-page:not(.hidden) .fop-message-edit-image button { height:32px; }
@media (max-width:1180px) {
  .fan-operation-page:not(.hidden) .fop-message-row { grid-template-columns:46px minmax(160px,1fr); }
  .fan-operation-page:not(.hidden) .fop-message-actions { grid-column:2; grid-row:3; justify-self:start; margin:0 0 10px; padding-left:0; }
}

/* V1.8 齿轮发送设置：企微号级配置表，仅列表滚动。 */
.fan-operation-page:not(.hidden) .fop-send-dialog {
  width:min(1200px,calc(100vw - 40px));
  height:min(720px,calc(100vh - 40px));
}
.fan-operation-page:not(.hidden) .fop-send-dialog > .fop-dialog-body { flex:1; min-height:0; overflow:hidden; }
.fan-operation-page:not(.hidden) .fop-send-settings { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.fan-operation-page:not(.hidden) .fop-send-tools {
  height:62px;
  min-height:62px;
  flex:0 0 62px;
  gap:10px;
  padding:0 24px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-send-tools .search-control { width:220px; height:32px; }
.fan-operation-page:not(.hidden) .fop-send-tools select { width:160px; height:32px; }
.fan-operation-page:not(.hidden) .fop-send-tools .fop-send-group-select {
  width:160px;
  flex:0 0 160px;
}
.fan-operation-page:not(.hidden) .fop-send-table {
  flex:1;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
}
.fan-operation-page:not(.hidden) .fop-send-table table { table-layout:fixed; }
.fan-operation-page:not(.hidden) .fop-send-table thead { position:sticky; z-index:2; top:0; }
.fan-operation-page:not(.hidden) .fop-send-table th {
  height:54px;
  padding:0 18px;
  vertical-align:middle;
  color:#333;
  font-weight:700;
  background:#f5f5f5;
}
.fan-operation-page:not(.hidden) .fop-send-table td {
  height:72px;
  padding:8px 18px;
  vertical-align:middle;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-table th:first-child,
.fan-operation-page:not(.hidden) .fop-send-table td:first-child { width:56px; }
.fan-operation-page:not(.hidden) .fop-send-table th:nth-child(2) { width:30%; }
.fan-operation-page:not(.hidden) .fop-send-table th:nth-child(3) { width:18%; }
.fan-operation-page:not(.hidden) .fop-send-table th:nth-child(4) { width:27%; }
.fan-operation-page:not(.hidden) .fop-send-table th:nth-child(5) { width:auto; }
.fan-operation-page:not(.hidden) .fop-send-table .fop-tip { margin-left:3px; }
.fan-operation-page:not(.hidden) .fop-send-table .fop-tip > b { width:260px; top:26px; right:-25px; line-height:1.7; }
.fan-operation-page:not(.hidden) .fop-send-table td:last-child button { color:var(--green); }
.fan-operation-page:not(.hidden) .fop-send-bottom {
  height:54px;
  min-height:54px;
  flex:0 0 54px;
  padding:0 20px;
  border-top:1px solid #e5e5e5;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-bottom > button { height:32px; }
.fan-operation-page:not(.hidden) .fop-send-bottom .fop-pages { padding:0; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog { width:560px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-form { padding:20px 28px 24px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-form > label { min-height:54px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-form > label > span { height:32px; display:flex; align-items:center; justify-content:flex-end; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-sleep-fields { margin:4px 0 0 130px; justify-content:flex-start; }

/* 设置与初始化设置共用的完整发送配置面板。 */
.fan-operation-page:not(.hidden) .fop-send-setting-dialog { width:680px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-dialog-body { overflow-y:auto; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-full-form {
  display:block;
  padding:18px 24px 22px;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel {
  min-height:78px;
  display:flex;
  align-items:center;
  padding:0 18px;
  background:#f4f4f4;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel > label {
  width:100%;
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  align-items:center;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel > label > span {
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  color:#333;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel > label > div { min-width:0; display:flex; align-items:center; }
.fan-operation-page:not(.hidden) .fop-send-delay-panel input {
  width:220px;
  height:34px;
  padding:0 10px;
  border:1px solid #d9d9d9;
  border-radius:3px 0 0 3px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel em {
  width:48px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#555;
  border:1px solid #d9d9d9;
  border-left:0;
  border-radius:0 3px 3px 0;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-delay-panel small { margin-left:10px; color:#666; white-space:nowrap; }
.fan-operation-page:not(.hidden) .fop-send-notes {
  padding:14px 0 16px;
  border-bottom:1px solid #e8e8e8;
}
.fan-operation-page:not(.hidden) .fop-send-notes > strong { display:block; margin-bottom:8px; color:#333; font-size:15px; }
.fan-operation-page:not(.hidden) .fop-send-notes ol { margin:0; padding-left:22px; color:#888; line-height:1.9; }
.fan-operation-page:not(.hidden) .fop-send-sleep-panel { padding-top:16px; }
.fan-operation-page:not(.hidden) .fop-send-sleep-panel > label {
  min-height:36px;
  display:flex;
  align-items:center;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel > label > span { color:#333; font-size:15px; }
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .new-fan-switch { height:32px; display:flex; align-items:center; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel .fop-sleep-fields {
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin:8px 0 0;
  padding:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .fop-sleep-fields input {
  width:126px;
  height:34px;
  padding:0 10px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .fop-sleep-fields .shared-time-picker {
  width:126px;
  flex-basis:126px;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .fop-sleep-fields .shared-time-panel {
  z-index:760;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel > p { margin:4px 0 0; color:#999; line-height:1.7; }
.fan-operation-page:not(.hidden) .fop-send-sleep-panel:not(.enabled) > p { opacity:.72; }
@media (max-width:720px) {
  .fan-operation-page:not(.hidden) .fop-send-setting-dialog { width:calc(100vw - 24px); }
  .fan-operation-page:not(.hidden) .fop-send-delay-panel > label { grid-template-columns:1fr; gap:6px; padding:12px 0; }
  .fan-operation-page:not(.hidden) .fop-send-delay-panel > label > span { justify-content:flex-start; }
  .fan-operation-page:not(.hidden) .fop-send-delay-panel input { width:min(220px,calc(100vw - 210px)); }
  .fan-operation-page:not(.hidden) .fop-send-delay-panel small { white-space:normal; }
}
@media (max-width:900px) {
  .fan-operation-page:not(.hidden) .fop-send-dialog { width:calc(100vw - 24px); height:calc(100vh - 24px); }
  .fan-operation-page:not(.hidden) .fop-send-table th:nth-child(2) { width:240px; }
  .fan-operation-page:not(.hidden) .fop-send-table th:nth-child(3) { width:130px; }
  .fan-operation-page:not(.hidden) .fop-send-table th:nth-child(4) { width:190px; }
  .fan-operation-page:not(.hidden) .fop-send-table { overflow:auto; }
  .fan-operation-page:not(.hidden) .fop-send-table table { min-width:820px; }
}

/* V1.8 新客户运营交付级收口：条件、消息卡片和底部操作采用稳定栅格。 */
.fan-operation-page:not(.hidden) .fop-condition-inline {
  width:min(720px,100%);
  max-width:none;
  min-height:0;
  gap:12px;
  padding:16px 18px;
  border-color:#e4e4e4;
  border-radius:3px;
  background:#fafafa;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label {
  min-height:34px;
  grid-template-columns:96px minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label > span {
  color:#555;
  text-align:right;
}
.fan-operation-page:not(.hidden) .fop-condition-inline select {
  width:180px;
  max-width:100%;
}
.fan-operation-page:not(.hidden) .fop-condition-tag-setting {
  grid-template-columns:96px minmax(0,1fr) !important;
}
.fan-operation-page:not(.hidden) .fop-condition-tag-controls {
  min-width:0;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-condition-tag-controls > select { width:140px; }
.fan-operation-page:not(.hidden) .fop-condition-tag-controls > button {
  flex:0 0 auto;
  padding:0 14px;
  color:var(--green);
}
.fan-operation-page:not(.hidden) .fop-condition-selected {
  min-width:0;
  min-height:34px;
  flex:0 1 auto;
}
.fan-operation-page:not(.hidden) .fop-condition-selected:empty { display:none; }
.fan-operation-page:not(.hidden) .fop-message-row {
  grid-template-columns:44px minmax(200px,1fr) 218px;
  grid-template-rows:44px minmax(72px,auto);
  overflow:visible;
  border-radius:3px;
}
.fan-operation-page:not(.hidden) .fop-message-row > .fop-delay {
  min-height:44px;
  padding:5px 10px;
  border-radius:3px 3px 0 0;
}
.fan-operation-page:not(.hidden) .fop-delay input { width:74px; }
.fan-operation-page:not(.hidden) .fop-delay select { width:72px; }
.fan-operation-page:not(.hidden) .fop-message-row > em { margin-top:12px; }
.fan-operation-page:not(.hidden) .fop-text-message {
  min-height:42px;
  margin:10px 10px 10px 0;
}
.fan-operation-page:not(.hidden) .fop-group-action,
.fan-operation-page:not(.hidden) .fop-media-message { margin:10px 10px 10px 0; }
.fan-operation-page:not(.hidden) .fop-message-actions {
  width:206px;
  height:36px;
  gap:6px;
  margin-right:10px;
  padding-left:8px;
}
.fan-operation-page:not(.hidden) .fop-message-actions > i {
  height:24px;
  margin:0 1px;
}
.fan-operation-page:not(.hidden) .fop-message-actions > button {
  width:34px;
  height:34px;
  min-width:34px;
  border-radius:3px;
}
.fan-operation-page:not(.hidden) .fop-message-actions .is-add::before { top:16px; left:8px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-add::after { top:8px; left:16px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-edit::before { top:12px; left:7px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-edit::after { left:6px; bottom:6px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-delete::before { top:10px; left:9px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-delete::after { top:7px; left:7px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-down::before { top:9px; left:11px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-bottom::before { top:7px; left:16px; }
.fan-operation-page:not(.hidden) .fop-message-actions .is-bottom::after { top:9px; left:11px; }
.fan-operation-page:not(.hidden) .fop-rule-scroll { scroll-padding-bottom:72px; }
.fan-operation-page:not(.hidden) .fop-rule-panel { padding-bottom:12px; }
.fan-operation-page:not(.hidden) .fop-save-bar {
  margin-top:10px;
  box-shadow:0 -3px 10px rgba(0,0,0,.05);
}
@media (max-width:1180px) {
  .fan-operation-page:not(.hidden) .fop-message-row {
    grid-template-columns:44px minmax(160px,1fr);
    grid-template-rows:44px minmax(72px,auto) 44px;
  }
  .fan-operation-page:not(.hidden) .fop-message-actions {
    grid-column:2;
    grid-row:3;
    justify-self:start;
    margin:0 0 8px;
    padding-left:0;
  }
}

/* 公用标签设置组件最终应用层，覆盖新客户运营旧版局部拼装样式。 */
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  width:min(620px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:10px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"] {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:10px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"].hidden { display:none; }
@media (max-width:820px) {
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups,
  .fan-operation-page:not(.hidden) [data-fop-cancel-panel="tag"] { grid-template-columns:1fr; }
}

/* 按条件触发最终定式：三项同层级，标签入口复用公用标签组件。 */
.fan-operation-page:not(.hidden) .fop-condition-inline {
  width:min(860px,100%);
  max-width:none;
  min-height:0;
  display:grid;
  gap:10px;
  padding:18px 24px;
  border:1px solid #e2e2e2;
  border-radius:0;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label,
.fan-operation-page:not(.hidden) .fop-condition-inline > .fop-condition-tag-setting {
  min-height:40px;
  display:grid;
  grid-template-columns:126px minmax(0,1fr) !important;
  align-items:center;
  gap:12px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label > span {
  align-self:center;
  justify-self:start;
  color:#333;
  font-size:14px;
  line-height:20px;
  text-align:left;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .customer-shared-select {
  width:180px;
  max-width:100%;
  height:32px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .customer-shared-select .shared-select-trigger {
  height:32px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .customer-shared-select .shared-select-menu {
  top:34px;
  max-height:220px;
  overflow-y:auto;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact {
  width:auto;
  min-width:0;
  min-height:34px;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-trigger {
  width:96px;
  min-width:96px;
  height:34px;
  flex:0 0 96px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary {
  width:auto;
  min-width:0;
  min-height:28px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > small {
  display:none;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > span {
  color:#555;
  border-color:#d9d9d9;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > span button {
  color:#888;
}

/* 自动打标签回显定式：无卡片底色，双列基线一致，标签采用中性色。 */
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  width:min(620px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  column-gap:24px;
  row-gap:12px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting {
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:32px minmax(28px,auto);
  align-content:start;
  align-items:start;
  gap:8px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-trigger {
  align-self:start;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary {
  align-content:start;
  align-items:flex-start;
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span {
  height:28px;
  color:#555;
  border-color:#d9d9d9;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span button {
  color:#888;
}
.fan-operation-page:not(.hidden) .fop-tag-row .fop-info {
  margin-top:2px;
}
@media (max-width:820px) {
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups {
    grid-template-columns:1fr;
  }
}

/* 标签回显最终覆盖：隔离条件区旧按钮规则，统一使用中性标签。 */
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary {
  flex:1 1 auto;
  flex-wrap:wrap;
  align-content:center;
  overflow:visible;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > span,
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span {
  width:auto;
  height:28px;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  color:#555 !important;
  border:1px solid #d9d9d9 !important;
  border-radius:3px;
  background:#fff !important;
  box-sizing:border-box;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting.compact .shared-tag-setting-summary > span > button,
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span > button {
  width:14px !important;
  min-width:14px !important;
  height:14px !important;
  min-height:14px !important;
  display:grid;
  place-items:center;
  flex:0 0 14px;
  margin:0 !important;
  padding:0 !important;
  color:#888 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-size:13px;
  line-height:14px !important;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting {
  border:0 !important;
  background:transparent !important;
}

/* 自动打标签采用公用组件的行内回显：标签在前，重选入口在后。 */
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  width:min(760px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  column-gap:24px;
  row-gap:8px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline {
  width:100%;
  min-height:32px;
  display:flex;
  flex-direction:row;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline .shared-tag-setting-summary {
  order:2;
  width:auto;
  min-height:28px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline .shared-tag-setting-summary > small {
  display:none;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline .shared-tag-setting-trigger {
  order:1;
  width:auto;
  min-width:96px;
  height:32px;
  margin:0;
  padding:0 12px;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline {
  position:relative;
  padding-left:24px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline::before {
  content:"";
  width:1px;
  position:absolute;
  top:4px;
  bottom:4px;
  left:0;
  background:#e5e5e5;
}
@media (max-width:820px) {
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups {
    grid-template-columns:1fr;
  }
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline {
    padding-top:12px;
    padding-left:0;
  }
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline::before {
    width:auto;
    height:1px;
    top:0;
    right:0;
    bottom:auto;
  }
}

/* 已选标签回显最终定式：紧凑灰底标签。 */
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting-summary > span,
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span {
  width:auto;
  height:auto;
  min-height:24px;
  gap:4px;
  padding:1px 7px;
  color:#666 !important;
  border:1px solid #dedede !important;
  border-radius:3px;
  background:#f5f5f5 !important;
  font-size:12px;
  line-height:18px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-tag-setting-summary > span > button,
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting-summary > span > button {
  width:12px !important;
  min-width:12px !important;
  height:12px !important;
  min-height:12px !important;
  flex-basis:12px;
  color:#999 !important;
  font-size:12px;
  line-height:12px !important;
}

/* 更多操作公用定稿：图标入口、弹出菜单和危险操作状态统一。 */
.shared-more-action-trigger {
  width:28px;
  min-width:28px;
  height:28px;
  min-height:28px;
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
  color:#777;
  border:1px solid #dedede;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.shared-more-action-group {
  height:28px;
  display:inline-flex;
  align-items:stretch;
  flex:0 0 auto;
}
.shared-more-action-primary {
  min-width:48px;
  height:28px;
  min-height:28px;
  margin:0;
  padding:0 10px;
  color:#555;
  border:1px solid #dedede;
  border-radius:3px 0 0 3px;
  background:#fff;
  font-size:13px;
  line-height:26px;
  box-sizing:border-box;
}
.shared-more-action-group .shared-more-action-trigger {
  margin:0;
  border-left:0;
  border-radius:0 3px 3px 0;
}
.shared-more-action-trigger:hover,
.shared-more-action-trigger[aria-expanded="true"] {
  color:var(--green);
  border-color:#72c260;
  background:#f6fbf4;
}
.shared-more-action-menu {
  width:104px;
  min-width:104px;
  position:absolute;
  z-index:80;
  padding:4px 0;
  overflow:hidden;
  border:1px solid #e5e5e5;
  border-radius:4px;
  background:#fff;
  box-shadow:0 5px 14px rgba(0,0,0,.14);
  box-sizing:border-box;
}
.shared-more-action-menu.hidden { display:none; }
.shared-more-action-menu > button {
  width:100%;
  height:34px;
  min-height:34px;
  display:block;
  padding:0 14px;
  color:#555;
  border:0;
  border-radius:0;
  background:#fff;
  font-size:13px;
  font-weight:400;
  line-height:34px;
  text-align:left;
  white-space:nowrap;
  box-sizing:border-box;
}
.shared-more-action-menu > button:hover {
  color:var(--green);
  background:#f3f8ef;
}
.shared-more-action-menu > button.danger:hover {
  color:#d94b4b;
  background:#fff3f3;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .shared-more-action-trigger {
  width:28px;
  min-width:28px;
  height:28px;
  min-height:28px;
  margin-left:0;
  padding:0;
  border-left:0;
  border-radius:0 3px 3px 0;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .shared-more-action-group {
  height:28px;
  display:inline-flex;
  align-items:stretch;
  gap:0;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .shared-more-action-primary {
  min-width:48px;
  height:28px;
  min-height:28px;
  margin:0;
  padding:0 10px;
  border-radius:3px 0 0 3px;
}
.fan-operation-page:not(.hidden) .fop-plan-card .shared-more-action-menu {
  top:52px;
  right:12px;
}

/* 公共 tips 定式：说明浮层显示在图标上方，避免遮挡当前字段。 */
.shared-field-tip-popover {
  top:auto;
  right:auto;
  bottom:28px;
  left:50%;
  transform:translateX(-50%);
}
.shared-field-tip-popover::before {
  top:auto;
  bottom:-6px;
  border-top:6px solid rgba(45,45,45,.94);
  border-right:6px solid transparent;
  border-bottom:0;
  border-left:6px solid transparent;
}

/* 新客户运营发送设置：设置项使用同一左对齐栅格，说明浮层避开当前字段。 */
.fan-operation-page:not(.hidden) .fop-send-setting-dialog {
  width:640px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-full-form {
  --fop-send-label-width:124px;
  padding:18px 24px 22px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel {
  min-height:104px;
  position:relative;
  padding:0 20px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel > label {
  grid-template-columns:var(--fop-send-label-width) minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel > label > span {
  justify-content:flex-start;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel input {
  width:150px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel em {
  width:44px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel small {
  margin-left:10px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel {
  display:grid;
  grid-template-columns:var(--fop-send-label-width) minmax(0,1fr);
  column-gap:12px;
  padding:16px 20px 0;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > label {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:var(--fop-send-label-width) minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > label > span {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel .new-fan-switch {
  justify-self:start;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel .fop-sleep-fields,
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > p {
  grid-column:2;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel .fop-sleep-fields {
  margin:8px 0 0;
  position:relative;
  z-index:4;
  overflow:visible;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > p {
  position:relative;
  z-index:1;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel .shared-field-tip-popover {
  width:300px;
  top:32px;
  right:auto;
  bottom:auto;
  left:-76px;
  padding:6px 10px;
  transform:none;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel .shared-field-tip-popover::before {
  top:-6px;
  right:auto;
  bottom:auto;
  left:82px;
  border-top:0;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.94);
  border-left:6px solid transparent;
  transform:none;
}
@media (max-width:720px) {
  .fan-operation-page:not(.hidden) .fop-send-setting-dialog {
    width:calc(100vw - 24px);
  }
  .fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-full-form {
    --fop-send-label-width:108px;
    padding-right:16px;
    padding-left:16px;
  }
}

/* 公共开关基线与设置项标题居中定式。 */
.new-fan-switch {
  height:32px;
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  line-height:0;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel > label {
  min-height:36px;
  display:grid;
  grid-template-columns:170px 42px;
  align-items:center;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel > label > span {
  height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  line-height:32px;
}
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .new-fan-switch,
.fan-operation-page:not(.hidden) .fop-send-sleep-panel .new-fan-switch i {
  margin-top:0;
  margin-bottom:0;
}

/* V1.8 新客户运营最终视觉收口：主页面与全部弹窗共用同一尺寸和间距基线。 */
.fan-operation-page:not(.hidden) {
  --fop-ui-control:32px;
  --fop-ui-label:126px;
  --fop-ui-gap:12px;
  --fop-ui-row-space:12px;
}
.fan-operation-page:not(.hidden) .fop-titlebar {
  height:50px;
  min-height:50px;
  padding:0 18px;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-company-select {
  width:190px;
  margin-left:10px;
}
.fan-operation-page:not(.hidden) .fop-company-select .shared-company-filter,
.fan-operation-page:not(.hidden) .fop-company-select .shared-select-trigger {
  width:190px;
  height:var(--fop-ui-control);
}
.fan-operation-page:not(.hidden) .fop-title-actions,
.fan-operation-page:not(.hidden) .fop-auto {
  height:var(--fop-ui-control);
  align-items:center;
}
.fan-operation-page:not(.hidden) .fop-title-actions > button {
  min-width:82px;
  height:var(--fop-ui-control);
  padding:0 14px;
}
.fan-operation-page:not(.hidden) .fop-workspace {
  height:calc(100% - 50px);
  grid-template-columns:336px minmax(0,1fr);
  gap:10px;
  padding:10px 10px 0;
}
.fan-operation-page:not(.hidden) .fop-plan-tools {
  height:56px;
  min-height:56px;
  flex-basis:56px;
  gap:8px;
  padding:0 10px;
}
.fan-operation-page:not(.hidden) .fop-plan-tools .primary-button {
  width:108px;
  min-width:108px;
  height:var(--fop-ui-control);
  padding:0 12px;
}
.fan-operation-page:not(.hidden) .fop-settings-button,
.fan-operation-page:not(.hidden) .fop-plan-search,
.fan-operation-page:not(.hidden) .fop-plan-search :is(input,button) {
  height:var(--fop-ui-control);
  min-height:var(--fop-ui-control);
}
.fan-operation-page:not(.hidden) .fop-plan-list { padding:10px; }
.fan-operation-page:not(.hidden) .fop-plan-card {
  min-height:78px;
  margin-bottom:8px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child {
  height:43px;
  padding:0 12px;
}
.fan-operation-page:not(.hidden) .fop-plan-meta { height:34px; padding:0 12px; }
.fan-operation-page:not(.hidden) .fop-rule-panel > h3 {
  height:48px;
  min-height:48px;
  padding:0 20px;
}
.fan-operation-page:not(.hidden) .fop-notice {
  min-height:40px;
  margin:10px 18px 6px;
  padding:7px 12px;
}
.fan-operation-page:not(.hidden) .fop-form-row {
  min-height:52px;
  grid-template-columns:var(--fop-ui-label) minmax(0,1fr);
  column-gap:var(--fop-ui-gap);
  padding:var(--fop-ui-row-space) 24px;
}
.fan-operation-page:not(.hidden) .fop-form-row > label {
  height:var(--fop-ui-control);
  min-height:var(--fop-ui-control);
  justify-content:flex-start;
  padding:0;
  line-height:var(--fop-ui-control);
  text-align:left;
}
.fan-operation-page:not(.hidden) .fop-form-row > div {
  min-height:var(--fop-ui-control);
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-type-row > div { gap:12px; }
.fan-operation-page:not(.hidden) .fop-condition-inline {
  width:min(760px,100%);
  gap:10px;
  padding:14px 18px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline > label,
.fan-operation-page:not(.hidden) .fop-condition-inline > .fop-condition-tag-setting {
  min-height:36px;
  grid-template-columns:112px minmax(0,1fr) !important;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-condition-inline .customer-shared-select,
.fan-operation-page:not(.hidden) .fop-condition-inline .shared-select-trigger {
  width:180px;
  height:var(--fop-ui-control);
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups {
  width:min(520px,100%);
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:12px;
  row-gap:8px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline {
  min-height:var(--fop-ui-control);
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline {
  padding-left:16px;
}
.fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline .shared-tag-setting-trigger {
  min-width:94px;
  height:var(--fop-ui-control);
  padding:0 12px;
}
.fan-operation-page:not(.hidden) .fop-remark-row > div {
  grid-template-columns:44px minmax(0,1fr);
  gap:10px 12px;
}
.fan-operation-page:not(.hidden) .fop-remark-dependent.hidden { display:none; }
.fan-operation-page:not(.hidden) .fop-remark-dependent {
  width:min(820px,100%);
  margin-top:2px;
}
.fan-operation-page:not(.hidden) .shared-fixed-variable-toolbar {
  min-height:44px;
  padding:6px 10px;
}
.fan-operation-page:not(.hidden) .shared-fixed-variable-toolbar button { height:30px; }
.fan-operation-page:not(.hidden) .shared-fixed-variable-editor {
  min-height:84px;
  padding:10px 12px;
}
.fan-operation-page:not(.hidden) .fop-content-row > div,
.fan-operation-page:not(.hidden) .fop-message-list,
.fan-operation-page:not(.hidden) .fop-material-bar { width:min(820px,100%); }
.fan-operation-page:not(.hidden) .fop-message-row {
  grid-template-columns:46px minmax(180px,1fr) 220px;
  grid-template-rows:44px minmax(68px,auto);
  padding:8px 10px;
}
.fan-operation-page:not(.hidden) .fop-delay { gap:8px; }
.fan-operation-page:not(.hidden) .fop-delay input { width:76px; }
.fan-operation-page:not(.hidden) .fop-delay .customer-shared-select { width:72px; }
.fan-operation-page:not(.hidden) .fop-message-actions { gap:6px; margin-right:8px; padding-left:8px; }
.fan-operation-page:not(.hidden) .fop-message-actions > button {
  width:36px;
  min-width:36px;
  height:36px;
}
.fan-operation-page:not(.hidden) .fop-material-bar { min-height:48px; padding:7px 10px; }
.fan-operation-page:not(.hidden) .fop-material-tabs { gap:6px; }
.fan-operation-page:not(.hidden) .fop-material-tabs button {
  height:var(--fop-ui-control);
  min-height:var(--fop-ui-control);
  padding:0 10px;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > div { gap:10px; }
.fan-operation-page:not(.hidden) .fop-cancel-row section { margin-bottom:10px; }
.fan-operation-page:not(.hidden) .fop-cancel-row section > label { height:var(--fop-ui-control); }
.fan-operation-page:not(.hidden) .fop-cancel-dependent { padding:8px 12px; gap:12px 18px; }
.fan-operation-page:not(.hidden) .fop-save-bar { height:54px; min-height:54px; }
.fan-operation-page:not(.hidden) .fop-save-bar button {
  min-width:82px;
  height:var(--fop-ui-control);
  padding:0 16px;
}

/* 新客户运营弹窗尺寸定式。 */
.fan-operation-page:not(.hidden) .fop-modal { padding:20px; }
.fan-operation-page:not(.hidden) .fop-dialog {
  --fop-dialog-control:32px;
  width:560px;
  max-width:calc(100vw - 40px);
  max-height:calc(100vh - 40px);
}
.fan-operation-page:not(.hidden) .fop-dialog > header {
  height:52px;
  min-height:52px;
  flex-basis:52px;
  padding:0 20px;
}
.fan-operation-page:not(.hidden) .fop-dialog > header strong { font-size:15px; }
.fan-operation-page:not(.hidden) .fop-dialog > header button {
  width:30px;
  height:30px;
  font-size:22px;
}
.fan-operation-page:not(.hidden) .fop-dialog > footer {
  height:58px;
  min-height:58px;
  flex-basis:58px;
  gap:10px;
  padding:0 20px;
}
.fan-operation-page:not(.hidden) .fop-dialog > footer button,
.fan-operation-page:not(.hidden) .fop-dialog .ghost-button,
.fan-operation-page:not(.hidden) .fop-dialog .primary-button {
  min-width:68px;
  height:var(--fop-dialog-control);
  min-height:var(--fop-dialog-control);
  padding:0 14px;
}
.fan-operation-page:not(.hidden) .fop-dialog :is(input[type="text"],input[type="search"],input[type="number"],input[type="time"],textarea) {
  font:inherit;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-dialog :is(input[type="text"],input[type="search"],input[type="number"],input[type="time"]) {
  height:var(--fop-dialog-control);
  min-height:var(--fop-dialog-control);
}
.fan-operation-page:not(.hidden) .fop-dialog .customer-shared-select,
.fan-operation-page:not(.hidden) .fop-dialog .shared-select-trigger {
  height:var(--fop-dialog-control);
}
.fan-operation-page:not(.hidden) .fop-dialog .shared-select-menu {
  top:34px;
  max-height:240px;
  overflow-y:auto;
}
.fan-operation-page:not(.hidden) .fop-type-dialog { width:720px; }
.fan-operation-page:not(.hidden) .fop-type-dialog .fop-dialog-body { padding:18px 24px; }
.fan-operation-page:not(.hidden) .fop-type-list { gap:12px; }
.fan-operation-page:not(.hidden) .fop-type-list > label {
  min-height:102px;
  grid-template-columns:16px minmax(0,1fr) 68px;
  gap:14px;
  padding:14px 18px;
}
.fan-operation-page:not(.hidden) .fop-type-list > label strong { font-size:15px; }
.fan-operation-page:not(.hidden) .fop-type-icon { width:68px; height:68px; }
.fan-operation-page:not(.hidden) .fop-condition-form {
  gap:12px;
  padding:20px 24px;
}
.fan-operation-page:not(.hidden) .fop-condition-form > label {
  min-height:var(--fop-dialog-control);
  grid-template-columns:104px minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-condition-form > label > span {
  height:var(--fop-dialog-control);
  justify-content:flex-start;
  padding:0;
  text-align:left;
}
.fan-operation-page:not(.hidden) .fop-condition-form > label > div { gap:8px; }
.fan-operation-page:not(.hidden) .fop-condition-dialog-select { width:180px; }
.fan-operation-page:not(.hidden) .fop-name-dialog { width:500px; }
.fan-operation-page:not(.hidden) .fop-name-dialog .fop-name-field {
  min-height:70px;
  grid-template-columns:96px minmax(0,1fr);
  gap:12px;
  padding:16px 24px 4px;
}
.fan-operation-page:not(.hidden) .fop-name-field span { padding:0; text-align:left; }
.fan-operation-page:not(.hidden) .fop-name-hint { margin:0 24px 16px 132px; }
.fan-operation-page:not(.hidden) .fop-confirm-dialog { width:480px; }
.fan-operation-page:not(.hidden) .fop-confirm-content { padding:26px 30px; }
.fan-operation-page:not(.hidden) .fop-confirm-content p { margin-top:10px; }
.fan-operation-page:not(.hidden) .fop-message-edit-dialog { width:560px; }
.fan-operation-page:not(.hidden) .fop-message-edit-form {
  gap:10px;
  padding:20px 24px;
}
.fan-operation-page:not(.hidden) .fop-message-edit-form > label {
  grid-template-columns:92px minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-message-edit-form > label > span { justify-content:flex-start; }
.fan-operation-page:not(.hidden) .fop-message-edit-form > small { padding-left:104px; }
.fan-operation-page:not(.hidden) .fop-tag-dialog { width:640px; }
.fan-operation-page:not(.hidden) .fop-tag-search { height:var(--fop-dialog-control); margin:12px 18px 6px; }
.fan-operation-page:not(.hidden) .fop-tag-search :is(input,button) { height:var(--fop-dialog-control); }
.fan-operation-page:not(.hidden) .fop-tag-tree { max-height:min(430px,calc(100vh - 190px)); padding:0 18px 10px; }
.fan-operation-page:not(.hidden) .fop-tag-tree section { padding:8px 0; }
.fan-operation-page:not(.hidden) .fop-wide-dialog { width:min(980px,calc(100vw - 40px)); }
.fan-operation-page:not(.hidden) .fop-account-tools,
.fan-operation-page:not(.hidden) .fop-send-tools {
  min-height:56px;
  padding:10px 18px;
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-account-tools .search-control,
.fan-operation-page:not(.hidden) .fop-send-tools .search-control { width:220px; height:var(--fop-dialog-control); }
.fan-operation-page:not(.hidden) .fop-account-filter-select,
.fan-operation-page:not(.hidden) .fop-send-group-select { width:150px; flex:0 0 150px; }
.fan-operation-page:not(.hidden) .fop-account-columns { min-height:460px; }
.fan-operation-page:not(.hidden) .fop-account-head { height:44px; padding:0 16px; }
.fan-operation-page:not(.hidden) .fop-account-row { height:60px; padding:0 16px; }
.fan-operation-page:not(.hidden) .fop-plan-manage-dialog {
  width:min(1080px,calc(100vw - 50px));
  max-height:calc(100vh - 50px);
}
.fan-operation-page:not(.hidden) .fop-manage-body {
  min-height:0;
  padding:14px 20px 12px;
}
.fan-operation-page:not(.hidden) .fop-manage-toolbar { height:44px; }
.fan-operation-page:not(.hidden) .fop-manage-table th { height:42px; }
.fan-operation-page:not(.hidden) .fop-manage-table td { height:62px; }
.fan-operation-page:not(.hidden) .fop-manage-footer { height:44px; }
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog {
  width:min(1160px,calc(100vw - 40px));
  height:min(700px,calc(100vh - 40px));
  max-height:calc(100vh - 40px);
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid {
  grid-template-columns:minmax(520px,1.65fr) minmax(300px,.9fr);
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools,
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-grid aside h4 {
  height:56px;
  min-height:56px;
  padding:0 20px;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control {
  width:300px;
  height:var(--fop-dialog-control);
  flex-basis:300px;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choices {
  gap:10px;
  padding:18px 20px;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-plan-choice {
  height:80px;
  padding:0 16px;
}
.fan-operation-page:not(.hidden) .fop-application-records { padding:12px 16px; }
.fan-operation-page:not(.hidden) .fop-application-records article {
  min-height:96px;
  margin-bottom:8px;
  padding:14px;
}
.fan-operation-page:not(.hidden) .fop-send-dialog {
  width:min(1120px,calc(100vw - 40px));
  height:min(680px,calc(100vh - 40px));
}
.fan-operation-page:not(.hidden) .fop-send-table th { height:48px; padding:0 16px; }
.fan-operation-page:not(.hidden) .fop-send-table td { height:66px; padding:7px 16px; }
.fan-operation-page:not(.hidden) .fop-send-bottom { height:52px; min-height:52px; padding:0 18px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog { width:640px; }
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-full-form {
  --fop-send-label-width:124px;
  padding:16px 24px 18px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel {
  min-height:74px;
  padding:0 18px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel > label {
  grid-template-columns:var(--fop-send-label-width) minmax(0,1fr);
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel > label > div {
  display:flex;
  align-items:center;
  gap:0;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel input {
  width:150px;
  height:32px;
  min-height:32px;
  margin:0;
  padding:0 10px;
  border:1px solid #d9d9d9;
  border-right:0;
  border-radius:3px 0 0 3px;
  box-sizing:border-box;
  line-height:30px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel em {
  width:44px;
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  border:1px solid #d9d9d9;
  border-radius:0 3px 3px 0;
  box-sizing:border-box;
  line-height:30px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-delay-panel small {
  height:32px;
  display:inline-flex;
  align-items:center;
  margin-left:10px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-sleep-fields .shared-time-picker {
  position:relative;
  z-index:5;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-sleep-fields .shared-time-picker.open {
  z-index:20;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-sleep-fields .shared-time-panel {
  z-index:920;
  top:auto;
  bottom:38px;
  background:#fff;
  opacity:1;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > label {
  min-height:36px;
  grid-template-columns:var(--fop-send-label-width) 42px;
  gap:12px;
}
.fan-operation-page:not(.hidden) .fop-send-setting-dialog .fop-send-sleep-panel > label > span {
  justify-content:flex-start;
}
@media (max-width:1100px) {
  .fan-operation-page:not(.hidden) .fop-workspace { grid-template-columns:300px minmax(0,1fr); }
  .fan-operation-page:not(.hidden) .fop-form-row { grid-template-columns:112px minmax(0,1fr); padding-inline:18px; }
  .fan-operation-page:not(.hidden) .fop-message-row { grid-template-columns:42px minmax(170px,1fr); }
}
@media (max-width:760px) {
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups { grid-template-columns:1fr; }
  .fan-operation-page:not(.hidden) .fop-auto-tag-groups .shared-tag-setting.inline + .shared-tag-setting.inline { padding-left:0; }
}

/* V1.8 material library. Keep every control on the finalized 32px rhythm. */
.material-page:not(.hidden) { height:calc(100vh - 40px); min-height:620px; overflow:hidden; font-family:SimSun,"Songti SC",serif; background:#f3f3f3; }
.material-page:not(.hidden) #materialRoot,.material-shell { height:100%; min-height:0; }
.material-shell { position:relative; display:grid; grid-template-rows:48px 44px 56px minmax(0,1fr); overflow:hidden; color:#333; background:#fff; }
.material-page-head,.material-subpage-head { min-width:0; display:flex; align-items:center; box-sizing:border-box; padding:0 18px; border-bottom:1px solid #e9e9e9; background:#fff; }
.material-page-head > strong,.material-subpage-head > strong { font-size:15px; }
.material-settings-button { height:32px; margin-left:auto; }
.material-settings-button span { margin-right:5px; color:#777; }
.material-tabs { display:flex; align-items:flex-end; gap:28px; padding:0 20px; border-bottom:1px solid #eee; background:#fff; }
.material-tabs button { height:44px; position:relative; padding:0 2px; border:0; color:#555; font-size:14px; background:transparent; }
.material-tabs button.active { color:var(--green); font-weight:600; }
.material-tabs button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.material-tabs button:disabled { color:#bbb; cursor:not-allowed; }
.material-toolbar { min-width:0; display:flex; align-items:center; gap:10px; box-sizing:border-box; padding:12px 18px; border-bottom:1px solid #eee; background:#fff; }
.material-toolbar > .primary-button,.material-toolbar > .ghost-button { height:32px; min-height:32px; padding:0 14px; white-space:nowrap; }
.material-toolbar .material-search { width:240px; height:32px; }
.material-toolbar .shared-select { width:140px; flex:0 0 140px; }
.material-toolbar.batch { justify-content:flex-start; }
.material-toolbar.batch .danger { color:#d04d49; border-color:#e3b7b5; }
.material-select-all { height:32px; display:flex; align-items:center; gap:7px; margin-right:4px; }
.material-select-all input,.material-card-check input,.material-tag-options input,.material-group-options input,.material-import-list input { width:14px; height:14px; min-height:14px; margin:0; accent-color:var(--green); }
.material-workspace { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 286px; overflow:hidden; background:#f5f5f5; }
.material-grid-scroll { min-width:0; min-height:0; overflow-y:auto; padding:14px 16px 24px; }
.material-grid { columns:3 250px; column-gap:14px; }
.material-card { min-width:0; position:relative; break-inside:avoid; overflow:hidden; box-sizing:border-box; margin:0 0 14px; border:1px solid #e5e5e5; border-radius:4px; background:#fff; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.material-card:hover,.material-card.active { border-color:var(--green); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.material-card.selected { outline:2px solid rgba(45,171,17,.18); }
.material-card-check { width:28px; height:28px; position:absolute; z-index:2; top:8px; left:8px; display:grid; place-items:center; border-radius:3px; background:rgba(255,255,255,.92); }
.material-card-head { padding:12px 14px 0; }
.material-card-head > small { display:block; margin-top:3px; color:#aaa; font-size:12px; line-height:18px; }
.material-content-echo { min-width:0; display:grid; gap:8px; padding:10px 14px 0; box-sizing:border-box; }
.material-content-echo-item { min-width:0; }
.material-content-echo-item > :is(.shared-send-text,.shared-send-media,.shared-send-file,.shared-send-link,.shared-send-material,.shared-mini-program-card,.shared-video-channel-card) { width:100%; max-width:100%; min-width:0; margin:0; box-sizing:border-box; }
.material-content-echo-item > .shared-send-text { min-height:64px; align-items:flex-start; padding-top:11px; padding-bottom:11px; }
.material-content-echo-item > .shared-send-media.is-emoji { width:max-content; }
.material-content-echo-item > :is(.shared-mini-program-card.is-send-echo,.shared-video-channel-card.is-send-echo) { width:100%; height:auto; }
.material-card > .material-content-echo { margin:10px 14px 0; padding:8px; border-radius:4px; background:#f9f9f9; }
.material-asset-image { width:max-content; max-width:100%; }
.material-asset-image > img { width:auto; max-width:min(160px,100%); height:auto; max-height:160px; display:block; object-fit:contain; border-radius:5px; }
.material-asset-video { width:max-content; max-width:100%; max-height:320px; position:relative; overflow:hidden; border-radius:5px; background:#111; }
.material-asset-video > img { width:auto; max-width:100%; height:auto; max-height:320px; display:block; object-fit:contain; }
.material-asset-video::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.38); }
.material-asset-video > span { width:36px; height:36px; position:absolute; z-index:1; top:50%; left:50%; display:grid; place-items:center; border-radius:50%; background:#fff; transform:translate(-50%,-50%); }
.material-asset-video > span > img { width:24px; height:24px; opacity:.78; }
.material-asset-link { width:min(240px,100%); padding:12px; border:1px solid #e9e9e9; border-radius:5px; background:#fff; box-sizing:border-box; }
.material-asset-link > strong { display:-webkit-box; overflow:hidden; margin-bottom:10px; color:#444; font-size:14px; font-weight:500; line-height:20px; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.material-asset-link > div { min-width:0; display:flex; align-items:center; gap:10px; }
.material-asset-link > div > span { min-width:0; flex:1; display:-webkit-box; overflow:hidden; color:#888; font-size:12px; line-height:17px; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.material-asset-link > div > i { width:50px; height:50px; flex:0 0 50px; border-radius:2px; background:#eef4ff center/cover no-repeat; }
.material-content-echo-item[data-material-echo-type="文字"] > .shared-send-text { width:max-content; max-width:100%; min-height:0; align-items:flex-start; padding:6px 12px; border-color:#e9e9e9; border-radius:5px; background:#fff; }
.material-content-echo-item[data-material-echo-type="文件"] > .shared-send-file { width:min(240px,100%); height:76px; gap:10px; padding:12px; border-color:#e9e9e9; border-radius:5px; background:#fff; }
.material-content-echo-item[data-material-echo-type="文件"] > .shared-send-file > i { width:50px; height:50px; flex:0 0 50px; }
.material-business-card { width:min(100%,220px); min-width:0; display:flex; flex-direction:column; gap:6px; padding:12px; color:#333; border:0; border-radius:3px; background:#fff; box-shadow:inset 0 0 0 1px #dedede; box-sizing:border-box; }
.material-business-card > img { display:block; width:100%; height:auto; object-fit:cover; border-radius:2px; background:#f3f4f5; }
.material-business-card > strong { font-size:15px; font-weight:500; line-height:22px; overflow-wrap:anywhere; }
.material-business-card > p { margin:0; color:#555; font-size:13px; line-height:20px; overflow-wrap:anywhere; }
.material-business-card > footer { min-height:24px; display:flex; align-items:center; gap:7px; padding-top:6px; color:#888; font-size:12px; border-top:1px solid #e8e8e8; }
.material-business-card > footer > img { width:16px; height:16px; flex:0 0 16px; opacity:.62; }
.material-business-identity { min-width:0; display:flex; align-items:center; gap:7px; color:#666; font-size:13px; }
.material-business-identity > img { width:22px; height:22px; flex:0 0 22px; border-radius:50%; object-fit:cover; }
.material-business-identity > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.material-business-card.is-mini > img { aspect-ratio:196 / 159; object-fit:cover; }
.material-business-card.is-channel { gap:6px; padding:0 0 17px; }
.material-business-card.is-channel > img { width:218px; max-width:100%; aspect-ratio:218 / 226; }
.material-business-card.is-channel > :is(.material-business-identity,p,footer) { margin-right:10px; margin-left:10px; }
.material-business-card.is-channel > p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.material-business-card.is-product { width:min(100%,200px); gap:5px; padding:8px; }
.material-business-card.is-product > img { aspect-ratio:184 / 159; object-fit:cover; }
.material-business-card.is-product > p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.material-business-card.is-product > b { color:#f05a22; font-size:16px; font-weight:500; }
.material-business-card.is-product > b > small { margin-right:3px; font-size:12px; }
.material-business-card.is-product > footer { min-height:22px; padding-top:4px; }
.material-voice-card { width:max-content; max-width:100%; min-height:40px; display:flex; align-items:center; gap:13px; padding:0; color:#8791a3; border:0; background:transparent; box-sizing:border-box; }
.material-voice-card > button { width:62px; height:40px; display:grid; place-items:center; padding:0; border:1px solid #e1e4e8; border-radius:4px; background:#fff; }
.material-voice-card > button > img { width:18px; height:18px; opacity:.62; }
.material-voice-card > span { font-size:14px; }
.material-content-echo.large { gap:12px; padding:0; }
.material-detail-preview .material-content-echo-item > .shared-send-text { min-height:96px; }
.material-visual { overflow:hidden; background:#eef1f7; }
.material-visual img { width:100%; height:auto; display:block; object-fit:contain; }
.material-visual.emoji img { object-position:left center; }
.material-visual.video { position:relative; }
.material-visual.video::after { content:"▶"; width:38px; height:38px; position:absolute; top:50%; left:50%; display:grid; place-items:center; border-radius:50%; color:#fff; background:rgba(0,0,0,.48); transform:translate(-50%,-50%); }
.material-file-preview,.material-mini-preview,.material-link-preview,.material-text-preview { box-sizing:border-box; margin:0; padding:18px; background:#fafafa; }
.material-file-preview { display:flex; align-items:center; gap:12px; }
.material-file-preview i { width:42px; height:52px; display:grid; place-items:center; border-radius:3px; color:#fff; font-size:12px; font-style:normal; background:#e96762; }
.material-file-preview span { min-width:0; overflow:hidden; color:#555; text-overflow:ellipsis; }
.material-mini-preview { display:grid; gap:7px; }
.material-mini-preview b { width:max-content; padding:2px 7px; color:#2775d7; font-size:12px; background:#e9f2ff; }
.material-mini-preview span,.material-link-preview small { color:#999; }
.material-link-preview { display:flex; align-items:center; gap:12px; }
.material-link-preview i { width:38px; height:38px; display:grid; place-items:center; border-radius:4px; color:#fff; font-style:normal; background:#6f8ec6; }
.material-link-preview span { min-width:0; display:grid; gap:6px; }
.material-text-preview { color:#555; line-height:1.7; }
.material-card-body { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px; padding:8px 14px 10px; }
.material-card-title { display:flex; align-items:center; gap:8px; }
.material-card-title strong { min-width:0; flex:1; line-height:21px; overflow-wrap:anywhere; }
.material-card-star { width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center; padding:0; color:#f0a020; font:17px/1 Arial,sans-serif; border:1px solid transparent; border-radius:3px; background:transparent; }
.material-card-star:hover { border-color:#f0a020; background:#fffaf0; }
.material-card-star.active { color:#f0a020; }
.material-card-tags { min-width:0; display:flex; align-items:flex-start; gap:3px; color:#999; font-size:11px; line-height:18px; }
.material-card-tags > span { flex:0 0 auto; }
.material-card-tags > div { min-width:0; display:flex; flex-wrap:wrap; }
.material-card-tags em { color:#888; font-size:11px; font-style:normal; }
.material-card-tags em + em::before { content:"、"; color:#bbb; }
.material-card-body footer { min-height:18px; display:flex; justify-content:flex-end; align-items:center; color:#999; font-size:11px; white-space:nowrap; pointer-events:none; }
.material-detail { min-width:0; min-height:0; display:grid; grid-template-rows:auto auto minmax(0,1fr) 52px; border-left:1px solid #e8e8e8; background:#fff; }
.material-detail > header { padding:16px 18px 12px; border-bottom:1px solid #eee; }
.material-detail > header > div { display:flex; align-items:center; gap:7px; }
.material-detail > header strong { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.material-detail > header button { border:0; color:#f0a020; font-size:18px; background:transparent; }
.material-detail > header small { display:block; margin-top:6px; color:#999; }
.material-detail-tags { height:42px; min-height:42px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; padding:6px 18px; border-bottom:1px solid #eee; box-sizing:border-box; }
.material-detail-tags > button { height:26px; flex:0 0 auto; padding:0 9px; border:1px solid #d9d9d9; border-radius:3px; color:#666; font-size:12px; background:#fff; }
.material-detail-tags > button:hover { border-color:#2aa515; color:var(--green); background:#f7faf5; }
.material-detail-tags > div { min-width:0; display:flex; align-items:center; gap:4px; overflow:hidden; white-space:nowrap; }
.material-detail-tags em { height:22px; max-width:72px; display:inline-flex; align-items:center; overflow:hidden; box-sizing:border-box; padding:0 6px; border:1px solid #e1e1e1; border-radius:2px; color:#777; font-size:11px; font-style:normal; line-height:20px; text-overflow:ellipsis; white-space:nowrap; background:#fafafa; }
.material-detail-tags-more { height:22px; display:inline-flex; align-items:center; padding:0 3px; color:#999; font-size:11px; }
.material-detail-tags-empty { color:#aaa; font-size:11px; }
.material-detail-preview { min-height:0; overflow-y:auto; padding:18px; }
.material-detail-preview .material-visual { height:220px; }
.material-detail-preview .material-file-preview,.material-detail-preview .material-mini-preview,.material-detail-preview .material-link-preview,.material-detail-preview .material-text-preview { min-height:160px; border:1px solid #eee; background:#fff; }
.material-detail > footer { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #eee; }
.material-detail > footer button { border:0; border-right:1px solid #eee; color:#777; font-size:20px; background:#fff; }
.material-detail > footer button:hover { color:var(--green); background:#f7faf5; }
.material-empty { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#aaa; }
.material-empty i { width:54px; height:42px; position:relative; border:1px solid #d8d8d8; border-radius:3px; }
.material-empty i::after { content:""; width:20px; height:20px; position:absolute; right:7px; bottom:7px; border:1px solid #d8d8d8; border-radius:50%; }
.material-empty.compact { min-height:120px; }
.material-toast { position:fixed; z-index:500; top:64px; left:50%; padding:10px 18px; border-radius:4px; color:#fff; background:rgba(0,0,0,.72); transform:translateX(-50%); }
.material-toast.hidden { display:none; }

.material-create-shell { grid-template-rows:50px minmax(0,1fr) 58px; background:#f3f3f3; }
.material-create-scroll { min-height:0; overflow-y:auto; padding:16px 0 28px; }
.material-form-section { width:min(980px,calc(100% - 40px)); box-sizing:border-box; margin:0 auto 14px; padding:0 28px 22px; border:1px solid #e7e7e7; background:#fff; }
.material-form-section h3 { height:48px; display:flex; align-items:center; margin:0 -28px 18px; padding:0 28px; border-bottom:1px solid #eee; font-size:14px; }
.material-form-section h3 small { margin-left:8px; color:#999; font-weight:400; }
.material-form-section > label { min-height:42px; display:grid; grid-template-columns:110px minmax(0,1fr); align-items:start; gap:14px; margin-bottom:12px; }
.material-form-section > label > span { height:32px; display:flex; align-items:center; justify-content:flex-end; }
.material-form-section input[type="text"],.material-dialog-form input,.material-dialog-form textarea { width:100%; height:32px; min-height:32px; box-sizing:border-box; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; outline:0; }
.material-form-section input:focus,.material-dialog-form input:focus,.material-dialog-form textarea:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(45,171,17,.08); }
.material-form-section > label > div > small { display:block; margin-top:5px; color:#aaa; text-align:right; }
.material-tag-editor { min-height:32px; }
.material-tag-editor > div { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.material-basic-section { padding-bottom:14px; }
.material-basic-section h3 { margin-bottom:10px; }
.material-basic-section > label { min-height:32px; grid-template-columns:96px minmax(0,1fr); align-items:center; gap:12px; margin-bottom:8px; }
.material-basic-section > label:last-child { margin-bottom:0; }
.material-basic-section > label > span { height:32px; }
.material-basic-section > label > div { min-width:0; position:relative; }
.material-basic-section > label:first-of-type input { padding-right:58px; }
.material-basic-section > label > div > small { height:32px; position:absolute; top:0; right:10px; display:flex; align-items:center; margin:0; color:#aaa; pointer-events:none; }
.material-basic-section .material-tag-editor > div:empty { display:none; margin:0; }
.material-basic-section .material-tag-editor > div:not(:empty) { margin-bottom:6px; }
.material-tag-editor em { height:28px; display:inline-flex; align-items:center; gap:5px; padding:0 8px; border:1px solid #d9d9d9; border-radius:3px; color:#666; font-style:normal; }
.material-tag-editor em button { border:0; color:#999; background:transparent; }
.material-content-list { min-height:160px; border:1px solid #e4e4e4; }
.material-content-section { padding-bottom:24px; }
.material-content-section > h3 { margin-bottom:20px; }
.material-shared-content { width:100%; }
.material-content-editor-dialog > .material-dialog-body { position:relative; overflow:visible; padding:0; }
.material-content-editor-dialog:has(.shared-material-library) { width:min(1000px,calc(100vw - 64px)) !important; }
.material-content-item { min-height:94px; display:grid; grid-template-columns:48px minmax(0,1fr) 210px; align-items:center; gap:12px; box-sizing:border-box; padding:12px 14px; border-bottom:1px solid #e8e8e8; }
.material-content-item:last-child { border-bottom:0; }
.material-content-item > span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; color:#666; background:#e5e5e5; }
.material-content-item p { margin:0; color:#555; line-height:1.6; }
.material-content-item em { display:inline-flex; align-items:center; height:32px; padding:0 12px; border-radius:3px; color:#a45d18; font-style:normal; background:#fff0e2; }
.material-editor-image { width:210px; height:112px; overflow:hidden; border-radius:4px; }
.material-editor-image img { width:100%; height:100%; object-fit:cover; }
.material-content-item nav { display:flex; justify-content:flex-end; gap:8px; }
.material-content-item nav button { width:32px; height:32px; border:1px solid #d9d9d9; border-radius:3px; color:#777; font-size:17px; background:#fff; }
.material-content-tools { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.material-content-tools button,.material-type-grid button { height:32px; padding:0 13px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; }
.material-content-tools i { width:15px; height:15px; display:inline-grid; place-items:center; margin-left:4px; border:1px solid #aaa; border-radius:50%; color:#999; font-size:10px; font-style:normal; }
.material-create-footer { display:flex; align-items:center; justify-content:center; gap:10px; border-top:1px solid #ddd; background:#fff; }
.material-create-footer button { height:32px; min-height:32px; padding:0 18px; }

.material-modal-layer { position:fixed; z-index:420; inset:0; display:grid; place-items:center; padding:24px; background:rgba(0,0,0,.42); }
.material-modal-layer.hidden { display:none; }
.material-dialog { width:min(620px,calc(100vw - 48px)); max-height:calc(100vh - 48px); display:grid; grid-template-rows:48px minmax(0,1fr) 56px; overflow:hidden; border-radius:5px; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.2); }
.material-dialog > header { display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #eee; }
.material-dialog > header strong { font-size:15px; }
.material-dialog > header button { width:30px; height:30px; margin-left:auto; border:0; color:#999; font-size:22px; background:transparent; }
.material-dialog-body { min-height:0; overflow-y:auto; padding:18px 20px; }
.material-dialog > footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 18px; border-top:1px solid #eee; }
.material-dialog > footer button { height:32px; min-height:32px; padding:0 18px; }
.material-text-dialog { width:720px; }
.material-text-toolbar { height:32px; display:flex; justify-content:flex-end; gap:8px; }
.material-text-toolbar button,.material-ai-actions button { height:28px; border:0; color:var(--green); background:transparent; }
.material-text-dialog textarea { width:100%; height:220px; box-sizing:border-box; padding:12px; border:1px solid #ddd; resize:none; outline:0; }
.material-text-dialog textarea:focus { border-color:var(--green); }
.material-ai-actions { height:42px; display:flex; align-items:center; gap:10px; }
.material-ai-actions label { display:flex; align-items:center; margin-left:auto; }
.material-ai-actions input { width:14px; height:14px; min-height:14px; margin-right:5px; accent-color:var(--green); }
.material-dialog-form { display:grid; gap:12px; }
.material-dialog-form label { min-height:34px; display:grid; grid-template-columns:96px minmax(0,1fr); align-items:start; gap:10px; }
.material-dialog-form label > span { height:32px; display:flex; align-items:center; justify-content:flex-end; }
.material-dialog-form textarea { height:76px; padding:8px 10px; resize:none; }
.material-dialog-search { width:100%; height:32px; }
.material-tag-dialog { width:min(640px,calc(100vw - 48px)); }
.material-tag-picker { margin-top:12px; padding:12px 14px 14px; border:1px solid #e5e5e5; border-radius:3px; }
.material-tag-picker-title { height:28px; display:flex; align-items:center; gap:8px; color:#555; }
.material-tag-picker-title small { color:#999; font-size:12px; }
.material-tag-options { display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px; padding-top:7px; }
.material-tag-options label { position:relative; height:28px; display:inline-flex; align-items:center; box-sizing:border-box; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; background:#fff; cursor:pointer; }
.material-tag-options label:hover { border-color:#8acb73; color:#2a9418; }
.material-tag-options label:has(input:checked) { border-color:#72c85c; color:#269315; background:#f6fff3; }
.material-tag-options label input { position:absolute; width:1px; height:1px; min-height:0; opacity:0; pointer-events:none; }
.material-tag-options label[hidden] { display:none; }
.material-tag-selection { height:36px; display:flex; align-items:flex-end; gap:10px; color:#777; font-size:13px; }
.material-tag-selection b { color:var(--green); font-weight:500; }
.material-tag-selection button { padding:0; border:0; color:var(--green); background:transparent; }
.material-confirm { width:min(520px,calc(100vw - 48px)); display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; box-sizing:border-box; padding:28px 30px; border-radius:6px; background:#fff; }
.material-confirm > i { width:32px; height:32px; display:grid; place-items:center; border:2px solid #f5a623; border-radius:50%; color:#f5a623; font-size:20px; font-style:normal; }
.material-confirm strong { font-size:18px; }
.material-confirm p { margin:12px 0 24px; color:#666; line-height:1.7; }
.material-confirm footer { display:flex; justify-content:flex-end; gap:10px; }
.material-confirm footer button { height:34px; min-width:74px; padding:0 16px; border-radius:3px; }
.material-danger-button { border:1px solid #e75555; color:#e75555; background:#fff; }
.material-import-dialog { width:min(1050px,calc(100vw - 48px)); }
.material-import-dialog .material-dialog-body { padding:0; }
.material-import { min-height:480px; display:grid; grid-template-columns:minmax(0,1fr) 310px; }
.material-import > section { min-width:0; border-right:1px solid #eee; }
.material-import > section > nav { height:44px; display:flex; gap:24px; padding:0 18px; border-bottom:1px solid #eee; }
.material-import > section > nav button { position:relative; border:0; background:transparent; }
.material-import > section > nav button.active { color:var(--green); }
.material-import > section > nav button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.material-import-tools { display:flex; gap:8px; padding:12px 16px; border-bottom:1px solid #eee; }
.material-import-tools .material-search { width:210px; }
.material-import-tools .shared-select { width:130px; flex:0 0 130px; }

/* V1.9 发送内容：群邀请管理。 */
.fan-operation-page:not(.hidden) .fop-group-invite-page {
  --group-control-height:32px;
  width:100%;
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  color:#444;
  background:#f2f2f2;
}
.fan-operation-page:not(.hidden) .fop-group-page-header {
  height:48px;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 16px;
  border-bottom:1px solid #e5e5e5;
  box-sizing:border-box;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-page-header > strong { font-size:14px; }
.fan-operation-page:not(.hidden) .fop-group-page-scroll {
  min-height:0;
  flex:1;
  padding:12px 0 28px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.fan-operation-page:not(.hidden) .fop-group-page-panel {
  width:min(1000px,calc(100% - 32px));
  min-height:calc(100% - 4px);
  margin:0 auto;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-page-panel > nav {
  height:48px;
  display:flex;
  align-items:flex-end;
  gap:22px;
  padding:0 20px;
  border-bottom:1px solid #e5e5e5;
}
.fan-operation-page:not(.hidden) .fop-group-page-panel > nav button {
  height:48px;
  position:relative;
  padding:0;
  border:0;
  color:#666;
  background:none;
}
.fan-operation-page:not(.hidden) .fop-group-page-panel > nav button.active { color:var(--green); }
.fan-operation-page:not(.hidden) .fop-group-page-panel > nav button.active::after {
  content:"";
  height:2px;
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  background:var(--green);
}
.fan-operation-page:not(.hidden) .fop-group-disabled-tab { height:48px; position:relative; display:flex; align-items:center; }
.fan-operation-page:not(.hidden) .fop-group-disabled-tab > button { color:#777; }
.fan-operation-page:not(.hidden) .fop-group-disabled-tab > i {
  width:250px;
  position:absolute;
  z-index:90;
  top:42px;
  left:-82px;
  display:none;
  padding:8px 10px;
  color:#fff;
  font-size:12px;
  font-style:normal;
  line-height:1.5;
  background:rgba(45,45,45,.92);
  box-shadow:0 4px 12px rgba(0,0,0,.14);
}
.fan-operation-page:not(.hidden) .fop-group-disabled-tab:hover > i,
.fan-operation-page:not(.hidden) .fop-group-disabled-tab:focus-within > i { display:block; }
.fan-operation-page:not(.hidden) .fop-group-invite-settings {
  --group-label-width:148px;
  --group-row-gap:12px;
  padding:16px 24px 28px;
}
.fan-operation-page:not(.hidden) .fop-group-setting-row,
.fan-operation-page:not(.hidden) .fop-group-choice-row {
  min-height:48px;
  display:grid;
  grid-template-columns:var(--group-label-width) minmax(0,1fr);
  align-items:start;
  column-gap:var(--group-row-gap);
}
.fan-operation-page:not(.hidden) .fop-group-setting-row > label,
.fan-operation-page:not(.hidden) .fop-group-choice-row > label {
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-right:0;
  box-sizing:border-box;
  color:#555;
}
.fan-operation-page:not(.hidden) .fop-group-choice,
.fan-operation-page:not(.hidden) .fop-group-radios,
.fan-operation-page:not(.hidden) .fop-group-switch-line {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:22px;
}
.fan-operation-page:not(.hidden) .fop-group-choice label,
.fan-operation-page:not(.hidden) .fop-group-radios label {
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.fan-operation-page:not(.hidden) .fop-group-choice .is-disabled { color:#bbb; }
.fan-operation-page:not(.hidden) .fop-group-invite-page :is(input[type="checkbox"],input[type="radio"]) {
  width:16px;
  height:16px;
  min-height:16px;
  flex:0 0 16px;
  margin:0;
  accent-color:var(--green);
}
.fan-operation-page:not(.hidden) .fop-group-condition-box {
  --group-condition-label-width:130px;
  margin:4px 0 16px;
  padding:0;
  border:1px solid #e5e5e5;
  border-radius:3px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-condition-set {
  padding:14px 18px 10px;
}
.fan-operation-page:not(.hidden) .fop-group-condition-set.is-exclude {
  border-top:1px solid #eee;
}
.fan-operation-page:not(.hidden) .fop-group-condition-set h4 {
  margin:0 0 8px;
  color:#444;
  font-size:14px;
  line-height:24px;
}
.fan-operation-page:not(.hidden) .fop-group-condition-row {
  min-height:44px;
  display:grid;
  grid-template-columns:var(--group-condition-label-width) minmax(0,1fr);
  align-items:start;
  column-gap:12px;
}
.fan-operation-page:not(.hidden) .fop-group-condition-row > label {
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  color:#555;
}
.fan-operation-page:not(.hidden) .fop-group-condition-control {
  min-width:0;
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-group-condition-row > div + div { grid-column:2; margin-top:3px; }
.fan-operation-page:not(.hidden) .fop-group-condition-row .fop-group-keyword-tags { grid-column:2; display:flex; gap:5px; margin:3px 0 5px; flex-wrap:wrap; }
.fan-operation-page:not(.hidden) .fop-group-keyword-input {
  width:min(360px,calc(100% - 158px));
  min-width:220px;
  flex:1;
  height:var(--group-control-height);
  position:relative;
  z-index:1;
  display:flex;
  overflow:hidden;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-keyword-input input {
  min-width:0;
  height:30px;
  flex:1;
  padding:0 10px;
  border:0;
  outline:0;
}
.fan-operation-page:not(.hidden) .fop-group-keyword-input button {
  width:38px;
  height:30px;
  padding:0;
  border:0;
  border-left:1px solid #eee;
  color:var(--green);
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-keyword-tags span {
  height:22px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:0 6px;
  border:1px solid #ddd;
  border-radius:2px;
  color:#666;
  font-size:12px;
  background:#f5f5f5;
}
.fan-operation-page:not(.hidden) .fop-group-keyword-tags button { padding:0; border:0; color:#999; background:none; }
.fan-operation-page:not(.hidden) .fop-group-select { width:150px; flex:0 0 150px; }
.fan-operation-page:not(.hidden) .fop-group-condition-control > .fop-group-select:only-child { width:180px; flex-basis:180px; }
.fan-operation-page:not(.hidden) .fop-group-select .shared-select-trigger { height:var(--group-control-height); }
.fan-operation-page:not(.hidden) .fop-group-select .shared-select-menu { top:34px; z-index:80; max-height:220px; overflow-y:auto; }
.fan-operation-page:not(.hidden) .fop-group-inline-label {
  width:126px;
  height:32px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
  color:#666;
}
.fan-operation-page:not(.hidden) .fop-group-exclude-head {
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0;
  padding:0 18px;
  border-top:1px solid #eee;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-group-exclude-head label { display:flex; align-items:center; gap:8px; font-weight:600; }
.fan-operation-page:not(.hidden) .fop-group-exclude-head small { color:#f39a22; }
.fan-operation-page:not(.hidden) .fop-group-exclude-dependent.hidden { display:none; }
.fan-operation-page:not(.hidden) .fop-group-auto-new {
  min-height:40px;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:4px 18px 12px calc(18px + var(--group-condition-label-width) + 12px);
  border:0;
  background:transparent;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-number,
.fan-operation-page:not(.hidden) .fop-group-name-rule,
.fan-operation-page:not(.hidden) .fop-group-fixed { min-height:32px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.fan-operation-page:not(.hidden) .fop-group-name-rule {
  width:min(680px,100%);
  display:grid;
  grid-template-columns:minmax(220px,300px) auto 90px auto;
  align-items:center;
  column-gap:8px;
  row-gap:6px;
}
.fan-operation-page:not(.hidden) .fop-group-number input,
.fan-operation-page:not(.hidden) .fop-group-name-rule input {
  width:90px;
  height:32px;
  padding:0 10px;
  border:1px solid #ddd;
  border-radius:3px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-name-rule input:first-child { width:100%; }
.fan-operation-page:not(.hidden) .fop-group-name-rule small { grid-column:1 / -1; }
.fan-operation-page:not(.hidden) :is(.fop-group-number,.fop-group-name-rule,.fop-group-fixed) small { width:100%; color:#999; line-height:1.6; }
.fan-operation-page:not(.hidden) .fop-group-switch-line small { color:#999; }
.fan-operation-page:not(.hidden) .fop-group-fixed button {
  height:32px;
  padding:0 12px;
  border:1px solid #ddd;
  border-radius:3px;
  color:#aaa;
  background:#fafafa;
}
.fan-operation-page:not(.hidden) .fop-group-fixed > span { color:#999; }
.fan-operation-page:not(.hidden) .fop-group-divider { height:1px; margin:10px 0 16px; background:#eee; }
.fan-operation-page:not(.hidden) .fop-group-create-dependent.hidden { display:none; }
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact {
  min-width:0;
  min-height:32px;
  flex:1 1 300px;
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact .shared-tag-setting-trigger {
  width:96px;
  min-width:96px;
  height:32px;
  flex:0 0 96px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact .shared-tag-setting-summary {
  width:auto;
  min-width:0;
  min-height:32px;
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:2px 0;
  border:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact .shared-tag-setting-summary > small { display:none; }
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact .shared-tag-setting-summary > span {
  height:24px;
  min-height:24px;
  padding:0 7px;
  color:#555;
  border-color:#d9d9d9;
  font-size:12px;
  line-height:22px;
  background:#f5f5f5;
}
.fan-operation-page:not(.hidden) .fop-group-condition-control .shared-tag-setting.compact .shared-tag-setting-summary > span button { color:#888; }
.fan-operation-page:not(.hidden) .fop-group-save-bar {
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:8px 20px;
  border-top:1px solid #eee;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-group-save-bar button { height:34px; padding:0 16px; }
@media (max-width:1100px) {
  .fan-operation-page:not(.hidden) .fop-group-name-rule { grid-template-columns:minmax(190px,240px) auto 82px auto; }
}
@media (max-width:760px) {
  .fan-operation-page:not(.hidden) .fop-group-invite-settings { --group-label-width:118px; padding:14px 16px 24px; }
  .fan-operation-page:not(.hidden) .fop-group-condition-box { --group-condition-label-width:108px; }
  .fan-operation-page:not(.hidden) .fop-group-condition-set { padding-right:12px; padding-left:12px; }
  .fan-operation-page:not(.hidden) .fop-group-auto-new { padding-left:calc(12px + var(--group-condition-label-width) + 12px); }
  .fan-operation-page:not(.hidden) .fop-group-keyword-input { width:100%; min-width:0; flex-basis:100%; }
  .fan-operation-page:not(.hidden) .fop-group-auto-new { margin-left:0; }
  .fan-operation-page:not(.hidden) .fop-group-name-rule { display:flex; }
  .fan-operation-page:not(.hidden) .fop-group-name-rule input:first-child { width:min(260px,100%); }
}
.material-import-list { max-height:400px; display:block; columns:2 240px; column-gap:10px; overflow-y:auto; padding:12px 16px; }
.material-import-list > label { width:100%; min-width:0; display:inline-grid; grid-template-columns:22px minmax(0,1fr); align-items:start; break-inside:avoid; box-sizing:border-box; margin:0 0 10px; padding:10px; vertical-align:top; border:1px solid #e5e5e5; border-radius:3px; }
.material-import-list > label > span { min-width:0; display:grid; gap:5px; }
.material-import-list .material-visual img { height:auto; object-fit:contain; }
.material-import-list .material-file-preview,.material-import-list .material-mini-preview,.material-import-list .material-link-preview,.material-import-list .material-text-preview { min-height:0; padding:10px; }
.material-import-list small { color:#999; }
.material-import > aside { padding:18px; }
.material-import > aside p { color:#777; }
.material-settings-dialog { width:720px; }
.material-settings-scroll { display:grid; gap:22px; }
.material-settings-scroll section + section { padding-top:18px; border-top:1px solid #eee; }
.material-settings-scroll h3 { margin:0 0 14px; font-size:14px; }
.material-setting-row { min-height:36px; display:grid; grid-template-columns:150px auto minmax(0,1fr); align-items:center; gap:12px; }
.material-setting-row > span { text-align:right; }
.material-setting-row small { color:#999; }
.material-switch { width:42px !important; height:22px !important; min-height:22px !important; position:relative; appearance:none; border-radius:11px; background:#bbb; transition:.15s; }
.material-switch::after { content:""; width:18px; height:18px; position:absolute; top:2px; left:2px; border-radius:50%; background:#fff; transition:.15s; }
.material-switch:checked { background:var(--green); }
.material-switch:checked::after { left:22px; }
.material-setting-sub { margin:10px 0 0 162px; padding:14px; background:#fafafa; }
.material-setting-sub .material-setting-row { grid-template-columns:105px repeat(3,max-content); margin-bottom:10px; }
.material-setting-sub .material-setting-row > span { text-align:left; }
.material-setting-sub input[type="radio"],.material-setting-sub input[type="checkbox"],.material-protect input { width:14px; height:14px; min-height:14px; margin:0 5px 0 0; accent-color:var(--green); }
.material-setting-sub table { width:100%; margin-top:10px; border-collapse:collapse; background:#fff; }
.material-setting-sub th,.material-setting-sub td { height:42px; padding:0 10px; border:1px solid #e5e5e5; text-align:left; }
.material-setting-sub td button { border:0; color:var(--green); background:transparent; }
.material-note { margin-top:10px; padding:9px 12px; color:#777; line-height:1.65; background:#fff8e9; }
.material-protect { margin-top:8px; }
.material-tag-manager-dialog { width:min(760px,calc(100vw - 48px)); }
.material-tag-manager-dialog .material-dialog-body { padding:14px 18px 10px; }
.material-tag-manager-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; }
.material-tag-manager-toolbar .material-dialog-search { min-width:0; }
.material-add-tag-button { height:32px; min-height:32px; padding:0 14px; white-space:nowrap; }
.material-tag-manager-meta { height:28px; display:flex; align-items:center; gap:12px; color:#777; font-size:12px; }
.material-tag-manager-meta b { color:#555; font-weight:500; }
.material-tag-manager-meta small { color:#aaa; }
.material-tag-manager { max-height:226px; display:flex; flex-wrap:wrap; align-content:flex-start; align-items:flex-start; gap:6px; overflow-y:auto; padding:1px 2px 3px; }
.material-tag-manager label { width:max-content; max-width:100%; height:30px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; overflow:hidden; box-sizing:border-box; border:1px solid #dcdcdc; border-radius:3px; background:#fafafa; transition:border-color .15s,background .15s; }
.material-tag-manager label:hover { border-color:#bfcfba; background:#fff; }
.material-tag-manager label:focus-within { border-color:var(--green); background:#fff; }
.material-tag-manager label[hidden] { display:none; }
.material-tag-manager input { field-sizing:content; width:auto; min-width:2em; max-width:220px; height:28px; box-sizing:content-box; padding:0 8px; border:0; color:#555; text-align:center; background:transparent; outline:0; }
.material-tag-manager button { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; box-sizing:border-box; padding:0; border:0; border-left:1px solid #e3e3e3; color:#aaa; font-size:15px; line-height:1; text-align:center; background:transparent; }
.material-tag-manager button:hover { color:#d94f4f; background:#f4f4f4; }
.material-tag-manager-note { margin:6px 2px 0; color:#999; font-size:12px; }
.material-merge-list { max-height:230px; overflow-y:auto; margin-top:16px; border:1px solid #e5e5e5; }
.material-merge-list > strong,.material-merge-list > div { min-height:40px; display:flex; align-items:center; box-sizing:border-box; padding:0 12px; border-bottom:1px solid #eee; }
.material-merge-list > div span { margin-left:auto; color:#999; }
.material-merge-delete { min-height:36px; display:flex; align-items:center; margin-top:10px; }
.material-merge-delete input { width:14px; height:14px; min-height:14px; margin-right:6px; accent-color:var(--green); }
.material-group-options { display:grid; gap:8px; margin-top:12px; }
.material-group-options label { height:42px; display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #eee; }
.material-group-options small { margin-left:auto; color:#999; }
.material-type-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
@media (max-width:1100px) {
  .material-workspace { grid-template-columns:minmax(0,1fr) 250px; }
  .material-grid { columns:2 230px; }
  .material-toolbar .material-search { width:200px; }
  .material-content-item { grid-template-columns:42px minmax(0,1fr); }
  .material-content-item nav { grid-column:2; justify-content:flex-start; }
}

.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control {
  display:flex;
  flex-direction:row;
  direction:ltr;
  align-items:center;
  overflow:hidden;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control > input {
  flex:1 1 auto;
  width:auto;
  min-width:0;
  height:100%;
  min-height:0;
  order:1;
  padding:0 12px;
  border:0;
  box-shadow:none;
}
.fan-operation-page:not(.hidden) .fop-batch-apply-dialog .fop-batch-tools .search-control > .search-button {
  flex:0 0 36px;
  width:36px;
  height:100%;
  min-height:0;
  order:2;
  border:0;
  border-left:1px solid #d9d9d9;
  border-radius:0;
}

/* Finalized title actions: one baseline and downward tips that never cover the header. */
.fan-operation-page:not(.hidden) .fop-titlebar {
  position:relative;
  z-index:70;
  overflow:visible;
}
.fan-operation-page:not(.hidden) .fop-title-actions {
  height:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  gap:10px;
  overflow:visible;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-auto {
  height:32px;
  min-height:32px;
  display:inline-grid;
  grid-template-columns:16px max-content 18px;
  align-items:center;
  gap:6px;
  box-sizing:border-box;
  margin:0;
  line-height:20px;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-auto > input {
  width:16px;
  height:16px;
  min-height:16px;
  display:block;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-auto > span {
  height:32px;
  display:flex;
  align-items:center;
  line-height:20px;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-tip {
  width:18px;
  height:32px;
  display:grid;
  place-items:center;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-tip > b {
  width:260px;
  z-index:100;
  top:calc(100% + 6px);
  right:-8px;
  padding:9px 11px;
  line-height:1.65;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-tip > b::before {
  top:-6px;
  right:11px;
}
.fan-operation-page:not(.hidden) .fop-title-actions .fop-title-batch {
  height:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  margin:0;
  line-height:20px;
}

/* Title help uses the shared tip component; open downward to avoid the global header. */
.fan-operation-page:not(.hidden) .fop-title-actions .shared-field-tip {
  height:32px;
  overflow:visible;
}
.fan-operation-page:not(.hidden) .fop-title-actions .shared-field-tip-popover {
  top:calc(100% + 6px);
  right:-8px;
  bottom:auto;
  left:auto;
  width:260px;
  padding:9px 11px;
  line-height:1.65;
  transform:none;
}
.fan-operation-page:not(.hidden) .fop-title-actions .shared-field-tip-popover::before {
  top:-6px;
  right:11px;
  bottom:auto;
  left:auto;
  border-top:0;
  border-right:6px solid transparent;
  border-bottom:6px solid rgba(45,45,45,.94);
  border-left:6px solid transparent;
  transform:none;
}

/* 自动取消：标题、Tips 与选项沿用紧凑设置行定式。 */
.fan-operation-page:not(.hidden) .fop-cancel-row {
  grid-template-columns:112px minmax(0,1fr);
  column-gap:12px;
  margin:10px 24px 12px;
  padding:12px 14px 14px;
  border:0;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label {
  height:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  align-self:start;
  gap:4px;
  padding:0;
  line-height:20px;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label > span:first-child {
  height:32px;
  display:inline-flex;
  align-items:center;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label .shared-field-tip {
  width:16px;
  height:32px;
  flex:0 0 16px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label .shared-field-tip > button {
  width:16px;
  min-width:16px;
  height:16px;
  min-height:16px;
  padding:0;
  border-radius:50%;
  line-height:1;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label .shared-field-tip-popover {
  width:240px;
  right:auto;
  bottom:28px;
  left:0;
  transform:none;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > label .shared-field-tip-popover::before {
  right:auto;
  left:8px;
  transform:none;
}
.fan-operation-page:not(.hidden) .fop-cancel-row > div {
  width:min(820px,100%);
  display:grid;
  gap:10px;
}
.fan-operation-page:not(.hidden) .fop-cancel-row section {
  min-height:40px;
  margin:0;
  display:grid;
  align-items:center;
  border:1px solid #e4e7eb;
  border-radius:4px;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-cancel-row section > label {
  height:40px;
  min-height:40px;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:0 12px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-cancel-row section > label > input {
  flex:0 0 15px;
}
.fan-operation-page:not(.hidden) .fop-cancel-row section > label > strong {
  font-weight:400;
}
.fan-operation-page:not(.hidden) .fop-cancel-dependent {
  margin:0 12px 10px;
}

/* 自动取消 > 客户发消息：完整关键词设置与定稿控件。 */
.fan-operation-page:not(.hidden) .fop-cancel-message-section {
  align-items:start;
}
.fan-operation-page:not(.hidden) .fop-cancel-message-panel {
  min-height:0;
  display:block;
  padding:0 0 8px;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-cancel-message-panel.hidden,
.fan-operation-page:not(.hidden) .fop-cancel-keyword-settings.hidden {
  display:none;
}
.fan-operation-page:not(.hidden) .fop-cancel-message-options {
  display:grid;
  gap:2px;
  padding:0 12px 6px;
}
.fan-operation-page:not(.hidden) .fop-cancel-message-options > label {
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-cancel-message-options input {
  flex:0 0 15px;
  margin:0;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-settings {
  display:grid;
  gap:10px;
  padding:0 12px;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-block {
  padding:10px 12px;
  border-radius:3px;
  background:#f7f7f7;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-block > strong {
  display:block;
  margin:0 0 7px;
  color:#555;
  font-size:13px;
  line-height:20px;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry {
  height:32px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 36px;
  align-items:center;
  overflow:hidden;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry:focus-within {
  border-color:var(--green);
  box-shadow:0 0 0 2px rgba(45,171,17,.08);
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry > input[type="text"] {
  width:100%;
  height:30px;
  min-height:30px;
  box-sizing:border-box;
  padding:0 10px;
  border:0;
  outline:0;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry > span {
  padding:0 8px;
  color:#999;
  font-size:12px;
  white-space:nowrap;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry > button {
  width:36px;
  height:32px;
  padding:0;
  border:0;
  border-left:1px solid #e3e3e3;
  color:#999;
  font-size:20px;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-entry > button:hover {
  color:var(--green);
  background:#f4f8f1;
}
.fan-operation-page:not(.hidden) .fop-cancel-fuzzy-line {
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-cancel-fuzzy-select,
.fan-operation-page:not(.hidden) .fop-cancel-fuzzy-select .shared-select-trigger {
  width:132px;
  height:32px;
}
.fan-operation-page:not(.hidden) .fop-cancel-fuzzy-select .shared-select-menu {
  top:34px;
  z-index:120;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-chips {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:5px;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-chips > span {
  width:max-content;
  max-width:100%;
  height:22px;
  min-height:22px;
  display:inline-flex;
  align-items:center;
  gap:2px;
  box-sizing:border-box;
  padding:0 4px 0 7px;
  border:1px solid #d9d9d9;
  border-radius:3px;
  color:#666;
  font-size:12px;
  line-height:20px;
  white-space:nowrap;
  background:#fff;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-chips button {
  width:12px;
  min-width:12px;
  height:12px;
  min-height:12px;
  padding:0;
  border:0;
  color:#999;
  font-size:12px;
  line-height:10px;
  background:transparent;
}
.fan-operation-page:not(.hidden) .fop-cancel-keyword-chips button:hover { color:#555; }

@media (max-width:900px) {
  .fan-operation-page:not(.hidden) .fop-cancel-fuzzy-line { grid-template-columns:1fr; }
  .fan-operation-page:not(.hidden) .fop-cancel-fuzzy-select,
  .fan-operation-page:not(.hidden) .fop-cancel-fuzzy-select .shared-select-trigger { width:100%; }
}

/* 自动取消 > 加入群聊：二级条件保持紧凑行高与统一对齐。 */
.fan-operation-page:not(.hidden) .fop-cancel-group-section {
  align-content:start;
}
.fan-operation-page:not(.hidden) .fop-cancel-group-section > label {
  height:36px;
  min-height:36px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="group"] {
  width:100%;
  min-height:36px;
  margin:0 0 4px;
  padding:2px 12px 4px 36px;
  align-items:center;
  background:transparent;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="group"] > label {
  min-height:30px;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  line-height:20px;
}
.fan-operation-page:not(.hidden) [data-fop-cancel-panel="group"] input[type="radio"] {
  flex:0 0 15px;
  margin:0;
}

/* V1.9 方案应用定稿组件：关键词标签、接受新客户与后续方案类功能统一复用。 */
.shared-plan-batch-actions {
  height:32px;
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}
.shared-plan-batch-auto {
  height:32px;
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  line-height:1;
  white-space:nowrap;
}
.shared-plan-batch-auto input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.shared-plan-batch-auto > span {
  height:32px;
  display:inline-flex;
  align-items:center;
  line-height:1;
}
.shared-plan-batch-command {
  height:32px;
  min-width:82px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid #f2a019;
  border-radius:3px;
  color:#fff;
  line-height:1;
  background:#f5a623;
  box-sizing:border-box;
}
.shared-plan-batch-command:hover { background:#ed9813; }

.shared-plan-batch-dialog { width:900px; }
.shared-plan-batch-dialog .kwt-dialog-body { overflow:hidden; }
.shared-plan-batch-application {
  height:min(560px,calc(100vh - 170px));
  min-height:420px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  overflow:hidden;
}
.shared-plan-batch-application > section,
.shared-plan-batch-application > aside { min-width:0; min-height:0; overflow:hidden; }
.shared-plan-batch-application > section { display:flex; flex-direction:column; border-right:1px solid #eee; }
.shared-plan-batch-toolbar {
  height:58px;
  flex:0 0 58px;
  display:flex;
  align-items:center;
  gap:16px;
  padding:0 18px 0 32px;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.shared-plan-batch-toolbar > label { min-height:32px; display:flex; align-items:center; gap:7px; margin:0; white-space:nowrap; line-height:20px; }
.shared-plan-batch-toolbar input,
.shared-plan-batch-card input { width:16px; height:16px; min-width:16px; flex:0 0 16px; margin:0; vertical-align:middle; accent-color:var(--green); }
.shared-plan-batch-toolbar .search-control { width:280px; height:32px; display:grid; grid-template-columns:minmax(0,1fr) 36px; align-items:stretch; margin-left:auto; overflow:hidden; }
.shared-plan-batch-toolbar .search-control > input { grid-column:1; width:100%!important; min-width:0; height:30px; min-height:30px; padding:0 10px; border:0; line-height:30px; box-sizing:border-box; }
.shared-plan-batch-toolbar .search-control > .search-button { grid-column:2; width:36px; min-width:36px; height:30px; align-self:stretch; border-width:0 0 0 1px; border-color:#d9d9d9; box-sizing:border-box; }
.shared-plan-batch-list {
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:12px;
  padding:14px 18px;
  overflow-y:auto;
}
.shared-plan-batch-card {
  min-height:74px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid #e2e2e2;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
  cursor:pointer;
}
.shared-plan-batch-card > input { align-self:center; justify-self:start; }
.shared-plan-batch-card:hover { border-color:#9acb8f; background:#fbfef9; }
.shared-plan-batch-card.selected { border-color:var(--green); background:#f4faF1; }
.shared-plan-batch-card > span { min-width:0; display:flex; flex-direction:column; gap:6px; }
.shared-plan-batch-card strong { overflow:hidden; color:#444; text-overflow:ellipsis; white-space:nowrap; }
.shared-plan-batch-card small { color:#999; }
.shared-plan-batch-empty { min-height:120px; display:grid; place-items:center; color:#999; }
.shared-plan-batch-application > aside { display:flex; flex-direction:column; padding:0 14px 14px; }
.shared-plan-batch-application > aside > h4 { height:58px; flex:0 0 58px; display:flex; align-items:center; margin:0; font-size:14px; }
.shared-plan-batch-records { min-height:0; overflow-y:auto; }
.shared-plan-batch-records article { min-height:86px; margin-bottom:8px; padding:12px; border-radius:3px; background:#f7f7f7; box-sizing:border-box; }
.shared-plan-batch-records article > div,
.shared-plan-batch-records article > p { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; }
.shared-plan-batch-records article > div { margin-bottom:15px; }
.shared-plan-batch-records article strong { min-width:0; overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.shared-plan-batch-records article button { padding:0; border:0; color:var(--green); background:transparent; }
.shared-plan-batch-records article p { color:#999; }
.shared-plan-batch-records article i { width:6px; height:6px; display:inline-block; margin-right:7px; border-radius:50%; background:#31bb17; }

.shared-single-plan-application-dialog { width:min(1040px,calc(100vw - 40px)); }
.shared-single-plan-application-dialog .kwt-dialog-body { display:flex; flex:1; overflow:hidden; }
.shared-single-plan-application-dialog [data-shared-component="单方案应用"] { width:100%; min-height:0; display:flex; }
.shared-single-plan-application-dialog .apply-wechat-picker { width:100%; height:min(600px,calc(100vh - 170px)); }

.shared-application-management {
  width:min(920px,calc(100vw - 40px));
  height:min(760px,calc(100vh - 40px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:4px;
  background:#fff;
  box-shadow:0 12px 34px rgba(0,0,0,.22);
}
.new-fan-modal.direct .shared-application-management {
  max-width:100%;
  max-height:100%;
}
.shared-application-management > header {
  height:54px;
  min-height:54px;
  display:flex;
  align-items:center;
  padding:0 18px;
  border-bottom:1px solid #eee;
  box-sizing:border-box;
}
.shared-application-management > header > div { display:flex; align-items:center; gap:8px; }
.shared-application-management > header small { color:#999; font-weight:400; }
.shared-application-management > header > button { width:32px; height:32px; margin-left:auto; padding:0; border:0; color:#999; font-size:22px; background:transparent; }
.shared-application-management .application-manage-table { flex:1; }

.keyword-tag-page:not(.hidden) .kwt-toolbar .search-control {
  display:flex;
  overflow:hidden;
  border:1px solid #d9d9d9;
  border-radius:3px;
  background:#fff;
  box-sizing:border-box;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .search-control input {
  min-width:0;
  flex:1;
  border:0;
  color:#555;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .search-control input::placeholder {
  color:#999;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .search-control .search-button { flex:0 0 36px; border-width:0 0 0 1px; }

/* 关键词筛选直接复用定稿的打标签组件，工具栏仅做紧凑布局适配。 */
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact {
  position:relative;
  width:auto;
  min-width:150px;
  min-height:32px;
  height:32px;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:6px;
  padding:0;
  border:0;
  background:transparent;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-trigger {
  position:relative;
  flex:0 0 150px;
  width:150px;
  height:32px;
  min-height:32px;
  padding-right:32px;
  color:#666;
  text-align:left;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-trigger::after {
  content:"";
  width:6px;
  height:6px;
  position:absolute;
  top:50%;
  right:12px;
  border-right:1px solid #999;
  border-bottom:1px solid #999;
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-trigger:hover::after,
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-trigger:focus::after {
  border-color:var(--green);
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-summary {
  width:auto;
  max-width:180px;
  min-height:32px;
  flex-wrap:nowrap;
  overflow:hidden;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-summary > small { display:none; }
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-summary > span {
  flex:0 0 auto;
  height:26px;
  padding:0 7px;
  color:#666;
  border-color:#d9d9d9;
  background:#fff;
}
.keyword-tag-page:not(.hidden) .kwt-toolbar .shared-tag-setting.compact .shared-tag-setting-summary > span button { color:#888; }

@media (max-width:980px) {
  .shared-plan-batch-application { grid-template-columns:minmax(0,1fr) 260px; }
  .shared-plan-batch-list { grid-template-columns:1fr; }
}

/* V1.10 朋友圈SOP */
.moments-sop-page { height:calc(100vh - 48px); overflow:hidden; color:#333; background:#f2f2f2; font-size:14px; }
.moments-sop-page > #momentsSopRoot { height:100%; min-height:0; overflow:hidden; }
.sop-page { height:100%; display:flex; flex-direction:column; overflow:hidden; }
.sop-titlebar { height:48px; flex:0 0 48px; display:flex; align-items:center; gap:14px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.sop-titlebar strong { font-size:15px; font-weight:600; }
.sop-titlebar i { width:1px; height:16px; background:#d8d8d8; }
.sop-titlebar [data-shared-company-filter] { width:220px; }
.sop-panel { flex:1; min-height:0; margin:14px 14px 0; display:flex; flex-direction:column; overflow:hidden; background:transparent; }
.sop-tabs { height:40px; flex:0 0 40px; display:flex; align-items:flex-end; border-bottom:1px solid #e3e3e3; background:transparent; }
.sop-tabs button { height:40px; padding:0 16px; border:1px solid #e3e3e3; border-bottom:0; color:#666; font-size:14px; background:#f5f5f5; cursor:pointer; box-sizing:border-box; }
.sop-tabs button + button { margin-left:3px; }
.sop-tabs button.active { position:relative; z-index:1; color:#333; font-weight:400; background:#fff; }
.sop-plan,
.sop-template-list { flex:1; min-height:0; padding:16px; overflow:auto; background:#fff; box-sizing:border-box; }
.sop-toolbar { min-height:32px; position:relative; z-index:20; display:flex; align-items:center; gap:8px; margin-bottom:16px; overflow:visible; flex-wrap:wrap; }
.sop-create { width:112px; height:32px; display:inline-flex; align-items:center; justify-content:center; line-height:20px; white-space:nowrap; box-sizing:border-box; overflow:hidden; font-size:14px; }
.sop-search { width:190px; height:32px; display:flex; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; background:#fff; box-sizing:border-box; }
.sop-search input { min-width:0; flex:1; height:30px; border:0; }
.sop-search .search-button { flex:0 0 36px; border-width:0 0 0 1px; }
.sop-select { height:32px; min-width:150px; display:flex; align-items:center; justify-content:space-between; padding:0 34px 0 12px; position:relative; color:#999; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; }
.sop-select::after { content:""; width:7px; height:7px; position:absolute; top:10px; right:13px; border-right:1px solid #999; border-bottom:1px solid #999; transform:rotate(45deg); }
.sop-select-sm { min-width:136px; color:#555; }
.sop-toolbar .sop-filter-select { width:150px; }
.sop-toolbar .sop-creator-select { width:200px; }
.sop-toolbar .sop-lib-select { width:136px; }
.sop-toolbar [data-v110-select="sop-lib"] .shared-select-menu [data-value=""] { display:none; }
.sop-toolbar .sop-template-select { width:286px; }
.sop-inline .sop-create-lib-select { width:136px; }
.sop-inline .sop-create-template-select { width:260px; }
.sop-template-placeholder { min-width:285px; color:#bbb; }
.sop-table-wrap { flex:1; min-height:0; overflow:auto; }
.sop-table { width:100%; min-width:1180px; border-collapse:collapse; table-layout:fixed; background:#fff; }
.sop-table th { height:48px; padding:0 14px; color:#333; font-weight:400; text-align:left; white-space:nowrap; background:#f5f5f5; }
.sop-table td { height:62px; padding:0 14px; border-bottom:1px solid #eee; color:#333; vertical-align:middle; white-space:nowrap; }
.sop-table .sop-empty-row td { height:160px; color:#999; text-align:center; }
.sop-col-id { width:64px; }
.sop-col-name { width:17%; }
.sop-col-template { width:18%; }
.sop-col-start { width:112px; }
.sop-col-created { width:172px; }
.sop-col-accounts { width:104px; }
.sop-col-status { width:112px; }
.sop-col-creator { width:178px; }
.sop-col-actions { width:140px; }
.sop-cell-ellipsis { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sop-status { display:inline-flex; align-items:center; height:24px; padding:0 9px; border:1px solid #cfe7b8; border-radius:3px; color:var(--green); background:#f7fff0; box-sizing:border-box; }
.sop-status.creating { color:#d46b08; border-color:#ffd591; background:#fff7e6; }
.sop-status.sending { color:#1677ff; border-color:#91caff; background:#e6f4ff; }
.sop-status.cancel { color:#888; border-color:#e6e6e6; background:#f7f7f7; }
.sop-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.sop-actions button { padding:0; border:0; color:var(--green); font-size:14px; font-weight:400; line-height:20px; background:transparent; cursor:pointer; }
.sop-actions .sop-cancel-action { color:#999; }
.sop-actions .sop-cancel-action:hover { color:#666; }
.sop-pagination-bar { min-height:48px; position:sticky; z-index:18; right:0; bottom:-16px; left:0; display:flex; align-items:center; justify-content:flex-end; margin:0 -16px -16px; padding:0 16px; border-top:1px solid #e8e8e8; background:#fff; box-shadow:0 -4px 12px rgba(0,0,0,.05); box-sizing:border-box; }
.sop-pagination-host { justify-content:flex-end; margin-left:0; }
.sop-lib-tabs { height:34px; display:flex; align-items:center; margin-bottom:16px; }
.sop-lib-tabs button { min-width:180px; height:34px; padding:0 16px; border:1px solid #e0e0e0; color:#666; font-size:14px; background:#fff; cursor:pointer; box-sizing:border-box; }
.sop-lib-tabs button + button { margin-left:-1px; }
.sop-lib-tabs button.active { z-index:1; color:var(--green); border-color:var(--green); }
.sop-lib-tabs button:disabled { color:#bbb; border-color:#e5e5e5; background:#f5f5f5; cursor:not-allowed; }
.sop-template-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; align-content:start; padding:16px; border-radius:8px; background:#f3f3f3; box-sizing:border-box; }
.sop-template-create,
.sop-template-card { min-width:0; height:118px; border:1px solid #e8e8e8; border-radius:4px; background:#fff; box-sizing:border-box; }
.sop-template-create { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; border-style:dashed; color:#777; cursor:pointer; }
.sop-template-create b { font-size:42px; line-height:36px; font-weight:300; color:#888; }
.sop-template-card { display:flex; flex-direction:column; overflow:hidden; }
.sop-template-card h4 { margin:16px 16px 12px; font-size:14px; font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sop-template-card p { display:flex; justify-content:space-between; gap:10px; margin:0 16px; color:#999; font-size:12px; white-space:nowrap; }
.sop-template-card p time { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.sop-template-card footer { height:34px; margin-top:auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #eee; }
.sop-template-card footer button { border:0; border-right:1px solid #eee; color:#666; font-family:inherit; font-size:14px; font-weight:400 !important; background:#fafafa; cursor:pointer; }
.sop-template-card footer button:last-child { border-right:0; }
.sop-template-card footer .sop-template-action-edit { color:#555; background:#fafafa; }
.sop-template-card footer .sop-template-action-edit:hover { color:#333; background:#f5f5f5; }
.sop-template-card footer .sop-template-action-copy { color:#555; }
.sop-template-card footer .sop-template-action-copy:hover { color:#333; background:#f5f5f5; }
.sop-template-card footer .sop-template-action-delete { color:#aaa; background:#fcfcfc; }
.sop-template-card footer .sop-template-action-delete:hover { color:#777; background:#f7f7f7; }
.sop-edit-page { height:100%; display:flex; flex-direction:column; overflow:auto; padding-bottom:64px; background:#ededed; box-sizing:border-box; }
.sop-edit-head { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:12px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.sop-edit-head strong { font-size:15px; font-weight:600; }
.sop-form-card { width:min(970px,calc(100% - 190px)); margin:18px auto 0; padding:18px 16px 28px; border-radius:4px; background:#fff; box-sizing:border-box; }
.sop-form-card h3 { margin:0 0 20px; font-size:16px; font-weight:600; }
.sop-form-card > label { min-height:50px; display:flex; align-items:center; gap:20px; margin:0; }
.sop-form-card > label > span { width:96px; flex:0 0 96px; text-align:left; }
.sop-input-count { width:min(820px,100%); height:38px; display:flex; align-items:center; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; }
.sop-input-count input { min-width:0; flex:1; height:36px; padding:0 12px; border:0; }
.sop-input-count em { flex:0 0 66px; color:#999; font-style:normal; text-align:center; }
.sop-target-box { flex:1; border:1px solid #e5e5e5; background:#fafafa; }
.sop-segment { height:44px; display:flex; align-items:center; gap:18px; padding:0 16px; border-bottom:1px solid #e5e5e5; }
.sop-segment label { height:28px; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.sop-segment .text-button { margin-left:auto; }
.sop-target-box p { margin:16px; color:#777; }
.sop-create-task-page .sop-create-wechat { min-width:112px; width:auto; }
.sop-create-task-page { min-height:0; overflow:hidden; padding-bottom:56px; }
.sop-create-task-page .sop-edit-head { position:relative; z-index:70; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.sop-create-task-scroll { flex:1; min-height:0; overflow:auto; padding:16px 0 28px; box-sizing:border-box; }
.sop-create-task-page .sop-form-card { width:min(1180px,calc(100% - 48px)); margin:0 auto 16px; padding:0 24px 24px; }
.sop-create-task-page .sop-form-card > h3 { min-height:52px; display:flex; align-items:center; margin:0 -24px 18px; padding:0 24px; border-bottom:1px solid #eee; font-size:15px; font-weight:500; box-sizing:border-box; }
.sop-create-fields { display:flex; flex-direction:column; gap:10px; }
.sop-create-fields > label { min-height:40px; display:flex; align-items:center; gap:18px; margin:0; }
.sop-create-fields > label > span,
.sop-create-target-row > span { width:116px; flex:0 0 116px; white-space:nowrap; }
.sop-create-task-page .sop-input-count { width:min(820px,calc(100% - 134px)); }
.sop-create-task-page .sop-create-wechat { height:32px; }
.sop-create-target-row { min-height:50px; display:flex; align-items:flex-start; gap:20px; margin:0; }
.sop-create-target-row > span { height:46px; display:flex; align-items:center; }
.sop-create-target-row .mom-target-box { width:min(748px,100%); min-width:0; flex:0 1 748px; }
.sop-create-target-row .shared-customer-filter { background:#fafafa; }
.sop-create-execution { min-height:178px; }
.sop-create-start-date-picker { z-index:3; }
.sop-date-input { width:180px; height:32px; display:flex; align-items:center; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; }
.sop-date-input:focus-within { border-color:var(--green); box-shadow:0 0 0 1px rgba(42,159,18,.08); }
.sop-date-input input { width:100%; height:30px; padding:0 10px; border:0; color:#555; background:transparent; box-sizing:border-box; }
.sop-inline { display:flex; align-items:center; gap:8px; }
.sop-create-task-page .sop-inline { min-width:0; flex-wrap:wrap; }
.sop-create-task-page .sop-create-lib-select { width:180px; }
.sop-create-task-page .sop-create-template-select { width:320px; }
.sop-plus { width:32px; height:32px; min-width:32px; padding:0; font-size:20px; }
.sop-fixed-footer { height:56px; position:fixed; right:0; bottom:0; left:226px; z-index:80; display:flex; align-items:center; justify-content:center; gap:16px; border-top:1px solid #dedede; background:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.04); }
.sop-fixed-footer button { min-width:86px; height:32px; }
.sop-template-basic { padding-bottom:18px; }
.sop-schedule { width:min(1280px,calc(100% - 80px)); margin-bottom:18px; }
.sop-schedule-shell { min-height:318px; display:grid; grid-template-columns:120px 250px minmax(0,1fr); border:1px solid #e7e7e7; }
.sop-schedule-shell aside { padding:14px 12px; border-right:1px solid #eee; background:#fafafa; }
.sop-schedule-shell aside p { margin:0 0 12px; color:#777; text-align:center; }
.sop-day-row,.sop-task-row { position:relative; }
.sop-day-row + .sop-day-row,.sop-task-row + .sop-task-row { margin-top:8px; }
.sop-day { width:96px; height:36px; border:1px solid #d9d9d9; border-radius:4px; color:#333; background:#fff; }
.sop-day.active { color:var(--green); border-color:var(--green); background:#f7fff4; }
.sop-remove-small { width:18px; height:18px; position:absolute; z-index:2; top:-6px; right:-6px; display:grid; place-items:center; padding:0; border:1px solid #ddd; border-radius:50%; color:#888; background:#fff; font-size:14px; line-height:16px; }
.sop-add { width:100%; height:34px; margin-top:10px; border:1px dashed #ddd; border-radius:3px; color:var(--green); background:#fff; }
.sop-task-col { padding:12px; border-right:1px solid #eee; }
.sop-task-card { width:100%; height:68px; display:block; padding:10px 12px; border:1px solid #ddd; border-radius:4px; color:#333; text-align:left; background:#fff; box-sizing:border-box; }
.sop-task-card.active { border-color:var(--green); background:#f9fff7; }
.sop-task-card span { float:left; }
.sop-task-card time { float:right; color:#666; }
.sop-task-card p { clear:both; margin:8px 0 0; overflow:hidden; color:#777; text-overflow:ellipsis; white-space:nowrap; }
.sop-schedule-shell main { padding:20px 14px; }
.sop-schedule-shell main input[type="radio"],.sop-schedule-shell main input[type="checkbox"] { width:16px; height:16px; min-height:16px; margin:0; accent-color:var(--green); }
.sop-task-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; color:#888; }
.sop-task-head > span { height:32px; display:inline-flex; align-items:center; padding:0 12px; color:#59728f; border-radius:3px; background:#f0f6ff; }
.sop-task-head input { width:112px; height:32px; margin-left:8px; border:1px solid #e5e5e5; border-radius:3px; text-align:center; }
.sop-content-box { border:1px solid #e5e5e5; border-radius:3px; overflow:hidden; }
.sop-content-box header { height:38px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; background:#f7f7f7; }
.sop-content-box header button { border:0; color:var(--green); background:transparent; }
.sop-face { color:#666; font-size:20px; }
.sop-content-box textarea { width:100%; height:92px; padding:12px; border:0; border-top:1px solid #eee; resize:none; box-sizing:border-box; }
.sop-radio-row { min-height:38px; display:flex; align-items:center; gap:18px; padding:0 12px; border-top:1px solid #eee; }
.sop-radio-row label { display:inline-flex; align-items:center; gap:6px; color:#666; }
.sop-mini-actions { margin-top:10px; display:flex; gap:8px; }
.sop-mini-actions button { height:30px; padding:0 12px; border:1px solid #d9d9d9; border-radius:3px; color:#666; background:#fff; }
.sop-template-content-section > h3,.sop-template-comment-section > h3,.sop-template-delete-section > h3 { margin-bottom:14px; font-size:15px; font-weight:400; }
.sop-template-content-editor { width:100%; }
.sop-template-comment-section,.sop-template-delete-section { margin-top:20px; padding-top:18px; border-top:1px solid #eee; }
.sop-template-comment-section > h3 small { color:#999; font-size:13px; font-weight:400; }
.sop-template-comment-section .mom-comment-item { display:block; }
.sop-template-comment-section .mom-comment-editor { width:100%; }
.sop-template-comment-label { min-height:24px; display:flex; align-items:flex-start; justify-content:flex-start; margin:0 0 8px; color:#555; line-height:20px; white-space:nowrap; }
.sop-template-comment-section .mom-add-comment { width:100%; margin:14px 0 0; }
.sop-template-delete-section > h3 { display:flex; align-items:center; gap:10px; }
.sop-template-delete-section > h3 .mom-switch { width:40px; height:22px; position:relative; display:inline-flex; flex:0 0 40px; align-items:center; margin:0; }
.sop-template-delete-body { padding-left:102px; }
.sop-template-delete-body .mom-delete-notes { margin-top:10px; }

/* V1.12 SOP template editor: fixed chrome, scrollable workspace and aligned columns. */
.sop-template-editor-page { position:relative; overflow:hidden; padding-bottom:0; }
.sop-template-editor-scroll { flex:1; min-height:0; overflow-y:scroll; padding:18px 0 78px; scrollbar-gutter:stable; outline:0; box-sizing:border-box; }
.sop-template-editor-page .sop-form-card { width:min(1180px,calc(100% - 48px)); margin:0 auto; border-radius:4px; }
.sop-template-editor-page .sop-template-basic { padding:0 18px 16px; }
.sop-template-editor-page .sop-template-basic > h3,
.sop-template-editor-page .sop-schedule > h3 { height:52px; display:flex; align-items:center; margin:0; padding:0 18px; border-bottom:1px solid #eee; font-size:15px; font-weight:400; box-sizing:border-box; }
.sop-template-editor-page .sop-template-basic > h3 { margin:0 -18px 10px; }
.sop-template-editor-page .sop-template-basic > label { max-width:920px; }
.sop-template-editor-page .sop-template-basic .sop-input-count { width:100%; }
.sop-template-editor-page .sop-schedule { margin-top:16px; margin-bottom:0; padding:0; overflow:hidden; }
.sop-template-editor-page .sop-schedule-shell { height:clamp(430px,calc(100vh - 286px),620px); min-height:430px; grid-template-columns:136px 250px minmax(0,1fr); overflow:hidden; border:0; }
.sop-template-editor-page .sop-schedule-shell aside,
.sop-template-editor-page .sop-task-col,
.sop-template-editor-page .sop-schedule-shell main { min-height:0; overflow-y:auto; scrollbar-gutter:stable; box-sizing:border-box; }
.sop-template-editor-page .sop-schedule-shell aside { padding:14px 12px 20px; }
.sop-template-editor-page .sop-schedule-shell aside p,
.sop-template-editor-page .sop-column-title { height:28px; display:flex; align-items:center; margin:0 0 10px; color:#777; font-size:14px; font-weight:400; }
.sop-template-editor-page .sop-schedule-shell aside p { justify-content:center; }
.sop-template-editor-page .sop-task-col { padding:14px 12px 20px; background:#fcfcfc; }
.sop-template-editor-page .sop-day-row,
.sop-template-editor-page .sop-task-row { position:relative; }
.sop-template-editor-page .sop-day { width:100%; height:36px; display:flex; align-items:center; justify-content:center; gap:2px; padding:0 30px 0 8px; border:1px solid #d9d9d9; border-radius:4px; color:#333; background:#fff; box-sizing:border-box; }
.sop-template-editor-page .sop-day.active { color:var(--green); border-color:var(--green); background:#f7fff4; }
.sop-template-editor-page .sop-day.invalid { color:#ff4d4f; border-color:#ff4d4f; background:#fff7f7; }
.sop-template-editor-page .sop-day input { width:32px; height:28px; min-height:28px; margin:0; padding:0; border:0; color:inherit; text-align:center; outline:0; background:transparent; appearance:textfield; }
.sop-template-editor-page .sop-day input::-webkit-inner-spin-button,
.sop-template-editor-page .sop-day input::-webkit-outer-spin-button { margin:0; appearance:none; }
.sop-template-editor-page .sop-day-error { min-height:20px !important; height:auto !important; display:block !important; margin:8px 0 0 !important; color:#ff4d4f !important; font-size:12px !important; line-height:18px !important; text-align:left !important; }
.sop-template-editor-page .sop-task-card { height:68px; padding:10px 34px 10px 12px; }
.sop-template-editor-page .sop-remove-small { width:24px; height:24px; top:50%; right:6px; z-index:3; padding:0; border:0; border-radius:3px; color:#aaa; background:transparent; font-size:17px; line-height:24px; transform:translateY(-50%); cursor:pointer; }
.sop-template-editor-page .sop-remove-small:hover { color:#ff4d4f; background:#fff1f0; }
.sop-template-editor-page .sop-schedule-shell main { height:100%; max-height:100%; padding:0 18px 30px; overflow-y:scroll; overscroll-behavior:auto; scrollbar-width:auto; outline:0; background:#fff; }
.sop-template-editor-page .sop-task-head { position:sticky; top:0; z-index:12; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 -18px 18px; padding:0 18px; border-bottom:1px solid #eee; background:#fff; box-sizing:border-box; }
.sop-template-editor-page .sop-task-context { min-width:0; display:flex; align-items:center; gap:10px; }
.sop-template-editor-page .sop-task-context span { height:26px; display:inline-flex; align-items:center; padding:0 10px; border-radius:3px; color:#56708c; font-size:13px; background:#f0f6ff; white-space:nowrap; }
.sop-template-editor-page .sop-task-context strong { overflow:hidden; color:#333; font-size:14px; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.sop-template-editor-page .sop-task-schedule { display:flex; align-items:center; gap:10px; color:#777; white-space:nowrap; }
.sop-template-editor-page .sop-task-schedule > span { color:#999; font-size:13px; }
.sop-template-editor-page .sop-task-schedule > b { color:#555; font-size:13px; font-weight:400; }
.sop-template-editor-page .sop-template-time-picker { width:112px; height:32px; flex-basis:112px; }
.sop-template-editor-page .sop-template-time-picker .shared-time-trigger { height:32px; min-height:32px; line-height:30px; }
.sop-template-editor-page .sop-template-time-picker .shared-time-panel { top:35px; }
.sop-template-editor-page .sop-template-content-section > h3 { margin-bottom:14px; }
.sop-template-editor-page .sop-fixed-footer { position:absolute; right:0; bottom:0; left:0; z-index:40; flex:0 0 56px; justify-content:center; padding:0; box-shadow:0 -3px 12px rgba(0,0,0,.08); box-sizing:border-box; }
.sop-template-editor-scroll::-webkit-scrollbar,
.sop-template-editor-page .sop-schedule-shell aside::-webkit-scrollbar,
.sop-template-editor-page .sop-task-col::-webkit-scrollbar,
.sop-template-editor-page .sop-schedule-shell main::-webkit-scrollbar { width:8px; height:8px; }
.sop-template-editor-scroll::-webkit-scrollbar-thumb,
.sop-template-editor-page .sop-schedule-shell aside::-webkit-scrollbar-thumb,
.sop-template-editor-page .sop-task-col::-webkit-scrollbar-thumb,
.sop-template-editor-page .sop-schedule-shell main::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:8px; background:#c7c7c7; background-clip:padding-box; }
.sop-template-editor-scroll::-webkit-scrollbar-track,
.sop-template-editor-page .sop-schedule-shell aside::-webkit-scrollbar-track,
.sop-template-editor-page .sop-task-col::-webkit-scrollbar-track,
.sop-template-editor-page .sop-schedule-shell main::-webkit-scrollbar-track { background:transparent; }
.sop-modal { position:fixed; inset:0; z-index:180; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.45); }
.sop-dialog { width:560px; max-height:min(620px,calc(100vh - 60px)); display:flex; flex-direction:column; border-radius:4px; background:#fff; box-shadow:0 12px 34px rgba(0,0,0,.22); }
.sop-dialog.compact { width:420px; }
.sop-dialog header { height:52px; display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #eee; }
.sop-dialog header button { margin-left:auto; border:0; color:#999; font-size:22px; background:transparent; }
.sop-dialog section { padding:16px 18px; overflow:auto; }
.sop-dialog footer { height:56px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 18px; border-top:1px solid #eee; }
.sop-wechat-picker-dialog footer { justify-content:space-between; }
.sop-dialog-search { width:220px; height:32px; display:flex; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; }
.sop-dialog-search input { min-width:0; flex:1; height:30px; border:0; }
.sop-dialog-search .search-button { flex:0 0 36px; border-width:0 0 0 1px; }
.sop-wechat-list { margin-top:12px; border:1px solid #eee; }
.sop-wechat-list label { height:42px; display:flex; align-items:center; gap:8px; padding:0 12px; border-bottom:1px solid #eee; }
.sop-wechat-list label:last-child { border-bottom:0; }
.sop-wechat-list em,
.sop-wechat-table em { color:#fa8c16; font-style:normal; }
.sop-detail-page { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; background:#f2f2f2; }
.sop-detail-page-head { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:12px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.sop-detail-page-head strong { font-size:15px; font-weight:400; }
.sop-detail-page-scroll { flex:1; min-height:0; overflow:auto; padding:16px 24px 28px; box-sizing:border-box; }
.sop-detail-summary,
.sop-detail-shell { width:min(1220px,100%); margin:0 auto; background:#fff; box-sizing:border-box; }
.sop-detail-summary { padding:20px 24px; border:1px solid #e7e7e7; }
.sop-detail-summary-title { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.sop-detail-summary-title > div { min-width:0; }
.sop-detail-summary-title span:first-child { color:#999; font-size:13px; }
.sop-detail-summary-title h2 { margin:7px 0 0; overflow:hidden; font-size:20px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.sop-detail-summary dl { display:grid; grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(130px,1fr)); gap:18px 28px; margin:20px 0 0; padding-top:18px; border-top:1px solid #eee; }
.sop-detail-summary dl div { min-width:0; }
.sop-detail-summary dt { margin-bottom:8px; color:#999; }
.sop-detail-summary dd { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sop-detail-shell { min-height:480px; margin-top:14px; border:1px solid #e7e7e7; }
.sop-detail-tabs { height:50px; display:flex; align-items:flex-end; gap:28px; padding:0 24px; border-bottom:1px solid #e8e8e8; box-sizing:border-box; }
.sop-detail-tabs button { height:50px; position:relative; padding:0; border:0; color:#555; font-size:14px; background:transparent; cursor:pointer; }
.sop-detail-tabs button.active { color:var(--green); }
.sop-detail-tabs button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.sop-detail-tabpanel { min-height:428px; }
.sop-detail-content-layout { min-height:428px; display:grid; grid-template-columns:128px 250px minmax(0,1fr); }
.sop-detail-days { padding:18px 14px; border-right:1px solid #eee; background:#fafafa; }
.sop-detail-days p,
.sop-detail-task-list > p { margin:0 0 14px; color:#777; }
.sop-detail-days button { width:100%; height:36px; margin-bottom:8px; border:1px solid #ddd; border-radius:3px; background:#fff; cursor:pointer; }
.sop-detail-days button:hover { border-color:#9acb8f; background:#fbfff9; }
.sop-detail-days button.active { color:var(--green); border-color:var(--green); background:#f8fff5; }
.sop-detail-task-list { padding:18px 12px; border-right:1px solid #eee; }
.sop-detail-task-item { width:100%; min-height:76px; display:block; margin-bottom:10px; padding:12px; border:1px solid #e2e2e2; border-radius:3px; color:#333; text-align:left; background:#fff; box-sizing:border-box; cursor:pointer; }
.sop-detail-task-item:hover { border-color:#9acb8f; background:#fbfff9; }
.sop-detail-task-item.active { border-color:var(--green); background:#f9fff7; }
.sop-detail-task-item div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sop-detail-task-item strong { font-weight:500; }
.sop-detail-task-list time { color:#777; }
.sop-detail-task-item > span { display:block; margin-top:9px; overflow:hidden; color:#777; text-overflow:ellipsis; white-space:nowrap; }
.sop-detail-content-main { min-width:0; padding:20px 24px 28px; }
.sop-detail-content-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:16px; border-bottom:1px solid #eee; }
.sop-detail-content-head > div { display:flex; align-items:center; gap:16px; }
.sop-detail-content-head span { color:#53719f; }
.sop-detail-content-head strong { font-weight:400; }
.sop-detail-content-head em { color:#777; font-style:normal; }
.sop-detail-content-main h3 { margin:0 0 14px; font-size:15px; font-weight:500; }
.sop-detail-moment { padding:20px 0; border-bottom:1px solid #eee; }
.sop-detail-moment > p { margin:0; line-height:1.8; }
.sop-detail-image-grid,
.sop-detail-video,
.sop-detail-link-wrap,
.sop-detail-rich-media { margin-top:16px; }
.sop-detail-rich-media { width:min(360px,100%); }
.sop-detail-media { width:min(420px,100%); min-height:72px; display:flex; align-items:center; gap:12px; margin-top:16px; padding:10px; border:1px solid #e2e2e2; box-sizing:border-box; }
.sop-detail-media > span { width:64px; height:52px; flex:0 0 64px; display:grid; place-items:center; color:#fff; background:#48a835; }
.sop-detail-media.image > span { background:#5796d2; }
.sop-detail-media > div { min-width:0; display:flex; flex-direction:column; gap:8px; }
.sop-detail-media strong { overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.sop-detail-media small { color:#999; }
.sop-detail-comments { padding:20px 0 8px; }
.sop-detail-comments h3 span { color:#999; font-size:13px; font-weight:400; }
.sop-detail-comments article { padding:13px 14px; margin-bottom:10px; background:#f7f7f7; }
.sop-detail-comments article div { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.sop-detail-comments article strong { font-weight:400; }
.sop-detail-comments time { color:#999; }
.sop-detail-comments p { margin:10px 0 0; color:#555; }
.sop-auto-delete { min-height:34px; display:flex; align-items:center; padding:0 12px; margin-top:16px; color:#406b4d; background:#e6f6ee; box-sizing:border-box; }
.sop-detail-target { padding:20px 24px 28px; }
.sop-audience-overview { min-height:58px; display:flex; align-items:center; gap:18px; padding:0 18px; border:1px solid #e5e5e5; background:#fafafa; box-sizing:border-box; }
.sop-audience-overview strong { font-weight:500; }
.sop-audience-overview span { color:#777; }
.sop-audience-groups { margin-top:14px; }
.sop-audience-group { border:1px solid #e5e5e5; }
.sop-audience-group + .sop-audience-group { margin-top:14px; }
.sop-audience-group > header { height:44px; display:flex; align-items:center; padding:0 16px; border-bottom:1px solid #eee; }
.sop-audience-group > header strong { font-weight:500; }
.sop-audience-condition { padding:16px; }
.sop-audience-condition + .sop-audience-condition { border-top:1px solid #eee; }
.sop-audience-condition h4 { margin:0 0 14px; font-size:14px; font-weight:400; }
.sop-audience-condition.excluded h4 { color:#666; }
.sop-audience-condition dl { display:grid; grid-template-columns:repeat(2,minmax(260px,1fr)); gap:14px 32px; margin:0; }
.sop-audience-condition dl div { min-width:0; display:grid; grid-template-columns:92px minmax(0,1fr); align-items:start; }
.sop-audience-condition dt { color:#888; }
.sop-audience-condition dd { min-width:0; margin:0; white-space:nowrap; }
.sop-audience-condition dd > span { margin-right:12px; color:#777; }
.sop-detail-wechat { padding:20px 24px 28px; }
.sop-detail-wechat-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.sop-detail-wechat-toolbar > span { color:#888; }
.sop-detail-wechat-search { width:280px; height:32px; display:flex; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; background:#fff; box-sizing:border-box; }
.sop-detail-wechat-search input { min-width:0; flex:1; height:30px; border:0; }
.sop-detail-wechat-search .search-button { flex:0 0 36px; border-width:0 0 0 1px; }
.sop-wechat-table { margin-top:14px; border:1px solid #eee; }
.sop-wechat-table-head,
.sop-wechat-table-row { display:grid; grid-template-columns:minmax(240px,1.4fr) 160px 210px 100px; align-items:center; column-gap:18px; padding:0 16px; box-sizing:border-box; }
.sop-wechat-table-head { height:46px; color:#666; background:#f5f5f5; }
.sop-wechat-table-row { min-height:66px; border-top:1px solid #eee; }
.sop-wechat-table-row > div { min-width:0; display:flex; align-items:center; gap:10px; }
.sop-wechat-table-row .wx-avatar { width:38px; height:38px; flex:0 0 38px; }
.sop-wechat-table-row p { min-width:0; display:flex; flex-direction:column; gap:5px; margin:0; }
.sop-wechat-table-row strong { overflow:hidden; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.sop-wechat-table em { color:#fa8c16; font-style:normal; }
.sop-wechat-state { display:flex; align-items:center; gap:7px; }
.sop-wechat-state i { width:7px; height:7px; border-radius:50%; background:#bbb; }
.sop-wechat-state.online { color:#299e19; }
.sop-wechat-state.online i { background:#2fbd25; }
.sop-wechat-state.offline { color:#999; }
.sop-detail-wechat-empty { height:150px; display:grid; place-items:center; color:#999; border-top:1px solid #eee; }
.sop-toast { position:fixed; top:80px; left:50%; z-index:210; height:36px; display:flex; align-items:center; padding:0 20px; color:#fff; border-radius:3px; background:rgba(0,0,0,.75); transform:translateX(-50%); }

@media (max-width:1200px) {
  .sop-template-grid { grid-template-columns:repeat(3,minmax(220px,1fr)); }
  .sop-form-card { width:calc(100% - 48px); }
  .sop-template-editor-page .sop-schedule-shell { grid-template-columns:124px 220px minmax(0,1fr); }
  .sop-create-task-page .sop-form-card { width:calc(100% - 32px); }
  .sop-create-fields > label > span,
  .sop-create-target-row > span { width:108px; flex-basis:108px; }
  .sop-create-task-page .sop-input-count { width:min(720px,calc(100% - 126px)); }
  .sop-detail-page-scroll { padding-right:16px; padding-left:16px; }
  .sop-detail-summary dl { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .sop-detail-content-layout { grid-template-columns:112px 220px minmax(520px,1fr); overflow-x:auto; }
  .sop-detail-wechat { overflow-x:auto; }
  .sop-wechat-table { min-width:820px; }
}

@media (max-width:1480px) and (min-width:1201px) {
  .sop-template-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* V1.10 智能问卷 */
.survey-page { height:calc(100vh - 48px); overflow:hidden; color:#333; background:#f2f2f2; font-size:14px; }
.survey-app { height:100%; display:flex; flex-direction:column; overflow:hidden; }
.survey-titlebar { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:14px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.survey-titlebar strong { font-size:15px; font-weight:400; }
.survey-titlebar i { width:1px; height:16px; background:#d8d8d8; }
.survey-titlebar [data-shared-company-filter] { width:220px; }
.survey-list-panel { flex:1; min-height:0; display:flex; flex-direction:column; margin:14px 14px 0; padding:16px 14px; overflow:hidden; background:#fff; box-sizing:border-box; }
.survey-toolbar { min-height:34px; position:relative; z-index:20; display:flex; align-items:center; gap:10px; margin-bottom:18px; overflow:visible; flex-wrap:wrap; }
.survey-create { width:112px; height:32px; display:inline-flex; align-items:center; justify-content:center; line-height:20px; white-space:nowrap; box-sizing:border-box; overflow:hidden; font-size:14px; }
.survey-search { width:220px; height:32px; display:flex; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; background:#fff; }
.survey-search input { min-width:0; flex:1; height:30px; border:0; }
.survey-search .search-button { flex:0 0 36px; border-width:0 0 0 1px; }
.survey-select { height:32px; min-width:220px; display:flex; align-items:center; padding:0 34px 0 12px; position:relative; color:#666; border:1px solid #d9d9d9; border-radius:3px; background:#fff; box-sizing:border-box; }
.survey-select::after { content:""; width:7px; height:7px; position:absolute; top:10px; right:13px; border-right:1px solid #999; border-bottom:1px solid #999; transform:rotate(45deg); }
.survey-select-sm { min-width:140px; }
.survey-toolbar .survey-filter-select { width:220px; }
.survey-toolbar .survey-creator-select { width:220px; }
.survey-list-scroll { flex:1; min-height:0; overflow:auto; padding-bottom:12px; }
.survey-cards { display:flex; flex-direction:column; gap:12px; }
.survey-card { border:1px solid #e6e6e6; border-radius:3px; background:#fff; overflow:hidden; }
.survey-card header { min-height:84px; display:grid; grid-template-columns:minmax(220px,1fr) minmax(650px,2fr); align-items:center; gap:20px; padding:14px 16px; background:#fafafa; box-sizing:border-box; }
.survey-card h3 { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:15px; font-weight:600; }
.survey-card h3 span,
.survey-info-row h4 span { height:22px; display:inline-flex; align-items:center; padding:0 7px; border-radius:3px; color:#fff; font-size:13px; font-weight:400; background:var(--green); }
.survey-card h3 .survey-card-smart-badge { height:18px; padding:0 5px; border-radius:2px; font-size:11px; line-height:18px; }
.survey-card p { margin:0; color:#777; }
.survey-card dl { display:grid; grid-template-columns:repeat(5,minmax(90px,1fr)); gap:20px; margin:0; }
.survey-card dt { margin-bottom:8px; color:#888; }
.survey-card dd { margin:0; font-weight:400; }
.survey-card dd em,
.survey-info-row h4 em { height:24px; display:inline-flex; align-items:center; padding:0 8px; border:1px solid #91d5ff; border-radius:3px; color:#1890ff; font-style:normal; font-weight:400; background:#e6f7ff; }
.survey-card dd em.draft { color:#d46b08; border-color:#ffd591; background:#fff7e6; }
.survey-card dd em.ended { color:#888; border-color:#dedede; background:#f5f5f5; }
.survey-card footer { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 16px; border-top:1px solid #eee; box-sizing:border-box; }
.survey-card footer > div { display:flex; align-items:center; flex-wrap:wrap; gap:8px 26px; }
.survey-card footer button { height:32px; padding:0; border:0; color:#333; font-size:14px; font-weight:400; background:transparent; cursor:pointer; }
.survey-card footer button:hover { color:var(--green); }
.survey-card footer .survey-action { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.survey-card footer .survey-action::before { content:""; width:15px; height:15px; flex:0 0 15px; background:currentColor; -webkit-mask-position:center; mask-position:center; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:contain; mask-size:contain; }
.survey-card footer .survey-action[data-survey-action-icon="send"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="edit"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="analysis"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V9M10 19V5M16 19v-7M22 19H2'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V9M10 19V5M16 19v-7M22 19H2'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="deadline"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v10'/%3E%3Cpath d='M18.4 6.6a8 8 0 1 1-12.8 0'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v10'/%3E%3Cpath d='M18.4 6.6a8 8 0 1 1-12.8 0'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="preview"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="copy"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='12' height='12' rx='2'/%3E%3Cpath d='M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='12' height='12' rx='2'/%3E%3Cpath d='M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action[data-survey-action-icon="delete"]::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 10v6M14 10v6'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 10v6M14 10v6'/%3E%3C/svg%3E"); }
.survey-card footer .survey-action-muted { color:#777; }
.survey-card footer .survey-action:disabled,
.survey-card footer .survey-action:disabled:hover { color:#aaa; cursor:not-allowed; }
.survey-card footer .survey-publish-action { height:32px; padding:0 14px; color:#4b7bec; border:1px solid #7aa1ff; border-radius:3px; background:#fff; }
.survey-card footer .survey-publish-action:hover { color:#356ae6; border-color:#356ae6; background:#f7faff; }
.survey-list-empty { min-height:220px; display:grid; place-items:center; color:#999; border:1px solid #eee; background:#fafafa; }
.survey-pagination-bar { min-height:48px; flex:0 0 48px; position:relative; z-index:18; display:flex; align-items:center; justify-content:flex-end; margin:0 -14px -16px; padding:0 14px; border-top:1px solid #e8e8e8; background:#fff; box-shadow:0 -4px 12px rgba(0,0,0,.05); box-sizing:border-box; }
.survey-pagination { min-height:44px; justify-content:flex-end; margin-left:0; }
.survey-editor { height:100%; display:flex; flex-direction:column; overflow:hidden; background:#ededed; }
.survey-editor-head,
.survey-analysis-head { height:52px; flex:0 0 52px; display:flex; align-items:center; gap:12px; padding:0 20px; border-bottom:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.survey-editor-head strong,
.survey-analysis-head strong { font-size:15px; font-weight:600; }
.survey-editor-head > div { margin-left:auto; display:flex; align-items:center; gap:8px; }
.survey-editor-head button { height:32px; }
.survey-editor-body { flex:1; min-height:0; display:grid; grid-template-columns:300px minmax(360px,1fr) 420px; gap:0; padding:14px 20px; overflow:hidden; box-sizing:border-box; }
.survey-builder-left,
.survey-setting { min-height:0; overflow:auto; background:#fff; }
.survey-builder-left { padding:20px 16px; border-right:1px solid #e5e5e5; }
.survey-builder-left section { margin-bottom:22px; }
.survey-builder-left h4 { margin:0 0 12px; font-size:15px; font-weight:600; }
.survey-builder-left section > div { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.survey-builder-left button { height:40px; border:1px solid #e6e6e6; color:#555; text-align:center; background:#fff; }
.survey-phone-wrap { min-height:0; display:flex; align-items:flex-start; justify-content:center; overflow:auto; padding:0 38px; background:#e9edf2; }
.survey-phone { width:374px; margin:0 auto 40px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.survey-phone .survey-cover { height:210px; display:grid; place-items:center; overflow:hidden; background:linear-gradient(180deg,#cde8ff,#f5fbff); }
.survey-phone .survey-cover > img { width:100%; height:100%; object-fit:cover; }
.survey-cover span,
.survey-cover-mini { display:block; background:linear-gradient(135deg,#d4ecff,#fff); position:relative; }
.survey-cover span { width:170px; height:130px; border-radius:4px; }
.survey-cover-mini { width:160px; height:92px; flex:0 0 160px; }
.survey-phone section { padding:26px 18px 32px; border:2px solid #4a90e2; border-top:0; }
.survey-phone h2 { margin:0 0 18px; text-align:center; font-size:18px; }
.survey-phone p { margin:0; color:#999; }
.survey-phone > button { width:calc(100% - 36px); height:40px; margin:18px; border:0; border-radius:3px; color:#fff; font-size:15px; background:var(--green); }
.survey-phone-questions { padding:0 18px; }
.survey-phone-empty { min-height:76px; display:grid; place-items:center; color:#aaa; border:1px dashed #ddd; }
.survey-phone-question { min-height:66px; display:grid; grid-template-columns:24px minmax(0,1fr) 28px; align-items:start; gap:8px; padding:12px 10px; border-bottom:1px solid #eee; box-sizing:border-box; }
.survey-phone-question > span { color:#777; }
.survey-phone-question strong { font-weight:400; }
.survey-phone-question p { margin:7px 0 0; color:#aaa; }
.survey-phone-question > button { width:28px; height:28px; padding:0; border:0; color:#999; font-size:20px; background:transparent; }
.survey-setting { padding:0; }
.survey-setting h3 { height:50px; display:flex; align-items:center; margin:0; padding:0 20px; border-bottom:1px solid #eee; font-size:15px; }
.survey-setting section { padding:20px; border-bottom:1px solid #eee; }
.survey-setting section label { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.survey-setting section input[type="checkbox"] { width:42px!important; min-width:42px!important; max-width:42px!important; height:22px!important; min-height:22px!important; max-height:22px!important; flex:0 0 42px; position:relative; display:block; margin:0; padding:0!important; appearance:none; -webkit-appearance:none; border:0; border-radius:11px; background:var(--green); cursor:pointer; box-sizing:border-box; }
.survey-setting section input[type="checkbox"]::after { content:""; width:18px; height:18px; position:absolute; top:2px; right:2px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.survey-setting section > div { display:flex; align-items:center; gap:12px; padding:14px; background:#f7f7f7; }
.survey-setting section p { margin:0; color:#999; }
.survey-setting > label { display:block; padding:0 20px 16px; }
.survey-setting > label > span { display:block; margin:14px 0 8px; font-weight:600; }
.survey-count-input,
.survey-count-area { display:flex; border:1px solid #d9d9d9; border-radius:3px; overflow:hidden; background:#fff; }
.survey-count-input { height:34px; align-items:center; }
.survey-count-input input { min-width:0; flex:1; height:32px; padding:0 10px; border:0; }
.survey-count-input em,
.survey-count-area em { flex:0 0 64px; color:#999; font-style:normal; text-align:center; }
.survey-count-area { position:relative; display:block; }
.survey-count-area textarea { width:100%; height:140px; display:block; padding:10px 10px 32px; border:0; resize:none; box-sizing:border-box; }
.survey-count-area em { position:absolute; right:10px; bottom:7px; height:18px; line-height:18px; text-align:right; pointer-events:none; }
.survey-preview-question { margin:0 18px; padding:12px 0; border-bottom:1px solid #eee; }
.survey-preview-question p { margin:8px 0 0; color:#aaa; }
.survey-analysis { height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; color:#333; font-size:14px; background:#f2f2f2; }
.survey-analysis-head { height:48px; flex-basis:48px; gap:10px; padding:0 16px; }
.survey-analysis-head strong { font-size:14px; font-weight:400; }
.survey-analysis-head > span { color:#999; font-size:12px; }
.survey-analysis-scroll { flex:1; min-height:0; overflow:auto; padding:12px 16px 18px; scrollbar-gutter:stable; }
.survey-analysis-summary { min-height:92px; display:flex; align-items:center; gap:16px; padding:14px 18px; border:1px solid #e7e7e7; background:#fff; box-sizing:border-box; }
.survey-analysis-summary > img { width:112px; height:64px; flex:0 0 112px; object-fit:cover; border:1px solid #eee; }
.survey-analysis-summary-main { min-width:0; flex:1; }
.survey-analysis-summary-main > div { display:flex; align-items:center; gap:8px; }
.survey-analysis-summary h2 { max-width:420px; margin:0; overflow:hidden; font-size:16px; font-weight:400; line-height:24px; text-overflow:ellipsis; white-space:nowrap; }
.survey-smart-badge,
.survey-analysis-status { height:22px; display:inline-flex; align-items:center; padding:0 7px; border-radius:3px; font-size:12px; font-style:normal; font-weight:400; }
.survey-smart-badge { color:#fff; background:var(--green); }
.survey-analysis-status { color:#1890ff; border:1px solid #91d5ff; background:#e6f7ff; }
.survey-analysis-status.draft { color:#d46b08; border-color:#ffd591; background:#fff7e6; }
.survey-analysis-status.ended { color:#888; border-color:#ddd; background:#f5f5f5; }
.survey-analysis-summary dl { display:flex; align-items:center; gap:36px; margin:12px 0 0; }
.survey-analysis-summary dl div { display:flex; gap:8px; }
.survey-analysis-summary dt { color:#999; }
.survey-analysis-summary dd { margin:0; color:#555; }
.survey-analysis-overview { margin-top:12px; border:1px solid #e7e7e7; background:#fff; }
.survey-analysis-overview > header { height:42px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid #eee; }
.survey-analysis-overview h3,
.survey-stat-panel h3 { margin:0; font-size:14px; font-weight:400; }
.survey-analysis-overview header > span { color:#aaa; font-size:12px; }
.survey-analysis-overview > div { display:grid; grid-template-columns:repeat(6,minmax(110px,1fr)); padding:14px 0; }
.survey-analysis-overview article { min-height:66px; display:flex; flex-direction:column; justify-content:center; padding:0 18px; border-right:1px solid #eee; }
.survey-analysis-overview article:last-child { border-right:0; }
.survey-analysis-overview article > span { color:#777; font-size:13px; }
.survey-analysis-overview article strong { margin:4px 0 1px; font-size:24px; font-weight:400; line-height:30px; }
.survey-analysis-overview article small { color:#aaa; font-size:12px; }
.survey-analysis-workbench { min-height:360px; margin-top:12px; border:1px solid #e7e7e7; background:#fff; }
.survey-analysis-workbench > nav { height:46px; display:flex; align-items:flex-end; gap:28px; padding:0 18px; border-bottom:1px solid #e8e8e8; }
.survey-analysis-workbench > nav button { height:46px; position:relative; padding:0 2px; border:0; color:#666; font-size:14px; font-weight:400; background:transparent; }
.survey-analysis-workbench > nav button.active { color:var(--green); }
.survey-analysis-workbench > nav button.active::after { content:""; height:2px; position:absolute; right:0; bottom:0; left:0; background:var(--green); }
.survey-analysis-panel { padding:12px; background:#fafafa; }
.survey-analysis-panel::after { content:""; height:24px; display:block; margin:14px -12px -12px; border-top:1px solid #e5e5e5; background:#f2f2f2; }
.survey-form-analysis { display:flex; flex-direction:column; gap:10px; }
.survey-question-analysis,
.survey-text-analysis { border:1px solid #e7e7e7; background:#fff; }
.survey-question-analysis > header,
.survey-text-analysis > header { height:44px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #eee; }
.survey-question-analysis header > div,
.survey-text-analysis header > div { min-width:0; display:flex; align-items:center; gap:8px; }
.survey-question-analysis header div > span,
.survey-text-analysis header div > span { width:22px; height:22px; flex:0 0 22px; display:grid; place-items:center; border-radius:50%; color:#777; font-size:12px; background:#f1f1f1; }
.survey-question-analysis h3,
.survey-text-analysis h3 { margin:0; overflow:hidden; font-size:14px; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.survey-question-analysis header em,
.survey-text-analysis header em { height:22px; display:inline-flex; align-items:center; padding:0 7px; color:#56708c; border-radius:3px; font-size:12px; font-style:normal; background:#eef5ff; }
.survey-question-analysis header small,
.survey-text-analysis header small { color:#999; font-size:12px; }
.survey-question-analysis table,
.survey-customer-analysis table,
.survey-source-panel table { width:100%; border-collapse:collapse; table-layout:fixed; }
.survey-question-analysis th,
.survey-question-analysis td { height:38px; padding:0 14px; border-bottom:1px solid #f0f0f0; font-size:13px; font-weight:400; text-align:left; }
.survey-question-analysis th { color:#777; background:#fafafa; }
.survey-question-analysis th:nth-child(1) { width:36%; }
.survey-question-analysis th:nth-child(2) { width:14%; }
.survey-question-analysis td:last-child { display:flex; align-items:center; gap:10px; }
.survey-rate { width:min(240px,70%); height:7px; display:inline-block; overflow:hidden; border-radius:4px; background:#eee; }
.survey-rate i { height:100%; display:block; border-radius:4px; background:#65b84b; }
.survey-question-analysis td:last-child > span { color:#777; font-size:12px; }
.survey-text-analysis > div { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; padding:4px 14px; }
.survey-text-analysis p { min-width:0; display:flex; gap:12px; margin:0; padding:9px 0; border-bottom:1px solid #f1f1f1; color:#555; font-size:13px; }
.survey-text-analysis p span { width:54px; flex:0 0 54px; color:#999; }
.survey-text-more { display:block; margin:8px 14px 12px; color:#999; font-size:12px; }
.survey-analysis-toolbar { min-height:42px; display:flex; align-items:center; gap:12px; padding:0 2px 10px; }
.survey-analysis-toolbar .survey-search { width:260px; }
.survey-analysis-toolbar > span { margin-left:auto; color:#999; font-size:12px; }
.survey-status-filter { display:flex; align-items:center; }
.survey-status-filter button { height:30px; min-width:68px; margin-left:-1px; padding:0 12px; border:1px solid #ddd; color:#666; font-size:13px; background:#fff; }
.survey-status-filter button:first-child { margin-left:0; border-radius:3px 0 0 3px; }
.survey-status-filter button:last-child { border-radius:0 3px 3px 0; }
.survey-status-filter button.active { z-index:1; color:var(--green); border-color:var(--green); background:#f6fff3; }
.survey-customer-table-wrap { overflow:auto; border:1px solid #e7e7e7; background:#fff; }
.survey-customer-analysis table { width:100%; min-width:820px; table-layout:fixed; }
.survey-customer-analysis th,
.survey-customer-analysis td { height:42px; padding:0 12px; border-bottom:1px solid #eee; overflow:hidden; font-size:13px; font-weight:400; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.survey-customer-analysis th { color:#555; background:#f5f5f5; }
.survey-customer-analysis th:nth-child(1) { width:150px; }
.survey-customer-analysis th:nth-child(2) { width:190px; }
.survey-customer-analysis th:nth-child(3) { width:180px; }
.survey-customer-analysis th:nth-child(4) { width:130px; }
.survey-customer-analysis th:nth-child(5) { width:90px; }
.survey-customer-analysis th:nth-child(6) { width:74px; }
.survey-customer-cell { display:flex; align-items:center; gap:8px; }
.survey-customer-cell.customer-name-cell { gap:7px; }
.survey-customer-cell.customer-name-cell .wx-avatar { width:30px; height:30px; flex:0 0 30px; }
.survey-customer-cell.customer-name-cell .wx-avatar[class*="customer-art-"]::before {
  transform:rotate(var(--customer-art-rotate)) scale(.76);
  transform-origin:center;
}
.survey-customer-cell.customer-name-cell .wx-avatar[class*="customer-art-"]::after {
  width:8px;
  height:8px;
  top:4px;
  right:4px;
  border-width:2px;
}
.survey-managed-wechat em { color:#fa8c16; font-style:normal; }
.survey-submit-status { height:22px; display:inline-flex; align-items:center; padding:0 7px; border-radius:3px; font-size:12px; font-style:normal; }
.survey-submit-status.done { color:#389e0d; border:1px solid #b7eb8f; background:#f6ffed; }
.survey-submit-status.progress { color:#d46b08; border:1px solid #ffd591; background:#fff7e6; }
.survey-customer-analysis td:last-child button { padding:0; border:0; color:var(--green); font-size:13px; background:transparent; }
.survey-analysis-empty { height:160px; display:grid; place-items:center; color:#aaa; }
.survey-stats-grid { display:grid; grid-template-columns:minmax(460px,1.35fr) minmax(320px,.65fr); gap:10px; }
.survey-stat-panel { min-height:220px; border:1px solid #e7e7e7; background:#fff; }
.survey-stat-panel > header { height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #eee; }
.survey-stat-panel header p { margin:2px 0 0; color:#aaa; font-size:12px; }
.survey-chart-legend { display:flex; gap:16px; color:#777; font-size:12px; }
.survey-chart-legend span { display:flex; align-items:center; gap:5px; }
.survey-chart-legend i { width:8px; height:8px; border-radius:2px; background:#8dc97a; }
.survey-chart-legend span:last-child i { background:#6f91bf; }
.survey-bar-chart { height:176px; display:flex; align-items:stretch; gap:12px; padding:18px 20px 10px; }
.survey-bar-group { min-width:34px; flex:1; display:flex; flex-direction:column; align-items:center; }
.survey-bar-group > div { width:100%; flex:1; display:flex; align-items:flex-end; justify-content:center; gap:4px; border-bottom:1px solid #ddd; }
.survey-bar-group i,
.survey-bar-group b { width:12px; min-height:3px; border-radius:2px 2px 0 0; background:#8dc97a; }
.survey-bar-group b { background:#6f91bf; }
.survey-bar-group > span { margin-top:7px; color:#999; font-size:11px; }
.survey-funnel { display:flex; flex-direction:column; gap:18px; padding:20px 16px; }
.survey-funnel > div { display:grid; grid-template-columns:72px minmax(120px,1fr) 50px; align-items:center; gap:10px; font-size:13px; }
.survey-funnel i { height:22px; border-radius:2px; background:#8dc97a; }
.survey-funnel div:nth-child(2) i { background:#79a9cf; }
.survey-funnel div:nth-child(3) i { background:#6f91bf; }
.survey-funnel b { font-weight:400; text-align:right; }
.survey-source-panel table { padding:8px 14px; }
.survey-source-panel td { height:38px; padding:0 14px; border-bottom:1px solid #f1f1f1; font-size:13px; }
.survey-source-panel td:first-child { width:110px; }
.survey-source-panel td:nth-child(3),
.survey-source-panel td:nth-child(4) { width:60px; text-align:right; }
.survey-completion-panel > div { display:grid; grid-template-columns:1fr 1fr; }
.survey-completion-panel article { min-height:82px; display:flex; flex-direction:column; justify-content:center; padding:0 18px; border-right:1px solid #eee; border-bottom:1px solid #eee; }
.survey-completion-panel article:nth-child(2n) { border-right:0; }
.survey-completion-panel article:nth-last-child(-n+2) { border-bottom:0; }
.survey-completion-panel article span { color:#888; font-size:12px; }
.survey-completion-panel article strong { margin-top:5px; font-size:20px; font-weight:400; }
.survey-customer-dialog { width:720px; max-width:calc(100vw - 48px); max-height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 12px 32px rgba(0,0,0,.2); }
.survey-customer-dialog > header { height:50px; flex:0 0 50px; display:flex; align-items:center; padding:0 18px; border-bottom:1px solid #eee; }
.survey-customer-dialog > header strong { font-size:14px; font-weight:400; }
.survey-customer-dialog > header button { margin-left:auto; padding:0; border:0; color:#999; font-size:22px; background:transparent; }
.survey-customer-dialog > section { min-height:0; overflow:auto; padding:16px 18px; }
.survey-customer-dialog-profile { display:flex; align-items:center; gap:10px; padding-bottom:14px; border-bottom:1px solid #eee; }
.survey-customer-dialog-profile.customer-name-cell .wx-avatar { width:38px; height:38px; flex:0 0 38px; }
.survey-customer-dialog-profile h3 { margin:0; font-size:14px; font-weight:400; }
.survey-customer-dialog-profile p { margin:2px 0 0; color:#999; font-size:12px; }
.survey-customer-dialog-profile > em { margin-left:auto; }
.survey-customer-dialog dl { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:14px 0; padding:12px 14px; background:#f7f7f7; }
.survey-customer-dialog dt { margin-bottom:4px; color:#999; font-size:12px; }
.survey-customer-dialog dd { margin:0; font-size:13px; }
.survey-customer-answers { border:1px solid #eee; }
.survey-customer-answers article { min-height:70px; display:flex; gap:10px; padding:12px 14px; border-bottom:1px solid #eee; }
.survey-customer-answers article:last-child { border-bottom:0; }
.survey-customer-answers article > span { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#777; font-size:12px; background:#eee; }
.survey-customer-answers h4 { margin:0 0 5px; font-size:13px; font-weight:400; }
.survey-customer-answers p { margin:0; color:#666; font-size:13px; }
.survey-customer-dialog > footer { height:54px; flex:0 0 54px; display:flex; align-items:center; justify-content:flex-end; padding:0 18px; border-top:1px solid #eee; }
.survey-customer-dialog > footer button { min-width:64px; height:32px; }
@media (max-width:1250px) {
  .survey-analysis-overview > div { grid-template-columns:repeat(3,1fr); }
  .survey-analysis-overview article:nth-child(3) { border-right:0; }
  .survey-analysis-overview article:nth-child(-n+3) { border-bottom:1px solid #eee; }
  .survey-stats-grid { grid-template-columns:1fr; }
  .survey-analysis-summary dl { gap:18px; }
}
.survey-modal { position:fixed; inset:0; z-index:190; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.45); }
.survey-send-dialog { width:800px; max-width:calc(100vw - 60px); max-height:calc(100vh - 60px); display:flex; flex-direction:column; overflow:hidden; border-radius:4px; background:#fff; box-shadow:0 12px 34px rgba(0,0,0,.22); }
.survey-send-dialog header,
.survey-preview header { height:52px; display:flex; align-items:center; padding:0 20px; border-bottom:1px solid #eee; }
.survey-send-dialog header button,
.survey-preview header button { margin-left:auto; border:0; color:#999; font-size:22px; background:transparent; }
.survey-send-dialog section { min-height:0; overflow:auto; padding:18px 24px; }
.survey-send-options > label { min-height:76px; display:flex; align-items:center; gap:14px; padding:12px 16px; margin-bottom:10px; border:1px solid #e5e5e5; border-radius:3px; box-sizing:border-box; }
.survey-send-options > label.active { border-color:var(--green); }
.survey-send-options > label input { width:16px; height:16px; flex:0 0 16px; margin:0; accent-color:var(--green); }
.survey-send-options > label > div { flex:1; min-width:0; }
.survey-send-dialog b { display:block; margin-bottom:6px; font-weight:600; }
.survey-send-dialog p { margin:0; color:#666; }
.survey-send-dialog footer { height:56px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 20px; border-top:1px solid #eee; }
.survey-send-dialog footer > span { flex:1; }
.survey-send-dialog footer button { min-width:72px; height:34px; }
.survey-send-result-dialog { width:860px; }
.survey-send-result-dialog section.survey-send-result { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:24px; padding:22px 24px 26px; }
.survey-send-material-form { min-width:0; align-content:start; }
.survey-send-material-form > label,
.survey-send-material-field { grid-template-columns:96px minmax(0,1fr); gap:10px; }
.survey-send-readonly { min-height:32px; display:flex; align-items:center; padding:0 10px; border:1px solid #e2e2e2; border-radius:3px; color:#666; background:#f7f7f7; box-sizing:border-box; }
.survey-send-link-row { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.survey-send-link-row input { min-width:0; color:#666; background:#f7f7f7; }
.survey-send-link-row button { height:32px; white-space:nowrap; }
.survey-send-material-field { min-height:104px; display:grid; align-items:start; }
.survey-send-material-field > span { height:32px; display:flex; align-items:center; justify-content:flex-end; }
.survey-send-material-field > div { min-width:0; display:flex; align-items:flex-start; gap:12px; }
.survey-send-material-field small { max-width:170px; padding-top:6px; color:#999; font-size:12px; line-height:18px; }
.survey-send-link-preview { min-width:0; padding-left:22px; border-left:1px solid #eee; }
.survey-send-link-preview > strong { display:block; margin-bottom:12px; font-weight:400; }
.survey-send-link-preview > div { min-height:120px; display:flex; align-items:flex-start; justify-content:flex-start; padding:14px; border:1px solid #e5e5e5; border-radius:3px; background:#fafafa; box-sizing:border-box; }
.survey-send-link-preview .shared-send-link.is-card { width:100%; max-width:240px; margin:0; box-sizing:border-box; }
.survey-publish-dialog { width:500px; max-width:calc(100vw - 40px); overflow:visible; border-radius:4px; background:#fff; box-shadow:0 12px 34px rgba(0,0,0,.22); }
.survey-publish-dialog > header { height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid #eee; box-sizing:border-box; }
.survey-publish-dialog > header strong { font-size:14px; font-weight:400; }
.survey-publish-dialog > header button { width:28px; height:28px; padding:0; border:0; color:#999; font-size:22px; background:transparent; cursor:pointer; }
.survey-publish-dialog > section { padding:20px 24px 24px; }
.survey-publish-field + .survey-publish-field { margin-top:20px; }
.survey-publish-field > label { display:block; margin-bottom:12px; }
.survey-publish-field > label span { min-height:20px; display:flex; align-items:center; gap:4px; color:#333; line-height:20px; }
.survey-publish-field small { display:inline-flex; align-items:center; color:#999; font-size:13px; font-weight:400; line-height:20px; }
.survey-publish-field > div { min-height:64px; display:flex; align-items:center; gap:22px; padding:14px 16px; background:#f7f7f7; box-sizing:border-box; }
.survey-publish-field input[type="url"] { height:34px; padding:0 10px; border:1px solid #d9d9d9; border-radius:3px; color:#555; font-family:inherit; font-size:14px; font-weight:400; line-height:32px; background:#fff; box-sizing:border-box; }
.survey-publish-field input[type="url"] { width:100%; }
.survey-publish-field input:focus { border-color:var(--green); outline:0; box-shadow:0 0 0 2px rgba(42,166,18,.08); }
.survey-publish-field input:disabled { color:#bbb; background:#f3f3f3; }
.survey-publish-date-picker { width:196px; flex:0 0 196px; }
.survey-publish-date-picker .mom-schedule-date-panel { right:auto; left:0; }
.survey-publish-date-picker .mom-schedule-date-trigger:disabled { color:#bbb; border-color:#e2e2e2; background:#f3f3f3; cursor:not-allowed; }
.survey-publish-date-picker .mom-schedule-date-trigger:disabled > i { opacity:.45; }
.survey-publish-deadline > label { height:34px; display:flex; align-items:center; gap:8px; margin:0; line-height:20px; white-space:nowrap; box-sizing:border-box; }
.survey-publish-deadline > label input { width:16px; height:16px; min-height:16px; flex:0 0 16px; display:block; margin:0; padding:0; accent-color:var(--green); vertical-align:middle; }
.survey-publish-deadline > label span { min-height:20px; display:flex; align-items:center; gap:4px; line-height:20px; }
.survey-publish-deadline > label small { display:inline-flex; align-items:center; line-height:20px; }
.survey-publish-dialog > footer { height:56px; display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 18px; border-top:1px solid #eee; box-sizing:border-box; }
.survey-publish-dialog > footer button { min-width:64px; height:34px; padding:0 14px; line-height:32px; box-sizing:border-box; }
.survey-preview { width:460px; max-height:calc(100vh - 60px); overflow:auto; border-radius:4px; background:#fff; }
.survey-preview .survey-phone { margin:18px auto; box-shadow:0 0 0 1px #eee; }
.survey-toast { position:fixed; top:80px; left:50%; z-index:220; height:36px; display:flex; align-items:center; padding:0 20px; color:#fff; border-radius:3px; background:rgba(0,0,0,.75); transform:translateX(-50%); }

/* V1.12 智能问卷编辑器：复刻线上三栏结构与题目设置联动。 */
.survey-page.survey-editor-active { height:100%; min-height:0; position:relative; z-index:auto; inset:auto; overflow:hidden; background:#ededed; }
.survey-page #surveyRoot { height:100%; min-height:0; overflow:hidden; }
.survey-page.survey-editor-active .survey-app { height:100%; }
.survey-editor-head strong,
.survey-builder-left h3,
.survey-builder-left h4,
.survey-setting h3,
.survey-phone h2,
.survey-phone-question h3,
.survey-phone-question h3 b,
.survey-setting-fields > label > span,
.survey-option-setting > span { font-weight:400; }
.survey-editor-head { gap:10px; padding:0 18px; }
.survey-editor-head .back-circle { width:26px; height:26px; flex-basis:26px; }
.survey-editor-head > div { gap:10px; }
.survey-editor-body { grid-template-columns:clamp(250px,18vw,280px) minmax(470px,1fr) clamp(340px,24vw,380px); grid-template-rows:minmax(0,1fr); padding:16px; gap:12px; overflow:hidden; background:#ededed; }
.survey-builder-left,
.survey-setting { width:100%; height:auto; max-height:100%; min-width:0; min-height:0; align-self:stretch; overflow-y:scroll; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; border:0; outline:0; box-shadow:0 0 0 1px #e9e9e9; }
.survey-builder-left { padding:0 12px 20px; }
.survey-builder-left > h3 { height:46px; display:flex; align-items:center; margin:0 -12px 16px; padding:0 12px; border-bottom:1px solid #eee; font-size:14px; line-height:20px; }
.survey-builder-left section { margin-bottom:18px; }
.survey-builder-left h4 { margin:0 0 8px; font-size:13px; line-height:18px; }
.survey-builder-left section > div { gap:6px; }
.survey-builder-left button { width:100%; height:36px; min-width:0; display:flex; align-items:center; justify-content:center; gap:6px; padding:0 8px; border-color:#ddd; border-radius:2px; color:#555; font-size:13px; font-weight:400; line-height:18px; cursor:pointer; box-sizing:border-box; }
.survey-builder-left button:hover { color:var(--green); border-color:var(--green); }
.survey-builder-left button .survey-question-type-icon { width:16px; height:16px; flex:0 0 16px; display:block; object-fit:contain; opacity:.78; }
.survey-builder-left button:hover .survey-question-type-icon { opacity:1; }
.survey-builder-left button span { min-width:0; display:block; line-height:18px; white-space:nowrap; }
.survey-phone-wrap { width:100%; height:auto; max-height:100%; min-width:0; min-height:0; align-self:stretch; padding:0 28px 28px; align-items:flex-start; overflow-y:scroll; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; outline:0; background:#e9edf2; box-sizing:border-box; }
.survey-builder-left::-webkit-scrollbar,
.survey-phone-wrap::-webkit-scrollbar,
.survey-setting::-webkit-scrollbar { width:8px; }
.survey-builder-left::-webkit-scrollbar-thumb,
.survey-phone-wrap::-webkit-scrollbar-thumb,
.survey-setting::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:8px; background:#c8c8c8; background-clip:padding-box; }
.survey-builder-left::-webkit-scrollbar-track,
.survey-phone-wrap::-webkit-scrollbar-track,
.survey-setting::-webkit-scrollbar-track { background:transparent; }
.survey-builder-left:focus-visible,
.survey-phone-wrap:focus-visible,
.survey-setting:focus-visible { box-shadow:inset 0 0 0 1px rgba(56,158,13,.45),0 0 0 1px #e9e9e9; }
.survey-phone { width:min(680px,100%); min-width:0; flex:0 1 680px; margin:0 auto 28px; padding-bottom:1px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.survey-phone .survey-head-preview { display:block; padding:0; border:2px solid transparent; background:#fff; cursor:pointer; box-sizing:border-box; }
.survey-phone .survey-head-preview.active { border-color:#3da6ef; }
.survey-phone .survey-cover { width:100%; height:auto; aspect-ratio:16/9; display:block; overflow:hidden; background:#dff2ff; }
.survey-phone .survey-cover > img { width:100%; height:100%; display:block; object-fit:cover; }
.survey-head-copy { min-height:112px; padding:24px 16px 28px; box-sizing:border-box; }
.survey-phone .survey-head-copy h2 { margin:0 0 18px; font-size:18px; line-height:24px; text-align:center; }
.survey-phone .survey-head-copy p { margin:0; color:#999; line-height:22px; }
.survey-phone-questions { padding:0; }
.survey-phone-question { min-height:120px; position:relative; display:block; padding:28px 18px 38px; border:2px solid transparent; border-top:1px solid #eee; background:#fff; cursor:pointer; box-sizing:border-box; }
.survey-phone-question.active { border-color:#3da6ef; }
.survey-phone-question.dragging { opacity:.55; }
.survey-question-drag { width:22px; height:28px; position:absolute; top:-2px; left:-2px; display:none; align-items:center; justify-content:center; color:#fff; font-style:normal; background:#3da6ef; cursor:grab; }
.survey-phone-question.active .survey-question-drag { display:flex; }
.survey-phone-question h3 { display:flex; align-items:center; gap:4px; margin:0 0 18px; font-size:15px; line-height:22px; }
.survey-phone-question h3 span { color:#444; }
.survey-phone-question h3 em { color:#f45; font-style:normal; }
.survey-question-answer { min-width:0; }
.survey-answer-options { display:flex; flex-direction:column; gap:10px; }
.survey-answer-options label { min-height:42px; display:flex; align-items:center; gap:10px; padding:8px 14px; border:1px solid #e5e5e5; cursor:pointer; box-sizing:border-box; }
.survey-answer-options input { width:16px; height:16px; margin:0; accent-color:var(--green); cursor:pointer; }
.survey-answer-options span { min-width:0; display:flex; align-items:center; gap:8px; color:#777; }
.survey-answer-options span img { width:42px; height:42px; object-fit:cover; }
.survey-answer-gender { flex-direction:row; }
.survey-answer-gender label { min-width:110px; }
.survey-answer-select,
.survey-answer-input,
.survey-answer-area { width:100%; min-height:40px; position:relative; padding:0 44px 0 12px; border:1px solid #e5e5e5; color:#aaa; text-align:left; background:#fff; box-sizing:border-box; }
.survey-answer-select { padding:0; }
.survey-answer-select select { width:100%; height:38px; display:block; padding:0 42px 0 12px; border:0; border-radius:0; color:#777; font-family:inherit; font-size:14px; line-height:38px; background:transparent; appearance:none; -webkit-appearance:none; outline:0; cursor:pointer; box-sizing:border-box; }
.survey-answer-select select:focus { box-shadow:inset 0 0 0 1px var(--green); }
.survey-answer-select i { width:7px; height:7px; position:absolute; top:14px; right:14px; border-right:1px solid #999; border-bottom:1px solid #999; transform:rotate(45deg); pointer-events:none; }
.survey-answer-final-select { width:100%; }
.survey-answer-final-select .shared-select-menu { max-height:210px; overflow-y:auto; }
.survey-answer-input { display:flex; align-items:center; }
.survey-answer-input input { width:100%; height:38px; padding:0 66px 0 0; border:0; outline:0; color:#555; font:inherit; background:transparent; box-sizing:border-box; }
.survey-answer-input small,
.survey-answer-area small { position:absolute; right:12px; bottom:10px; color:#aaa; font-weight:400; }
.survey-answer-area { min-height:92px; padding-top:12px; }
.survey-answer-area textarea { width:100%; height:66px; display:block; padding:0 0 22px; border:0; outline:0; color:#555; font:inherit; line-height:22px; resize:none; background:transparent; box-sizing:border-box; }
.survey-address-answer { display:flex; flex-direction:column; gap:10px; }
.survey-address-cascade { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.survey-address-final-select { width:100%; min-width:0; }
.survey-address-final-select .shared-select-menu { max-height:210px; overflow-y:auto; }
.survey-address-final-select.is-disabled .shared-select-trigger { color:#bbb; border-color:#e2e2e2; background:#f6f6f6; box-shadow:none; cursor:not-allowed; }
.survey-address-final-select.is-disabled .shared-select-trigger i { opacity:.45; }
.survey-address-detail { width:100%; height:40px; position:relative; border:1px solid #e5e5e5; background:#fff; box-sizing:border-box; }
.survey-address-detail input { width:100%; height:38px; padding:0 76px 0 12px; border:0; outline:0; color:#555; background:transparent; box-sizing:border-box; }
.survey-address-detail input:focus { box-shadow:inset 0 0 0 1px var(--green); }
.survey-address-detail small { position:absolute; right:12px; top:11px; color:#aaa; font-weight:400; pointer-events:none; }
.survey-birthday-picker { width:100%; height:40px; }
.survey-phone-question .survey-birthday-trigger { width:100%; height:40px; padding:0 36px 0 12px; border:1px solid #e5e5e5; border-radius:2px; color:#aaa; font-size:14px; text-align:left; background:#fff; }
.survey-phone-question .survey-birthday-trigger.has-value { color:#555; }
.survey-birthday-trigger > i { top:12px; }
.survey-birthday-panel { top:44px; right:auto; left:0; }
.survey-birthday-picker.open-up .survey-birthday-panel { top:auto; bottom:44px; }
.survey-birthday-panel .shared-date-shortcuts button { width:auto; min-width:32px; height:28px; padding:0 4px; font-size:12px; }
.survey-answer-upload { width:92px; height:92px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; border:1px dashed #d8d8d8; color:#999; }
.survey-answer-upload-list { display:flex; flex-wrap:wrap; gap:10px; }
.survey-answer-upload { cursor:pointer; box-sizing:border-box; }
.survey-answer-upload b { font-size:26px; font-weight:300; }
.survey-answer-upload span { font-size:12px; white-space:nowrap; transform:scale(.9); }
.survey-answer-upload-preview { width:92px; height:92px; position:relative; overflow:hidden; border:1px solid #e0e0e0; background:#f7f7f7; box-sizing:border-box; }
.survey-answer-upload-preview img { width:100%; height:100%; display:block; object-fit:cover; }
.survey-answer-upload-preview button { width:20px; height:20px; position:absolute; top:3px; right:3px; padding:0; border:0; border-radius:2px; color:#fff; font-size:14px; line-height:20px; background:rgba(0,0,0,.56); cursor:pointer; }
.survey-display-text { color:#555; line-height:24px; }
.survey-display-image { display:flex; }
.survey-display-image.left { justify-content:flex-start; }
.survey-display-image.center { justify-content:center; }
.survey-display-image.right { justify-content:flex-end; }
.survey-display-image img { width:min(360px,100%); max-height:260px; object-fit:contain; }
.survey-display-image-empty { height:80px; display:grid; place-items:center; color:#aaa; border:1px dashed #ddd; }
.survey-question-actions { position:absolute; right:0; bottom:0; z-index:3; display:none; }
.survey-phone-question.active .survey-question-actions { display:flex; }
.survey-question-actions button { width:30px; height:28px; position:relative; display:grid; place-items:center; padding:0; border:0; color:#fff; background:#3da6ef; cursor:pointer; }
.survey-question-actions button img { width:14px; height:14px; display:block; filter:brightness(0) invert(1); pointer-events:none; }
.survey-question-actions button::before { content:""; position:absolute; bottom:calc(100% + 2px); left:50%; z-index:4; border:4px solid transparent; border-top-color:rgba(35,35,35,.9); opacity:0; transform:translate(-50%,4px); transition:opacity .15s ease,transform .15s ease; pointer-events:none; }
.survey-question-actions button::after { content:attr(data-tooltip); position:absolute; bottom:calc(100% + 10px); left:50%; z-index:4; padding:4px 7px; border-radius:3px; color:#fff; font-size:12px; line-height:18px; letter-spacing:0; white-space:nowrap; background:rgba(35,35,35,.9); opacity:0; transform:translate(-50%,4px); transition:opacity .15s ease,transform .15s ease; pointer-events:none; }
.survey-question-actions button:hover::before,.survey-question-actions button:hover::after,.survey-question-actions button:focus-visible::before,.survey-question-actions button:focus-visible::after { opacity:1; transform:translate(-50%,0); }
.survey-submit-preview { width:calc(100% - 32px)!important; height:40px!important; margin:16px!important; border:0!important; border-radius:3px!important; color:#fff!important; font-size:15px!important; background:var(--green)!important; }
.survey-setting { padding:0; }
.survey-setting h3 { height:46px; display:flex; align-items:center; margin:0; padding:0 16px; border-bottom:1px solid #eee; font-size:14px; }
.survey-cover-setting { padding:14px 16px!important; }
.survey-cover-setting > label { min-height:32px; margin:0 0 10px!important; padding:0 2px; font-size:13px; box-sizing:border-box; }
.survey-cover-setting > div,
.survey-upload-setting { min-height:62px; display:flex; align-items:center; gap:10px; padding:10px; background:#f7f7f7; box-sizing:border-box; }
.survey-cover-setting p,
.survey-upload-setting p { min-width:0; flex:1; margin:0; color:#999; font-size:12px; line-height:18px; }
.survey-upload-button { width:92px; height:34px; min-width:92px; flex:0 0 92px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 9px; font-size:13px; font-weight:400; line-height:32px; white-space:nowrap; box-sizing:border-box; }
.survey-upload-button svg { width:16px; height:16px; flex:0 0 16px; display:block; color:#666; stroke-width:1.7; }
.survey-upload-button span { display:block; line-height:18px; }
.survey-cover-setting .survey-upload-button { width:80px; min-width:80px; flex-basis:80px; gap:0; }
.survey-setting-fields { padding:2px 16px 20px; font-size:13px; }
.survey-setting-fields > label { display:block; padding:0; }
.survey-setting-fields > label > span,
.survey-option-setting > span { display:block; margin:12px 0 7px; color:#333; font-size:13px; }
.survey-setting-fields .survey-count-input { height:34px; }
.survey-setting-fields .survey-count-area textarea { height:140px; }
.survey-setting-radios { min-height:44px; display:flex; align-items:center; gap:16px; padding:0 12px; background:#f7f7f7; font-size:13px; box-sizing:border-box; }
.survey-setting-radios label { display:flex; align-items:center; gap:6px; margin:0; }
.survey-setting-radios input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.survey-setting-note { margin:18px 0 4px; color:#999; }
.survey-option-setting { margin-top:14px; }
.survey-option-setting > div { display:flex; flex-direction:column; gap:10px; }
.survey-option-row { min-height:50px; position:relative; display:grid; grid-template-columns:22px 36px minmax(0,1fr) 28px; align-items:center; gap:8px; padding:8px 10px; background:#f7f7f7; box-sizing:border-box; }
.survey-option-row.no-image { grid-template-columns:22px minmax(0,1fr) 28px; }
.survey-option-row.has-secondary-setting { row-gap:8px; }
.survey-option-row.dragging { opacity:.5; outline:1px dashed var(--green); }
.survey-option-row.drop-before::before,.survey-option-row.drop-after::after { content:""; height:2px; position:absolute; right:0; left:0; z-index:2; background:var(--green); pointer-events:none; }
.survey-option-row.drop-before::before { top:-6px; }
.survey-option-row.drop-after::after { bottom:-6px; }
.survey-option-row button { padding:0; border:0; color:#888; background:transparent; cursor:pointer; }
.survey-option-row button svg { width:16px; height:16px; display:block; margin:auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.survey-option-drag { width:22px; height:30px; cursor:grab!important; }
.survey-option-drag:active { cursor:grabbing!important; }
.survey-option-image-cell { width:36px; height:36px; position:relative; }
.survey-option-image-button { width:36px; height:36px; display:grid; place-items:center; overflow:hidden; border:1px solid #ddd!important; background:#fff!important; box-sizing:border-box; }
.survey-option-image-button.has-image { border-color:#d7d7d7!important; }
.survey-option-image-button img { width:100%; height:100%; display:block; object-fit:cover; }
.survey-option-image-remove { width:18px; height:18px; position:absolute; top:-7px; right:-7px; display:grid; place-items:center; border:1px solid #fff!important; border-radius:50%; color:#fff!important; font-size:16px; line-height:16px; background:#ff4d4f!important; box-sizing:border-box; }
.survey-option-delete { width:28px; height:30px; }
.survey-option-row .survey-count-input { background:#fff; }
.survey-option-tag-control { min-width:0; grid-column:2/-1; }
.survey-option-tag-control .shared-tag-setting.compact { width:100%; min-height:34px; flex-direction:row; align-items:center; gap:0; padding:0; overflow:hidden; border-color:#ddd; background:#fff; }
.survey-option-tag-control .shared-tag-setting-trigger { width:auto; min-width:86px; flex:0 0 auto; border:0; border-right:1px solid #e5e5e5; border-radius:0; color:#666; }
.survey-option-tag-control .shared-tag-setting-summary { min-width:0; min-height:32px; flex:1; align-content:center; flex-wrap:wrap; gap:3px 4px; padding:4px 7px; overflow:visible; box-sizing:border-box; }
.survey-option-tag-control .shared-tag-setting-summary > span { height:21px; flex:0 0 auto; gap:3px; padding:0 5px; color:#666; border-color:#d8d8d8; border-radius:2px; font-size:12px; background:#f7f7f7; }
.survey-option-tag-control .shared-tag-setting-summary > span button { width:12px; height:12px; min-height:12px; color:#999; font-size:12px; line-height:10px; }
.survey-option-tag-control .shared-tag-setting-summary > small { white-space:nowrap; }
.survey-option-description-control { min-width:0; grid-column:2/-1; display:flex; align-items:center; }
.survey-option-description-control button { width:auto; min-width:72px; height:34px; padding:0 14px; border:1px solid #ddd; color:#777; background:#fff; box-sizing:border-box; }
.survey-option-description-control button + button { margin-left:-1px; }
.survey-option-description-control button:first-child { border-radius:3px 0 0 3px; }
.survey-option-description-control button:last-child { border-radius:0 3px 3px 0; }
.survey-option-description-control button.active { position:relative; z-index:1; color:var(--green); border-color:var(--green); background:#f7fff5; }
.survey-option-setting footer { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.survey-option-setting footer button { height:36px; border:1px solid #ddd; color:#666; background:#fff; cursor:pointer; }
.survey-option-setting footer button:disabled { color:#bbb; border-color:#e5e5e5; background:#f5f5f5; cursor:not-allowed; }
.survey-align-control { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.survey-align-control button { height:34px; border:1px solid #ddd; color:#666; background:#fff; }
.survey-align-control button.active { color:var(--green); border-color:var(--green); background:#f6fff3; }
.survey-setting section input[type="checkbox"]:not(:checked) { background:#ccc; }
.survey-setting section input[type="checkbox"]:not(:checked)::after { right:22px; }
.survey-preview { width:760px; max-width:calc(100vw - 60px); max-height:calc(100vh - 40px); overflow:hidden; }
.survey-preview header { position:relative; z-index:2; background:#fff; }
.survey-preview-scroll { max-height:calc(100vh - 92px); overflow:auto; padding:18px; background:#e9edf2; }
.survey-preview .survey-phone { width:680px; min-width:0; margin:0 auto; }
.survey-preview .survey-phone-question { cursor:default; }
.survey-preview .survey-phone .survey-head-preview { cursor:default; }
.survey-mobile-preview-modal { background:rgba(0,0,0,.42); }
.survey-mobile-preview-dialog { position:relative; display:flex; align-items:flex-end; gap:18px; }
.survey-mobile-preview-close { width:34px; height:34px; position:absolute; z-index:3; top:10px; right:-42px; padding:0; border:0; color:#fff; font-size:30px; font-weight:300; line-height:34px; background:transparent; cursor:pointer; }
.survey-device-shell { width:330px; height:650px; position:relative; padding:64px 16px 72px; border-radius:48px; background:#fff; box-shadow:0 0 0 1px #ddd,0 18px 50px rgba(0,0,0,.18); box-sizing:border-box; }
.survey-device-shell > i { width:58px; height:6px; position:absolute; top:28px; left:50%; border-radius:4px; background:#d7d7d7; transform:translateX(-50%); }
.survey-device-shell > i::before { content:""; width:7px; height:7px; position:absolute; top:0; left:-18px; border-radius:50%; background:#ddd; }
.survey-device-shell > b { width:48px; height:48px; position:absolute; bottom:14px; left:50%; border:3px solid #e0e0e0; border-radius:50%; transform:translateX(-50%); box-sizing:border-box; }
.survey-device-screen { width:100%; height:100%; overflow:hidden; border:1px solid #999; background:#f5f5f5; }
.survey-device-screen iframe { width:100%; height:100%; display:block; border:0; background:#f5f5f5; }
.survey-preview-qr-card { width:142px; padding:14px 12px 12px; color:#555; text-align:center; background:#fff; box-sizing:border-box; }
.survey-preview-qr-card strong { display:block; margin-bottom:10px; font-size:14px; font-weight:400; }
.survey-preview-qr-card [data-survey-preview-qr] { width:124px; height:124px; display:grid; place-items:center; margin:0 auto; }
.survey-preview-qr-card [data-survey-preview-qr] img,
.survey-preview-qr-card [data-survey-preview-qr] canvas { width:124px!important; height:124px!important; display:block; }
.survey-preview-qr-card [data-survey-preview-qr] span { color:#999; font-size:12px; }
.survey-preview-qr-card p { margin:8px 0 0; color:#999; font-size:11px; line-height:16px; }
.survey-preview-qr-card a { display:block; margin-top:10px; color:var(--green); font-size:12px; text-decoration:none; }

@media (max-height:760px) {
  .survey-mobile-preview-dialog { transform:scale(.88); }
}

@media (max-width:1700px) {
  .survey-editor-body { grid-template-columns:clamp(250px,18vw,270px) minmax(480px,1fr) clamp(340px,24vw,370px); gap:10px; padding:14px; }
  .survey-phone-wrap { padding-right:18px; padding-left:18px; }
  .survey-option-row { grid-template-columns:18px 32px minmax(0,1fr) 24px; gap:5px; }
  .survey-option-row.no-image { grid-template-columns:18px minmax(0,1fr) 24px; }
}

@media (max-width:1500px) {
  .survey-editor-body { grid-template-columns:clamp(250px,18vw,260px) minmax(450px,1fr) clamp(340px,24vw,350px); gap:8px; padding:10px; }
  .survey-phone-wrap { padding-right:12px; padding-left:12px; }
}

@media (max-width:1280px) {
  .survey-editor-body { grid-template-columns:250px minmax(390px,1fr) 330px; gap:8px; padding:10px; overflow:hidden; }
  .survey-builder-left { padding-right:12px; padding-left:12px; }
  .survey-builder-left > h3 { margin-right:-12px; margin-left:-12px; padding-right:12px; padding-left:12px; }
  .survey-setting h3 { padding-right:16px; padding-left:16px; }
  .survey-setting section { padding-right:16px; padding-left:16px; }
  .survey-setting > label { padding-right:16px; padding-left:16px; }
}

/* V1.11 新客户运营：左侧方案卡文字保持常规字重。 */
.fan-operation-page:not(.hidden) .fop-plan-card,
.fan-operation-page:not(.hidden) .fop-plan-card :is(strong, span, small, button) {
  font-weight:400;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child > strong {
  font-size:14px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child :is([data-fop-manage],.shared-more-action-primary,.shared-more-action-trigger,.fop-more) {
  color:#777;
  font-size:12px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child :is([data-fop-manage],.shared-more-action-primary) {
  min-width:42px;
  padding:0 8px;
}
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .shared-more-action-trigger,
.fan-operation-page:not(.hidden) .fop-plan-card > div:first-child .fop-more {
  width:24px;
  min-width:24px;
  color:#999;
}

/* 公用组件：页面标题 PageTitle C1.0。参考主动加好友，统一标题区高度、标题字级、竖线和企业选择位置。 */
.page-title,
.add-friend-head,
.room-page-head,
.room-subpage-head,
.friend-subpage-head,
.customer-page-head,
.customer-subpage-head,
.corp-page-head,
.customer-tag-head,
.smart-tag-head,
.room-tag-head,
.live-code-page-head,
.live-code-subhead,
.new-fan-head,
.new-fan-subhead,
.card-friend-titlebar,
.fan-operation-page:not(.hidden) .fop-titlebar,
.kwt-titlebar,
.sop-titlebar,
.survey-titlebar,
.mom-subhead {
  height:52px;
  min-height:52px;
  flex:0 0 52px;
  align-items:center;
  padding:0 20px;
  border-bottom:1px solid #e5e5e5;
  background:#fff;
  box-sizing:border-box;
}

.page-title-name,
.add-friend-title,
.room-page-head > strong,
.room-subpage-head > strong,
.friend-subpage-head strong,
.customer-head-title > strong,
.customer-subpage-head strong,
.corp-page-head h2,
.live-code-page-head > strong,
.live-code-subhead > strong,
.new-fan-head > strong,
.new-fan-subhead > strong,
.card-friend-titlebar strong,
.fan-operation-page:not(.hidden) .fop-titlebar > strong,
.kwt-titlebar strong,
.sop-titlebar strong,
.survey-titlebar strong,
.mom-subhead strong {
  color:#333;
  font-size:15px;
  font-weight:600;
  line-height:20px;
}

.page-title-company,
.active-friend-company-select,
.customer-company-select,
.fan-operation-page:not(.hidden) .fop-company-select,
.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions,
.sop-titlebar i,
.survey-titlebar i,
.card-friend-title-left i {
  position:relative;
}

.page-title-company,
.active-friend-company-select,
.customer-company-select {
  width:auto;
  flex:0 0 auto;
  display:flex;
  align-items:center;
}

.page-title-company::before,
.active-friend-company-select::before,
.customer-company-select::before {
  content:"";
  width:1px;
  height:16px;
  flex:0 0 1px;
  margin-right:14px;
  background:#d8d8d8;
}

.page-title-company .shared-company-filter,
.page-title-company .shared-select-trigger,
.active-friend-company-select .shared-company-filter,
.active-friend-company-select .shared-select-trigger,
.customer-company-select .shared-company-filter,
.customer-company-select .shared-select-trigger {
  width:220px;
  flex:0 0 220px;
}

.customer-tag-head,
.smart-tag-head,
.room-tag-head {
  gap:18px;
}

.customer-tag-main-tabs,
.smart-tag-main-tabs {
  height:52px;
}

.customer-tag-main-tabs button,
.smart-tag-main-tabs button {
  height:52px;
}

.fan-operation-page:not(.hidden) .fop-titlebar,
.sop-titlebar,
.survey-titlebar,
.live-code-page-head,
.mom-subhead {
  gap:14px;
}

.fan-operation-page:not(.hidden) .fop-company-select {
  width:220px;
  display:flex;
  align-items:center;
  margin-left:0;
}

.fan-operation-page:not(.hidden) .fop-company-select::before {
  content:"";
  width:1px;
  height:16px;
  margin-right:14px;
  background:#d8d8d8;
}

.fan-operation-page:not(.hidden) .fop-company-select .shared-company-filter,
.fan-operation-page:not(.hidden) .fop-company-select .shared-select-trigger {
  width:100%;
}

.sop-titlebar i,
.survey-titlebar i,
.card-friend-title-left i {
  width:1px;
  height:16px;
  background:#d8d8d8;
}

.sop-titlebar [data-shared-company-filter],
.survey-titlebar [data-shared-company-filter],
.mom-subhead .shared-company-filter,
.card-friend-title-left .shared-company-filter {
  width:220px;
  flex:0 0 220px;
}

.mom-top-tabs {
  height:52px;
  padding:0 20px;
  gap:20px;
}

.mom-top-tabs > button:not(.ghost-button) {
  height:52px;
}

.mom-top-tabs .shared-company-filter {
  width:220px;
  flex:0 0 220px;
}

.kwt-titlebar {
  padding:0 20px;
}

.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions {
  gap:14px;
  margin-left:14px;
}

.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions::before {
  content:"";
  width:1px;
  height:16px;
  flex:0 0 1px;
  background:#d8d8d8;
}

.keyword-tag-page:not(.hidden) .kwt-titlebar .kwt-tab-rule-actions > .shared-company-filter {
  width:220px;
  flex:0 0 220px;
}

@media (max-width:1250px) {
  .survey-editor-body { grid-template-columns:250px minmax(330px,1fr) 360px; }
  .survey-card header { grid-template-columns:1fr; }
  .survey-card dl { grid-template-columns:repeat(3,1fr); }
}

.customer-page:not(.hidden) .customer-page-head {
  height:46px;
  min-height:46px;
  flex-basis:46px;
  padding:0 16px;
}

/* V1.18 新客户运营：内容设置整体间隙收口。 */
.fan-operation-page:not(.hidden) .fop-content-row {
  grid-template-columns:96px minmax(0,1fr);
  column-gap:8px;
  margin:4px 20px 8px;
  padding:6px 12px 8px;
  background:#fff;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-content-row > label {
  height:32px;
  min-height:32px;
  align-items:center;
  padding-top:0;
  line-height:20px;
}
.fan-operation-page:not(.hidden) .fop-content-row > div {
  width:min(820px,100%);
  min-width:0;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-setting {
  width:100%;
  gap:0;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-list,
.fan-operation-page:not(.hidden) .fop-message-list {
  width:100%;
  gap:6px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-row,
.fan-operation-page:not(.hidden) .fop-message-row {
  width:100%;
  min-height:88px;
  grid-template-columns:38px minmax(180px,1fr) 204px;
  grid-template-rows:38px minmax(58px,auto);
  gap:0;
  padding:6px 8px;
  border-radius:3px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-delay,
.fan-operation-page:not(.hidden) .fop-message-row > .fop-delay {
  grid-column:1 / -1;
  min-height:38px;
  gap:7px;
  padding:3px 8px;
  border-radius:3px 3px 0 0;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-delay input {
  width:68px;
  height:30px;
  min-height:30px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-delay select,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-delay .customer-shared-select,
.fan-operation-page:not(.hidden) .fop-delay .customer-shared-select {
  width:66px;
  height:30px;
  min-height:30px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-row > em,
.fan-operation-page:not(.hidden) .fop-message-row > em {
  width:24px;
  height:24px;
  margin-top:10px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-text,
.fan-operation-page:not(.hidden) .fop-content-row .fop-text-message {
  min-height:40px;
  margin:8px 8px 8px 0;
  padding:8px 10px;
  line-height:22px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-media,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-file,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-link,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-material,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-mini-program,
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-group,
.fan-operation-page:not(.hidden) .fop-content-row .shared-mini-program-card,
.fan-operation-page:not(.hidden) .fop-content-row .shared-video-channel-card,
.fan-operation-page:not(.hidden) .fop-content-row .fop-group-action,
.fan-operation-page:not(.hidden) .fop-content-row .fop-media-message {
  min-height:46px;
  margin:8px 8px 8px 0;
  padding:8px 10px;
  box-sizing:border-box;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-actions,
.fan-operation-page:not(.hidden) .fop-message-actions {
  width:196px;
  height:34px;
  gap:5px;
  margin-right:6px;
  padding-left:6px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-actions > button,
.fan-operation-page:not(.hidden) .fop-message-actions > button {
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-toolbar,
.fan-operation-page:not(.hidden) .fop-material-bar {
  min-height:42px;
  margin-top:6px;
  padding:5px 8px;
  gap:8px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-count,
.fan-operation-page:not(.hidden) .fop-material-bar .fop-content-count {
  height:30px;
  line-height:30px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-types,
.fan-operation-page:not(.hidden) .fop-material-tabs {
  min-width:0;
  gap:5px;
}
.fan-operation-page:not(.hidden) .fop-content-row .shared-send-types > button,
.fan-operation-page:not(.hidden) .fop-material-tabs button {
  height:28px;
  min-height:28px;
  padding:0 8px;
}
@media (max-width:1180px) {
  .fan-operation-page:not(.hidden) .fop-content-row {
    grid-template-columns:88px minmax(0,1fr);
    margin-inline:14px;
    padding-inline:10px;
  }
  .fan-operation-page:not(.hidden) .fop-content-row .shared-send-row,
  .fan-operation-page:not(.hidden) .fop-message-row {
    grid-template-columns:38px minmax(160px,1fr);
    grid-template-rows:38px minmax(58px,auto) 40px;
  }
  .fan-operation-page:not(.hidden) .fop-content-row .shared-send-actions,
  .fan-operation-page:not(.hidden) .fop-message-actions {
    grid-column:2;
    grid-row:3;
    justify-self:start;
    margin:0 0 6px;
    padding-left:0;
  }
}
