/* =====================================================================
   finance_ui.css — 店铺收支管理视觉规范 v1（2026-10-11）
   来源：店铺收支改版效果图。参考页 reference/*.html 只用本文件排版。
   规则：
   1. 本文件整份放到 admin/finance_ui.css，在 index.html 中排在 shop_finance.css 之后加载。
   2. 不要改本文件里的数值。确需调整，先改参考页并重新跑视觉比对，再同步到这里。
   3. 本文件定义过的类名，shop_finance.css 里不得再定义（见任务书 §4 冲突清单）。
   4. 页面根节点同时带 class="shop-finance-page fx-page"。
   ===================================================================== */

/* ---------- 外壳：抵消 .main 的 20px 24px 内边距，内容区与效果图同宽 ---------- */
.layout:has(.fx-page)>.main { padding:20px 24px; min-width:0; }
.fx-page {
  box-sizing:border-box; width:100%; max-width:1196px; margin:0 auto; padding:4px 8px 96px;
  display:flex; flex-direction:column; gap:20px; min-width:0;
  color:#1f2a37; background:transparent;
  font-family:'PingFang SC','Hiragino Sans GB','Microsoft YaHei',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:14px; line-height:1.5; font-weight:400;
}
.fx-page *, .fx-page *::before, .fx-page *::after { box-sizing:border-box; }
:where(.fx-page) :where(p,h1,h2,h3,h4,ul,ol,figure) { margin:0; }
:where(.fx-page) :where(ul,ol) { padding:0; list-style:none; }
:where(.fx-page) :where(a) { color:#245bcb; }
:where(.fx-page) :where(a:hover) { color:#1a479f; }
.fx-page :focus-visible { outline:2px solid #245bcb; outline-offset:2px; }
.fx-top, .fx-content { display:flex; flex-direction:column; gap:20px; min-width:0; }
.fx-spacer { flex:1 1 auto; }
.fx-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.fx-num { font-variant-numeric:tabular-nums; }
.fx-self-start { align-self:flex-start; }

/* ---------- 页头 ---------- */
.fx-header { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fx-header__name { display:flex; align-items:center; gap:12px; }
.fx-title { margin:0; font-size:22px; font-weight:600; line-height:1.5; }
.fx-chip { display:inline-flex; align-items:center; padding:4px 10px; border-radius:6px; font-size:13px; line-height:1.5; white-space:nowrap; }
.fx-chip--shop { border:1px solid #cddbf6; background:#f4f7ff; color:#245bcb; }
.fx-chip--pending { background:#fff4e2; color:#8a5208; }
.fx-chip--done { background:#e6f4ef; color:#11664f; }
.fx-chip--waiting { background:#f1f3f6; color:#4a5565; }
.fx-chip--overdue { background:#fdecea; color:#9f1f15; }

/* 月份切换：一个整体框，左右箭头 + 中间月份（点中间打开月份选择） */
.fx-month { position:relative; display:flex; align-items:center; border:1px solid #d5dce6; border-radius:8px; background:#fff; }
.fx-month__arrow { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:#3d4757; font:inherit; cursor:pointer; }
.fx-month__arrow svg { width:16px; height:16px; }
.fx-month__arrow:disabled { color:#9aa6b6; cursor:not-allowed; }
.fx-month__label { height:44px; padding:0 6px; border:0; background:transparent; color:#1f2a37; font:inherit; font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; cursor:pointer; }
.fx-month__native { position:absolute; left:0; top:100%; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }

/* ---------- 页签 ---------- */
.fx-tabs { display:flex; gap:4px; border-bottom:1px solid #dbe2eb; overflow-x:auto; }
.fx-tab { flex:none; display:flex; align-items:center; gap:8px; min-height:48px; padding:0 20px; border:0; border-bottom:3px solid transparent; background:transparent; color:#3d4757; font:inherit; font-size:15px; text-decoration:none; white-space:nowrap; cursor:pointer; }
.fx-tab:hover { color:#245bcb; }
.fx-tab.is-active, .fx-tab[aria-current="page"], .fx-tab[aria-pressed="true"], .fx-tab[aria-selected="true"] { border-bottom-color:#245bcb; color:#245bcb; font-weight:600; }
.fx-badge { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:#fff1dc; color:#8a5208; font-size:12px; line-height:1; }

/* ---------- 按钮与链接 ---------- */
.fx-btn { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:0 16px; border:1px solid #c9d4e3; border-radius:8px; background:#fff; color:#1f2a37; font:inherit; font-size:14px; line-height:1.5; text-decoration:none; white-space:nowrap; cursor:pointer; }
.fx-btn:hover { border-color:#245bcb; color:#245bcb; }
.fx-btn--primary { border-color:#245bcb; background:#245bcb; color:#fff; }
.fx-btn--primary:hover { border-color:#1d4fb8; background:#1d4fb8; color:#fff; }
.fx-btn:disabled, .fx-btn[aria-disabled="true"] { border-color:#d5dce6; background:#f4f6f9; color:#4a5565; cursor:not-allowed; }
.fx-btn--primary:disabled, .fx-btn--primary[aria-disabled="true"] { border-color:#c9d6ee; background:#c9d6ee; color:#3d4c66; }
.fx-btn--sm { padding:0 14px; }
.fx-btn--xs { padding:0 12px; }
.fx-btn--lg { padding:0 18px; }
.fx-btn--task { min-width:88px; }
.fx-btn--block { display:flex; width:100%; }
.fx-btn--text { padding:0 12px; border-color:transparent; background:transparent; color:#245bcb; }
.fx-btn--text:hover { border-color:transparent; color:#1a479f; text-decoration:underline; }
.fx-btn--text:disabled { border-color:transparent; background:transparent; color:#9aa6b6; }
.fx-link { display:inline; padding:0; border:0; background:transparent; color:#245bcb; font:inherit; text-decoration:underline; cursor:pointer; }
.fx-link:hover { color:#1a479f; }
.fx-link--sm { font-size:13px; }

/* ---------- 状态标签（6 种配色） ---------- */
.fx-tag { display:inline-block; padding:2px 8px; border-radius:4px; font-size:12px; line-height:18px; font-weight:400; white-space:nowrap; }
.fx-tag--done { background:#e6f4ef; color:#11664f; }
.fx-tag--pending { background:#fff1dc; color:#8a5208; }
.fx-tag--waiting { background:#f1f3f6; color:#4a5565; }
.fx-tag--estimate { padding:1px 7px; border:1px dashed #b26a0c; background:transparent; color:#8a5208; }
.fx-tag--overdue { background:#fdecea; color:#9f1f15; }

/* ---------- 文字 ---------- */
.fx-note { font-size:13px; color:#5b6676; }
.fx-note--warn { color:#8a5208; }
.fx-note--ok { color:#11664f; }
.fx-note--dark { color:#4a5565; }
.fx-note--link { color:#245bcb; }
.fx-error { font-size:13px; color:#9f1f15; overflow-wrap:anywhere; }
.fx-banner { padding:12px 16px; border-radius:8px; background:#f1f3f6; color:#4a5565; font-size:13px; }
.fx-banner--warn { background:#fff4e2; color:#8a5208; }
.fx-empty { display:flex; align-items:center; gap:8px; padding:14px 0; border-top:1px solid #edf0f4; color:#11664f; }
.fx-skeleton { display:block; min-height:64px; border-radius:6px; background:linear-gradient(90deg,#eef1f5,#fafbfc,#eef1f5); background-size:200% 100%; animation:fx-loading 1.5s linear infinite; }
@keyframes fx-loading { to { background-position:-200% 0; } }
@media (prefers-reduced-motion:reduce) { .fx-skeleton { animation:none; } }

/* ---------- 卡片 ---------- */
.fx-card { display:flex; flex-direction:column; gap:14px; min-width:0; padding:18px 22px; border:1px solid #e3e8ef; border-radius:10px; background:#fff; }
.fx-card--list { gap:4px; padding-bottom:8px; }
.fx-card--step { gap:10px; padding:16px 22px; }
.fx-card--current { border:2px solid #245bcb; }
.fx-card--side { gap:10px; padding:16px 20px; }
.fx-card--table { position:relative; display:block; padding:8px 16px; overflow-x:auto; }
.fx-card__head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fx-card__head--baseline { align-items:baseline; }
.fx-card__head--split { justify-content:space-between; }
.fx-card__title { margin:0; font-size:16px; font-weight:600; line-height:1.5; }
.fx-card__title--sm { font-size:15px; }
.fx-card__title--lg { font-size:18px; }
.fx-card__foot { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding-top:12px; border-top:1px solid #edf0f4; }
.fx-card__foot-text { flex:1 1 320px; font-size:13px; color:#5b6676; }
.fx-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fx-row__text { flex:1 1 260px; font-size:13px; color:#5b6676; }

/* 两栏布局（主栏 + 侧栏） */
.fx-split { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; }
.fx-split__main { flex:2 1 606px; min-width:0; }
.fx-split__side { flex:1 1 346px; min-width:0; }
.fx-split--expense>.fx-split__main { flex:3 1 560px; }
.fx-split--expense>.fx-split__side { flex:1 1 280px; }
.fx-split--close>.fx-split__main { flex:3 1 600px; }
.fx-split--close>.fx-split__side { flex:1 1 260px; }
.fx-stack { display:flex; flex-direction:column; gap:16px; min-width:0; }

/* ---------- 页内小标题行（月结页） ---------- */
.fx-pagehead { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fx-pagehead__title { margin:0; font-size:18px; font-weight:600; line-height:1.5; }

/* 分段切换（本店 / 全部门店） */
.fx-seg { display:flex; border:1px solid #c9d4e3; border-radius:8px; overflow:hidden; background:#fff; }
.fx-seg__item { display:inline-flex; align-items:center; min-height:42px; padding:0 16px; border:0; background:transparent; color:#1f2a37; font:inherit; text-decoration:none; white-space:nowrap; cursor:pointer; }
.fx-seg__item.is-active, .fx-seg__item[aria-pressed="true"], .fx-seg__item[aria-current="page"] { background:#245bcb; color:#fff; }

/* ---------- 概览：3 个大数 ---------- */
.fx-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:16px; }
.fx-kpi { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:10px; min-width:0; margin:0; padding:20px 22px; border:1px solid #e3e8ef; border-radius:10px; background:#fff; color:#1f2a37; font:inherit; text-align:left; text-decoration:none; cursor:pointer; }
.fx-kpi:hover { border-color:#245bcb; }
.fx-kpi--profit { border-color:#cddbf6; background:#edf3ff; }
.fx-kpi__head { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.fx-kpi__label { font-size:15px; color:#3d4757; }
.fx-kpi__value { font-size:30px; font-weight:600; line-height:1.5; letter-spacing:-0.5px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.fx-kpi__value--income { color:#11664f; }
.fx-kpi__value--expense { color:#8f5410; }
.fx-kpi__value--profit { color:#1d4fb8; }
.fx-kpi__value.is-unknown { color:#5b6676; }
.fx-kpi__cur { font-size:18px; }
.fx-kpi__line { font-size:13px; color:#5b6676; }
.fx-kpi__line--warn { color:#8a5208; }
.fx-kpi__line--dark { color:#4a5565; }
.fx-kpi__line--link { color:#245bcb; }

/* ---------- 概览：现金 ---------- */
.fx-cash__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr)); gap:12px; }
.fx-cash__item { display:flex; flex-direction:column; gap:4px; min-width:0; margin:0; padding:0; border:0; background:transparent; color:#1f2a37; font:inherit; text-align:left; text-decoration:none; }
button.fx-cash__item, a.fx-cash__item { cursor:pointer; }
.fx-cash__item--divider { padding-left:14px; border-left:1px solid #e3e8ef; }
.fx-cash__label { font-size:13px; color:#5b6676; }
.fx-cash__value { font-size:20px; font-weight:600; font-variant-numeric:tabular-nums; }
.fx-cash__value--net { color:#1d4fb8; }
.fx-cash__more { font-size:13px; font-weight:400; color:#245bcb; }

/* ---------- 待办 ---------- */
.fx-tasks { display:flex; flex-direction:column; }
.fx-task { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 0; border-top:1px solid #edf0f4; }
.fx-task__dot { flex:none; width:10px; height:10px; border-radius:50%; background:#8b95a5; }
.fx-task__dot--due { background:#d4860f; }
.fx-task__dot--overdue { background:#9f1f15; }
.fx-task__body { flex:1 1 260px; min-width:0; display:flex; flex-direction:column; gap:2px; }
.fx-task__title { font-weight:600; }
.fx-task__desc { font-size:13px; color:#5b6676; }
.fx-task__due { font-size:13px; color:#5b6676; white-space:nowrap; }
.fx-task__due--due { color:#8a5208; }
.fx-task__due--overdue { color:#9f1f15; }
.fx-task__due-inline { display:none; }

/* ---------- 月结步骤（概览竖排 / 月结页横排） ---------- */
.fx-steps { display:flex; flex-direction:column; }
.fx-step { display:flex; gap:12px; width:100%; margin:0; padding:10px 0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.fx-step__icon { flex:none; display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; font-size:13px; font-weight:600; }
.fx-step__icon svg { width:14px; height:14px; }
.fx-step__icon--done { background:#11664f; color:#fff; }
.fx-step__icon--current { background:#245bcb; color:#fff; }
.fx-step__icon--todo { border:2px solid #9aa6b6; color:#4a5565; }
.fx-step__icon--lg { width:32px; height:32px; font-size:14px; }
.fx-step__icon--lg svg { width:16px; height:16px; }
.fx-step__text { display:flex; flex-direction:column; min-width:0; }
.fx-step__title { font-weight:600; }
.fx-step__title--current { color:#1d4fb8; }
.fx-step__status { font-size:13px; color:#5b6676; }
.fx-step__status--done { color:#11664f; }
.fx-step__status--pending { color:#8a5208; }
.fx-step__status--overdue { color:#9f1f15; }
.fx-stepbar { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:12px; padding:18px 22px; border:1px solid #e3e8ef; border-radius:10px; background:#fff; }
.fx-stepbar .fx-step { align-items:center; padding:0; }

/* 月结卡里的检查项 */
.fx-checks { display:flex; flex-direction:column; }
.fx-check { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 0; border-top:1px solid #edf0f4; }
.fx-check--last { padding-bottom:0; }
.fx-ring { flex:none; display:flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; }
.fx-ring svg { width:12px; height:12px; }
.fx-ring--done { background:#11664f; color:#fff; }
.fx-ring--pending { border:2px solid #d4860f; }
.fx-ring--overdue { border:2px solid #9f1f15; }
.fx-ring--waiting { border:2px solid #9aa6b6; }
.fx-check__body { flex:1 1 260px; min-width:0; display:flex; flex-direction:column; }
.fx-check__title { font-weight:600; }
.fx-check__desc { font-size:13px; color:#5b6676; }
.fx-check__due { font-size:13px; color:#8a5208; white-space:nowrap; }
.fx-check__due--overdue { color:#9f1f15; }
.fx-facts { display:flex; gap:4px 24px; flex-wrap:wrap; font-size:13px; color:#4a5565; }
.fx-indent { margin-left:34px; }
.fx-kv { display:flex; justify-content:space-between; gap:8px; font-size:14px; }
.fx-kv__value--ok { color:#11664f; }
.fx-kv__value--warn { color:#8a5208; }

/* ---------- 表格 ---------- */
.fx-table-wrap { position:relative; overflow-x:auto; min-width:0; }
.fx-table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.fx-table th { padding:10px 8px; border-bottom:1px solid #e3e8ef; color:#5b6676; font-size:13px; font-weight:500; text-align:left; white-space:nowrap; background:transparent; }
.fx-table td { padding:14px 8px; border-bottom:1px solid #edf0f4; text-align:left; }
.fx-table .is-num { text-align:right; }
.fx-table .is-gap { padding-left:24px; }
.fx-table td.is-action { padding:8px; text-align:right; white-space:nowrap; }
.fx-table td.is-strong { font-weight:600; }
.fx-table td.is-muted { color:#5b6676; }
.fx-table td.is-warn { color:#8a5208; font-weight:600; }
.fx-table td.is-overdue { color:#9f1f15; }
.fx-table tr.is-total td { border-bottom:0; font-weight:600; }
.fx-table tr.is-attention { background:#fffaf2; }
.fx-table tr.is-selected { background:#f4f7ff; }
.fx-table tr.is-overdue { background:#fff7f6; }
.fx-table--compact td { padding:10px 8px; }
.fx-table td.is-check, .fx-table th.is-check { width:52px; padding:6px 8px; }
.fx-table--all th { padding:12px 10px; }
.fx-table--all td { padding:14px 10px; }
.fx-table--all td.is-action { padding:6px 10px; text-align:left; }
.fx-table th.is-w96 { width:96px; } .fx-table th.is-w120 { width:120px; } .fx-table th.is-w220 { width:220px; }
.fx-table--min620 { min-width:620px; } .fx-table--min640 { min-width:640px; } .fx-table--min760 { min-width:760px; }
.fx-table--min860 { min-width:860px; } .fx-table--min900 { min-width:900px; }
.fx-cell { display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.fx-cell--end { align-items:flex-end; }
.fx-cell__sub { font-size:12px; color:#5b6676; }
.fx-cell__sub--ok { color:#11664f; }
.fx-cell__sub--warn { color:#8a5208; }
.fx-cell__actions { display:inline-flex; gap:8px; }
.fx-check-box { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; }
.fx-check-box input { width:18px; height:18px; margin:0; accent-color:#245bcb; cursor:pointer; }
.fx-subtable { position:relative; border:1px solid #e3e8ef; border-radius:8px; overflow-x:auto; }
.fx-subtable .fx-table th { padding:8px 12px; border-bottom:0; background:#f8fafc; }
.fx-subtable .fx-table td { padding:10px 12px; border-top:1px solid #edf0f4; border-bottom:0; }
.fx-subtable .fx-table td.is-action { padding:6px 12px; }
.fx-subtable .fx-table td:first-child { white-space:nowrap; }

/* ---------- 收入页 ---------- */
.fx-minis { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:12px; }
.fx-mini { display:flex; flex-direction:column; gap:4px; min-width:0; padding:16px 18px; border:1px solid #e3e8ef; border-radius:10px; background:#fff; }
.fx-mini__label { font-size:13px; color:#5b6676; }
.fx-mini__value { font-size:22px; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.fx-mini__value--income { color:#11664f; }
.fx-mini__sub { font-size:12px; color:#5b6676; }
.fx-mini__link { align-self:flex-start; padding:0; border:0; background:transparent; color:#245bcb; font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; }
.fx-mini--warn { border-color:#f0dcb8; background:#fffaf2; }
.fx-mini--warn .fx-mini__label, .fx-mini--warn .fx-mini__sub { color:#6b4a14; }
.fx-mini--warn .fx-mini__value { color:#8a5208; }
.fx-stats { display:flex; gap:12px; flex-wrap:wrap; }
.fx-stat { display:flex; flex-direction:column; min-width:180px; padding:10px 14px; border-radius:8px; background:#f4f6f9; }
.fx-stat__label { font-size:13px; color:#5b6676; }
.fx-stat__value { font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; }
.fx-stat--warn { background:#fff4e2; }
.fx-stat--warn .fx-stat__label { color:#6b4a14; }
.fx-stat--warn .fx-stat__value { color:#8a5208; }

/* ---------- 支出页 ---------- */
.fx-pipeline { display:flex; align-items:stretch; flex-wrap:wrap; padding:8px; border:1px solid #e3e8ef; border-radius:10px; background:#fff; }
.fx-pipeline__step { flex:1 1 240px; display:flex; flex-direction:column; gap:8px; min-width:0; padding:14px 16px; border-radius:8px; }
.fx-pipeline__step--active { background:#fffaf2; }
.fx-pipeline__head { display:flex; align-items:center; gap:8px; font-size:14px; color:#3d4757; }
.fx-pipeline__step--active .fx-pipeline__head { color:#6b4a14; }
.fx-pipeline__num { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; color:#fff; font-size:12px; font-weight:600; }
.fx-pipeline__num svg { width:12px; height:12px; }
.fx-pipeline__num--warn { background:#d4860f; }
.fx-pipeline__num--primary { background:#245bcb; }
.fx-pipeline__num--done { background:#11664f; }
.fx-pipeline__value { font-size:22px; font-weight:600; font-variant-numeric:tabular-nums; }
.fx-pipeline__value-warn { color:#8a5208; }
.fx-pipeline__desc { font-size:13px; color:#5b6676; }
.fx-pipeline__step .fx-btn { align-self:flex-start; }
.fx-pipeline__arrow { display:flex; align-items:center; padding:0 6px; color:#9aa6b6; }
.fx-pipeline__arrow svg { width:20px; height:20px; }
.fx-total { font-size:18px; font-weight:600; color:#8f5410; font-variant-numeric:tabular-nums; }
.fx-bars { display:flex; flex-direction:column; gap:14px; font-variant-numeric:tabular-nums; }
.fx-bar-row { display:grid; grid-template-columns:minmax(150px,220px) minmax(0,1fr) 110px 44px; align-items:center; gap:12px; }
.fx-bar { height:12px; border-radius:6px; background:#eef2f7; }
.fx-bar__fill { display:block; height:12px; border-radius:6px; background:#245bcb; }
.fx-bar-row__amount, .fx-bar-row__pct { text-align:right; }
.fx-bar-row__pct { color:#5b6676; }
.fx-paybar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fx-paybar__sum { font-variant-numeric:tabular-nums; }
.fx-paybar__sum b { font-weight:700; }
.fx-paybar__total { font-size:18px; }
.fx-detail-links { display:flex; gap:8px 20px; flex-wrap:wrap; align-items:center; padding:4px 2px; font-size:14px; }
.fx-detail-links__label { color:#5b6676; }

/* ---------- 页脚说明 ---------- */
.fx-footnote { display:flex; gap:16px; flex-wrap:wrap; font-size:13px; color:#5b6676; }

/* ---------- 弹窗、抽屉里的按钮行（Element Plus 弹窗本体保持默认） ---------- */
.fx-dialog-actions { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; }
.fx-confirm-check { display:flex; align-items:flex-start; gap:8px; font-size:14px; line-height:1.6; }
.fx-confirm-check input { flex:none; width:18px; height:18px; margin:2px 0 0; accent-color:#245bcb; }

/* =====================================================================
   响应式
   ===================================================================== */
@media (max-width:1100px) {
  .fx-pipeline__arrow { display:none; }
}
@media (max-width:700px) {
  .layout:has(.fx-page)>.main { padding:0; }
  .fx-page { padding:0 0 88px; gap:0; font-size:15px; }
  .fx-top { gap:12px; padding:16px 16px 0; border-bottom:1px solid #e3e8ef; background:#fff; }
  .fx-content { gap:12px; padding:16px; }
  .fx-header { gap:12px; }
  .fx-header__name, .fx-header .fx-month { flex:1 1 100%; }
  .fx-header__name { gap:10px; }
  .fx-title { font-size:19px; }
  .fx-chip--shop { padding:2px 8px; }
  .fx-header .fx-chip--status { padding:3px 10px; }
  .fx-report { display:none; }
  .fx-month { gap:8px; border:0; background:transparent; }
  .fx-month__arrow { border:1px solid #d5dce6; background:#fff; }
  .fx-month__arrow:disabled { border-color:#e3e8ef; background:#f4f6f9; color:#9aa6b6; }
  .fx-month__label { flex:1 1 auto; text-align:center; }
  .fx-tabs { gap:0; border-bottom:0; }
  .fx-tab { flex:1 0 auto; justify-content:center; padding:0 14px; }
  .fx-card, .fx-kpi, .fx-mini, .fx-stepbar, .fx-pipeline { border-radius:12px; }
  .fx-card, .fx-card--step, .fx-card--side { padding:16px; }
  .fx-card--list { padding:16px 16px 4px; }
  .fx-kpis { gap:12px; }
  .fx-kpi { gap:6px; padding:16px; }
  .fx-kpi__value { font-size:28px; letter-spacing:0; }
  .fx-kpi__cur { font-size:17px; }
  .fx-cash__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fx-cash__item--divider { padding-left:0; border-left:0; }
  .fx-task { flex-wrap:nowrap; gap:12px; padding:12px 0; }
  .fx-task__dot { display:none; }
  .fx-task__body { flex:1 1 auto; }
  .fx-task--has-action .fx-task__due { display:none; }
  .fx-task--has-action .fx-task__due-inline { display:block; font-size:13px; }
  .fx-split, .fx-stack { gap:12px; }
  .fx-indent { margin-left:0; }
  .fx-check { display:grid; grid-template-columns:22px minmax(0,1fr); column-gap:12px; row-gap:8px; align-items:start; }
  .fx-check>.fx-ring { margin-top:1px; }
  .fx-check>:not(.fx-ring):not(.fx-check__body) { grid-column:2; justify-self:start; }
  .fx-stepbar { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }
  .fx-pipeline__step { flex-basis:100%; }
  .fx-bar-row { grid-template-columns:minmax(0,1fr) 96px 40px; row-gap:6px; }
  .fx-bar-row>.fx-bar { grid-column:1 / -1; grid-row:2; }
  .fx-stat { flex:1 1 140px; min-width:0; }
  .fx-footnote { padding:0 4px 8px; }
}
