/* Enabled interactive controls share a hand cursor, including icon-only
   dialog controls mounted outside the workspace shell. Text fields retain
   their native editing cursor; disabled controls retain feature styling. */
body:has(#appShell.ui-workspace) :is(#appShell, dialog, .modal) :is(button, a[href], summary, select, [role="button"], [role="tab"], input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], input[type="file"]):not(:disabled):not([aria-disabled="true"]) {
  cursor: pointer !important;
}
body:has(#appShell.ui-workspace) :is(#appShell, dialog, .modal) :is(button, a[href], summary, [role="button"], [role="tab"]) :is(svg, path, span) {
  cursor: inherit;
}
/* Shared workspace primitives. Presentation only: no provider logos, auth
   surfaces, field visibility, table order, selection logic or workflow changes.
   Load after feature styles. Keep feature-specific widths and semantic colors. */
body:has(#appShell.ui-workspace) {
  --workspace-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --workspace-control-radius:7px;
  --workspace-control-height:38px;
  --workspace-control-font:12px;
  --workspace-dialog-title:24px;
  --workspace-primary-ink:#fff;
  --workspace-primary-fill:#1671ec;
}
body:has(#appShell.ui-workspace[data-ui-theme="dark"]) {
  --workspace-primary-ink:#182231;
  --workspace-primary-fill:#70aaff;
}
#appShell.ui-workspace {
  --ui-font-sans:var(--workspace-font-sans);
  --ui-font-display:var(--workspace-font-sans);
}
/* Workspace header backgrounds have one owner. Light/dark values are defined
   by the shell's --table-header-bg theme token, never by individual features. */
#appShell.ui-workspace table > thead > tr > :is(th,td) {
  background:var(--table-header-bg);
}
/* Expanded aliases use the same Import form/list contract. Recon-specific
   scanning and tolerance controls remain available outside the mapping row. */
