@font-face {
  font-family: "方正小标宋简体";
  src: url("./assets/FZXBSJW.TTF?v=20260916-font-settings-2") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "汉仪迪升英雄体简";
  src: url("./assets/HYDiShengYingXiongTiJ.woff2?v=20260916-font-fast-4") format("woff2"),
       url("./assets/HYDiShengYingXiongTiJ.ttf?v=20260916-font-fast-4") format("truetype");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink: #07111f;
  --sidebar: #081522;
  --surface: #0d1d30;
  --surface-2: #12263d;
  --surface-3: #172d47;
  --line: #29445f;
  --line-soft: rgba(147, 171, 194, 0.16);
  --text: #f3f7fb;
  --text-soft: #c8d6e2;
  --muted: #8fa6bb;
  --cyan: #48d1df;
  --cyan-deep: #0d8899;
  --cyan-soft: rgba(72, 209, 223, 0.12);
  --gold: #e7b968;
  --gold-soft: rgba(231, 185, 104, 0.13);
  --green: #59c99c;
  --green-soft: rgba(89, 201, 156, 0.12);
  --red: #ef7c82;
  --red-soft: rgba(239, 124, 130, 0.12);
  --orange: #efa84d;
  --orange-soft: rgba(239, 168, 77, 0.12);
  --blue: #7eaef8;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
  --ease: 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-variant-numeric: tabular-nums;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--ink); }
