:root {
  --ops-bg: #f4f6f8;
  --ops-surface: #ffffff;
  --ops-sidebar: #101820;
  --ops-sidebar-soft: #19242e;
  --ops-ink: #18212a;
  --ops-muted: #66717d;
  --ops-line: #e1e6ea;
  --ops-line-strong: #cbd3da;
  --ops-green: #087a61;
  --ops-green-soft: #e8f5f1;
  --ops-blue: #2563a6;
  --ops-blue-soft: #eaf2fb;
  --ops-amber: #a15c05;
  --ops-amber-soft: #fff4df;
  --ops-red: #a83f3b;
  --ops-red-soft: #fcebea;
  --ops-violet: #6a55a1;
  --ops-violet-soft: #f0ecfa;
  --ops-shadow: 0 1px 2px rgba(18, 26, 33, .04), 0 8px 24px rgba(18, 26, 33, .035);
}

html, body { width: 100%; min-width: 0; background: var(--ops-bg); color: var(--ops-ink); }
body { overflow-x: hidden; }
.admin-shell { grid-template-columns: 252px minmax(0, 1fr); min-height: 100vh; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 18px 12px 12px; border: 0; background: var(--ops-sidebar); color: #fff; z-index: 30; overflow: hidden; }
.admin-brand { height: 48px; margin: 0 8px 15px; color: #fff; }
.admin-brand > span { width: 34px; height: 34px; background: #eef8f4; color: var(--ops-green); }
.admin-brand strong { font-size: 14px; }
.admin-brand small { margin-top: 2px; color: #8f9ba5; font-size: 10px; }
.admin-sidebar nav { min-height: 0; flex: 1; overflow-y: auto; padding: 0 3px 16px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #34414c transparent; }
.admin-sidebar nav p { margin: 15px 11px 5px; color: #6f7e8a; font-size: 10px; font-weight: 700; line-height: 1; }
/* 按可见模块隐藏入口。显式写出来，免得别的 display 规则盖过 UA 的 [hidden] */
.admin-sidebar nav button[hidden],
.admin-sidebar nav p[hidden] { display: none; }
.admin-sidebar nav button { width: 100%; min-height: 39px; margin: 1px 0; padding: 0 10px; border-radius: 6px; color: #aeb8c1; font-size: 12px; gap: 10px; }
.admin-sidebar nav button:hover { background: var(--ops-sidebar-soft); color: #fff; }
.admin-sidebar nav button.is-active { background: #eaf7f2; color: #076b56; }
.admin-sidebar nav button svg { width: 17px; height: 17px; }
.admin-sidebar nav button em { min-width: 21px; height: 19px; border: 0; border-radius: 9px; background: #31404b; color: #d9e0e5; font-size: 10px; }
.admin-sidebar nav button.is-active em { background: #cceade; color: #075f4d; }
.sidebar-foot { position: relative; min-height: 54px; margin-top: 8px; padding: 8px; border: 1px solid #293640; border-radius: 7px; background: #151f27; grid-template-columns: 32px minmax(0,1fr) 28px; flex: none; }
.sidebar-foot .operator-avatar { width: 32px; height: 32px; background: #dff2eb; color: #08715a; }
.sidebar-foot span:nth-child(2) { min-width: 0; }
.sidebar-foot strong { color: #eef3f6; font-size: 11px; }
.sidebar-foot small { color: #788793; font-size: 10.5px; }
.sidebar-foot > button { width: 28px; height: 28px; margin-left: auto; border: 0; background: transparent; color: #7e8b95; }
.sidebar-foot > button svg { width: 15px; }
.account-menu-panel { position: fixed; left: 12px; bottom: 78px; z-index: 70; width: 228px; padding: 7px; border: 1px solid #34414b; border-radius: 7px; background: #18232c; box-shadow: 0 14px 36px rgba(4,10,15,.3); }
.account-menu-panel > header { min-height: 48px; padding: 6px 8px 10px; border-bottom: 1px solid #2c3943; display: flex; flex-direction: column; gap: 4px; }
.account-menu-panel > header strong { color: #f2f6f8; font-size: 10px; }
.account-menu-panel > header small { color: #81909b; font-size: 10px; }
.account-menu-panel > button { width: 100%; min-height: 36px; padding: 0 8px; border: 0; border-radius: 5px; background: transparent; color: #c2ccd3; display: flex; align-items: center; gap: 8px; text-align: left; font-size: 9px; cursor: pointer; }
.account-menu-panel > button:hover { background: #24323c; color: #fff; }
.account-menu-panel > button svg { width: 14px; }
.account-menu-panel > button.is-danger { color: #efaaa6; }

.admin-main { min-width: 0; }
.admin-topbar { position: sticky; top: 0; z-index: 20; height: 64px; padding: 0 28px; border-bottom: 1px solid var(--ops-line); background: rgba(255,255,255,.92); backdrop-filter: blur(16px); }
.global-search { width: min(560px, 47vw); height: 38px; border-color: var(--ops-line); border-radius: 7px; box-shadow: 0 1px 2px rgba(18,26,33,.03); }
.global-search input { font-size: 11px; }
.global-search kbd { margin-right: 9px; padding: 2px 6px; border: 1px solid var(--ops-line); border-bottom-color: var(--ops-line-strong); border-radius: 4px; background: #f7f8f9; color: #87919a; font-family: inherit; font-size: 9px; }
.topbar-actions { gap: 8px; }
.topbar-actions .workspace-date { margin-right: 4px; color: var(--ops-muted); font-size: 10px; white-space: nowrap; }
.topbar-actions a, .topbar-actions button { height: 34px; border-color: var(--ops-line); border-radius: 6px; background: #fff; color: #4d5964; }
.topbar-actions a span { font-size: 10px; }
.server-status { height: 30px; border-color: var(--ops-line); background: #fbfcfc; font-size: 9px; }
.sidebar-toggle { display: none; }
.sidebar-backdrop { display: none; }

#adminRoot { width: min(100%, 1540px); padding: 34px 34px 72px; }
.page-head { min-height: 64px; align-items: flex-start; }
.page-head p { margin-bottom: 6px; color: var(--ops-green); font-size: 10px; font-weight: 750; }
.page-head h1 { font-size: 28px; line-height: 1.2; }
.page-head span { max-width: 760px; margin-top: 7px; color: var(--ops-muted); font-size: 11px; line-height: 1.6; }
.head-action { min-height: 38px; padding: 0 13px; border: 1px solid #0b715c; border-radius: 6px; background: #0b715c; color: #fff; font-size: 10px; }
.head-action svg { width: 15px; }

.executive-metrics, .segment-metrics, .species-overview, .community-pulse, .service-metrics, .credential-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; margin-top: 24px; border: 1px solid var(--ops-line); border-radius: 8px; background: var(--ops-surface); box-shadow: var(--ops-shadow); overflow: hidden; }
.executive-metrics article, .segment-metrics button, .species-overview article, .community-pulse article, .service-metrics article, .credential-metrics article { position: relative; min-height: 120px; padding: 19px 20px; border: 0; border-right: 1px solid var(--ops-line); background: transparent; text-align: left; }
.executive-metrics article:last-child, .segment-metrics button:last-child, .species-overview article:last-child, .community-pulse article:last-child, .service-metrics article:last-child, .credential-metrics article:last-child { border-right: 0; }
.executive-metrics span, .segment-metrics span, .species-overview span, .community-pulse span, .service-metrics span, .credential-metrics span { display: flex; align-items: center; justify-content: space-between; color: var(--ops-muted); font-size: 10px; }
.executive-metrics span svg { width: 16px; color: #9aa4ad; }
.executive-metrics strong, .segment-metrics strong, .species-overview strong, .community-pulse strong, .service-metrics strong, .credential-metrics strong { display: block; margin-top: 9px; font-size: 25px; font-variant-numeric: tabular-nums; }
.executive-metrics em { position: absolute; right: 20px; bottom: 20px; color: var(--ops-muted); font-size: 10.5px; font-style: normal; }
.executive-metrics em.is-up { color: var(--ops-green); }
.executive-metrics em svg { width: 12px; vertical-align: -2px; }
.executive-metrics small, .segment-metrics small, .species-overview small, .community-pulse small, .service-metrics small, .credential-metrics small { display: block; margin-top: 7px; color: #8b949c; font-size: 11px; }
.executive-metrics article.is-attention, .species-overview article.is-warning, .community-pulse article.is-warning, .credential-metrics article.is-warning { background: #fffbf3; }
.executive-metrics article.is-attention strong { color: var(--ops-amber); }

.ops-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(320px,.75fr); gap: 18px; margin-top: 18px; }
.trend-panel, .attention-panel, .business-health, .records-quality-grid > section, .journey-funnel, .line-chart-panel, .insight-list, .role-panel, .security-checks, .risk-queue-summary { border: 1px solid var(--ops-line); border-radius: 8px; background: var(--ops-surface); box-shadow: var(--ops-shadow); }
.panel-heading { min-height: 58px; padding: 14px 17px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; }
.panel-heading > div { display: flex; flex-direction: column; gap: 4px; }
.panel-heading strong { font-size: 12px; }
.panel-heading span { color: var(--ops-muted); font-size: 9px; }
.panel-heading button, .panel-heading em { border: 0; background: transparent; color: var(--ops-green); font-size: 10.5px; font-style: normal; cursor: pointer; }
.trend-summary { min-height: 150px; padding: 25px 18px 14px; display: grid; grid-template-columns: repeat(3, minmax(90px,1fr)) minmax(240px,1.4fr); gap: 18px; align-items: center; }
.trend-summary > div { display: flex; flex-direction: column; }
.trend-summary span { color: var(--ops-muted); font-size: 9px; }
.trend-summary strong { margin-top: 7px; font-size: 22px; }
.trend-summary small { margin-top: 5px; color: var(--ops-green); font-size: 11px; }
.compact-trend { width: 100%; height: 76px; overflow: visible; }
.trend-legend { min-height: 34px; padding: 0 18px; border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: 1.5fr repeat(7,1fr); align-items: center; color: #8b949c; font-size: 10px; }
.trend-legend span { color: #52606c; }
.trend-legend span i { width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--ops-green); display: inline-block; }
.trend-legend em { font-style: normal; text-align: center; }
.attention-panel { overflow: hidden; }
.attention-panel > button { width: 100%; min-height: 66px; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 34px minmax(0,1fr) 18px; gap: 9px; align-items: center; text-align: left; cursor: pointer; }
.attention-panel > button:last-child { border-bottom: 0; }
.attention-panel > button:hover { background: #f8fafb; }
.alert-icon { width: 32px; height: 32px; border-radius: 7px; display: grid; place-items: center; }
.alert-icon svg { width: 15px; }
.alert-icon.is-blue { background: var(--ops-blue-soft); color: var(--ops-blue); }
.alert-icon.is-amber { background: var(--ops-amber-soft); color: var(--ops-amber); }
.alert-icon.is-violet { background: var(--ops-violet-soft); color: var(--ops-violet); }
.alert-icon.is-red { background: var(--ops-red-soft); color: var(--ops-red); }
.attention-panel button > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; }
.attention-panel button strong { font-size: 10px; }
.attention-panel button small { color: var(--ops-muted); font-size: 10px; }
.attention-panel button > svg { width: 15px; color: #a3abb2; }

.dashboard-work-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(320px,.75fr); gap: 18px; margin-top: 24px; }
.dashboard-work-grid .focus-section { margin-top: 0; }
.business-health { overflow: hidden; }
.business-health > div:not(.section-title) { min-height: 48px; padding: 0 16px; border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) auto 62px; gap: 10px; align-items: center; }
.business-health > div > span { font-size: 9px; }
.business-health > div > span i { width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; display: inline-block; }
.business-health i.is-healthy, .system-health-strip i.is-healthy { background: #25a07e; }
.business-health i.is-warning, .system-health-strip i.is-warning { background: #d68a21; }
.business-health strong { font-size: 10px; font-variant-numeric: tabular-nums; }
.business-health em { color: var(--ops-muted); font-size: 10px; font-style: normal; text-align: right; }

.privacy-notice { min-height: 54px; margin-top: 14px; padding: 10px 15px; border: 1px solid #d8e7e2; border-radius: 7px; background: #f5fbf9; display: flex; gap: 10px; align-items: center; }
.privacy-notice.is-warning { background: #fffbf3; border-color: #ead8b9; }
.privacy-notice.is-warning > svg { color: #d68a21; }
.privacy-notice svg { width: 18px; color: var(--ops-green); }
.privacy-notice span { display: flex; flex-direction: column; gap: 3px; }
.privacy-notice strong { font-size: 10px; }
.privacy-notice small { color: var(--ops-muted); font-size: 11px; }
.segment-metrics button { cursor: pointer; }
.segment-metrics button:hover, .segment-metrics button.is-active { background: #f5faf8; }
.segment-metrics button.is-active::after { content: ""; position: absolute; inset: auto 18px 0; height: 3px; background: var(--ops-green); }

.data-panel { margin-top: 20px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; box-shadow: var(--ops-shadow); overflow: hidden; }
.data-toolbar { min-height: 58px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.data-toolbar > div:first-child { display: flex; align-items: baseline; gap: 8px; }
.data-toolbar strong { font-size: 12px; }
.data-toolbar span { color: var(--ops-muted); font-size: 9px; }
.table-filters { display: flex; gap: 3px; padding: 3px; border-radius: 6px; background: #f2f4f5; }
.table-filters:empty { display: none; }
.table-filters button { height: 27px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent; color: var(--ops-muted); font-size: 9px; cursor: pointer; }
.table-filters button.is-active { background: #fff; color: var(--ops-ink); box-shadow: 0 1px 3px rgba(18,26,33,.08); }
.table-scroll { overflow-x: auto; }
.admin-data-table { width: 100%; border-collapse: collapse; table-layout: auto; }
.admin-data-table th { height: 38px; padding: 0 14px; border-block: 1px solid var(--ops-line); background: #f8f9fa; color: #75808a; font-size: 9px; font-weight: 650; text-align: left; white-space: nowrap; }
.admin-data-table td { height: 58px; padding: 8px 14px; border-bottom: 1px solid var(--ops-line); color: #394550; font-size: 9px; line-height: 1.4; vertical-align: middle; }
.admin-data-table tbody tr:last-child td { border-bottom: 0; }
.admin-data-table tbody tr { cursor: pointer; }
.admin-data-table tbody tr:hover td { background: #f8fafb; }
.admin-data-table th:last-child, .admin-data-table td:last-child { width: 38px; padding-inline: 5px; }
/*
 * 反馈正文。
 * 2026-10-06：单元格默认 9px 灰字，反馈正文挤在一列很宽的表里几乎看不见
 * （运营就是这样"没看到"内容的）。正文是这张表最该一眼看到的东西，给它
 * 更深的颜色和一个略大的字号。
 */
.admin-data-table td .feedback-body { display: block; max-width: 420px; color: var(--ops-ink); font-size: 11px; font-weight: 500; line-height: 1.5; }
/* 详情抽屉里的全文：保留用户自己敲的换行 */
.feedback-full-body { white-space: pre-wrap; }
.feedback-attachment-list { display: flex; flex-wrap: wrap; gap: 10px; }
.feedback-attachment-list a { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border: 1px solid var(--ops-line); border-radius: 6px; color: var(--ops-green); font-size: 11px; text-decoration: none; }
.entity-primary { min-width: 190px; display: flex; align-items: center; gap: 9px; }
.entity-primary > span { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.entity-primary strong { max-width: 340px; overflow: hidden; color: var(--ops-ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.entity-primary small { color: var(--ops-muted); font-size: 10px; }
.avatar-dot, .pet-avatar, .content-kind, .course-icon, .ticket-icon, .order-icon, .medical-icon, .ai-icon, .job-icon { width: 30px; height: 30px; border-radius: 7px; background: #ecf2f0; color: var(--ops-green); display: grid; place-items: center; flex: none; font-size: 10px; font-style: normal; }
.pet-avatar { background: var(--ops-amber-soft); color: var(--ops-amber); }
.content-kind, .ticket-icon { background: var(--ops-blue-soft); color: var(--ops-blue); }
.course-icon, .ai-icon { background: var(--ops-violet-soft); color: var(--ops-violet); }
.order-icon { background: #eef3f5; color: #486575; }
.medical-icon { background: var(--ops-red-soft); color: var(--ops-red); }
.job-icon { background: #edf1f3; color: #4c606e; }
.entity-primary svg { width: 15px; }
.scientific-name { color: #495967; font-style: italic; }
.tabular { font-variant-numeric: tabular-nums; }
.cell-note { color: var(--ops-muted); font-size: 10px; }
.mini-progress { width: 76px; height: 5px; margin-right: 6px; border-radius: 3px; background: #e8ecef; display: inline-block; overflow: hidden; vertical-align: middle; }
.mini-progress i { height: 100%; border-radius: 3px; background: var(--ops-green); display: block; }
.entity-status { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border: 1px solid #d8e1de; border-radius: 5px; background: #f2f8f6; color: var(--ops-green); font-size: 10px; font-weight: 700; white-space: nowrap; }
.entity-status.is-review, .entity-status.is-attention, .entity-status.is-needs_info, .entity-status.is-escrow, .entity-status.is-warning, .entity-status.is-new { border-color: #ead8b9; background: var(--ops-amber-soft); color: var(--ops-amber); }
.entity-status.is-restricted, .entity-status.is-held, .entity-status.is-dispute, .entity-status.is-disabled, .entity-status.is-blocked { border-color: #efcac7; background: var(--ops-red-soft); color: var(--ops-red); }
.entity-status.is-changes_requested { border-color: #ead8b9; background: var(--ops-amber-soft); color: var(--ops-amber); }
.entity-status.is-limited, .entity-status.is-incomplete, .entity-status.is-unavailable, .entity-status.is-open { border-color: #d8dfe4; background: #f2f4f6; color: #687681; }
.entity-status.is-published, .entity-status.is-approved, .entity-status.is-resolved, .entity-status.is-healthy, .entity-status.is-active, .entity-status.is-preparing, .entity-status.is-contacted { border-color: #d8e8e2; background: var(--ops-green-soft); color: var(--ops-green); }
.row-more { width: 28px; height: 28px; border: 0; border-radius: 5px; background: transparent; color: #99a3ab; }
.row-more svg { width: 14px; }
.risk-number { color: var(--ops-red); font-weight: 750; }
.table-empty { height: 110px !important; color: var(--ops-muted) !important; text-align: center; }
.table-sort { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: inherit; cursor: pointer; }
.table-sort:hover { color: var(--ops-green); }
.table-footer { min-height: 38px; padding: 0 13px; border-top: 1px solid var(--ops-line); color: var(--ops-muted); display: flex; align-items: center; justify-content: space-between; font-size: 10px; }
.table-footer > div { display: flex; gap: 4px; }
.table-footer button { width: 25px; height: 25px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: #5a6873; display: grid; place-items: center; }
.table-footer button:disabled { opacity: .35; cursor: default; }
.table-footer button svg { width: 13px; }

.records-quality-grid, .analytics-grid, .system-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 18px; }
.records-quality-grid > section { padding-bottom: 10px; }
.bar-row { min-height: 36px; padding: 0 16px; display: grid; grid-template-columns: 90px minmax(0,1fr) 40px; gap: 10px; align-items: center; font-size: 9px; }
.bar-row i { height: 6px; border-radius: 3px; background: #edf0f2; overflow: hidden; }
.bar-row b { height: 100%; border-radius: 3px; background: var(--ops-green); display: block; }
.bar-row strong { font-size: 9px; text-align: right; }
.quality-row { min-height: 39px; padding: 0 16px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; }
.quality-row:last-child { border-bottom: 0; }
.quality-row span { font-size: 9px; }
.quality-row i { width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; display: inline-block; }
.quality-row i.is-healthy { background: #25a07e; }
.quality-row i.is-warning { background: #d68a21; }
.quality-row strong { font-size: 9px; }

.moderation-lanes, .commerce-guardrail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 18px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; overflow: hidden; }
.moderation-lanes > div, .commerce-guardrail > div { min-height: 80px; padding: 14px 16px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: center; }
.moderation-lanes > div:last-child, .commerce-guardrail > div:last-child { border-right: 0; }
.moderation-lanes svg, .commerce-guardrail svg { width: 18px; color: var(--ops-green); }
.moderation-lanes span, .commerce-guardrail span { display: flex; flex-direction: column; gap: 4px; }
.moderation-lanes strong, .commerce-guardrail strong { font-size: 10px; }
.moderation-lanes small, .commerce-guardrail small { color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.commerce-guardrail { grid-template-columns: repeat(4,minmax(0,1fr)); }
.community-pulse { margin-top: 18px; }
.community-ranking-panel { margin-top: 22px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.recommendation-governance-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.recommendation-governance-overview article { min-height: 92px; padding: 14px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: flex; flex-direction: column; gap: 4px; }
.recommendation-governance-overview article:nth-child(2) { background: #e8f4ef; }
.recommendation-governance-overview article:nth-child(3) { background: #f1f3f2; }
.recommendation-governance-overview article.is-warning { background: #fff3db; }
.recommendation-governance-overview span { color: var(--ops-muted); font-size: 10px; }
.recommendation-governance-overview strong { color: var(--ops-ink); font-size: 24px; line-height: 1.15; }
.recommendation-governance-overview small { color: var(--ops-muted); font-size: 10px; }
.community-ranking-panel > .section-title { min-height: 70px; padding: 0 18px; border-bottom: 1px solid var(--ops-line); }
.community-ranking-panel > .section-title > div { min-width: 0; }
.community-ranking-panel .head-action { min-height: 34px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; gap: 6px; font-size: 10px; cursor: pointer; }
.community-ranking-panel .head-action svg { width: 14px; }

@media (max-width: 900px) {
  .recommendation-governance-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ranking-empty { min-height: 70px; padding: 20px 18px; color: var(--ops-muted); font-size: 10px; }
.ranking-control-row { min-height: 68px; padding: 10px 18px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 30px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.ranking-control-row:last-child { border-bottom: 0; }
.ranking-control-mark { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; }
.ranking-control-row.is-boost .ranking-control-mark { background: #e5f3eb; color: #21744e; }
.ranking-control-row.is-deboost .ranking-control-mark { background: #fff0ed; color: #a24d40; }
.ranking-control-mark svg { width: 15px; }
.ranking-control-row > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ranking-control-row strong { font-size: 10px; }
.ranking-control-row small { color: var(--ops-muted); font-size: 10px; line-height: 1.4; }
.ranking-control-row button { min-height: 28px; padding: 0 8px; border: 1px solid var(--ops-line); border-radius: 4px; background: #fff; color: var(--ops-muted); font-size: 10px; cursor: pointer; }
.ranking-control-row em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.knowledge-release-bar { min-height: 102px; margin-top: 20px; padding: 0 22px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; display: grid; grid-template-columns: 1fr 28px 1fr 28px 1fr 28px 1fr; align-items: center; box-shadow: var(--ops-shadow); }
.knowledge-release-bar > div { display: flex; flex-direction: column; gap: 5px; }
.knowledge-release-bar > div span { color: var(--ops-muted); font-size: 9px; }
.knowledge-release-bar > div strong { font-size: 20px; }
.knowledge-release-bar > div small { color: #84909a; font-size: 10px; }
.knowledge-release-bar > svg { width: 15px; color: #b0b8bf; }
.compact-directory { margin-top: 18px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.dual-table-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.dual-table-grid .entity-primary { min-width: 150px; }
.medical-gates { min-height: 94px; margin-top: 20px; padding: 0 18px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; display: grid; grid-template-columns: 1fr 22px 1fr 22px 1fr 22px 1fr; align-items: center; }
.medical-gates > div { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 8px; align-items: center; }
.medical-gates > div > span { grid-row: 1 / 3; width: 29px; height: 29px; border-radius: 50%; background: var(--ops-red-soft); color: var(--ops-red); display: grid; place-items: center; font-size: 10px; }
.medical-gates strong { font-size: 10px; }
.medical-gates small { color: var(--ops-muted); font-size: 10px; }
.medical-gates > svg { width: 14px; color: #aab3ba; }

.analytics-controls { min-height: 50px; margin-top: 18px; display: flex; align-items: center; gap: 12px; }
.analytics-controls .filter-group { padding: 3px; border-radius: 6px; background: #e9edf0; }
.analytics-controls .filter-group button { height: 29px; padding: 0 10px; border: 0; border-radius: 4px; background: transparent; font-size: 9px; }
.analytics-controls .filter-group button.is-active { background: #fff; box-shadow: 0 1px 3px rgba(18,26,33,.1); }
.analytics-controls label { height: 35px; padding: 0 9px; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; display: flex; align-items: center; }
.analytics-controls label span { display: none; }
.analytics-controls select { border: 0; background: transparent; font-size: 9px; }
.data-freshness { margin-left: auto; color: var(--ops-muted); font-size: 10px; }
.data-freshness i { width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #25a07e; display: inline-block; }
.journey-funnel { overflow: hidden; }
.funnel-chart { padding: 18px 20px 12px; }
.funnel-chart > div { min-height: 39px; display: grid; grid-template-columns: 155px minmax(0,1fr) 90px; gap: 12px; align-items: center; }
.funnel-chart span { font-size: 9px; }
.funnel-chart i { width: var(--funnel); height: 27px; min-width: 60px; padding: 0 9px; border-radius: 4px; background: linear-gradient(90deg,#0b7760,#37a287); color: #fff; display: flex; align-items: center; font-style: normal; }
.funnel-chart b { font-size: 9px; }
.funnel-chart em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.chart-insight { min-height: 58px; margin: 0; padding: 11px 18px; border-top: 1px solid #dce9e5; background: #f6fbf9; display: flex; gap: 9px; align-items: center; }
.chart-insight > svg { width: 17px; color: var(--ops-green); }
.chart-insight span { display: flex; flex-direction: column; gap: 4px; }
.chart-insight strong { font-size: 9px; }
.chart-insight small { color: var(--ops-muted); font-size: 10px; }
.line-chart-panel { position: relative; padding-bottom: 12px; overflow: hidden; }
.line-chart-panel svg { width: calc(100% - 70px); height: 220px; margin: 12px 20px 0 50px; overflow: visible; }
.line-chart-panel svg path { fill: none; stroke: var(--ops-green); stroke-width: 4; stroke-linecap: round; }
.line-chart-panel svg circle { fill: #fff; stroke: var(--ops-green); stroke-width: 3; }
.chart-grid line { stroke: #e6eaed; stroke-width: 1; }
.line-chart-y { position: absolute; top: 85px; left: 14px; height: 183px; display: flex; flex-direction: column; justify-content: space-between; color: #8b949c; font-size: 10px; }
.chart-x { margin: 0 20px 0 50px; display: flex; justify-content: space-between; color: #8b949c; font-size: 10px; }
.insight-list { overflow: hidden; }
.insight-list article { min-height: 72px; padding: 12px 15px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 9px; align-items: center; }
.insight-list article:last-child { border-bottom: 0; }
.insight-list article > svg { width: 18px; color: var(--ops-amber); }
.insight-list article.is-good > svg { color: var(--ops-green); }
.insight-list article span { display: flex; flex-direction: column; gap: 5px; }
.insight-list article strong { font-size: 10px; }
.insight-list article small { color: var(--ops-muted); font-size: 10px; }

.risk-boundary-matrix { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.risk-boundary-matrix > div { min-height: 112px; padding: 16px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; display: flex; flex-direction: column; align-items: flex-start; }
.risk-boundary-matrix span { min-height: 23px; padding: 0 7px; border-radius: 4px; display: inline-flex; align-items: center; font-size: 10px; font-weight: 700; }
.risk-boundary-matrix span.is-auto { background: var(--ops-green-soft); color: var(--ops-green); }
.risk-boundary-matrix span.is-review { background: var(--ops-amber-soft); color: var(--ops-amber); }
.risk-boundary-matrix span.is-blocked { background: var(--ops-red-soft); color: var(--ops-red); }
.risk-boundary-matrix strong { margin-top: 11px; font-size: 10px; }
.risk-boundary-matrix small { margin-top: 6px; color: var(--ops-muted); font-size: 10px; }
.risk-queue-summary { margin-top: 18px; overflow: hidden; }
.risk-queue-summary > div:last-child { display: grid; grid-template-columns: repeat(4,1fr); }
.risk-queue-summary > div:last-child span { min-height: 82px; padding: 14px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 9px minmax(0,1fr); gap: 5px 9px; align-content: center; }
.risk-queue-summary > div:last-child span:last-child { border-right: 0; }
.risk-queue-summary span i { grid-row: 1/3; width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: #8c98a2; }
.risk-queue-summary span i.is-critical { background: var(--ops-red); }
.risk-queue-summary span i.is-high { background: var(--ops-amber); }
.risk-queue-summary span strong { font-size: 18px; }
.risk-queue-summary span small { color: var(--ops-muted); font-size: 10px; }

.system-health-strip { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 20px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; overflow: hidden; }
.system-health-strip > div { min-height: 72px; padding: 12px 15px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 9px minmax(0,1fr); gap: 9px; align-items: center; }
.system-health-strip > div:last-child { border-right: 0; }
.system-health-strip > div > i { width: 8px; height: 8px; border-radius: 50%; }
.system-health-strip span { display: flex; flex-direction: column; gap: 4px; }
.system-health-strip strong { font-size: 10px; }
.system-health-strip small { color: var(--ops-muted); font-size: 10px; }
.role-panel, .security-checks { overflow: hidden; }
.role-panel .panel-heading button { min-height: 28px; padding: 0 8px; border: 1px solid var(--ops-line); border-radius: 5px; }
.role-panel > div:not(.panel-heading) { min-height: 55px; padding: 8px 14px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 30px minmax(0,1fr) 40px 16px; gap: 9px; align-items: center; }
.role-panel > div:last-child { border-bottom: 0; }
.role-avatar { width: 29px; height: 29px; border-radius: 6px; background: #eaf1ef; color: var(--ops-green); display: grid; place-items: center; font-size: 9px; }
.role-panel > div > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; }
.role-panel strong { font-size: 9px; }
.role-panel small { color: var(--ops-muted); font-size: 10px; }
.role-panel em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.role-panel svg { width: 14px; color: #9ca6ae; }
.security-checks > div:not(.panel-heading) { min-height: 55px; padding: 0 15px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; }
.security-checks > div:last-child { border-bottom: 0; }
.security-checks svg { width: 16px; color: #9ba5ad; }
.security-checks .is-done svg { color: var(--ops-green); }
.security-checks span { font-size: 9px; }
.security-checks em { color: var(--ops-amber); font-size: 10px; font-style: normal; }
.security-checks .is-done em { color: var(--ops-green); }
.community-moderator-panel { margin-top:18px; overflow:hidden; border:1px solid var(--ops-line); border-radius:8px; background:var(--ops-surface); box-shadow:var(--ops-shadow); }
.community-moderator-panel > form { display:flex; gap:8px; padding:12px 14px; border-bottom:1px solid var(--ops-line); }
.community-moderator-panel > form input { min-width:0; height:36px; flex:1; padding:0 11px; border:1px solid var(--ops-line); border-radius:5px; background:#fff; font-size:9px; }
.community-moderator-panel > form button,.community-moderator-row button { display:inline-flex; min-height:34px; padding:0 11px; align-items:center; justify-content:center; gap:5px; border:1px solid var(--ops-line); border-radius:5px; background:#fff; color:var(--ops-ink); font-size: 10px; font-weight:700; cursor:pointer; }
.community-moderator-panel > form button svg { width:13px; }
.community-moderator-list { display:grid; }
.community-moderator-row { display:grid; min-height:58px; padding:9px 14px; grid-template-columns:30px minmax(0,1fr) auto; gap:9px; align-items:center; border-bottom:1px solid var(--ops-line); }
.community-moderator-row:last-child { border-bottom:0; }
.community-moderator-row > span:nth-child(2) { display:flex; min-width:0; flex-direction:column; gap:4px; }
.community-moderator-row strong { font-size:9px; }
.community-moderator-row small { overflow:hidden; color:var(--ops-muted); font-size: 10px; text-overflow:ellipsis; white-space:nowrap; }
.community-moderator-row button:not(:disabled) { border-color:var(--ops-green); color:var(--ops-green); }
.community-moderator-row button:disabled,.community-moderator-panel > form button:disabled { opacity:.5; cursor:default; }
.community-moderator-note { display:flex; margin:0; padding:11px 14px; align-items:center; gap:8px; border-top:1px solid var(--ops-line); color:var(--ops-muted); font-size: 10px; line-height:1.55; }
.community-moderator-note svg { width:15px; flex:0 0 15px; color:var(--ops-green); }
.admin-staff-panel { overflow: visible; }
.admin-staff-bind-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; align-items:end; }
.admin-staff-bind-form label,.admin-staff-row label { display:flex; flex-direction:column; gap:6px; }
.admin-staff-bind-form label span,.admin-staff-row label span { color:var(--ops-muted); font-size: 10px; }
.admin-staff-bind-form input,.admin-staff-bind-form select,.admin-staff-row input,.admin-staff-row select { min-width:0; padding:0 9px; border:1px solid var(--ops-line); border-radius:5px; background:#fff; color:var(--ops-ink); font-size:9px; }
.admin-staff-bind-form input { height:36px; }
.admin-staff-bind-form select,.admin-staff-row select { min-height:36px; padding-block:7px; }
.admin-staff-bind-form button,.admin-staff-actions button { min-height:36px; padding:0 10px; border:1px solid var(--ops-green); border-radius:5px; background:#fff; color:var(--ops-green); font-size: 10px; font-weight:700; cursor:pointer; }
.admin-staff-bind-form button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.admin-staff-bind-form button svg { width:13px; }
.admin-staff-list { display:grid; }
.admin-staff-row { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,220px) minmax(140px,220px) auto; gap:12px; align-items:end; padding:12px 14px; border-top:1px solid var(--ops-line); }
.admin-staff-identity { min-width:0; display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; align-items:center; }
.admin-staff-identity > span:last-child { min-width:0; display:flex; flex-direction:column; gap:4px; }
.admin-staff-identity strong { font-size:10px; }
.admin-staff-identity small { overflow:hidden; color:var(--ops-muted); font-size: 10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-staff-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
.admin-staff-actions em { margin-right:2px; font-size: 10px; font-style:normal; }
.admin-staff-actions em.is-active { color:var(--ops-green); }
.admin-staff-actions em.is-disabled { color:var(--ops-muted); }
.admin-staff-actions button:last-child { border-color:var(--ops-line); color:var(--ops-muted); }
.admin-staff-actions button:disabled,.admin-staff-bind-form button:disabled { opacity:.5; cursor:wait; }
@media(max-width:900px){.admin-staff-bind-form{grid-template-columns:1fr 1fr}.admin-staff-bind-form label:nth-child(3){grid-column:1/-1}.admin-staff-bind-form button{grid-column:1/-1}.admin-staff-row{grid-template-columns:1fr 1fr}.admin-staff-identity{grid-column:1/-1}.admin-staff-actions{justify-content:flex-start}}
@media(max-width:520px){.admin-staff-bind-form{grid-template-columns:1fr}.admin-staff-bind-form label:nth-child(3),.admin-staff-bind-form button{grid-column:auto}.admin-staff-row{grid-template-columns:1fr}.admin-staff-actions{flex-wrap:wrap}}

.entity-search-list { border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; overflow: hidden; }
.entity-search-list > button { width: 100%; min-height: 64px; padding: 8px 13px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 34px minmax(0,1fr) auto 18px; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.entity-search-list > button:last-child { border-bottom: 0; }
.entity-search-list > button:hover { background: #f8fafb; }
.entity-search-list > button > svg:first-child { width: 17px; color: var(--ops-green); }
.entity-search-list > button > span { display: flex; flex-direction: column; gap: 3px; }
.entity-search-list small, .entity-search-list em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.entity-search-list strong { font-size: 10px; }
.entity-search-list > button > svg:last-child { width: 14px; color: #9aa4ac; }
.search-group { margin-top: 22px; }

.task-dialog:has(.entity-drawer) { width: min(760px, calc(100vw - 48px)); max-width: 760px; height: min(860px, calc(100vh - 40px)); max-height: calc(100vh - 40px); margin: auto 20px auto auto; border-radius: 8px 0 0 8px; }
.task-dialog:has(.entity-drawer)::backdrop { background: rgba(13,22,29,.38); backdrop-filter: blur(2px); }
.task-dialog:has(.entity-drawer) #taskDialogRoot { height: 100%; }
.entity-drawer { height: 100%; min-height: 0; background: #fff; overflow-y: auto; overscroll-behavior: contain; }
.entity-drawer > header { position: sticky; top: 0; z-index: 2; min-height: 70px; padding: 12px 18px; border-bottom: 1px solid var(--ops-line); background: rgba(255,255,255,.96); backdrop-filter: blur(14px); display: grid; grid-template-columns: 32px 36px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.entity-drawer > header > button { width: 30px; height: 30px; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; color: #5f6b76; }
.entity-drawer > header > button svg { width: 15px; }
.drawer-icon { width: 34px; height: 34px; border-radius: 7px; background: var(--ops-green-soft); color: var(--ops-green); display: grid; place-items: center; }
.drawer-icon svg { width: 16px; }
.entity-drawer > header > div { display: flex; flex-direction: column; gap: 4px; }
.entity-drawer > header small { color: var(--ops-muted); font-size: 10px; }
.entity-drawer > header strong { font-size: 13px; }
.entity-drawer > main { padding: 20px; }
.entity-subtitle { margin: 0; color: var(--ops-muted); font-size: 10px; }
.entity-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 5px; }
.entity-tags span { min-height: 23px; padding: 0 7px; border-radius: 4px; background: #eef2f4; color: #596773; display: inline-flex; align-items: center; font-size: 10px; }
.entity-field-grid { margin-top: 18px; border: 1px solid var(--ops-line); border-radius: 7px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
.entity-field-grid > div { min-height: 60px; padding: 11px 13px; border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 6px; }
.entity-field-grid > div:nth-child(even) { border-right: 0; }
.entity-field-grid > div.is-wide { grid-column: 1/-1; border-right: 0; }
.entity-field-grid small { color: var(--ops-muted); font-size: 10px; }
.entity-field-grid strong { font-size: 10px; line-height: 1.55; font-weight: 600; }
.entity-operation { margin-top: 22px; }
.entity-form-row { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 12px; }
.entity-form-row label { display: flex; flex-direction: column; gap: 6px; }
.entity-form-row label span { font-size: 9px; font-weight: 650; }
.entity-form-row select, .entity-form-row textarea { width: 100%; border: 1px solid var(--ops-line-strong); border-radius: 6px; background: #fff; color: var(--ops-ink); font: inherit; font-size: 9px; }
.entity-form-row select { height: 38px; padding: 0 9px; }
.entity-form-row textarea { height: 76px; padding: 9px; resize: vertical; line-height: 1.5; }
.entity-action-row { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 7px; }
.entity-action-row button { min-height: 36px; padding: 0 11px; border-radius: 6px; display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 650; cursor: pointer; }
.entity-action-row button svg { width: 14px; }
.entity-action-row button.is-primary { border: 1px solid var(--ops-green); background: var(--ops-green); color: #fff; }
.entity-action-row button.is-secondary { border: 1px solid var(--ops-line-strong); background: #fff; color: #52606c; }
.entity-action-row button.is-quiet { margin-left: auto; border: 0; background: transparent; color: var(--ops-green); }
.entity-action-row button:disabled { opacity: .4; cursor: default; }
.entity-audit-preview { min-height: 50px; margin-top: 18px; padding: 9px 12px; border-radius: 6px; background: #f4f6f7; display: flex; align-items: center; gap: 9px; }
.entity-audit-preview > svg { width: 16px; color: #71808b; }
.entity-audit-preview span { display: flex; flex-direction: column; gap: 3px; }
.entity-audit-preview strong { font-size: 10px; }
.entity-audit-preview small { color: var(--ops-muted); font-size: 10px; }
.related-entities { margin-top: 20px; border: 1px solid var(--ops-line); border-radius: 7px; overflow: hidden; }
.related-entities .section-title { padding-inline: 13px; }
.related-entities > button { width: 100%; min-height: 50px; padding: 8px 13px; border: 0; border-top: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 24px minmax(0,1fr) 15px; gap: 8px; align-items: center; text-align: left; cursor: pointer; }
.related-entities > button:hover { background: #f7faf9; }
.related-entities > button > svg { width: 14px; color: var(--ops-green); }
.related-entities > button > span { display: flex; flex-direction: column; gap: 3px; }
.related-entities > button strong { font-size: 9px; }
.related-entities > button small { color: var(--ops-muted); font-size: 10px; }
.notification-panel { position: fixed; top: 58px; right: 22px; z-index: 80; width: min(390px, calc(100vw - 30px)); border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; box-shadow: 0 16px 44px rgba(18,26,33,.18); overflow: hidden; }
.notification-panel > header { min-height: 54px; padding: 10px 13px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; }
.notification-panel > header > div { display: flex; flex-direction: column; gap: 4px; }
.notification-panel > header strong { font-size: 11px; }
.notification-panel > header small { color: var(--ops-muted); font-size: 10px; }
.notification-panel > header button { width: 26px; height: 26px; border: 0; background: transparent; color: #82909a; }
.notification-panel > header button svg { width: 14px; }
.notification-panel > div { max-height: 420px; overflow: auto; }
.notification-panel > div > button { width: 100%; min-height: 68px; padding: 10px 13px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 8px minmax(0,1fr) 14px; gap: 9px; align-items: center; text-align: left; cursor: pointer; }
.notification-panel > div > button:hover { background: #f7fafb; }
.notification-panel > div > button:last-child { border-bottom: 0; }
.notification-panel > div > button > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; }
.notification-panel > div > button strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.notification-panel > div > button small { overflow: hidden; color: var(--ops-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.notification-panel > div > button em { color: #9aa4ac; font-size: 10px; font-style: normal; }
.notification-panel > div > button > svg { width: 13px; color: #a5afb6; }
.notification-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ops-green); }
.notification-dot.is-critical, .notification-dot.is-high { background: var(--ops-red); }
.notification-dot.is-normal { background: var(--ops-amber); }
.notification-empty { min-height: 100px; margin: 0; padding: 35px 14px; color: var(--ops-muted); text-align: center; font-size: 11px; }
.ticket-form { margin-top: 18px; display: flex; flex-direction: column; gap: 13px; }
.ticket-form label { display: flex; flex-direction: column; gap: 6px; }
.ticket-form label > span { font-size: 9px; font-weight: 650; }
.ticket-form input, .ticket-form select, .ticket-form textarea { width: 100%; border: 1px solid var(--ops-line-strong); border-radius: 6px; background: #fff; color: var(--ops-ink); font: inherit; font-size: 9px; box-sizing: border-box; }
.ticket-form input, .ticket-form select { height: 38px; padding: 0 9px; }
.ticket-form textarea { min-height: 105px; padding: 9px; resize: vertical; line-height: 1.5; }
.ticket-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.check-line { flex-direction: row !important; align-items: center; gap: 7px !important; }
.check-line input { width: 14px; height: 14px; }
.check-line span { color: var(--ops-muted); font-weight: 400 !important; }
.form-actions { display: flex; justify-content: flex-end; gap: 7px; }
.form-actions button { min-height: 36px; padding: 0 12px; border-radius: 6px; font-size: 9px; cursor: pointer; }
.form-actions .is-secondary { border: 1px solid var(--ops-line-strong); background: #fff; color: #586672; }
.form-actions .is-primary { border: 1px solid var(--ops-green); background: var(--ops-green); color: #fff; }
.form-actions svg { width: 14px; }
.role-manager-list { margin-top: 18px; border: 1px solid var(--ops-line); border-radius: 7px; overflow: hidden; }
.role-manager-list > button { width: 100%; min-height: 63px; padding: 9px 12px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 30px minmax(0,1fr) auto 15px; gap: 9px; align-items: center; text-align: left; cursor: pointer; }
.role-manager-list > button:last-child { border-bottom: 0; }
.role-manager-list > button:hover { background: #f7fafb; }
.role-manager-list > button > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; }
.role-manager-list strong { font-size: 9px; }
.role-manager-list small { color: var(--ops-muted); font-size: 10px; }
.role-manager-list > button > svg { width: 13px; color: #9ca6ae; }
.permission-note { min-height: 56px; margin-top: 16px; padding: 10px 12px; border-radius: 6px; background: #f8f3e9; display: flex; gap: 8px; align-items: center; }
.permission-note > svg { width: 16px; color: var(--ops-amber); }
.permission-note span { display: flex; flex-direction: column; gap: 4px; }
.permission-note strong { font-size: 9px; }
.permission-note small { color: var(--ops-muted); font-size: 10px; line-height: 1.5; }

.audit-section { margin-top: 24px; }
.audit-section .section-title button { border: 0; background: transparent; color: var(--ops-green); font-size: 9px; }

@media (max-width: 1240px) {
  .admin-shell { grid-template-columns: 224px minmax(0,1fr); }
  .trend-summary { grid-template-columns: repeat(3,1fr); }
  .trend-summary .compact-trend { grid-column: 1/-1; }
  .ops-dashboard-grid, .dashboard-work-grid { grid-template-columns: minmax(0,1fr) 310px; }
  .commerce-guardrail { grid-template-columns: repeat(2,1fr); }
  .commerce-guardrail > div:nth-child(2) { border-right: 0; }
  .commerce-guardrail > div:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .compact-directory { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 1080px) {
  #adminRoot { padding-inline: 24px; }
  .topbar-actions .workspace-date, .topbar-actions a span { display: none; }
  .executive-metrics, .segment-metrics, .species-overview, .community-pulse, .service-metrics, .credential-metrics { grid-template-columns: repeat(2,1fr); }
  .executive-metrics article:nth-child(2), .segment-metrics button:nth-child(2), .species-overview article:nth-child(2), .community-pulse article:nth-child(2), .service-metrics article:nth-child(2), .credential-metrics article:nth-child(2) { border-right: 0; }
  .executive-metrics article:nth-child(-n+2), .segment-metrics button:nth-child(-n+2), .species-overview article:nth-child(-n+2), .community-pulse article:nth-child(-n+2), .service-metrics article:nth-child(-n+2), .credential-metrics article:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .ops-dashboard-grid, .dashboard-work-grid, .records-quality-grid, .analytics-grid, .system-grid, .dual-table-grid { grid-template-columns: 1fr; }
  .moderation-lanes { grid-template-columns: 1fr; }
  .moderation-lanes > div { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .moderation-lanes > div:last-child { border-bottom: 0; }
}

@media (max-width: 900px) {
  .admin-shell { display: block; min-height: 100vh; }
  .admin-main { width: 100%; }
  .admin-sidebar { position: fixed; inset: 0 auto 0 0; width: min(286px, calc(100vw - 48px)); height: 100dvh; transform: translateX(-105%); transition: transform .22s ease; box-shadow: 18px 0 48px rgba(9,18,25,.24); }
  .account-menu-panel { left: 12px; width: min(260px, calc(100vw - 72px)); }
  body.sidebar-open { overflow: hidden; }
  body.sidebar-open::after { display: none; }
  body.sidebar-open .admin-sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 29; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(13,22,29,.42); opacity: 0; pointer-events: none; display: block; transition: opacity .2s ease; }
  body.sidebar-open .sidebar-backdrop { opacity: 1; pointer-events: auto; }
  .sidebar-toggle { width: 36px; height: 36px; flex: none; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; color: #4d5964; display: grid; place-items: center; }
  .sidebar-toggle svg { width: 17px; }
  .admin-topbar { height: 60px; padding: 0 16px; gap: 10px; }
  .global-search { width: auto; min-width: 0; flex: 1; }
  .global-search kbd, .server-status, .topbar-actions a { display: none; }
  .topbar-actions { gap: 5px; flex: none; }
  #adminRoot { width: 100%; padding: 26px 20px 60px; }
  .page-head { min-height: 0; flex-wrap: wrap; gap: 14px; }
  .page-head > div { width: 100%; }
  .page-head h1 { font-size: 25px; }
  .head-action { width: fit-content; }
  .trend-summary { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
  .trend-summary .compact-trend { grid-column: 1/-1; }
  .trend-legend { grid-template-columns: 1.5fr repeat(7,minmax(36px,1fr)); overflow-x: auto; }
  .knowledge-release-bar, .medical-gates { padding: 14px 16px; grid-template-columns: 1fr; gap: 10px; }
  .knowledge-release-bar > svg, .medical-gates > svg { margin-left: 8px; transform: rotate(90deg); }
  .risk-boundary-matrix { grid-template-columns: 1fr; }
  .risk-queue-summary > div:last-child, .system-health-strip { grid-template-columns: repeat(2,1fr); }
  .risk-queue-summary > div:last-child span:nth-child(2), .system-health-strip > div:nth-child(2) { border-right: 0; }
  .risk-queue-summary > div:last-child span:nth-child(-n+2), .system-health-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .data-toolbar { min-height: 58px; padding-block: 10px; align-items: flex-start; flex-direction: column; }
  .table-filters { max-width: 100%; overflow-x: auto; }
  .table-filters button { flex: none; }
  .admin-data-table { min-width: 720px; }
  .dual-table-grid .admin-data-table { min-width: 560px; }
  .analytics-controls { flex-wrap: wrap; }
  .data-freshness { width: 100%; margin-left: 0; }
  .funnel-chart > div { grid-template-columns: 120px minmax(0,1fr) 74px; }
  .task-dialog:has(.entity-drawer) { width: min(700px, calc(100vw - 24px)); height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); margin: auto 0 auto auto; border-radius: 8px 0 0 8px; }
  .notification-panel { top: 54px; right: 10px; }
}

@media (max-width: 640px) {
  .admin-topbar { padding-inline: 12px; }
  .topbar-actions #logoutButton { display: none; }
  #adminRoot { padding: 22px 14px 52px; }
  .page-head h1 { font-size: 23px; }
  .page-head span { font-size: 10px; }
  .commerce-guardrail, .compact-directory { grid-template-columns: 1fr; }
  .commerce-guardrail > div { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .commerce-guardrail > div:last-child { border-bottom: 0; }
  .analytics-controls .filter-group { width: 100%; display: grid; grid-template-columns: repeat(3,1fr); }
  .analytics-controls .filter-group button { padding-inline: 5px; }
  .funnel-chart { padding-inline: 14px; }
  .funnel-chart > div { min-height: 58px; grid-template-columns: minmax(0,1fr) 64px; gap: 6px 10px; }
  .funnel-chart > div > i { grid-column: 1/-1; grid-row: 2; }
  .funnel-chart > div > em { grid-column: 2; grid-row: 1; text-align: right; }
  .line-chart-panel svg { width: calc(100% - 50px); margin-left: 38px; margin-right: 12px; }
  .line-chart-y { left: 8px; }
  .chart-x { margin-left: 38px; margin-right: 12px; }
  .entity-search-list > button { grid-template-columns: 26px minmax(0,1fr) 14px; }
  .entity-search-list > button > .entity-status { display: none; }
  .task-dialog:has(.entity-drawer) { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .entity-drawer > header { padding-inline: 12px; grid-template-columns: 32px 32px minmax(0,1fr); }
  .entity-drawer > header > .entity-status { grid-column: 3; width: fit-content; }
  .entity-drawer > main { padding: 16px 14px 30px; }
  .entity-field-grid, .entity-form-row, .ticket-form-grid { grid-template-columns: 1fr; }
  .entity-field-grid > div { border-right: 0; }
  .entity-field-grid > div.is-wide { grid-column: auto; }
  .entity-action-row button { width: 100%; justify-content: center; }
  .entity-action-row button.is-quiet { margin-left: 0; }
  .notification-panel { inset: 54px 8px auto; width: auto; }
}

@media (max-width: 480px) {
  .executive-metrics, .segment-metrics, .species-overview, .community-pulse, .service-metrics, .credential-metrics { grid-template-columns: 1fr; }
  .executive-metrics article, .segment-metrics button, .species-overview article, .community-pulse article, .service-metrics article, .credential-metrics article { min-height: 104px; border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .executive-metrics article:last-child, .segment-metrics button:last-child, .species-overview article:last-child, .community-pulse article:last-child, .service-metrics article:last-child, .credential-metrics article:last-child { border-bottom: 0; }
  .risk-queue-summary > div:last-child, .system-health-strip { grid-template-columns: 1fr; }
  .risk-queue-summary > div:last-child span, .system-health-strip > div { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .risk-queue-summary > div:last-child span:last-child, .system-health-strip > div:last-child { border-bottom: 0; }
  .trend-summary { grid-template-columns: 1fr; }
  .trend-summary .compact-trend { grid-column: auto; }
}

/* API capability routing: secrets stay server-side; this surface exposes operational state only. */
.api-center-summary { margin-top: 24px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; }
.api-center-summary article { min-height: 104px; padding: 18px; border-right: 1px solid var(--ops-line); display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.api-center-summary article:last-child { border-right: 0; }
.api-center-summary span,.api-center-summary small { color: var(--ops-muted); font-size: 11px; }
.api-center-summary strong { font-size: 24px; font-variant-numeric: tabular-nums; }
.api-capability-list { margin-top: 28px; display: grid; gap: 20px; }
.infrastructure-summary { margin-top: 24px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--ops-line); background: rgba(255,255,255,.5); }
.infrastructure-summary article { min-width: 0; padding: 18px 20px; border-right: 1px solid var(--ops-line); }
.infrastructure-summary article:last-child { border-right: 0; }
.infrastructure-summary span,.infrastructure-summary small { display: block; color: var(--ops-muted); font-size: 10px; }
.infrastructure-summary strong { display: block; margin: 7px 0; overflow: hidden; text-overflow: ellipsis; font-size: 16px; white-space: nowrap; }
.infrastructure-summary .is-healthy strong { color: #087f5b; }
.infrastructure-summary .is-failed strong { color: #b42318; }
.infrastructure-boundary { margin-top: 22px; display: grid; grid-template-columns: minmax(0,1fr) 32px minmax(0,1fr) minmax(0,1fr); gap: 12px; align-items: center; }
.infrastructure-boundary article { min-height: 82px; padding: 16px; display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 12px; align-items: center; border: 1px solid var(--ops-line); background: #fff; }
.infrastructure-boundary article > svg { width: 18px; color: var(--ops-blue); }
.infrastructure-boundary > svg { width: 17px; color: var(--ops-muted); }
.infrastructure-boundary .is-private { border-color: #c9d6cf; background: #f5faf7; }
.infrastructure-boundary strong,.infrastructure-boundary small { display: block; }
.infrastructure-boundary small { margin-top: 4px; color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.infrastructure-grid { margin-top: 24px; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.75fr); gap: 22px; align-items: start; }
.infrastructure-form,.infrastructure-checks { padding: 20px; border: 1px solid var(--ops-line); background: rgba(255,255,255,.7); }
.infrastructure-form .section-title,.infrastructure-checks .section-title { margin: 0 0 18px; }
.infrastructure-form .section-title button { min-height: 36px; padding: 0 13px; display: inline-flex; gap: 7px; align-items: center; border: 0; background: var(--ops-text); color: #fff; }
.infrastructure-form .section-title button svg { width: 15px; }
.infrastructure-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.infrastructure-fields label span { display: block; margin-bottom: 6px; color: var(--ops-muted); font-size: 10px; }
.infrastructure-fields input { box-sizing: border-box; width: 100%; min-height: 40px; padding: 0 11px; border: 1px solid var(--ops-line-strong); background: #fff; color: var(--ops-text); }
.infrastructure-secret-note { margin: 18px 0 0; padding: 14px; display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; background: #fff8e8; color: #7a4b00; }
.infrastructure-secret-note svg { width: 17px; }
.infrastructure-secret-note strong,.infrastructure-secret-note small { display: block; }
.infrastructure-secret-note small { margin-top: 3px; color: #866527; font-size: 10px; line-height: 1.5; }
.infrastructure-checks .section-title em { display: inline-flex; gap: 6px; align-items: center; font-size: 10px; font-style: normal; }
.infrastructure-checks .section-title em svg { width: 15px; }
.infrastructure-checks .section-title .is-healthy { color: #087f5b; }
.infrastructure-checks .section-title .is-failed { color: #b42318; }
.infrastructure-checks article { min-height: 62px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; gap: 10px; align-items: center; border-top: 1px solid var(--ops-line); }
.infrastructure-checks article > svg { width: 17px; color: var(--ops-muted); }
.infrastructure-checks article strong,.infrastructure-checks article small { display: block; }
.infrastructure-checks article small { margin-top: 4px; color: var(--ops-muted); font-size: 10px; }
.infrastructure-checks article em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.infrastructure-checks article.is-healthy > svg,.infrastructure-checks article.is-healthy > em { color: #087f5b; }
.infrastructure-checks article.is-failed > svg,.infrastructure-checks article.is-failed > em { color: #b42318; }
.infrastructure-rules { margin-top: 22px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--ops-line); }
.infrastructure-rules > div { min-height: 82px; padding: 16px; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 10px; align-items: center; border-right: 1px solid var(--ops-line); }
.infrastructure-rules > div:last-child { border-right: 0; }
.infrastructure-rules svg { width: 17px; color: var(--ops-blue); }
.infrastructure-rules strong,.infrastructure-rules small { display: block; }
.infrastructure-rules small { margin-top: 4px; color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.api-capability-card { border-top: 1px solid var(--ops-line-strong); border-bottom: 1px solid var(--ops-line); background: rgba(255,255,255,.5); }
.api-capability-card > header { min-height: 112px; padding: 20px 4px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 14px; align-items: center; }
.api-capability-icon { width: 40px; height: 40px; border-radius: 7px; background: var(--ops-blue-soft); color: var(--ops-blue); display: grid; place-items: center; }
.api-capability-icon svg { width: 19px; }
.api-capability-card > header > div { min-width: 0; }
.api-capability-card > header small,.api-capability-card > header p { color: var(--ops-muted); font-size: 11px; }
.api-capability-card > header h2 { margin: 4px 0 5px; font-size: 17px; }
.api-capability-card > header p { margin: 0; line-height: 1.55; }
.api-route-state { padding: 6px 8px; border-radius: 5px; background: var(--ops-green-soft); color: var(--ops-green); display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.api-route-state i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.api-route-state.is-pending { background: #fff4dc; color: #8b5a00; }
.api-capability-card.is-pending .api-capability-icon { background: #fff4dc; color: #8b5a00; }
.api-route { min-height: 82px; padding: 14px 18px; border-top: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); background: #f7f8f9; display: grid; grid-template-columns: minmax(0,1fr) 26px minmax(0,1fr); gap: 12px; align-items: center; }
.api-route > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.api-route small,.api-route span { color: var(--ops-muted); font-size: 10px; line-height: 1.45; }
.api-route strong { font-size: 11px; }
.api-route > svg { width: 15px; color: #a0a7ad; justify-self: center; }
.api-provider-list { background: #fff; }
.api-provider-row { min-height: 86px; padding: 14px 4px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 36px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.api-provider-row:last-child { border-bottom: 0; }
.api-provider-mark { width: 34px; height: 34px; border-radius: 6px; background: #eef1f3; color: #59636b; display: grid; place-items: center; }
.api-provider-row.is-configured .api-provider-mark { background: var(--ops-green-soft); color: var(--ops-green); }
.api-provider-mark svg { width: 16px; }
.api-provider-main { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.api-provider-main > span { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.api-provider-main strong { font-size: 11px; }
.api-provider-main small { color: var(--ops-muted); font-size: 10px; }
.api-credential-state { padding: 3px 5px; border-radius: 4px; background: var(--ops-green-soft); color: var(--ops-green); font-size: 10px; font-style: normal; font-weight: 700; }
.api-provider-row.is-missing .api-credential-state { background: var(--ops-red-soft); color: var(--ops-red); }
.api-last-check { margin: 0; color: var(--ops-muted); display: flex; align-items: center; gap: 5px; font-size: 10px; line-height: 1.45; }
.api-last-check svg { width: 13px; flex: none; }
.api-last-check.is-healthy { color: var(--ops-green); }
.api-last-check.is-failed { color: var(--ops-red); }
.api-provider-row > button { min-height: 34px; padding: 0 10px; border: 1px solid var(--ops-line-strong); border-radius: 5px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; gap: 6px; font-size: 9px; cursor: pointer; }
.api-provider-row > button:hover:not(:disabled) { border-color: var(--ops-blue); color: var(--ops-blue); }
.api-provider-row > button:disabled { opacity: .52; cursor: not-allowed; }
.api-provider-row > button svg { width: 14px; }
.api-provider-row > button:disabled svg[data-lucide="loader-circle"] { animation: event-discovery-spin .8s linear infinite; }
.api-provider-empty { min-height: 86px; padding: 16px 4px; display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 12px; align-items: center; color: var(--ops-muted); }
.api-provider-empty > svg { width: 18px; justify-self: center; }
.api-provider-empty span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.api-provider-empty strong { color: var(--ops-ink); font-size: 11px; }
.api-provider-empty small { font-size: 10px; line-height: 1.55; }
.api-center-boundaries { margin-top: 30px; border-top: 1px solid var(--ops-line-strong); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.api-center-boundaries > div { min-height: 126px; padding: 20px 18px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-content: center; }
.api-center-boundaries > div:last-child { border-right: 0; }
.api-center-boundaries svg { width: 20px; color: var(--ops-blue); }
.api-center-boundaries span { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.api-center-boundaries strong { font-size: 10px; }
.api-center-boundaries small { color: var(--ops-muted); font-size: 10px; line-height: 1.6; }
.api-provider-config { margin-top: 10px; display: grid; grid-template-columns: minmax(180px,.8fr) minmax(220px,1fr) minmax(140px,.55fr) auto auto; gap: 8px; align-items: end; }
.api-provider-config label { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.api-provider-config label > span { color: var(--ops-muted); font-size: 10px; }
.api-provider-config input[type="url"],.api-provider-config input[type="text"],.api-provider-config input[type="password"],.api-provider-config input:not([type]) { box-sizing: border-box; width: 100%; height: 34px; padding: 0 9px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font-size: 9px; }
.api-provider-config .api-provider-secret { grid-column: span 2; }
.api-provider-config .api-provider-toggle { min-width: 58px; height: 34px; flex-direction: row; align-items: center; gap: 6px; }
.api-provider-config .api-provider-toggle input { margin: 0; }
.api-provider-config .api-provider-clear { min-width: 112px; height: 34px; flex-direction: row; align-items: center; gap: 6px; }
.api-provider-config .api-provider-clear input { margin: 0; }
.api-provider-config .api-provider-clear span { color: var(--ops-red); white-space: nowrap; }
.api-provider-config button { height: 34px; padding: 0 10px; white-space: nowrap; }
@media (max-width: 900px) { .api-provider-config { grid-template-columns: 1fr; } .api-provider-config .api-provider-toggle { height: auto; } }

@media (max-width: 900px) {
  .api-center-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .api-center-summary article:nth-child(2) { border-right: 0; }
  .api-center-summary article:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .api-center-boundaries { grid-template-columns: 1fr; }
  .api-center-boundaries > div { border-right: 0; border-bottom: 1px solid var(--ops-line); }
}

@media (max-width: 560px) {
  .api-center-summary { grid-template-columns: 1fr; }
  .api-center-summary article { min-height: 86px; border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .api-center-summary article:nth-child(-n+3) { border-bottom: 1px solid var(--ops-line); }
  .api-capability-card > header { grid-template-columns: 38px minmax(0,1fr); }
  .api-route-state { grid-column: 2; justify-self: start; }
  .api-route { grid-template-columns: 1fr; }
  .api-route > svg { transform: rotate(90deg); }
  .api-provider-row { grid-template-columns: 34px minmax(0,1fr); }
  .api-provider-row > button { grid-column: 2; justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-sidebar, .sidebar-backdrop { transition: none; }
}

/* Cross-module governance workbenches */
.governance-summary, .content-ops-strip, .release-health { margin-top: 20px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; }
.governance-summary article, .content-ops-strip article { min-height: 88px; padding: 17px 18px; border-right: 1px solid var(--ops-line); display: flex; align-items: center; gap: 12px; }
.governance-summary article:last-child, .content-ops-strip article:last-child { border-right: 0; }
.governance-summary article > svg, .content-ops-strip article > svg { width: 20px; color: var(--ops-green); }
.governance-summary article.is-warning > svg, .content-ops-strip article.is-warning > svg { color: var(--ops-amber); }
.governance-summary article span, .content-ops-strip article span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.governance-summary strong, .content-ops-strip strong { color: var(--ops-ink); font-size: 11px; }
.governance-summary small, .content-ops-strip small { color: var(--ops-muted); font-size: 11px; line-height: 1.45; }
.learning-coverage-panel { margin-top: 20px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.learning-coverage-panel > .section-title { padding: 17px 18px; border-bottom: 1px solid var(--ops-line); }
.learning-coverage-panel > .section-title .head-action { min-height: 34px; }
.learning-coverage-summary { padding: 14px 16px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.learning-coverage-summary button { min-width: 0; min-height: 62px; padding: 10px 12px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f8faf9; color: var(--ops-ink); display: flex; align-items: center; gap: 10px; text-align: left; cursor: pointer; }
.learning-coverage-summary button:hover, .learning-coverage-summary button.is-active { border-color: #a9cbbf; background: var(--ops-green-soft); }
.learning-coverage-summary button > svg { width: 18px; color: var(--ops-green); flex: none; }
.learning-coverage-summary button:nth-child(3) > svg { color: var(--ops-red); }
.learning-coverage-summary button:nth-child(4) > svg { color: var(--ops-amber); }
.learning-coverage-summary button span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.learning-coverage-summary button small { color: var(--ops-muted); font-size: 10px; }
.learning-coverage-summary button strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.learning-coverage-toolbar { min-height: 44px; padding: 7px 16px; border-top: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); background: #fbfcfb; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.learning-coverage-toolbar span { color: var(--ops-muted); font-size: 10px; line-height: 1.45; }
.learning-coverage-toolbar select { min-height: 30px; padding: 0 8px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font-size: 10px; }
.learning-coverage-table { max-height: 430px; overflow: auto; }
.learning-coverage-table .admin-data-table { margin-top: 0; }
.coverage-status { width: fit-content; padding: 4px 7px; border-radius: 999px; background: #edf2ef; color: var(--ops-muted); display: inline-flex; font-size: 10px; font-weight: 700; }
.coverage-status.is-published_in_app { background: var(--ops-green-soft); color: var(--ops-green); }
.coverage-status.is-web_review_pending { background: #fff5e8; color: #8a5c20; }
.coverage-status.is-legally_gated { background: var(--ops-red-soft); color: var(--ops-red); }
.coverage-status.is-missing_runtime_course { background: #eef1f4; color: #52606c; }
.species-review-workbench { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ops-line); }
.species-review-workbench > .section-title > strong { color: var(--ops-muted); font-size: 9px; }
.species-review-coverage { margin-top: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.species-review-coverage label { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.species-review-coverage span, .species-review-columns h3, .species-review-support h3 { color: var(--ops-muted); font-size: 10px; font-weight: 700; }
.species-review-coverage select, .review-check-row select { min-height: 34px; padding: 0 8px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font-size: 9px; }
.species-review-columns, .species-review-support { margin-top: 16px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.species-review-columns > section, .species-review-support > section { min-width: 0; }
.species-review-columns h3, .species-review-support h3 { margin: 0 0 7px; color: var(--ops-ink); font-size: 10px; }
.review-check-row { min-height: 43px; padding: 6px 0; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) 92px; gap: 8px; align-items: center; }
.review-check-row > span { font-size: 9px; line-height: 1.4; }
.review-evidence-row { min-height: 48px; padding: 7px 0; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 8px; align-items: center; cursor: pointer; }
.review-evidence-row input { width: 15px; height: 15px; accent-color: var(--ops-green); }
.review-evidence-row > span { display: flex; flex-direction: column; gap: 3px; }
.review-evidence-row strong { font-size: 9px; line-height: 1.4; }
.review-evidence-row small { color: var(--ops-red); font-size: 10px; }
.review-evidence-row input:checked + span small { color: var(--ops-green); }
.species-review-support p { margin: 0; padding: 7px 0; border-bottom: 1px solid var(--ops-line); color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.species-review-support a { min-height: 34px; border-bottom: 1px solid var(--ops-line); color: var(--ops-green); display: flex; align-items: center; justify-content: space-between; gap: 8px; text-decoration: none; font-size: 10px; }
.species-review-support a svg { width: 13px; }
.review-save-button { width: 100%; min-height: 40px; margin-top: 16px; border: 1px solid var(--ops-green); border-radius: 5px; background: var(--ops-green); color: #fff; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 9px; font-weight: 700; cursor: pointer; }
.review-save-button svg { width: 14px; }
.schema-principles { margin: 12px 0 20px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.schema-principles > div { min-height: 82px; padding: 14px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f9fbfa; display: flex; flex-direction: column; gap: 7px; }
.schema-principles strong { font-size: 9px; }
.schema-principles span { color: var(--ops-muted); font-size: 10px; line-height: 1.55; }
.taxonomy-icon, .schema-icon, .slot-icon, .campaign-icon, .flag-icon, .integration-icon { width: 29px; height: 29px; border-radius: 6px; background: #edf6f3; color: var(--ops-green); display: grid; place-items: center; flex: none; }
.taxonomy-icon svg, .schema-icon svg, .slot-icon svg, .campaign-icon svg, .flag-icon svg, .integration-icon svg { width: 15px; }

.privacy-workbench, .change-request-board, .asset-library, .object-workbench, .case-workbench, .macro-library { margin-top: 22px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.privacy-workbench > .section-title, .change-request-board > .section-title, .asset-library > .section-title, .object-workbench > .section-title, .case-workbench > .section-title, .macro-library > .section-title { min-height: 64px; padding: 0 18px; border-bottom: 1px solid var(--ops-line); }
.privacy-workbench > .section-title > strong, .change-request-board > .section-title > strong, .asset-library > .section-title > strong, .object-workbench > .section-title > strong, .case-workbench > .section-title > strong, .macro-library > .section-title > strong { color: var(--ops-muted); font-size: 9px; }
.privacy-workbench > button, .change-request-board > button, .asset-library > button, .object-workbench > button, .case-workbench > button, .macro-library > button { width: 100%; min-height: 68px; padding: 10px 16px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 32px minmax(0,1fr) auto auto 14px; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.privacy-workbench > button:last-child, .change-request-board > button:last-child, .asset-library > button:last-child, .object-workbench > button:last-child, .case-workbench > button:last-child, .macro-library > button:last-child { border-bottom: 0; }
.privacy-workbench > button:hover, .change-request-board > button:hover, .asset-library > button:hover, .object-workbench > button:hover, .case-workbench > button:hover, .macro-library > button:hover { background: #f8faf9; }
.privacy-workbench > button > span:nth-child(2), .change-request-board > button > span:nth-child(2), .asset-library > button > span:nth-child(2), .object-workbench > button > span:nth-child(2), .case-workbench > button > span:nth-child(2), .macro-library > button > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.privacy-workbench button strong, .change-request-board button strong, .asset-library button strong, .object-workbench button strong, .case-workbench button strong, .macro-library button strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.privacy-workbench button small, .change-request-board button small, .asset-library button small, .object-workbench button small, .case-workbench button small, .macro-library button small { overflow: hidden; color: var(--ops-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.privacy-workbench button > svg, .change-request-board button > svg, .asset-library button > svg, .object-workbench button > svg, .case-workbench button > svg, .macro-library button > svg { width: 13px; color: #a0aab1; }
.privacy-icon, .change-icon, .asset-thumb, .workbench-icon, .case-icon, .macro-icon { width: 30px; height: 30px; border-radius: 6px; background: #edf6f3; color: var(--ops-green); display: grid; place-items: center; }
.privacy-icon svg, .change-icon svg, .asset-thumb svg, .workbench-icon svg, .case-icon svg, .macro-icon svg { width: 15px; }
.change-request-board .risk-tag, .asset-library button > em { color: var(--ops-muted); font-size: 10px; font-style: normal; white-space: nowrap; }
.change-request-board .risk-tag.is-high { color: var(--ops-red); }
.case-workbench button > em, .macro-library button > em { color: var(--ops-muted); font-size: 10px; font-style: normal; white-space: nowrap; }

.identity-overview { margin-top: 18px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; }
.identity-overview article { min-height: 90px; padding: 15px 17px; border-right: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 6px; }
.identity-overview article:last-child { border-right: 0; }
.identity-overview span, .identity-overview small { color: var(--ops-muted); font-size: 10px; line-height: 1.4; }
.identity-overview strong { font-size: 17px; }
.identity-overview article.is-warning strong { color: var(--ops-amber); }

.analytics-governance-grid { margin-top: 20px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.analytics-module-picker { margin-top: 4px; padding: 15px 16px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 16px; align-items: start; }
.analytics-module-picker > div:first-child { display: flex; flex-direction: column; gap: 5px; }
.analytics-module-picker > div:first-child strong { font-size: 10px; }
.analytics-module-picker > div:first-child small { color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.analytics-module-picker > div:last-child { display: flex; flex-wrap: wrap; gap: 6px; }
.analytics-module-picker label { min-height: 29px; padding: 0 9px; border: 1px solid var(--ops-line); border-radius: 5px; background: #f8faf9; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.analytics-module-picker input { margin: 0; accent-color: var(--ops-green); }
.analytics-module-picker label:has(input:checked) { border-color: #b8d7cc; background: var(--ops-green-soft); color: var(--ops-green); }
.analytics-module-picker label span { font-size: 10px; font-weight: 650; }
.traffic-heading, .analytics-section-heading { margin-top: 24px; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.traffic-heading > div, .analytics-section-heading > div { display: flex; flex-direction: column; gap: 3px; }
.traffic-heading p, .analytics-section-heading p { margin: 0; color: var(--ops-green); font-size: 10px; font-weight: 700; }
.traffic-heading h2, .analytics-section-heading h2 { margin: 0; font-size: 15px; letter-spacing: 0; }
.traffic-heading > span, .analytics-section-heading > span { color: var(--ops-muted); font-size: 10px; }
.traffic-heading > span { display: inline-flex; align-items: center; gap: 6px; }
.traffic-heading > span i { width: 6px; height: 6px; border-radius: 50%; background: var(--ops-green); box-shadow: 0 0 0 3px var(--ops-green-soft); }
.traffic-boundary { min-height: 92px; margin-top: 22px; padding: 18px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 12px; align-items: center; }
.traffic-boundary > svg { width: 22px; color: var(--ops-amber); }
.traffic-boundary.is-loading > svg { color: var(--ops-green); }
.traffic-boundary span { display: flex; flex-direction: column; gap: 5px; }
.traffic-boundary strong { font-size: 10px; }
.traffic-boundary small { color: var(--ops-muted); font-size: 10px; line-height: 1.55; }
.traffic-kpis { margin-top: 12px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); overflow: hidden; }
.traffic-kpis article { min-height: 104px; padding: 16px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 4px 9px; align-content: center; }
.traffic-kpis article:last-child { border-right: 0; }
.traffic-kpis article > svg { grid-row: 1 / 4; width: 18px; color: var(--ops-green); }
.traffic-kpis span, .traffic-kpis small { color: var(--ops-muted); font-size: 10px; }
.traffic-kpis strong { font-size: 21px; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.traffic-grid { margin-top: 12px; display: grid; grid-template-columns: minmax(0,1.7fr) minmax(240px,.8fr); gap: 12px; }
.traffic-trend, .traffic-list { min-width: 0; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.traffic-trend > header, .traffic-list > header { min-height: 58px; padding: 11px 14px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.traffic-trend > header > div { display: flex; flex-direction: column; gap: 4px; }
.traffic-trend header strong, .traffic-list header strong { font-size: 10px; }
.traffic-trend header small, .traffic-list header small { color: var(--ops-muted); font-size: 10px; }
.traffic-trend > header > span { color: var(--ops-muted); display: inline-flex; align-items: center; gap: 5px; font-size: 10px; }
.traffic-trend > header > span i { width: 8px; height: 8px; border-radius: 2px; }
.traffic-trend .is-pv { background: #307c66; }
.traffic-trend .is-uv { background: #5e86a5; }
.traffic-chart { height: 250px; padding: 18px 14px 12px; display: flex; align-items: stretch; gap: 4px; overflow-x: auto; }
.traffic-list-row { min-height: 55px; padding: 9px 14px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; align-items: center; }
.traffic-list-row:last-child { border-bottom: 0; }
.traffic-list-row span { overflow: hidden; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.traffic-list-row strong { font-size: 11px; font-variant-numeric: tabular-nums; }
.traffic-list-row small { grid-column: 1 / -1; color: var(--ops-muted); font-size: 10px; }
.traffic-list-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.traffic-geo { margin-top: 12px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.traffic-geo > header { min-height: 58px; padding: 11px 14px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.traffic-geo > header > div { display: flex; flex-direction: column; gap: 4px; }
.traffic-geo header strong { font-size: 10px; }
.traffic-geo header small, .traffic-geo header > span { color: var(--ops-muted); font-size: 10px; }
.traffic-geo-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.traffic-geo-row { min-height: 56px; padding: 9px 14px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1.5fr) minmax(42px,.5fr) minmax(120px,1fr); gap: 10px; align-items: center; }
.traffic-geo-row:nth-last-child(-n+2) { border-bottom: 0; }
.traffic-geo-row > span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.traffic-geo-row strong { font-size: 10px; font-variant-numeric: tabular-nums; }
.traffic-geo-row small { color: var(--ops-muted); font-size: 10px; }
.traffic-empty { margin: 0; padding: 26px 14px; color: var(--ops-muted); font-size: 10px; text-align: center; }
.analytics-real-summary { margin-top: 16px; border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); overflow: hidden; }
.analytics-real-summary article { min-height: 108px; padding: 15px 16px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 4px 8px; align-content: center; }
.analytics-real-summary article:last-child { border-right: 0; }
.analytics-real-summary article > svg { grid-row: 1/4; width: 17px; color: var(--ops-green); }
.analytics-real-summary span, .analytics-real-summary small { color: var(--ops-muted); font-size: 10px; }
.analytics-real-summary strong { font-size: 20px; font-variant-numeric: tabular-nums; letter-spacing: 0; }
/* 主口径 / 覆盖率预警（2026-10-28）：低于 80% 的覆盖率要一眼看出来，不能和正常值一个颜色。 */
.analytics-real-summary article.is-risk strong, .analytics-real-summary article.is-risk > svg { color: var(--ops-red); }
.analytics-real-summary article.is-ok strong { color: var(--ops-green); }
.analytics-real-summary article.is-muted strong { color: var(--ops-muted); }
.privacy-notice.reconciliation-warning { border-color: rgba(197, 92, 63, .35); background: #fff8f4; }
.privacy-notice.reconciliation-warning > svg { color: var(--ops-red); }
.module-analysis-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.module-analysis-card { border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.module-analysis-card > header { min-height: 66px; padding: 12px 15px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.module-analysis-card > header > span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.module-analysis-card > header strong { font-size: 11px; }
.module-analysis-card > header small { overflow: hidden; color: var(--ops-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.module-analysis-card > header em { flex: none; color: var(--ops-green); font-size: 10.5px; font-style: normal; font-weight: 700; }
.module-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--ops-line); }
.module-kpis > span { min-height: 66px; padding: 11px 13px; border-right: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 5px; }
.module-kpis > span:last-child { border-right: 0; }
.module-kpis small { color: var(--ops-muted); font-size: 10px; }
.module-kpis strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.module-kpis .is-risk strong { color: var(--ops-red); }
.status-distribution { min-height: 46px; padding: 9px 13px; border-bottom: 1px solid var(--ops-line); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.status-distribution > span { display: inline-flex; align-items: center; gap: 4px; }
.status-distribution b { color: var(--ops-muted); font-size: 10px; }
.status-distribution > small { color: var(--ops-muted); font-size: 10px; }
.module-type-rows { padding: 3px 14px; }
.module-type-rows > span { min-height: 45px; border-bottom: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.module-type-rows > span:last-child { border-bottom: 0; }
.module-type-rows strong { font-size: 9px; }
.module-type-rows small { color: var(--ops-muted); font-size: 10px; text-align: right; }
.module-analysis-card > footer { padding: 12px 14px; background: #f8faf9; display: flex; flex-direction: column; gap: 7px; }
.module-analysis-card > footer span { color: #52616a; display: flex; gap: 6px; font-size: 10px; line-height: 1.55; }
.module-analysis-card > footer svg { width: 13px; flex: none; color: var(--ops-green); }
.module-analysis-card > footer > small { color: var(--ops-amber); font-size: 10px; line-height: 1.45; }
.immutable-history-notice { min-height: 68px; margin-top: 18px; padding: 12px 16px; border: 1px solid #cfe2dc; border-radius: 7px; background: #f5faf8; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.immutable-history-notice > svg { width: 19px; color: var(--ops-green); }
.immutable-history-notice > span { display: flex; flex-direction: column; gap: 4px; }
.immutable-history-notice strong { font-size: 10px; }
.immutable-history-notice small { color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.immutable-history-notice em { color: var(--ops-green); font-size: 10.5px; font-style: normal; font-weight: 700; }
.immutable-history-notice.is-compact { margin-top: 0; grid-template-columns: 22px minmax(0,1fr); }
.history-filters { margin-top: 14px; display: grid; grid-template-columns: 120px 150px 170px minmax(180px,1fr) 72px; gap: 7px; }
.history-filters select, .history-filters label, .history-filters > button { height: 36px; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; color: var(--ops-ink); font-size: 9px; }
.history-filters select { padding: 0 28px 0 9px; }
.history-filters label { padding: 0 9px; display: flex; align-items: center; gap: 6px; }
.history-filters label svg { width: 14px; color: var(--ops-muted); }
.history-filters input { min-width: 0; width: 100%; border: 0; outline: 0; font-size: 9px; }
.history-filters > button { border-color: var(--ops-green); background: var(--ops-green); color: #fff; cursor: pointer; }
.history-panel .admin-data-table td:nth-child(5), .history-panel .admin-data-table td:nth-child(6) { white-space: nowrap; }
.history-panel .cell-note { margin-top: 4px; display: block; }
.history-pagination { min-height: 54px; padding: 0 14px; border-top: 1px solid var(--ops-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.history-pagination span { color: var(--ops-muted); font-size: 10px; }
.history-pagination button { min-height: 30px; padding: 0 9px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; gap: 4px; font-size: 10px; cursor: pointer; }
.history-pagination button:disabled { opacity: .4; cursor: default; }
.history-pagination svg { width: 13px; }
.history-detail-meta { margin-bottom: 16px; border: 1px solid var(--ops-line); border-radius: 7px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
.history-detail-meta > div { min-height: 62px; padding: 11px 13px; border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 5px; }
.history-detail-meta > div:nth-child(2n) { border-right: 0; }
.history-detail-meta > div:last-child { border-bottom: 0; }
.history-detail-meta small { color: var(--ops-muted); font-size: 10px; }
.history-detail-meta strong { overflow-wrap: anywhere; font-size: 9px; }
.history-snapshot { margin-top: 18px; }
.history-snapshot pre { max-height: 360px; margin: 10px 0 0; padding: 14px; border: 1px solid var(--ops-line); border-radius: 6px; background: #121b18; color: #dce9e4; overflow: auto; font: 9px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace; white-space: pre-wrap; }
.metric-dictionary, .saved-reports { border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.metric-dictionary > .section-title, .saved-reports > .section-title { min-height: 64px; padding: 0 16px; border-bottom: 1px solid var(--ops-line); }
.metric-dictionary > .section-title > strong, .saved-reports > .section-title > strong { color: var(--ops-muted); font-size: 9px; }
.metric-dictionary > button, .saved-reports > button { width: 100%; min-height: 62px; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: minmax(0,1fr) auto 14px; gap: 9px; align-items: center; text-align: left; cursor: pointer; }
.metric-dictionary > button:last-child, .saved-reports > button:last-child { border-bottom: 0; }
.metric-dictionary > button:hover, .saved-reports > button:hover { background: #f8faf9; }
.metric-dictionary > button > span, .saved-reports > button > span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.metric-dictionary button strong, .saved-reports button strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.metric-dictionary button small, .saved-reports button small { overflow: hidden; color: var(--ops-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.metric-dictionary button > svg, .saved-reports button > svg { width: 13px; color: #a0aab1; }

.release-health { grid-template-columns: repeat(4,minmax(0,1fr)); }
.release-health article { min-height: 96px; padding: 16px 18px; border-right: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 7px; }
.release-health article:last-child { border-right: 0; }
.release-health article > span { color: var(--ops-muted); font-size: 10px; }
.release-health article > strong { font-size: 17px; font-weight: 670; letter-spacing: 0; }
.release-health article > small { color: var(--ops-muted); font-size: 10px; line-height: 1.4; }
.release-health article.is-healthy > strong { color: var(--ops-green); }
.rollout-lane { margin: 18px 0 22px; border: 1px solid var(--ops-line); border-radius: 7px; background: #fff; overflow: hidden; }
.rollout-lane > button { width: 100%; min-height: 86px; padding: 12px 17px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 36px minmax(190px,1fr) minmax(180px,.7fr) auto 14px; gap: 12px; align-items: center; text-align: left; cursor: pointer; }
.rollout-lane > button:last-child { border-bottom: 0; }
.rollout-lane > button:hover { background: #f8faf9; }
.release-platform { width: 34px; height: 34px; border-radius: 7px; background: #edf6f3; color: var(--ops-green); display: grid; place-items: center; }
.release-platform svg { width: 17px; }
.rollout-lane > button > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; }
.rollout-lane > button > span:nth-child(2) small, .rollout-lane > button > span:nth-child(2) em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
.rollout-lane > button > span:nth-child(2) strong { font-size: 10px; }
.rollout-lane > button > svg { width: 13px; color: #9da7ae; }
.rollout-progress { display: flex; flex-direction: column; gap: 6px; }
.rollout-progress > span { height: 5px; border-radius: 999px; background: #e8eeeb; overflow: hidden; }
.rollout-progress > span > i { display: block; height: 100%; border-radius: inherit; background: var(--ops-green); }
.rollout-progress small { color: var(--ops-muted); font-size: 10px; }
.release-rules { margin-top: 18px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.release-rules > div { min-height: 92px; padding: 15px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f9fbfa; display: flex; gap: 10px; }
.release-rules > div > svg { width: 18px; color: var(--ops-green); flex: none; }
.release-rules > div > span { display: flex; flex-direction: column; gap: 6px; }
.release-rules strong { font-size: 9px; }
.release-rules small { color: var(--ops-muted); font-size: 10px; line-height: 1.55; }

.object-timeline { margin-top: 20px; border-top: 1px solid var(--ops-line); padding-top: 18px; }
.object-timeline > div:not(.section-title) { min-height: 52px; margin-left: 7px; padding: 8px 0 8px 18px; border-left: 1px solid var(--ops-line-strong); display: flex; gap: 10px; align-items: flex-start; }
.object-timeline > div:not(.section-title) > svg { width: 14px; margin-left: -25px; padding: 3px; border-radius: 50%; background: #fff; color: var(--ops-green); box-sizing: content-box; }
.object-timeline > div:not(.section-title) span { display: flex; flex-direction: column; gap: 5px; }
.object-timeline strong { font-size: 9px; line-height: 1.5; }
.object-timeline small, .object-timeline > p { color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.object-timeline > p { margin: 10px 0 0; padding: 14px; border-radius: 6px; background: #f7f9f8; text-align: center; }

@media (max-width: 1080px) {
  .traffic-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .traffic-kpis article:nth-child(2) { border-right: 0; }
  .traffic-kpis article:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .traffic-grid { grid-template-columns: 1fr; }
  .analytics-real-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .analytics-real-summary article:nth-child(3) { border-right: 0; }
  .analytics-real-summary article:nth-child(-n+3) { border-bottom: 1px solid var(--ops-line); }
  .history-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .history-filters label { grid-column: 1/3; }
  .schema-principles, .release-health { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .schema-principles > div:nth-child(2), .release-health article:nth-child(2) { border-right: 0; }
  .release-rules { grid-template-columns: 1fr; }
  .identity-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .identity-overview article:nth-child(2) { border-right: 0; }
  .identity-overview article:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
}

@media (max-width: 760px) {
  .traffic-list-grid, .traffic-geo-list { grid-template-columns: 1fr; }
  .traffic-geo-row:nth-last-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .traffic-geo-row:last-child { border-bottom: 0; }
  .infrastructure-summary,.infrastructure-rules { grid-template-columns: 1fr 1fr; }
  .infrastructure-summary article:nth-child(2),.infrastructure-rules > div:nth-child(2) { border-right: 0; }
  .infrastructure-grid { grid-template-columns: 1fr; }
  .infrastructure-boundary { grid-template-columns: 1fr; }
  .infrastructure-boundary > svg { transform: rotate(90deg); justify-self: center; }
  .infrastructure-fields { grid-template-columns: 1fr; }
  .analytics-module-picker { grid-template-columns: 1fr; }
  .module-analysis-grid { grid-template-columns: 1fr; }
  .history-filters { grid-template-columns: 1fr 1fr; }
  .history-filters label { grid-column: 1/-1; }
  .governance-summary, .content-ops-strip { grid-template-columns: 1fr; }
  .governance-summary article, .content-ops-strip article { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .governance-summary article:last-child, .content-ops-strip article:last-child { border-bottom: 0; }
  .species-review-coverage { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .species-review-columns, .species-review-support { grid-template-columns: 1fr; }
  .learning-coverage-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .learning-coverage-toolbar { align-items: flex-start; flex-direction: column; }
  .rollout-lane > button { grid-template-columns: 36px minmax(0,1fr) auto; }
  .rollout-progress { grid-column: 2/-1; }
  .rollout-lane > button > svg { display: none; }
  .analytics-governance-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .traffic-kpis article { min-height: 96px; padding: 12px; }
  .traffic-heading, .analytics-section-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .analytics-real-summary { grid-template-columns: 1fr 1fr; }
  .analytics-real-summary article, .analytics-real-summary article:nth-child(3) { border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); }
  .analytics-real-summary article:nth-child(2n) { border-right: 0; }
  .analytics-real-summary article:last-child { border-bottom: 0; }
  .history-filters { grid-template-columns: 1fr; }
  .history-filters label { grid-column: auto; }
  .history-detail-meta { grid-template-columns: 1fr; }
  .history-detail-meta > div { border-right: 0; }
  .schema-principles, .release-health { grid-template-columns: 1fr; }
  .release-health article { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .release-health article:last-child { border-bottom: 0; }
  .privacy-workbench > button, .change-request-board > button, .asset-library > button, .object-workbench > button, .case-workbench > button, .macro-library > button { grid-template-columns: 30px minmax(0,1fr) auto; }
  .privacy-workbench button > .entity-status, .change-request-board button > .entity-status, .asset-library button > .entity-status, .object-workbench button > .entity-status, .case-workbench button > .entity-status, .macro-library button > .entity-status, .privacy-workbench button > svg, .change-request-board button > svg, .asset-library button > svg, .object-workbench button > svg, .case-workbench button > svg, .macro-library button > svg { display: none; }
  .change-request-board .risk-tag, .asset-library button > em, .case-workbench button > em, .macro-library button > em { grid-column: 2; }
  .identity-overview { grid-template-columns: 1fr; }
  .identity-overview article { border-right: 0; border-bottom: 1px solid var(--ops-line); }
  .identity-overview article:last-child { border-bottom: 0; }
}

/* Event operations: manual intake and evidence-backed discovery stay separate. */
.event-entry-actions { margin-top: 24px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.event-entry-actions > button { min-height: 92px; padding: 16px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); color: var(--ops-ink); box-shadow: var(--ops-shadow); display: grid; grid-template-columns: 38px minmax(0,1fr) 18px; gap: 12px; align-items: center; text-align: left; cursor: pointer; }
.event-entry-actions > button:hover { border-color: #a9c8bd; box-shadow: 0 8px 24px rgba(18,26,33,.07); }
.event-entry-actions > button.is-discovery { border-color: #bad9ce; background: #f8fcfa; }
.event-entry-actions > button:disabled { opacity: .78; cursor: progress; }
.event-entry-icon { width: 38px; height: 38px; border-radius: 7px; background: var(--ops-green-soft); color: var(--ops-green); display: grid; place-items: center; }
.event-entry-icon svg { width: 18px; height: 18px; }
.event-entry-actions > button > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.event-entry-actions strong { font-size: 12px; }
.event-entry-actions small { color: var(--ops-muted); font-size: 10px; line-height: 1.45; }
.event-entry-actions > button > svg { width: 16px; color: #98a2ab; }
.event-entry-actions .is-running .event-entry-icon svg,
.event-discovery-status.is-running .event-run-mark svg { animation: event-discovery-spin 1s linear infinite; }

.event-discovery-empty { min-height: 64px; margin-top: 12px; padding: 12px 15px; border: 1px dashed var(--ops-line-strong); border-radius: 7px; color: var(--ops-muted); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: center; }
.event-discovery-empty > svg { width: 18px; color: var(--ops-green); }
.event-discovery-empty span { display: flex; flex-direction: column; gap: 4px; }
.event-discovery-empty strong { color: var(--ops-ink); font-size: 10px; }
.event-discovery-empty small { font-size: 11px; line-height: 1.5; }

.event-discovery-status { margin-top: 12px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); overflow: hidden; }
.event-discovery-status.is-complete { border-color: #b8d8cc; }
.event-discovery-status.is-failed { border-color: #e6b9b6; }
.event-discovery-status > header { min-height: 78px; padding: 14px 16px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 11px; align-items: center; }
.event-run-mark { width: 34px; height: 34px; border-radius: 50%; background: var(--ops-green-soft); color: var(--ops-green); display: grid; place-items: center; }
.event-discovery-status.is-failed .event-run-mark { background: var(--ops-red-soft); color: var(--ops-red); }
.event-run-mark svg { width: 17px; }
.event-discovery-status > header > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.event-discovery-status > header small,
.event-discovery-status > header p,
.event-discovery-status > header em { color: var(--ops-muted); font-size: 10.5px; font-style: normal; line-height: 1.45; }
.event-discovery-status > header strong { font-size: 12px; }
.event-discovery-status > header p { margin: 0; }
.event-discovery-status > header em { align-self: start; white-space: nowrap; }
.event-discovery-stats { border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.event-discovery-stats > span { min-height: 61px; padding: 11px 13px; border-right: 1px solid var(--ops-line); display: grid; grid-template-columns: 18px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 7px; align-content: center; }
.event-discovery-stats > span:last-child { border-right: 0; }
.event-discovery-stats svg { width: 15px; grid-row: 1 / 3; color: var(--ops-green); align-self: center; }
.event-discovery-stats small { color: var(--ops-muted); font-size: 10px; }
.event-discovery-stats strong { margin-top: 2px; font-size: 13px; }
.event-discovery-boundary { margin: 0; padding: 10px 14px; border-top: 1px solid #cfe4dc; background: var(--ops-green-soft); color: #275f50; display: flex; align-items: center; gap: 7px; font-size: 11px; line-height: 1.45; }
.event-discovery-boundary svg { width: 14px; flex: none; }
.event-discovery-results { margin-top: 12px; padding: 16px; border: 1px solid #b8d8cc; border-radius: 7px; background: #fbfefc; }
.event-discovery-results .section-title { margin: 0; align-items: center; }
.event-review-required { display: inline-flex; align-items: center; gap: 5px; color: #2c6b59; font-size: 11px; font-style: normal; white-space: nowrap; }
.event-review-required svg { width: 14px; }
.event-discovery-result-list { margin-top: 12px; border-top: 1px solid var(--ops-line); }
.event-discovery-result-row { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--ops-line); }
.event-discovery-result-row:last-child { border-bottom: 0; }
.event-discovery-result-actions a { color: var(--ops-green); font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.event-discovery-unclassified { margin: 0; color: var(--ops-muted); font-size: 12px; line-height: 1.6; }
.production-feedback-entry { display: flex; box-sizing: border-box; margin: 18px 0 24px; padding: 18px 20px; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--ops-line); border-radius: 10px; background: var(--ops-surface); }
.production-feedback-entry h2 { margin: 5px 0 4px; font-size: 16px; }
.production-feedback-entry p { margin: 0; color: var(--ops-muted); font-size: 11px; line-height: 1.5; }
.production-feedback-entry .section-eyebrow { color: var(--ops-green); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.event-discovery-result-index { color: var(--ops-green); font-size: 11px; font-variant-numeric: tabular-nums; }
.event-discovery-result-main { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.event-discovery-result-main strong { overflow: hidden; color: var(--ops-ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.event-discovery-result-main span,
.event-discovery-result-main small { color: var(--ops-muted); font-size: 11px; line-height: 1.45; }
.event-discovery-result-actions { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.event-discovery-result-actions a,
.event-discovery-result-actions button { display: inline-flex; min-height: 30px; padding: 0 10px; align-items: center; gap: 5px; border: 1px solid var(--ops-line-strong); border-radius: 5px; background: var(--ops-surface); color: var(--ops-green-deep); font-size: 10px; text-decoration: none; cursor: pointer; }
.event-discovery-result-actions button { border-color: #8fc5b2; background: #edf8f3; font-weight: 700; }
.event-discovery-result-actions svg { width: 13px; }
.event-result-unavailable { color: var(--ops-muted); font-size: 11px; }

.event-candidate-section { margin-top: 28px; }
.event-admin-list { margin-top: 10px; border-top: 1px solid var(--ops-line); }
.event-admin-row { width: 100%; min-height: 82px; padding: 12px 4px; border: 0; border-bottom: 1px solid var(--ops-line); background: transparent; color: var(--ops-ink); display: grid; grid-template-columns: 74px minmax(0,1fr) auto 18px; gap: 13px; align-items: center; text-align: left; cursor: pointer; }
.event-admin-row:hover { background: rgba(255,255,255,.7); }
.event-admin-date { min-height: 47px; padding-right: 12px; border-right: 1px solid var(--ops-line); display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.event-admin-date strong { font-size: 12px; }
.event-admin-date small { color: var(--ops-muted); font-size: 10.5px; }
.event-admin-row > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.event-admin-row > span:nth-child(2) > small { color: var(--ops-muted); display: flex; align-items: center; gap: 7px; font-size: 9px; }
.event-admin-row > span:nth-child(2) > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.event-admin-row > span:nth-child(2) > em { color: var(--ops-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-style: normal; }
.event-admin-row > svg { width: 15px; color: #9aa4ac; }
.event-origin-tag { min-height: 20px; padding: 0 6px; border-radius: 4px; background: var(--ops-violet-soft); color: var(--ops-violet); display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.event-origin-tag.is-manual { background: var(--ops-blue-soft); color: var(--ops-blue); }
.event-origin-tag svg { width: 11px; }
.event-status { padding: 5px 7px; border-radius: 4px; background: #eef1f3; color: var(--ops-muted); font-size: 10px; white-space: nowrap; }
.event-status.is-draft { background: var(--ops-amber-soft); color: var(--ops-amber); }
.event-status.is-pending_changes { background: var(--ops-red-soft); color: var(--ops-red); }
.event-status.is-verified { background: var(--ops-green-soft); color: var(--ops-green); }
.event-status.is-cancelled { background: #eef1f3; color: #5e6871; }

.event-editor-note { color: var(--ops-muted); font-size: 10px; line-height: 1.6; }
.event-form-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.event-form-grid label,
.event-source-fields label { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.event-form-grid label.is-wide { grid-column: 1 / -1; }
.event-form-grid label > span,
.event-source-fields label > span { font-size: 9px; font-weight: 700; }
.event-form-grid input,
.event-form-grid select,
.event-source-fields input { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font-size: 10px; }
.event-source-fields { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.event-source-fields h3 { grid-column: 1 / -1; margin: 0 0 3px; font-size: 11px; }
.event-release-actions { margin-top: 10px; display: flex; gap: 8px; }
.event-release-actions button { min-height: 38px; padding: 0 11px; border: 1px solid var(--ops-green); border-radius: 5px; background: transparent; color: var(--ops-green); display: inline-flex; align-items: center; gap: 6px; font-size: 9px; cursor: pointer; }
.event-release-actions button.is-danger { border-color: var(--ops-red); color: var(--ops-red); }
.event-release-actions svg { width: 14px; }

@keyframes event-discovery-spin { to { transform: rotate(360deg); } }

@media (max-width: 720px) {
  .event-entry-actions { grid-template-columns: 1fr; }
  .event-discovery-status > header { grid-template-columns: 34px minmax(0,1fr); }
  .event-discovery-status > header > em { grid-column: 2; }
  .event-discovery-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-discovery-stats > span:nth-child(2) { border-right: 0; }
  .event-discovery-stats > span:nth-child(-n+2) { border-bottom: 1px solid var(--ops-line); }
  .event-discovery-result-row { grid-template-columns: 24px minmax(0,1fr); }
  .event-discovery-result-actions { grid-column: 2; }
  .event-review-required { white-space: normal; }
  .event-admin-row { grid-template-columns: 60px minmax(0,1fr) auto; gap: 9px; }
  .event-admin-row > svg { display: none; }
}

@media (max-width: 480px) {
  .event-admin-row { grid-template-columns: 52px minmax(0,1fr); }
  .event-admin-row > .event-status { grid-column: 2; justify-self: start; }
  .event-admin-row > span:nth-child(2) > small { align-items: flex-start; flex-wrap: wrap; }
  .event-form-grid,
  .event-source-fields { grid-template-columns: 1fr; }
  .event-form-grid label.is-wide,
  .event-source-fields h3 { grid-column: 1; }
  .event-release-actions { flex-direction: column; }
}

.analytics-controls .data-freshness { display: grid; grid-template-columns: 10px minmax(0,1fr); column-gap: 6px; align-items: center; }
.analytics-controls .data-freshness i { grid-row: 1 / 3; margin: 0; }
.analytics-controls .data-freshness b { color: var(--ops-ink); font-size: 9px; font-weight: 700; }
.analytics-controls .data-freshness small { color: var(--ops-muted); font-size: 10px; }

.brand-asset-manager { margin-bottom: 18px; padding: 16px; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; display: grid; grid-template-columns: 92px minmax(0,1fr) auto; align-items: center; gap: 16px; }
.brand-asset-preview { width: 92px; height: 92px; padding: 5px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f2f4f3; }
.brand-asset-preview img { width: 100%; height: 100%; border-radius: 4px; object-fit: cover; }
.brand-asset-copy { min-width: 0; }
.brand-asset-copy > small { color: var(--ops-green); font-size: 10px; font-weight: 750; }
.brand-asset-copy h2 { margin: 4px 0 5px; font-size: 15px; letter-spacing: 0; }
.brand-asset-copy p { max-width: 620px; margin: 0; color: var(--ops-muted); font-size: 11px; line-height: 1.6; }
.brand-asset-copy > span { margin-top: 8px; color: #8a641d; display: inline-flex; align-items: center; gap: 5px; font-size: 10px; }
.brand-asset-copy > span svg { width: 13px; }
.brand-asset-actions { display: flex; align-items: center; gap: 7px; }
.brand-asset-actions button { min-height: 36px; padding: 0 11px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; gap: 5px; font-size: 9px; cursor: pointer; white-space: nowrap; }
.brand-asset-actions button.is-primary { border-color: var(--ops-green); background: var(--ops-green); color: #fff; }
.brand-asset-actions svg { width: 14px; }
.brand-icon-upload-preview img { aspect-ratio: 1; max-height: 420px; }

.species-media-manager { margin-top: 18px; padding: 18px; border: 1px solid var(--ops-line); border-radius: 6px; background: #fff; }
.species-media-toolbar { margin: 14px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.species-media-toolbar label { width: min(360px,100%); height: 38px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; display: flex; align-items: center; gap: 8px; }
.species-media-toolbar label svg, .species-media-toolbar > span svg { width: 14px; flex: none; }
.species-media-toolbar input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ops-ink); font-size: 10px; }
.species-media-toolbar > span { color: var(--ops-muted); display: flex; align-items: center; gap: 6px; font-size: 9px; }
.species-media-list { max-height: 560px; padding-right: 5px; overflow-y: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; scrollbar-gutter: stable; }
.species-media-row { min-width: 0; min-height: 72px; padding: 8px; border: 1px solid var(--ops-line); border-radius: 5px; display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.species-media-row[hidden] { display: none; }
.species-media-row > img { width: 72px; height: 54px; border-radius: 4px; object-fit: cover; background: #edf0ee; }
.species-media-row > span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.species-media-row strong { overflow: hidden; color: var(--ops-ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.species-media-row small, .species-media-row em { overflow: hidden; color: var(--ops-muted); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.species-media-row button { min-height: 32px; padding: 0 9px; border: 1px solid var(--ops-line); border-radius: 4px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; gap: 5px; font-size: 9px; cursor: pointer; }
.species-media-row button:hover { border-color: var(--ops-green); color: var(--ops-green); }
.species-media-row button svg { width: 13px; }

.species-upload-preview { padding: 12px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f5f7f6; display: grid; grid-template-columns: minmax(0,1fr) 150px; align-items: center; gap: 16px; }
.species-upload-preview img { width: 100%; max-height: 440px; border-radius: 5px; object-fit: contain; background: #e7ebe9; }
.species-upload-preview span { display: flex; flex-direction: column; gap: 5px; }
.species-upload-preview strong { font-size: 13px; }
.species-upload-preview small { color: var(--ops-muted); font-size: 11px; line-height: 1.5; }
.species-upload-actions { margin-top: auto; padding-top: 18px; display: flex; justify-content: flex-end; gap: 8px; }
.species-upload-actions button { min-height: 38px; padding: 0 14px; border-radius: 5px; display: inline-flex; align-items: center; gap: 6px; font-size: 10px; cursor: pointer; }
.species-upload-actions button.is-secondary { border: 1px solid var(--ops-line); background: #fff; }
.species-upload-actions button.is-primary { border: 1px solid var(--ops-green); background: var(--ops-green); color: #fff; }
.species-upload-actions button:disabled { opacity: .58; cursor: wait; }
.species-upload-actions svg { width: 14px; }

@media (max-width: 1080px) {
  .species-media-list { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .analytics-controls .filter-group { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .species-media-manager { padding: 13px; }
  .species-media-toolbar { align-items: flex-start; flex-direction: column; }
  .species-media-row { grid-template-columns: 62px minmax(0,1fr); }
  .species-media-row > img { width: 62px; height: 48px; }
  .species-media-row button { grid-column: 2; justify-self: start; }
  .species-upload-preview { grid-template-columns: 1fr; }
  .brand-asset-manager { grid-template-columns: 72px minmax(0,1fr); align-items: start; }
  .brand-asset-preview { width: 72px; height: 72px; }
  .brand-asset-actions { grid-column: 1 / -1; justify-content: flex-end; }
}
/* Share center */
.share-admin-funnel { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; align-items: center; gap: 10px; margin-bottom: 18px; }
.share-admin-funnel article { min-height: 116px; padding: 18px; display: grid; align-content: center; gap: 5px; border: 1px solid var(--line, #dde2dd); border-radius: 6px; background: #fff; }
.share-admin-funnel article span, .share-admin-funnel article small { color: #6a746d; }
.share-admin-funnel article strong { font-size: 28px; }
.share-admin-funnel > svg { width: 18px; color: #8c958e; }
.share-admin-status { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.share-admin-status > div { padding: 15px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--line, #dde2dd); background: #fff; }
.share-admin-status > div > svg { width: 20px; color: #3d7050; }
.share-admin-status span { display: grid; gap: 2px; }
.share-admin-status strong { font-size: 20px; }
.share-admin-status small { color: #6c766f; }
.share-template-panel, .share-type-performance, .share-snapshot-panel, .share-compliance-note { margin-bottom: 18px; padding: 18px; border: 1px solid var(--line, #dde2dd); background: #fff; }
.share-template-list { display: grid; }
.share-template-list article { min-height: 92px; display: grid; grid-template-columns: 42px minmax(0,1fr) 120px 92px; align-items: center; gap: 14px; border-top: 1px solid #e5e9e5; }
.share-template-icon { width: 38px; height: 38px; display: grid; place-items: center; background: #edf2ed; color: #3b6c4b; }
.share-template-icon svg { width: 19px; }
.share-template-list article > div { display: grid; gap: 3px; }
.share-template-list article > div small, .share-template-list article > div p { margin: 0; color: #6d776f; font-size: 12px; }
.share-template-list label { display: grid; gap: 4px; font-size: 11px; color: #727b75; }
.share-template-list select { min-height: 34px; border: 1px solid #d3dad4; background: #fff; }
.share-template-list article > button { min-height: 36px; border: 1px solid #cfd7d1; background: #f4f6f4; color: #68736b; }
.share-template-list article > button.is-enabled { color: #2d6741; border-color: #b8d0bf; background: #eaf3ec; }
.share-template-list article > button svg { width: 17px; vertical-align: middle; margin-right: 5px; }
.share-performance-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.share-performance-grid article { padding: 14px; display: grid; gap: 6px; border: 1px solid #e0e5e1; }
.share-performance-grid article > strong { font-size: 24px; }
.share-performance-grid article small { color: #6f7972; }
.share-performance-grid article > div { height: 5px; overflow: hidden; background: #e8ece9; }
.share-performance-grid article > div i { height: 100%; display: block; background: #477a58; }
.share-snapshot-table { display: grid; }
.share-snapshot-table article { min-height: 58px; display: grid; grid-template-columns: minmax(0,1fr) 170px 78px 70px; align-items: center; gap: 10px; border-top: 1px solid #e5e9e5; }
.share-snapshot-table article > span { display: grid; gap: 2px; }
.share-snapshot-table small, .share-snapshot-table time { color: #737d76; font-size: 12px; }
.share-snapshot-table em { width: fit-content; padding: 4px 7px; background: #eaf3ec; color: #356b47; font-style: normal; font-size: 11px; }
.share-snapshot-table em.is-revoked, .share-snapshot-table em.is-expired { background: #eee; color: #6f746f; }
.share-snapshot-table button { border: 0; background: transparent; color: #9a3838; }
.share-snapshot-table button svg { width: 15px; vertical-align: middle; margin-right: 3px; }
.share-compliance-note { display: flex; gap: 12px; border-left: 3px solid #9b6235; }
.share-compliance-note > svg { width: 21px; color: #8c552e; flex: none; }
.share-compliance-note p { margin: 5px 0 0; color: #606b63; line-height: 1.6; }
@media (max-width: 1050px) { .share-admin-funnel { grid-template-columns: repeat(2,1fr); } .share-admin-funnel > svg { display:none; } .share-admin-status, .share-performance-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 700px) { .share-admin-status, .share-performance-grid { grid-template-columns: 1fr; } .share-template-list article { padding: 12px 0; grid-template-columns: 38px 1fr; } .share-template-list label, .share-template-list article > button { grid-column: 2; } .share-snapshot-table article { padding: 10px 0; grid-template-columns: 1fr auto; } .share-snapshot-table time { display: none; } }

.live-media-review { margin-top: 22px; }
.media-review-safety-note { min-height: 48px; padding: 10px 18px; border-bottom: 1px solid var(--ops-line); background: #f8faf9; color: var(--ops-muted); display: flex; align-items: center; gap: 9px; font-size: 11px; }
.media-review-safety-note > svg { width: 15px; color: var(--ops-green); flex: none; }
.media-review-safety-note > span { flex: 1; }
.media-review-safety-note button { width: 29px; height: 29px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-muted); display: grid; place-items: center; cursor: pointer; }
.media-review-safety-note button svg { width: 14px; }
.media-review-row { width: 100%; min-height: 78px; padding: 11px 16px; border: 0; border-bottom: 1px solid var(--ops-line); background: #fff; display: grid; grid-template-columns: 34px minmax(0,1fr) auto 14px; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.media-review-row:last-of-type { border-bottom: 0; }
.media-review-row:hover { background: #f8faf9; }
.media-review-kind { width: 32px; height: 32px; border-radius: 7px; background: #edf4f0; color: var(--ops-green); display: grid; place-items: center; }
.media-review-kind.is-video { background: #edf1f6; color: #456c8a; }
.media-review-kind svg { width: 16px; }
.media-review-copy { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.media-review-copy strong { overflow: hidden; color: var(--ops-ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.media-review-copy small { overflow: hidden; color: var(--ops-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.media-review-wait { color: #9a621f; font-size: 10px; font-style: normal; white-space: nowrap; }
.media-review-row > svg { width: 13px; color: #a0aab1; }
.media-review-boundary { min-height: 92px; padding: 18px; display: flex; align-items: center; gap: 10px; color: var(--ops-muted); }
.media-review-boundary > svg { width: 20px; color: var(--ops-green); flex: none; }
.media-review-boundary > span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.media-review-boundary strong { color: var(--ops-ink); font-size: 10px; }
.media-review-boundary small { font-size: 10px; line-height: 1.5; }
.media-review-boundary.is-warning > svg { color: var(--ops-amber); }
.media-review-boundary button, .media-review-load-more { min-height: 32px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font-size: 9px; cursor: pointer; }
.media-review-load-more { width: calc(100% - 32px); margin: 12px 16px 16px; }
.media-review-drawer > main { padding-top: 18px; }
.media-review-preview-wrap { padding: 10px; border: 1px solid var(--ops-line); border-radius: 7px; background: #19201d; }
.media-review-preview-label { padding: 0 2px 9px; display: flex; justify-content: space-between; color: #fff; font-size: 9px; }
.media-review-preview-label small { color: #b9c5be; font-size: 10px; }
.media-review-preview { width: 100%; max-height: 360px; border-radius: 4px; background: #0f1412; display: block; object-fit: contain; }
.media-review-no-preview { min-height: 170px; color: #c7d0ca; display: grid; place-items: center; gap: 8px; text-align: center; font-size: 11px; }
.media-review-no-preview svg { width: 23px; }
.media-review-facts { margin-top: 17px; display: grid; gap: 10px; }
.media-review-facts > div { padding-bottom: 9px; border-bottom: 1px solid var(--ops-line); display: flex; flex-direction: column; gap: 4px; }
.media-review-facts small { color: var(--ops-muted); font-size: 10px; }
.media-review-facts strong { overflow-wrap: anywhere; color: var(--ops-ink); font-size: 9px; line-height: 1.45; }
.media-review-decision-form { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--ops-line); }
.media-review-decision-form h3, .media-review-history h3 { margin: 0; font-size: 11px; }
.media-review-decision-form p { margin: 6px 0 12px; color: var(--ops-muted); font-size: 11px; line-height: 1.5; }
.media-review-decision-form label { display: grid; gap: 6px; }
.media-review-decision-form label > span { font-size: 9px; font-weight: 700; }
.media-review-decision-form textarea { min-height: 86px; padding: 10px; border: 1px solid var(--ops-line); border-radius: 5px; resize: vertical; font-size: 10px; line-height: 1.5; }
.media-review-decision-actions { margin-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.media-review-decision-actions:has(button:nth-child(3)) { grid-template-columns: repeat(3,1fr); }
.media-review-decision-actions button, .media-review-confirm button { min-height: 38px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); display: inline-flex; align-items: center; justify-content: center; gap: 5px; font-size: 9px; cursor: pointer; }
.media-review-decision-actions button svg { width: 14px; }
.media-review-decision-actions .is-danger { border-color: #ebc9c5; background: #fff8f7; color: #a0463e; }
.media-review-decision-actions .is-primary, .media-review-confirm .is-primary { border-color: var(--ops-green); background: var(--ops-green); color: #fff; }
.community-text-review-content { margin-top: 18px; padding: 14px; border: 1px solid var(--ops-line); border-radius: 5px; background: #f8faf9; }
.community-text-review-content > small { color: var(--ops-muted); font-size: 11px; font-weight: 700; }
.community-text-review-content > p { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ops-ink); font-size: 11px; line-height: 1.75; }
.community-text-review-content > div { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.community-text-review-content > div span { padding: 3px 7px; border: 1px solid var(--ops-line); border-radius: 4px; background: #fff; color: var(--ops-muted); font-size: 10px; }
.media-review-locked { margin-top: 18px; padding: 13px; border: 1px solid #efcac7; border-radius: 6px; background: var(--ops-red-soft); color: var(--ops-red); display: flex; gap: 8px; font-size: 11px; line-height: 1.5; }
.media-review-locked svg { width: 15px; flex: none; }
.media-review-history { margin-top: 22px; display: grid; gap: 18px; }
.media-review-history > div { min-width: 0; }
.media-review-history ul { margin: 8px 0 0; padding: 0; list-style: none; }
.media-review-history li { padding: 9px 0; border-top: 1px solid var(--ops-line); display: grid; gap: 3px; }
.media-review-history li strong { font-size: 9px; }
.media-review-history li span, .media-review-history li small { color: var(--ops-muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.media-review-loading { min-height: 220px; display: grid; place-items: center; color: var(--ops-muted); font-size: 11px; }
.media-review-loading svg { width: 22px; animation: media-review-spin 1s linear infinite; }
@keyframes media-review-spin { to { transform: rotate(360deg); } }
.media-review-confirm { margin-top: 0; padding: 15px; border: 1px solid var(--ops-line); border-radius: 7px; display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 8px; }
.media-review-confirm > svg { width: 18px; }
.media-review-confirm h3 { margin: 0; font-size: 11px; }
.media-review-confirm p, .media-review-confirm small { margin: 6px 0 0; color: var(--ops-muted); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.media-review-confirm > div:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.media-review-confirm.is-approve { border-color: #bddac8; background: #f3faf5; color: var(--ops-green); }
.media-review-confirm.is-reject { border-color: #ebc9c5; background: #fff8f7; color: #a0463e; }
.media-review-confirm button:first-child { color: var(--ops-muted); }
@media (max-width: 700px) { .media-review-row { grid-template-columns: 34px minmax(0,1fr) auto; } .media-review-row > svg { display: none; } .media-review-wait { grid-column: 2; justify-self: start; } .media-review-boundary { align-items: flex-start; flex-wrap: wrap; } .media-review-boundary button { margin-left: 30px; } .media-review-decision-actions:has(button:nth-child(3)) { grid-template-columns: 1fr; } }

.commerce-release-banner { min-height: 76px; margin-bottom: 16px; padding: 15px 18px; border: 1px solid var(--ops-line); border-radius: 7px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.commerce-release-banner.is-held { border-color: #efd7a9; background: #fff9eb; }
.commerce-release-banner.is-open { border-color: #bddac8; background: #f3faf5; }
.commerce-release-banner > svg { width: 22px; color: var(--ops-amber); }
.commerce-release-banner span { display: flex; flex-direction: column; gap: 4px; }
.commerce-release-banner strong { font-size: 12px; }
.commerce-release-banner small,.commerce-release-banner em { color: var(--ops-muted); font-size: 10.5px; font-style: normal; line-height: 1.45; }
.commerce-release-banner em { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.commerce-real-metrics { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.commerce-real-metrics article { min-height: 112px; padding: 16px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); display: flex; flex-direction: column; }
.commerce-real-metrics span { color: var(--ops-muted); font-size: 9px; }
.commerce-real-metrics strong { margin-top: 11px; font-size: 25px; line-height: 1; }
.commerce-real-metrics small { margin-top: auto; color: var(--ops-muted); font-size: 10px; }
.commerce-real-metrics .is-warning strong { color: var(--ops-amber); }
.commerce-real-metrics .is-danger strong { color: var(--ops-red); }
.commerce-work-grid { margin-bottom: 16px; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.75fr); gap: 14px; }
.manual-product-panel { margin-bottom: 16px; padding: 18px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); scroll-margin-top: 80px; }
#manualProductForm { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
#manualProductForm > label { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
#manualProductForm > label > span,#manualProductForm legend { color: var(--ops-muted); font-size: 9px; }
#manualProductForm input,#manualProductForm select,#manualProductForm textarea { box-sizing: border-box; width: 100%; padding: 9px 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; color: var(--ops-ink); font: inherit; }
#manualProductForm .is-wide { grid-column: span 2; }
#manualProductForm fieldset { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; padding: 12px; border: 1px solid var(--ops-line); border-radius: 5px; }
#manualProductForm fieldset label { display: inline-flex; align-items: center; gap: 5px; font-size: 9px; }
#manualProductForm fieldset input { width: auto; }
#manualProductForm > button { grid-column: 1 / -1; justify-self: start; }
.product-row-actions { display: flex; margin-top: 6px; gap: 6px; }
.product-row-actions button { padding: 4px 7px; border: 1px solid var(--ops-line); border-radius: 4px; background: #fff; font-size: 10px; }
.catalog-import-panel,.catalog-policy-panel,.catalog-group-coverage,.catalog-product-table,.catalog-import-history { padding: 18px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); }
#supplierCatalogImportForm { display: grid; grid-template-columns: minmax(180px,.55fr) minmax(260px,1fr) auto; gap: 12px; align-items: end; }
#supplierCatalogImportForm label { min-width: 0; display: grid; gap: 6px; }
#supplierCatalogImportForm label > span { font-size: 9px; font-weight: 700; }
#supplierCatalogImportForm input { width: 100%; height: 42px; padding: 0 10px; border: 1px solid var(--ops-line); border-radius: 5px; background: #fff; font-size: 10px; }
#supplierCatalogImportForm input[type="file"] { padding: 8px; }
#supplierCatalogImportForm label small { color: var(--ops-muted); font-size: 10px; line-height: 1.45; }
#supplierCatalogImportForm button { min-height: 42px; padding: 0 14px; border: 0; border-radius: 5px; background: var(--ops-green); color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 10px; font-weight: 700; cursor: pointer; }
#supplierCatalogImportForm button:disabled { opacity: .55; cursor: wait; }
#supplierCatalogImportForm button svg { width: 15px; }
#catalogImportStatus { grid-column: 1 / -1; min-height: 16px; margin: 0; color: var(--ops-muted); font-size: 11px; }
.catalog-policy-panel > div:not(.section-title) { min-height: 58px; padding: 10px 0; border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: center; }
.catalog-policy-panel > div > svg { width: 17px; color: var(--ops-green); }
.catalog-policy-panel span { display: flex; flex-direction: column; gap: 3px; }
.catalog-policy-panel strong { font-size: 10px; }
.catalog-policy-panel small { color: var(--ops-muted); font-size: 10px; }
.catalog-group-coverage { margin-bottom: 16px; }
.catalog-group-coverage > div:last-child { display: grid; grid-template-columns: repeat(9,minmax(82px,1fr)); gap: 8px; overflow-x: auto; }
.catalog-group-coverage article { min-height: 92px; padding: 12px; border: 1px solid var(--ops-line); border-radius: 6px; display: flex; flex-direction: column; }
.catalog-group-coverage article.has-products { border-color: #bddac8; background: #f7fbf8; }
.catalog-group-coverage span { font-size: 9px; }
.catalog-group-coverage strong { margin-top: 8px; font-size: 20px; }
.catalog-group-coverage small { margin-top: auto; color: var(--ops-muted); font-size: 11px; white-space: nowrap; }
.catalog-product-table { margin-bottom: 16px; }
.catalog-import-history article { min-height: 58px; padding: 10px 0; border-top: 1px solid var(--ops-line); display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.catalog-import-history article > svg { width: 17px; color: var(--ops-green); }
.catalog-import-history article span { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.catalog-import-history article strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-history article small,.catalog-import-history article em { color: var(--ops-muted); font-size: 10px; font-style: normal; }
@media (max-width: 1050px) { .commerce-real-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .commerce-work-grid { grid-template-columns: 1fr; } #supplierCatalogImportForm { grid-template-columns: 1fr 1fr; } #supplierCatalogImportForm button { grid-column: 1 / -1; } }
@media (max-width: 700px) { .commerce-release-banner { grid-template-columns: 30px minmax(0,1fr); } .commerce-release-banner em { grid-column: 2; } .commerce-real-metrics { grid-template-columns: 1fr 1fr; } #supplierCatalogImportForm { grid-template-columns: 1fr; } #supplierCatalogImportForm button { grid-column: auto; } .catalog-group-coverage > div:last-child { grid-template-columns: repeat(9,100px); } }

.capability-summary { margin-bottom: 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.capability-summary article { min-height: 105px; padding: 16px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); display: flex; flex-direction: column; }
.capability-summary span { color: var(--ops-muted); font-size: 9px; }
.capability-summary strong { margin-top: 10px; font-size: 26px; line-height: 1; }
.capability-summary small { margin-top: auto; color: var(--ops-muted); font-size: 10px; line-height: 1.4; }
.capability-summary .is-healthy strong { color: var(--ops-green); }
.capability-summary .is-warning strong { color: var(--ops-amber); }
.capability-summary .is-danger strong { color: var(--ops-red); }
.capability-boundary { min-height: 68px; margin-bottom: 14px; padding: 14px 16px; border: 1px solid #cfe2d8; border-radius: 7px; background: #f5faf7; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.capability-boundary > svg { width: 20px; color: var(--ops-green); }
.capability-boundary span { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.capability-boundary strong { font-size: 10px; }
.capability-boundary small,.capability-boundary em { color: var(--ops-muted); font-size: 10px; font-style: normal; line-height: 1.45; }
.capability-boundary em { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; white-space: nowrap; }
.capability-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.capability-card { min-width: 0; padding: 16px; border: 1px solid var(--ops-line); border-radius: 7px; background: var(--ops-surface); display: flex; flex-direction: column; }
.capability-card.is-degraded { border-color: #ead4a8; background: #fffdf7; }
.capability-card header { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: start; }
.capability-card header > span { width: 34px; height: 34px; border-radius: 6px; background: var(--ops-green-soft); color: var(--ops-green); display: grid; place-items: center; }
.capability-card header > span svg { width: 17px; }
.capability-card header > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.capability-card header strong { font-size: 10px; }
.capability-card header small { color: var(--ops-muted); font-size: 10px; line-height: 1.4; }
.capability-card header em { padding: 4px 6px; border-radius: 4px; background: var(--ops-green-soft); color: var(--ops-green); font-size: 10.5px; font-style: normal; white-space: nowrap; }
.capability-card.is-degraded header em { background: #fff1d5; color: #9a621f; }
.capability-object-count { margin: 14px 0 9px; padding: 10px; border-radius: 5px; background: #f7f9f8; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 8px; }
.capability-object-count span,.capability-object-count small { color: var(--ops-muted); font-size: 10px; }
.capability-object-count strong { grid-row: span 2; align-self: center; font-size: 20px; }
.capability-object-count small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.capability-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.capability-card li { color: var(--ops-ink); display: flex; align-items: center; gap: 6px; font-size: 10px; line-height: 1.35; }
.capability-card li svg { width: 12px; color: var(--ops-green); flex: none; }
.capability-card p { margin: 10px 0 0; color: var(--ops-muted); display: flex; gap: 6px; font-size: 10px; line-height: 1.45; }
.capability-card p svg { width: 12px; flex: none; }
.capability-card p.is-gap { color: #9a621f; }
.capability-card > button { min-height: 34px; margin-top: auto; padding: 12px 0 0; border: 0; border-top: 1px solid var(--ops-line); background: transparent; color: var(--ops-green); display: flex; align-items: flex-end; justify-content: space-between; font-size: 9px; font-weight: 700; cursor: pointer; }
.capability-card > button svg { width: 14px; }
.capability-card > .capability-data-button { margin-top: 12px; padding: 10px; border: 0; border-radius: 5px; background: var(--ops-green-soft); color: var(--ops-green); align-items: center; }
.production-operations-drawer > main { padding-top: 16px; }
.production-operations-list { margin-top: 14px; display: grid; gap: 8px; }
.production-operations-list article { min-width: 0; padding: 11px 12px; border: 1px solid var(--ops-line); border-radius: 6px; background: #f8faf9; display: grid; gap: 5px; }
.production-operations-list strong { overflow-wrap: anywhere; font-size: 10px; }
.production-operations-list small { color: var(--ops-muted); overflow-wrap: anywhere; font-size: 10px; line-height: 1.5; }
.support-feedback-operation header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.support-feedback-operation header span { color: var(--ops-care); font-size: 10px; }
.support-feedback-operation p { margin: 4px 0 0; white-space: pre-wrap; color: var(--ops-ink); font-size: 10px; line-height: 1.6; }
.support-feedback-media { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.support-feedback-media a, .support-feedback-media img { display: block; width: 84px; height: 84px; border-radius: 5px; object-fit: cover; }
@media (max-width: 1100px) { .capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { .capability-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } .capability-boundary { grid-template-columns: 24px minmax(0,1fr); } .capability-boundary em { grid-column: 2; } .capability-grid { grid-template-columns: 1fr; } }

/* ---- 图表容器 ----------------------------------------------------------
   ECharts 在容器内绘制。宽高由既有布局类决定（.compact-trend / .traffic-chart），
   图表层不自己定义尺寸，避免和响应式规则打架。 */
.chart-block { width: 100%; min-width: 0; }
.traffic-chart .chart-block { height: 100%; }

/* ---- 转化漏斗与关键比率 ------------------------------------------------
   后端 analytics/dashboard 早已返回 funnel 与各项比率，此前只显示了 UV/PV。
   这里只补排版，颜色全部沿用既有设计令牌。 */
.conversion-grid { margin-top: 26px; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,1fr); gap: 16px; }
.conversion-grid > div { padding: 16px 18px; border: 1px solid var(--ops-line); border-radius: 8px; background: var(--ops-surface); box-shadow: var(--ops-shadow); }
.conversion-grid header { margin-bottom: 12px; }
.conversion-grid header strong { display: block; font-size: 13px; }
.conversion-grid header small { display: block; margin-top: 4px; color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.chart-funnel { height: 268px; }
.health-rates .rate-row { padding: 9px 0; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; align-items: center; }
.health-rates .rate-row:last-child { border-bottom: 0; }
.health-rates .rate-row span strong { display: block; font-size: 11px; }
.health-rates .rate-row span small { display: block; margin-top: 3px; color: var(--ops-muted); font-size: 11px; }
.health-rates .rate-row em { font-size: 15px; font-style: normal; font-weight: 720; font-variant-numeric: tabular-nums; }
.health-rates .rate-row i { grid-column: 1/-1; height: 4px; border-radius: 99px; background: #eceff0; overflow: hidden; }
.health-rates .rate-row i b { display: block; height: 100%; border-radius: 99px; background: var(--ops-green); }
.care-numbers { margin-top: 16px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border: 1px solid var(--ops-line); border-radius: 8px; background: var(--ops-surface); box-shadow: var(--ops-shadow); overflow: hidden; }
.care-numbers article { padding: 14px 16px; border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); }
.care-numbers article:nth-child(4n) { border-right: 0; }
.care-numbers article:nth-last-child(-n+4) { border-bottom: 0; }
.care-numbers span { display: block; color: var(--ops-muted); font-size: 10px; }
.care-numbers strong { display: block; margin-top: 6px; font-size: 20px; font-variant-numeric: tabular-nums; }
@media (max-width: 980px) {
  .conversion-grid { grid-template-columns: 1fr; }
  .care-numbers { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .care-numbers article { border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); }
  .care-numbers article:nth-child(2n) { border-right: 0; }
  .care-numbers article:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ---- 数据大屏的地图 ----------------------------------------------------
   两张图各占一半宽度，窄屏时上下排列。地图本身由 ECharts 在 .chart-block 内绘制。 */
.map-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.map-grid .map { height: 420px; }
.map-grid .map .chart-block { width: 100%; height: 100%; }
.map-note { margin: 10px 0 0; color: var(--ops-muted); font-size: 10px; line-height: 1.6; }
@media (max-width: 1100px) { .map-grid { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- 正式业务库数据源
   空状态、加载态、错误态和来源脚注。三种状态的区分必须靠图标和颜色，
   不能只靠文字，否则一眼看过去分不清「没数据」和「读不到数据」。 */
.operations-state { margin-top: 20px; padding: 26px 20px; border: 1px dashed var(--ops-line-strong); border-radius: 8px; background: var(--ops-surface); display: flex; align-items: center; gap: 12px; }
.operations-state > i { width: 20px; height: 20px; color: var(--ops-muted); flex: none; }
.operations-state strong { display: block; font-size: 11px; font-weight: 650; }
.operations-state small { display: block; margin-top: 3px; color: var(--ops-muted); font-size: 11px; line-height: 1.5; }
.operations-state.is-loading > i { color: var(--ops-blue); animation: operations-spin 1.1s linear infinite; }
.operations-state.is-error { border-style: solid; border-color: #f0c9c6; background: var(--ops-red-soft); }
.operations-state.is-error > i { color: var(--ops-red); }
.operations-state.is-error strong { color: var(--ops-red); }
@keyframes operations-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .operations-state.is-loading > i { animation: none; } }

/* 来源脚注：让看数据的人知道数字从哪来、什么时候取的。 */
.operations-source { margin: 14px 2px 0; color: var(--ops-muted); font-size: 11px; }

/*
 * 首页横幅（2026-09-22）。
 *
 * 列表用「缩略图 + 文案 + 两个按钮」的行式布局：运营扫一眼就能看出哪条在图里、
 * 哪条正在显示。缩略图按 3:1 裁切 —— 和首页真实比例一致，免得配了一张方图
 * 在这里看着正常、到小程序里两边被切掉。
 */
/* 「没读到」的占位破折号不要跟着数字用 25px 粗体 —— 那看起来像一条横杠。 */
.species-overview strong .is-unknown { color: var(--ops-muted); font-size: 20px; font-weight: 500; }
.banner-admin-list { display: grid; }
.banner-admin-row { min-height: 84px; padding: 13px 18px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: 96px minmax(0,1fr) auto; gap: 14px; align-items: center; }
.banner-admin-row:last-child { border-bottom: 0; }
.banner-admin-row.is-paused, .banner-admin-row.is-expired { background: #fafbfb; }
.banner-admin-thumb { width: 96px; aspect-ratio: 3 / 1; border: 1px solid var(--ops-line); border-radius: 5px; background: var(--ops-green-soft); color: var(--ops-green); display: grid; place-items: center; overflow: hidden; }
.banner-admin-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.banner-admin-thumb svg { width: 18px; }
.banner-admin-copy { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.banner-admin-copy > div { display: flex; align-items: center; gap: 8px; }
.banner-admin-copy strong { font-size: 13px; }
.banner-admin-copy small { color: var(--ops-muted); font-size: 11px; line-height: 1.5; }
.banner-state { padding: 2px 7px; border-radius: 4px; background: #eef1f2; color: #5c6873; font-size: 9px; font-style: normal; font-weight: 700; flex: none; }
.banner-state.is-live { background: var(--ops-green-soft); color: var(--ops-green); }
.banner-state.is-scheduled { background: var(--ops-amber-soft); color: var(--ops-amber); }
.banner-state.is-expired, .banner-state.is-paused { background: #f2f3f4; color: #7c868f; }
.banner-admin-actions { display: flex; gap: 6px; }
.banner-admin-actions button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ops-line-strong); border-radius: 6px; background: #fff; color: #4d5964; display: inline-flex; align-items: center; gap: 6px; font-size: 10px; cursor: pointer; }
.banner-admin-actions button svg { width: 14px; }
.banner-admin-actions button:hover { background: #f8faf9; }
.banner-admin-actions button.is-danger { border-color: #efcbc8; color: var(--ops-red); }
.banner-spec-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.banner-spec-grid > div { min-height: 104px; padding: 16px 18px; border-right: 1px solid var(--ops-line); }
.banner-spec-grid > div:last-child { border-right: 0; }
.banner-spec-grid small { display: block; color: var(--ops-muted); font-size: 10px; }
.banner-spec-grid strong { display: block; margin-top: 7px; font-size: 15px; }
.banner-spec-grid span { display: block; margin-top: 7px; color: #8b949c; font-size: 11px; line-height: 1.5; }

/* 表单里的勾选项：和其它 input 一样占满一行，不要缩成一个小方块。 */
.event-form-grid label.is-check { flex-direction: row; align-items: center; gap: 8px; }
.event-form-grid label.is-check input { width: 15px; height: 15px; accent-color: var(--ops-green); }
.event-form-grid label.is-check > span { margin-bottom: 0; color: var(--ops-ink); font-size: 11px; font-weight: 500; }

/*
 * 算法与规则（2026-09-22）。
 *
 * 这一页要让人一眼看出「哪些数字被系统自己改过」——所以调过的参数整块变黄，
 * 没调过的保持白底。不做进度条、不做图表：数字小、变化慢，条形图只会让人
 * 误以为差异很大。
 */
.algorithm-param-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.algorithm-param { min-height: 108px; padding: 16px 18px; border-right: 1px solid var(--ops-line); border-bottom: 1px solid var(--ops-line); }
.algorithm-param:nth-child(3n) { border-right: 0; }
.algorithm-param small { display: block; color: var(--ops-muted); font-size: 10px; }
.algorithm-param strong { display: block; margin-top: 8px; font-size: 21px; font-variant-numeric: tabular-nums; }
.algorithm-param span { display: block; margin-top: 7px; color: #8b949c; font-size: 10px; line-height: 1.5; }
.algorithm-param.is-moved { background: var(--ops-amber-soft); }
.algorithm-param.is-moved strong { color: var(--ops-amber); }
.algorithm-fixed { padding: 16px 18px; border-top: 1px solid var(--ops-line); display: grid; gap: 8px; }
.algorithm-fixed > small { color: var(--ops-muted); font-size: 10px; }
.algorithm-fixed > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0; border-top: 1px solid var(--ops-line); }
.algorithm-fixed article { position: relative; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; align-items: baseline; }
.algorithm-fixed article strong { font-size: 11px; font-weight: 650; }
.algorithm-fixed article em { color: var(--ops-ink); font-size: 12px; font-style: normal; font-variant-numeric: tabular-nums; }
.algorithm-fixed article span { grid-column: 1 / -1; color: #8b949c; font-size: 10px; line-height: 1.5; }
.algorithm-fixed p { margin: 12px 0 0; color: #8b949c; font-size: 11px; line-height: 1.6; }
.algorithm-thresholds { padding: 11px 18px; border-bottom: 1px solid var(--ops-line); background: #fafbfb; display: flex; flex-wrap: wrap; gap: 8px; }
.algorithm-thresholds span { padding: 3px 8px; border-radius: 4px; background: #fff; border: 1px solid var(--ops-line); color: var(--ops-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.algorithm-report-list, .algorithm-version-list { display: grid; }
.algorithm-report { padding: 14px 18px; border-bottom: 1px solid var(--ops-line); }
.algorithm-report:last-child, .algorithm-version:last-child { border-bottom: 0; }
.algorithm-report > header { display: flex; align-items: center; gap: 9px; }
.algorithm-report > header strong { font-size: 12px; font-variant-numeric: tabular-nums; }
.algorithm-report > header em { padding: 2px 7px; border-radius: 4px; background: #f2f3f4; color: #7c868f; font-size: 9px; font-style: normal; font-weight: 700; }
.algorithm-report.is-live > header em { background: var(--ops-green-soft); color: var(--ops-green); }
.algorithm-report.is-warning > header em { background: var(--ops-red-soft); color: var(--ops-red); }
.algorithm-report > header span { margin-left: auto; color: var(--ops-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.algorithm-report p { margin: 9px 0 0; font-size: 11px; line-height: 1.65; }
.algorithm-report small { display: block; margin-top: 7px; color: #8b949c; font-size: 10px; }
.algorithm-report small.is-warning { color: var(--ops-red); }
.algorithm-version { padding: 14px 18px; border-bottom: 1px solid var(--ops-line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 14px; align-items: center; }
.algorithm-version > div { display: flex; align-items: center; gap: 9px; }
.algorithm-version strong { font-size: 13px; font-variant-numeric: tabular-nums; }
.algorithm-version em { padding: 2px 7px; border-radius: 4px; background: var(--ops-green-soft); color: var(--ops-green); font-size: 9px; font-style: normal; font-weight: 700; }
.algorithm-version small { color: var(--ops-muted); font-size: 10px; }
.algorithm-version p { grid-column: 1 / -1; margin: 0; color: var(--ops-muted); font-size: 11px; line-height: 1.6; }
.algorithm-version button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ops-line-strong); border-radius: 6px; background: #fff; color: #4d5964; display: inline-flex; align-items: center; gap: 6px; font-size: 10px; cursor: pointer; }
.algorithm-version button svg { width: 14px; }
.algorithm-version button:hover { background: #f8faf9; }
.algorithm-version.is-active { background: #fafbfb; }

@media (max-width: 1080px) {
  .algorithm-param-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .algorithm-param:nth-child(3n) { border-right: 1px solid var(--ops-line); }
  .algorithm-param:nth-child(2n) { border-right: 0; }
  .banner-spec-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .banner-spec-grid > div:nth-child(2n) { border-right: 1px solid var(--ops-line); }
  .banner-spec-grid > div:nth-child(3n) { border-right: 0; }
  .banner-spec-grid > div:nth-child(-n+3) { border-bottom: 1px solid var(--ops-line); }
}

@media (max-width: 760px) {
  .banner-admin-row { grid-template-columns: minmax(0,1fr); }
  .banner-admin-thumb { width: 100%; }
  .algorithm-param-grid { grid-template-columns: minmax(0,1fr); }
  .algorithm-param { border-right: 0 !important; }
  .banner-spec-grid { grid-template-columns: minmax(0,1fr); }
  .banner-spec-grid > div { border-right: 0 !important; border-bottom: 1px solid var(--ops-line); }
}

/* ── 渠道数据（2026-10-28）────────────────────────────────────────────
   四家渠道能拿到的东西不一样，所以卡片结构也跟着不一样：已接入的显示数字，
   未配置的只显示「缺什么 + 去哪配」。未配置时**一个数字都不出现**，
   免得 0 被读成"发了没人看"。 */
.channel-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.channel-card { border: 1px solid var(--ops-line); border-radius: 8px; background: #fff; padding: 15px 16px; display: flex; flex-direction: column; gap: 10px; }
.channel-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.channel-card > header h3 { margin: 0; font-size: 13px; }
.channel-card > header small { display: block; margin-top: 3px; color: var(--ops-muted); font-size: 10px; line-height: 1.5; }
.channel-status { flex: none; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--ops-line); font-size: 10px; font-weight: 700; color: var(--ops-muted); }
.channel-status.is-ok { color: var(--ops-green); border-color: rgba(11,122,92,.35); background: #f2faf7; }
.channel-status.is-warn { color: #a8621f; border-color: rgba(168,98,31,.3); background: #fff9f2; }
.channel-status.is-risk { color: var(--ops-red); border-color: rgba(196,73,73,.3); background: #fff6f6; }
.channel-metrics { margin: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.channel-metrics > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.channel-metrics dt { color: var(--ops-muted); font-size: 10px; }
.channel-metrics dd { margin: 0; font-size: 16px; font-weight: 750; font-variant-numeric: tabular-nums; }
.channel-missing { margin: 0; display: flex; align-items: flex-start; gap: 7px; color: var(--ops-muted); font-size: 10.5px; line-height: 1.6; }
.channel-missing > svg { flex: none; width: 15px; margin-top: 1px; }
.channel-checklist { margin: 0; padding-left: 18px; color: var(--ops-muted); font-size: 10.5px; line-height: 1.7; }