#appShell.ui-workspace :is(#mrCard,#paneImportHub) .workspace-alias-manager {
  --ui-ink:#182232;--ui-ink-secondary:#667488;--ui-line:#e4e9ef;
  --ui-surface:#fff;--ui-surface-solid:#fff;--ui-surface-muted:#f8fafc;
  --ui-blue:#1671ec;--ui-blue-soft:#edf4ff;--ui-green:#147d60;--ui-green-soft:#edf8f3;--ui-red:#c13939;--ui-red-soft:#fff0f0;
}
#appShell.ui-workspace[data-ui-theme="dark"] :is(#mrCard,#paneImportHub) .workspace-alias-manager {
  --ui-ink:#e8edf6;--ui-ink-secondary:#98a7bd;--ui-line:#2c3a4e;
  --ui-surface:#182231;--ui-surface-solid:#182231;--ui-surface-muted:#1d293a;
  --ui-blue:#70aaff;--ui-blue-soft:#233b5a;--ui-green:#75c9a8;--ui-green-soft:#19362f;--ui-red:#ffabb1;--ui-red-soft:#3c252b;
}
#appShell.ui-workspace #mrCard {display:grid;gap:14px;min-width:0}
#appShell.ui-workspace #mrCard .merchant-alias-form {grid-template-columns:repeat(3,minmax(0,1fr))}
#appShell.ui-workspace #mrCard #mrAdd {grid-column:1;width:100%}
#appShell.ui-workspace #mrCard .merchant-alias-tools {display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;min-width:0}
#appShell.ui-workspace #mrCard .mr-stats {font-size:11px;gap:14px;flex-wrap:wrap}
#appShell.ui-workspace #mrCard .merchant-alias-help {margin:0;font-size:11px;line-height:1.6}
#appShell.ui-workspace #mrCard :is(#mrAliasStatus,#mrLegacyAliases) {font-size:11px;line-height:1.6}
#appShell.ui-workspace #mrCard .merchant-alias-list-tools {padding-top:12px;border-top:1px solid var(--ui-line)}
#appShell.ui-workspace #mrCard #mrAliasSearch {width:220px;max-width:100%;min-height:38px;font:500 12px/1.5 var(--ui-font-sans);border:1px solid var(--ui-line);border-radius:7px;padding:9px 12px;background:var(--ui-surface-solid);color:var(--ui-ink)}
#appShell.ui-workspace #mrCard .merchant-tolerance-manager .vendor-tolerance-panel {margin:0;padding:0;border:0;background:none;box-shadow:none}
#appShell.ui-workspace :is(#mrCard,#paneImportHub) .workspace-alias-manager .import-alias-form :is(input,select) {box-sizing:border-box;min-width:0;max-width:100%;min-height:40px;border:1px solid var(--ui-line);border-radius:7px;padding:10px 12px;background:var(--ui-surface-solid);color:var(--ui-ink);font:500 12px/1.5 var(--ui-font-sans)}
#appShell.ui-workspace :is(#mrCard,#paneImportHub) .workspace-alias-manager :is(.btn,.btn-outline) {min-height:var(--workspace-control-height);padding:9px 13px;border-radius:7px;font:600 12px/1.5 var(--ui-font-sans)}
#appShell.ui-workspace :is(#mrCard,#paneImportHub) .workspace-alias-manager .import-alias-item .btn-outline.danger {color:var(--ui-red);border-color:color-mix(in srgb,var(--ui-red) 28%,var(--ui-line));background:var(--ui-red-soft)}
@media(max-width:760px){
  #appShell.ui-workspace #mrCard .merchant-alias-form {grid-template-columns:1fr}
  #appShell.ui-workspace #mrCard #mrAliasSearch {width:100%}
}
body.auth-ready:has(#appShell.ui-workspace) :is(#connectionsEditorModal,#marketplaceSyncRunModal) .btn:not(.btn-outline):not(.secondary):not(.danger) {
  background:var(--workspace-primary-fill);border-color:var(--workspace-primary-fill);color:var(--workspace-primary-ink);
}
body.auth-ready:has(#appShell.ui-workspace) :is(#connectionsEditorModal,#connectionsNotificationModal,#marketplaceSyncRunModal) :is(.btn,.btn-outline) {
  min-height:var(--workspace-control-height);border-radius:var(--workspace-control-radius);
  font:600 var(--workspace-control-font)/1.5 var(--workspace-font-sans);
}

/* Standard action buttons. Text links, icons, tabs, workflow cards, destructive
   actions and provider-specific controls retain their own layout and semantics. */
#appShell.ui-workspace.workspace-refined :is(.pane-transition,.workspace-workflow-picker) :is(.btn,.btn-outline,.contract-primary,.season-primary,.cancel-primary,.cards-primary,.tags-primary,.missing-primary,.term-primary,.saved-primary,.search-primary,.sec-primary) {
  min-height:var(--workspace-control-height);
  border-radius:var(--workspace-control-radius);
  font-family:var(--workspace-font-sans);
  font-size:var(--workspace-control-font);
  font-weight:600;
  line-height:1.5;
}
#appShell.ui-workspace.workspace-refined :is(.pane-transition,.workspace-workflow-picker) :is(.btn:not(.btn-outline):not(.secondary):not(.danger),.contract-primary,.season-primary,.cancel-primary,.cards-primary,.tags-primary,.missing-primary,.term-primary,.saved-primary,.search-primary,.sec-primary) {
  background:var(--workspace-primary-fill);
  border-color:var(--workspace-primary-fill);
  color:var(--workspace-primary-ink);
}

/* Shared regular/compact register density. Preserve empty-state spacing,
   alignment, column widths, sticky headers and feature-specific row states. */
