:root {
  --rxl-nav: #18342d;
  --rxl-nav-soft: #24483d;
  --rxl-accent: #16765a;
  --rxl-accent-dark: #105c46;
  --rxl-accent-soft: #e6f4ed;
  --rxl-bg: #f3f7f4;
  --rxl-surface: #ffffff;
  --rxl-surface-2: #fafbfc;
  --rxl-border: #e7e9ed;
  --rxl-border-strong: #d9dde3;
  --rxl-text: #20242a;
  --rxl-text-2: #606874;
  --rxl-text-3: #9199a4;
  --rxl-danger: #c84b4b;
  --rxl-warning: #b66a18;
  --rxl-shadow: 0 4px 18px rgba(29, 35, 42, 0.05);
}

* { box-sizing: border-box; }
html, body { min-width: 0; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--rxl-bg) !important;
  color: var(--rxl-text) !important;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif !important;
}
button, input, select, textarea { font: inherit; }

/* 旧页面的侧栏只保留为功能来源，真正导航由 v22 接管。 */
.app > .side { display: none !important; }
.app { min-height: 100vh; display: block !important; background: var(--rxl-bg) !important; }

.rxl-primary-nav {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 140;
  width: 88px;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--rxl-nav);
  color: #b8bdc8;
  scrollbar-width: none;
}
.rxl-primary-nav::-webkit-scrollbar { display: none; }
.rxl-brand {
  height: 72px;
  display: grid;
  place-items: center;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.rxl-brand-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #fff;
  color: var(--rxl-accent);
  font-size: 19px;
  font-weight: 800;
}
.rxl-primary-list { display: grid; gap: 2px; padding: 10px 8px 18px; }
.rxl-primary-item {
  position: relative;
  min-height: 55px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 7px 4px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #aeb4c0;
  cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.rxl-primary-item:hover { color: #fff; background: var(--rxl-nav-soft); }
.rxl-primary-item.active { color: var(--rxl-accent); background: #fff; }
.rxl-primary-item .nav-icon { width: 19px; height: 19px; display: block; }
.rxl-primary-item .nav-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rxl-primary-label { font-size: 12px; line-height: 1; white-space: nowrap; }

.rxl-secondary-nav {
  position: fixed;
  inset: 0 auto 0 88px;
  z-index: 130;
  width: 156px;
  overflow-y: auto;
  background: var(--rxl-surface);
  border-right: 1px solid var(--rxl-border);
  box-shadow: 8px 0 22px rgba(31, 36, 43, 0.025);
  transition: transform .2s ease;
}
.rxl-secondary-head {
  height: 72px;
  display: flex;
  align-items: center;
  padding: 0 18px;
  border-bottom: 1px solid var(--rxl-border);
  font-size: 16px;
  font-weight: 700;
}
.rxl-secondary-list { display: grid; gap: 2px; padding: 10px 9px; }
.rxl-secondary-item {
  min-height: 42px;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0 14px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #3f4650;
  text-align: left;
  font-size: 13px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.rxl-secondary-item:hover { background: #f4f5f7; color: var(--rxl-text); }
.rxl-secondary-item.active { background: var(--rxl-accent-soft); color: var(--rxl-accent); font-weight: 650; }
.rxl-secondary-note { margin: 14px; padding: 12px; border-top: 1px solid var(--rxl-border); color: var(--rxl-text-3); font-size: 11px; line-height: 1.7; }
.rxl-secondary-note b { display: block; color: var(--rxl-text-2); font-size: 12px; }

.rxl-mobile-menu {
  display: none;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--rxl-border);
  border-radius: 6px;
  background: #fff;
  color: var(--rxl-text);
  cursor: pointer;
}
.rxl-mobile-menu .nav-icon,
.rxl-mobile-menu .nav-icon svg { width: 18px; height: 18px; margin: auto; display: block; }
.rxl-mobile-menu .nav-icon svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rxl-nav-backdrop { display: none; position: fixed; inset: 0; z-index: 120; background: rgba(20, 22, 27, .45); }

.main {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 0 0 244px !important;
  padding: 0 24px 40px !important;
  background: var(--rxl-bg) !important;
}
.top {
  position: sticky;
  top: 0;
  z-index: 95;
  min-height: 64px !important;
  height: 64px !important;
  margin: 0 -24px 18px !important;
  padding: 0 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px;
  border: 0 !important;
  border-bottom: 1px solid var(--rxl-border) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: none !important;
  backdrop-filter: blur(12px);
}
.top > div:first-child { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.top h1 { margin: 0 !important; color: var(--rxl-text) !important; font-size: 18px !important; font-weight: 700 !important; letter-spacing: 0 !important; white-space: nowrap; }
.top p { margin: 0 !important; overflow: hidden; color: var(--rxl-text-3) !important; font-size: 12px !important; text-overflow: ellipsis; white-space: nowrap; }
.top-actions { display: flex; align-items: center; gap: 8px !important; }
.sync-chip { display: none !important; }
.scope-chip { padding: 6px 10px !important; border-radius: 5px !important; background: var(--rxl-accent-soft) !important; color: var(--rxl-accent) !important; font-size: 11px !important; }
.avatar { width: 32px !important; height: 32px !important; border-radius: 6px !important; background: #eef0f3 !important; color: #424852 !important; box-shadow: none !important; }

.view { display: none !important; min-width: 0; }
.view.active { display: block !important; }
#dashboard.active { display: flex !important; flex-direction: column; }
#dashboard .dashboard-range { order: 1; }
#dashboard .cards { order: 2; }
#dashboard .grid { order: 3; }
#dashboard .table-panel { order: 4; }
#dashboard .page-intro { display: none !important; }

.dashboard-range {
  min-height: 54px !important;
  margin: 0 0 12px !important;
  padding: 8px 10px 8px 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border: 1px solid var(--rxl-border) !important;
  border-radius: 7px !important;
  background: var(--rxl-surface) !important;
  box-shadow: none !important;
}
.dashboard-range > div:first-child { display: flex; align-items: center; gap: 8px; }
.dashboard-range b { font-size: 14px; }
.dashboard-range span { color: var(--rxl-text-3); font-size: 12px; }
.dashboard-range .segmented { padding: 3px !important; border-radius: 5px !important; background: #f1f3f5 !important; }
.dashboard-range button { min-height: 30px !important; padding: 0 14px !important; border-radius: 4px !important; font-size: 12px !important; }

.panel, .card, .stat-card {
  border: 1px solid var(--rxl-border) !important;
  border-radius: 7px !important;
  background: var(--rxl-surface) !important;
  box-shadow: var(--rxl-shadow) !important;
}
.panel { padding: 18px !important; }
.panel + .panel, .table-panel { margin-top: 14px !important; }
.panel-head { margin-bottom: 14px !important; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-head h2 { margin: 0 !important; color: var(--rxl-text) !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: 0 !important; }
.panel-head .muted { display: block; margin-top: 3px; }
.muted { color: var(--rxl-text-3) !important; font-size: 11px !important; line-height: 1.55; }

.cards { display: grid !important; grid-template-columns: repeat(6, minmax(120px,1fr)) !important; gap: 10px !important; margin: 0 0 12px !important; }
.card, .stat-card { min-height: 90px !important; padding: 14px !important; }
.card::after, .stat-card::after { display: none !important; }
.card .label, .stat-card .label { color: var(--rxl-text-2) !important; font-size: 12px !important; font-weight: 500 !important; }
.card strong, .stat-card strong { display: block; margin-top: 7px; color: var(--rxl-text) !important; font-size: 23px !important; line-height: 1.1; font-variant-numeric: tabular-nums; }
.card .delta, .stat-card .delta { margin-top: 6px; color: var(--rxl-text-3) !important; font-size: 10px !important; }

#dashboard .grid { display: grid !important; grid-template-columns: minmax(280px,.72fr) minmax(460px,1.28fr) !important; gap: 12px !important; margin: 0 !important; }
#dashboard .grid .panel { min-height: 280px; }
.donut { box-shadow: none !important; }
.trend { min-height: 184px !important; }

.btn {
  min-height: 34px !important;
  padding: 7px 13px !important;
  border: 1px solid var(--rxl-accent) !important;
  border-radius: 5px !important;
  background: var(--rxl-accent) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .08s ease;
}
.btn:hover { background: var(--rxl-accent-dark) !important; border-color: var(--rxl-accent-dark) !important; transform: none !important; }
.btn:active { transform: scale(.98) !important; }
.btn.light { border-color: var(--rxl-border-strong) !important; background: #fff !important; color: #424952 !important; }
.btn.light:hover { border-color: #c8cdd5 !important; background: #f6f7f8 !important; color: var(--rxl-text) !important; }
.btn.danger, .danger { border-color: var(--rxl-danger) !important; color: var(--rxl-danger) !important; }

input, select, textarea {
  min-height: 36px;
  border: 1px solid var(--rxl-border-strong) !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: var(--rxl-text) !important;
  box-shadow: none !important;
}
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(22,118,90,.14) !important; border-color: var(--rxl-accent) !important; }
label { color: #424952; font-size: 12px; }

.tools { gap: 8px !important; padding: 12px !important; border-radius: 6px !important; background: var(--rxl-surface-2) !important; }
.scroll { overflow: auto; border: 1px solid var(--rxl-border) !important; border-radius: 6px !important; background: #fff; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
thead th {
  height: 40px;
  padding: 9px 11px !important;
  border-bottom: 1px solid var(--rxl-border) !important;
  background: #f7f8fa !important;
  color: #69717c !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-align: left;
  white-space: nowrap;
}
tbody td { min-height: 44px; padding: 10px 11px !important; border-bottom: 1px solid #eef0f2 !important; color: #343a43; vertical-align: middle; }
tbody tr:hover { background: #fbfcfc !important; }
.tag { border-radius: 4px !important; font-size: 10px !important; }
.tag.status-good { border-color: #cbe5da !important; background: #edf7f2 !important; color: #126a50 !important; }
.tag.status-warn { border-color: #eeddbf !important; background: #fff7e8 !important; color: #9a5a13 !important; }
.tag.status-muted { border-color: #e0e3e7 !important; background: #f3f4f6 !important; color: #757d88 !important; }
.row-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }

/* 展示内容本身：让价格、状态、位置和操作一眼可扫。 */
.content-summary,
.catalog-summary {
  display: grid;
  grid-template-columns: repeat(4,minmax(120px,1fr));
  gap: 8px;
  margin: 0 0 12px;
}
.content-summary-item,
.catalog-summary-item {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--rxl-border);
  border-radius: 6px;
  background: var(--rxl-surface-2);
}
.content-summary-item span,
.catalog-summary-item span { display: block; color: var(--rxl-text-2); font-size: 11px; }
.content-summary-item strong,
.catalog-summary-item strong { display: inline-block; margin: 4px 7px 0 0; font-size: 21px; font-variant-numeric: tabular-nums; }
.content-summary-item small,
.catalog-summary-item small { color: var(--rxl-text-3); font-size: 10px; }
.content-tools,
.product-catalog-tools { display: grid !important; grid-template-columns: minmax(240px,1fr) 150px 140px auto auto; align-items: center; }
.content-thumb {
  width: 68px;
  height: 42px;
  display: block;
  border: 1px solid var(--rxl-border);
  border-radius: 5px;
  object-fit: cover;
  background: #f1f3f5;
}
.content-thumb-empty { display: grid; place-items: center; color: var(--rxl-accent); background: var(--rxl-accent-soft); font-size: 16px; font-weight: 700; }
.content-info { min-width: 0; max-width: 320px; }
.content-info b,
.content-info span,
.content-info small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.content-info span { margin-top: 3px; color: var(--rxl-text-2); }
.content-info small { margin-top: 4px; color: var(--rxl-text-3); }
.catalog-price { color: var(--rxl-text); font-size: 13px; font-variant-numeric: tabular-nums; }
#content .scroll table { min-width: 820px; table-layout: fixed; }
#content .scroll th:nth-child(1) { width: 90px; }
#content .scroll th:nth-child(2) { width: 260px; }
#content .scroll th:nth-child(3) { width: 120px; }
#content .scroll th:nth-child(4) { width: 78px; }
#content .scroll th:nth-child(5) { width: 58px; }
#content .scroll th:nth-child(6) { width: 124px; }
#content .scroll th:nth-child(7) { width: 128px; }
#product-catalog .scroll table { min-width: 760px; }

#trend .bar { position: relative; min-width: 24px; }
#trend .bar em {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--rxl-text-2);
  font-size: 9px;
  font-style: normal;
  white-space: nowrap;
}
.trend-empty { width: 100%; align-self: center; padding: 54px 12px !important; text-align: center; }

/* 商品、广告与客资页面：筛选保持一行，次要条件收起，表格尽快进入首屏。 */
#points .panel:first-child,
#content .panel:first-child,
#homepage .panel:first-child,
#customers .panel { margin-top: 0; }
#manualLeadDashboard { padding-bottom: 14px !important; }
.lead-dashboard .cards { grid-template-columns: repeat(5,minmax(110px,1fr)) !important; }
.lead-kpis { grid-template-columns: repeat(4,minmax(180px,1fr)) !important; gap: 12px !important; }
.lead-dashboard .lead-insights { grid-template-columns: 1.4fr 1fr 1fr !important; gap: 10px !important; }
.lead-insight { border-radius: 6px !important; box-shadow: none !important; }

/* 客资页信息分层：经营指标四列铺开，待办队列单独成组，筛选工具按稳定网格排列。 */
#manualLeadDashboard .lead-kpi { min-height: 98px; }
#manualLeadDashboard .lead-kpi:nth-child(n+5) { background: #fbfdfc; }
#manualLeadDashboard .lead-kpi:nth-child(3) { border-color: #efd9aa; }
.lead-queue-strip { margin-top: 2px; padding: 10px; border: 1px solid #e0ebe4; border-radius: 14px; background: #f5faf7; }
.lead-queue-card { min-height: 74px; background: #fff; }
.lead-panel-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.lead-batch-actions { position: relative; }
.lead-batch-actions > summary { list-style: none; cursor: pointer; }
.lead-batch-actions > summary::-webkit-details-marker { display: none; }
.lead-batch-actions > summary::after { content: "⌄"; margin-left: 6px; font-weight: 700; }
.lead-batch-actions[open] > summary::after { content: "⌃"; }
.lead-batch-menu { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; display: grid; min-width: 126px; gap: 6px; padding: 8px; border: 1px solid #dbe7df; border-radius: 10px; background: #fff; box-shadow: 0 14px 30px rgba(27,60,43,.14); }
.lead-batch-menu .btn { width: 100%; justify-content: flex-start; white-space: nowrap; }
.lead-reminder-card { width: min(610px,94vw); max-height: 88vh; overflow: auto; padding: 22px; background: #fff; }
.lead-reminder-status { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0 4px; }
.lead-reminder-section { margin-top: 16px; padding: 15px; border: 1px solid #dce9e1; border-radius: 12px; background: #fff; }
.lead-reminder-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lead-reminder-section-head h3 { margin: 0; color: var(--rxl-text); font-size: 14px; }
.lead-reminder-section-head span { display: block; margin-top: 4px; color: var(--rxl-text-3); font-size: 11px; line-height: 1.45; }
.lead-reminder-actions { display: flex; flex-wrap: wrap; gap: 7px; flex: 0 0 auto; }
.lead-reminder-form { display: grid; gap: 14px; margin-top: 12px; }
.lead-reminder-form.compact { grid-template-columns: 1.35fr .8fr 1.25fr; align-items: end; margin-top: 0; }
.lead-reminder-form.compact .lead-reminder-switch { min-height: 69px; }
.lead-reminder-form > label { display: grid; gap: 6px; color: var(--rxl-text-2); font-size: 13px; font-weight: 650; }
.lead-reminder-form small, .lead-reminder-switch small { color: var(--rxl-text-3); font-size: 11px; font-weight: 450; line-height: 1.45; }
.lead-reminder-switch { grid-template-columns: 18px 1fr; align-items: start; padding: 12px; border: 1px solid #dce9e1; border-radius: 10px; background: #f7fbf8; cursor: pointer; }
.lead-reminder-switch input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--rxl-accent); }
.lead-reminder-switch span { display: grid; gap: 4px; }
.lead-reminder-rules { display: grid; gap: 8px; }
.lead-reminder-rule { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf2ee; }
.lead-reminder-rule:last-child { border-bottom: 0; }
.lead-reminder-rule > div:first-child { display: grid; gap: 3px; min-width: 0; }
.lead-reminder-rule b { color: var(--rxl-text); font-size: 13px; }
.lead-reminder-rule span, .lead-reminder-rule small { color: var(--rxl-text-3); font-size: 11px; line-height: 1.4; }
.lead-reminder-rule > div:last-child { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.lead-reminder-error { color: var(--rxl-danger) !important; }
.lead-reminder-empty { padding: 18px 8px; color: var(--rxl-text-3); font-size: 12px; text-align: center; }
.lead-reminder-template { display: grid; gap: 6px; margin-top: 11px; color: var(--rxl-text-2); font-size: 12px; font-weight: 650; }
.lead-reminder-template small { color: var(--rxl-text-3); font-size: 11px; font-weight: 450; line-height: 1.4; }
.lead-reminder-rule-form { margin: 12px 0; padding: 13px; border: 1px solid #bfd8c8; border-radius: 10px; background: #f7fbf8; }
.lead-reminder-rule-form-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; color: var(--rxl-text); font-size: 13px; }
.lead-reminder-recipient-list { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 8px; padding: 9px; border: 1px dashed #c8dbce; border-radius: 8px; background: #fff; }
.lead-reminder-recipient { display: flex !important; align-items: center; gap: 6px; margin: 0; color: var(--rxl-text-2); font-size: 12px; font-weight: 500; }
.lead-reminder-recipient input { width: 15px; height: 15px; accent-color: var(--rxl-accent); }
.lead-reminder-note { display: grid; gap: 4px; margin-top: 14px; padding: 12px; border-left: 3px solid #b6cfbf; border-radius: 0 8px 8px 0; background: #f7faf8; color: var(--rxl-text-2); font-size: 12px; line-height: 1.5; }
.lead-filter-grid { display: grid !important; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: center; gap: 9px; }
.lead-filter-grid .lead-periods { grid-column: 1/-1; }
.lead-filter-grid #manualLeadDateFrom,
.lead-filter-grid #manualLeadDateTo { grid-column: span 2; min-width: 0; }
.lead-filter-grid .lead-keyword { grid-column: span 3; min-width: 0 !important; }
.lead-filter-grid #manualLeadStatus { grid-column: span 2; min-width: 0; }
.lead-filter-grid #manualLeadCategory,
.lead-filter-grid #manualLeadSource { grid-column: span 2; min-width: 0; }
.lead-filter-grid #manualLeadFollowup { grid-column: span 3; min-width: 0; }
.lead-filter-grid #manualLeadAssignee { grid-column: span 3; min-width: 0; }
.lead-filter-grid #searchManualLeads { grid-column: span 2; }

/* 权限页面默认只显示账号列表，新增表单放进独立弹层。 */
#permissions #webAccountForm { display: none !important; }
#permissions #webAccountForm.rxl-form-open { display: grid !important; }
.rxl-account-create { margin-left: auto; }
.rxl-form-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(27,30,36,.48);
}
.rxl-form-modal-card {
  width: min(760px, 96vw);
  max-height: min(820px, 92vh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(20,24,30,.22);
}
.rxl-form-modal-head,
.rxl-form-modal-foot { flex: 0 0 auto; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rxl-border); }
.rxl-form-modal-head h2 { margin: 0; font-size: 17px; }
.rxl-form-modal-head p { margin: 5px 0 0; color: var(--rxl-text-3); font-size: 12px; }
.rxl-form-modal-body { min-height: 0; overflow: auto; padding: 20px; }
.rxl-form-modal-body #webAccountForm { grid-template-columns: repeat(2,minmax(0,1fr)) !important; padding: 0 !important; background: #fff !important; border: 0 !important; }
.rxl-form-modal-body #webAccountForm > .account-create-field { display: grid; grid-template-columns: 1fr; gap: 6px; min-width: 0; color: var(--rxl-text-2); font-size: 12px; font-weight: 650; }
.rxl-form-modal-body #webAccountForm > .account-create-field[hidden] { display: none !important; }
.rxl-form-modal-body #webAccountForm > .account-create-field > span { display: flex; align-items: center; gap: 5px; }
.rxl-form-modal-body #webAccountForm > .account-create-field em { color: var(--rxl-text-3); font-size: 10px; font-style: normal; font-weight: 500; }
.rxl-form-modal-body #webAccountForm > .account-create-field input,
.rxl-form-modal-body #webAccountForm > .account-create-field select { width: 100%; min-width: 0; }
.rxl-form-modal-body #webAccountForm > .account-create-field small { color: var(--rxl-text-3); font-size: 10px; font-weight: 450; line-height: 1.35; }
.rxl-form-modal-body #webAccountForm .account-permissions-fieldset { grid-column: 1/-1; min-width: 0; }
.rxl-form-modal-body #webAccountForm .account-permissions-fieldset legend { padding: 0 6px; color: var(--rxl-text); font-size: 13px; font-weight: 750; }
.rxl-form-modal-body #webAccountForm .account-permissions-fieldset legend small { margin-left: 5px; color: var(--rxl-text-3); font-size: 10px; font-weight: 500; }
.account-permissions-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px !important; }
.account-permission-option { display: flex !important; align-items: flex-start !important; gap: 10px !important; min-width: 0; padding: 11px 12px; border: 1px solid var(--rxl-border); border-radius: 8px; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.account-permission-option:hover { border-color: #a9cbbb; background: #f7fbf8; }
.account-permission-option:has(input:checked) { border-color: #8fbea5; background: #f2f9f4; }
.account-permission-option input[type="checkbox"] { flex: 0 0 17px !important; width: 17px !important; min-width: 17px !important; height: 17px !important; min-height: 17px !important; margin: 1px 0 0 !important; accent-color: var(--rxl-accent); }
.account-permission-option span { display: grid; gap: 4px; min-width: 0; }
.account-permission-option b { color: var(--rxl-text); font-size: 12px; line-height: 1.2; }
.account-permission-option small { color: var(--rxl-text-3); font-size: 10px; font-weight: 450; line-height: 1.35; }
.rxl-form-modal-body #webAccountForm > .account-store-field { grid-column: 1/-1; max-width: 360px; }
.rxl-form-modal-body #webAccountForm > .account-create-submit { grid-column: 1/-1; justify-self: end; min-width: 148px; }
.rxl-form-modal-foot { justify-content: flex-end; gap: 8px; border-top: 1px solid var(--rxl-border); border-bottom: 0; }

/* 统一账单 */
.ledger-toolbar-panel { padding-bottom: 14px !important; }
.ledger-filters { display: grid; grid-template-columns: 138px 138px 122px 150px minmax(180px,1fr) auto; gap: 8px; align-items: end; }
.ledger-filters label { display: grid; gap: 5px; }
.ledger-filter-actions { display: flex; gap: 6px; }
.ledger-summary { grid-template-columns: repeat(4,minmax(150px,1fr)) !important; margin-top: 12px !important; }
.ledger-amount { font-weight: 700; font-variant-numeric: tabular-nums; }
.ledger-amount.income { color: var(--rxl-accent); }
.ledger-amount.expense { color: var(--rxl-danger); }
.ledger-void { color: var(--rxl-text-3); text-decoration: line-through; }
.ledger-row-actions { display: flex; gap: 6px; white-space: nowrap; }
.ledger-editor-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.ledger-editor-grid label { display: grid; gap: 6px; color: var(--rxl-text-2); font-size: 13px; }
.ledger-editor-grid input,
.ledger-editor-grid select,
.ledger-editor-grid textarea { width: 100%; min-width: 0; }
.ledger-note-field { grid-column: 1/-1; }

.modal { align-items: center !important; padding: 20px !important; background: rgba(27,30,36,.48) !important; }
.modal-card { max-height: min(820px,90vh) !important; overflow: auto !important; border-radius: 8px !important; box-shadow: 0 24px 70px rgba(20,24,30,.22) !important; }
.toast { border-radius: 6px !important; }

@media (max-width: 1380px) {
  .cards { grid-template-columns: repeat(3,minmax(140px,1fr)) !important; }
  .lead-dashboard .cards { grid-template-columns: repeat(3,minmax(120px,1fr)) !important; }
  .ledger-filters { grid-template-columns: repeat(4,minmax(120px,1fr)); }
  .ledger-keyword { grid-column: span 3; }
  .content-tools, .product-catalog-tools { grid-template-columns: minmax(220px,1fr) 140px 130px auto auto; }
}

@media (max-width: 1200px) {
  .rxl-secondary-nav { transform: translateX(-110%); box-shadow: 12px 0 34px rgba(24,28,34,.14); }
  body.rxl-secondary-open .rxl-secondary-nav { transform: translateX(0); }
  body.rxl-secondary-open .rxl-nav-backdrop { display: block; left: 88px; }
  .main { margin-left: 88px !important; }
  #dashboard .grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 900px) {
  .rxl-primary-nav { transform: translateX(-110%); transition: transform .2s ease; }
  .rxl-secondary-nav { left: 88px; width: 164px; transform: translateX(-170%); }
  body.rxl-nav-open .rxl-primary-nav,
  body.rxl-nav-open .rxl-secondary-nav { transform: translateX(0); }
  body.rxl-nav-open .rxl-nav-backdrop { display: block; left: 0; }
  .main { margin-left: 0 !important; padding: 0 14px 32px !important; }
  .top { margin: 0 -14px 14px !important; padding: 0 14px !important; }
  .rxl-mobile-menu { display: grid; place-items: center; flex: 0 0 auto; }
  .top > div:first-child { flex: 1; }
  .top p { display: none; }
  .top-actions #syncStatus, .top-actions .scope-chip { display: none !important; }
  .cards, .lead-dashboard .cards, .ledger-summary { grid-template-columns: repeat(2,minmax(120px,1fr)) !important; }
  .lead-kpis { grid-template-columns: repeat(3,minmax(120px,1fr)) !important; }
  .lead-dashboard .lead-insights { grid-template-columns: 1fr !important; }
  .ledger-filters { grid-template-columns: repeat(2,minmax(120px,1fr)); }
  .ledger-keyword { grid-column: 1/-1; }
  .ledger-filter-actions { grid-column: 1/-1; }
  .content-summary, .catalog-summary { grid-template-columns: repeat(2,minmax(120px,1fr)); }
  .content-tools, .product-catalog-tools { grid-template-columns: 1fr 1fr; }
  .content-tools input, .product-catalog-tools input { grid-column: 1/-1; }
  .panel { padding: 14px !important; }
  .lead-filter-grid { grid-template-columns: repeat(6,minmax(0,1fr)) !important; }
  .lead-filter-grid #manualLeadDateFrom,
  .lead-filter-grid #manualLeadDateTo { grid-column: span 2; }
  .lead-filter-grid .lead-keyword { grid-column: span 3; }
  .lead-filter-grid #manualLeadStatus { grid-column: span 2; }
  .lead-filter-grid #manualLeadCategory,
  .lead-filter-grid #manualLeadSource { grid-column: span 2; }
  .lead-filter-grid #manualLeadFollowup,
  .lead-filter-grid #manualLeadAssignee { grid-column: span 3; }
  .lead-filter-grid #searchManualLeads { grid-column: span 1; }
}

@media (max-width: 560px) {
  .top h1 { font-size: 16px !important; }
  .top-actions .avatar { display: none !important; }
  .cards, .lead-dashboard .cards, .ledger-summary { grid-template-columns: 1fr 1fr !important; }
  .lead-kpis { grid-template-columns: 1fr 1fr !important; }
  #customers .lead-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  #customers .lead-filter-grid > * { grid-column: span 1 !important; min-width: 0 !important; }
  #customers .lead-filter-grid .lead-periods,
  #customers .lead-filter-grid .lead-keyword,
  #customers .lead-filter-grid #manualLeadFollowup,
  #customers .lead-filter-grid #manualLeadAssignee,
  #customers .lead-filter-grid #searchManualLeads { grid-column: 1/-1 !important; }
  .dashboard-range { align-items: flex-start !important; flex-direction: column; gap: 8px; }
  .dashboard-range .segmented { width: 100%; display: grid !important; grid-template-columns: repeat(4,1fr); }
  .ledger-filters { grid-template-columns: 1fr; }
  .ledger-keyword, .ledger-filter-actions { grid-column: auto; }
  .rxl-form-modal { padding: 8px; }
  .rxl-form-modal-body #webAccountForm { grid-template-columns: 1fr !important; }
  .account-permissions-grid { grid-template-columns: 1fr !important; }
  .rxl-form-modal-body #webAccountForm > .account-store-field { max-width: none; }
  .ledger-editor-grid { grid-template-columns: 1fr; }
  .ledger-note-field { grid-column: auto; }
  .content-summary, .catalog-summary { grid-template-columns: 1fr 1fr; }
  .content-tools, .product-catalog-tools { grid-template-columns: 1fr; }
  .content-tools input, .product-catalog-tools input { grid-column: auto; }
}

/* 窄屏首屏：提醒条和经营周期必须完整落在可视区内。 */
@media (max-width: 700px) {
  #applicationAlert {
    margin: 12px 12px 0 !important;
    padding: 14px 16px !important;
    flex-wrap: wrap !important;
    align-items: center !important;
  }
  #applicationAlert > div {
    min-width: 0;
    flex: 1 1 220px;
  }
  #applicationAlertText { margin-left: 6px !important; }
  #applicationAlertButton { flex: 0 0 auto; }
  .dashboard-range {
    min-height: 0 !important;
    padding: 12px !important;
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 10px !important;
  }
  .dashboard-range > div:first-child {
    min-width: 0;
    gap: 6px;
  }
  .dashboard-range-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }
  .dashboard-range-actions button {
    width: 100%;
    min-width: 0 !important;
    padding: 0 4px !important;
  }
}

@media (max-width: 420px) {
  .dashboard-range-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v23：单层主导航。相关功能改为当前模块内的上下文切换，避免全局二级页面。 */
.rxl-primary-nav {
  width: 216px !important;
  padding: 0 12px 14px !important;
  overflow-y: auto !important;
  background: var(--rxl-nav) !important;
  box-shadow: 8px 0 24px rgba(31, 36, 43, .08);
}
.rxl-brand {
  height: 76px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 0 8px !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
.rxl-brand-mark {
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 auto;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--rxl-accent) !important;
  font-size: 18px !important;
}
.rxl-brand-copy { display: grid; gap: 3px; min-width: 0; }
.rxl-brand-copy b { color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .02em; }
.rxl-brand-copy small { color: #aeb5c0; font-size: 11px; }
.rxl-primary-groups { display: grid; gap: 12px; padding: 14px 0 10px; }
.rxl-nav-group { display: grid; gap: 5px; }
.rxl-nav-group-label { padding: 0 10px 2px; color: #89919e; font-size: 10px; font-weight: 650; letter-spacing: .12em; }
.rxl-primary-list { display: grid; gap: 3px; padding: 0 !important; }
.rxl-primary-item {
  min-height: 42px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 0 11px !important;
  border-radius: 8px !important;
  color: #b8bdc8 !important;
  text-align: left;
}
.rxl-primary-item:hover { color: #fff !important; background: var(--rxl-nav-soft) !important; }
.rxl-primary-item.active { color: #174d3d !important; background: #eaf5f0 !important; box-shadow: inset 3px 0 0 #238b69 !important; }
.rxl-primary-item .nav-icon { width: 18px !important; height: 18px !important; flex: 0 0 18px; }
.rxl-primary-label { font-size: 13px !important; line-height: 1.2 !important; }
.rxl-nav-footer { display: flex; align-items: center; gap: 7px; margin: 8px 8px 0; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.08); color: #89919e; font-size: 11px; }
.rxl-nav-footer-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #55b589; box-shadow: 0 0 0 3px rgba(85,181,137,.12); }
.rxl-secondary-nav, .rxl-nav-backdrop { display: none !important; }
.main { margin-left: 216px !important; }

.rxl-context-tabs {
  position: relative;
  z-index: 20;
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 18px;
  padding: 0 4px;
  border-bottom: 1px solid var(--rxl-border);
  background: transparent;
}
.rxl-context-tabs[hidden] { display: none !important; }
.rxl-context-title { flex: 0 0 auto; padding: 0 16px 0 4px; border-right: 1px solid var(--rxl-border); color: var(--rxl-text); font-size: 12px; font-weight: 750; }
.rxl-context-list { min-width: 0; display: flex; align-items: center; gap: 3px; overflow-x: auto; scrollbar-width: none; }
.rxl-context-list::-webkit-scrollbar { display: none; }
.rxl-context-tab { min-height: 40px; flex: 0 0 auto; padding: 0 5px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--rxl-text-2); font-size: 12px; cursor: pointer; white-space: nowrap; }
.rxl-context-tab:hover { color: var(--rxl-accent); }
.rxl-context-tab.active { border-bottom-color: var(--rxl-accent); color: var(--rxl-accent); font-weight: 750; }
.rxl-context-tab:focus-visible,
.rxl-context-more-button:focus-visible,
.rxl-context-menu-item:focus-visible { outline: 2px solid #75bfa2; outline-offset: 2px; }
.rxl-context-more { position: relative; flex: 0 0 auto; }
.rxl-context-more-button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--rxl-border);
  border-radius: 6px;
  background: #fff;
  color: var(--rxl-text-2);
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}
.rxl-context-more-button:hover,
.rxl-context-more-button.has-active { border-color: #a7d6c2; background: var(--rxl-accent-soft); color: var(--rxl-accent); }
.rxl-context-more-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 80;
  min-width: 150px;
  padding: 5px;
  border: 1px solid var(--rxl-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(29,35,42,.16);
}
.rxl-context-more-menu[hidden] { display: none !important; }
.rxl-context-menu-item {
  display: block;
  width: 100%;
  min-height: 34px;
  padding: 0 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--rxl-text-2);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.rxl-context-menu-item:hover,
.rxl-context-menu-item.active { background: var(--rxl-accent-soft); color: var(--rxl-accent); font-weight: 650; }

/* 二级功能统一在中控台内打开：保留主页面上下文，减少整页跳转和重复找入口。 */
.rxl-secondary-layer {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  padding: 18px;
}
.rxl-secondary-layer[hidden] { display: none !important; }
.rxl-secondary-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 45, 35, .56);
  backdrop-filter: blur(7px);
}
.rxl-secondary-panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1320px, 100%);
  height: min(900px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid rgba(214, 232, 220, .95);
  border-radius: 24px;
  background: #eef4f0;
  box-shadow: 0 28px 80px rgba(7, 34, 24, .28);
  animation: rxl-secondary-in .18s ease-out both;
}
.rxl-secondary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 94px;
  padding: 17px 22px 16px 26px;
  border-bottom: 1px solid #dfeae2;
  background: linear-gradient(120deg, #173f32 0%, #236b51 68%, #4c9771 140%);
  color: #fff;
}
.rxl-secondary-heading { min-width: 0; }
.rxl-secondary-kicker { display: block; margin-bottom: 5px; color: #b7d8c5; font-size: 10px; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; }
.rxl-secondary-heading h2 { margin: 0; color: #fff; font-size: 20px; letter-spacing: -.035em; }
.rxl-secondary-heading p { margin: 5px 0 0; color: #d6ebe0; font-size: 12px; }
.rxl-secondary-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.rxl-secondary-actions .btn { min-height: 36px; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.14); color: #fff; box-shadow: none; }
.rxl-secondary-actions .btn:hover { background: rgba(255,255,255,.23); }
.rxl-secondary-actions .btn.light { background: #fff; color: #1f6049; }
.rxl-secondary-frame-wrap { position: relative; min-height: 0; overflow: hidden; background: #f5f8f5; }
.rxl-secondary-frame-wrap iframe { display: block; width: 100%; height: 100%; border: 0; background: #f5f8f5; }
.rxl-secondary-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 8px; color: #2c604b; background: #f5f8f5; }
.rxl-secondary-loading[hidden] { display: none !important; }
.rxl-secondary-loading b { font-size: 14px; }
.rxl-secondary-loading small { color: #7c9587; font-size: 11px; }
.rxl-secondary-spinner { width: 28px; height: 28px; border: 3px solid #cce5d5; border-top-color: #27815f; border-radius: 50%; animation: rxl-secondary-spin .8s linear infinite; }
body.rxl-secondary-open { overflow: hidden; }
@keyframes rxl-secondary-spin { to { transform: rotate(360deg); } }
@keyframes rxl-secondary-in { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }

@media (max-width: 700px) {
  .rxl-secondary-layer { padding: 0; }
  .rxl-secondary-panel { width: 100%; height: 100dvh; border-radius: 0; border: 0; }
  .rxl-secondary-head { align-items: flex-start; flex-direction: column; gap: 12px; padding: 17px 16px 14px; }
  .rxl-secondary-actions { width: 100%; }
  .rxl-secondary-actions .btn { flex: 1; }
}

@media (max-width: 900px) {
  .rxl-primary-nav { width: 216px !important; transform: translateX(-110%); transition: transform .2s ease; }
  body.rxl-nav-open .rxl-primary-nav { transform: translateX(0); }
  .main { margin-left: 0 !important; }
  .rxl-context-tabs { margin-left: 0; margin-right: 0; }
}

@media (max-width: 560px) {
  .rxl-context-tabs { gap: 9px; padding: 0; }
  .rxl-context-title { padding-right: 9px; font-size: 11px; }
  .rxl-context-list { gap: 7px; }
  .rxl-context-tab { padding: 0 3px; }
}

/* 平板横屏：不要把 901–1100px 的视口当成完整桌面，给主内容留出可用宽度。 */
@media (min-width: 901px) and (max-width: 1100px) {
  .rxl-primary-nav { width: 192px !important; }
  .main { margin-left: 192px !important; padding: 0 18px 38px !important; }
  .top { margin: 0 -18px 18px !important; padding: 0 18px !important; }
  .top-actions .search,
  .top-actions #syncStatus,
  .top-actions .scope-chip { display: none !important; }
  .cards,
  .lead-dashboard .cards,
  .ledger-summary { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  #dashboard .grid { grid-template-columns: 1fr !important; }
  .panel { padding: 16px !important; }
  .ledger-filters { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .content-tools,
  .product-catalog-tools { grid-template-columns: minmax(0, 1fr) 140px 130px auto auto; }
}

/* 门店选择器：门店数量较多时用关键词筛选，避免在原生下拉中长时间滚动。 */
.searchable-store-picker { position: relative; z-index: 1; }
.searchable-store-picker:focus-within { z-index: 30; }
.store-picker-control { position: relative; display: flex; min-width: 0; }
.store-picker-input { width: 100%; min-width: 0; padding-right: 36px !important; }
.store-picker-clear {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--rxl-text-3);
  cursor: pointer;
  font-size: 18px;
  line-height: 22px;
}
.store-picker-clear:hover { background: #eef2f0; color: var(--rxl-text); }
.store-picker-options {
  position: absolute;
  top: calc(100% - 1px);
  right: 0;
  left: 0;
  max-height: 250px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid var(--rxl-border-strong);
  border-radius: 0 0 8px 8px;
  background: var(--rxl-surface);
  box-shadow: 0 12px 28px rgba(29,35,42,.16);
}
.store-picker-options[hidden] { display: none !important; }
.store-picker-option {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--rxl-text);
  cursor: pointer;
  font-size: 12px;
  line-height: 1.35;
  text-align: left;
  white-space: normal;
}
.store-picker-option:hover,
.store-picker-option:focus { background: var(--rxl-accent-soft); color: var(--rxl-accent-dark); outline: 0; }
.store-picker-empty { padding: 12px 10px; color: var(--rxl-text-3); font-size: 12px; line-height: 1.45; }
.store-picker-input:disabled { cursor: not-allowed; }

/* 客资档案内的老师回填区：把回填、链接状态和收款信息分开，避免老师填报被误认为金额操作。 */
.lead-teacher-service-panel {
  margin: 16px 0;
  padding: 15px;
  border: 1px solid #d9e9df;
  border-radius: 12px;
  background: #fbfefc;
}
.lead-teacher-service-panel h3 { margin: 0 0 4px; color: #24553e; }
.lead-teacher-service-panel .panel-head { align-items: flex-start; gap: 12px; }
.lead-teacher-service-panel table small { color: #718179; line-height: 1.45; }
.lead-teacher-link-list { margin-top: 11px; color: #687b70; line-height: 1.8; }
.text-link { margin-left: 4px; padding: 0; border: 0; background: transparent; color: #1e7453; cursor: pointer; font: inherit; text-decoration: underline; }
.text-link.danger { color: #ae4d46; }
.lead-teacher-link-tip { margin-top: 12px; padding: 10px 12px; border-radius: 9px; background: #f3f8f4; color: #557264; font-size: 12px; line-height: 1.65; }
.lead-teacher-link-result { padding: 13px; border: 1px solid #cfe3d5; border-radius: 10px; background: #f5fbf7; color: #315d4c; }
.lead-teacher-link-result input { width: 100%; margin: 10px 0; padding: 9px; border: 1px solid #c9ddcf; border-radius: 7px; background: #fff; font-size: 12px; }
.lead-teacher-link-result div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.lead-teacher-link-result small { color: #698075; }

@media (max-width: 720px) {
  .lead-reminder-card { width: min(100vw,610px); max-height: 100dvh; border-radius: 0; }
  .lead-reminder-section-head { align-items: stretch; flex-direction: column; }
  .lead-reminder-actions .btn { flex: 1; }
  .lead-reminder-form.compact { grid-template-columns: 1fr; }
  .lead-reminder-rule { align-items: stretch; flex-direction: column; }
  .lead-reminder-rule > div:last-child { justify-content: space-between; }
  .lead-teacher-service-panel { padding: 12px; }
  .lead-teacher-service-panel .panel-head { align-items: stretch; flex-direction: column; }
}
