/*
 * AQUILA_OPS_PLATFORM_FIT_R1
 * Stable chrome, page scroll, figure alignment, loading consistency (TEST ops-rail).
 */

html[data-ubz-ops-rail] {
  --ubz-ops-bar: 48px;
  --ubz-ops-expiry: 86px;
  --ubz-ops-chrome-top: calc(var(--ubz-ops-bar) + var(--ubz-ops-expiry));
  --ubz-ops-pos-top: var(--ubz-ops-chrome-top);
  scroll-padding-top: var(--ubz-ops-chrome-top);
}

/* ---- Locked chrome: never grow / never dance ---- */
html[data-ubz-ops-rail] #ubz-ops-context-bar {
  height: var(--ubz-ops-bar) !important;
  min-height: var(--ubz-ops-bar) !important;
  max-height: var(--ubz-ops-bar) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html[data-ubz-ops-rail] #ubz-ops-context-bar .ubz-ops-context-right,
html[data-ubz-ops-rail] #ubz-ops-context-bar .ubz-ops-context-actions {
  flex-wrap: nowrap !important;
  overflow: hidden !important;
}

html[data-ubz-ops-rail] #ubz-ops-expiry-strip {
  top: var(--ubz-ops-bar) !important;
  height: var(--ubz-ops-expiry) !important;
  min-height: var(--ubz-ops-expiry) !important;
  max-height: var(--ubz-ops-expiry) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  z-index: 12048 !important;
}

html[data-ubz-ops-rail] #ubz-ops-context-bar {
  z-index: 12050 !important;
}

html[data-ubz-ops-rail] #root::before {
  top: calc(var(--ubz-ops-chrome-top) - 1px) !important;
}

/* ---- Page scroll for non-POS modules (whole workspace, not only a right pane) ---- */
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]),
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) body {
  height: auto !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) #root {
  padding-top: var(--ubz-ops-chrome-top) !important;
  box-sizing: border-box !important;
  min-height: 100vh !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .section-page,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .module-page,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .workspace-shell,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .dashboard-content,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) main,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) [data-finance-workspace],
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .finance-workspace {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

/* Keep intentional tables/lists scrollable inside, but don't trap the page */
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .table-scroll,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) .data-table-wrap,
html[data-ubz-ops-rail]:not([data-ubz-pos-work="1"]) [data-ubz-scroll="pane"] {
  overflow: auto !important;
  max-height: min(70vh, 720px);
}

/* ---- POS: fixed under chrome, no cover, no bounce ---- */
html[data-ubz-ops-rail][data-ubz-pos-work="1"],
html[data-ubz-ops-rail][data-ubz-pos-work="1"] body {
  height: 100% !important;
  overflow: hidden !important;
}

html[data-ubz-ops-rail][data-ubz-pos-work="1"] #root {
  padding-top: var(--ubz-ops-chrome-top) !important;
  margin-top: 0 !important;
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background: #fff !important;
}

html[data-ubz-ops-rail]:root body .section-page.pos-dedicated-counter-shell,
html[data-ubz-ops-rail]:root body .pos-counter-page--dedicated,
html[data-ubz-ops-rail][data-ubz-pos-work="1"] .section-page.pos-dedicated-counter-shell,
html[data-ubz-ops-rail][data-ubz-pos-work="1"] .pos-counter-page--dedicated {
  top: 0 !important;
  margin-top: 0 !important;
  margin-block-start: 0 !important;
  padding-top: 0 !important;
  position: relative !important;
  transform: none !important;
  height: calc(100vh - var(--ubz-ops-chrome-top)) !important;
  max-height: calc(100vh - var(--ubz-ops-chrome-top)) !important;
  min-height: calc(100vh - var(--ubz-ops-chrome-top)) !important;
}

html[data-ubz-ops-rail][data-ubz-pos-work="1"] .pos-operating-cockpit-v2 {
  height: calc(100vh - var(--ubz-ops-chrome-top)) !important;
  max-height: calc(100vh - var(--ubz-ops-chrome-top)) !important;
}

/* ---- Figures: numbers, %, currency right-aligned ---- */
html[data-ubz-ops-rail] .amount,
html[data-ubz-ops-rail] .money,
html[data-ubz-ops-rail] .currency,
html[data-ubz-ops-rail] .numeric,
html[data-ubz-ops-rail] .number,
html[data-ubz-ops-rail] .percent,
html[data-ubz-ops-rail] .percentage,
html[data-ubz-ops-rail] .qty,
html[data-ubz-ops-rail] .quantity,
html[data-ubz-ops-rail] .text-end,
html[data-ubz-ops-rail] .text-right,
html[data-ubz-ops-rail] .align-end,
html[data-ubz-ops-rail] td.num,
html[data-ubz-ops-rail] th.num,
html[data-ubz-ops-rail] td[data-ubz-figure="1"],
html[data-ubz-ops-rail] th[data-ubz-figure="1"],
html[data-ubz-ops-rail] [data-ubz-figure="1"],
html[data-ubz-ops-rail] .ubz-ops-expiry-meta b {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

html[data-ubz-ops-rail] input[type="number"],
html[data-ubz-ops-rail] input[inputmode="decimal"],
html[data-ubz-ops-rail] input[inputmode="numeric"] {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

/* ---- Consistent loading surface ---- */
html[data-ubz-ops-rail] [data-ubz-loading="1"],
html[data-ubz-ops-rail] .ubz-ops-loading {
  position: relative;
  min-height: 72px;
}

html[data-ubz-ops-rail] [data-ubz-loading="1"]::before,
html[data-ubz-ops-rail] .ubz-ops-loading::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(238, 242, 239, 0.2), rgba(255, 255, 255, 0.75), rgba(238, 242, 239, 0.2));
  background-size: 200% 100%;
  animation: ubz-ops-loading-shimmer 1.2s ease-in-out infinite;
  pointer-events: none;
  z-index: 2;
  border-radius: inherit;
}

@keyframes ubz-ops-loading-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

html[data-ubz-ops-rail] .ubz-ops-loading-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0;
  padding: 8px 12px;
  border: 1px solid #d2dbd5;
  border-radius: 8px;
  background: #f7faf8;
  color: #5a6a63;
  font: 600 12px/1.3 "Source Sans 3", "Segoe UI", sans-serif;
}
