:root {
  --brand: #0052d9;
  --brand-hover: #266fe8;
  --brand-soft: #eef5ff;
  --brand-deep: #003cab;
  --text: #1f2633;
  --text-secondary: #5f6b7a;
  --text-muted: #8b96a8;
  --border: #dfe3e8;
  --border-strong: #c9d0d9;
  --surface: #ffffff;
  --surface-soft: #f7f8fa;
  --page: #f3f5f8;
  --sidebar: #20242b;
  --sidebar-hover: #2c323b;
  --sidebar-text: #c6ccd5;
  --success: #2ba471;
  --success-soft: #eaf8f2;
  --warning: #d58b00;
  --warning-soft: #fff7e6;
  --danger: #d54941;
  --danger-soft: #fff0ee;
  --shadow-sm: 0 1px 3px rgba(20, 36, 56, .08);
  --shadow-md: 0 8px 24px rgba(20, 36, 56, .12);
  --radius: 8px;
  --topbar-height: 56px;
  --sidebar-width: 224px;
  --sidebar-collapsed: 68px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-width: 1180px; min-height: 100%; margin: 0; background: var(--page); color: var(--text); }
body { font-size: 14px; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
[hidden] { display: none !important; }

.topbar {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto 0;
  height: var(--topbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px 0 14px;
  color: #fff;
  background: #171a1f;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.brand-area, .topbar-actions { display: flex; align-items: center; }
.brand-area { gap: 11px; }
.topbar-actions { gap: 12px; }
.sidebar-toggle {
  width: 30px;
  height: 30px;
  padding: 0;
  color: #d9dee6;
  background: transparent;
  border: 0;
  border-radius: 4px;
}
.sidebar-toggle:hover { background: rgba(255,255,255,.1); }
.brand-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #5ee2ff;
  border: 1px solid #5ee2ff;
  border-radius: 3px;
  font-size: 11px;
  letter-spacing: 1px;
}
.brand-copy { display: flex; flex-direction: column; line-height: 1.2; }
.brand-copy strong { font-size: 15px; font-weight: 600; }
.brand-copy span { margin-top: 3px; color: #8f99a8; font-size: 11px; }
.global-search {
  width: 300px;
  height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  color: #8e98a6;
  background: #24282f;
  border: 1px solid #303640;
  border-radius: 18px;
}
.global-search:focus-within { border-color: #4c8fff; }
.global-search input { min-width: 0; flex: 1; color: #fff; background: transparent; border: 0; outline: 0; }
.global-search input::placeholder { color: #737d8a; }
.account-button {
  width: 32px;
  height: 32px;
  padding: 0;
  color: #fff;
  background: #343a43;
  border: 1px solid #515965;
  border-radius: 50%;
}

.sidebar {
  position: fixed;
  z-index: 40;
  top: var(--topbar-height);
  bottom: 0;
  left: 0;
  width: var(--sidebar-width);
  display: flex;
  flex-direction: column;
  color: var(--sidebar-text);
  background: var(--sidebar);
  transition: width .18s ease;
}
.workspace-name {
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.workspace-icon { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: #39414c; border-radius: 5px; }
.workspace-name div { min-width: 0; display: flex; flex-direction: column; }
.workspace-name strong { overflow: hidden; color: #fff; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.workspace-name small { margin-top: 3px; color: #7f8997; }
.nav-group-title { margin: 18px 18px 8px; color: #727d8c; font-size: 12px; }
.primary-nav { display: flex; flex-direction: column; gap: 4px; padding: 0 10px; }
.nav-item {
  width: 100%;
  height: 42px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 14px;
  color: var(--sidebar-text);
  background: transparent;
  border: 0;
  border-radius: 5px;
  text-align: left;
}
.nav-item:hover { color: #fff; background: var(--sidebar-hover); }
.nav-item.active { color: #fff; background: var(--brand); }
.nav-icon { width: 18px; flex: 0 0 18px; text-align: center; opacity: .9; }
.nav-label { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sidebar-bottom { margin-top: auto; padding: 14px 14px 18px; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-tip { padding: 12px; color: #aeb7c4; background: rgba(255,255,255,.04); border-radius: 6px; }
.sidebar-tip strong, .sidebar-tip span { display: block; }
.sidebar-tip strong { margin-bottom: 5px; color: #fff; font-size: 12px; }
.sidebar-tip span { font-size: 11px; line-height: 1.55; }
.sidebar-reset { margin-top: 10px; color: #8e99a8 !important; }

body.sidebar-collapsed .sidebar { width: var(--sidebar-collapsed); }
body.sidebar-collapsed .app-main { margin-left: var(--sidebar-collapsed); }
body.sidebar-collapsed .workspace-name { justify-content: center; padding-inline: 0; }
body.sidebar-collapsed .workspace-name div,
body.sidebar-collapsed .nav-group-title,
body.sidebar-collapsed .nav-label,
body.sidebar-collapsed .sidebar-bottom { display: none; }
body.sidebar-collapsed .primary-nav { padding-inline: 8px; }
body.sidebar-collapsed .nav-item { justify-content: center; padding: 0; }

.app-main {
  min-height: 100vh;
  margin-left: var(--sidebar-width);
  padding-top: var(--topbar-height);
  transition: margin-left .18s ease;
}
.page-shell { min-height: calc(100vh - var(--topbar-height)); padding: 24px 28px 42px; }
.page-shell.editor-page { padding: 0; }
.page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.breadcrumb { margin: 0 0 5px; color: var(--text-muted); font-size: 12px; }
.page-head h1 { margin: 0; font-size: 24px; line-height: 1.35; font-weight: 600; }
.page-description { max-width: 760px; margin: 7px 0 0; color: var(--text-secondary); }
.page-actions { display: flex; align-items: center; gap: 10px; padding-top: 7px; }

.button, .ghost-button, .text-button, .icon-button {
  border: 0;
  background: transparent;
}
.button, .ghost-button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 15px;
  border-radius: 4px;
  font-weight: 500;
}
.button { color: var(--text); background: #fff; border: 1px solid var(--border-strong); }
.button:hover { border-color: #9ba6b4; }
.button.primary { color: #fff; background: var(--brand); border-color: var(--brand); }
.button.primary:hover { background: var(--brand-hover); }
.button.danger { color: var(--danger); border-color: #f0b5b1; }
.button.soft { color: var(--brand); background: var(--brand-soft); border-color: #c9ddff; }
.button.compact, .ghost-button.compact { min-height: 30px; padding: 0 11px; font-size: 12px; }
.ghost-button { color: #dfe5ee; border: 1px solid #4a525e; }
.ghost-button:hover { color: #fff; border-color: #7d8795; }
.text-button { padding: 0; color: var(--brand); }
.text-button:hover { text-decoration: underline; }
.icon-button { width: 32px; height: 32px; display: grid; place-items: center; color: var(--text-secondary); border-radius: 4px; }
.icon-button:hover { color: var(--text); background: var(--surface-soft); }

.status-strip {
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 54px;
  margin-bottom: 18px;
  padding: 11px 16px;
  background: #fff;
  border: 1px solid var(--border);
  border-left: 4px solid var(--success);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.status-strip.warning { border-left-color: var(--warning); }
.status-strip .status-main { display: flex; align-items: center; gap: 9px; }
.status-dot { width: 8px; height: 8px; background: var(--success); border-radius: 50%; }
.status-strip.warning .status-dot { background: var(--warning); }
.status-strip strong { font-weight: 600; }
.status-meta { display: flex; gap: 20px; color: var(--text-secondary); font-size: 12px; }
.status-meta span + span { padding-left: 20px; border-left: 1px solid var(--border); }
.status-strip .status-action { margin-left: auto; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.metric-card { min-height: 96px; padding: 16px 18px; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.metric-card span { color: var(--text-secondary); font-size: 12px; }
.metric-card strong { display: block; margin-top: 8px; font-size: 26px; line-height: 1; font-weight: 600; }
.metric-card small { margin-left: 5px; color: var(--text-muted); font-size: 12px; }
.metric-card em { display: block; margin-top: 9px; color: var(--text-muted); font-size: 11px; font-style: normal; }

.panel { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.panel-head { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 18px; border-bottom: 1px solid var(--border); }
.panel-head h2, .panel-head h3 { margin: 0; font-size: 15px; font-weight: 600; }
.panel-head p { margin: 3px 0 0; color: var(--text-muted); font-size: 12px; }
.panel-body { padding: 18px; }

.status-tabs { display: flex; gap: 4px; }
.status-tab { min-height: 34px; padding: 0 13px; color: var(--text-secondary); background: transparent; border: 0; border-radius: 4px; }
.status-tab:hover { background: var(--surface-soft); }
.status-tab.active { color: var(--brand); background: var(--brand-soft); font-weight: 500; }
.status-tab .count { margin-left: 4px; color: var(--text-muted); }

.filter-bar {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(140px, .8fr)) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
  padding: 14px;
  background: var(--surface-soft);
  border: 1px solid #e9ecf0;
  border-radius: 6px;
}
.filter-field { display: flex; flex-direction: column; gap: 5px; }
.filter-field > span { color: var(--text-secondary); font-size: 12px; }
.filter-actions { display: flex; gap: 8px; }
.control {
  width: 100%;
  min-height: 38px;
  padding: 8px 11px;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--border-strong);
  border-radius: 4px;
  outline: 0;
  transition: border-color .15s, box-shadow .15s;
}
.control:focus { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(0,82,217,.10); }
.control[readonly], .control:disabled { color: var(--text-muted); background: #f6f7f9; }
textarea.control { resize: vertical; }
select.control { padding-right: 28px; }

.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.data-table th, .data-table td { padding: 13px 12px; border-bottom: 1px solid #edf0f3; text-align: left; vertical-align: middle; }
.data-table th { color: var(--text-secondary); background: #fafbfc; font-size: 12px; font-weight: 500; white-space: nowrap; }
.data-table tbody tr:hover { background: #fbfcfe; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.object-cell { min-width: 220px; display: flex; align-items: center; gap: 10px; }
.object-cell img, .object-thumb { width: 42px; height: 42px; flex: 0 0 42px; object-fit: cover; background: #edf1f6; border: 1px solid var(--border); border-radius: 6px; }
.object-cell.avatar img, .object-thumb.avatar { border-radius: 50%; }
.object-copy { min-width: 0; }
.object-copy strong, .object-copy span { display: block; }
.object-copy strong { overflow: hidden; max-width: 260px; white-space: nowrap; text-overflow: ellipsis; font-weight: 500; }
.object-copy span { margin-top: 3px; color: var(--text-muted); font-size: 11px; }
.table-actions { display: flex; gap: 11px; white-space: nowrap; }
.table-actions button { padding: 0; color: var(--brand); background: transparent; border: 0; }
.table-actions button.danger { color: var(--danger); }
.table-actions button:hover { text-decoration: underline; }
.empty-state { padding: 58px 20px; text-align: center; color: var(--text-muted); }
.empty-state strong, .empty-state span { display: block; }
.empty-state strong { margin-bottom: 6px; color: var(--text-secondary); }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 22px;
  padding: 2px 8px;
  color: var(--text-secondary);
  background: #f2f4f7;
  border: 1px solid #e6e9ed;
  border-radius: 11px;
  font-size: 11px;
  white-space: nowrap;
}
.badge.blue { color: var(--brand); background: var(--brand-soft); border-color: #d6e6ff; }
.badge.green { color: #1f8d60; background: var(--success-soft); border-color: #c8eadc; }
.badge.orange { color: #b67600; background: var(--warning-soft); border-color: #f5ddb0; }
.badge.red { color: var(--danger); background: var(--danger-soft); border-color: #f3c8c5; }
.badge.dark { color: #fff; background: #23324c; border-color: #23324c; }
.badge-group { display: flex; flex-wrap: wrap; gap: 5px; }
.completion { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.completion-bar { width: 58px; height: 6px; overflow: hidden; background: #e9edf2; border-radius: 3px; }
.completion-bar i { display: block; height: 100%; background: var(--success); border-radius: inherit; }
.completion.warn .completion-bar i { background: var(--warning); }
.completion small { color: var(--text-secondary); }

/* 首页运营 */
.home-studio { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 18px; align-items: start; }
.home-editor { min-width: 0; }
.home-section-tabs { display: flex; gap: 2px; margin-bottom: 14px; padding: 4px; background: #e9edf3; border-radius: 6px; }
.home-section-tab { flex: 1; min-height: 38px; padding: 0 10px; color: var(--text-secondary); background: transparent; border: 0; border-radius: 4px; white-space: nowrap; }
.home-section-tab.active { color: var(--brand); background: #fff; box-shadow: var(--shadow-sm); font-weight: 500; }
.auto-save-line { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; color: var(--success); font-size: 12px; }
.auto-save-line i { width: 7px; height: 7px; background: var(--success); border-radius: 50%; }
.home-module-card { margin-bottom: 14px; overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); }
.home-module-head { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 16px; background: #fafbfc; border-bottom: 1px solid var(--border); }
.home-module-head h3 { margin: 0; font-size: 15px; }
.home-module-head p { margin: 3px 0 0; color: var(--text-muted); font-size: 12px; }
.home-module-body { padding: 16px; }
.module-setting-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.module-setting-grid .span-2 { grid-column: span 2; }
.field-block { display: flex; flex-direction: column; gap: 6px; }
.field-block > label, .field-title { color: var(--text-secondary); font-size: 12px; }
.field-help { margin: 5px 0 0; color: var(--text-muted); font-size: 11px; }
.fixed-rule { min-height: 38px; display: flex; align-items: center; padding: 0 11px; color: var(--text-secondary); background: #f5f7fa; border: 1px solid var(--border); border-radius: 4px; }
.switch { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.switch input { position: absolute; opacity: 0; pointer-events: none; }
.switch-track { position: relative; width: 38px; height: 22px; flex: 0 0 38px; background: #c6ccd5; border-radius: 11px; transition: .18s; }
.switch-track::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.2); content: ""; transition: .18s; }
.switch input:checked + .switch-track { background: var(--brand); }
.switch input:checked + .switch-track::after { transform: translateX(16px); }
.switch-copy { color: var(--text-secondary); font-size: 12px; }

.slot-group { margin-top: 18px; }
.slot-group-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.slot-group-head h4 { margin: 0; font-size: 13px; font-weight: 600; }
.slot-group-head span { color: var(--text-muted); font-size: 11px; }
.slot-list { overflow: hidden; border: 1px solid var(--border); border-radius: 6px; }
.slot-row {
  display: grid;
  grid-template-columns: 30px 38px minmax(0,1fr) auto auto;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 8px 12px;
  background: #fff;
  border-bottom: 1px solid #edf0f3;
}
.slot-row:last-child { border-bottom: 0; }
.slot-row.dragging { opacity: .45; background: var(--brand-soft); }
.drag-handle { color: #9ba5b3; cursor: grab; font-size: 17px; text-align: center; user-select: none; }
.slot-rank { display: grid; place-items: center; width: 30px; height: 30px; color: var(--brand); background: var(--brand-soft); border-radius: 5px; font-size: 11px; font-weight: 600; }
.slot-rank.top { color: #a96b00; background: #fff3cf; }
.slot-object { min-width: 0; display: flex; align-items: center; gap: 9px; }
.slot-object img { width: 38px; height: 38px; flex: 0 0 38px; object-fit: cover; background: #edf1f6; border: 1px solid var(--border); border-radius: 5px; }
.slot-object.avatar img { border-radius: 50%; }
.slot-object-copy { min-width: 0; }
.slot-object-copy strong, .slot-object-copy span { display: block; }
.slot-object-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; font-weight: 500; }
.slot-object-copy span { margin-top: 2px; color: var(--text-muted); font-size: 11px; }
.slot-meta { display: flex; gap: 5px; }
.slot-actions { display: flex; gap: 9px; }
.slot-actions button { padding: 0; color: var(--brand); background: transparent; border: 0; font-size: 12px; }
.slot-actions button.remove { color: var(--danger); }
.empty-slot { min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--text-muted); background: #fafbfc; border: 1px dashed var(--border-strong); border-radius: 6px; }

.home-preview-panel { position: sticky; top: calc(var(--topbar-height) + 18px); overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.preview-panel-head { min-height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px; border-bottom: 1px solid var(--border); }
.preview-panel-head strong { font-size: 14px; }
.preview-panel-head span { color: var(--text-muted); font-size: 11px; }
.home-mini-browser { background: #f4f6f9; }
.mini-browser-bar { height: 28px; display: flex; align-items: center; gap: 5px; padding: 0 10px; background: #e5e9ef; }
.mini-browser-bar i { width: 7px; height: 7px; background: #b9c1cc; border-radius: 50%; }
.home-mini-content { max-height: 610px; overflow-y: auto; }
.mini-hero { padding: 19px 16px; color: #fff; background: linear-gradient(135deg,#0d3477,#0878dc); }
.mini-hero h3 { margin: 0; font-size: 18px; }
.mini-hero p { margin: 6px 0 0; opacity: .85; font-size: 10px; line-height: 1.6; }
.mini-section { padding: 13px 12px; background: #f6f8fb; border-bottom: 1px solid #e5e9ef; }
.mini-section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.mini-section-head strong { font-size: 11px; }
.mini-section-head span { color: #7e8998; font-size: 8px; }
.mini-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.mini-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #e0e5eb; border-radius: 5px; }
.mini-card img { width: 100%; height: 48px; display: block; object-fit: cover; background: #dae2ec; }
.mini-card-copy { padding: 6px; }
.mini-card-copy strong { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 8px; }
.mini-card-copy span { display: block; margin-top: 3px; color: #7e8998; font-size: 7px; }
.mini-person-list { display: grid; gap: 6px; }
.mini-person { min-height: 42px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 6px; padding: 6px; background: #fff; border: 1px solid #e0e5eb; border-radius: 5px; }
.mini-person img { width: 24px; height: 24px; object-fit: cover; border-radius: 50%; }
.mini-person strong { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 8px; }
.mini-person span { display: block; margin-top: 2px; color: #7e8998; font-size: 7px; }
.mini-person em { color: #0052d9; font-size: 7px; font-style: normal; }
.preview-checks { padding: 12px 14px 14px; border-top: 1px solid var(--border); }
.preview-checks h4 { margin: 0 0 8px; font-size: 12px; }
.check-item { display: flex; align-items: flex-start; gap: 7px; margin-top: 7px; color: var(--text-secondary); font-size: 11px; }
.check-item i { width: 16px; height: 16px; display: grid; place-items: center; flex: 0 0 16px; border-radius: 50%; font-style: normal; }
.check-item.ok i { color: var(--success); background: var(--success-soft); }
.check-item.warn i { color: var(--warning); background: var(--warning-soft); }
.check-item.error i { color: var(--danger); background: var(--danger-soft); }

/* 编辑页 */
.editor-topbar {
  position: sticky;
  z-index: 20;
  top: var(--topbar-height);
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 24px;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 8px rgba(31,38,51,.06);
}
.editor-title { min-width: 0; display: flex; align-items: center; gap: 12px; }
.back-button { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; color: var(--text-secondary); background: #fff; border: 1px solid var(--border); border-radius: 4px; }
.back-button:hover { color: var(--brand); border-color: #aac9ff; }
.editor-title-copy { min-width: 0; }
.editor-title-copy h1 { max-width: 620px; margin: 0; overflow: hidden; font-size: 18px; white-space: nowrap; text-overflow: ellipsis; }
.editor-title-copy p { margin: 3px 0 0; color: var(--text-muted); font-size: 11px; }
.editor-actions { display: flex; align-items: center; gap: 9px; }
.save-state { margin-right: 4px; color: var(--success); font-size: 11px; }

.editor-layout { display: grid; grid-template-columns: 176px minmax(620px,1fr) 330px; gap: 18px; align-items: start; max-width: 1600px; margin: 0 auto; padding: 18px 24px 54px; }
.editor-nav { position: sticky; top: calc(var(--topbar-height) + 88px); overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.editor-nav-title { padding: 12px 14px 8px; color: var(--text-muted); font-size: 11px; }
.editor-nav button { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 14px; color: var(--text-secondary); background: transparent; border: 0; border-left: 3px solid transparent; text-align: left; }
.editor-nav button:hover { color: var(--brand); background: #f7faff; }
.editor-nav button.active { color: var(--brand); background: var(--brand-soft); border-left-color: var(--brand); font-weight: 500; }
.editor-nav button i { width: 18px; color: var(--text-muted); font-size: 11px; font-style: normal; }
.editor-form { min-width: 0; }
.form-section { scroll-margin-top: calc(var(--topbar-height) + 92px); margin-bottom: 14px; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.form-section-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 17px; border-bottom: 1px solid var(--border); }
.form-section-head h2 { margin: 0; font-size: 15px; }
.form-section-head p { margin: 3px 0 0; color: var(--text-muted); font-size: 11px; }
.form-section-body { padding: 18px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 18px; }
.form-grid .span-2 { grid-column: span 2; }
.form-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.form-field > label { color: var(--text-secondary); font-size: 12px; }
.form-field.required > label::before { margin-right: 3px; color: var(--danger); content: "*"; }
.inline-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.input-with-unit { display: flex; }
.input-with-unit .control { border-radius: 4px 0 0 4px; }
.input-unit { min-width: 54px; display: grid; place-items: center; color: var(--text-muted); background: #f5f7fa; border: 1px solid var(--border-strong); border-left: 0; border-radius: 0 4px 4px 0; font-size: 12px; }
.char-count { margin-top: -2px; color: var(--text-muted); font-size: 10px; text-align: right; }
.char-count.over { color: var(--danger); }
.tag-checks { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-check { position: relative; }
.tag-check input { position: absolute; opacity: 0; }
.tag-check span { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; color: var(--text-secondary); background: #fff; border: 1px solid var(--border-strong); border-radius: 4px; font-size: 12px; }
.tag-check input:checked + span { color: var(--brand); background: var(--brand-soft); border-color: #9dc4ff; }
.radio-row { display: flex; flex-wrap: wrap; gap: 16px; min-height: 38px; align-items: center; }
.radio-row label { display: inline-flex; align-items: center; gap: 6px; color: var(--text-secondary); }
.radio-row input { accent-color: var(--brand); }

.upload-box {
  min-height: 126px;
  display: grid;
  grid-template-columns: 152px minmax(0,1fr);
  gap: 14px;
  padding: 12px;
  background: #fafbfc;
  border: 1px dashed var(--border-strong);
  border-radius: 6px;
}
.upload-box.compact { min-height: 92px; grid-template-columns: 92px minmax(0,1fr); }
.upload-preview { position: relative; overflow: hidden; min-height: 100px; background: #e9eef5; border: 1px solid var(--border); border-radius: 5px; }
.upload-box.compact .upload-preview { min-height: 68px; }
.upload-preview img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.upload-preview.placeholder { display: grid; place-items: center; color: var(--text-muted); }
.upload-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.upload-copy strong { font-size: 13px; }
.upload-copy p { margin: 5px 0 10px; color: var(--text-muted); font-size: 11px; line-height: 1.55; }
.file-input { display: none; }
.upload-action-row { display: flex; gap: 8px; }

.rich-editor-wrap { border: 1px solid var(--border-strong); border-radius: 5px; overflow: hidden; }
.rich-toolbar { display: flex; flex-wrap: wrap; gap: 3px; padding: 7px; background: #f7f8fa; border-bottom: 1px solid var(--border); }
.rich-toolbar button { min-width: 30px; height: 28px; padding: 0 8px; color: var(--text-secondary); background: #fff; border: 1px solid var(--border); border-radius: 3px; font-size: 12px; }
.rich-toolbar button:hover { color: var(--brand); border-color: #aac9ff; }
.rich-editor { min-height: 190px; padding: 13px; background: #fff; outline: 0; line-height: 1.75; }
.rich-editor:empty::before { color: #a0a9b5; content: attr(data-placeholder); }
.rich-editor h3 { margin: 12px 0 6px; }
.rich-editor p { margin: 7px 0; }

.repeater-list { display: grid; gap: 10px; }
.repeater-card { padding: 13px; background: #fafbfc; border: 1px solid var(--border); border-radius: 6px; }
.repeater-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.repeater-card-head strong { font-size: 13px; }
.repeater-actions { display: flex; gap: 8px; }
.repeater-actions button { padding: 0; color: var(--brand); background: transparent; border: 0; font-size: 11px; }
.repeater-actions button.remove { color: var(--danger); }
.gallery-editor { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 12px; }
.gallery-thumb { height: 92px; overflow: hidden; background: #e9eef5; border: 1px solid var(--border); border-radius: 5px; }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.benefit-editor { display: grid; grid-template-columns: 70px 1fr 1.4fr; gap: 10px; }
.icon-select { font-size: 18px; text-align: center; }
.repeater-add { width: 100%; min-height: 40px; color: var(--brand); background: #f8fbff; border: 1px dashed #9fc3ff; border-radius: 5px; }
.repeater-add:hover { background: var(--brand-soft); }

.relation-table { overflow: hidden; border: 1px solid var(--border); border-radius: 6px; }
.relation-table table { width: 100%; border-collapse: collapse; }
.relation-table th, .relation-table td { padding: 10px; border-bottom: 1px solid #edf0f3; text-align: left; font-size: 12px; }
.relation-table th { color: var(--text-secondary); background: #fafbfc; font-weight: 500; }
.relation-table tr:last-child td { border-bottom: 0; }
.relation-note { display: flex; gap: 8px; margin-top: 10px; padding: 10px 12px; color: var(--text-secondary); background: #f6f8fb; border-radius: 5px; font-size: 11px; }

.editor-preview { position: sticky; top: calc(var(--topbar-height) + 88px); }
.editor-preview-card { overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.editor-preview-head { min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-bottom: 1px solid var(--border); }
.editor-preview-head strong { font-size: 13px; }
.preview-mode-tabs { display: flex; gap: 2px; padding: 3px; background: #edf0f4; border-radius: 4px; }
.preview-mode-tabs button { min-height: 26px; padding: 0 8px; color: var(--text-secondary); background: transparent; border: 0; border-radius: 3px; font-size: 10px; }
.preview-mode-tabs button.active { color: var(--brand); background: #fff; box-shadow: var(--shadow-sm); }
.entity-preview-stage { padding: 14px; background: #f2f5f9; }
.entity-card-preview { overflow: hidden; background: #fff; border: 1px solid #dfe4eb; border-radius: 8px; box-shadow: 0 4px 14px rgba(31,38,51,.08); }
.entity-card-preview .cover { width: 100%; height: 120px; object-fit: cover; background: #dce4ef; }
.entity-card-preview .card-body { padding: 13px; }
.entity-card-preview .eyebrow { color: var(--brand); font-size: 9px; }
.entity-card-preview h3 { margin: 5px 0 6px; font-size: 15px; line-height: 1.45; }
.entity-card-preview p { min-height: 38px; margin: 0 0 9px; color: var(--text-secondary); font-size: 10px; line-height: 1.55; }
.entity-card-preview .card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-top: 9px; border-top: 1px solid #edf0f3; color: var(--text-muted); font-size: 9px; }
.entity-card-preview .cta { color: var(--brand); font-weight: 600; }
.person-card-preview { padding: 14px; }
.person-head { display: flex; align-items: center; gap: 10px; }
.person-head img { width: 48px; height: 48px; object-fit: cover; border-radius: 50%; }
.person-head h3 { margin: 0; font-size: 15px; }
.person-head span { display: block; margin-top: 3px; color: var(--brand); font-size: 9px; }
.person-card-preview p { margin: 10px 0; color: var(--text-secondary); font-size: 10px; line-height: 1.6; }
.person-topic { padding: 7px 9px; color: var(--text-secondary); background: #f3f6fa; border-radius: 4px; font-size: 9px; }
.points-box { margin-top: 9px; padding: 8px; color: #b67600; background: #fff6df; border: 1px solid #f2d598; border-radius: 4px; font-size: 10px; }
.detail-hero-preview { overflow: hidden; color: #fff; background: linear-gradient(135deg,#083d83,#0f7bed); border-radius: 7px; }
.detail-hero-cover { height: 100px; position: relative; background-size: cover; background-position: center; }
.detail-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(7,32,70,.05),rgba(8,28,61,.85)); }
.detail-hero-copy { position: absolute; inset: auto 13px 12px; }
.detail-hero-copy h3 { margin: 0; font-size: 16px; }
.detail-hero-copy p { margin: 5px 0 0; opacity: .85; font-size: 9px; }
.preview-validation { padding: 12px 13px; border-top: 1px solid var(--border); }
.preview-validation h4 { margin: 0 0 8px; font-size: 12px; }

/* 标签页 */
.tag-layout { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 16px; align-items: start; }
.tag-categories { overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.tag-category-head { padding: 14px 15px 10px; color: var(--text-muted); font-size: 11px; }
.tag-category-button { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between; padding: 0 15px; color: var(--text-secondary); background: transparent; border: 0; border-left: 3px solid transparent; text-align: left; }
.tag-category-button:hover { background: #f7f9fc; }
.tag-category-button.active { color: var(--brand); background: var(--brand-soft); border-left-color: var(--brand); }
.tag-category-button span:last-child { min-width: 24px; padding: 1px 7px; color: var(--text-muted); background: #eef1f5; border-radius: 10px; font-size: 10px; text-align: center; }
.tag-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.tag-summary div { padding: 12px; background: #fff; border: 1px solid var(--border); border-radius: 6px; }
.tag-summary span { color: var(--text-muted); font-size: 11px; }
.tag-summary strong { display: block; margin-top: 4px; font-size: 20px; }
.color-dot { width: 10px; height: 10px; display: inline-block; margin-right: 6px; border-radius: 50%; }

/* 模态框 */
.modal-backdrop { position: fixed; z-index: 100; inset: 0; display: flex; align-items: center; justify-content: center; padding: 28px; background: rgba(18,24,33,.52); }
.modal { width: min(720px, calc(100vw - 80px)); max-height: calc(100vh - 56px); display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.28); }
.modal.small { width: min(520px, calc(100vw - 80px)); }
.modal.large { width: min(920px, calc(100vw - 80px)); }
.modal-head { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 20px; border-bottom: 1px solid var(--border); }
.modal-head h2 { margin: 0; font-size: 17px; }
.modal-head p { margin: 3px 0 0; color: var(--text-muted); font-size: 11px; }
.modal-body { overflow-y: auto; padding: 18px 20px; }
.modal-footer { min-height: 64px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 0 20px; background: #fafbfc; border-top: 1px solid var(--border); }
.selector-toolbar { display: grid; grid-template-columns: 1fr 170px; gap: 10px; margin-bottom: 12px; }
.selector-list { max-height: 420px; overflow-y: auto; border: 1px solid var(--border); border-radius: 6px; }
.selector-item { min-height: 64px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 9px 12px; border-bottom: 1px solid #edf0f3; }
.selector-item:last-child { border-bottom: 0; }
.selector-item:hover { background: #fafcff; }
.selector-item img { width: 42px; height: 42px; object-fit: cover; background: #edf1f6; border: 1px solid var(--border); border-radius: 5px; }
.selector-item.avatar img { border-radius: 50%; }
.selector-item-copy { min-width: 0; }
.selector-item-copy strong, .selector-item-copy span { display: block; }
.selector-item-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; }
.selector-item-copy span { margin-top: 3px; color: var(--text-muted); font-size: 11px; }
.selector-item.selected { background: var(--brand-soft); }
.selector-item input { accent-color: var(--brand); }
.confirm-dialog-copy { color: var(--text-secondary); line-height: 1.7; }
.confirm-dialog-copy strong { color: var(--text); }
.preview-modal-frame { overflow: hidden; background: #f3f5f8; border: 1px solid var(--border); border-radius: 7px; }
.preview-modal-frame .mini-browser-bar { border-bottom: 1px solid #d9dee6; }
.preview-modal-body { min-height: 440px; padding: 24px; }

.toast-stack { position: fixed; z-index: 120; top: 72px; right: 22px; display: grid; gap: 9px; }
.toast { min-width: 280px; max-width: 420px; display: flex; align-items: flex-start; gap: 9px; padding: 12px 14px; color: var(--text); background: #fff; border: 1px solid var(--border); border-left: 4px solid var(--success); border-radius: 6px; box-shadow: var(--shadow-md); animation: toast-in .2s ease; }
.toast.warning { border-left-color: var(--warning); }
.toast.error { border-left-color: var(--danger); }
.toast i { font-style: normal; }
.toast span { color: var(--text-secondary); font-size: 12px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1320px) {
  .editor-layout { grid-template-columns: 160px minmax(590px,1fr) 300px; gap: 14px; padding-inline: 18px; }
  .home-studio { grid-template-columns: minmax(0,1fr) 330px; }
  .filter-bar { grid-template-columns: minmax(200px,1.3fr) repeat(3,minmax(130px,.8fr)) auto; }
}

/* 业务协同：专家咨询与 OPC 合作 */
.secondary-nav { margin-top: 0; }
.nav-item .nav-count {
  min-width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  padding: 0 5px;
  color: #fff;
  background: #e99b17;
  border-radius: 9px;
  font-size: 10px;
  line-height: 1;
}
.nav-item .nav-count.danger { background: #d54941; }
.nav-item.active .nav-count { color: var(--brand); background: #fff; }
body.sidebar-collapsed .nav-count { position: absolute; top: 5px; right: 5px; min-width: 15px; height: 15px; font-size: 9px; }
body.sidebar-collapsed .nav-item { position: relative; }

.ops-page .page-description { max-width: 820px; }
.ops-guidance {
  min-height: 78px;
  display: grid;
  grid-template-columns: 34px minmax(360px, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  padding: 14px 16px;
  color: #244264;
  background: linear-gradient(90deg, #edf6ff 0%, #f7fbff 72%, #ffffff 100%);
  border: 1px solid #cfe3fa;
  border-radius: var(--radius);
}
.ops-guidance-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--brand);
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 16px;
  font-weight: 700;
}
.ops-guidance strong { display: block; margin-bottom: 3px; color: #123a67; font-size: 13px; }
.ops-guidance p { margin: 0; color: #4f6680; font-size: 12px; }
.ops-guidance-flow { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.ops-guidance-flow span { padding: 5px 8px; color: #2c5d91; background: rgba(255,255,255,.9); border: 1px solid #d6e7f8; border-radius: 4px; font-size: 11px; }
.ops-guidance-flow b { color: #8badcf; font-weight: 400; }

.ops-metric { position: relative; overflow: hidden; }
.ops-metric::after { position: absolute; top: 0; right: 0; width: 5px; height: 100%; background: #d9e1ea; content: ""; }
.ops-metric.blue::after { background: var(--brand); }
.ops-metric.orange::after { background: var(--warning); }
.ops-metric.green::after { background: var(--success); }
.ops-metric.red::after { background: var(--danger); }
.ops-panel-head { align-items: flex-start; min-height: 64px; padding-top: 12px; padding-bottom: 9px; }
.ops-status-tabs { flex-wrap: wrap; row-gap: 4px; }
.ops-record-count { padding-top: 8px; color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.ops-filter-bar { grid-template-columns: minmax(250px, 1.55fr) repeat(3, minmax(150px, .8fr)) auto; }
.ops-filter-keyword { min-width: 240px; }
.ops-checkbox-filter { min-width: 132px; }
.ops-check { min-height: 38px; display: inline-flex; align-items: center; gap: 8px; color: var(--text-secondary); cursor: pointer; font-size: 12px; }
.ops-check input { position: absolute; opacity: 0; pointer-events: none; }
.ops-check i { width: 16px; height: 16px; display: inline-grid; place-items: center; background: #fff; border: 1px solid var(--border-strong); border-radius: 3px; font-style: normal; }
.ops-check input:checked + i { background: var(--brand); border-color: var(--brand); }
.ops-check input:checked + i::after { color: #fff; content: "✓"; font-size: 11px; line-height: 1; }

.ops-data-table { min-width: 1320px; }
.ops-data-table th, .ops-data-table td { padding-top: 12px; padding-bottom: 12px; }
.ops-data-table tr.ops-row-alert { background: #fffaf7; }
.ops-data-table tr.ops-row-alert:hover { background: #fff6f1; }
.object-cell.compact { min-width: 190px; }
.object-cell.compact img { width: 36px; height: 36px; flex-basis: 36px; }
.object-cell.compact .object-copy strong { max-width: 175px; }
.ops-id-cell, .ops-person-cell, .ops-topic-cell, .ops-time-cell { min-width: 0; }
.ops-id-cell strong, .ops-id-cell span, .ops-person-cell strong, .ops-person-cell span, .ops-topic-cell strong, .ops-topic-cell span, .ops-time-cell strong, .ops-time-cell span { display: block; }
.ops-id-cell { min-width: 150px; }
.ops-id-cell strong { font-size: 12px; font-weight: 600; }
.ops-id-cell span, .ops-person-cell span, .ops-time-cell span { margin-top: 3px; color: var(--text-muted); font-size: 10px; white-space: nowrap; }
.ops-id-cell em { display: inline-block; margin-top: 5px; padding: 1px 6px; color: var(--danger); background: var(--danger-soft); border-radius: 8px; font-size: 10px; font-style: normal; }
.ops-person-cell { min-width: 145px; }
.ops-person-cell strong { font-weight: 500; }
.ops-person-cell span { max-width: 180px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ops-topic-cell { min-width: 230px; max-width: 300px; }
.ops-topic-cell strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 500; }
.ops-topic-cell span { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.ops-topic-cell i { padding: 1px 6px; color: var(--text-secondary); background: #f1f4f7; border-radius: 3px; font-size: 10px; font-style: normal; }
.ops-topic-cell i.urgent { color: var(--danger); background: var(--danger-soft); }
.ops-subtext { display: block; margin-top: 4px; color: var(--text-muted); font-size: 10px; }
.ops-time-cell { min-width: 110px; }
.ops-time-cell strong { color: var(--text-secondary); font-size: 12px; font-weight: 500; }
.ops-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 2px 9px 2px 4px;
  color: #4f5e70;
  background: #f2f4f7;
  border: 1px solid #e1e5ea;
  border-radius: 13px;
  font-size: 11px;
  white-space: nowrap;
}
.ops-status-pill i { width: 19px; height: 19px; display: grid; place-items: center; color: #fff; background: #8995a5; border-radius: 50%; font-size: 9px; font-style: normal; }
.ops-status-pill.blue { color: var(--brand-deep); background: var(--brand-soft); border-color: #cfe1ff; }
.ops-status-pill.blue i { background: var(--brand); }
.ops-status-pill.orange { color: #9b6500; background: var(--warning-soft); border-color: #f2d89f; }
.ops-status-pill.orange i { background: var(--warning); }
.ops-status-pill.green { color: #1f7a57; background: var(--success-soft); border-color: #c8eadc; }
.ops-status-pill.green i { background: var(--success); }
.ops-status-pill.purple { color: #6846a7; background: #f3effd; border-color: #ded2f5; }
.ops-status-pill.purple i { background: #7655bd; }
.ops-status-pill.red { color: var(--danger); background: var(--danger-soft); border-color: #efc7c4; }
.ops-status-pill.red i { background: var(--danger); }
.ops-status-pill.dark { color: #fff; background: #2f3b4c; border-color: #2f3b4c; }
.ops-status-pill.dark i { color: #2f3b4c; background: #fff; }
.ops-status-pill.gray { color: #687485; background: #f4f5f7; border-color: #e0e3e8; }
.ops-owner-chip { display: inline-flex; align-items: center; min-height: 23px; padding: 2px 8px; border-radius: 11px; font-size: 11px; white-space: nowrap; }
.ops-owner-chip.red { color: var(--danger); background: var(--danger-soft); }
.ops-owner-chip.blue { color: var(--brand); background: var(--brand-soft); }
.ops-owner-chip.green { color: #1f8d60; background: var(--success-soft); }
.ops-owner-chip.gray { color: var(--text-muted); background: #f1f3f6; }
.ops-attention { display: inline-flex; padding: 2px 7px; color: #4d7b64; background: #eef7f2; border-radius: 3px; font-size: 10px; }
.ops-attention.warning { color: #9d6900; background: var(--warning-soft); }
.ops-attention.danger { color: var(--danger); background: var(--danger-soft); }

.modal.xlarge { width: min(1180px, calc(100vw - 72px)); }
.ops-modal { max-height: calc(100vh - 32px); border-radius: 10px; }
.ops-modal-backdrop { padding: 16px; }
.ops-detail-head { min-height: 76px; padding-inline: 22px; }
.ops-detail-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.ops-detail-title-line h2 { max-width: 720px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ops-overdue-label { padding: 2px 7px; color: var(--danger); background: var(--danger-soft); border-radius: 3px; font-size: 10px; }
.ops-detail-body { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 18px; padding: 18px; background: #f4f6f9; }
.ops-detail-main { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.ops-action-rail { display: flex; flex-direction: column; gap: 12px; align-self: start; position: sticky; top: 0; }
.ops-detail-card, .ops-rail-card, .ops-current-card { background: #fff; border: 1px solid var(--border); border-radius: 7px; box-shadow: var(--shadow-sm); }
.ops-detail-card { padding: 16px; }
.ops-detail-card > header, .ops-rail-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.ops-detail-card > header h3, .ops-rail-card > header h4 { margin: 0; font-size: 14px; font-weight: 600; }
.ops-detail-card > header span, .ops-rail-card > header span { color: var(--text-muted); font-size: 10px; }
.ops-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 22px; }
.ops-field { min-width: 0; }
.ops-field.full { grid-column: 1 / -1; }
.ops-field > span, .ops-schedule-card span { display: block; margin-bottom: 4px; color: var(--text-muted); font-size: 10px; }
.ops-field > strong { display: block; color: var(--text); font-size: 12px; font-weight: 500; line-height: 1.65; }
.ops-field > strong.normal { color: var(--text-secondary); font-weight: 400; white-space: pre-line; }
.ops-empty-inline { padding: 13px; color: var(--text-muted); background: #f7f8fa; border: 1px dashed #d8dde5; border-radius: 5px; font-size: 11px; text-align: center; }
.ops-empty-inline.large { padding-block: 24px; }
.ops-subsection { margin-top: 15px; padding-top: 14px; border-top: 1px solid #edf0f3; }
.ops-subsection > strong { display: block; margin-bottom: 9px; font-size: 12px; }
.ops-caption { margin: 9px 0 0; color: var(--text-muted); font-size: 10px; }

.ops-stepper { display: flex; align-items: flex-start; padding: 14px 18px; background: #fff; border: 1px solid var(--border); border-radius: 7px; box-shadow: var(--shadow-sm); }
.ops-step { width: 88px; flex: 0 0 88px; display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--text-muted); text-align: center; }
.ops-step i { width: 26px; height: 26px; display: grid; place-items: center; background: #edf0f4; border: 1px solid #dce1e7; border-radius: 50%; font-size: 10px; font-style: normal; }
.ops-step span { font-size: 10px; }
.ops-step.done { color: var(--success); }
.ops-step.done i { color: #fff; background: var(--success); border-color: var(--success); }
.ops-step.active { color: var(--brand); font-weight: 500; }
.ops-step.active i { color: #fff; background: var(--brand); border-color: var(--brand); box-shadow: 0 0 0 4px rgba(0,82,217,.10); }
.ops-step-line { height: 1px; flex: 1; margin-top: 13px; background: #dce1e7; }
.ops-stepper.closed .ops-step.active { color: var(--danger); }
.ops-stepper.closed .ops-step.active i { background: var(--danger); border-color: var(--danger); box-shadow: 0 0 0 4px rgba(213,73,65,.10); }

.ops-schedule-card { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 14px; background: #f7faff; border: 1px solid #dce9fa; border-radius: 6px; }
.ops-schedule-card strong { font-size: 12px; }
.ops-schedule-card p { grid-column: 1 / -1; margin: 0; padding-top: 10px; color: var(--text-secondary); border-top: 1px solid #e6edf6; font-size: 11px; }
.ops-profile-card { display: flex; align-items: center; gap: 10px; }
.ops-profile-card img { width: 45px; height: 45px; flex: 0 0 45px; object-fit: cover; background: #eef2f6; border: 1px solid var(--border); border-radius: 50%; }
.ops-profile-card > div { min-width: 0; }
.ops-profile-card strong, .ops-profile-card span, .ops-profile-card em { display: block; }
.ops-profile-card strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; font-weight: 600; }
.ops-profile-card span { margin-top: 2px; color: var(--text-secondary); font-size: 10px; }
.ops-profile-card em { margin-top: 4px; color: var(--text-muted); font-size: 9px; font-style: normal; }
.ops-current-card { position: relative; overflow: hidden; padding: 15px; }
.ops-current-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: #8d99aa; content: ""; }
.ops-current-card.blue::before { background: var(--brand); }
.ops-current-card.orange::before { background: var(--warning); }
.ops-current-card.green::before { background: var(--success); }
.ops-current-card.purple::before { background: #7655bd; }
.ops-current-card.red::before { background: var(--danger); }
.ops-current-card.dark::before { background: #2f3b4c; }
.ops-current-card > span { color: var(--text-muted); font-size: 10px; }
.ops-current-card > strong { display: block; margin-top: 5px; font-size: 13px; line-height: 1.5; }
.ops-current-card > p { display: flex; align-items: center; justify-content: space-between; margin: 11px 0 0; padding-top: 10px; color: var(--text-secondary); border-top: 1px solid #edf0f3; font-size: 10px; }
.ops-rail-card { padding: 14px; }
.ops-rail-card > p { margin: 9px 0 0; color: var(--text-secondary); font-size: 10px; line-height: 1.65; }
.ops-action-card .button.block { width: 100%; margin-top: 8px; }
.ops-action-card .button.block:first-of-type { margin-top: 0; }
.button.block { width: 100%; }
.ops-points-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0 6px; }
.ops-points-row strong { color: var(--warning); font-size: 24px; }
.ops-points-row small { margin-left: 3px; font-size: 10px; }
.ops-points-status { padding: 3px 8px; color: #9d6900; background: var(--warning-soft); border-radius: 10px; font-size: 10px; }
.ops-boundary-note { padding: 12px; color: #677487; background: #eef1f5; border-radius: 6px; font-size: 10px; line-height: 1.6; }
.ops-boundary-note strong, .ops-boundary-note span { display: block; }
.ops-boundary-note strong { margin-bottom: 4px; color: #38475a; }

.ops-timeline { position: relative; }
.ops-timeline-item { position: relative; display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: 10px; padding-bottom: 16px; }
.ops-timeline-item:last-child { padding-bottom: 0; }
.ops-timeline-item::before { position: absolute; top: 9px; bottom: -2px; left: 5px; width: 1px; background: #dfe4ea; content: ""; }
.ops-timeline-item:last-child::before { display: none; }
.ops-timeline-item > i { z-index: 1; width: 11px; height: 11px; margin-top: 4px; background: #b7c0cc; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #cfd5dc; }
.ops-timeline-item.latest > i { background: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.ops-timeline-item time, .ops-timeline-item strong, .ops-timeline-item span { display: block; }
.ops-timeline-item time { margin-bottom: 2px; color: var(--text-muted); font-size: 9px; }
.ops-timeline-item strong { font-size: 11px; font-weight: 600; }
.ops-timeline-item span { margin-top: 3px; color: var(--text-secondary); font-size: 10px; line-height: 1.5; }
.ops-note-list { display: flex; flex-direction: column; gap: 8px; }
.ops-note { padding: 10px 11px; background: #fafbfc; border: 1px solid #e8ebef; border-radius: 5px; }
.ops-note strong { font-size: 10px; }
.ops-note time { margin-left: 8px; color: var(--text-muted); font-size: 9px; }
.ops-note p { margin: 5px 0 0; color: var(--text-secondary); font-size: 10px; line-height: 1.55; }

.ops-party-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ops-party-card { padding: 13px; background: #fafbfc; border: 1px solid #e5e9ee; border-radius: 6px; }
.ops-party-card > span { display: block; margin-bottom: 7px; color: var(--text-muted); font-size: 9px; }
.ops-party-card > strong { display: block; font-size: 13px; }
.ops-party-card > p { margin: 4px 0 12px; color: var(--text-secondary); font-size: 10px; }
.ops-party-card dl { display: grid; grid-template-columns: 55px minmax(0, 1fr); gap: 6px; margin: 0; padding-top: 10px; border-top: 1px solid #e6e9ed; }
.ops-party-card dt { color: var(--text-muted); font-size: 9px; }
.ops-party-card dd { margin: 0; font-size: 10px; }
.ops-proof-summary { margin-bottom: 12px; padding: 12px; color: #3e5f4f; background: #f0f8f4; border: 1px solid #d2eadc; border-radius: 5px; }
.ops-proof-summary span { display: block; margin-bottom: 4px; color: #6b8878; font-size: 9px; }
.ops-proof-summary p { margin: 0; font-size: 11px; line-height: 1.6; }
.ops-file-list { display: flex; flex-direction: column; gap: 7px; }
.ops-file { min-height: 38px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 9px; background: #f8f9fb; border: 1px solid #e4e8ed; border-radius: 4px; }
.ops-file > i { display: grid; place-items: center; width: 24px; height: 24px; color: var(--brand); background: var(--brand-soft); border-radius: 4px; font-style: normal; }
.ops-file > span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; }
.ops-file > button { padding: 0; color: var(--brand); background: transparent; border: 0; font-size: 10px; }
.ops-dispute-card { border-color: #efc9c6; }
.ops-dispute-card > header { margin: -16px -16px 14px; padding: 12px 16px; background: var(--danger-soft); border-bottom: 1px solid #efc9c6; border-radius: 7px 7px 0 0; }
.ops-dispute-card > header h3 { color: var(--danger); }
.ops-rating-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ops-rating-card { padding: 12px; background: #fffaf0; border: 1px solid #f0dfb8; border-radius: 5px; }
.ops-rating-card > span { color: var(--text-muted); font-size: 9px; }
.ops-rating-card > strong { display: block; margin-top: 4px; color: #e6a100; letter-spacing: 1px; }
.ops-rating-card > p { margin: 7px 0 0; color: var(--text-secondary); font-size: 10px; }
.ops-confirm-result { display: inline-flex; margin: 0 !important; padding: 3px 8px; color: #1f8d60 !important; background: var(--success-soft); border-radius: 10px; font-weight: 500; }

.ops-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ops-form-grid .field { display: flex; flex-direction: column; gap: 6px; }
.ops-form-grid .field.full, .ops-form-grid .ops-check.full { grid-column: 1 / -1; }
.ops-form-grid .field > span { color: var(--text-secondary); font-size: 12px; }
.ops-form-grid .field > span b { color: var(--danger); }

@media (max-width: 1450px) {
  .ops-guidance { grid-template-columns: 34px minmax(320px,1fr); }
  .ops-guidance-flow { grid-column: 2; justify-self: start; }
  .ops-filter-bar { grid-template-columns: minmax(220px,1.4fr) repeat(3,minmax(135px,.8fr)) auto; }
}

/* 业务订单补充交互 */
.compact-field { display: grid; gap: 6px; margin-top: 14px; }
.compact-field .field-title { color: var(--text-muted); font-size: 11px; }
.review-text .badge { margin-bottom: 4px; }
.rules-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rules-flow article { min-height: 152px; display: flex; align-items: flex-start; gap: 11px; padding: 15px; background: #fafbfc; border: 1px solid #e4e8ee; border-radius: 7px; }
.rules-flow article > i { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; color: #fff; background: var(--brand); border-radius: 50%; font-size: 12px; font-style: normal; font-weight: 700; }
.rules-flow strong { display: block; font-size: 13px; }
.rules-flow p { margin: 7px 0 0; color: var(--text-secondary); font-size: 11px; line-height: 1.7; }
.workflow-detail-side .field-block { margin-top: 14px; }
.workflow-table .badge { white-space: nowrap; }
.workflow-table .topic-cell span { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.workflow-table .review-text { min-width: 100px; }
.workflow-detail-summary .badge { flex: 0 0 auto; }

@media (max-width: 1320px) {
  .rules-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* V4：首页社区新闻、用户申请与签约进度 */
.button:disabled,
.table-actions button:disabled,
.news-config-actions button:disabled {
  cursor: not-allowed;
  opacity: .45;
  pointer-events: none;
}

.home-section-tabs { overflow-x: auto; }
.home-section-tab { min-width: 108px; }

.news-config-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 20px 0 10px;
}
.news-config-head strong,
.news-config-head span { display: block; }
.news-config-head strong { font-size: 13px; }
.news-config-head span { margin-top: 3px; color: var(--text-muted); font-size: 11px; }
.news-config-list { overflow: hidden; border: 1px solid var(--border); border-radius: 6px; }
.news-config-row {
  display: grid;
  grid-template-columns: 30px 32px 72px minmax(260px,1fr) auto auto;
  align-items: center;
  gap: 10px;
  min-height: 86px;
  padding: 10px 12px;
  background: #fff;
  border-bottom: 1px solid #edf0f3;
}
.news-config-row:last-child { border-bottom: 0; }
.news-config-row.dragging { opacity: .45; background: var(--brand-soft); }
.news-config-row.is-hidden { background: #fafbfc; }
.news-order { display: grid; place-items: center; width: 28px; height: 28px; color: var(--brand); background: var(--brand-soft); border-radius: 4px; font-size: 11px; font-weight: 600; }
.news-config-cover { width: 70px; height: 50px; overflow: hidden; display: grid; place-items: center; color: var(--text-muted); background: #edf1f6; border: 1px solid var(--border); border-radius: 5px; font-size: 10px; }
.news-config-cover img { width: 100%; height: 100%; object-fit: cover; }
.news-config-cover.empty { border-style: dashed; }
.news-config-copy { min-width: 0; }
.news-config-copy > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
.news-config-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; font-weight: 600; }
.news-config-copy p { margin: 5px 0 0; overflow: hidden; color: var(--text-secondary); font-size: 11px; line-height: 1.5; white-space: nowrap; text-overflow: ellipsis; }
.news-config-copy small { display: block; margin-top: 5px; overflow: hidden; color: var(--text-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.news-tag { flex: 0 0 auto; padding: 2px 7px; color: var(--brand); background: var(--brand-soft); border-radius: 3px; font-size: 10px; }
.news-config-state { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.news-config-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px 10px; max-width: 150px; }
.news-config-actions button { padding: 0; color: var(--brand); background: transparent; border: 0; font-size: 11px; }
.news-config-actions button.remove { color: var(--danger); }

.mini-feature-layout { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(105px, .9fr); align-items: stretch; background: #f6f8fb; border-bottom: 1px solid #e5e9ef; }
.mini-feature-layout.single { grid-template-columns: 1fr; }
.mini-parks-section { min-width: 0; border-bottom: 0; }
.mini-news-panel { min-width: 0; margin: 12px 10px 12px 0; overflow: hidden; background: #fff; border: 1px solid #e0e5eb; border-radius: 6px; }
.mini-news-head { padding: 9px 9px 7px; border-bottom: 1px solid #edf0f3; }
.mini-news-head strong,
.mini-news-head span { display: block; }
.mini-news-head strong { font-size: 9px; }
.mini-news-head span { margin-top: 3px; color: #7e8998; font-size: 6px; line-height: 1.45; }
.mini-news-list { display: flex; flex-direction: column; }
.mini-news-item { width: 100%; padding: 7px 8px; color: inherit; background: #fff; border: 0; border-bottom: 1px solid #edf0f3; text-align: left; cursor: pointer; }
.mini-news-item:last-child { border-bottom: 0; }
.mini-news-item:hover,
.mini-news-item:focus-visible,
.mini-news-item.active { background: #f7f9fc; outline: 0; }
.mini-news-title { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 5px; }
.mini-news-title span { padding: 2px 4px; color: var(--brand); background: var(--brand-soft); border-radius: 2px; font-size: 6px; white-space: nowrap; }
.mini-news-title strong { overflow: hidden; color: #26334a; font-size: 7px; line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; }
.mini-news-expanded { max-height: 0; overflow: hidden; opacity: 0; transform: translateY(-2px); transition: max-height .2s ease, opacity .2s ease, transform .2s ease; }
.mini-news-item.active .mini-news-expanded { max-height: 170px; margin-top: 6px; opacity: 1; transform: translateY(0); }
.mini-news-expanded img { width: 100%; height: 52px; display: block; margin-bottom: 5px; object-fit: cover; border-radius: 3px; }
.mini-news-expanded p { margin: 0; color: #7a8697; font-size: 6px; line-height: 1.55; }
.mini-news-expanded time { display: block; margin-top: 5px; color: #9aa3af; font-size: 6px; }
.mini-news-empty { padding: 14px 8px; color: var(--text-muted); font-size: 8px; text-align: center; }

.application-filter { grid-template-columns: minmax(220px, 1.4fr) repeat(5, minmax(128px, .78fr)) auto; }
.application-row { background: #fbfdff; }
.application-row:hover { background: #f5f9ff !important; }
.source-progress { min-width: 92px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.source-progress small { color: var(--text-muted); font-size: 9px; white-space: nowrap; }

.application-editor-banner {
  max-width: 1600px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 18px auto 0;
  padding: 14px 18px;
  background: #fff8e8;
  border: 1px solid #f0d59b;
  border-left: 4px solid var(--warning);
  border-radius: 7px;
}
.application-editor-banner.signed { background: #eff9f4; border-color: #c8e7d7; border-left-color: var(--success); }
.application-editor-banner.closed { background: #fff3f2; border-color: #efc9c6; border-left-color: var(--danger); }
.application-banner-title { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.application-banner-title strong { margin-left: 3px; font-size: 13px; font-weight: 600; }
.application-editor-banner p { margin: 6px 0 0; color: var(--text-secondary); font-size: 11px; }
.application-banner-actions { flex: 0 0 auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.application-modal-title { display: flex; align-items: center; gap: 10px; }
.application-modal-title h2 { margin: 0; }
.application-readonly-note { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; padding: 12px 14px; color: #41536a; background: #f1f6fc; border: 1px solid #dce8f6; border-radius: 6px; }
.application-readonly-note strong { flex: 0 0 auto; font-size: 12px; }
.application-readonly-note span { font-size: 11px; line-height: 1.65; }
.application-section { margin-top: 14px; padding: 15px; background: #fff; border: 1px solid var(--border); border-radius: 7px; }
.application-section:first-of-type { margin-top: 0; }
.application-section > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.application-section > header h3 { margin: 0; font-size: 13px; }
.application-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.application-info-field { min-width: 0; padding: 10px 11px; background: #fafbfc; border: 1px solid #edf0f3; border-radius: 5px; }
.application-info-field.full { grid-column: 1 / -1; }
.application-info-field span,
.application-info-field strong { display: block; }
.application-info-field span { color: var(--text-muted); font-size: 10px; }
.application-info-field strong { margin-top: 5px; overflow: hidden; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.application-info-field strong.normal { font-weight: 400; line-height: 1.7; white-space: normal; }
.application-files { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.application-files button { min-width: 0; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px 10px; color: var(--text); background: #f8f9fb; border: 1px solid #e4e8ed; border-radius: 5px; text-align: left; }
.application-files button i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--brand); background: var(--brand-soft); border-radius: 4px; font-style: normal; }
.application-files button span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 11px; }
.application-files button em { color: var(--brand); font-size: 10px; font-style: normal; }
.application-timeline { position: relative; }
.application-timeline-item { position: relative; display: grid; grid-template-columns: 14px minmax(0,1fr); gap: 10px; padding-bottom: 14px; }
.application-timeline-item:last-child { padding-bottom: 0; }
.application-timeline-item::before { position: absolute; top: 11px; bottom: -2px; left: 5px; width: 1px; background: #dfe4ea; content: ""; }
.application-timeline-item:last-child::before { display: none; }
.application-timeline-item > i { z-index: 1; width: 11px; height: 11px; margin-top: 4px; background: #b9c2ce; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #cfd5dc; }
.application-timeline-item.latest > i { background: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.application-timeline-item time { display: block; color: var(--text-muted); font-size: 9px; }
.application-timeline-item strong { display: block; margin-top: 2px; font-size: 11px; }
.application-timeline-item p { margin: 3px 0 0; color: var(--text-secondary); font-size: 10px; line-height: 1.55; }
.application-closed-reason,
.application-close-warning { margin: 14px 0; padding: 12px 14px; color: #7f3631; background: var(--danger-soft); border: 1px solid #efc9c6; border-radius: 6px; }
.application-closed-reason strong,
.application-close-warning strong { display: block; font-size: 12px; }
.application-closed-reason p,
.application-close-warning p { margin: 5px 0 0; font-size: 11px; line-height: 1.65; }

.ops-fixed-result { padding: 12px 14px; background: #fff6df; border: 1px solid #f2d598; border-radius: 6px; }
.ops-fixed-result strong,
.ops-fixed-result span { display: block; }
.ops-fixed-result strong { color: #936000; font-size: 11px; }
.ops-fixed-result span { margin-top: 4px; color: #6f5b2a; font-size: 12px; }
.ops-offline-note { display: flex; align-items: flex-start; gap: 11px; padding: 14px; color: #3f5874; background: #f2f7fd; border: 1px solid #dbe8f7; border-radius: 6px; }
.ops-offline-note > i { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; color: var(--brand); background: #fff; border-radius: 50%; font-style: normal; }
.ops-offline-note strong { display: block; font-size: 12px; }
.ops-offline-note p { margin: 5px 0 0; color: var(--text-secondary); font-size: 10px; line-height: 1.6; }

@media (max-width: 1500px) {
  .application-filter { grid-template-columns: minmax(220px,1.4fr) repeat(3,minmax(135px,.8fr)); }
  .news-config-row { grid-template-columns: 26px 30px 62px minmax(230px,1fr) auto; }
  .news-config-actions { grid-column: 4 / -1; max-width: none; justify-content: flex-start; padding-left: 0; }
}

@media (max-width: 1100px) {
  .application-editor-banner { margin-right: 18px; margin-left: 18px; align-items: flex-start; flex-direction: column; }
  .application-banner-actions { justify-content: flex-start; }
  .application-info-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mini-feature-layout { grid-template-columns: 1fr; }
  .mini-news-panel { margin: 0 12px 12px; }
}


/* =========================================================
   V5 · 首页社区新闻与入驻申请
   ========================================================= */
.news-config-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 10px;
}
.news-config-head > div { display: flex; flex-direction: column; gap: 2px; }
.news-config-head strong { font-size: 13px; }
.news-config-head span { color: var(--text-muted); font-size: 11px; }
.news-config-list { display: flex; flex-direction: column; gap: 8px; }
.news-config-row {
  min-height: 82px;
  display: grid;
  grid-template-columns: 20px 28px 82px minmax(260px, 1fr) 118px auto;
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 7px;
  box-shadow: 0 1px 2px rgba(21, 42, 70, .04);
  transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.news-config-row:hover { border-color: #b9cce7; box-shadow: 0 4px 14px rgba(34, 71, 116, .08); }
.news-config-row.dragging { opacity: .55; border-style: dashed; }
.news-config-row.is-hidden { opacity: .62; background: #f8f9fb; }
.news-config-row .drag-handle { color: #a9b2c0; cursor: grab; font-size: 16px; letter-spacing: -3px; }
.news-config-row .drag-handle:active { cursor: grabbing; }
.news-order { width: 26px; height: 26px; display: grid; place-items: center; color: var(--brand); background: var(--brand-soft); border-radius: 50%; font-size: 11px; font-weight: 700; }
.news-config-cover { width: 82px; height: 54px; overflow: hidden; display: grid; place-items: center; color: #9aa5b5; background: #f2f4f7; border: 1px dashed #cfd6df; border-radius: 5px; font-size: 10px; }
.news-config-cover img { width: 100%; height: 100%; object-fit: cover; }
.news-config-cover.empty { background: repeating-linear-gradient(135deg, #f7f9fb, #f7f9fb 8px, #eef2f6 8px, #eef2f6 16px); }
.news-config-copy { min-width: 0; }
.news-config-copy > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
.news-config-copy strong { min-width: 0; overflow: hidden; color: var(--text); white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.news-tag { flex: 0 0 auto; padding: 2px 6px; color: var(--brand); background: var(--brand-soft); border-radius: 3px; font-size: 10px; }
.news-config-copy p { margin: 5px 0 3px; overflow: hidden; color: var(--text-secondary); white-space: nowrap; text-overflow: ellipsis; font-size: 11px; }
.news-config-copy small { color: var(--text-muted); font-size: 10px; }
.news-config-state { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.news-config-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; max-width: 205px; }
.news-config-actions button { min-height: 27px; padding: 3px 7px; color: var(--text-secondary); background: #fff; border: 1px solid var(--border); border-radius: 4px; font-size: 10px; }
.news-config-actions button:hover { color: var(--brand); border-color: #b8cdf0; }
.news-config-actions button:disabled { opacity: .35; cursor: not-allowed; }
.news-config-actions button.remove:hover { color: var(--danger); border-color: #e8b9b5; }

.mini-feature-layout { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(240px, .92fr); gap: 12px; align-items: start; }
.mini-feature-layout.single { grid-template-columns: 1fr; }
.mini-news-panel { overflow: hidden; background: #fff; border: 1px solid #dfe4eb; border-radius: 9px; }
.mini-news-head { padding: 13px 14px 10px; border-bottom: 1px solid #eef1f5; }
.mini-news-head strong, .mini-news-head span { display: block; }
.mini-news-head strong { font-size: 12px; }
.mini-news-head span { margin-top: 2px; color: var(--text-muted); font-size: 8px; }
.mini-news-list { padding: 7px; }
.mini-news-item { width: 100%; display: block; padding: 7px 8px; color: inherit; background: transparent; border: 0; border-radius: 6px; text-align: left; }
.mini-news-item:hover, .mini-news-item.active { background: #f1f4fa; }
.mini-news-title { min-width: 0; display: flex; align-items: center; gap: 7px; }
.mini-news-title span { flex: 0 0 auto; padding: 1px 4px; color: var(--brand); background: var(--brand-soft); border-radius: 2px; font-size: 7px; }
.mini-news-title strong { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 9px; }
.mini-news-expanded { max-height: 0; overflow: hidden; opacity: 0; transform: translateY(-3px); transition: max-height .18s ease, opacity .18s ease, transform .18s ease, margin .18s ease; }
.mini-news-item.active .mini-news-expanded { max-height: 150px; margin-top: 7px; opacity: 1; transform: none; }
.mini-news-expanded img { width: 100%; max-height: 86px; display: block; object-fit: cover; border-radius: 4px; }
.mini-news-expanded p { margin: 6px 0 2px; color: var(--text-secondary); font-size: 8px; line-height: 1.55; }
.mini-news-expanded time { color: var(--text-muted); font-size: 7px; }
.mini-news-empty { padding: 20px 8px; color: var(--text-muted); font-size: 9px; text-align: center; }

.application-filter { grid-template-columns: minmax(220px, 1.4fr) repeat(5, minmax(125px, .72fr)) auto; }
.application-row { background: #fbfdff; }
.application-row:hover { background: #f5f9ff; }
.source-progress { min-width: 104px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.source-progress > div { display: flex; }
.source-progress small { color: var(--text-muted); font-size: 9px; white-space: nowrap; }
.table-actions button.primary-text { color: var(--brand); font-weight: 600; }

.application-editor-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 14px;
  padding: 13px 15px;
  background: #fff8e9;
  border: 1px solid #f0d69e;
  border-left: 4px solid var(--warning);
  border-radius: 7px;
}
.application-editor-banner.pending { background: #f2f7ff; border-color: #cdddf7; border-left-color: var(--brand); }
.application-editor-banner.signed { background: var(--success-soft); border-color: #c7e6d9; border-left-color: var(--success); }
.application-editor-banner.closed { background: var(--danger-soft); border-color: #edc9c6; border-left-color: var(--danger); }
.application-editor-banner > div:first-child { min-width: 0; }
.application-editor-banner p { margin: 5px 0 0; color: var(--text-secondary); font-size: 11px; }
.application-banner-title { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.application-banner-title strong { font-size: 12px; }
.application-banner-actions { flex: 0 0 auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }

.application-modal-title { display: flex; align-items: center; gap: 10px; }
.application-modal-title h2 { margin: 0; }
.application-modal-body { background: #f6f8fb; }
.application-status-summary { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; padding: 13px 14px; background: #eef5ff; border: 1px solid #cfe0fb; border-radius: 7px; }
.application-status-summary > i { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; color: #fff; background: var(--brand); border-radius: 50%; font-size: 11px; font-style: normal; font-weight: 700; }
.application-status-summary.approved { background: var(--success-soft); border-color: #c8e7da; }
.application-status-summary.approved > i { background: var(--success); }
.application-status-summary.rejected { background: var(--danger-soft); border-color: #edc8c5; }
.application-status-summary.rejected > i { background: var(--danger); }
.application-status-summary strong { display: block; font-size: 12px; }
.application-status-summary p { margin: 3px 0 0; color: var(--text-secondary); font-size: 11px; }
.application-readonly-note { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; padding: 9px 11px; color: #5c6d83; background: #fff; border: 1px solid var(--border); border-radius: 6px; font-size: 10px; }
.application-readonly-note strong { flex: 0 0 auto; color: var(--brand); }
.application-section { margin-top: 12px; padding: 15px; background: #fff; border: 1px solid var(--border); border-radius: 7px; }
.application-section:first-of-type { margin-top: 0; }
.application-section > header { margin-bottom: 12px; padding-bottom: 9px; border-bottom: 1px solid #eef1f4; }
.application-section > header h3 { margin: 0; font-size: 13px; }
.application-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px 22px; }
.application-info-field.full { grid-column: 1 / -1; }
.application-info-field span, .application-info-field strong { display: block; }
.application-info-field span { margin-bottom: 3px; color: var(--text-muted); font-size: 10px; }
.application-info-field strong { color: var(--text); font-size: 12px; font-weight: 500; line-height: 1.6; }
.application-info-field strong.normal { color: var(--text-secondary); font-weight: 400; white-space: pre-line; }
.application-files { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.application-files button { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 9px; color: var(--text); background: #f8fafc; border: 1px solid #e1e6ec; border-radius: 5px; text-align: left; }
.application-files button:hover { border-color: #b8cdf0; }
.application-files i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--brand); background: var(--brand-soft); border-radius: 4px; font-size: 9px; font-style: normal; }
.application-files span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 11px; }
.application-files em { color: var(--brand); font-size: 10px; font-style: normal; }
.application-closed-reason { margin-top: 12px; padding: 12px 14px; color: #7b3430; background: var(--danger-soft); border: 1px solid #edc8c5; border-radius: 6px; }
.application-closed-reason strong { font-size: 11px; }
.application-closed-reason p { margin: 4px 0 0; font-size: 11px; }
.application-timeline { position: relative; display: flex; flex-direction: column; gap: 12px; }
.application-timeline::before { position: absolute; top: 8px; bottom: 8px; left: 5px; width: 1px; background: #dce3eb; content: ""; }
.application-timeline-item { position: relative; display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 10px; }
.application-timeline-item > i { z-index: 1; width: 11px; height: 11px; margin-top: 4px; background: #fff; border: 2px solid #aeb9c7; border-radius: 50%; }
.application-timeline-item.latest > i { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.application-timeline-item time, .application-timeline-item strong, .application-timeline-item p { display: block; }
.application-timeline-item time { color: var(--text-muted); font-size: 9px; }
.application-timeline-item strong { margin-top: 1px; font-size: 11px; }
.application-timeline-item p { margin: 2px 0 0; color: var(--text-secondary); font-size: 10px; }
.application-close-warning, .application-approve-warning { margin-bottom: 14px; padding: 11px 12px; border-radius: 6px; }
.application-close-warning { color: #7c3732; background: var(--danger-soft); border: 1px solid #edc8c5; }
.application-approve-warning { color: #176b4a; background: var(--success-soft); border: 1px solid #c7e6d9; }
.application-close-warning strong, .application-approve-warning strong { display: block; font-size: 11px; }
.application-close-warning p, .application-approve-warning p { margin: 3px 0 0; font-size: 10px; }
.application-confirm-check { min-height: 42px; display: flex; align-items: center; gap: 9px; margin-bottom: 14px; padding: 9px 11px; background: #fff; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.application-confirm-check input { position: absolute; opacity: 0; }
.application-confirm-check i { width: 17px; height: 17px; flex: 0 0 17px; display: grid; place-items: center; background: #fff; border: 1px solid var(--border-strong); border-radius: 3px; font-style: normal; }
.application-confirm-check input:checked + i { background: var(--brand); border-color: var(--brand); }
.application-confirm-check input:checked + i::after { color: #fff; content: "✓"; font-size: 11px; }
.application-confirm-check span { font-size: 11px; }

.ops-fixed-result { padding: 11px 12px; color: #176b4a; background: var(--success-soft); border: 1px solid #c7e6d9; border-radius: 6px; }
.ops-fixed-result strong, .ops-fixed-result span { display: block; }
.ops-fixed-result strong { font-size: 11px; }
.ops-fixed-result span { margin-top: 3px; font-size: 10px; }
.ops-offline-note { display: flex; align-items: flex-start; gap: 10px; padding: 13px; color: #365473; background: #f3f7fc; border: 1px solid #d8e5f4; border-radius: 6px; }
.ops-offline-note > i { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; color: var(--brand); background: #fff; border: 1px solid #cfe0f5; border-radius: 50%; font-style: normal; }
.ops-offline-note strong { display: block; font-size: 11px; }
.ops-offline-note p { margin: 3px 0 0; color: #60758b; font-size: 10px; }

@media (max-width: 1360px) {
  .news-config-row { grid-template-columns: 18px 26px 68px minmax(220px, 1fr) 100px auto; gap: 8px; }
  .news-config-cover { width: 68px; height: 46px; }
  .application-filter { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
  .application-filter .filter-actions { grid-column: 1 / -1; }
}
