/* Formula X and Be:Move share the payroll DOM. Keep their token adapters separate. */
body[data-app-mode="formula"] .bm-payroll-admin{
  --payroll-bg: var(--bg, #f1f5f9);
  --payroll-surface: var(--card, #fff);
  --payroll-text: var(--text, #1e293b);
  --payroll-sub: color-mix(in srgb, var(--text-sub, #64748b) 88%, var(--text, #1e293b));
  --payroll-border: var(--border, #e2e8f0);
  --payroll-orange: var(--pt, #e87040);
  --payroll-orange-soft: #fff4ee;
  --payroll-amber: var(--warning, #f59e0b);
  --payroll-green: var(--success, #22c55e);
  --payroll-red: var(--danger, #ef4444);
  /* 글자 전용 잉크: 흰 바탕 대비 4.5 이상. 장식용 --payroll-orange/green/red와 분리한다. */
  --payroll-orange-ink: #c2410c;
  --payroll-orange-solid: #c2410c;
  --payroll-green-ink: #15803d;
  --payroll-red-ink: #b91c1c;
  --payroll-amber-ink: #b45309;
  --payroll-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --payroll-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --payroll-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--payroll-text);
  font-family: var(--payroll-body);
}
body[data-app-mode="bemove"] .bm-payroll-admin,
body[data-bemove-brand="1"] .bm-payroll-admin{
  --payroll-bg: var(--bm-chalk, #f6f3ee);
  --payroll-surface: var(--bm-white, #fff);
  --payroll-text: var(--bm-charcoal-900, #1f2022);
  --payroll-sub: color-mix(in srgb, var(--bm-charcoal-500, #6d7177) 88%, var(--bm-charcoal-900, #1f2022));
  --payroll-border: var(--bm-charcoal-100, #dfe1e4);
  --payroll-orange: var(--bm-orange-500, #ec662a);
  --payroll-orange-soft: var(--bm-orange-100, #fff0e9);
  --payroll-amber: var(--bm-amber-500, #d69000);
  --payroll-green: var(--bm-green-600, #26734d);
  --payroll-red: var(--bm-red-600, #b33a3a);
  /* 글자 전용 잉크: 밝은 표면 대비 4.5 이상. --bm-orange-700(#A94013)은 흰 바탕 6.12다. */
  --payroll-orange-ink: var(--bm-orange-700, #a94013);
  --payroll-orange-solid: var(--bm-orange-700, #a94013);
  --payroll-green-ink: #26734d;
  --payroll-red-ink: #b33a3a;
  --payroll-amber-ink: #b45309;
  --payroll-mono: var(--bm-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  --payroll-display: var(--bm-font-display, Oswald, sans-serif);
  --payroll-body: var(--bm-font-body, Barlow, "Noto Sans KR", sans-serif);
  color: var(--payroll-text);
  font-family: var(--payroll-body);
}
/* Modals are appended to body, so they need their own token scope. */
body[data-app-mode="formula"] .bm-payroll-admin-modal{
  --payroll-bg: var(--bg, #f1f5f9);
  --payroll-surface: var(--card, #fff);
  --payroll-text: var(--text, #1e293b);
  --payroll-sub: color-mix(in srgb, var(--text-sub, #64748b) 88%, var(--text, #1e293b));
  --payroll-border: var(--border, #e2e8f0);
  --payroll-orange: var(--pt, #e87040);
  --payroll-orange-soft: #fff4ee;
  --payroll-amber: var(--warning, #f59e0b);
  --payroll-green: var(--success, #22c55e);
  --payroll-red: var(--danger, #ef4444);
  --payroll-orange-ink: #c2410c;
  --payroll-orange-solid: #c2410c;
  --payroll-green-ink: #15803d;
  --payroll-red-ink: #b91c1c;
  --payroll-amber-ink: #b45309;
  --payroll-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --payroll-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --payroll-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body[data-app-mode="bemove"] .bm-payroll-admin-modal,
body[data-bemove-brand="1"] .bm-payroll-admin-modal{
  --payroll-bg: var(--bm-chalk, #f6f3ee);
  --payroll-surface: var(--bm-white, #fff);
  --payroll-text: var(--bm-charcoal-900, #1f2022);
  --payroll-sub: color-mix(in srgb, var(--bm-charcoal-500, #6d7177) 88%, var(--bm-charcoal-900, #1f2022));
  --payroll-border: var(--bm-charcoal-100, #dfe1e4);
  --payroll-orange: var(--bm-orange-500, #ec662a);
  --payroll-orange-soft: var(--bm-orange-100, #fff0e9);
  --payroll-amber: var(--bm-amber-500, #d69000);
  --payroll-green: var(--bm-green-600, #26734d);
  --payroll-red: var(--bm-red-600, #b33a3a);
  --payroll-orange-ink: var(--bm-orange-700, #a94013);
  --payroll-orange-solid: var(--bm-orange-700, #a94013);
  --payroll-green-ink: #26734d;
  --payroll-red-ink: #b33a3a;
  --payroll-amber-ink: #b45309;
  --payroll-mono: var(--bm-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  --payroll-display: var(--bm-font-display, Oswald, sans-serif);
  --payroll-body: var(--bm-font-body, Barlow, "Noto Sans KR", sans-serif);
}
html[data-bemove-theme="dark"] body[data-app-mode="bemove"] .bm-payroll-admin-modal,
html[data-bemove-theme="dark"] body[data-bemove-brand="1"] .bm-payroll-admin-modal{
  /* 다크 런타임 값 기준: --bm-chalk #0f1114, --bm-charcoal-850 #171b20,
     --bm-white #fff(반전 없음), --bm-charcoal-300 #a6b0bc, --bm-charcoal-200 #3b444f. */
  --payroll-bg: var(--bm-chalk, #0f1114);
  --payroll-surface: var(--bm-charcoal-850, #171b20);
  --payroll-text: var(--bm-white, #ffffff);
  --payroll-sub: var(--bm-charcoal-300, #a6b0bc);
  --payroll-border: var(--bm-charcoal-200, #3b444f);
  --payroll-orange-soft: color-mix(in srgb, var(--payroll-orange) 14%, var(--payroll-surface));
  --payroll-orange-ink: var(--bm-orange-200, #facfb6);
  --payroll-orange-solid: var(--bm-orange-700, #a94013);
  --payroll-green: #86efac;
  --payroll-red: #fca5a5;
  --payroll-amber: var(--bm-amber-500, #f2b01e);
  --payroll-green-ink: #86efac;
  --payroll-red-ink: #fca5a5;
  --payroll-amber-ink: var(--bm-amber-500, #f2b01e);
}
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin { width: 100%; max-width: none; box-sizing: border-box; margin: 0; padding: 24px 16px 32px; background: var(--payroll-bg); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-toolbar{ display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 24px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-kicker{ color: var(--payroll-orange-ink, var(--payroll-orange)); font: 700 14px/1 var(--payroll-display); letter-spacing: .14em; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin h2{ margin: 8px 0 6px; font: 600 32px/1.15 var(--payroll-display); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin h3{ margin: 0; font-size: 21px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin h4,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin h5{ margin: 0 0 8px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin p{ margin: 6px 0; color: var(--payroll-sub); line-height: 1.55; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-toolbar-actions,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-actions,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-actions{ display: flex; align-items: flex-end; flex-wrap: wrap; gap: 8px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button{ min-height: 40px; padding: 0 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); font: 600 14px/1 var(--payroll-body); cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button:hover,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button:focus-visible{ border-color: var(--payroll-orange); outline: 2px solid color-mix(in srgb, var(--payroll-orange) 25%, transparent); outline-offset: 1px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button.is-primary{ border-color: var(--payroll-orange-solid, var(--payroll-orange)); background: var(--payroll-orange-solid, var(--payroll-orange)); color: #fff; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-sync-button{ min-width: 190px; border-color: var(--payroll-orange-solid, var(--payroll-orange)) !important; background: var(--payroll-orange-solid, var(--payroll-orange)) !important; color: #fff !important; opacity: 1; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-sync-button:disabled{ border-color: var(--payroll-border) !important; background: var(--payroll-border) !important; color: var(--payroll-sub) !important; cursor: not-allowed; opacity: 1; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button.is-outline{ color: var(--payroll-orange-ink, var(--payroll-orange)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button.is-quiet{ border-color: transparent; background: transparent; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-month,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-filters label,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-fields label{ display: grid; gap: 5px; color: var(--payroll-sub); font-size: 12px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin input{ min-height: 40px; min-width: 130px; padding: 0 10px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); font: 14px/1.2 var(--payroll-mono); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin input:focus{ outline: 2px solid color-mix(in srgb, var(--payroll-orange) 30%, transparent); outline-offset: 1px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-state-line{ display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 14px 0; padding: 12px 14px; border-left: 3px solid var(--payroll-orange); border-top: 1px solid var(--payroll-border); border-right: 1px solid var(--payroll-border); border-bottom: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); color: var(--payroll-sub); font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status{ display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border: 1px solid var(--payroll-border); border-radius: 999px; color: var(--payroll-sub); font-size: 12px; font-weight: 700; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-complete{ border-color: var(--payroll-green); color: var(--payroll-green-ink, var(--payroll-green)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-review,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-review_required,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-incomplete,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-data_incomplete,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status.is-configuration_missing{ border-color: var(--payroll-amber); color: var(--payroll-amber-ink, var(--payroll-amber)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-filters{ display: flex; align-items: flex-end; flex-wrap: wrap; gap: 10px; margin: 14px 0; padding: 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-branch-list{ display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-branch-button{ min-height: 34px; padding: 0 10px; border: 1px solid var(--payroll-border); border-radius: 999px; background: var(--payroll-surface); color: var(--payroll-text); cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-branch-button.is-active,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-branch-button:hover{ border-color: var(--payroll-orange); color: var(--payroll-orange-ink, var(--payroll-orange)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons{ margin: 14px 0; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--payroll-amber) 60%, var(--payroll-border)); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-orange-soft); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons strong{ display: block; margin-bottom: 5px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons ul{ margin: 6px 0; padding-left: 20px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons p{ font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-state-details{ margin: 14px 0; padding: 10px 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-state-details summary{ color: var(--payroll-sub); font-size: 13px; font-weight: 700; cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-state-details .bm-payroll-admin-state-line{ margin: 8px 0 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reason-code{ margin-top: 4px; font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reason-code summary{ color: var(--payroll-sub); cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-reason-code code{ font-family: var(--payroll-mono); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-next{ display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 4px; color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-next .bm-payroll-admin-button{ min-height: 32px; padding: 0 10px; font-size: 12px; color: var(--payroll-orange-ink, var(--payroll-orange)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-blocked{ color: var(--payroll-text); font-size: 13px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary-note{ grid-column: 1 / -1; margin: 0; padding: 10px 14px; border-left: 3px solid var(--payroll-amber); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); color: var(--payroll-text); font-size: 13px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-filters-label{ color: var(--payroll-sub); font-size: 12px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary{ display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary-card,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary > div{ min-height: 104px; padding: 16px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary-card small,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary small{ display: block; margin-bottom: 12px; color: var(--payroll-sub); font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary-card strong,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary strong{ display: block; font: 600 24px/1.2 var(--payroll-mono); overflow-wrap: anywhere; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-results,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-section,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-panel,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-form{ margin-top: 16px; padding: 20px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-section-heading{ display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-muted,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-export-status{ color: var(--payroll-sub); font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table-wrap,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar-wrap{ width: 100%; overflow: auto; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar{ width: 100%; min-width: 980px; border-collapse: separate; border-spacing: 0; font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table th,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table td,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar td{ padding: 12px 10px; border-bottom: 1px solid var(--payroll-border); text-align: right; vertical-align: middle; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table th:first-child,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table td:first-child,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table th:nth-child(2),
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table td:nth-child(2){ text-align: left; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table th,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th{ background: color-mix(in srgb, var(--payroll-border) 45%, var(--payroll-surface)); color: var(--payroll-sub); font-size: 12px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-table tbody tr:hover{ background: var(--payroll-orange-soft); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-row-link,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-link,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-cell-link{ border: 0; padding: 0; background: transparent; color: var(--payroll-text); font: inherit; cursor: pointer; text-align: left; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-row-link:hover,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-link:hover,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-cell-link:hover{ color: var(--payroll-orange-ink, var(--payroll-orange)); text-decoration: underline; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-empty{ margin: 0; padding: 32px 12px; color: var(--payroll-sub); text-align: center; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-actions{ align-items: center; margin: 14px 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal{ position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 24px; background: rgb(20 21 22 / 55%); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-card{ width: min(1480px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 24px; border-radius: var(--bm-radius-sheet, 10px); background: var(--payroll-surface, #fff); color: var(--payroll-text, #1e293b); box-shadow: 0 20px 60px rgb(0 0 0 / 20%); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-head{ display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-head h3{ margin: 8px 0; font-size: 24px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid div{ padding: 12px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid dt{ color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid dd{ margin: 6px 0 0; font: 600 16px var(--payroll-mono); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-list{ margin-top: 16px; padding: 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-list h4{ margin-bottom: 10px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-list ul{ display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-list li{ display: flex; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 1px solid var(--payroll-border); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-list li span{ color: var(--payroll-sub); font-family: var(--payroll-mono); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary{ grid-template-columns: repeat(5, minmax(0, 1fr)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key { display: inline-block; width: 12px; height: 12px; margin: 0 4px 0 10px; border: 1px solid var(--payroll-border); vertical-align: -1px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-included { background: #ffe28a; border-color: #e2b300; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-excluded { background: #edf0f1; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -4px 0 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status { display: inline-flex; align-items: center; justify-content: center; min-height: 22px; padding: 0 7px; border: 1px solid var(--payroll-border); border-radius: 999px; color: var(--payroll-sub); font-size: 11px; font-weight: 700; line-height: 1; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status.is-completed { border-color: var(--payroll-green); color: var(--payroll-green-ink, var(--payroll-green)); background: color-mix(in srgb, var(--payroll-green) 10%, var(--payroll-surface)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status.is-cancelled { border-color: var(--payroll-red); color: var(--payroll-red-ink, var(--payroll-red)); background: color-mix(in srgb, var(--payroll-red) 10%, var(--payroll-surface)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status.is-absent { border-color: var(--payroll-amber); color: var(--payroll-amber-ink, var(--payroll-amber)); background: color-mix(in srgb, var(--payroll-amber) 12%, var(--payroll-surface)); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status.is-scheduled { border-color: var(--payroll-border); color: var(--payroll-sub); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar{ min-width: 1250px; table-layout: fixed; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar td{ min-width: 42px; padding: 8px 5px; text-align: center; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-fixed{ min-width: 180px; text-align: left; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-member{ min-width: 180px !important; text-align: left !important; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell { height: 48px; background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-included { background: #ffe28a; border-bottom-color: #e2b300; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-excluded { background: #edf0f1; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-completed { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--payroll-green) 60%, transparent); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-cancelled { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--payroll-red) 60%, transparent); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-absent { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--payroll-amber) 60%, transparent); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell button { display: flex; width: 100%; min-height: 32px; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; background: transparent; color: var(--payroll-text); cursor: pointer; font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell button .bm-payroll-event-status { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-title { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-list{ max-height: 260px; overflow: auto; border-top: 1px solid var(--payroll-border); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-list > div{ display: grid; grid-template-columns: 100px minmax(120px, 1fr) minmax(120px, 1fr) 100px minmax(160px, 1fr); gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--payroll-border); font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-list small{ color: var(--payroll-sub); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-fields{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 10px 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-fields small{ color: var(--payroll-sub); font-size: 11px; font-weight: 400; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-grid article{ min-width: 0; }
@media (max-width: 1050px) { :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-toolbar{ align-items: stretch; flex-direction: column; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-toolbar-actions{ align-items: stretch; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary{ grid-template-columns: repeat(3, minmax(0, 1fr)); } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-fields,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin { padding: 12px; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-toolbar,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-results,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-section,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-panel,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-form,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-card{ padding: 16px; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-summary,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-summary{ grid-template-columns: repeat(2, minmax(0, 1fr)); } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-fields,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-grid,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-grid{ grid-template-columns: 1fr; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-review-list > div{ grid-template-columns: 1fr 1fr; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal{ padding: 8px; } }
html[data-bemove-theme="dark"] body[data-app-mode="bemove"] .bm-payroll-admin,
html[data-bemove-theme="dark"] body[data-bemove-brand="1"] .bm-payroll-admin { --payroll-bg: var(--bm-chalk, #0f1114); --payroll-surface: var(--bm-charcoal-850, #171b20); --payroll-text: var(--bm-white, #ffffff); --payroll-sub: var(--bm-charcoal-300, #a6b0bc); --payroll-border: var(--bm-charcoal-200, #3b444f); --payroll-orange-soft: color-mix(in srgb, var(--payroll-orange) 14%, var(--payroll-surface)); --payroll-orange-ink: var(--bm-orange-200, #facfb6); --payroll-orange-solid: var(--bm-orange-700, #a94013); --payroll-green: #86efac; --payroll-red: #fca5a5; --payroll-amber: var(--bm-amber-500, #f2b01e); --payroll-green-ink: #86efac; --payroll-red-ink: #fca5a5; --payroll-amber-ink: var(--bm-amber-500, #f2b01e); }
:root[data-formula-theme="dark"] body[data-app-mode="formula"] .bm-payroll-admin,
:root[data-formula-theme="dark"] body[data-bemove-brand="1"] .bm-payroll-admin {
  --payroll-bg: var(--bg, #0f172a);
  --payroll-surface: var(--card, #1e293b);
  --payroll-text: var(--text, #f1f5f9);
  --payroll-sub: var(--text-sub, #cbd5e1);
  --payroll-border: var(--border, #334155);
  --payroll-orange-soft: color-mix(in srgb, var(--payroll-amber) 14%, var(--payroll-surface));
  --payroll-amber: #fbbf24;
  --payroll-green: #86efac;
  --payroll-red: #fca5a5;
  /* 다크 표면 대비 4.5 이상. 버튼 채움은 라이트와 같은 진한 값으로 흰 글자를 받는다. */
  --payroll-orange-ink: #fdba74;
  --payroll-orange-solid: #c2410c;
  --payroll-green-ink: #86efac;
  --payroll-red-ink: #fca5a5;
  --payroll-amber-ink: #fbbf24;
}
:root[data-formula-theme="dark"] body[data-app-mode="formula"] .bm-payroll-admin-modal,
:root[data-formula-theme="dark"] body[data-bemove-brand="1"] .bm-payroll-admin-modal {
  --payroll-bg: var(--bg, #0f172a);
  --payroll-surface: var(--card, #1e293b);
  --payroll-text: var(--text, #f1f5f9);
  --payroll-sub: var(--text-sub, #cbd5e1);
  --payroll-border: var(--border, #334155);
  --payroll-orange-soft: color-mix(in srgb, var(--payroll-amber) 14%, var(--payroll-surface));
  --payroll-amber: #fbbf24;
  --payroll-green: #86efac;
  --payroll-red: #fca5a5;
  --payroll-orange-ink: #fdba74;
  --payroll-orange-solid: #c2410c;
  --payroll-green-ink: #86efac;
  --payroll-red-ink: #fca5a5;
  --payroll-amber-ink: #fbbf24;
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons {
  color: var(--payroll-text);
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-admin-reasons p {
  color: var(--payroll-sub);
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-admin-sync-button:disabled {
  border-color: var(--payroll-border) !important;
  background: var(--payroll-border) !important;
  color: var(--payroll-text) !important;
}
/* Be:Move 다크: 비활성 동기화 버튼(위임 안내 "브랜드 관리자 동기화 필요")은 보조 글자
   #a6b0bc/테두리 #3b444f 4.496:1 로 4.5 경계 아래다. 배경은 그대로 두고 글자만 본문
   토큰으로 밝혀 4.6 여유를 둔다. 활성 채움은 --bm-orange-700 규칙을 유지한다. */
html[data-bemove-theme="dark"] :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-sync-button:disabled {
  border-color: var(--payroll-border) !important;
  background: var(--payroll-border) !important;
  color: var(--payroll-text) !important;
}
/* Formula 다크: 수업 포함·제외 날짜 셀과 범례 키는 밝은 글자와 읽히도록 토큰 틴트로 덮는다. */
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-included {
  background: color-mix(in srgb, var(--payroll-amber) 32%, var(--payroll-surface));
  border-bottom-color: var(--payroll-amber);
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-excluded {
  background: color-mix(in srgb, var(--payroll-border) 40%, var(--payroll-surface));
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-included {
  background: color-mix(in srgb, var(--payroll-amber) 32%, var(--payroll-surface));
  border-color: var(--payroll-amber);
}
:root[data-formula-theme="dark"] :is(body[data-app-mode="formula"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-excluded {
  background: color-mix(in srgb, var(--payroll-border) 40%, var(--payroll-surface));
}
/* Be:Move 다크: 같은 셀·키를 Be:Move 스코프 토큰 틴트로 덮는다. */
html[data-bemove-theme="dark"] :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-included {
  background: color-mix(in srgb, var(--payroll-amber) 32%, var(--payroll-surface));
  border-bottom-color: var(--payroll-amber);
}
html[data-bemove-theme="dark"] :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-excluded {
  background: color-mix(in srgb, var(--payroll-border) 40%, var(--payroll-surface));
}
html[data-bemove-theme="dark"] :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-included {
  background: color-mix(in srgb, var(--payroll-amber) 32%, var(--payroll-surface));
  border-color: var(--payroll-amber);
}
html[data-bemove-theme="dark"] :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-key.is-excluded {
  background: color-mix(in srgb, var(--payroll-border) 40%, var(--payroll-surface));
}
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-editor{ display: grid; gap: 16px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields label,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-row label{ display: grid; gap: 5px; color: var(--payroll-sub); font-size: 12px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields input,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-row input{ width: 100%; min-height: 36px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); font: 500 14px var(--payroll-mono); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields small{ color: var(--payroll-sub); font-size: 11px; font-weight: 400; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-check{ display: flex !important; grid-template-columns: auto 1fr; align-items: center; align-content: center; gap: 8px !important; min-height: 36px; color: var(--payroll-text) !important; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-check input{ width: 18px; min-height: 18px; accent-color: var(--payroll-orange); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-array{ margin-top: 0; padding: 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-array .bm-payroll-admin-section-heading{ align-items: center; margin-bottom: 10px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-array h4{ margin: 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-row{ display: grid; grid-template-columns: minmax(140px, 1.2fr) minmax(120px, 1fr) minmax(100px, .8fr) minmax(100px, auto) auto; align-items: end; gap: 8px; padding: 9px 0; border-top: 1px solid var(--payroll-border); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-type{ min-height: 36px; padding: 0 10px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-warning{ margin: 0; padding: 12px 14px; border-left: 3px solid var(--payroll-orange); background: var(--payroll-orange-soft); color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-actions{ display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-actions [data-policy-status]{ flex: 1; color: var(--payroll-sub); font-size: 12px; }
@media (max-width: 1050px) { :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields{ grid-template-columns: repeat(2, minmax(0, 1fr)); } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-row{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-fields{ grid-template-columns: 1fr; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-row{ grid-template-columns: 1fr; } :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-actions{ align-items: stretch; flex-direction: column; } }
/* 급여 규칙 범위 선택(브랜드 기본 + 지점 전용). 색·간격·반지름은 토큰만 쓴다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; padding: 12px 14px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope legend{ padding: 0 6px; color: var(--payroll-sub); font-size: 12px; font-weight: 700; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope label{ display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 12px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); color: var(--payroll-text); font-size: 14px; font-weight: 600; cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope label:has(input:checked){ border-color: var(--payroll-orange-solid); color: var(--payroll-orange-ink); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope label:has(input:disabled){ opacity: 0.55; cursor: not-allowed; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope input[type="radio"]{ width: 18px; height: 18px; margin: 0; accent-color: var(--payroll-orange-solid); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope small{ color: var(--payroll-sub); font-size: 11px; font-weight: 400; }
@media (max-width: 680px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope label{ min-height: 44px; width: 100%; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-actions .bm-payroll-admin-button{ min-height: 44px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-policy-scope input[type="radio"]{ width: 20px; height: 20px; }
}
/* 모바일(≤1050px): 급여 규칙 모달 안 버튼(닫기·레벨 추가·삭제·보너스 추가·저장·취소,
   quiet 포함)은 44px 터치 높이를 둔다. 데스크톱 기본값(40px)은 그대로 둔다. */
@media (max-width: 1050px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-card .bm-payroll-admin-button{ min-height: 44px; }
}
/* 모바일(≤1050px): 지점 범위 칩·전체 버튼은 44px 터치 높이를 둔다.
   데스크톱 기본값(칩 34px·버튼 40px)은 그대로 둔다. */
@media (max-width: 1050px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-branch-button{ min-height: 44px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-filters .bm-payroll-admin-button{ min-height: 44px; }
}

/* Trainer detail modal (PAYROLL DETAIL, 회원별 PT 수업·결제): full-viewport sheet.
   Only the detail card is maximized. Other modals (.bm-payroll-admin-modal-card
   without .bm-payroll-admin-detail-card, e.g. payroll policy) keep the base
   rules above. This block loads before web/brands/bemove/theme.css, so it uses
   a more specific selector (two classes) than the legacy theme adapter. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal:has(> .bm-payroll-admin-modal-card.bm-payroll-admin-detail-card){
  padding: 0;
  place-items: stretch;
}
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-card.bm-payroll-admin-detail-card{
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  overflow-x: clip;
  box-sizing: border-box;
  margin: 0;
  padding: 24px;
  padding-top: calc(24px + env(safe-area-inset-top));
  padding-right: calc(24px + env(safe-area-inset-right));
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
  padding-left: calc(24px + env(safe-area-inset-left));
  border-radius: 0;
}
/* Detail header (title, excel download, close) stays visible while scrolling. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-card .bm-payroll-admin-modal-head{
  position: sticky;
  top: -24px;
  top: calc(-24px - env(safe-area-inset-top));
  z-index: 5;
  margin: -24px -24px 16px;
  padding: 16px 24px;
  padding-right: calc(24px + env(safe-area-inset-right));
  padding-left: calc(24px + env(safe-area-inset-left));
  border-bottom: 1px solid var(--payroll-border);
  background: var(--payroll-surface);
}
/* Member column stays fixed while the monthly table scrolls horizontally.
   Background uses the surface token so light/dark contrast is preserved. */
body[data-app-mode="formula"] .bm-payroll-admin-calendar .bm-payroll-calendar-no{
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 48px;
  width: 48px;
  background: var(--payroll-surface);
  text-align: center;
}
body[data-app-mode="formula"] .bm-payroll-admin-calendar .bm-payroll-calendar-fixed,
body[data-app-mode="formula"] .bm-payroll-calendar-member{
  position: sticky;
  left: 48px;
  z-index: 2;
  min-width: 180px;
  width: 180px;
  background: var(--payroll-surface);
  text-align: left;
}
@media (max-width: 1050px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-modal-card.bm-payroll-admin-detail-card{
    padding: 16px;
    padding-top: calc(16px + env(safe-area-inset-top));
    padding-right: calc(16px + env(safe-area-inset-right));
    padding-bottom: calc(16px + env(safe-area-inset-bottom));
    padding-left: calc(16px + env(safe-area-inset-left));
  }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-card .bm-payroll-admin-modal-head{
    top: -16px;
    top: calc(-16px - env(safe-area-inset-top));
    margin: -16px -16px 12px;
    padding: 12px 16px;
    padding-right: calc(16px + env(safe-area-inset-right));
    padding-left: calc(16px + env(safe-area-inset-left));
  }
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-source-notice{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: baseline;
  margin: 12px 0;
  padding: 12px 14px;
  border-left: 3px solid var(--bm-amber-500, #d69000);
  border-radius: var(--bm-radius-card, 6px);
  background: color-mix(in srgb, var(--payroll-amber) 16%, var(--payroll-surface));
  color: var(--payroll-text);
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-source-notice span{
  color: var(--payroll-sub);
  font-size: 13px;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar-wrap{
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  border: 1px solid var(--payroll-border);
  border-radius: var(--bm-radius-card, 6px);
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar{
  min-width: 2250px;
  width: max-content;
  table-layout: auto;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th,
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar td{
  box-sizing: border-box;
  min-width: 48px;
  height: 48px;
  padding: 8px 6px;
  white-space: nowrap;
  vertical-align: middle;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th:first-child,
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar td:first-child{
  min-width: 48px;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-no{
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 48px !important;
  width: 48px;
  background: var(--payroll-surface);
  text-align: center !important;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-fixed,
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-member{
  position: sticky;
  left: 48px;
  z-index: 2;
  min-width: 190px !important;
  width: 190px;
  background: var(--payroll-surface);
  text-align: left !important;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead th{
  position: sticky;
  top: 0;
  z-index: 3;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead th.bm-payroll-calendar-fixed{
  z-index: 5;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-calendar-member .bm-payroll-admin-member-link{
  display: inline-block;
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
/* .bm-payroll-admin-unverified 제거: 회원 행 보조 줄은 단가 상태 전용
   (.bm-payroll-price-sub)이고, 계정 미연결은 상세 머리 칩(.bm-payroll-price-unlinked)만 둔다. */
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-facts{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-facts span{
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--payroll-border);
  border-radius: var(--bm-radius-card, 6px);
  color: var(--payroll-sub);
  font-size: 12px;
}
:is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-facts strong{
  color: var(--payroll-text);
  font: 600 15px/1.2 var(--payroll-mono);
}
@media (max-width: 1050px){
  :is(body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-member-facts{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 단가 확인 표식: 단가가 없는 수업이 있는 날짜 칸의 오른쪽 위 모서리 삼각형.
   새 칸(데스크톱 24px·폰 44px 터치)에서도 보이게 칸 기준 절대 배치이며,
   칩과 겹쳐도 positioned 요소라 위(칩은 static)에 그린다. 색은 --payroll-amber-ink
   (표면·포함·제외 셀 배경 위 3:1 이상)를 유지한다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-price-missing{position:relative}
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell.is-price-missing::after{content:"";position:absolute;top:0;right:0;z-index:1;border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--payroll-amber-ink, #b45309) transparent transparent;pointer-events:none}
/* 단가 범례: 범례 한 칸(.bm-payroll-legend-item) 안에 들어가는 빈 칸 견본.
   칩(18×20)과 같은 크기의 작은 칸 + 같은 모서리 표식이다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-legend{position:relative;display:inline-block;width:18px;height:20px;border:1px solid var(--payroll-border);border-radius:var(--bm-radius-control, 4px);background:var(--payroll-surface);vertical-align:middle}
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-legend::after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--payroll-amber-ink, #b45309) transparent transparent;pointer-events:none}

/* 회원별 월간 수업표 압축형(20260927payroll-cal5): 31일 달이 1280px 이상에서
   가로 스크롤 없이 한 화면에 들어간다. 날짜 열은 최소 24px을 보장하고 표가
   그보다 좁아지면 표 영역 안에서 가로 스크롤한다(랩 overflow-x: auto +
   표 min-width). 날짜 칸은 한 글자 상태 칩(고정 18px)만 두며, 같은 상태가
   2건 이상이면 건수를 칩 아래 작은 숫자로 둔다(칸 폭을 넘지 않는다).
   상태가 섞이면 세로로 쌓고 3종 이상은 첫 칩 + '+N'만 보인다.
   핵심 금액(결제·단가)은 말줄임 없이 다 보인다. 숫자 서체 실측
   (Menlo 0.6021em=6.62px, 한글 0.865em=9.52px, 11px 기준, 보수적으로 한글 11px):
   '63,333원'=6×6.62+11=50.7+패딩 10=60.7→단가 64px,
   '1,200,000원'=9×6.62+11=70.6+패딩 10=80.6→결제 84px.
   결제 84·단가 64는 유지하고, 총·이월 36→30·진행·급여·진행액·이월 32→28로
   28px을 줄인다(헤더 짧은 글자+title 유지, 셀 값은 '—' 또는 숫자라 들어감).
   좁은 요약 열은 값 없음·잠금을 '—'로만 보이고(title·aria-label에 뜻),
   잘리는 값은 title이 있는 좁은 값 span으로 둔다. 헤더·칸 모두 한 줄 말줄임이다.
   열 폭 합(고정 열): 24+88+84+30+30+64+28+28+28+28=432px.
   31일 표 최소 폭: 432+31×24=1176px.
   1280px: 표 영역 실측 1190px ≥ 1176px이라 여유 14px로 스크롤 없이 든다.
   1440px: 표 영역 약 1375px → 날짜 열 (1375-432)/31=30.4px.
   NO·회원 열은 가로 스크롤이 생기는 모든 폭에서 sticky로 고정된다.
   색은 --payroll-* 토큰과 기존 상태 잉크만 쓴다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar{ width: 100%; min-width: 1176px; table-layout: fixed; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar th,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar td{ box-sizing: border-box; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-card .bm-payroll-admin-calendar-wrap{ overflow-x: auto; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-no{ width: 24px; min-width: 24px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-member{ width: 88px; min-width: 88px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-pay{ width: 84px; min-width: 84px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-total,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-carried{ width: 30px; min-width: 30px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-prog,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-payroll,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-progamt,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-remain{ width: 28px; min-width: 28px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-unit{ width: 64px; min-width: 64px; }
/* 날짜 열은 칩(18px)이 온전히 들어가는 최소 24px을 보장한다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-day{ width: 24px; min-width: 24px; }
/* 고정 열: NO 24px, 회원 88px(왼쪽 정렬 + 한 줄 말줄임 + 보조 한 줄).
   가로 스크롤이 생기면 두 열 다 sticky로 남는다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-no{ position: sticky; left: 0; z-index: 2; min-width: 24px !important; width: 24px !important; padding: 4px 2px; background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-fixed,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-member{ position: sticky; left: 24px; z-index: 2; min-width: 88px !important; width: 88px !important; max-width: 88px; padding: 4px 6px; overflow: hidden; background: var(--payroll-surface); text-align: left !important; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-calendar-member .bm-payroll-admin-member-link{ display: block; width: 100%; max-width: 100%; overflow: hidden; padding: 0; border: 0; background: transparent; color: var(--payroll-text); cursor: pointer; font-size: 12px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
/* .bm-payroll-admin-unverified 제거(위 주석 참조). */
/* 숫자 열: 좁게 + 숫자 서체 토큰 + 오른쪽 정렬. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-pay,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-total,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-carried,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-unit,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-prog,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-payroll,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-progamt,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-remain{ padding: 4px 5px; overflow: hidden; font-family: var(--payroll-mono); font-size: 11px; line-height: 1.4; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-narrow-dash{ color: var(--payroll-sub); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-narrow-value{ display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; }
/* 요약 열 헤더는 한 줄 짧은 글자 + 말줄임. 원래 이름은 title에 있다. 날짜 헤더는 숫자만. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-pay,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-total,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-carried,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-unit,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-member,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-prog,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-payroll,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-progamt,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-remain{ overflow: hidden; font-size: 11px; line-height: 1.35; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar thead .bm-payroll-col-day{ padding: 4px 1px; font-family: var(--payroll-mono); font-size: 11px; }
/* 토·일 열은 옅은 배경으로 구분한다(토큰 틴트라 라이트/다크 자동 대응). */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-day.is-sat,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-col-day.is-sun{ background: color-mix(in srgb, var(--payroll-border) 38%, var(--payroll-surface)); }
/* 날짜 칸: 상태가 섞이면 칩을 세로로 쌓는다. 칩은 항상 한 글자 고정 18px이라
   칸(최소 24px)을 넘지 않고, 건수는 칩 아래 작은 숫자로 둔다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-day-cell{ height: auto; min-height: 0; min-width: 24px; padding: 2px 1px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell button{ display: flex; width: 100%; min-height: 20px; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: 0; background: transparent; color: var(--payroll-text); cursor: pointer; font-size: 11px; overflow: hidden; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell .bm-payroll-day-chip.bm-payroll-event-status{ width: 18px; min-width: 18px; max-width: 18px; height: 18px; padding: 0; border-radius: var(--bm-radius-control, 4px); font-size: 11px; flex: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell .bm-payroll-day-count{ display: block; color: var(--payroll-text); font-family: var(--payroll-mono); font-size: 9px; line-height: 1.3; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell .bm-payroll-day-more{ color: var(--payroll-text); font-family: var(--payroll-mono); font-size: 10px; line-height: 1.2; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell .bm-payroll-day-more.is-nontype{ padding: 0 3px; border: 1px dashed currentColor; border-radius: var(--bm-radius-control, 4px); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-event-status.is-nontype{ border-style: dashed; }
/* 범례도 같은 한 글자 칩 + 뜻 글자. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-status-legend{ gap: 4px 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-legend-item{ display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-legend-item .bm-payroll-event-status{ min-width: 18px; height: 20px; padding: 0 3px; border-radius: var(--bm-radius-control, 4px); font-size: 11px; }
/* 모바일(1050px 이하): 날짜 칸 버튼은 누를 수 있는 요소라 칸·버튼 패딩으로
   최소 44×44px 터치 영역을 보장한다(칩 18px은 그대로). 표가 넓어지는 만큼
   표 영역 안에서 가로 스크롤한다. 31일 표: 432+31×44=1796px.
   수업이 없는 빈 칸은 표시용 td라 버튼·role·tabindex가 없다. */
@media (max-width: 1050px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-card .bm-payroll-admin-calendar-wrap{ overflow-x: auto; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-detail-card .bm-payroll-admin-calendar{ width: max-content; min-width: 1796px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar col.bm-payroll-col-day{ width: 44px; min-width: 44px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-calendar .bm-payroll-day-cell{ height: 44px; min-width: 44px; padding: 0; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-day-cell button{ min-height: 44px; padding: 4px 0; }
}
/* 세션단가 확인 및 재산정(20260927price-ovr1): 색·간격·반지름은 --payroll-*·--bm-*
   토큰만 쓴다. 주 버튼(흰 글자 채움)은 --payroll-orange-solid(밝은 표면의
   --bm-orange-700, 흰 글자 대비 6.12) 하나다. 근거 펼침은 <details> 전체 문장이고
   툴팁(title) 확인 흐름은 두지 않는다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-sub{ display: block; max-width: 100%; margin-top: 1px; overflow: hidden; font-size: 10px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-sub.is-missing{ color: var(--payroll-amber-ink); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-sub.is-manual{ color: var(--payroll-sub); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-unit-button{ display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; text-align: right; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-unit-button:focus-visible{ outline: 2px solid var(--payroll-orange-solid); outline-offset: 1px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-unlinked{ display: inline-block; margin-left: 6px; padding: 1px 8px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); color: var(--payroll-sub); font-size: 11px; line-height: 1.6; vertical-align: middle; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section{ margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--payroll-border); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section h5{ margin: 0 0 4px; font-size: 15px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-desc{ margin: 0 0 8px; color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-quick{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section .bm-payroll-admin-table-wrap{ margin: 0 0 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section select[data-price-group]{ max-width: 150px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-row.is-focus,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) tr[data-price-row].is-focus{ outline: 2px solid var(--payroll-orange-solid); outline-offset: -2px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-basis{ display: inline-block; padding: 1px 8px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); color: var(--payroll-sub); font-size: 11px; line-height: 1.6; white-space: nowrap; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-basis.is-unresolved{ border-style: dashed; border-color: var(--payroll-amber-ink); color: var(--payroll-amber-ink); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-note{ margin: 4px 0 0; font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-note summary{ color: var(--payroll-orange-ink); cursor: pointer; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-note p{ margin: 4px 0 0; color: var(--payroll-sub); }
/* 데스크톱에서는 라디오 세그먼트·그룹 탭·하단 바를 두지 않는다. 같은 DOM 한 벌이라 숨김만 다르다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-seg{ display: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-tabs{ display: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-bar{ display: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-groups{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group{ padding: 12px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group h6{ margin: 0 0 8px; font-size: 14px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group h6 [data-group-count]{ color: var(--payroll-sub); font-weight: 400; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group label{ display: grid; gap: 4px; margin: 0 0 8px; color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group input,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group select,
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-clear input{ min-height: 40px; padding: 8px 10px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); font-size: 14px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group input[aria-invalid="true"],
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-clear input[aria-invalid="true"]{ border-color: var(--payroll-red-ink); }
/* 입력칸 단위는 입력칸 옆 같은 줄에 붙인다. grid 라벨 안에서 텍스트가 아래 줄로 떨어지지 않게 flex 행으로 묶는다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-field{ display: flex; align-items: center; gap: 6px; min-width: 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-field input{ flex: 1 1 auto; min-width: 0; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-field > span{ flex: none; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-computed{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-computed output{ color: var(--payroll-text); font-family: var(--payroll-mono); font-weight: 600; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-hint{ display: block; margin: -4px 0 8px; color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-clear{ margin: 0 0 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-clear label{ display: grid; gap: 4px; color: var(--payroll-sub); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-error{ margin: 4px 0 0; color: var(--payroll-red-ink); font-size: 12px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-foot{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
/* 화면의 주요 액션은 오렌지 채움 하나다. 흰 글자라 진한 오렌지를 쓴다. */
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button.is-primary{ border-color: var(--payroll-orange-solid); background: var(--payroll-orange-solid); color: #fff; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-admin-button.is-primary:disabled{ opacity: 0.55; cursor: not-allowed; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-status{ margin: 8px 0 0; min-height: 20px; font-size: 13px; }
:is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-status[data-kind="error"]{ color: var(--payroll-red-ink); }
/* 모바일(680px 이하): 단가 표는 카드 목록이다. thead는 숨기고(스크린리더용 유지)
   행마다 날짜·시작·상태·수업·단가·근거·배정을 세로로 쌓는다.
   라디오 세그먼트·그룹 탭·하단 저장 바가 켜지고, 입력칸·버튼은 44px이다. */
@media (max-width: 680px){
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section .bm-payroll-admin-table-wrap{ overflow-x: visible; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section table,
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section tbody{ display: block; width: 100%; min-width: 0; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section thead{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section tr[data-price-row]{ display: grid; gap: 6px; margin: 0 0 10px; padding: 12px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-card, 6px); background: var(--payroll-surface); }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section tr[data-price-row] td{ display: flex; align-items: baseline; gap: 8px; padding: 0; border: 0; font-size: 13px; text-align: left; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section tr[data-price-row] td::before{ content: attr(data-label); min-width: 64px; color: var(--payroll-sub); font-size: 12px; flex: none; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-section select[data-price-group]{ display: none; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-seg{ display: flex; flex: 1; flex-wrap: wrap; gap: 6px; border: 0; margin: 0; padding: 0; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-seg legend{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-seg label{ display: inline-flex; min-height: 44px; align-items: center; gap: 6px; padding: 4px 12px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); font-size: 13px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-seg input{ width: 18px; height: 18px; margin: 0; accent-color: var(--payroll-orange-solid); }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-groups{ grid-template-columns: minmax(0, 1fr); }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-tabs{ display: flex; gap: 8px; margin: 0 0 8px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-tabs [role="tab"]{ min-height: 44px; flex: 1; padding: 8px; border: 1px solid var(--payroll-border); border-radius: var(--bm-radius-control, 4px); background: var(--payroll-surface); color: var(--payroll-text); font-size: 13px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-tabs [role="tab"][aria-selected="true"]{ border-color: var(--payroll-orange-solid); color: var(--payroll-orange-ink); }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) [data-price-group-card][data-inactive]{ display: none; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group input,
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-group select,
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-clear input,
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-foot .bm-payroll-admin-button{ min-height: 44px; font-size: 14px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-bar:not([hidden]){ display: flex; position: sticky; bottom: 0; z-index: 5; align-items: center; gap: 8px; margin: 12px -4px -4px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--payroll-border); background: var(--payroll-surface); }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-bar [data-price-bar-summary]{ flex: 1; font-size: 12px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-bar .bm-payroll-admin-button{ min-height: 44px; }
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) .bm-payroll-price-quick .bm-payroll-admin-button,
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) [data-price-recalc],
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) [data-member-back],
  :is(body[data-app-mode="formula"], body[data-app-mode="bemove"], body[data-bemove-brand="1"]) [data-apply]{ min-height: 44px; }
}