body { min-height: 100vh; margin: 0; color: var(--text); background: var(--ink); font-size: 14px; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
input, select, textarea { color: var(--text); border: 1px solid var(--line); background: #0a192a; border-radius: var(--radius-sm); outline: none; }
input:focus, select:focus, textarea:focus, button:focus-visible { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(72, 209, 223, 0.16); }
input:disabled { color: #668096; cursor: not-allowed; background: #0a1624; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.hidden { display: none !important; }

.app-shell { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; padding: 20px 14px 16px; border-right: 1px solid var(--line-soft); background: var(--sidebar); }
.brand { display: flex; align-items: center; gap: 11px; min-height: 55px; padding: 0 8px 18px; border-bottom: 1px solid var(--line-soft); }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; color: #06202a; background: var(--cyan); border-radius: 11px; font-size: 18px; font-weight: 900; box-shadow: 0 8px 22px rgba(72, 209, 223, 0.2); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; letter-spacing: .04em; }
.brand small { margin-top: 1px; color: var(--muted); font-size: 10px; letter-spacing: .16em; }
.module-nav { padding: 18px 0 8px; }
.nav-label { margin: 0 8px 8px; color: #718ba2; font-size: 11px; font-weight: 700; }
.nav-item { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 10px; width: 100%; min-height: 44px; margin: 4px 0; padding: 0 10px; color: var(--text-soft); border: 0; background: transparent; border-radius: 10px; text-align: left; transition: background var(--ease), color var(--ease); }
.nav-item:hover { color: var(--text); background: var(--surface); }
.nav-item.active { color: #dffcff; background: var(--cyan-soft); }
.nav-item.active svg { color: var(--cyan); }
.nav-item small { color: var(--muted); font-size: 10px; }
.nav-item.active small { color: var(--cyan); }
.nav-item.muted { opacity: .58; }
.sidebar-section { margin-top: 12px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.sidebar-source { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 8px; min-height: 34px; padding: 0 8px; color: var(--text-soft); font-size: 12px; }
.sidebar-source em { color: var(--muted); font-size: 10px; font-style: normal; }
.mini-dot { width: 7px; height: 7px; border-radius: 50%; background: #496176; }
.mini-dot.ready { background: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
.mini-dot.warning { background: var(--orange); }
.sidebar-foot { margin-top: auto; padding: 14px 8px 0; border-top: 1px solid var(--line-soft); }
.node-status { display: flex; align-items: center; gap: 9px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px var(--green-soft); }
.node-status strong, .node-status small { display: block; }
.node-status strong { font-size: 12px; }
.node-status small { color: var(--muted); font-size: 10px; }
.sidebar-foot p { margin: 12px 0 0; color: #718ba2; font-size: 11px; line-height: 1.6; }

.workspace { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: 0 30px; border-bottom: 1px solid var(--line-soft); background: rgba(7, 17, 31, .94); backdrop-filter: blur(14px); }
.breadcrumb { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.breadcrumb svg { width: 14px; height: 14px; }
.breadcrumb strong { color: var(--text); }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.quarter-picker, .operator-field { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.quarter-picker select { min-width: 144px; height: 34px; padding: 0 30px 0 10px; }
.operator-field input { width: 112px; height: 34px; padding: 0 10px; }

.main-content { width: min(1480px, 100%); margin: 0 auto; padding: 30px 34px 56px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.page-kicker { margin: 0 0 7px; color: var(--cyan); font-size: 12px; font-weight: 700; }
.page-heading h1 { max-width: 760px; margin: 0; font-size: clamp(28px, 3.1vw, 46px); line-height: 1.1; letter-spacing: -.03em; text-wrap: balance; }
.page-heading > div > p:last-child { max-width: 720px; margin: 12px 0 0; color: var(--text-soft); font-size: 14px; }
.heading-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 15px; border-radius: 10px; border: 1px solid transparent; font-weight: 700; transition: transform var(--ease), background var(--ease), border-color var(--ease); }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn.primary { color: #052029; background: var(--cyan); border-color: var(--cyan); }
.btn.primary:hover { background: #71e2eb; }
.btn.secondary { color: var(--text); background: var(--surface-2); border-color: var(--line); }
.btn.secondary:hover { border-color: #54728e; background: var(--surface-3); }
.btn.small { min-height: 34px; padding: 0 12px; font-size: 12px; }
.btn.full { width: 100%; }
.btn + .btn.full, .btn.full + .btn.full { margin-top: 10px; }
.btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.run-strip { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 15px 18px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-md); }
.run-strip > div { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; }
.run-strip strong { font-size: 14px; }
.run-strip small { grid-column: 2; color: var(--muted); font-size: 11px; }
.run-state { grid-row: 1 / 3; display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 7px; font-size: 11px; font-weight: 800; }
.run-state.waiting { color: var(--orange); background: var(--orange-soft); }
.run-state.ready { color: var(--green); background: var(--green-soft); }
.run-state.processing { color: var(--cyan); background: var(--cyan-soft); }
.run-strip dl { display: flex; align-items: center; margin: 0; }
.run-strip dl div { min-width: 124px; padding: 0 18px; border-left: 1px solid var(--line-soft); }
.run-strip dt { color: var(--muted); font-size: 10px; }
.run-strip dd { margin: 2px 0 0; font-size: 12px; font-weight: 700; }
.operation-progress { margin-top: 12px; padding: 13px 16px; border: 1px solid rgba(75, 157, 137, .28); background: rgba(89, 201, 156, .08); border-radius: 12px; }
.operation-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.operation-progress strong { font-size: 13px; }
.operation-progress span { color: var(--green-deep); font-size: 12px; font-weight: 800; }
.operation-progress p { margin: 4px 0 9px; color: var(--muted); font-size: 11px; }
.operation-progress i { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: rgba(143, 166, 187, .16); }
.operation-progress b { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--green); }

.workflow-tabs { display: grid; grid-template-columns: 1fr 1fr minmax(180px, .55fr); margin: 12px 0 20px; border: 1px solid var(--line); background: #091827; border-radius: var(--radius-md); overflow: hidden; }
.workflow-tab { display: flex; align-items: center; gap: 11px; min-height: 58px; padding: 9px 16px; color: var(--text-soft); border: 0; border-right: 1px solid var(--line-soft); background: transparent; text-align: left; transition: background var(--ease), color var(--ease); }
.workflow-tab:last-child { border-right: 0; }
.workflow-tab:hover { color: var(--text-soft); background: var(--surface); }
.workflow-tab > span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; font-size: 11px; font-weight: 800; }
.workflow-tab strong, .workflow-tab small { display: block; }
.workflow-tab strong { color: inherit; font-size: 13px; }
.workflow-tab small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.workflow-tab.active { color: #e7fdff; background: var(--cyan-soft); }
.workflow-tab.active > span { color: #052029; border-color: var(--cyan); background: var(--cyan); }
.workflow-tab.advanced { color: var(--muted); background: rgba(143, 166, 187, .04); }
.workflow-tab.advanced > span { border-style: dashed; }
.workflow-view { display: none; animation: view-in 260ms cubic-bezier(.18,.88,.28,1) both; }
.workflow-view.active { display: block; }
body.front-desk .workflow-tabs { grid-template-columns: 1fr; }
body.front-desk #auditPanel { display: none; }
@keyframes view-in { from { opacity: .25; transform: translateY(7px); filter: blur(3px); } to { opacity: 1; transform: none; filter: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

.section-heading, .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.section-heading { margin: 0 0 18px; }
.section-heading h2, .panel-heading h2 { margin: 0; letter-spacing: -.015em; }
.section-heading h2 { font-size: 22px; }
.panel-heading h2 { font-size: 16px; }
.section-heading p, .panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.panel-heading.compact { align-items: center; }
.section-badge, .version-chip, .mapping-state { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; color: var(--cyan); background: var(--cyan-soft); border-radius: 7px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.panel { border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-lg); }

.account-admin-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: 18px; align-items: start; }
.account-panel { padding: 18px; }
.account-table-scroll { max-height: 560px; }
.account-sql-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.account-sql-form label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 800; }
.account-sql-form input, .account-sql-form select { width: 100%; min-height: 36px; padding: 0 10px; }
.account-form-actions { display: flex; gap: 10px; align-items: end; grid-column: 1 / -1; }
.account-sql-output { width: 100%; margin-top: 14px; padding: 12px; color: var(--text-soft); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 11px; line-height: 1.6; resize: vertical; }
.account-row-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 238px; }
.account-service-status { margin: 14px 0 0; color: var(--muted); font-size: 11px; }

.source-workbench { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.source-stack { border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; }
.unified-source-stack { padding: 20px; }
.unified-uploader { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 22px; border: 1px dashed rgba(72, 209, 223, .48); border-radius: 14px; background: var(--cyan-soft); }
.unified-uploader-copy > span { color: var(--cyan); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.unified-uploader-copy h3 { margin: 5px 0 0; font-size: 20px; }
.unified-uploader-copy p { margin: 6px 0 0; color: var(--text-soft); font-size: 12px; }
.unified-uploader .btn { flex: 0 0 auto; min-width: 150px; }
.unified-source-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 16px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--line-soft); }
.unified-source-status > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 72px; padding: 14px 16px; background: var(--surface); }
.unified-source-status > div.has-file { background: rgba(89, 201, 156, .035); }
.unified-source-status > div.has-warning { background: rgba(230, 154, 65, .04); }
.unified-source-status strong, .unified-source-status small { display: block; }
.unified-source-status strong { font-size: 13px; }
.unified-source-status small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.target-maintenance { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 16px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.target-maintenance > div:first-child > span { color: var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.target-maintenance h3 { margin: 4px 0 0; font-size: 16px; }
.target-maintenance p { margin: 5px 0; color: var(--text-soft); font-size: 11px; }
.target-maintenance small { color: var(--muted); font-size: 10px; }
.target-maintenance-action { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.source-uploader { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) 118px; gap: 16px; align-items: center; min-height: 126px; padding: 20px 20px 20px 18px; border-bottom: 1px solid var(--line-soft); }
.source-uploader:last-child { border-bottom: 0; }
.source-uploader::after { content: ""; position: absolute; inset: 10px auto 10px 0; width: 2px; background: transparent; }
.source-uploader.has-file { background: rgba(89, 201, 156, .035); }
.source-uploader.has-file::after { background: var(--green); }
.source-uploader.has-warning::after { background: var(--orange); }
.source-uploader.optional { min-height: 96px; background: rgba(143, 166, 187, .03); }
.source-index { display: grid; place-items: center; width: 42px; height: 42px; color: var(--muted); border: 1px solid var(--line); border-radius: 12px; font-size: 12px; font-weight: 900; }
.source-uploader.required .source-index { color: var(--cyan); border-color: rgba(72, 209, 223, .36); background: var(--cyan-soft); }
.source-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.source-title h3 { margin: 0; font-size: 16px; }
.source-title span { color: var(--muted); font-size: 10px; }
.source-copy > p { margin: 5px 0 0; color: var(--text-soft); font-size: 12px; }
.source-meta { margin-top: 9px; color: var(--muted); font-size: 10px; }
.source-action { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.status-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 26px; padding: 0 8px; border-radius: 7px; font-size: 10px; font-weight: 800; }
.status-chip.waiting { color: var(--muted); background: rgba(143, 166, 187, .09); }
.status-chip.processing { color: var(--cyan); background: var(--cyan-soft); }
.status-chip.ready { color: var(--green); background: var(--green-soft); }
.status-chip.warning { color: var(--orange); background: var(--orange-soft); }
.status-chip.error { color: var(--red); background: var(--red-soft); }
.status-chip.neutral { color: var(--muted); background: rgba(143, 166, 187, .08); }
.action-statuses { display: flex; gap: 14px; margin-top: 11px; flex-wrap: wrap; }
.action-statuses > div { display: grid; grid-template-columns: 23px auto; column-gap: 7px; align-items: center; }
.action-statuses b { font-size: 11px; font-weight: 700; }
.action-statuses em { grid-column: 2; color: var(--muted); font-size: 9px; font-style: normal; }
.action-mark { grid-row: 1 / 3; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 6px; font-size: 10px; font-weight: 900; }
.action-mark.kickoff { color: var(--cyan); background: var(--cyan-soft); }
.action-mark.review { color: var(--gold); background: var(--gold-soft); }
.action-mark.sprint { color: var(--green); background: var(--green-soft); }
.action-mark.unknown { color: var(--orange); background: var(--orange-soft); }

.readiness-rail { position: sticky; top: 88px; padding: 19px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-lg); }
.rail-heading { display: flex; justify-content: space-between; align-items: center; }
.rail-heading h3 { margin: 0; font-size: 15px; }
.rail-heading p { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.rail-heading > strong { color: var(--cyan); font-size: 25px; }
.readiness-track { height: 5px; margin: 14px 0 17px; background: #081522; border-radius: 5px; overflow: hidden; }
.readiness-track span { display: block; width: 0; height: 100%; background: var(--cyan); }
.readiness-list { margin: 0; padding: 0; list-style: none; }
.readiness-list li { display: grid; grid-template-columns: 10px 1fr; align-items: center; gap: 10px; min-height: 43px; border-bottom: 1px solid var(--line-soft); }
.readiness-list li > span { width: 8px; height: 8px; border-radius: 50%; background: #435b70; }
.readiness-list li.ready > span { background: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
.readiness-list li.warning > span { background: var(--orange); }
.readiness-list b, .readiness-list small { display: block; }
.readiness-list b { font-size: 11px; }
.readiness-list small { color: var(--muted); font-size: 9px; }
.rail-warning { display: flex; gap: 8px; margin: 15px 0; padding: 11px; color: var(--orange); background: var(--orange-soft); border-radius: 9px; }
.rail-warning svg { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 1px; }
.rail-warning p { margin: 0; font-size: 10px; }

.upload-ledger { margin-top: 18px; padding: 19px; }
.upload-ledger > .panel-heading > span { color: var(--muted); font-size: 11px; }
.empty-state, .mapping-empty, .result-empty { display: grid; place-items: center; min-height: 150px; color: var(--muted); text-align: center; }
.empty-state svg, .mapping-empty svg, .result-empty svg { width: 28px; height: 28px; color: #57718a; }
.empty-state p, .mapping-empty p { margin: 10px 0 0; font-size: 11px; }
.result-empty h3 { margin: 10px 0 0; color: var(--text-soft); font-size: 14px; }
.result-empty p { max-width: 440px; margin: 5px 0 0; font-size: 11px; }

.rules-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(380px, .65fr); gap: 18px; align-items: stretch; }
.mapping-panel, .taxonomy-panel { padding: 19px; }
.inline-select { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.inline-select select { max-width: 220px; height: 32px; padding: 0 26px 0 9px; }
.mapping-summary { display: flex; justify-content: space-between; margin: 16px 0 8px; color: var(--text-soft); font-size: 11px; }
.mapping-summary small { color: var(--muted); }
.mapping-rows { margin-bottom: 13px; border-top: 1px solid var(--line-soft); }
.mapping-row { display: grid; grid-template-columns: minmax(130px, .8fr) 22px minmax(170px, 1.2fr) 62px; align-items: center; gap: 10px; min-height: 45px; border-bottom: 1px solid var(--line-soft); }
.mapping-row strong { font-size: 11px; }
.mapping-row strong em { color: var(--orange); font-style: normal; }
.mapping-row > span { color: #617b92; text-align: center; }
.mapping-row select { width: 100%; height: 32px; padding: 0 28px 0 9px; font-size: 11px; }
.mapping-row small { color: var(--green); font-size: 9px; text-align: right; }
.mapping-row small.missing { color: var(--orange); }
.taxonomy-block { margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line-soft); }
.taxonomy-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.taxonomy-title h3 { margin: 0; font-size: 13px; }
.taxonomy-title > span { color: var(--muted); font-size: 9px; }
.taxonomy-block > label { display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 10px; margin-top: 8px; color: var(--muted); font-size: 10px; }
.taxonomy-block input { height: 32px; padding: 0 9px; font-size: 11px; }
.taxonomy-block textarea { min-height: 48px; padding: 7px 9px; resize: vertical; font-size: 11px; }
.promotion-rule-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; margin-top: 10px; }
.promotion-rule-grid label { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; }
.promotion-rule-grid input { width: 100%; }
.toggle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.toggle-grid label { display: flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 9px; color: var(--text-soft); border: 1px solid var(--line); border-radius: 8px; font-size: 10px; }
.toggle-grid input, .field-toggles input, .optional-condition input[type="checkbox"] { accent-color: var(--cyan-deep); }

.rule-builder { margin-top: 18px; padding: 20px; }
.rule-state { display: inline-flex; align-items: center; min-height: 27px; padding: 0 9px; border-radius: 7px; font-size: 10px; font-weight: 800; }
.rule-state.ready { color: var(--green); background: var(--green-soft); }
.rule-flow { display: grid; grid-template-columns: 1fr 150px 1fr; align-items: stretch; gap: 18px; margin-top: 18px; }
.rule-person { padding: 17px; border: 1px solid var(--line); background: #0a1a2b; border-radius: var(--radius-md); }
.rule-person.one { border-color: rgba(72, 209, 223, .38); }
.rule-person.many { border-color: rgba(231, 185, 104, .38); }
.rule-person-heading { display: flex; align-items: center; gap: 11px; }
.rule-person-heading > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; font-size: 17px; font-weight: 900; }
.rule-person.one .rule-person-heading > span { color: #052029; background: var(--cyan); }
.rule-person.many .rule-person-heading > span { color: #261c09; background: var(--gold); }
.rule-person h3, .rule-person p { margin: 0; }
.rule-person h3 { font-size: 14px; }
.rule-person p { color: var(--muted); font-size: 9px; }
.rule-person ul { margin: 15px 0 0; padding: 0; list-style: none; }
.rule-person li { display: flex; align-items: center; gap: 8px; min-height: 34px; color: var(--text-soft); border-top: 1px solid var(--line-soft); font-size: 11px; }
.rule-person li svg { width: 14px; height: 14px; color: var(--green); }
.relation-arrow { display: grid; place-items: center; align-content: center; gap: 10px; color: var(--muted); text-align: center; }
.relation-arrow svg { width: 25px; height: 25px; color: var(--cyan); }
.relation-arrow strong { font-size: 10px; line-height: 1.7; }
.optional-condition { justify-content: space-between; gap: 10px !important; }
.optional-condition label { display: flex; align-items: center; gap: 7px; }
.optional-condition input[type="number"] { width: 100px; height: 28px; padding: 0 8px; }
.rule-output { display: grid; grid-template-columns: .8fr 1.6fr auto; align-items: center; gap: 18px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.rule-output span, .rule-output strong { display: block; }
.rule-output span { color: var(--muted); font-size: 9px; }
.rule-output strong { margin-top: 2px; font-size: 11px; }

.metric-ribbon { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; }
.result-view-tabs { display: flex; gap: 4px; width: fit-content; max-width: 100%; margin: 0 0 14px; padding: 4px; overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.result-view-tabs button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font: inherit; font-weight: 700; white-space: nowrap; cursor: pointer; }
.result-view-tabs button:hover { color: var(--text); background: var(--surface-2); }
.result-view-tabs button.active { color: #fff; background: var(--cyan); }
.result-view-tabs button:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.metric-ribbon > div { min-height: 96px; padding: 16px 18px; border-right: 1px solid var(--line-soft); }
.metric-ribbon > div:last-child { border-right: 0; }
.metric-ribbon span, .metric-ribbon small { display: block; }
.metric-ribbon span { color: var(--muted); font-size: 10px; }
.metric-ribbon strong { display: block; margin: 4px 0 0; font-size: 27px; letter-spacing: -.03em; }
.metric-ribbon small { color: #688198; font-size: 9px; }
.metric-ribbon .metric-distribution { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 8px; letter-spacing: 0; }
.metric-distribution span { min-width: 0; }
.metric-distribution small { color: var(--muted); font-size: 8px; line-height: 1; white-space: nowrap; }
.metric-distribution b { display: block; margin-top: 5px; font-size: 18px; line-height: 1; white-space: nowrap; }
.branch-results { padding: 19px; }
.search-field { position: relative; display: inline-flex; align-items: center; }
.search-field svg { position: absolute; left: 10px; width: 15px; height: 15px; color: var(--muted); pointer-events: none; }
.search-field input { width: 180px; height: 34px; padding: 0 10px 0 32px; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; align-items: start; margin-top: 18px; }
.promotion-celebration, .promotion-results { margin-top: 18px; }
.promotion-celebration-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.promotion-dimension { min-width: 0; }
.promotion-dimension h3 { margin: 0 0 10px; font-size: 13px; }
.compact-table th, .compact-table td { padding-top: 10px; padding-bottom: 10px; }
.people-results, .exception-panel { padding: 19px; }
.table-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.table-tools select { height: 34px; padding: 0 28px 0 9px; }
.exception-count { display: grid; place-items: center; min-width: 28px; height: 28px; color: var(--orange); background: var(--orange-soft); border-radius: 7px; font-weight: 900; }
.exception-list { margin-top: 13px; }
.exception-empty { display: grid; place-items: center; min-height: 180px; color: var(--muted); text-align: center; }
.exception-empty svg { color: var(--green); }
.exception-empty p { max-width: 220px; font-size: 10px; }
.exception-item { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.exception-item:last-child { border-bottom: 0; }
.exception-item span { display: inline-flex; min-height: 20px; align-items: center; padding: 0 6px; color: var(--orange); background: var(--orange-soft); border-radius: 5px; font-size: 8px; font-weight: 800; }
.exception-item strong { display: block; margin-top: 6px; font-size: 11px; }
.exception-item p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }

.table-scroll { width: 100%; margin-top: 13px; overflow: auto; }
.data-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.data-table th { position: sticky; top: 0; z-index: 2; height: 40px; padding: 0 12px; color: var(--muted); border-bottom: 1px solid var(--line); background: #0b1a2b; font-size: 10px; font-weight: 700; text-align: left; }
.data-table td { height: 46px; padding: 0 12px; color: var(--text-soft); border-bottom: 1px solid var(--line-soft); font-size: 11px; }
.data-table tbody tr:hover td { background: rgba(72, 209, 223, .035); }
.data-table compact td, .data-table.compact td { height: 40px; font-size: 10px; }
.data-table .cell-primary { color: var(--text); font-weight: 750; }
.data-table .cell-secondary { display: block; color: var(--muted); font-size: 8px; font-weight: 400; }
.rate-cell { min-width: 140px; }
.rate-cell > span:first-child { display: inline-block; min-width: 47px; }
.rate-track { display: inline-block; width: 60px; height: 4px; margin-left: 7px; vertical-align: middle; background: #081522; border-radius: 4px; overflow: hidden; }
.rate-track i { display: block; height: 100%; background: var(--cyan); }
.result-pill { display: inline-flex; align-items: center; min-height: 25px; padding: 0 8px; border-radius: 6px; font-size: 10px; font-weight: 900; }
.result-pill.achieved { color: var(--green); background: var(--green-soft); }
.result-pill.zero { color: var(--muted); background: rgba(143, 166, 187, .09); }
.evidence-button { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 8px; color: var(--cyan); border: 0; background: transparent; border-radius: 6px; font-size: 10px; }
.evidence-button:hover { background: var(--cyan-soft); }
.source-tag { display: inline-flex; align-items: center; min-height: 20px; padding: 0 6px; color: var(--cyan); background: var(--cyan-soft); border-radius: 5px; font-size: 8px; }
.negative-text { color: var(--red) !important; }
.warning-text { color: var(--orange) !important; }

.report-type-toolbar { position: static; display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0 0 18px; padding: 10px 0 12px; border-bottom: 1px solid var(--line); background: var(--glass-strong, var(--surface)); }
.report-type-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 4px; }
.report-type-tab { min-height: 66px; padding: 10px 14px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.report-type-tab strong, .report-type-tab small { display: block; letter-spacing: 0; }
.report-type-tab strong { margin-bottom: 4px; color: var(--text); font-size: 15px; }
.report-type-tab small { font-size: 11px; }
.report-type-tab:hover { background: rgba(93, 145, 133, .07); }
.report-type-tab.active { border-bottom-color: var(--accent); background: rgba(93, 145, 133, .11); }
.report-variant-bar { display: flex; gap: 14px; align-items: end; justify-content: space-between; }
.report-variant-choice { display: grid; gap: 5px; }
.report-variant-choice > span { color: var(--muted); font-size: 11px; }
.report-variant-tabs { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--line-soft); background: var(--field, var(--surface)); }
.report-variant-tab { min-height: 34px; padding: 0 16px; border: 0; background: transparent; color: var(--muted); font-size: 12px; }
.report-variant-tab:hover { color: var(--text); background: var(--surface-2); }
.report-variant-tab.active { color: var(--text); background: var(--surface-3); box-shadow: 0 3px 10px rgba(55, 78, 78, .12); }
.report-variant-bar label { display: grid; gap: 5px; min-width: 154px; }
.report-variant-bar label > span { color: var(--muted); font-size: 11px; }
.report-variant-bar select { min-height: 38px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); padding: 0 34px 0 10px; }
.report-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 18px; align-items: start; }
.report-settings { position: sticky; top: 88px; padding: 18px; }
.report-options { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-soft); }
.report-options-first { margin-top: 10px; padding-top: 0; border-top: 0; }
.report-options label { display: block; margin-top: 10px; color: var(--muted); font-size: 9px; }
.report-options input, .report-options select, .report-options textarea { width: 100%; min-height: 34px; margin-top: 4px; padding: 8px 9px; }
.report-options textarea { resize: vertical; line-height: 1.55; }
.sort-setting-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.setting-section { margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line-soft); }
.setting-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.setting-section-head h3 { margin: 0; font-size: 12px; }
.setting-section-head small { display: block; margin-top: 1px; color: var(--muted); font-size: 8px; }
.field-scope-description { margin: 7px 0 8px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.btn.tiny { min-height: 27px; padding: 0 8px; gap: 4px; border-radius: 6px; font-size: 8px; }
.btn.tiny svg { width: 11px; height: 11px; }
.ppt-field-list { display: grid; gap: 6px; max-height: clamp(280px, 48vh, 520px); padding-right: 4px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.ppt-field-row { position: relative; display: grid; grid-template-columns: 24px 24px minmax(0, 1fr) 48px; gap: 6px; align-items: center; min-height: 35px; padding: 4px 5px; border: 1px solid var(--line-soft); background: rgba(8, 23, 38, .6); border-radius: 7px; }
.ppt-field-row.front-desk { grid-template-columns: 24px minmax(0, 1fr); }
.ppt-field-row:has(input[type="checkbox"]:checked) { border-color: rgba(72, 209, 223, .28); background: rgba(72, 209, 223, .045); }
.ppt-field-row > input[type="checkbox"] { width: 14px; height: 14px; }
.ppt-field-row > input[type="text"] { width: 100%; height: 27px; padding: 0 6px; color: var(--text-soft); border: 0; background: transparent; font-size: 9px; }
.ppt-field-row > input[type="text"]:focus { background: #071522; box-shadow: inset 0 0 0 1px var(--cyan); }
.field-drag-handle { display: grid; place-items: center; width: 24px; height: 28px; padding: 0; color: var(--muted); border: 0; background: transparent; border-radius: 5px; cursor: grab; touch-action: none; }
.field-drag-handle:hover, .field-drag-handle:focus-visible { color: var(--cyan); background: var(--cyan-soft); }
.field-drag-handle:active, .ppt-field-row.field-dragging .field-drag-handle { cursor: grabbing; }
.ppt-field-row.field-dragging { z-index: 1; opacity: .62; border-color: var(--cyan); }
.ppt-field-row.field-drop-before::before, .ppt-field-row.field-drop-after::after { content: ""; position: absolute; left: 4px; right: 4px; height: 2px; background: var(--cyan); border-radius: 2px; pointer-events: none; }
.ppt-field-row.field-drop-before::before { top: -5px; }
.ppt-field-row.field-drop-after::after { bottom: -5px; }
.optional-field-group { margin-top: 8px; border-top: 1px solid var(--line-soft); }
.optional-field-group summary { padding: 10px 4px 7px; color: var(--muted); font-size: 10px; cursor: pointer; }
.optional-field-group .ppt-field-row { margin-top: 5px; }
.ppt-field-actions { display: flex; gap: 3px; justify-content: flex-end; }
.ppt-field-actions button { display: grid; place-items: center; width: 21px; height: 21px; padding: 0; color: var(--muted); border: 1px solid var(--line-soft); background: transparent; border-radius: 5px; font-size: 10px; }
.ppt-field-actions button:hover { color: var(--cyan); border-color: var(--cyan); }
.progress-field-toggles { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.progress-field-toggles label { display: flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 9px; color: var(--text-soft); border: 1px solid var(--line-soft); background: rgba(8, 23, 38, .6); border-radius: 7px; font-size: 9px; }
.progress-field-toggles label:has(input:checked) { color: #ffd45b; border-color: rgba(255, 176, 0, .42); background: rgba(255, 176, 0, .08); }
.progress-field-toggles input { width: 14px; height: 14px; }
.rank-rule-list { display: grid; gap: 7px; }
.rank-rule-legend { display: flex; gap: 6px; margin-bottom: 7px; }
.rank-rule-legend span { padding: 4px 7px; border-radius: 5px; font-size: 8px; font-weight: 800; }
.rank-rule-legend .top { color: #f7dda0; background: rgba(242, 199, 104, .14); }
.rank-rule-legend .bottom { color: #a9e2ec; background: rgba(103, 184, 200, .14); }
.rank-rule-note { margin: 0 0 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.rank-count-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.rank-count-grid label { display: grid; gap: 4px; color: var(--muted); font-size: 8px; }
.rank-count-grid input { width: 100%; height: 31px; padding: 0 7px; }
.rank-field-toggles { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; max-height: 214px; margin-top: 8px; overflow-y: auto; }
.rank-field-toggles label { display: flex; align-items: center; gap: 7px; min-height: 31px; padding: 0 8px; color: var(--text-soft); border: 1px solid var(--line-soft); background: rgba(8, 23, 38, .42); border-radius: 7px; font-size: 8px; }
.rank-field-toggles label:has(input:checked) { color: var(--text); border-color: rgba(72, 209, 223, .34); background: rgba(72, 209, 223, .06); }
.rank-field-toggles input { width: 13px; height: 13px; }
.font-setting-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.font-setting-grid label { color: var(--muted); font-size: 8px; }
.font-setting-grid label.wide { grid-column: 1 / -1; }
.font-setting-grid input { width: 100%; height: 31px; margin-top: 4px; padding: 0 7px; }
.font-download { display: grid; grid-template-columns: 20px 1fr; grid-template-rows: auto auto; column-gap: 7px; margin-top: 9px; padding: 8px; color: var(--cyan); border: 1px solid rgba(72, 209, 223, .22); background: var(--cyan-soft); border-radius: 8px; text-decoration: none; }
.font-download svg { grid-row: 1 / 3; align-self: center; width: 16px; height: 16px; }
.font-download span { font-size: 9px; font-weight: 800; }
.font-download small { color: var(--muted); font-size: 7px; }
.export-stack { display: grid; gap: 8px; margin-top: 8px; }
.export-stack > strong { font-size: 13px; color: var(--muted); }
.export-format-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.export-format-buttons .btn { min-width: 0; padding-inline: 8px; }
.publish-checks { margin: 17px 0; padding-top: 14px; border-top: 1px solid var(--line-soft); }
.publish-checks h3 { margin: 0 0 8px; font-size: 12px; }
.publish-checks p { display: flex; align-items: center; gap: 8px; margin: 7px 0; color: var(--muted); font-size: 10px; }
.publish-checks p span { width: 7px; height: 7px; border-radius: 50%; background: #496176; }
.publish-checks p.ready { color: var(--text-soft); }
.publish-checks p.ready span { background: var(--green); }
.publish-checks p.warning span { background: var(--orange); }
.ppt-preview-panel { min-width: 0; padding: 18px; }
.ppt-preview-toolbar { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.ppt-preview-toolbar span { color: var(--cyan); font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.ppt-preview-toolbar h2 { margin: 4px 0 0; font-size: 16px; }
.ppt-preview-toolbar p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.preview-seal { display: grid; place-items: center; min-width: 56px; height: 36px; color: var(--orange); border: 1px solid var(--orange); border-radius: 7px; font-size: 11px; font-weight: 900; transform: rotate(2deg); }
.preview-seal.confirmed { color: var(--green); border-color: var(--green); }
.ppt-stage-wrap { width: 100%; overflow: hidden; border: 1px solid #234b6e; background: #03101d; box-shadow: 0 18px 46px rgba(0, 0, 0, .3); }
.ppt-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; color: #fff; overflow: hidden; container-type: inline-size; }
.ppt-stage.special-canvas-preview > :not(.special-poster-preview) { display: none !important; }
.ppt-stage.promotion-list-poster.special-canvas-preview::after,
.ppt-stage.warning-list-poster.special-canvas-preview::after { content: none; }
.special-poster-preview { display: block; width: 100%; height: auto; }
.ppt-stage.special-portrait { width: min(58%, 520px); margin: 0 auto; aspect-ratio: 9 / 16; }
.ppt-stage.special-portrait > h2 { left: 7%; top: 7%; width: 86%; height: 8%; justify-content: flex-start; color: #fff; text-align: left; white-space: normal; }
.ppt-stage.special-portrait .ppt-table-shell { left: 7%; top: 24%; width: 68%; height: 58%; padding: 2%; background: rgba(3, 38, 88, .76); }
.ppt-stage.special-portrait #pptPreviewTable { height: auto; }
.ppt-stage.special-portrait #pptPreviewTable th, .ppt-stage.special-portrait #pptPreviewTable td { height: 4.2cqw; padding: .7cqw; white-space: normal; }
.ppt-stage.special-portrait.list-portrait .ppt-table-shell { left: 7%; top: 18%; width: 86%; height: 68%; padding: 0; background: rgba(3, 38, 88, .72); }
.ppt-stage.special-portrait.list-portrait #pptPreviewTable { height: 100%; }
.ppt-stage.special-portrait.list-portrait #pptPreviewTable th, .ppt-stage.special-portrait.list-portrait #pptPreviewTable td { height: auto; padding: .45cqw .3cqw; font-size: clamp(5px, 1.15cqw, 10px); }
.portrait-metric-preview { height: 100%; color: #fff; }
.portrait-ready-head { padding: 1.2cqw 1.2cqw 1.6cqw; border-bottom: .12cqw solid rgba(255, 213, 122, .55); }
.portrait-ready-head span, .portrait-ready-head strong, .portrait-ready-head small { display: block; letter-spacing: 0; }
.portrait-ready-head span { color: #ffd57a; font-size: 1.25cqw; }
.portrait-ready-head strong { margin: .5cqw 0 .35cqw; font-size: 3cqw; }
.portrait-ready-head small { color: #d9f5ff; font-size: 1cqw; }
.portrait-ready-metrics { display: grid; gap: .35cqw; padding: 1.1cqw; }
.portrait-ready-metrics > div { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 4.7cqw; padding: .5cqw .7cqw; border-bottom: .08cqw solid rgba(255, 255, 255, .16); }
.portrait-ready-metrics span { color: #bdeaff; font-size: 1.05cqw; }
.portrait-ready-metrics strong { font-size: 1.45cqw; }
.portrait-ready-metrics em { grid-column: 1 / -1; color: #bdeacc; font-size: .8cqw; font-style: normal; }
.portrait-ready-metrics em.warning { color: #ffd57a; }
.ppt-stage.special-portrait .ppt-footer-note { left: 7%; top: 86%; width: 70%; height: 6%; }
.ppt-stage.special-portrait .ppt-time { left: 70%; top: 94%; width: 24%; height: 3%; text-align: right; }
.promotion-preview-brand, .promotion-preview-slogan, .promotion-preview-copy, .micro-gap-preview-horn, .micro-gap-preview-copy { display: none; }
.ppt-stage.promotion-list-poster { width: min(58%, 520px); margin: 0 auto; aspect-ratio: 1242 / 2688; background: #0b365b; }
.ppt-stage.promotion-list-poster::after { content: ""; position: absolute; z-index: 1; left: 0; right: 0; top: 27%; height: 17%; background: linear-gradient(180deg, rgba(11,54,91,0), #0b365b 88%); pointer-events: none; }
.ppt-stage.promotion-list-poster .ppt-bg { height: 40%; object-position: center 54%; }
.ppt-stage.promotion-list-poster .ppt-brand-left, .ppt-stage.promotion-list-poster .ppt-brand-right { display: none; }
.ppt-stage.promotion-list-poster .promotion-preview-brand { position: absolute; z-index: 3; left: 6.3%; top: 2.1%; display: flex; align-items: center; gap: 1.9cqw; }
.ppt-stage.promotion-list-poster .promotion-preview-brand img:first-child { width: 13.4cqw; height: 4.2cqw; object-fit: contain; }
.ppt-stage.promotion-list-poster .promotion-preview-brand img:last-child { width: 4.8cqw; height: 4.8cqw; object-fit: contain; }
.ppt-stage.promotion-list-poster .promotion-preview-slogan { position: absolute; z-index: 3; right: 5.8%; top: 1.8%; display: block; width: 8.6cqw; height: 5cqw; object-fit: contain; }
.ppt-stage.promotion-list-poster .promotion-preview-copy { position: absolute; z-index: 3; left: 12%; top: 6.3%; display: grid; width: 76%; justify-items: center; color: #e5f4fd; text-align: center; }
.ppt-stage.promotion-list-poster .promotion-preview-copy span { font-size: 1.45cqw; font-weight: 650; }
.ppt-stage.promotion-list-poster .promotion-preview-copy strong { margin-top: 1.6cqw; color: #f2c768; font-size: 1.55cqw; }
.ppt-stage.promotion-list-poster .promotion-preview-copy p { margin: 7.2cqw 0 0; font-size: 1.45cqw; font-weight: 600; }
.ppt-stage.promotion-list-poster .promotion-preview-copy small { margin-top: 1.5cqw; color: #f7d77e; font-size: 1.12cqw; font-weight: 700; }
.ppt-stage.promotion-list-poster > h2 { z-index: 3; left: 12%; top: 10.8%; width: 76%; height: 4.8%; justify-content: center; color: #fff; font-family: "方正小标宋简体", "STSong", serif; font-size: 5.1cqw !important; text-align: center; white-space: nowrap; }
.ppt-stage.promotion-list-poster .ppt-table-shell { z-index: 2; left: 5.2%; top: 33.2%; width: 89.6%; height: 61.5%; padding: 7.8cqw 2.2cqw 2.2cqw; overflow: hidden; border: .08cqw solid rgba(116,176,215,.5); background: linear-gradient(180deg, rgba(9,45,78,.78), #0d3c64 14%); }
.ppt-stage.promotion-list-poster .ppt-table-shell::before { content: "预晋组个人榜"; position: absolute; top: 2.3cqw; left: 0; right: 0; color: #f2cf78; font-family: "方正小标宋简体", "STSong", serif; font-size: 2.6cqw; text-align: center; }
.ppt-stage.promotion-list-poster #pptPreviewTable { height: 100%; border-collapse: separate; border-spacing: 0 .55cqw; }
.ppt-stage.promotion-list-poster #pptPreviewTable th, .ppt-stage.promotion-list-poster #pptPreviewTable td { height: auto; padding: .65cqw .7cqw; border: 0; font-size: 1.05cqw; }
.ppt-stage.promotion-list-poster #pptPreviewTable th { color: #c9e3f2; background: #0c426a; }
.ppt-stage.promotion-list-poster #pptPreviewTable th:nth-last-child(-n+2), .ppt-stage.promotion-list-poster #pptPreviewTable td:nth-last-child(-n+2) { text-align: right; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody td { color: #f3f9fd; background: #165984; border-top: .05cqw solid #3f7ba6; border-bottom: .05cqw solid #3f7ba6; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-1 td { color: #16243a; background: #f0d27d; border: 0; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-2 td { color: #16243a; background: #dceaf2; border: 0; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-3 td { color: #16243a; background: #d7a677; border: 0; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody td:nth-last-child(-n+2) { color: #f8df9d; font-variant-numeric: tabular-nums; }
.ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-1 td:nth-last-child(-n+2), .ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-2 td:nth-last-child(-n+2), .ppt-stage.promotion-list-poster #pptPreviewTable tbody tr.preview-rank-3 td:nth-last-child(-n+2) { color: #1a3550; }
.ppt-stage.promotion-list-poster .ppt-footer-note { z-index: 3; left: 6.2%; top: 96.3%; width: 63%; height: 2%; color: #f2c768; }
.ppt-stage.promotion-list-poster .ppt-time { z-index: 3; left: 74%; top: 96.3%; width: 20%; height: 2%; text-align: right; }
.ppt-stage.warning-list-poster { width: min(58%, 520px); margin: 0 auto; background: linear-gradient(145deg, #062442, #0b4167 58%, #0d5276); }
.ppt-stage.warning-list-poster::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(2,21,42,.18), transparent 45%, rgba(2,20,38,.25)); pointer-events: none; }
.ppt-stage.warning-list-poster .ppt-bg, .ppt-stage.warning-list-poster .ppt-brand-left, .ppt-stage.warning-list-poster .ppt-brand-right { display: none; }
.ppt-stage.warning-list-poster .promotion-preview-brand { position: absolute; z-index: 4; left: 3.6%; top: 3.3%; display: flex; align-items: center; gap: 1.1cqw; }
.ppt-stage.warning-list-poster .promotion-preview-brand img:first-child { width: 9cqw; height: 2.8cqw; object-fit: contain; }
.ppt-stage.warning-list-poster .promotion-preview-brand img:last-child { width: 3.2cqw; height: 3.2cqw; object-fit: contain; }
.ppt-stage.warning-list-poster .promotion-preview-slogan { position: absolute; z-index: 4; right: 3.8%; top: 2.8%; display: block; width: 6.4cqw; height: 4cqw; object-fit: contain; }
.ppt-stage.warning-list-poster .micro-gap-preview-horn { position: absolute; z-index: 2; left: 2%; top: 1.5%; display: block; width: 39%; height: 31%; object-fit: contain; object-position: center bottom; }
.ppt-stage.warning-list-poster .micro-gap-preview-copy { position: absolute; z-index: 3; left: 42%; top: 19%; display: grid; gap: .55cqw; width: 52%; color: #d8edf8; }
.ppt-stage.warning-list-poster .micro-gap-preview-copy strong { color: #f2c768; font-size: 1.25cqw; }
.ppt-stage.warning-list-poster .micro-gap-preview-copy span { font-size: 1.05cqw; font-weight: 700; }
.ppt-stage.warning-list-poster .micro-gap-preview-copy small { color: #b9d9e9; font-size: .75cqw; }
.ppt-stage.warning-list-poster > h2 { z-index: 3; left: 42%; top: 7.5%; width: 52%; height: 11%; justify-content: flex-start; color: #fff; font-family: "方正小标宋简体", "STSong", serif; font-size: 3.2cqw !important; text-align: left; white-space: normal; }
.ppt-stage.warning-list-poster .ppt-table-shell { z-index: 3; left: 3.6%; top: 33%; width: 92.8%; height: 59%; padding: 1.05cqw; border: .08cqw solid rgba(104,174,214,.68); background: rgba(4,35,62,.74); }
.ppt-stage.warning-list-poster #pptPreviewTable { height: 100%; border-collapse: separate; border-spacing: 0 .2cqw; }
.ppt-stage.warning-list-poster #pptPreviewTable th, .ppt-stage.warning-list-poster #pptPreviewTable td { height: auto; padding: .35cqw .45cqw; border: 0; font-size: .75cqw; }
.ppt-stage.warning-list-poster #pptPreviewTable th { color: #cce5f2; background: #0c426a; }
.ppt-stage.warning-list-poster #pptPreviewTable tbody td { color: #f4f9fc; background: #165984; border-top: .04cqw solid #4380aa; border-bottom: .04cqw solid #4380aa; }
.ppt-stage.warning-list-poster #pptPreviewTable th[data-field="branch"], .ppt-stage.warning-list-poster #pptPreviewTable th[data-field="name"], .ppt-stage.warning-list-poster #pptPreviewTable td[data-field="branch"], .ppt-stage.warning-list-poster #pptPreviewTable td[data-field="name"] { text-align: left; }
.ppt-stage.warning-list-poster #pptPreviewTable th[data-field="personalFycGap"], .ppt-stage.warning-list-poster #pptPreviewTable th[data-field="teamFycGap"], .ppt-stage.warning-list-poster #pptPreviewTable th[data-field="microGapScore"], .ppt-stage.warning-list-poster #pptPreviewTable td[data-field="personalFycGap"], .ppt-stage.warning-list-poster #pptPreviewTable td[data-field="teamFycGap"], .ppt-stage.warning-list-poster #pptPreviewTable td[data-field="microGapScore"] { text-align: right; font-variant-numeric: tabular-nums; }
.ppt-stage.warning-list-poster #pptPreviewTable tbody tr.preview-rank-1 td[data-field="rank"], .ppt-stage.warning-list-poster #pptPreviewTable tbody tr.preview-rank-2 td[data-field="rank"], .ppt-stage.warning-list-poster #pptPreviewTable tbody tr.preview-rank-3 td[data-field="rank"] { color: #f5d27c; font-weight: 900; }
.ppt-stage.warning-list-poster .ppt-footer-note { z-index: 3; left: 4.3%; top: 94.4%; width: 64%; height: 2%; color: #f2c768; }
.ppt-stage.warning-list-poster .ppt-time { z-index: 3; left: 72%; top: 94.4%; width: 23%; height: 2%; text-align: right; }
.ppt-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ppt-brand-left { position: absolute; left: 1.7%; top: 0; width: 39.4%; height: 134.27%; object-fit: fill; }
.ppt-brand-right { position: absolute; left: 91.97%; top: 3.84%; width: 7.16%; height: 6.7%; object-fit: contain; object-position: right top; }
.ppt-stage > h2 { position: absolute; left: 22.5%; top: 2.4%; width: 54.75%; height: 9.6%; display: flex; align-items: center; justify-content: center; margin: 0; color: #fff; font-family: "汉仪迪升英雄体简", "Microsoft YaHei", sans-serif; font-size: clamp(15px, 3.12cqw, 40px); font-weight: 500; text-align: center; white-space: nowrap; }
.ppt-table-shell { position: absolute; left: 2.63%; top: 12.53%; width: 94.75%; height: 79.2%; overflow: hidden; }
#pptPreviewTable { width: 100%; height: 100%; table-layout: fixed; border-collapse: collapse; color: #061e38; background: transparent; font-family: "方正小标宋简体", "Microsoft YaHei", sans-serif; }
#pptPreviewTable th, #pptPreviewTable td { padding: 0 .2%; border: .5px solid rgba(255, 255, 255, .58); font-size: var(--ppt-body-size, clamp(5px, .94cqw, 12px)); line-height: 1; text-align: center; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
#pptPreviewTable th { color: #fff; background: rgba(7, 80, 140, .97); font-size: var(--ppt-header-size, clamp(6px, 1.09cqw, 14px)); font-weight: 700; }
#pptPreviewTable .report-group-row { height: 5.3%; }
#pptPreviewTable .report-metric-row { height: 5.3%; }
#pptPreviewTable .report-metric-row th { background: rgba(11, 92, 152, .94); font-size: max(5px, calc(var(--ppt-header-size, 1.09cqw) * .88)); }
#pptPreviewTable .report-group-row th:not(:first-child):not(:nth-child(2)), #pptPreviewTable .report-metric-row th { line-height: 1.05; white-space: normal; text-overflow: clip; }
#pptPreviewTable .report-group-row th:first-child { width: 3.48%; }
#pptPreviewTable .report-group-row th:nth-child(2) { width: 8.87%; }
#pptPreviewTable tbody td { position: relative; color: #071b2d; font-weight: 700; background: rgba(226, 240, 250, .72); }
#pptPreviewTable tbody tr:nth-child(even) td { background: rgba(179, 211, 234, .62); }
#pptPreviewTable .cell-progress { position: absolute; z-index: 0; left: 1.5%; top: 12%; height: 76%; background: rgba(255, 176, 0, .84); box-shadow: inset 0 0 0 1px rgba(255, 215, 80, .5); }
#pptPreviewTable .cell-value { position: relative; z-index: 1; }
#pptPreviewTable tbody tr td.metric-rank-top .cell-value { color: #9a6400; font-weight: 900; }
#pptPreviewTable tbody tr td.metric-rank-bottom .cell-value { color: #2d6175; font-weight: 900; }
#pptPreviewTable .report-total-row td { color: #091d31; border-top: 1px solid #f1b72f; background: rgba(221, 235, 247, .62); font-weight: 900; }
.ppt-empty { position: absolute; inset: 0; display: grid; place-items: center; color: #d8efff; background: rgba(4, 28, 52, .78); font-size: 12px; }
.ppt-footer-note { position: absolute; left: 4.11%; top: 92.4%; width: 75%; height: 6.13%; margin: 0; color: #fff; font-size: clamp(5px, .62cqw, 8px); line-height: 1.12; white-space: pre-line; overflow: hidden; overflow-wrap: anywhere; }
.ppt-time { position: absolute; left: 83%; top: 93.36%; width: 14%; height: 4.91%; margin: 0; color: #fff; font-size: clamp(5px, .62cqw, 8px); line-height: 1.3; text-align: right; overflow: hidden; }
.ppt-preview-note { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin-top: 13px; padding: 11px 12px; border: 1px solid var(--line-soft); background: rgba(72, 209, 223, .035); border-radius: 8px; }
.ppt-preview-note span { display: inline-flex; align-items: center; min-height: 21px; padding: 0 6px; color: var(--cyan); background: var(--cyan-soft); border-radius: 5px; font-size: 8px; font-weight: 800; }
.ppt-preview-note p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.audit-panel { margin-top: 18px; padding: 19px; }
.audit-empty { min-height: 90px; display: grid; place-items: center; color: var(--muted); font-size: 11px; }

.poster-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr) 330px; gap: 18px; align-items: start; }
.poster-library-panel { position: sticky; top: 88px; padding: 18px; }
.poster-settings { position: sticky; top: 88px; padding: 18px; }
.poster-form { display: grid; gap: 11px; margin-top: 14px; }
.poster-form label { display: block; color: var(--muted); font-size: 9px; }
.poster-form input, .poster-form select, .poster-form textarea { width: 100%; min-height: 34px; margin-top: 4px; padding: 8px 9px; }
.poster-form textarea { min-height: 52px; resize: vertical; line-height: 1.35; }
.poster-form input[type="range"] { padding: 0; }
.poster-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.poster-category-list { display: grid; gap: 7px; margin-top: 14px; }
.poster-category-button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 34px; padding: 0 10px; border: 1px solid transparent; background: transparent; color: var(--muted); border-radius: 8px; font-size: 10px; font-weight: 800; text-align: left; }
.poster-category-button.active { color: var(--text); border-color: var(--line-soft); background: rgba(255, 255, 255, .42); }
.poster-template-list { display: grid; gap: 10px; max-height: calc(100vh - 270px); margin-top: 12px; padding-right: 3px; overflow: auto; }
.poster-template-card { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 9px; width: 100%; padding: 8px; color: var(--text); border: 1px solid var(--line-soft); background: rgba(255, 255, 255, .38); border-radius: 8px; text-align: left; }
.poster-template-card.active { border-color: rgba(72, 209, 223, .48); background: rgba(72, 209, 223, .08); }
.poster-template-card.is-offline { opacity: .62; }
.poster-template-card img { width: 58px; aspect-ratio: 1242 / 2208; object-fit: cover; border-radius: 6px; background: #07142b; }
.poster-template-card strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.poster-template-card span { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.poster-admin-panel { margin-top: 18px; padding: 18px; }
.poster-admin-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: end; margin-top: 14px; }
.poster-admin-grid label { display: block; color: var(--muted); font-size: 9px; }
.poster-admin-grid input { width: 100%; min-height: 34px; margin-top: 4px; padding: 8px 9px; }
.poster-dynamic-fields { display: grid; gap: 10px; }
.poster-field-control { display: grid; gap: 7px; }
.poster-field-tools { display: grid; grid-template-columns: minmax(0, 1fr) 74px; gap: 8px; }
.poster-field-tools input { text-align: center; }
.poster-empty-fields { margin: 0; padding: 10px; color: var(--muted); border: 1px solid var(--line-soft); background: rgba(255, 255, 255, .25); border-radius: 8px; font-size: 9px; line-height: 1.5; }
.poster-remove-bg { width: 100%; justify-content: center; }
.poster-position-box { padding: 10px; border: 1px solid var(--line-soft); background: rgba(255, 255, 255, .32); border-radius: 8px; }
.poster-position-box summary { cursor: pointer; color: var(--muted); font-weight: 800; }
.poster-position-box[open] { display: grid; gap: 9px; }
.poster-layer-note { margin: -3px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.poster-hint { margin: 2px 0 0; padding: 9px 10px; color: var(--muted); border: 1px solid var(--line-soft); background: rgba(72, 209, 223, .035); border-radius: 8px; font-size: 9px; line-height: 1.5; }
.poster-preview-panel { min-width: 0; padding: 18px; }
.poster-stage-shell { display: grid; place-items: center; width: fit-content; max-width: 100%; margin: 12px auto 0; padding: 12px; border: 1px solid #234b6e; background: #03101d; box-shadow: 0 18px 46px rgba(0, 0, 0, .3); overflow: auto; }
.poster-canvas { display: block; width: min(72vw, 430px); max-width: 100%; height: auto; background: #04172c; box-shadow: 0 12px 30px rgba(0, 0, 0, .28); }

.app-dialog { width: min(760px, calc(100vw - 30px)); max-height: min(82vh, 820px); padding: 0; color: var(--text); border: 1px solid #3d5b76; background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.app-dialog.narrow { width: min(560px, calc(100vw - 30px)); }
.app-dialog::backdrop { background: rgba(2, 8, 15, .72); backdrop-filter: blur(5px); }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 19px 21px 17px; border-bottom: 1px solid var(--line); background: #0a1a2b; }
.dialog-head span { color: var(--cyan); font-size: 9px; font-weight: 800; }
.dialog-head h2 { margin: 3px 0 0; font-size: 18px; }
.icon-button { display: grid; place-items: center; width: 34px; height: 34px; color: var(--muted); border: 1px solid var(--line); background: transparent; border-radius: 9px; }
.icon-button:hover { color: var(--text); background: var(--surface-2); }
.evidence-content { padding: 20px; overflow: auto; }
.evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.evidence-block { padding: 14px; border: 1px solid var(--line-soft); background: #0a192a; border-radius: 10px; }
.evidence-block h3 { margin: 0 0 10px; font-size: 13px; }
.evidence-block dl { margin: 0; }
.evidence-block dl div { display: flex; justify-content: space-between; gap: 12px; min-height: 30px; padding: 6px 0; border-top: 1px solid var(--line-soft); }
.evidence-block dt { color: var(--muted); font-size: 10px; }
.evidence-block dd { margin: 0; color: var(--text-soft); font-size: 10px; text-align: right; }
.newcomer-list { grid-column: 1 / -1; }
.newcomer-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 10px; min-height: 39px; align-items: center; border-top: 1px solid var(--line-soft); font-size: 10px; }
.feedback-block { grid-column: 1 / -1; }
.feedback-muted { margin: 0; color: var(--muted); font-size: 11px; }
.feedback-history { display: grid; gap: 7px; padding: 10px; border: 1px solid var(--line-soft); background: rgba(72, 209, 223, .035); border-radius: 8px; }
.feedback-history strong { color: var(--cyan); font-size: 11px; }
.feedback-history p { margin: 0; color: var(--text-soft); font-size: 11px; line-height: 1.6; }
.feedback-history small { color: var(--muted); font-size: 9px; }
.feedback-reply { margin-top: 5px; padding-top: 8px; border-top: 1px solid var(--line-soft); }
.feedback-form { display: grid; gap: 9px; margin-top: 10px; }
.feedback-form textarea { width: 100%; min-height: 78px; padding: 10px; color: var(--text); border: 1px solid var(--line); background: var(--surface-2); border-radius: 8px; resize: vertical; }
.feedback-form .btn { justify-self: end; min-height: 34px; padding-inline: 14px; }
.form-stack { display: grid; gap: 13px; padding: 20px; }
.form-stack label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.form-stack input, .form-stack select, .form-stack textarea { width: 100%; min-height: 38px; padding: 8px 10px; }
.value-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.impact-note { display: flex; gap: 9px; padding: 11px; color: var(--orange); background: var(--orange-soft); border-radius: 9px; }
.impact-note p { margin: 0; font-size: 10px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 15px 20px; border-top: 1px solid var(--line); background: #0a192a; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 100; max-width: min(420px, calc(100vw - 30px)); padding: 12px 15px; color: #052029; background: var(--cyan); border-radius: 10px; box-shadow: var(--shadow); font-size: 12px; font-weight: 750; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity var(--ease), transform var(--ease); }
.toast.show { opacity: 1; transform: none; }

.countdown-poster-panel .panel-heading { align-items: center; }
.countdown-poster-stage { display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 50% 22%, rgba(36, 168, 239, .13), transparent 42%), #071a2b; border: 1px solid var(--line-soft); border-radius: 12px; }
.countdown-poster-stage canvas { display: block; width: min(100%, 470px); height: auto; aspect-ratio: 9 / 16; background: #063c70; box-shadow: 0 18px 54px rgba(0, 0, 0, .42); }

@media (max-width: 1180px) {
  .app-shell { grid-template-columns: 204px minmax(0, 1fr); }
  .main-content { padding-inline: 24px; }
  .source-workbench { grid-template-columns: 1fr; }
  .readiness-rail { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
  .readiness-rail .rail-warning, .readiness-rail .btn { align-self: end; }
  .rules-layout { grid-template-columns: 1fr; }
  .detail-layout { grid-template-columns: 1fr; }
  .promotion-celebration-grid { grid-template-columns: 1fr; }
  .account-admin-layout { grid-template-columns: 1fr; }
  .report-layout { grid-template-columns: 270px minmax(0, 1fr); }
  .poster-layout { grid-template-columns: 220px minmax(0, 1fr) 270px; }
  .metric-ribbon { grid-template-columns: repeat(3, 1fr); }
  .metric-ribbon > div:nth-child(3) { border-right: 0; }
  .metric-ribbon > div:nth-child(n+4) { border-top: 1px solid var(--line-soft); }
}

@media (max-width: 900px) {
  .app-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; padding: 12px 16px; }
  .brand { padding-bottom: 12px; }
  .module-nav { display: flex; gap: 6px; padding: 10px 0 0; }
  .nav-label, .sidebar-section, .sidebar-foot { display: none; }
  .nav-item { width: auto; flex: 1; margin: 0; }
  .nav-item small { display: none; }
  .topbar { top: 0; padding: 0 18px; }
  .topbar-actions { gap: 7px; }
  .operator-field span, .quarter-picker span { display: none; }
  .main-content { padding: 24px 18px 44px; }
  .page-heading { align-items: flex-start; }
  .run-strip { align-items: flex-start; }
  .run-strip dl { display: none; }
  .workflow-tabs { grid-template-columns: 1fr 1fr; }
  .workflow-tab:nth-child(2) { border-right: 0; }
  .workflow-tab:nth-child(n+3) { border-top: 1px solid var(--line-soft); }
  .rule-flow { grid-template-columns: 1fr; }
  .relation-arrow { min-height: 88px; }
  .relation-arrow svg { transform: rotate(90deg); }
  .rule-output { grid-template-columns: 1fr; }
  .report-type-toolbar { position: static; }
  .report-variant-bar { justify-content: flex-start; flex-wrap: wrap; }
  .report-layout { grid-template-columns: 1fr; }
  .report-settings { position: static; }
  .poster-layout { grid-template-columns: 1fr; }
  .poster-library-panel, .poster-settings { position: static; }
  .poster-admin-grid { grid-template-columns: 1fr 1fr; }
  .poster-template-list { max-height: none; }
}

@media (max-width: 660px) {
  body { font-size: 13px; }
  .topbar { min-height: 58px; }
  .breadcrumb span, .breadcrumb svg { display: none; }
  .quarter-picker select { min-width: 124px; }
  .operator-field input { width: 94px; }
  .page-heading { display: block; }
  .page-heading h1 { font-size: 30px; }
  .report-type-tab { min-height: 58px; padding: 8px; }
  .report-type-tab strong { font-size: 12px; }
  .report-type-tab small { font-size: 9px; }
  .report-variant-bar label { min-width: min(100%, 180px); flex: 1; }
  .page-heading .heading-actions { margin-top: 17px; }
  .heading-actions .btn { flex: 1; }
  .run-strip > div { grid-template-columns: 1fr; }
  .run-state { grid-row: auto; width: max-content; margin-bottom: 6px; }
  .run-strip small { grid-column: 1; }
  .module-nav .nav-item span { display: none; }
  .workflow-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .workflow-tab { min-width: 0; padding: 10px 8px; gap: 7px; border-top: 0 !important; }
  .workflow-tab small { display: none; }
  .section-heading { display: block; }
  .section-heading > .section-badge, .section-heading > .btn, .section-heading > .heading-actions { margin-top: 12px; }
  .unified-uploader { align-items: stretch; flex-direction: column; }
  .unified-uploader .btn { width: 100%; }
  .unified-source-status { grid-template-columns: 1fr; }
  .target-maintenance { align-items: stretch; flex-direction: column; }
  .target-maintenance-action { justify-content: space-between; }
  .source-uploader { grid-template-columns: 38px 1fr; padding: 16px 14px; }
  .source-index { width: 36px; height: 36px; }
  .source-action { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: flex-end; }
  .source-action .status-chip { margin-right: auto; }
  .readiness-rail { display: block; }
  .readiness-rail .btn { margin-top: 14px; }
  .panel-heading { display: block; }
  .panel-heading > .inline-select, .panel-heading > .search-field, .panel-heading > .table-tools { margin-top: 11px; }
  .inline-select { justify-content: space-between; }
  .mapping-row { grid-template-columns: 1fr; gap: 5px; padding: 9px 0; }
  .mapping-row > span { display: none; }
  .mapping-row small { text-align: left; }
  .toggle-grid, .field-toggles { grid-template-columns: 1fr; }
  .metric-ribbon { grid-template-columns: 1fr 1fr; }
  .metric-ribbon > div { border-top: 1px solid var(--line-soft); }
  .metric-ribbon > div:nth-child(1), .metric-ribbon > div:nth-child(2) { border-top: 0; }
  .metric-ribbon > div:nth-child(2n) { border-right: 0; }
  .metric-ribbon > div:last-child { grid-column: 1 / -1; }
  .table-tools { display: grid; grid-template-columns: 1fr; }
  .search-field input { width: 100%; }
  .account-sql-form { grid-template-columns: 1fr; }
  .poster-admin-grid, .poster-form-grid, .poster-field-tools { grid-template-columns: 1fr; }
  .account-form-actions { display: grid; grid-template-columns: 1fr; }
  .evidence-grid, .value-compare { grid-template-columns: 1fr; }
  .newcomer-list { grid-column: 1; }
  .newcomer-row { grid-template-columns: 1fr 1fr; padding: 8px 0; }
  .toast { right: 15px; bottom: 15px; }
}