#appShell.ui-workspace.workspace-refined :is(.po-alerts-table,.contracts-table,.contract-register,.season-table,.cancel-table,.tags-table,.term-table,.missing-table,.saved-table,.cards-tablewrap table) {
  --workspace-table-row-padding:16px;
  --workspace-table-head-padding:11px;
  --workspace-table-cell-padding:15px;
  --workspace-table-font:11px;
}
#appShell.ui-workspace.workspace-refined :is(.preview-table,.saved-preview-table table,.cancel-import-preview table,.term-import-preview table),
body.compact #appShell.ui-workspace.workspace-refined table,
#appShell.ui-workspace.workspace-refined table[data-density="compact"] {
  --workspace-table-row-padding:8px;
  --workspace-table-head-padding:8px;
  --workspace-table-cell-padding:12px;
  --workspace-table-font:11px;
}
#appShell.ui-workspace.workspace-refined :is(#panePoBeta,#paneContracts,#paneSeasonSeats,#paneCanceledEvents,#paneCreditCards,#paneMpTags,#paneTerms,#paneMissing,#paneMpDownloads,#purchaseResultsStage,#marketplaceResultsStage,#paneTwo,#paneMarketplace,#paneImport,#paneInvoice,#panePointOfSale,#paneImportHub,#paneMarketplaceSync,#panePlaid) :is(.po-alerts-table,.contracts-table,.contract-register,.season-table,.cancel-table,.tags-table,.term-table,.missing-table,.saved-table,.cards-tablewrap table) > :is(thead,tbody) > tr > :is(th,td):not([colspan]) {
  padding:var(--workspace-table-row-padding,16px) var(--workspace-table-cell-padding,15px);
  font-size:var(--workspace-table-font,11px);
  line-height:1.6;
  font-variant-numeric:tabular-nums;
  vertical-align:middle;
}
#appShell.ui-workspace.workspace-refined :is(#panePoBeta,#paneContracts,#paneSeasonSeats,#paneCanceledEvents,#paneCreditCards,#paneMpTags,#paneTerms,#paneMissing,#paneMpDownloads,#purchaseResultsStage,#marketplaceResultsStage,#paneTwo,#paneMarketplace,#paneImport,#paneInvoice,#panePointOfSale,#paneImportHub,#paneMarketplaceSync,#panePlaid) :is(.po-alerts-table,.contracts-table,.contract-register,.season-table,.cancel-table,.tags-table,.term-table,.missing-table,.saved-table,.cards-tablewrap table) > thead > tr > th:not([colspan]) {
  padding-block:var(--workspace-table-head-padding,11px);
  font-size:9px;
  font-weight:650;
  letter-spacing:.04em;
  text-transform:uppercase;
}

/* Utility register toolbars and pagination share sizing, not behavior. */
#appShell.ui-workspace.workspace-refined :is(.contract-toolbar,.season-toolbar,.cancel-toolbar,.tags-toolbar,.term-toolbar,.missing-toolbar,.saved-toolbar) :is(input:not([type="checkbox"]),select),
#appShell.ui-workspace.workspace-refined :is(.contract-panel-foot,.season-panel-foot,.cancel-panel-foot,.tags-panel-foot,.term-panel-foot,.missing-panel-foot,.saved-panel-foot) button {
  min-height:36px;
  border-radius:var(--workspace-control-radius);
  font-family:var(--workspace-font-sans);
  font-size:11px;
}
#appShell.ui-workspace.workspace-refined :is(.contract-badge,.season-badge,.cancel-badge,.tags-badge,.term-badge) {
  display:inline-flex;align-items:center;min-height:24px;padding:5px 8px;
  border-radius:6px;font-size:11px;font-weight:550;line-height:1.2;
}

/* Opt-in legacy mapping/payment dialogs. The existing form and button IDs
   stay in place; confirmations remain explicit before any provider update. */
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog {
  --ui-font-sans:var(--workspace-font-sans);
  --ui-surface:#fff;--ui-surface-solid:#fff;--ui-surface-muted:#f8fafc;
  --ui-ink:#182232;--ui-ink-secondary:#667488;--ui-line:#e4e9ef;
  --ui-blue:#1671ec;--ui-red:#c13939;
  --workspace-dialog-padding:28px;
  padding:18px;background:#11213740;backdrop-filter:blur(3px);
  font-family:var(--workspace-font-sans);color:var(--ui-ink);
}
body.auth-ready:has(#appShell.ui-workspace[data-ui-theme="dark"]) .modal.workspace-dialog {
  --ui-surface:#182231;--ui-surface-solid:#182231;--ui-surface-muted:#1d293a;
  --ui-ink:#e8edf6;--ui-ink-secondary:#98a7bd;--ui-line:#2c3a4e;
  --ui-blue:#70aaff;--ui-red:#ffabb1;color-scheme:dark;
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog > .panel {
  box-sizing:border-box;display:flex;flex-direction:column;gap:0;
  width:min(580px,100%);max-width:100%;height:auto;min-height:0;
  max-height:calc(100dvh - 36px);margin:0;padding:0;overflow:hidden;
  border:1px solid var(--ui-line);border-radius:14px;
  background:var(--ui-surface);color:var(--ui-ink);box-shadow:0 20px 80px #10213924;
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog > .panel > header {
  position:static;flex:none;align-items:center;gap:15px;margin:0;
  padding:18px var(--workspace-dialog-padding) 16px;
  border-bottom:1px solid var(--ui-line);background:var(--ui-surface);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog > .panel > header h3 {
  margin:0;font:750 var(--workspace-dialog-title)/1.3 var(--workspace-font-sans);
  letter-spacing:-.9px;overflow-wrap:anywhere;color:var(--ui-ink);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog > .panel > :is(.u-modal-stack-sm,.u-modal-stack-md,.modal-form) {
  flex:0 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;
  padding:18px var(--workspace-dialog-padding);margin:0;gap:13px;
  font-size:12px;line-height:1.65;
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(.u-modal-actions-end,.modal-actions) {
  display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;flex:none;
  margin:0;padding:14px var(--workspace-dialog-padding);
  border-top:1px solid var(--ui-line);background:var(--ui-surface);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog .modal-form .modal-actions {
  position:sticky;bottom:-18px;margin:0 calc(-1 * var(--workspace-dialog-padding)) -18px;
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(.btn,.btn-outline) {
  min-height:var(--workspace-control-height);border:1px solid var(--ui-line);
  border-radius:var(--workspace-control-radius);padding:9px 13px;
  background:var(--ui-surface);color:var(--ui-ink);box-shadow:none;
  font:600 var(--workspace-control-font)/1.5 var(--workspace-font-sans);
  white-space:normal;transform:none;
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(.modal-actions,.u-modal-actions-end) .btn {
  background:var(--workspace-primary-fill);border-color:var(--workspace-primary-fill);color:var(--workspace-primary-ink);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog header .toprow > .btn {
  background:var(--ui-surface-muted);border-color:var(--ui-line);color:var(--ui-ink);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  box-sizing:border-box;min-height:40px;max-width:100%;border:1px solid var(--ui-line);
  border-radius:var(--workspace-control-radius);padding:10px 12px;
  background:var(--ui-surface);color:var(--ui-ink);font:500 12px/1.6 var(--workspace-font-sans);
}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(.muted,.column-map-help) {color:var(--ui-ink-secondary)}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog .column-map-label {color:var(--ui-ink)}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(.modal-message,#columnMapDesc):empty {display:none}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog .modal-message {background:var(--ui-surface-muted);border-color:var(--ui-line)}
body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(button,input,select,textarea):focus-visible {outline:2px solid var(--ui-blue);outline-offset:3px}
@media(max-width:650px) {
  body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog {padding:12px;--workspace-dialog-padding:21px}
  body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog > .panel {max-height:calc(100dvh - 24px)}
}
@media(pointer:coarse) {
  body:has(#appShell.ui-workspace) {--workspace-control-height:44px}
  body.auth-ready:has(#appShell.ui-workspace) .modal.workspace-dialog :is(input:not([type="checkbox"]):not([type="radio"]),select) {min-height:44px}
}

/* Compact uploads: native inputs preserve filenames and programmatic resets. */
#ccBankSource {min-width:0;margin-top:12px;overflow-wrap:anywhere}
#ccBankSource select {width:100%;min-width:0;max-width:100%}
#ccBankSource .cc-bank-dates {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
#ccBankSource .cc-bank-dates label {min-width:0}
#ccBankSource .cc-bank-dates input {width:100%;min-width:0;box-sizing:border-box}
#ccBankSource .cc-bank-actions {display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
#ccBankSource .pos-api-call-notice {margin-top:12px}
@media(max-width:480px) {
  #ccBankSource .cc-bank-dates {grid-template-columns:minmax(0,1fr)}
}
#appShell.ui-workspace :is(#paneTwo,#paneMarketplace,#panePointOfSale) :is(.recon-source-card,.pos-source-panel):has(.workspace-upload) {
  padding:0; border:0; border-radius:0; background:transparent; box-shadow:none;
}
#appShell.ui-workspace label.workspace-upload {
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:flex-start; align-items:flex-start; gap:5px; width:100%; min-width:0;
  min-height:76px; height:76px; margin:8px 0 0; padding:16px 98px 12px 52px;
  border:1px solid var(--ui-line); border-radius:10px;
  background:var(--ui-surface-solid); color:var(--ui-ink); cursor:pointer;
}
#appShell.ui-workspace .workspace-upload strong {font-size:0;font-weight:550;line-height:1.3;pointer-events:none}
#appShell.ui-workspace .workspace-upload strong::after {content:'Choose a file or drop it here';font-size:12px}
#appShell.ui-workspace .workspace-upload strong span {display:none}
#appShell.ui-workspace .workspace-upload::after {content:'Add file ↑';position:absolute;right:12px;top:20px;padding:10px 12px;border-radius:6px;background:var(--ui-blue-soft);color:var(--ui-blue);font-size:11px;pointer-events:none}
#appShell.ui-workspace .workspace-upload strong span {color:var(--ui-blue)}
#appShell.ui-workspace .workspace-upload small {display:none}
#appShell.ui-workspace .workspace-upload-icon {position:absolute;left:18px;top:26px;font-size:22px;line-height:1;color:var(--ui-blue);pointer-events:none}
#appShell.ui-workspace label.workspace-upload input[type="file"] {
  position:absolute; inset:0; width:100%; height:100%; min-height:0; max-width:none;
  margin:0; padding:43px 98px 12px 52px; border:0 !important; border-radius:10px;
  /* The native input overlays the instructions: override pane input fills. */
  background:transparent !important; box-shadow:none; color:var(--ui-ink-secondary);
  font-size:11px; line-height:16px; text-align:left; cursor:pointer;
}
#appShell.ui-workspace label.workspace-upload input[type="file"]::file-selector-button {display:none}
#appShell.ui-workspace label.workspace-upload:not(:has(:disabled)):is(:hover,:focus-within,.is-dragging) {background:var(--ui-blue-soft);border-color:var(--ui-blue)}
#appShell.ui-workspace label.workspace-upload:focus-within {outline:2px solid var(--ui-blue);outline-offset:2px}
#appShell.ui-workspace label.workspace-upload:has(:disabled) {opacity:.55;cursor:not-allowed}
#appShell.ui-workspace label.workspace-upload input:disabled {cursor:not-allowed}
#appShell.ui-workspace :is(#paneTwo,#paneMarketplace) details.workspace-upload-settings {margin:10px 0 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
#appShell.ui-workspace .workspace-upload-settings summary {font-size:11px;color:var(--ui-ink-secondary);cursor:pointer}
#appShell.ui-workspace .workspace-upload-settings label {margin-top:10px;font-size:11px}
#appShell.ui-workspace .workspace-upload-settings input {max-width:140px}
@media(max-width:600px){#appShell.ui-workspace label.workspace-upload{min-width:0}}

/* Source controls share two equal columns, without enclosing card panels. */
#appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) .compact-source-grid {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
  margin:20px 0; padding:0;border:0;background:transparent;box-shadow:none;
}
#appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) :is(.compact-source-column,.pos-source-panel) {
  min-width:0;padding:0;border:0;background:transparent;box-shadow:none;
}
#appShell.ui-workspace .compact-source-title,
#appShell.ui-workspace #panePointOfSale .pos-source-panel > label:first-child {display:block;font-size:12px;font-weight:600;color:var(--ui-ink-secondary);margin:0 0 10px}
#appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) .compact-saved-bar {
  display:flex;align-items:center;gap:12px;min-width:0;min-height:76px;padding:12px 14px;
  background:var(--ui-surface-solid);border:1px solid var(--ui-line);border-radius:10px;
}
#appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) .compact-saved-bar select {
  flex:1;min-width:0;width:0;max-width:none;margin:0;border:0;background:transparent;box-shadow:none;font-size:12px;
}
#appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) .compact-saved-bar button {flex:none;margin:0;white-space:nowrap}
#appShell.ui-workspace .compact-source-column > :is(.muted,[role="status"]) {display:block;margin-top:9px;font-size:11px;line-height:1.5}
#appShell.ui-workspace .compact-source-column > .workspace-upload {margin-top:0}
#appShell.ui-workspace #paneMarketplace :is(#mpQBSourceRow,#mpPaySourceRow),
#appShell.ui-workspace #paneTwo #poSourceRow {padding:0;border:0;background:transparent;box-shadow:none;min-height:38px;margin:0 0 14px;gap:10px}
#appShell.ui-workspace #paneMarketplace .marketplace-source-grid {align-items:start;gap:24px}
#appShell.ui-workspace #paneImportHub .import-source-bar {grid-template-columns:repeat(2,minmax(0,1fr));padding:0;border:0;background:transparent;box-shadow:none;gap:12px 24px;align-items:start}
#appShell.ui-workspace #paneImportHub .import-source-switch {justify-self:start;grid-column:1;min-height:38px}
#appShell.ui-workspace #paneImportHub .import-source-panel {width:100%;min-width:0;padding:0;border:0;background:transparent;box-shadow:none}
#appShell.ui-workspace #paneImportHub .import-source-panel {grid-column:1;grid-row:2}
#appShell.ui-workspace #paneImportHub .compact-import-details {grid-column:2;grid-row:1 / span 2;min-width:0}
#appShell.ui-workspace #paneImportHub .compact-import-details .compact-source-title {min-height:38px;display:flex;align-items:center;margin-bottom:20px}
#appShell.ui-workspace #paneImportHub .compact-import-details .compact-saved-bar {min-height:76px;display:flex;align-items:center;padding:12px 16px;border:1px solid var(--ui-line);border-radius:10px;background:var(--ui-surface-solid)}
#appShell.ui-workspace #paneImportHub .compact-import-details input {width:100%;min-width:0;border:0;background:transparent;box-shadow:none}
#appShell.ui-workspace #paneImportHub .import-source-status {grid-column:1 / -1;margin:0;font-size:11px}
@media(max-width:800px){
  #appShell.ui-workspace :is(#paneImport,#paneInvoice,#panePointOfSale) .compact-source-grid {grid-template-columns:minmax(0,1fr);gap:18px}
  #appShell.ui-workspace #paneImportHub .import-source-bar {grid-template-columns:minmax(0,1fr)}
  #appShell.ui-workspace #paneImportHub .compact-import-details {grid-column:1;grid-row:auto}
  #appShell.ui-workspace #paneImportHub .compact-import-details .compact-source-title {min-height:0;margin-bottom:10px}
}
@media(max-width:420px){
  #appShell.ui-workspace label.workspace-upload {padding-left:40px;padding-right:84px}
  #appShell.ui-workspace .workspace-upload-icon {left:12px}
  #appShell.ui-workspace label.workspace-upload input[type="file"] {padding-left:40px;padding-right:84px}
  #appShell.ui-workspace .workspace-upload::after {right:8px;padding:10px 8px}
  #appShell.ui-workspace .workspace-upload strong::after {font-size:11px}
}

/* Import mapping actions and product selection form two aligned groups. */
#appShell.ui-workspace #paneImportHub .import-mapping-toolbar {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;
  gap:18px 28px;margin-top:18px;padding:18px 20px;border:1px solid var(--ui-line);
  border-radius:10px;background:var(--ui-surface-solid);
}
#appShell.ui-workspace #paneImportHub .import-mapping-actions {
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0;
}
#appShell.ui-workspace #paneImportHub .import-mapping-actions > * {margin:0}
#appShell.ui-workspace #paneImportHub .import-mapping-actions .muted {font-size:11px}
#appShell.ui-workspace #paneImportHub .import-product-controls {min-width:0;display:grid;gap:7px}
#appShell.ui-workspace #paneImportHub .import-product-controls > label {font-size:11px;margin:0;color:var(--ui-ink-secondary)}
#appShell.ui-workspace #paneImportHub .import-product-actions {display:flex;align-items:center;gap:10px;min-width:0}
#appShell.ui-workspace #paneImportHub .import-product-actions select {flex:1;min-width:0;width:0;margin:0}
#appShell.ui-workspace #paneImportHub .import-product-actions button {flex:none;margin:0;white-space:nowrap}
#appShell.ui-workspace #paneImportHub .import-product-controls > .muted:empty {display:none}
#appShell.ui-workspace #paneImportHub .import-product-controls > .muted {font-size:11px;overflow-wrap:anywhere}
@media(max-width:1000px){#appShell.ui-workspace #paneImportHub .import-mapping-toolbar{grid-template-columns:minmax(0,1fr)}}
@media(max-width:500px){
  #appShell.ui-workspace #paneImportHub .import-mapping-toolbar{padding:15px}
  #appShell.ui-workspace #paneImportHub .import-product-actions{flex-wrap:wrap}
  #appShell.ui-workspace #paneImportHub .import-product-actions select{flex-basis:100%;width:100%}
}

/* Shared interaction cue for actionable summary tiles only. Keep the inset
   focus ring visible inside clipped metric strips, without moving the layout. */
#appShell.ui-workspace :is(
  .cards-metric, .term-metric, .tags-metric, .missing-metric,
  .contract-metric, .season-metric, .cancel-metric, .utility-metric,
  .dashboard-metric, .contracts-summary-item, .admin-ops-metric, .stat
):is(button, a[href], [role="button"], .stat[id^="card"], .stat[data-filter], .stat[data-sort-key]):not(:disabled):not([aria-disabled="true"]) {
  cursor: pointer;
}

#appShell.ui-workspace :is(
  .cards-metric, .term-metric, .tags-metric, .missing-metric,
  .contract-metric, .season-metric, .cancel-metric, .utility-metric,
  .dashboard-metric, .contracts-summary-item, .admin-ops-metric, .stat
):is(button, a[href], [role="button"], .stat[id^="card"], .stat[data-filter], .stat[data-sort-key]):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible) {
  /* Override page-specific metric backgrounds while preserving status colors. */
  background: var(--ui-blue-soft) !important;
  box-shadow: inset 0 0 0 1px var(--ui-blue) !important;
}

#appShell.ui-workspace :is(
  .cards-metric, .term-metric, .tags-metric, .missing-metric,
  .contract-metric, .season-metric, .cancel-metric, .utility-metric,
  .dashboard-metric, .contracts-summary-item, .admin-ops-metric, .stat
):is(button, a[href], [role="button"], .stat[id^="card"], .stat[data-filter], .stat[data-sort-key]):not(:disabled):not([aria-disabled="true"]):focus-visible {
  outline: 2px solid var(--ui-blue) !important;
  outline-offset: -3px !important;
}
