/*
 * OrbisERP POLISHED UI
 * Final visual authority. Loaded last in every complete document.
 * Goals: one spacing scale, one palette, restrained borders, deterministic dark mode,
 * no translucent/alpha colors, no gradients, no inherited legacy accent colors.
 */

:root {
  --ui-bg: #f5f7fa;
  --ui-bg-deep: #eef2f6;
  --ui-surface: #ffffff;
  --ui-surface-soft: #f8fafc;
  --ui-surface-hover: #f1f5f9;
  --ui-surface-strong: #e9eef5;
  --ui-text: #172033;
  --ui-text-soft: #425466;
  --ui-muted: #6b778c;
  --ui-faint: #94a0b2;
  --ui-text-muted: var(--ui-muted);
  --ui-line: #e5e9ef;
  --ui-line-strong: #d5dce6;

  --ui-primary: #f2672a;
  --ui-primary-hover: #df5419;
  --ui-primary-soft: #fff1e8;
  --ui-primary-line: #fed7aa;
  --ui-primary-text: #c2410c;

  --ui-success: #15803d;
  --ui-success-soft: #f0fdf4;
  --ui-success-line: #bbf7d0;
  --ui-warning: #b45309;
  --ui-warning-soft: #fffbeb;
  --ui-warning-line: #fde68a;
  --ui-danger: #b91c1c;
  --ui-danger-soft: #fef2f2;
  --ui-danger-line: #fecaca;
  --ui-info: #0f766e;
  --ui-info-soft: #f0fdfa;
  --ui-info-line: #99f6e4;

  --ui-white: #ffffff;
  --ui-black: #0f172a;
  --ui-shadow-sm: 0 1px 2px #e1e6ed;
  --ui-shadow: 0 8px 24px #e7ebf0;
  --ui-shadow-float: 0 18px 44px #dfe4eb;
  --ui-shadow-lg: var(--ui-shadow-float);
  --ui-overlay: #d5dce6;

  --ui-radius-xs: 6px;
  --ui-radius-sm: 8px;
  --ui-radius: 10px;
  --ui-radius-lg: 14px;
  --ui-radius-xl: 18px;

  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-space-7: 32px;
  --ui-space-8: 40px;
  --ui-space-9: 48px;

  --ui-control-sm: 36px;
  --ui-control: 42px;
  --ui-control-lg: 46px;
  --ui-sidebar: 244px;
  --ui-sidebar-collapsed: 72px;
  --ui-topbar: 64px;
  --ui-page: 1760px;
  --ui-page-pad: clamp(20px, 2.1vw, 32px);
  --ui-font: "Plus Jakarta Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Canonical aliases for historical module styles. */
  --primary:var(--ui-primary);
  --primary-color:var(--ui-primary);
  --primary-hover:var(--ui-primary-hover);
  --primary-soft:var(--ui-primary-soft);
  --accent:var(--ui-primary);
  --accent-color:var(--ui-primary);
  --bg:var(--ui-bg);
  --bg-main:var(--ui-bg);
  --background:var(--ui-bg);
  --bg-card:var(--ui-surface);
  --card:var(--ui-surface);
  --surface:var(--ui-surface);
  --bg-input:var(--ui-surface-soft);
  --bg-hover:var(--ui-surface-hover);
  --text:var(--ui-text);
  --fg:var(--ui-text);
  --text-main:var(--ui-text);
  --text-soft:var(--ui-text-soft);
  --text-muted:var(--ui-muted);
  --gray-text:var(--ui-text);
  --border:var(--ui-line);
  --border-color:var(--ui-line);
  --border-strong:var(--ui-line-strong);
  --success:var(--ui-success);
  --warning:var(--ui-warning);
  --danger:var(--ui-danger);
  --info:var(--ui-info);
  --radius: var(--ui-radius);
  --radius-lg: var(--ui-radius-lg);
  --shadow: none;

  /* Dashboard aliases override historical orange/violet tokens. */
  --hub-orange:var(--ui-primary);
  --hub-orange-soft:var(--ui-primary-soft);
  --hub-text:var(--ui-text);
  --hub-muted:var(--ui-muted);
  --hub-border:var(--ui-line);
  --hub-border-soft:var(--ui-line);
  --hub-soft:var(--ui-surface-soft);
  --hub-soft-strong:var(--ui-surface-soft);
  --hub-green:var(--ui-success);
  --hub-green-soft:var(--ui-success-soft);
  --hub-red:var(--ui-danger);
  --hub-red-soft:var(--ui-danger-soft);
}

html.dark,
html[data-theme="dark"],
html[data-orbis-seed-theme="dark"] {
  /* Odoo 19-inspired graphite hierarchy; Orbis keeps its orange brand accent. */
  --ui-bg: #191b1f;
  --ui-bg-deep: #15171a;
  --ui-surface: #222428;
  --ui-surface-soft: #282b30;
  --ui-surface-hover: #30343a;
  --ui-surface-strong: #383c43;
  --ui-text: #e9eaec;
  --ui-text-soft: #c9cbd0;
  --ui-muted: #9da1aa;
  --ui-faint: #777c86;
  --ui-text-muted: var(--ui-muted);
  --ui-line: #34373d;
  --ui-line-strong: #484c55;
  --ui-overlay: #292c31;

  --ui-primary: #ff7a45;
  --ui-primary-hover: #ff8b5d;
  --ui-primary-soft: #3a251e;
  --ui-primary-line: #69402f;
  --ui-primary-text: #ffc2a7;

  --ui-success: #62b983;
  --ui-success-soft: #203027;
  --ui-success-line: #395844;
  --ui-warning: #d9a657;
  --ui-warning-soft: #332a1f;
  --ui-warning-line: #5d4a30;
  --ui-danger: #df7373;
  --ui-danger-soft: #382426;
  --ui-danger-line: #643a3c;
  --ui-info: #66b7b0;
  --ui-info-soft: #203130;
  --ui-info-line: #3a5653;

  --ui-shadow-sm: 0 1px 2px #121418;
  --ui-shadow: 0 8px 24px #121418;
  --ui-shadow-float: 0 18px 44px #101216;
}

html { min-height: 100%; background: var(--ui-bg) !important; color-scheme: light; }
html.dark, html[data-theme="dark"], html[data-orbis-seed-theme="dark"] { color-scheme: dark; }
body {
  min-height: 100%;
  margin: 0;
  background: var(--ui-bg) !important;
  color: var(--ui-text) !important;
  font-family: var(--ui-font) !important;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: -0.004em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
*, *::before, *::after { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
[hidden] { display: none !important; }
::selection { background: var(--ui-primary-soft); color: var(--ui-primary-text); }

body :where(h1,h2,h3,h4,h5,h6,p) { overflow-wrap: anywhere; }
body :where(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid var(--ui-primary) !important; outline-offset: 2px !important; }
body :where(button,a,input,select,textarea,summary):focus:not(:focus-visible) { outline: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}

/* --------------------------------------------------------------------------
   Application shell
   -------------------------------------------------------------------------- */
body.orbis-app:not(.pos-page) { overflow-x: hidden; }
body.orbis-app:not(.pos-page) > main {
  width: auto !important;
  max-width: none !important;
  min-height: 100dvh !important;
  margin: 0 auto !important;
  padding: calc(var(--ui-topbar) + var(--ui-space-7)) var(--ui-page-pad) var(--ui-space-9) !important;
  background: var(--ui-bg) !important;
  color: var(--ui-text) !important;
}
body.orbis-app:not(.pos-page) > main > :not(dialog) {
  width: min(100%, var(--ui-page));
  max-width: var(--ui-page) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html.sidebar-collapsed body.orbis-app:not(.pos-page) > main { margin-left: auto !important; margin-right:auto!important; }

#app-sidebar.sidebar {
  position: fixed !important;
  inset: 0 auto 0 0 !important;
  z-index: 1000 !important;
  width: var(--ui-sidebar) !important;
  height: 100dvh !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border: 0 !important;
  border-right: 1px solid var(--ui-line) !important;
  border-radius: 0 !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
  transform: translateX(0) !important;
  transition: width .18s ease, transform .18s ease !important;
}
#app-sidebar .sidebar-header {
  flex: none !important;
  padding: 14px 12px 10px !important;
  border: 0 !important;
  background: var(--ui-surface) !important;
}
#app-sidebar .brand {
  min-height: 46px !important;
  margin: 0 0 10px !important;
  padding: 5px 7px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  border: 0 !important;
  border-radius: var(--ui-radius) !important;
  background: transparent !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
#app-sidebar .brand:hover { background: var(--ui-surface-hover) !important; }
#app-sidebar .brand-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 9px !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
#app-sidebar .brand-icon img { width: 24px !important; height: 24px !important; object-fit: contain !important; }
#app-sidebar .brand-text { min-width: 0 !important; display: flex !important; flex-direction: column !important; }
#app-sidebar .brand-name { overflow: hidden !important; color: var(--ui-text) !important; font-size: 13px !important; font-weight: 750 !important; line-height: 1.2 !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
#app-sidebar .brand-meta { margin-top: 3px !important; color: var(--ui-faint) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: .035em !important; text-transform: uppercase !important; }
#app-sidebar .user-widget { display: none !important; }

#app-sidebar .sidebar-search {
  height: var(--ui-control) !important;
  margin: 0 !important;
  padding: 0 10px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 9px !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-muted) !important;
  box-shadow: none !important;
}
#app-sidebar .sidebar-search:focus-within { border-color: var(--ui-primary) !important; background: var(--ui-surface) !important; }
#app-sidebar .sidebar-search > i { color: var(--ui-faint) !important; }
#app-sidebar .sidebar-search input { width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; font-size: 13px !important; font-weight: 550 !important; }
#app-sidebar .sidebar-search input::placeholder { color: var(--ui-faint) !important; }
#app-sidebar .sidebar-search kbd { padding: 2px 5px !important; border: 1px solid var(--ui-line) !important; border-radius: 5px !important; background: var(--ui-surface) !important; color: var(--ui-faint) !important; box-shadow: none !important; font-family: inherit !important; font-size: 11px !important; }

#app-sidebar .sidebar-nav {
  flex: 1 !important;
  min-height: 0 !important;
  overflow: auto !important;
  padding: 4px 10px 14px !important;
  scrollbar-width: thin;
  scrollbar-color: var(--ui-line-strong) transparent;
}
#app-sidebar .nav-section { margin: 0 0 9px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
#app-sidebar .section-title,
#app-sidebar .nav-section-toggle {
  width: 100% !important;
  min-height: 29px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: var(--ui-faint) !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .065em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
}
#app-sidebar .section-title:hover { color: var(--ui-muted) !important; background: var(--ui-surface-soft) !important; }
#app-sidebar .section-title i { font-size: 12px !important; transition: transform .15s ease !important; }
#app-sidebar .nav-section.is-collapsed .section-title i { transform: rotate(-90deg) !important; }
#app-sidebar .nav-section.is-collapsed .nav-items { display: none !important; }
#app-sidebar .nav-items { display: grid !important; gap: 2px !important; }
#app-sidebar .nav-item {
  position: relative !important;
  width: 100% !important;
  min-height: 39px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--ui-text-soft) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: left !important;
  cursor: pointer !important;
}
#app-sidebar .nav-item::before { content: none !important; }
#app-sidebar .nav-item:hover { background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; transform: none !important; }
#app-sidebar .nav-item.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; font-weight: 700 !important; }
#app-sidebar .nav-item.active::after { content: "" !important; position: absolute !important; left: 0 !important; top: 9px !important; bottom: 9px !important; width: 3px !important; border-radius: 0 3px 3px 0 !important; background: var(--ui-primary) !important; }
#app-sidebar .nav-item--primary:not(.active) { color: var(--ui-text-soft) !important; background: transparent !important; }
#app-sidebar .nav-icon {
  width: 25px !important;
  height: 25px !important;
  min-width: 25px !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: var(--ui-muted) !important;
  box-shadow: none !important;
  font-size: 13px !important;
}
#app-sidebar .nav-item.active .nav-icon { background: var(--ui-surface) !important; color: var(--ui-primary) !important; }
html.dark #app-sidebar .nav-item.active .nav-icon { background: var(--ui-surface-soft) !important; }
#app-sidebar .nav-label { min-width: 0 !important; flex: 1 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
#app-sidebar .nav-tooltip { display: none !important; }
#app-sidebar .nav-empty { margin: 10px 8px !important; color: var(--ui-faint) !important; font-size: 12.5px !important; }
#app-sidebar .sidebar-footer { flex: none !important; padding: 10px !important; border-top: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; }
#app-sidebar .sidebar-footer form { margin: 0 !important; }
#app-sidebar .sidebar-footer .nav-item { min-height: 38px !important; }
#app-sidebar .logout-item { color: var(--ui-danger) !important; }
#app-sidebar .logout-item:hover { background: var(--ui-danger-soft) !important; }
#app-sidebar .theme-sun { display: none !important; }
html.dark #app-sidebar .theme-moon { display: none !important; }
html.dark #app-sidebar .theme-sun { display: inline-block !important; }
#app-sidebar .collapse-btn {
  position: absolute !important;
  right: -13px !important;
  top: 78px !important;
  z-index: 2 !important;
  width: 26px !important;
  height: 26px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 50% !important;
  background: var(--ui-surface) !important;
  color: var(--ui-muted) !important;
  box-shadow: var(--ui-shadow-sm) !important;
  cursor: pointer !important;
}

html.sidebar-collapsed #app-sidebar.sidebar { width: var(--ui-sidebar-collapsed) !important; }
html.sidebar-collapsed #app-sidebar .sidebar-header { padding-inline: 10px !important; }
html.sidebar-collapsed #app-sidebar .brand { justify-content: center !important; padding-inline: 0 !important; }
html.sidebar-collapsed #app-sidebar .hide-collapsed,
html.sidebar-collapsed #app-sidebar .section-title { display: none !important; }
html.sidebar-collapsed #app-sidebar .sidebar-nav { padding-inline: 10px !important; padding-top: 8px !important; }
html.sidebar-collapsed #app-sidebar .nav-section { margin-bottom: 4px !important; }
html.sidebar-collapsed #app-sidebar .nav-section.is-collapsed .nav-items { display: grid !important; }
html.sidebar-collapsed #app-sidebar .nav-item { justify-content: center !important; min-height: 42px !important; padding: 0 !important; }
html.sidebar-collapsed #app-sidebar .nav-icon { width: 32px !important; height: 32px !important; }
html.sidebar-collapsed #app-sidebar .nav-item.active::after { left: -10px !important; }
html.sidebar-collapsed #app-sidebar .collapse-btn i { transform: rotate(180deg) !important; }
html.sidebar-collapsed .app-topbar { left: 0 !important; }

.app-topbar {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 900 !important;
  height: var(--ui-topbar) !important;
  padding: 0 var(--ui-page-pad) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
.app-topbar__context { min-width: 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; color: var(--ui-muted) !important; font-size: 13px !important; }
.app-topbar__context strong { overflow: hidden !important; color: var(--ui-text) !important; font-size: 13px !important; font-weight: 700 !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.app-topbar__context > span:last-child { color: var(--ui-faint) !important; }
.app-topbar__mark { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: var(--ui-success) !important; box-shadow: none !important; }
.app-topbar__actions { display: flex !important; align-items: center !important; gap: 8px !important; }
.app-topbar__button,
.app-topbar__profile {
  min-height: 36px !important;
  padding: 0 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 9px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text-soft) !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
}
.app-topbar__button:hover,
.app-topbar__profile:hover { border-color: var(--ui-line-strong) !important; background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; }
.app-topbar__button kbd { border: 0 !important; background: transparent !important; color: var(--ui-faint) !important; font-size: 11px !important; }
.app-topbar__avatar { width: 26px !important; height: 26px !important; min-width: 26px !important; display: grid !important; place-items: center !important; overflow: hidden !important; border-radius: 50% !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; font-size: 12px !important; font-weight: 700 !important; }
.app-topbar__avatar img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

.sidebar-mobile-trigger,
.sidebar-overlay { display: none !important; }

/* Announcements */
.company-readonly-banner,
.global-broadcast-banner {
  position: fixed !important;
  z-index: 1200 !important;
  left: 0 !important;
  right: 0 !important;
  min-height: 42px !important;
  padding: 8px 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ui-warning-line) !important;
  background: var(--ui-warning-soft) !important;
  color: var(--ui-warning) !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
}
.company-readonly-banner { top: 0 !important; }
.global-broadcast-banner { top: 0 !important; border-color: var(--ui-info-line) !important; background: var(--ui-info-soft) !important; color: var(--ui-info) !important; }
.company-readonly-banner span { display: flex !important; align-items: center !important; gap: 8px !important; }
.company-readonly-banner small { color: inherit !important; }
body:has(.company-readonly-banner) .app-topbar,
body:has(.global-broadcast-banner) .app-topbar { top: 42px !important; }
body:has(.company-readonly-banner) #app-sidebar,
body:has(.global-broadcast-banner) #app-sidebar { padding-top: 42px !important; }
body.orbis-app:has(.company-readonly-banner):not(.pos-page) > main,
body.orbis-app:has(.global-broadcast-banner):not(.pos-page) > main { padding-top: calc(var(--ui-topbar) + var(--ui-space-7) + 42px) !important; }

/* Global search */
.global-search-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1500 !important;
  padding: 10vh 18px 18px !important;
  display: none !important;
  align-items: flex-start !important;
  justify-content: center !important;
  background: var(--ui-black) !important;
}
.global-search-modal.open,
.global-search-modal[aria-hidden="false"] { display: flex !important; }
.global-search-panel { width: min(680px, 100%) !important; overflow: hidden !important; border: 1px solid var(--ui-line-strong) !important; border-radius: var(--ui-radius-lg) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: var(--ui-shadow-float) !important; }
.global-search-box { min-height: 56px !important; padding: 0 14px !important; display: flex !important; align-items: center !important; gap: 10px !important; border-bottom: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; }
.global-search-box > i { color: var(--ui-muted) !important; }
.global-search-box input { min-width: 0 !important; flex: 1 !important; min-height: 52px !important; padding: 0 !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; }
.global-search-box kbd { padding: 3px 6px !important; border: 1px solid var(--ui-line) !important; border-radius: 5px !important; background: var(--ui-surface-soft) !important; color: var(--ui-faint) !important; font-size: 11px !important; }
.global-search-results { max-height: 440px !important; overflow: auto !important; padding: 8px !important; }
.global-search-result { min-height: 52px !important; padding: 8px 10px !important; display: flex !important; align-items: center !important; gap: 10px !important; border-radius: 9px !important; color: var(--ui-text-soft) !important; }
.global-search-result:hover { background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; }
.global-search-result-icon { width: 34px !important; height: 34px !important; display: grid !important; place-items: center !important; border-radius: 9px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
.search-empty { padding: 26px 16px !important; color: var(--ui-muted) !important; text-align: center !important; font-size: 13px !important; }
.support-mode { position: fixed !important; right: 16px !important; bottom: 16px !important; z-index: 1000 !important; min-height: 38px !important; padding: 0 12px !important; display: inline-flex !important; align-items: center !important; gap: 7px !important; border: 1px solid var(--ui-info-line) !important; border-radius: 9px !important; background: var(--ui-info-soft) !important; color: var(--ui-info) !important; box-shadow: var(--ui-shadow-sm) !important; font-size: 12px !important; font-weight: 700 !important; }

/* --------------------------------------------------------------------------
   Page rhythm and hierarchy
   -------------------------------------------------------------------------- */
body.orbis-app:not(.pos-page) > main :where(
  .workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,
  .purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,
  .kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,
  .data-hero,.master-heading,.section-header
) {
  width: 100% !important;
  max-width: var(--ui-page) !important;
  margin: 0 auto 24px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 20px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-heading,.page-heading,.header-copy,.hub-header > div:first-child) { min-width: 0 !important; }
body.orbis-app:not(.pos-page) > main :where(.workspace-eyebrow,.bo-eyebrow,.eyebrow,.hub-eyebrow,.section-kicker,.card-kicker,.setup-kicker,.retail-eyebrow,.master-eyebrow) {
  display: block !important;
  margin: 0 0 6px !important;
  color: var(--ui-primary) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,.purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,.kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,.data-hero,.master-heading,.section-header) :where(h1,h2) {
  margin: 0 !important;
  color: var(--ui-text) !important;
  font-size: clamp(27px, 2.4vw, 34px) !important;
  font-weight: 750 !important;
  line-height: 1.12 !important;
  letter-spacing: -.035em !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,.purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,.kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,.data-hero,.master-heading,.section-header) p {
  max-width: 760px !important;
  margin: 7px 0 0 !important;
  color: var(--ui-muted) !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-back,.ops-back,.back-link,.reports-back) {
  min-height: 32px !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ui-muted) !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  box-shadow: none !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-back,.ops-back,.back-link,.reports-back):hover { color: var(--ui-primary) !important; }
body.orbis-app :where(.workspace-header-actions,.bo-header-actions,.hub-header__actions,.actions,.workspace-actions,.module-toolbar,.workspace-table-actions,.bo-form-actions) { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important; }

/* Standard vertical rhythm */
body.orbis-app:not(.pos-page) > main :where(.workspace-grid,.metric-grid,.stats-grid,.kpi-grid,.bo-kpis,.crm-v3-stats) { margin-bottom: 16px !important; }
body.orbis-app:not(.pos-page) > main :where(.workspace-card,.bo-card,.hub-card,.content-card,.table-card,.detail-card,.summary-card,.module-page,.retail-shell) + :where(.workspace-card,.bo-card,.hub-card,.content-card,.table-card,.detail-card,.summary-card,.module-page,.retail-shell) { margin-top: 16px !important; }
body.orbis-app:not(.pos-page) > main .workspace-section-gap { height: 8px !important; }

/* --------------------------------------------------------------------------
   Surfaces / cards / metrics
   -------------------------------------------------------------------------- */
body.orbis-app :where(
  .workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.stats-card,
  .toolbar-card,.search-card,.form-container,.form-container-left,.filter-panel,.filters-panel,
  .control-panel,.configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,
  .capability-card,.hub-card,.retail-launch-card,.retail-record,.module-entity-card,.workspace-panel,
  .info-box,.activity-panel,.product-panel,.payment-card,.stat-card
) {
  border: 1px solid var(--ui-line) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-app :where(
  .workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.stats-card,
  .toolbar-card,.search-card,.form-container,.form-container-left,.filter-panel,.filters-panel,
  .control-panel,.configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,
  .capability-card,.hub-card,.workspace-panel,.info-box,.activity-panel,.product-panel
) { padding: 20px !important; }
body.orbis-app :where(.workspace-card--flat,.bo-card--flat) { box-shadow: none !important; }
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) {
  min-height: 0 !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) :where(h2,h3) { margin: 0 !important; color: var(--ui-text) !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: -.02em !important; }
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) p { margin: 4px 0 0 !important; color: var(--ui-muted) !important; font-size: 12.5px !important; line-height: 1.5 !important; }

body.orbis-app :where(.workspace-grid,.metric-grid,.stats-grid,.kpi-grid,.bo-kpis) {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) {
  min-width: 0 !important;
  min-height: 116px !important;
  margin: 0 !important;
  padding: 16px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 12px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) :where(span,small) { color: var(--ui-muted) !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) > :where(span,.metric-card__top) { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; color: var(--ui-muted) !important; font-size: 12px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .045em !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) > :where(span,.metric-card__top) i { color: var(--ui-primary) !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) > strong { display: block !important; margin: 12px 0 5px !important; color: var(--ui-text) !important; font-size: clamp(21px, 1.8vw, 28px) !important; font-weight: 750 !important; line-height: 1 !important; letter-spacing: -.035em !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) footer { margin-top: 9px !important; display: flex !important; align-items: center !important; gap: 7px !important; color: var(--ui-muted) !important; font-size: 12px !important; }
body.orbis-app :where(.metric-trend--up,.trend-up,.positive) { color: var(--ui-success) !important; }
body.orbis-app :where(.metric-trend--down,.trend-down,.negative) { color: var(--ui-danger) !important; }

body.orbis-app :where(.workspace-columns,.overview-grid,.activity-grid,.secondary-grid,.retail-subgrid,.bo-grid) { display: grid !important; gap: 16px !important; }
body.orbis-app .workspace-columns { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr) !important; }
body.orbis-app .workspace-columns.equal { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* --------------------------------------------------------------------------
   Buttons and actions
   -------------------------------------------------------------------------- */
body.orbis-app :where(.workspace-btn,.primary-action,.btn-primary,.master-btn,.export-report,.btn-nav-primary,.btn-hero-primary,button.primary,a.primary) {
  min-height: var(--ui-control) !important;
  padding: 0 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  border: 1px solid var(--ui-primary) !important;
  border-radius: 9px !important;
  background: var(--ui-primary) !important;
  color: var(--ui-white) !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transform: none !important;
}
body.orbis-app :where(.workspace-btn,.primary-action,.btn-primary,.master-btn,.export-report,.btn-nav-primary,.btn-hero-primary,button.primary,a.primary):hover { border-color: var(--ui-primary-hover) !important; background: var(--ui-primary-hover) !important; color: var(--ui-white) !important; transform: none !important; box-shadow: none !important; }
body.orbis-app :where(.workspace-btn.secondary,.btn-secondary,.secondary-action,a.secondary,button.secondary) {
  border-color: var(--ui-line-strong) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text-soft) !important;
  box-shadow: none !important;
}
body.orbis-app :where(.workspace-btn.secondary,.btn-secondary,.secondary-action,a.secondary,button.secondary):hover { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
body.orbis-app :where(.workspace-btn.danger,.btn-danger,button.danger,a.danger) { border-color: var(--ui-danger-line) !important; background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-app :where(.workspace-btn.danger,.btn-danger,button.danger,a.danger):hover { border-color: var(--ui-danger) !important; background: var(--ui-danger) !important; color: var(--ui-white) !important; }
body.orbis-app :where(.workspace-icon-btn,.icon-btn,.icon-action,button[class*="icon-btn"],a[class*="icon-btn"],.product-action-icon) {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 9px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-muted) !important;
  box-shadow: none !important;
  transform: none !important;
}
body.orbis-app :where(.workspace-icon-btn,.icon-btn,.icon-action,button[class*="icon-btn"],a[class*="icon-btn"],.product-action-icon):hover { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; transform: none !important; }
body.orbis-app :where(button,a)[disabled],
body.orbis-app :where(button,a).disabled { cursor: not-allowed !important; opacity: .6 !important; transform: none !important; }

/* --------------------------------------------------------------------------
   Forms and filters
   -------------------------------------------------------------------------- */
body.orbis-app :where(.workspace-form,.bo-form-grid,.modern-form,.form-grid,.retail-form,.crm-dialog-grid) { gap: 14px !important; }
body.orbis-app .workspace-form { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
body.orbis-app .workspace-form.compact { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
body.orbis-app :where(.workspace-form,.modern-form,.bo-form-grid,.retail-form) .full,
body.orbis-app :where(.workspace-form,.modern-form,.bo-form-grid,.retail-form) .span-full { grid-column: 1 / -1 !important; }
body.orbis-app :where(label,.workspace-field,.field-group,.form-group) { color: var(--ui-muted); }
body.orbis-app :where(.workspace-field,.workspace-form label,.modern-form label,.bo-form-grid label,.retail-form label,.field-group,.form-group) { gap: 6px !important; font-size: 12px !important; font-weight: 650 !important; }
body.orbis-app :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border-color: var(--ui-line-strong) !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-app :where(input:not([type="checkbox"]):not([type="radio"]),select) {
  min-height: var(--ui-control) !important;
  padding: 0 11px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  font-weight: 550 !important;
}
body.orbis-app textarea { min-height: 92px !important; padding: 10px 11px !important; border-width: 1px !important; border-style: solid !important; border-radius: 9px !important; font-size: 13px !important; line-height: 1.5 !important; resize: vertical; }
body.orbis-app :where(input,select,textarea)::placeholder { color: var(--ui-faint) !important; opacity: 1 !important; }
body.orbis-app :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus { border-color: var(--ui-primary) !important; outline: 2px solid var(--ui-primary) !important; outline-offset: 1px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app :where(input[type="checkbox"],input[type="radio"]) { accent-color: var(--ui-primary) !important; }
body.orbis-app :where(.workspace-filter,.filters-bar,.filter-bar,.toolbar,.module-toolbar,.clients-toolbar,.product-catalog-bar) {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.orbis-app .workspace-filter { margin-bottom: 14px !important; display: flex !important; align-items: flex-end !important; gap: 8px !important; flex-wrap: wrap !important; }
body.orbis-app :where(.workspace-help,.help-text,.form-help,.field-help) { color: var(--ui-muted) !important; font-size: 12px !important; line-height: 1.5 !important; }

/* --------------------------------------------------------------------------
   Tables, lists, status
   -------------------------------------------------------------------------- */
body.orbis-app :where(.workspace-table-wrap,.bo-table-wrap,.table-responsive,.table-wrap,.purchases-table-wrap,[class*="table-container"]) {
  width: 100% !important;
  overflow: auto !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 12px !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) { width: 100% !important; border-collapse: collapse !important; border-spacing: 0 !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) :where(th,td) { padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid var(--ui-line) !important; vertical-align: middle !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) th { background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .045em !important; text-transform: uppercase !important; white-space: nowrap; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) td { background: var(--ui-surface) !important; color: var(--ui-text-soft) !important; font-size: 13px !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) tbody tr:last-child td { border-bottom: 0 !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) tbody tr:hover td { background: var(--ui-surface-hover) !important; }
body.orbis-app table a { color: var(--ui-primary) !important; }

body.orbis-app :where(.workspace-tag,.workspace-badge,.module-chip,.retail-chip,.retail-pill,.status,.bo-status,.pill-badge,.badge) {
  min-height: 24px !important;
  padding: 0 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 999px !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
body.orbis-app :where(.workspace-tag.ok,.workspace-badge.success,.module-chip.success,.status--completed,.status--received,.status--paid,.bo-status.success,.badge-success) { border-color: var(--ui-success-line) !important; background: var(--ui-success-soft) !important; color: var(--ui-success) !important; }
body.orbis-app :where(.workspace-tag.warn,.workspace-badge.warning,.module-chip.warning,.status--pending,.status--draft,.status--quotation,.bo-status.warning,.badge-warning) { border-color: var(--ui-warning-line) !important; background: var(--ui-warning-soft) !important; color: var(--ui-warning) !important; }
body.orbis-app :where(.workspace-tag.danger,.workspace-badge.danger,.module-chip.danger,.status--cancelled,.status--overdue,.bo-status.danger,.badge-danger) { border-color: var(--ui-danger-line) !important; background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-app :where(.module-chip.primary,.workspace-badge.primary,.badge-primary) { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }

body.orbis-app :where(.workspace-empty,.bo-empty,.module-empty,.empty-state) { min-height: 150px !important; padding: 28px 18px !important; display: grid !important; place-items: center !important; align-content: center !important; gap: 7px !important; color: var(--ui-muted) !important; text-align: center !important; }
body.orbis-app :where(.workspace-empty,.bo-empty,.module-empty,.empty-state) > i { margin: 0 !important; color: var(--ui-primary) !important; font-size: 24px !important; }
body.orbis-app :where(.workspace-empty,.bo-empty,.module-empty,.empty-state) :where(h2,h3,b,strong) { margin: 0 !important; color: var(--ui-text) !important; }
body.orbis-app :where(.workspace-empty,.bo-empty,.module-empty,.empty-state) p { max-width: 480px !important; margin: 0 !important; color: var(--ui-muted) !important; font-size: 12.5px !important; line-height: 1.5 !important; }

body.orbis-app :where(.workspace-mini-row,.module-row,.retail-record,.list-row) { min-height: 54px !important; padding: 10px 0 !important; border: 0 !important; border-bottom: 1px solid var(--ui-line) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body.orbis-app :where(.workspace-mini-row,.module-row,.retail-record,.list-row):last-child { border-bottom: 0 !important; }

/* --------------------------------------------------------------------------
   CRM: completely normalized, no legacy orange/purple mix
   -------------------------------------------------------------------------- */
body.orbis-app .crm-v3 { --crm-side: 286px; width: 100% !important; color: var(--ui-text) !important; }
body.orbis-app .crm-v3 .crm-v3-stats { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 10px !important; margin: 0 0 14px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article { min-width: 0 !important; min-height: 88px !important; padding: 14px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > span { display: flex !important; align-items: center !important; gap: 6px !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .045em !important; text-transform: uppercase !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > span i { color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > strong { display: block !important; margin: 9px 0 2px !important; color: var(--ui-text) !important; font-size: 21px !important; font-weight: 750 !important; line-height: 1 !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > small { color: var(--ui-muted) !important; font-size: 11px !important; }

body.orbis-app .crm-v3 .crm-v3-shell { min-height: 620px !important; display: grid !important; grid-template-columns: var(--crm-side) minmax(0, 1fr) !important; overflow: hidden !important; border: 1px solid var(--ui-line) !important; border-radius: 14px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-directory { min-width: 0 !important; padding: 15px !important; border: 0 !important; border-right: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-directory > header { display: flex !important; align-items: flex-start !important; justify-content: space-between !important; gap: 10px !important; margin-bottom: 12px !important; }
body.orbis-app .crm-v3 .crm-directory > header span,
body.orbis-app .crm-v3 .crm-card-head span { color: var(--ui-primary) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .055em !important; text-transform: uppercase !important; }
body.orbis-app .crm-v3 .crm-directory > header h2 { margin: 3px 0 0 !important; color: var(--ui-text) !important; font-size: 15px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-directory > header p { margin: 3px 0 0 !important; color: var(--ui-muted) !important; font-size: 11.5px !important; line-height: 1.45 !important; }
body.orbis-app .crm-v3 .crm-directory > header button { display: none !important; }
body.orbis-app .crm-v3 .crm-directory-search { height: 40px !important; margin: 0 0 10px !important; padding: 0 10px !important; display: flex !important; align-items: center !important; gap: 7px !important; border: 1px solid var(--ui-line-strong) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
body.orbis-app .crm-v3 .crm-directory-search input { min-height: 0 !important; height: auto !important; padding: 0 !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; font-size: 12.5px !important; }
body.orbis-app .crm-v3 .crm-directory-search:focus-within { border-color: var(--ui-primary) !important; background: var(--ui-surface) !important; }
body.orbis-app .crm-v3 .crm-stage-tabs { margin: 0 0 10px !important; padding: 3px !important; display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 3px !important; border: 0 !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button { min-height: 30px !important; padding: 0 6px !important; border: 0 !important; border-radius: 7px !important; background: transparent !important; color: var(--ui-muted) !important; box-shadow: none !important; font-size: 11px !important; font-weight: 650 !important; cursor: pointer !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button[data-stage="Perdido"] { display: none !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button.active { background: var(--ui-surface) !important; color: var(--ui-primary) !important; box-shadow: var(--ui-shadow-sm) !important; }
body.orbis-app .crm-v3 .crm-client-list { max-height: 500px !important; display: grid !important; gap: 4px !important; overflow: auto !important; }
body.orbis-app .crm-v3 .crm-client-item { width: 100% !important; min-height: 54px !important; padding: 7px !important; display: grid !important; grid-template-columns: 34px minmax(0, 1fr) auto !important; align-items: center !important; gap: 8px !important; border: 1px solid transparent !important; border-radius: 9px !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; text-align: left !important; cursor: pointer !important; }
body.orbis-app .crm-v3 .crm-client-item:hover { background: var(--ui-surface-hover) !important; }
body.orbis-app .crm-v3 .crm-client-item.active { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; }
body.orbis-app .crm-v3 .crm-client-avatar { width: 34px !important; height: 34px !important; display: grid !important; place-items: center !important; border-radius: 9px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; font-size: 12.5px !important; font-weight: 750 !important; }
body.orbis-app .crm-v3 .crm-client-copy { min-width: 0 !important; }
body.orbis-app .crm-v3 .crm-client-copy strong { display: block !important; overflow: hidden !important; color: var(--ui-text) !important; font-size: 12px !important; font-weight: 700 !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
body.orbis-app .crm-v3 .crm-client-copy small { display: block !important; margin-top: 2px !important; overflow: hidden !important; color: var(--ui-muted) !important; font-size: 11px !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
body.orbis-app .crm-v3 .crm-stage-badge { min-height: 20px !important; padding: 0 6px !important; display: inline-flex !important; align-items: center !important; border: 1px solid var(--ui-line) !important; border-radius: 999px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .stage-ganado { border-color: var(--ui-success-line) !important; background: var(--ui-success-soft) !important; color: var(--ui-success) !important; }
body.orbis-app .crm-v3 .stage-negociacion { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .stage-perdido { border-color: var(--ui-danger-line) !important; background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }

body.orbis-app .crm-v3 .crm-detail { position: relative !important; min-width: 0 !important; background: var(--ui-bg) !important; }
body.orbis-app .crm-v3 .crm-v3-empty,
body.orbis-app .crm-v3 .crm-loading { min-height: 600px !important; display: grid !important; place-items: center !important; align-content: center !important; gap: 8px !important; color: var(--ui-muted) !important; text-align: center !important; }
body.orbis-app .crm-v3 .crm-v3-empty > span { width: 48px !important; height: 48px !important; display: grid !important; place-items: center !important; border-radius: 12px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-v3-empty h2 { margin: 0 !important; color: var(--ui-text) !important; font-size: 16px !important; }
body.orbis-app .crm-v3 .crm-v3-empty p { margin: 0 !important; max-width: 360px !important; color: var(--ui-muted) !important; font-size: 12.5px !important; }
body.orbis-app .crm-v3 .crm-client-view { padding: 12px !important; display: grid !important; gap: 12px !important; }
body.orbis-app .crm-v3 .crm-client-hero { min-width: 0 !important; min-height: 84px !important; padding: 14px !important; display: grid !important; grid-template-columns: 48px minmax(0, 1fr) auto !important; align-items: center !important; gap: 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-detail-back { display: none !important; }
body.orbis-app .crm-v3 .crm-avatar-lg { width: 48px !important; height: 48px !important; display: grid !important; place-items: center !important; border-radius: 12px !important; background: var(--ui-primary) !important; color: var(--ui-white) !important; font-size: 15px !important; font-weight: 750 !important; }
body.orbis-app .crm-v3 .crm-client-heading { min-width: 0 !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 10px !important; }
body.orbis-app .crm-v3 .crm-client-heading small { color: var(--ui-primary) !important; font-size: 11px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-client-heading h2 { margin: 2px 0 !important; overflow: hidden !important; color: var(--ui-text) !important; font-size: 17px !important; font-weight: 750 !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
body.orbis-app .crm-v3 .crm-client-heading p { margin: 0 !important; display: flex !important; align-items: center !important; gap: 6px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-client-heading p i { width: 3px !important; height: 3px !important; border-radius: 50% !important; background: var(--ui-line-strong) !important; }
body.orbis-app .crm-v3 .crm-client-kpis { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
body.orbis-app .crm-v3 .crm-client-kpis article { min-width: 0 !important; min-height: 74px !important; padding: 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 11px !important; background: var(--ui-surface) !important; }
body.orbis-app .crm-v3 .crm-client-kpis span { color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .04em !important; }
body.orbis-app .crm-v3 .crm-client-kpis strong { display: block !important; margin-top: 5px !important; color: var(--ui-text) !important; font-size: 13px !important; font-weight: 750 !important; }
body.orbis-app .crm-v3 .crm-client-kpis small { display: block !important; margin-top: 2px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-v3-columns { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important; gap: 10px !important; }
body.orbis-app .crm-v3 .crm-v3-card { min-width: 0 !important; padding: 14px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-card-head { margin: 0 0 12px !important; display: flex !important; align-items: flex-start !important; justify-content: space-between !important; gap: 12px !important; }
body.orbis-app .crm-v3 .crm-card-head h3 { margin: 2px 0 !important; color: var(--ui-text) !important; font-size: 13px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-card-head p { margin: 0 !important; color: var(--ui-muted) !important; font-size: 11.5px !important; line-height: 1.45 !important; }
body.orbis-app .crm-v3 .crm-card-head > i { color: var(--ui-primary) !important; font-size: 15px !important; }
body.orbis-app .crm-v3 .crm-pipeline { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 6px !important; }
body.orbis-app .crm-v3 .crm-pipeline button { min-height: 64px !important; padding: 9px !important; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important; gap: 5px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; box-shadow: none !important; cursor: pointer !important; }
body.orbis-app .crm-v3 .crm-pipeline button span { width: 22px !important; height: 22px !important; display: grid !important; place-items: center !important; border-radius: 50% !important; background: var(--ui-surface-strong) !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 750 !important; }
body.orbis-app .crm-v3 .crm-pipeline button strong { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-pipeline button.active { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-pipeline button.active span { background: var(--ui-primary) !important; color: var(--ui-white) !important; }
body.orbis-app .crm-v3 .crm-add-task { min-height: 32px !important; padding: 0 10px !important; display: inline-flex !important; align-items: center !important; gap: 5px !important; border: 1px solid var(--ui-primary-line) !important; border-radius: 8px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; box-shadow: none !important; font-size: 11px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-task-list { max-height: 250px !important; display: grid !important; gap: 5px !important; overflow: auto !important; }
body.orbis-app .crm-v3 .crm-task-item { min-height: 50px !important; padding: 8px !important; display: grid !important; grid-template-columns: 30px minmax(0, 1fr) auto !important; align-items: center !important; gap: 8px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .crm-v3 .crm-task-check { width: 30px !important; height: 30px !important; padding: 0 !important; display: grid !important; place-items: center !important; border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: var(--ui-surface) !important; color: var(--ui-muted) !important; }
body.orbis-app .crm-v3 .crm-task-copy strong { display: block !important; color: var(--ui-text) !important; font-size: 11.5px !important; }
body.orbis-app .crm-v3 .crm-task-copy small { display: block !important; margin-top: 2px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-priority { min-height: 20px !important; padding: 0 6px !important; display: inline-flex !important; align-items: center !important; border-radius: 999px !important; background: var(--ui-surface-strong) !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-priority.alta { background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-app .crm-v3 .crm-composer { margin: 0 0 12px !important; overflow: hidden !important; border: 1px solid var(--ui-line-strong) !important; border-radius: 10px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .crm-v3 .crm-composer textarea { width: 100% !important; min-height: 78px !important; padding: 10px 11px !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; font-size: 12px !important; }
body.orbis-app .crm-v3 .crm-composer > div { min-height: 42px !important; padding: 6px 8px !important; display: flex !important; align-items: center !important; gap: 8px !important; border-top: 1px solid var(--ui-line) !important; }
body.orbis-app .crm-v3 .crm-composer select { min-height: 30px !important; height: 30px !important; padding: 0 8px !important; background: var(--ui-surface) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-composer > div span { margin-left: auto !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-composer button { min-height: 32px !important; padding: 0 10px !important; border: 1px solid var(--ui-primary) !important; border-radius: 8px !important; background: var(--ui-primary) !important; color: var(--ui-white) !important; font-size: 11px !important; font-weight: 700 !important; }
body.orbis-app .crm-v3 .crm-timeline { display: grid !important; }
body.orbis-app .crm-v3 .crm-timeline-item { position: relative !important; padding: 0 0 12px !important; display: grid !important; grid-template-columns: 34px minmax(0, 1fr) !important; gap: 9px !important; }
body.orbis-app .crm-v3 .crm-timeline-avatar { width: 34px !important; height: 34px !important; z-index: 1 !important; display: grid !important; place-items: center !important; overflow: hidden !important; border-radius: 50% !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; font-size: 12px !important; font-weight: 750 !important; }
body.orbis-app .crm-v3 .crm-timeline-item:not(:last-child)::after { content: "" !important; position: absolute !important; left: 16px !important; top: 34px !important; bottom: 0 !important; width: 1px !important; background: var(--ui-line) !important; }
body.orbis-app .crm-v3 .crm-timeline-copy header { display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 6px !important; }
body.orbis-app .crm-v3 .crm-timeline-copy header strong { color: var(--ui-text) !important; font-size: 11.5px !important; }
body.orbis-app .crm-v3 .crm-timeline-copy header span { color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-timeline-copy p { margin: 4px 0 0 !important; color: var(--ui-text-soft) !important; font-size: 11.5px !important; line-height: 1.5 !important; }
body.orbis-app .crm-v3 .crm-toast { position: fixed !important; z-index: 1500 !important; right: 20px !important; bottom: 20px !important; max-width: 340px !important; padding: 10px 12px !important; border: 1px solid var(--ui-line-strong) !important; border-radius: 9px !important; background: var(--ui-text) !important; color: var(--ui-surface) !important; box-shadow: var(--ui-shadow) !important; font-size: 12px !important; font-weight: 650 !important; opacity: 0; pointer-events: none; }
body.orbis-app .crm-v3 .crm-toast.show { opacity: 1 !important; }
body.orbis-app .crm-v3 .crm-toast.error { background: var(--ui-danger) !important; color: var(--ui-white) !important; }
body.orbis-app .crm-v3 .crm-task-dialog { width: min(520px, calc(100vw - 28px)) !important; padding: 0 !important; border: 1px solid var(--ui-line) !important; border-radius: 14px !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: var(--ui-shadow-float) !important; }
body.orbis-app .crm-v3 .crm-task-dialog::backdrop { background: var(--ui-black) !important; }
body.orbis-app .crm-v3 .crm-task-dialog form { padding: 18px !important; }
body.orbis-app .crm-v3 .crm-task-dialog header { margin-bottom: 14px !important; display: flex !important; justify-content: space-between !important; gap: 12px !important; }
body.orbis-app .crm-v3 .crm-task-dialog header h2 { margin: 2px 0 !important; color: var(--ui-text) !important; font-size: 17px !important; }
body.orbis-app .crm-v3 .crm-task-dialog header p { margin: 0 !important; color: var(--ui-muted) !important; font-size: 12px !important; }
body.orbis-app .crm-v3 .crm-task-dialog header button { width: 34px !important; height: 34px !important; padding: 0 !important; border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
body.orbis-app .crm-v3 .crm-task-dialog label { margin-bottom: 10px !important; display: grid !important; gap: 5px !important; color: var(--ui-muted) !important; font-size: 12px !important; font-weight: 650 !important; }
body.orbis-app .crm-v3 .crm-dialog-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
body.orbis-app .crm-v3 .crm-form-error { min-height: 16px !important; margin: 0 0 8px !important; color: var(--ui-danger) !important; font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-task-dialog footer { padding-top: 4px !important; display: flex !important; justify-content: flex-end !important; gap: 8px !important; }

/* --------------------------------------------------------------------------
   Dashboard / commercial overview normalization
   -------------------------------------------------------------------------- */
body.orbis-app .sales-hub__shell { width: 100% !important; max-width: var(--ui-page) !important; margin: 0 auto !important; }
body.orbis-app .metric-grid { overflow: visible !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body.orbis-app .metric-card { border: 1px solid var(--ui-line) !important; }
body.orbis-app .metric-card--main { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; }
body.orbis-app .quick-panel { margin: 0 0 16px !important; padding: 14px !important; display: grid !important; grid-template-columns: 180px minmax(0, 1fr) !important; align-items: center !important; gap: 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .quick-panel__title span { display: block !important; color: var(--ui-text) !important; font-size: 13px !important; font-weight: 700 !important; }
body.orbis-app .quick-panel__title small { display: block !important; margin-top: 2px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .quick-actions { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 6px !important; }
body.orbis-app .quick-actions a { min-width: 0 !important; min-height: 54px !important; padding: 8px 10px !important; display: flex !important; align-items: center !important; gap: 8px !important; border: 0 !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-text-soft) !important; box-shadow: none !important; }
body.orbis-app .quick-actions a:hover { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .quick-actions a > i { color: var(--ui-primary) !important; font-size: 15px !important; }
body.orbis-app .quick-actions b { display: block !important; color: inherit !important; font-size: 12px !important; }
body.orbis-app .quick-actions small { display: block !important; margin-top: 2px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .overview-grid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, .7fr) !important; margin-bottom: 16px !important; }
body.orbis-app .activity-grid { grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr) !important; margin-bottom: 16px !important; }
body.orbis-app .secondary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; margin-bottom: 16px !important; }
body.orbis-app .period-tabs { padding: 3px !important; display: flex !important; gap: 3px !important; border: 0 !important; border-radius: 8px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .period-tabs a { min-height: 30px !important; padding: 0 9px !important; display: inline-flex !important; align-items: center !important; border: 0 !important; border-radius: 6px !important; background: transparent !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 650 !important; }
body.orbis-app .period-tabs a.is-active { background: var(--ui-surface) !important; color: var(--ui-primary) !important; box-shadow: var(--ui-shadow-sm) !important; }
body.orbis-app .chart-summary { padding: 0 0 12px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; }
body.orbis-app .chart-summary span { color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .chart-summary strong { display: block !important; margin-top: 2px !important; color: var(--ui-text) !important; font-size: 15px !important; }
body.orbis-app .sales-chart { min-height: 250px !important; }
body.orbis-app .priority-list { display: grid !important; gap: 4px !important; }
body.orbis-app .priority-list > a { min-height: 58px !important; padding: 8px !important; display: grid !important; grid-template-columns: 34px minmax(0, 1fr) auto auto !important; align-items: center !important; gap: 8px !important; border-radius: 9px !important; color: var(--ui-text-soft) !important; }
body.orbis-app .priority-list > a:hover { background: var(--ui-surface-hover) !important; }
body.orbis-app .priority-icon { width: 34px !important; height: 34px !important; display: grid !important; place-items: center !important; border-radius: 9px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app :where(.priority-icon--orange,.priority-icon--blue,.priority-icon--violet) { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .priority-icon--red { background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-app .priority-list b { color: var(--ui-text) !important; font-size: 12px !important; }
body.orbis-app .priority-list small { display: block !important; margin-top: 2px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
body.orbis-app .live-indicator { color: var(--ui-success) !important; }
body.orbis-app .live-indicator i { background: var(--ui-success) !important; }
body.orbis-app .product-image,
body.orbis-app .purchase-icon,
body.orbis-app .seller i { border-color: var(--ui-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .product-info > span,
body.orbis-app .usage > i { background: var(--ui-surface-strong) !important; }
body.orbis-app .product-info > span > i,
body.orbis-app .usage > i > em { background: var(--ui-primary) !important; }
body.orbis-app .plan-summary { border: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; }

/* --------------------------------------------------------------------------
   Module refresh / products / retail
   -------------------------------------------------------------------------- */
body.orbis-app .module-page { --module-gap: 14px !important; color: var(--ui-text) !important; }
body.orbis-app .module-page .module-tabs { padding: 3px !important; gap: 3px !important; border: 0 !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .module-page .module-tab { min-height: 32px !important; padding: 0 10px !important; border: 0 !important; border-radius: 7px !important; background: transparent !important; color: var(--ui-muted) !important; font-size: 12px !important; font-weight: 650 !important; }
body.orbis-app .module-page .module-tab.active,
body.orbis-app .module-page .module-tab:hover { background: var(--ui-surface) !important; color: var(--ui-primary) !important; box-shadow: var(--ui-shadow-sm) !important; }
body.orbis-app .module-page .module-row { padding: 11px 2px !important; }
body.orbis-app .module-page .module-row-icon { width: 36px !important; height: 36px !important; flex: 0 0 36px !important; border-radius: 9px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .module-page .module-note { padding: 11px 12px !important; border: 1px solid var(--ui-info-line) !important; border-radius: 9px !important; background: var(--ui-info-soft) !important; color: var(--ui-text-soft) !important; }
body.orbis-app .module-page .module-progress { background: var(--ui-surface-strong) !important; }
body.orbis-app .module-page .module-progress > i { background: var(--ui-primary) !important; }
body.orbis-app .module-page .module-image { border-color: var(--ui-line) !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .module-page .module-image-placeholder i { color: var(--ui-primary) !important; opacity: 1 !important; }
body.orbis-app .module-card-grid { gap: 12px !important; }
body.orbis-app .module-entity-card { padding: 16px !important; border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .module-entity-card footer { border-color: var(--ui-line) !important; }

body.orbis-app .retail-shell { width: 100% !important; color: var(--ui-text) !important; }
body.orbis-app .retail-nav,
body.orbis-app .retail-tabs { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .retail-nav a,
body.orbis-app .retail-tabs a { color: var(--ui-muted) !important; }
body.orbis-app .retail-nav a.active,
body.orbis-app .retail-tabs a.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .retail-record { padding: 11px 0 !important; }
body.orbis-app .retail-inline-form { gap: 8px !important; }
body.orbis-app .retail-form-divider { margin: 16px 0 !important; border-color: var(--ui-line) !important; }
body.orbis-app .retail-muted { color: var(--ui-muted) !important; }

/* Product catalog patterns */
body.orbis-app .product-catalog-bar { margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.orbis-app .product-scope-tabs,
body.orbis-app .product-view-switch { padding: 3px !important; border: 0 !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; box-shadow: none !important; }
body.orbis-app .product-scope-tab,
body.orbis-app .product-view-button { min-height: 32px !important; border: 0 !important; border-radius: 7px !important; background: transparent !important; color: var(--ui-muted) !important; }
body.orbis-app .product-scope-tab.active,
body.orbis-app .product-view-button.active { background: var(--ui-surface) !important; color: var(--ui-primary) !important; box-shadow: var(--ui-shadow-sm) !important; }
body.orbis-app .product-filter-panel { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: var(--ui-shadow) !important; }
body.orbis-app .product-kanban-shell { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .product-kanban-grid { background: var(--ui-bg) !important; }
body.orbis-app .odoo-product-card { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; transform: none !important; }
body.orbis-app .odoo-product-card:hover { border-color: var(--ui-line-strong) !important; background: var(--ui-surface) !important; box-shadow: var(--ui-shadow-sm) !important; transform: none !important; }
body.orbis-app .odoo-product-image { border-color: var(--ui-line) !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .product-image-placeholder { border-color: var(--ui-line-strong) !important; background: var(--ui-surface) !important; color: var(--ui-primary) !important; }
body.orbis-app .product-soft-tag { background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
body.orbis-app .product-soft-tag.accent { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-app .odoo-product-footer { border-color: var(--ui-line) !important; }

/* --------------------------------------------------------------------------
   Dialogs / popovers / alerts
   -------------------------------------------------------------------------- */
body.orbis-app :where(dialog,.modal-content,.modal-card,[class*="dialog"],[class*="popover"],[class*="dropdown-menu"]) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: var(--ui-shadow-float) !important; }
body.orbis-app dialog::backdrop { background: var(--ui-black) !important; }
body.orbis-app :where(.workspace-alert,.bo-alert,.alert,.notice,.callout,.workspace-callout) { border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-text-soft) !important; box-shadow: none !important; }
body.orbis-app :where(.workspace-alert--success,.alert-success,.success) { border-color: var(--ui-success-line) !important; background: var(--ui-success-soft) !important; color: var(--ui-success) !important; }
body.orbis-app :where(.workspace-alert--warning,.alert-warning,.warning) { border-color: var(--ui-warning-line) !important; background: var(--ui-warning-soft) !important; color: var(--ui-warning) !important; }
body.orbis-app :where(.workspace-alert--danger,.alert-danger,.danger) { border-color: var(--ui-danger-line) !important; background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }

/* --------------------------------------------------------------------------
   Dark-mode hardening for historical class names
   -------------------------------------------------------------------------- */
html.dark body.orbis-app:not(.pos-page) :where(.workspace-page,.bo-page,.sales-hub,.module-page,.retail-shell,.crm-detail,.main-container) { background-color: var(--ui-bg) !important; color: var(--ui-text) !important; }
html.dark body.orbis-app:not(.pos-page) :where(article,section,aside,div)[class*="card"],
html.dark body.orbis-app:not(.pos-page) :where(article,section,aside,div)[class*="panel"],
html.dark body.orbis-app:not(.pos-page) :where(article,section,aside,div)[class*="popover"],
html.dark body.orbis-app:not(.pos-page) :where(article,section,aside,div)[class*="dropdown"],
html.dark body.orbis-app:not(.pos-page) :where(article,section,aside,div)[class*="modal"] {
  border-color: var(--ui-line) !important;
  background-color: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
html.dark body.orbis-app:not(.pos-page) :where(.table-card,.workspace-table-wrap,.bo-table-wrap,.table-responsive,.table-wrap,[class*="table-container"]) { border-color: var(--ui-line) !important; background-color: var(--ui-surface) !important; }
html.dark body.orbis-app:not(.pos-page) :where(.search-box,.search-input,.filter-input,.filters-bar,.toolbar,.action-bar) { border-color: var(--ui-line) !important; background-color: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
html.dark body.orbis-app:not(.pos-page) :where(h1,h2,h3,h4,h5,h6,strong,b) { color: var(--ui-text); }
html.dark body.orbis-app:not(.pos-page) :where(p,small,.muted,.subtitle,.description) { color: var(--ui-muted); }

/* --------------------------------------------------------------------------
   Tablet mode
   -------------------------------------------------------------------------- */
.app-tablet-topbar,
.app-tablet-dock,
.tablet-section-backdrop,
.tablet-section-sheet { display: none; }

html.tablet-mode #app-sidebar,
html.tablet-mode .app-topbar,
html.tablet-mode .sidebar-mobile-trigger,
html.tablet-mode .sidebar-overlay { display: none !important; }
html.tablet-mode body.orbis-app:not(.pos-page) > main {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  padding: calc(64px + 20px) max(18px, env(safe-area-inset-right)) calc(72px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)) !important;
}
html.tablet-mode body.orbis-app:not(.pos-page) > main > :not(dialog) { max-width: none !important; }
html.tablet-mode .app-tablet-topbar {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 1000 !important;
  min-height: 64px !important;
  padding: 8px max(14px, env(safe-area-inset-right)) 8px max(14px, env(safe-area-inset-left)) !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
html.tablet-mode .app-tablet-home,
html.tablet-mode .app-tablet-search,
html.tablet-mode .app-tablet-exit { min-width: 42px !important; min-height: 42px !important; padding: 0 10px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-text-soft) !important; }
html.tablet-mode .app-tablet-brand { min-width: 0 !important; flex: 1 !important; display: flex !important; align-items: center !important; gap: 8px !important; }
html.tablet-mode .app-tablet-brandmark { width: 34px !important; height: 34px !important; display: grid !important; place-items: center !important; overflow: hidden !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; }
html.tablet-mode .app-tablet-brandmark img { width: 24px !important; height: 24px !important; object-fit: contain !important; }
html.tablet-mode .app-tablet-brand strong { display: block !important; color: var(--ui-text) !important; font-size: 13px !important; }
html.tablet-mode .app-tablet-brand small { display: block !important; margin-top: 1px !important; color: var(--ui-muted) !important; font-size: 11px !important; }
html.tablet-mode .app-tablet-profile { min-height: 42px !important; padding: 0 9px !important; display: flex !important; align-items: center !important; gap: 7px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-text) !important; }
html.tablet-mode .app-tablet-profile > span { width: 28px !important; height: 28px !important; display: grid !important; place-items: center !important; overflow: hidden !important; border-radius: 50% !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; font-size: 12px !important; font-weight: 700 !important; }
html.tablet-mode .app-tablet-profile strong { font-size: 12px !important; }
html.tablet-mode .app-tablet-dock {
  position: fixed !important;
  inset: auto 0 0 0 !important;
  z-index: 1000 !important;
  min-height: 64px !important;
  padding: 7px max(8px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)) !important;
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 4px !important;
  border: 0 !important;
  border-top: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
html.tablet-mode .app-tablet-dock :where(a,button) { min-height: 48px !important; padding: 4px 6px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 3px !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--ui-muted) !important; box-shadow: none !important; font-size: 11px !important; }
html.tablet-mode .app-tablet-dock :where(a,button).active { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
html.tablet-mode .tablet-section-backdrop.active { position: fixed !important; inset: 0 !important; z-index: 1090 !important; display: block !important; background: var(--ui-black) !important; }
html.tablet-mode .tablet-section-sheet.open { position: fixed !important; left: 12px !important; right: 12px !important; bottom: calc(72px + env(safe-area-inset-bottom)) !important; z-index: 1100 !important; max-height: 60dvh !important; padding: 12px !important; display: block !important; overflow: auto !important; border: 1px solid var(--ui-line) !important; border-radius: 14px !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: var(--ui-shadow-float) !important; }
html.tablet-mode .tablet-section-sheet-head { margin-bottom: 8px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; }
html.tablet-mode .tablet-section-sheet-head small { display: block !important; color: var(--ui-primary) !important; font-size: 11px !important; font-weight: 700 !important; }
html.tablet-mode .tablet-section-sheet-head strong { display: block !important; color: var(--ui-text) !important; font-size: 14px !important; }
html.tablet-mode .tablet-section-links { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
html.tablet-mode body.orbis-app :where(input,select,button,.workspace-btn) { min-height: 44px !important; }
html.tablet-mode body.orbis-app textarea { min-height: 96px !important; }

/* --------------------------------------------------------------------------
   Public / authentication
   -------------------------------------------------------------------------- */
body.orbis-public { min-height: 100dvh !important; background: var(--ui-bg) !important; color: var(--ui-text) !important; }
body.orbis-public :where(.auth-page,.public-page) { background: var(--ui-bg) !important; }
body.orbis-public :where(.auth-nav,.public-nav,.landing-nav) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-public :where(.split-layout,.auth-layout) { min-height: 100dvh !important; background: var(--ui-bg) !important; }
body.orbis-public :where(.side-visual,.visual-side) { background: var(--ui-text) !important; color: var(--ui-white) !important; }
body.orbis-public :where(.bg-glow,.orb,.glow) { display: none !important; }
body.orbis-public :where(.side-form,.form-side) { background: var(--ui-surface) !important; color: var(--ui-text) !important; }
body.orbis-public :where(.login-card,.register-card,.verify-card,.auth-card,.product-preview,.capability-card,.section-shell,.form-container) { border: 1px solid var(--ui-line) !important; border-radius: var(--ui-radius-lg) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-public :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { border-color: var(--ui-line-strong) !important; background: var(--ui-surface-soft) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-public :where(input:not([type="checkbox"]):not([type="radio"]),select) { min-height: 42px !important; border-radius: 9px !important; }
body.orbis-public :where(input,select,textarea):focus { border-color: var(--ui-primary) !important; outline: 2px solid var(--ui-primary) !important; outline-offset: 1px !important; box-shadow: none !important; }
body.orbis-public :where(.btn-login-main,.btn-nav-primary,.btn-hero-primary,button[type="submit"],.btn-primary) { min-height: 42px !important; border: 1px solid var(--ui-primary) !important; border-radius: 9px !important; background: var(--ui-primary) !important; color: var(--ui-white) !important; box-shadow: none !important; }
body.orbis-public :where(.btn-login-main,.btn-nav-primary,.btn-hero-primary,button[type="submit"],.btn-primary):hover { border-color: var(--ui-primary-hover) !important; background: var(--ui-primary-hover) !important; transform: none !important; }
body.orbis-public :where(.pill-badge,.tag,.badge) { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-public :where(.text-gradient,.accent-text) { background: none !important; color: var(--ui-primary) !important; -webkit-text-fill-color: currentColor !important; }
html.dark body.orbis-public :where(.login-card,.register-card,.verify-card,.auth-card,.product-preview,.capability-card,.section-shell,.form-container,.side-form,.form-side) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }

/* --------------------------------------------------------------------------
   Launchpad
   -------------------------------------------------------------------------- */
body.orbis-launchpad { min-height: 100dvh !important; background: var(--ui-bg) !important; color: var(--ui-text) !important; }
body.orbis-launchpad .tablet-shell { width: min(100% - 40px, 1320px) !important; margin: 0 auto !important; padding: 18px 0 96px !important; }
body.orbis-launchpad .tablet-topbar { min-height: 56px !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.orbis-launchpad :where(.tablet-brand,.tablet-profile-link,.tablet-desktop-link,.tablet-top-actions button) { color: var(--ui-text) !important; }
body.orbis-launchpad :where(.tablet-top-actions button,.tablet-desktop-link) { min-height: 40px !important; padding: 0 11px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-launchpad .tablet-hero { min-height: 160px !important; padding: 36px 0 24px !important; display: flex !important; align-items: flex-end !important; justify-content: space-between !important; gap: 20px !important; background: transparent !important; }
body.orbis-launchpad .tablet-kicker { color: var(--ui-primary) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .07em !important; }
body.orbis-launchpad .tablet-hero h1 { margin: 5px 0 6px !important; color: var(--ui-text) !important; font-size: clamp(28px, 4vw, 40px) !important; letter-spacing: -.035em !important; }
body.orbis-launchpad .tablet-hero p { margin: 0 !important; color: var(--ui-muted) !important; }
body.orbis-launchpad .tablet-search { width: min(390px, 100%) !important; min-height: 44px !important; padding: 0 12px !important; display: flex !important; align-items: center !important; gap: 8px !important; border: 1px solid var(--ui-line-strong) !important; border-radius: 9px !important; background: var(--ui-surface) !important; color: var(--ui-muted) !important; box-shadow: none !important; }
body.orbis-launchpad .tablet-search input { min-width: 0 !important; flex: 1 !important; border: 0 !important; outline: 0 !important; background: transparent !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-launchpad .tablet-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important; gap: 12px !important; }
body.orbis-launchpad .tablet-app { min-height: 104px !important; padding: 16px !important; display: flex !important; align-items: center !important; gap: 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; transform: none !important; }
body.orbis-launchpad .tablet-app:hover { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; transform: none !important; }
body.orbis-launchpad .tablet-app.featured { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; }
body.orbis-launchpad .tablet-app-icon { width: 44px !important; height: 44px !important; min-width: 44px !important; display: grid !important; place-items: center !important; border-radius: 11px !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-launchpad .tablet-app-copy strong { color: var(--ui-text) !important; }
body.orbis-launchpad .tablet-app-copy small { color: var(--ui-muted) !important; }
body.orbis-launchpad .tablet-launch-dock { position: fixed !important; left: 50% !important; bottom: max(12px, env(safe-area-inset-bottom)) !important; z-index: 1000 !important; width: min(calc(100% - 24px), 760px) !important; min-height: 62px !important; padding: 7px !important; display: grid !important; grid-template-columns: repeat(6, 1fr) !important; gap: 4px !important; border: 1px solid var(--ui-line) !important; border-radius: 14px !important; background: var(--ui-surface) !important; box-shadow: var(--ui-shadow) !important; transform: translateX(-50%) !important; }
body.orbis-launchpad .tablet-launch-dock button { min-height: 46px !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--ui-muted) !important; box-shadow: none !important; }
body.orbis-launchpad .tablet-launch-dock button.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }

/* --------------------------------------------------------------------------
   Superadmin / master
   -------------------------------------------------------------------------- */
body.orbis-master { min-height: 100dvh !important; background: var(--ui-bg) !important; color: var(--ui-text) !important; }
body.orbis-master :where(.master-topbar,.topbar) { width: 100% !important; min-height: 64px !important; padding: 0 24px !important; border: 0 !important; border-bottom: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-master :where(.master-shell,main.main-container,main) { width: min(100% - 40px,1320px) !important; max-width: 1320px !important; margin: 0 auto !important; padding: 32px 0 48px !important; background: transparent !important; color: var(--ui-text) !important; }
body.orbis-master :where(.master-heading,.section-header) { margin: 0 0 24px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body.orbis-master :where(.master-panel,.master-company-card,.payment-card,.stat-card,.card) { border: 1px solid var(--ui-line) !important; border-radius: 12px !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-master :where(.master-kpis,.master-overview-grid,.master-company-grid,.stats-grid,.payments-grid) { gap: 12px !important; }
body.orbis-master :where(.master-btn,.btn,.master-icon-action,button[type="submit"]):not(.danger) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text-soft) !important; box-shadow: none !important; }
body.orbis-master :where(.master-btn:not(.secondary),button.primary,.btn-primary) { border-color: var(--ui-primary) !important; background: var(--ui-primary) !important; color: var(--ui-white) !important; }
body.orbis-master :where(input,select,textarea) { border-color: var(--ui-line-strong) !important; background: var(--ui-surface-soft) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.orbis-master :where(table,th,td) { border-color: var(--ui-line) !important; }
body.orbis-master th { background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
body.orbis-master td { background: var(--ui-surface) !important; color: var(--ui-text-soft) !important; }

/* --------------------------------------------------------------------------
   Scanner and special authenticated screens
   -------------------------------------------------------------------------- */
body.scanner-mode-page { background: var(--ui-bg) !important; color: var(--ui-text) !important; }
body.scanner-mode-page :where(.scanner-shell,.scanner-panel,.scan-panel,.validation-panel,.scanner-card) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
body.scanner-mode-page :where(.scanner-action,.scan-action,.btn-primary) { background: var(--ui-primary) !important; border-color: var(--ui-primary) !important; color: var(--ui-white) !important; }

/* --------------------------------------------------------------------------
   Print profiles
   -------------------------------------------------------------------------- */
body.orbis-print { margin: 0 !important; background: #ffffff !important; color: #20242a !important; font-family: Arial, Helvetica, sans-serif !important; }
body.orbis-print :where(.document,.invoice,.receipt,.print-page,.print-sheet) { background: #ffffff !important; color: #20242a !important; box-shadow: none !important; }
body.orbis-print :where(table,th,td) { border-color: #d7dbe1 !important; color: #20242a !important; }
body.orbis-print th { background: #f5f6f8 !important; }
body.orbis-print :where(.no-print,.app-topbar,#app-sidebar,.app-tablet-topbar,.app-tablet-dock) { display: none !important; }

/* POS keeps the canonical sidebar; create_sales.css owns the terminal canvas/topbar. */
body.pos-page { background: var(--pos-bg, var(--ui-bg)) !important; }
body.pos-page .app-topbar,
body.pos-page .app-tablet-topbar,
body.pos-page .app-tablet-dock { display: none !important; }

/* --------------------------------------------------------------------------
   Responsive application
   -------------------------------------------------------------------------- */
@media (max-width: 1280px) {
  body.orbis-app :where(.workspace-grid,.metric-grid,.stats-grid,.kpi-grid,.bo-kpis) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.orbis-app .quick-actions { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  body.orbis-app .secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.orbis-app .crm-v3 .crm-v3-stats { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  body.orbis-app .crm-v3 .crm-v3-shell { --crm-side: 260px; }
}

@media (max-width: 1024px) {
  body.orbis-app:not(.pos-page) > main { margin-left: 0 !important; padding: calc(var(--ui-topbar) + 24px) 18px 36px !important; }
  html.sidebar-collapsed body.orbis-app:not(.pos-page) > main { margin-left: 0 !important; }
  #app-sidebar.sidebar { width: min(var(--ui-sidebar), 88vw) !important; transform: translateX(-105%) !important; box-shadow: var(--ui-shadow-float) !important; }
  #app-sidebar.sidebar.mobile-open { transform: translateX(0) !important; }
  html.sidebar-collapsed #app-sidebar.sidebar { width: min(var(--ui-sidebar), 88vw) !important; }
  html.sidebar-collapsed #app-sidebar .hide-collapsed,
  html.sidebar-collapsed #app-sidebar .section-title { display: initial !important; }
  html.sidebar-collapsed #app-sidebar .nav-label { display: block !important; }
  html.sidebar-collapsed #app-sidebar .nav-item { justify-content: flex-start !important; padding: 0 8px !important; }
  html.sidebar-collapsed #app-sidebar .nav-icon { width: 25px !important; height: 25px !important; }
  #app-sidebar .collapse-btn { display: none !important; }
  .sidebar-mobile-trigger { position: fixed !important; left: 12px !important; top: 12px !important; z-index: 1100 !important; width: 40px !important; height: 40px !important; padding: 0 !important; display: grid !important; place-items: center !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
  .sidebar-overlay.active { position: fixed !important; inset: 0 !important; z-index: 950 !important; display: block !important; background: var(--ui-black) !important; }
  .app-topbar { left: 0 !important; padding: 0 14px 0 64px !important; }
  html.sidebar-collapsed .app-topbar { left: 0 !important; }
  .app-topbar__context > span:last-child { display: none !important; }
  body.orbis-app .workspace-columns,
  body.orbis-app .workspace-columns.equal,
  body.orbis-app .overview-grid,
  body.orbis-app .activity-grid,
  body.orbis-app .secondary-grid { grid-template-columns: 1fr !important; }
  body.orbis-app .quick-panel { grid-template-columns: 1fr !important; }
  body.orbis-app .crm-v3 .crm-v3-shell { display: block !important; min-height: 580px !important; overflow: visible !important; border: 0 !important; background: transparent !important; }
  body.orbis-app .crm-v3 .crm-directory { position: fixed !important; z-index: 1200 !important; inset: 0 auto 0 0 !important; width: min(340px, 90vw) !important; padding-top: 18px !important; border-right: 1px solid var(--ui-line) !important; box-shadow: var(--ui-shadow-float) !important; transform: translateX(-105%) !important; transition: transform .2s ease !important; }
  body.orbis-app .crm-v3.clients-open .crm-directory { transform: translateX(0) !important; }
  body.orbis-app .crm-v3 .crm-directory > header button { width: 34px !important; height: 34px !important; padding: 0 !important; display: grid !important; place-items: center !important; border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
  body.orbis-app .crm-mobile-directory { display: inline-flex !important; }
  body.orbis-app .crm-v3 .crm-detail { border: 1px solid var(--ui-line) !important; border-radius: 14px !important; overflow: hidden !important; }
  body.orbis-app .crm-v3 .crm-detail-back { display: grid !important; place-items: center !important; width: 36px !important; height: 36px !important; padding: 0 !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
  body.orbis-app .crm-v3 .crm-client-hero { grid-template-columns: 36px 48px minmax(0, 1fr) !important; }
  body.orbis-app .crm-v3 .crm-client-hero > .workspace-btn { grid-column: 2 / -1 !important; justify-self: start !important; }
}

@media (max-width: 760px) {
  body.orbis-app:not(.pos-page) > main { padding-left: 14px !important; padding-right: 14px !important; padding-bottom: 28px !important; }
  body.orbis-app:not(.pos-page) > main :where(.workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,.purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,.kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,.data-hero,.master-heading,.section-header) { align-items: flex-start !important; flex-direction: column !important; margin-bottom: 20px !important; gap: 12px !important; }
  body.orbis-app:not(.pos-page) > main :where(.workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,.purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,.kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,.data-hero,.master-heading,.section-header) :where(h1,h2) { font-size: 27px !important; }
  body.orbis-app .workspace-form,
  body.orbis-app .workspace-form.compact,
  body.orbis-app :where(.bo-form-grid,.modern-form,.retail-form) { grid-template-columns: 1fr !important; }
  body.orbis-app :where(.workspace-grid,.metric-grid,.stats-grid,.kpi-grid,.bo-kpis) { grid-template-columns: 1fr !important; }
  body.orbis-app .quick-actions { display: flex !important; overflow-x: auto !important; }
  body.orbis-app .quick-actions a { min-width: 150px !important; }
  body.orbis-app .crm-v3 .crm-v3-stats,
  body.orbis-app .crm-v3 .crm-client-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.orbis-app .crm-v3 .crm-v3-columns { grid-template-columns: 1fr !important; }
  body.orbis-app .crm-v3 .crm-client-heading { align-items: flex-start !important; flex-direction: column !important; }
  body.orbis-app .crm-v3 .crm-client-heading p { flex-wrap: wrap !important; }
  body.orbis-app .crm-v3 .crm-pipeline { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.orbis-launchpad .tablet-shell { width: min(100% - 24px, 1320px) !important; }
  body.orbis-launchpad .tablet-hero { align-items: stretch !important; flex-direction: column !important; padding-top: 24px !important; }
  body.orbis-launchpad .tablet-search { width: 100% !important; }
  body.orbis-launchpad .tablet-grid { grid-template-columns: 1fr !important; }
  body.orbis-master :where(.master-shell,main.main-container,main) { width: min(100% - 28px, 1320px) !important; padding-top: 24px !important; }
}

@media (max-width: 520px) {
  .app-topbar__button--search span,
  .app-topbar__button--search kbd,
  .app-topbar__profile strong,
  .app-topbar__profile > i { display: none !important; }
  .app-topbar__button,
  .app-topbar__profile { padding: 0 8px !important; }
  body.orbis-app .crm-v3 .crm-v3-stats,
  body.orbis-app .crm-v3 .crm-client-kpis { grid-template-columns: 1fr !important; }
  body.orbis-app .crm-v3 .crm-client-view { padding: 9px !important; }
  body.orbis-app .crm-v3 .crm-client-hero { grid-template-columns: 34px 44px minmax(0, 1fr) !important; padding: 11px !important; }
  body.orbis-app .crm-v3 .crm-avatar-lg { width: 44px !important; height: 44px !important; }
  body.orbis-app .crm-v3 .crm-dialog-grid { grid-template-columns: 1fr !important; }
  html.tablet-mode .app-tablet-profile strong,
  html.tablet-mode .app-tablet-search span { display: none !important; }
}

/* ========================================================================== 
   POLISHED CALIBRATION · 2026-08-29
   Final rhythm/legibility pass. Intentionally last inside the authority file.
   ========================================================================== */
body.orbis-app:not(.pos-page) > main {
  padding-top: calc(var(--ui-topbar) + 28px) !important;
}

/* Navigation: compact, but never cramped. */
#app-sidebar .brand-name { font-size: 14px !important; }
#app-sidebar .brand-meta { font-size: 11px !important; }
#app-sidebar .sidebar-search input { font-size: 12.5px !important; }
#app-sidebar .sidebar-search kbd { font-size: 11px !important; }
#app-sidebar .section-title,
#app-sidebar .nav-section-toggle { min-height: 30px !important; font-size: 11px !important; }
#app-sidebar .nav-item { min-height: 42px !important; font-size: 13px !important; }
#app-sidebar .nav-icon { width: 27px !important; height: 27px !important; min-width: 27px !important; font-size: 15px !important; }
#app-sidebar .sidebar-footer .nav-item { min-height: 40px !important; }

.app-topbar__context,
.app-topbar__context strong { font-size: 13px !important; }
.app-topbar__button,
.app-topbar__profile { font-size: 12.5px !important; }
.app-topbar__button kbd { font-size: 11px !important; }
.app-topbar__avatar { font-size: 11px !important; }

/* Page hierarchy. */
body.orbis-app:not(.pos-page) > main :where(.workspace-eyebrow,.bo-eyebrow,.eyebrow,.hub-eyebrow,.section-kicker,.card-kicker,.setup-kicker,.retail-eyebrow,.master-eyebrow) {
  margin-bottom: 7px !important;
  font-size: 11px !important;
  letter-spacing: .065em !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,.purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,.kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,.data-hero,.master-heading,.section-header) p {
  margin-top: 8px !important;
  font-size: 13.5px !important;
}
body.orbis-app:not(.pos-page) > main :where(.workspace-back,.ops-back,.back-link,.reports-back) { font-size: 12.5px !important; }

/* Cards and KPI blocks share one calm density. */
body.orbis-app :where(.workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.stats-card,.toolbar-card,.search-card,.form-container,.form-container-left,.filter-panel,.filters-panel,.control-panel,.configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,.capability-card,.hub-card,.workspace-panel,.info-box,.activity-panel,.product-panel) {
  padding: 20px !important;
}
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) { margin-bottom: 18px !important; }
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) :where(h2,h3) { font-size: 16px !important; }
body.orbis-app :where(.workspace-card-head,.bo-card-head,.card-header,.panel-heading,.module-card-head,.retail-card-head) p { font-size: 12.5px !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) { min-height: 112px !important; padding: 16px 18px !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) > :where(span,.metric-card__top) { font-size: 11px !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) > small { font-size: 11.5px !important; }
body.orbis-app :where(.workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi) footer { font-size: 11.5px !important; }

/* Controls. */
body.orbis-app :where(.workspace-btn,.primary-action,.btn-primary,.master-btn,.export-report,.btn-nav-primary,.btn-hero-primary,button.primary,a.primary) { font-size: 12.5px !important; }
body.orbis-app :where(.workspace-field,.workspace-form label,.modern-form label,.bo-form-grid label,.retail-form label,.field-group,.form-group) { font-size: 12px !important; }
body.orbis-app :where(input:not([type="checkbox"]):not([type="radio"]),select) { font-size: 13px !important; }
body.orbis-app textarea { font-size: 13px !important; }
body.orbis-app :where(.workspace-help,.help-text,.form-help,.field-help) { font-size: 11.5px !important; }

/* Tables and state labels. */
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) th { padding: 12px 14px !important; font-size: 11px !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) td { padding: 13px 14px !important; font-size: 13px !important; }
body.orbis-app :where(.workspace-tag,.workspace-badge,.module-chip,.retail-chip,.retail-pill,.status,.bo-status,.pill-badge,.badge,.status-pill) { min-height: 25px !important; font-size: 11px !important; }
body.orbis-app :where(.workspace-empty,.bo-empty,.module-empty,.empty-state) p { font-size: 12.5px !important; }

/* Generic list anatomy used by warehouse, governance and workspace modules. */
body.orbis-app .module-list,
body.orbis-app .workspace-mini-list,
body.orbis-app .retail-list-scroll { display: grid !important; gap: 0 !important; }
body.orbis-app .module-row-main { min-width: 0 !important; display: flex !important; align-items: center !important; gap: 11px !important; }
body.orbis-app .module-row-copy { min-width: 0 !important; display: grid !important; gap: 3px !important; }
body.orbis-app .module-row-copy strong { color: var(--ui-text) !important; font-size: 13px !important; }
body.orbis-app .module-row-copy small { color: var(--ui-muted) !important; font-size: 11.5px !important; }
body.orbis-app .module-stock { color: var(--ui-text) !important; font-size: 12.5px !important; }
body.orbis-app .module-row-actions { display: flex !important; align-items: center !important; gap: 6px !important; }
body.orbis-app .module-path.depth-0 { padding-left: 2px !important; }
body.orbis-app .module-path.depth-1 { padding-left: 18px !important; }
body.orbis-app .module-path.depth-2 { padding-left: 34px !important; }
body.orbis-app .module-path.depth-3 { padding-left: 50px !important; }
body.orbis-app .module-path.depth-4 { padding-left: 66px !important; }
body.orbis-app .module-path.depth-5 { padding-left: 82px !important; }
body.orbis-app .module-path.depth-6 { padding-left: 98px !important; }
body.orbis-app .module-path.depth-7 { padding-left: 114px !important; }
body.orbis-app .module-path.depth-8 { padding-left: 130px !important; }

/* Native progress replaces runtime inline width styles. */
.ui-progress {
  width: 100%;
  height: 7px;
  display: block;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: var(--ui-surface-strong);
  color: var(--ui-primary);
  appearance: none;
}
.ui-progress::-webkit-progress-bar { background: var(--ui-surface-strong); border-radius: 999px; }
.ui-progress::-webkit-progress-value { background: currentColor; border-radius: 999px; }
.ui-progress::-moz-progress-bar { background: currentColor; border-radius: 999px; }
.ui-progress.success { color: var(--ui-success); }
.ui-progress.warning { color: var(--ui-warning); }
.ui-progress.danger { color: var(--ui-danger); }
.ui-positive { color: var(--ui-success) !important; }
.ui-negative { color: var(--ui-danger) !important; }
.ui-service-state { font-size: 16px !important; }

/* CRM: one hierarchy, fewer nested outlines, no mixed accents. */
body.orbis-app .crm-v3 .crm-v3-stats article { min-height: 96px !important; padding: 15px 16px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > span { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > strong { font-size: 23px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > small { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-directory { padding: 18px !important; }
body.orbis-app .crm-v3 .crm-directory > header span,
body.orbis-app .crm-v3 .crm-card-head span { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-directory > header h2 { font-size: 17px !important; }
body.orbis-app .crm-v3 .crm-directory > header p { font-size: 11.5px !important; }
body.orbis-app .crm-v3 .crm-directory-search input { font-size: 13px !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button { min-height: 34px !important; font-size: 11.5px !important; }
body.orbis-app .crm-v3 .crm-client-item { padding: 10px !important; }
body.orbis-app .crm-v3 .crm-client-copy strong { font-size: 12.5px !important; }
body.orbis-app .crm-v3 .crm-client-copy small { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-stage-badge { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-client-kpis article { border: 0 !important; background: var(--ui-surface-soft) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-v3-card { border-color: var(--ui-line) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-card-head h3 { font-size: 15px !important; }
body.orbis-app .crm-v3 .crm-card-head p { font-size: 11.5px !important; }
body.orbis-app .crm-v3 .crm-pipeline button strong { font-size: 11px !important; }
body.orbis-app .crm-v3 .crm-composer textarea { font-size: 13px !important; }

/* Dark theme: avoid white flashes and inherited light fills in every legacy module. */
html.dark body.orbis-app:not(.pos-page) :where(.workspace-page,.bo-page,.clients-page,.stock-page,.suppliers-page,.purchases-page,.sales-page,.staff-page,.reports-page,.history-page,.monthly-page,.kardex-page,.company-settings-page,.ops-page,.data-center-page,.purchase-setup-page) {
  background: var(--ui-bg) !important;
  color: var(--ui-text) !important;
}
html.dark body.orbis-app:not(.pos-page) :where(input,select,textarea,option) {
  background-color: var(--ui-surface-soft) !important;
  color: var(--ui-text) !important;
  border-color: var(--ui-line-strong) !important;
}
html.dark body.orbis-app:not(.pos-page) :where(input,textarea)::placeholder { color: var(--ui-faint) !important; }
html.dark body.orbis-app:not(.pos-page) :where(.workspace-btn.secondary,.btn-secondary,.secondary-action,a.secondary,button.secondary) {
  background: var(--ui-surface) !important;
  border-color: var(--ui-line-strong) !important;
  color: var(--ui-text-soft) !important;
}

@media (max-width: 760px) {
  body.orbis-app:not(.pos-page) > main { padding-top: calc(var(--ui-topbar) + 20px) !important; }
  body.orbis-app :where(.workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.stats-card,.toolbar-card,.search-card,.form-container,.form-container-left,.filter-panel,.filters-panel,.control-panel,.configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,.capability-card,.hub-card,.workspace-panel,.info-box,.activity-panel,.product-panel) { padding: 16px !important; }
}

/* --------------------------------------------------------------------------
   Public/error surfaces · same palette, no one-off theme islands
   -------------------------------------------------------------------------- */
body.orbis-public {
  min-height: 100dvh;
  background: var(--ui-bg) !important;
  color: var(--ui-text) !important;
}
body.orbis-public .bg-glow { display: none !important; }
body.orbis-public .reset-container,
body.orbis-public .denied,
body.orbis-public .lock-card {
  width: min(100% - 32px, 500px) !important;
  margin: 0 auto !important;
  padding: 32px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 16px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: var(--ui-shadow) !important;
  backdrop-filter: none !important;
}
body.orbis-public .reset-container { max-width: 440px !important; text-align: center !important; }
body.orbis-public .reset-container .logo-area,
body.orbis-public .lock-icon,
body.orbis-public .denied .icon {
  width: 54px !important;
  height: 54px !important;
  margin: 0 auto 18px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--ui-primary-line) !important;
  border-radius: 14px !important;
  background: var(--ui-primary-soft) !important;
  color: var(--ui-primary) !important;
  font-size: 23px !important;
  animation: none !important;
}
body.orbis-public :where(.reset-container,.lock-card,.denied) h1 {
  margin: 0 0 8px !important;
  color: var(--ui-text) !important;
  font-size: 25px !important;
  font-weight: 750 !important;
  letter-spacing: -.03em !important;
}
body.orbis-public :where(.reset-container,.lock-card,.denied) > p,
body.orbis-public .reset-container p {
  margin: 0 0 24px !important;
  color: var(--ui-muted) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}
body.orbis-public .reset-container .form-group { margin-bottom: 16px !important; text-align: left !important; }
body.orbis-public .reset-container label,
body.orbis-public .file-input-wrapper label {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--ui-text-soft) !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.orbis-public .reset-container .input-wrapper { position: relative !important; }
body.orbis-public .reset-container .input-wrapper i { position: absolute !important; left: 13px !important; top: 50% !important; transform: translateY(-50%) !important; color: var(--ui-muted) !important; }
body.orbis-public .reset-container input {
  width: 100% !important;
  min-height: 44px !important;
  padding: 0 13px 0 40px !important;
  border: 1px solid var(--ui-line-strong) !important;
  border-radius: 10px !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-public .reset-container input:focus { border-color: var(--ui-primary) !important; outline: 2px solid var(--ui-primary) !important; outline-offset: 1px !important; }
body.orbis-public .btn-submit,
body.orbis-public .btn-pay,
body.orbis-public .denied .actions a:first-child {
  min-height: 44px !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 1px solid var(--ui-primary) !important;
  border-radius: 10px !important;
  background: var(--ui-primary) !important;
  color: var(--ui-white) !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transform: none !important;
}
body.orbis-public .btn-submit,
body.orbis-public .btn-pay { width: 100% !important; }
body.orbis-public .footer-link { display: inline-flex !important; margin-top: 18px !important; align-items: center !important; gap: 6px !important; color: var(--ui-muted) !important; font-size: 12px !important; }
body.orbis-public .footer-link:hover { color: var(--ui-primary) !important; }

body.orbis-public .lock-screen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  padding: 24px !important;
  display: grid !important;
  place-items: center !important;
  overflow: auto !important;
  background: var(--ui-bg) !important;
  backdrop-filter: none !important;
}
body.orbis-public .lock-card { max-width: 520px !important; text-align: center !important; }
body.orbis-public .upload-section {
  margin: 0 0 16px !important;
  padding: 16px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 12px !important;
  background: var(--ui-surface-soft) !important;
}
body.orbis-public .bank-details {
  margin: 0 0 16px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--ui-info-line) !important;
  border-radius: 10px !important;
  background: var(--ui-info-soft) !important;
  color: var(--ui-info) !important;
  text-align: left !important;
}
body.orbis-public .theme-float { position: fixed !important; top: 16px !important; right: 16px !important; z-index: 100000 !important; }
body.orbis-public .denied { text-align: center !important; }
body.orbis-public .denied .icon { border-color: var(--ui-danger-line) !important; background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-public .denied .actions { margin-top: 22px !important; display: flex !important; justify-content: center !important; gap: 8px !important; flex-wrap: wrap !important; }
body.orbis-public .denied .actions button,
body.orbis-public .denied .actions a:last-child {
  min-height: 44px !important;
  padding: 0 16px !important;
  border: 1px solid var(--ui-line-strong) !important;
  border-radius: 10px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text-soft) !important;
  font-weight: 650 !important;
}

body.orbis-app .request-error-page {
  min-height: calc(100dvh - var(--ui-topbar) - 56px) !important;
  display: grid !important;
  place-items: center !important;
}
body.orbis-app .request-error-card {
  width: min(680px, 100%) !important;
  overflow: hidden !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 16px !important;
  background: var(--ui-surface) !important;
  box-shadow: var(--ui-shadow) !important;
}
body.orbis-app .request-error-head { padding: 24px 24px 16px !important; display: flex !important; align-items: flex-start !important; gap: 14px !important; }
body.orbis-app .request-error-icon { width: 48px !important; height: 48px !important; flex: 0 0 48px !important; display: grid !important; place-items: center !important; border-radius: 12px !important; background: var(--ui-warning-soft) !important; color: var(--ui-warning) !important; font-size: 21px !important; }
body.orbis-app .request-error-head small { display: block !important; margin-bottom: 5px !important; color: var(--ui-muted) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .06em !important; text-transform: uppercase !important; }
body.orbis-app .request-error-head h1 { margin: 0 !important; color: var(--ui-text) !important; font-size: clamp(23px,3vw,30px) !important; line-height: 1.18 !important; }
body.orbis-app .request-error-body { padding: 0 24px 24px !important; }
body.orbis-app .request-error-explanation { padding: 14px 16px !important; border: 0 !important; border-radius: 10px !important; background: var(--ui-surface-soft) !important; color: var(--ui-text-soft) !important; font-size: 13px !important; line-height: 1.6 !important; }
body.orbis-app .request-error-next { margin: 16px 0 0 !important; padding-left: 20px !important; color: var(--ui-muted) !important; line-height: 1.65 !important; }
body.orbis-app .request-error-reference { margin-top: 18px !important; padding-top: 18px !important; display: flex !important; gap: 8px !important; border-top: 1px solid var(--ui-line) !important; color: var(--ui-muted) !important; font-size: 12px !important; }
body.orbis-app .request-error-reference code { color: var(--ui-text) !important; overflow-wrap: anywhere !important; }
body.orbis-app .request-error-actions { padding: 16px 24px !important; display: flex !important; gap: 8px !important; flex-wrap: wrap !important; border-top: 1px solid var(--ui-line) !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .request-error-actions a { min-height: 42px !important; padding: 0 14px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 7px !important; border-radius: 9px !important; font-weight: 650 !important; }
body.orbis-app .request-error-actions .primary { background: var(--ui-primary) !important; color: var(--ui-white) !important; }
body.orbis-app .request-error-actions .secondary { border: 1px solid var(--ui-line-strong) !important; background: var(--ui-surface) !important; color: var(--ui-text-soft) !important; }


/* ==========================================================================
   Migrated one-off template declarations
   --------------------------------------------------------------------------
   These selectors replace historical inline style attributes and are bundled
   into the canonical sheet so public, print, superadmin and app profiles all
   receive the same layout rules.
   ========================================================================== */
/* Legacy inline declarations normalized into reusable selectors. */
[data-ui-style="u00d6855ed7"]{color: var(--primary);}
[data-ui-style="u01ef7fc99e"]{display:flex;gap:8px;align-items:center;}
[data-ui-style="u0226015834"]{font-weight: 600;text-align: right;}
[data-ui-style="u0489936da1"]{border-bottom: 2px solid var(--border);}
[data-ui-style="u068a8ddc17"]{grid-column:1/-1;}
[data-ui-style="u06964290dd"]{margin-right:16px;text-decoration: none;color:var(--ui-primary);font-size: 13px;font-weight: 600;display: flex;align-items: center;gap:4px;}
[data-ui-style="u08048dcab2"]{display: flex;gap: 12px;justify-content: center;align-items: center;}
[data-ui-style="u0b68039d49"]{padding:8px;text-align:left;border-bottom:1px solid var(--ui-line);}
[data-ui-style="u0ef737aec7"]{margin-bottom: 1.2rem;}
[data-ui-style="u1169661891"]{margin:0;}
[data-ui-style="u190f09cce1"]{text-decoration: none;}
[data-ui-style="u1b0f4999d2"]{margin-top:16px;}
[data-ui-style="u1beb96fc03"]{display: flex;gap:8px;justify-content: flex-end;}
[data-ui-style="u21a1be8a0d"]{font-weight: 600;}
[data-ui-style="u25e87f15be"]{margin:0;max-width:none;}
[data-ui-style="u2a1b75c911"]{display:block;}
[data-ui-style="u30489cbd39"]{text-align: right;}
[data-ui-style="u304f1ffc5b"]{width:auto;padding:0 12px;}
[data-ui-style="u31a824a217"]{display:flex;gap:4px;}
[data-ui-style="u34843c0f53"]{font-size:12px;text-decoration: none;color:var(--ui-primary);}
[data-ui-style="u359cd90a99"]{font-size: 0.8rem;color: var(--primary);font-weight: 700;margin-top:4px;}
[data-ui-style="u36764d1e63"]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
[data-ui-style="u3d59ac907b"]{text-transform: uppercase;}
[data-ui-style="u3efc9879ca"]{display:flex;gap:8px;}
[data-ui-style="u40fd18dc3e"]{background:var(--ui-primary);color: white;}
[data-ui-style="u455f8cca6d"]{justify-content:flex-end;}
[data-ui-style="u48d55344ef"]{font-size: 5rem;color: var(--primary);}
[data-ui-style="u497726e8c9"]{color:var(--danger);}
[data-ui-style="u4ff818ffe1"]{font-size:18px;}
[data-ui-style="u5187b6fd7a"]{width: 120px;}
[data-ui-style="u56f4356299"]{margin-top:12px;}
[data-ui-style="u5790ffba29"]{display: none;}
[data-ui-style="u580bab9086"]{border-color:var(--ui-danger-soft);margin: 2rem 0;}
[data-ui-style="u581be415aa"]{width:90px;}
[data-ui-style="u5aecb40b3b"]{font-size:0.75rem;}
[data-ui-style="u5db75d4d4e"]{font-weight: 700;}
[data-ui-style="u65486e3041"]{font-size:3rem;color:var(--ui-text-soft);margin-bottom:1rem;}
[data-ui-style="u65f9d5a3d9"]{text-align: center;}
[data-ui-style="u682380449d"]{display: flex;justify-content: space-between;align-items: center;}
[data-ui-style="u6e9d939252"]{display: none;flex-direction: column;}
[data-ui-style="u75f628dd39"]{width: 100%;justify-content: center;background:var(--ui-primary);}
[data-ui-style="u817e5e75e5"]{display: flex;align-items: center;gap:8px;}
[data-ui-style="u81ba403d32"]{color: var(--primary);font-weight: 600;}
[data-ui-style="u85b23f73de"]{color:var(--ui-text-soft);margin-bottom: 8px;display: block;font-size: 13px;}
[data-ui-style="u85f64ba91c"]{padding:20px 16px 12px;}
[data-ui-style="u86de7ac63a"]{margin-top:16px;}
[data-ui-style="u8a77e5a311"]{margin-top:8px;}
[data-ui-style="u8e90ad6948"]{font-size: clamp(1.8rem, 4vw, 2.4rem);font-weight: 800;margin-top:4px;margin-bottom: 0;}
[data-ui-style="u8f100511ce"]{color: var(--primary);font-weight: 700;}
[data-ui-style="u91bd1385fd"]{background:var(--ui-success-soft);}
[data-ui-style="u92cb2572de"]{margin-bottom: 1.5rem;}
[data-ui-style="u93f9602e08"]{width: 100%;background: var(--bg-input);color: var(--text-main);border: 1px solid var(--border);border-radius: 8px;padding:8px;cursor: pointer;font-size: 14px;}
[data-ui-style="u97445a8d93"]{flex:1;}
[data-ui-style="ua4c0376226"]{font-size:22px;color:var(--success);}
[data-ui-style="ua55f31db10"]{width:100%;border-collapse:collapse;}
[data-ui-style="ua632715a5f"]{overflow:auto;}
[data-ui-style="ua76d597a07"]{display:flex;gap:8px;}
[data-ui-style="uab390de5a8"]{text-align: right;padding:16px;font-size: 0.75rem;color: var(--text-muted);}
[data-ui-style="uac6ea07e92"]{flex:0 0 auto;}
[data-ui-style="uae56637dc0"]{color: var(--primary);font-size: 1.1rem;}
[data-ui-style="uaf4f9e6a3e"]{color: var(--text-muted);font-size: 1.2rem;}
[data-ui-style="ub05317f99f"]{margin-top:12px;}
[data-ui-style="ub3f627f043"]{font-weight:900;}
[data-ui-style="ub5c2c238ee"]{background:var(--bg-card);color:var(--text-main);border:1px solid var(--border);}
[data-ui-style="ub6f3ebb6c4"]{width: 32px;height: 32px;font-size: 0.8rem;font-weight: 800;}
[data-ui-style="uc0e2fdc5c6"]{margin-top:16px;}
[data-ui-style="ucb892a550e"]{flex:1;border:1px solid var(--ui-primary-line);border-radius:10px;padding:8px;}
[data-ui-style="ucc0244d793"]{text-align: left;padding:16px;font-size: 0.75rem;color: var(--text-muted);}
[data-ui-style="ucc18f56116"]{color: var(--text-muted);font-weight: 600;}
[data-ui-style="ud2c171b18b"]{margin-top:8px;}
[data-ui-style="ud6a2da96e2"]{font-weight: 700;color:var(--ui-primary);}
[data-ui-style="ud6f2af6e0a"]{margin-top:12px;}
[data-ui-style="uda190a81de"]{width: 100px;}
[data-ui-style="udbc9178f5b"]{color: white;margin-bottom: 1rem;font-size: 16px;}
[data-ui-style="ue0c78815ae"]{color: var(--text-muted);font-size: 0.85rem;font-weight: 600;}
[data-ui-style="ue212d2cf0d"]{font-size: 0.75rem;color: var(--text-muted);}
[data-ui-style="ue4f0c15ce8"]{font-family: "monospace";font-weight: 700;color: var(--primary);}
[data-ui-style="ue9c7d74e87"]{margin-top: 20px;font-weight: 900;}
[data-ui-style="ue9d97296aa"]{padding:8px;border-bottom:1px solid var(--ui-line);}
[data-ui-style="uea00a203bc"]{display:block;font-size:0.75rem;color:var(--text-muted);font-weight:800;}
[data-ui-style="uef0b7a1148"]{margin-bottom:0;}
[data-ui-style="uf098f67d42"]{color: var(--primary);font-size: 1.2rem;}
[data-ui-style="uf4e719ae06"]{margin:8px 0;}
[data-ui-style="uf773a09887"]{text-align: center;flex: 1;}
[data-ui-style="ufeedf3bfaa"]{color: white;margin-bottom: 1.5rem;font-size: 18px;}
.integrity-count{font-size:26px}
.integrity-count.is-ok{color:var(--success)}
.integrity-count.has-issues{color:var(--danger)}
.closing-diff-value{font-weight:800}
.closing-diff-value.is-negative,.card-value.is-negative{color:var(--danger)}
.closing-diff-value.is-positive{color:var(--warning)}
.closing-diff-value.is-balanced,.card-value.is-balanced{color:var(--success)}

/* Refined pass: remaining static inline declarations migrated from templates. */
[data-ui-style="r952c843f21"]{font-size:12px; font-weight: 800; color: var(--primary); letter-spacing: 1.5px; margin-bottom:8px;}
[data-ui-style="rba30f188c7"]{display: flex; flex-direction: column;}
[data-ui-style="rf112760ebc"]{font-size: 15px;}
[data-ui-style="rafd2d7152f"]{color: var(--text-muted); font-size:12px; font-family: monospace;}
[data-ui-style="r3088da1131"]{display: flex; align-items: center; gap: 8px;}
[data-ui-style="racb751cfda"]{background: var(--bg-input); border: 1px solid var(--border); padding: 4px 8px; border-radius: 6px; font-size:12px; font-weight: 700;}
[data-ui-style="rf8b7863d6d"]{color: var(--success); font-size: 12px;}
[data-ui-style="r14a8ad844c"]{border: 1px solid var(--success); color: var(--success); padding: 4px 8px; border-radius: 6px; font-size:12px; font-weight: 700;}
[data-ui-style="reefff2f8dd"]{font-size: 13px;}
[data-ui-style="r979e86e5e9"]{color: var(--primary); margin-right:4px;}
[data-ui-style="r340a40920e"]{color:var(--ui-info); text-decoration: none; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap:4px;}
[data-ui-style="rbfc60b4648"]{color: var(--text-muted); font-size: 12px;}
[data-ui-style="rb41d648de9"]{color: var(--success); font-weight: 800; font-size:12px; display: flex; align-items: center; gap: 4px;}
[data-ui-style="r528dd09537"]{color: var(--accent); margin-right:8px;}
[data-ui-style="refb7f2708d"]{padding: 16px; border-radius: 12px; margin-bottom:24px; background: var(--card); border: 1px solid var(--border); display: flex; align-items: center; gap:8px;}
[data-ui-style="r52b0915076"]{padding: 0; overflow: hidden; border-radius:18px;}
[data-ui-style="r297d90f550"]{width: 100%; border-collapse: collapse; font-size: 14px;}
[data-ui-style="r2704580c96"]{background: var(--bg); border-bottom: 1px solid var(--border);}
[data-ui-style="raf6b252f28"]{padding:20px 24px; text-align: left; font-size:12px; text-transform: uppercase; letter-spacing: 1px; color: var(--gray-text);}
[data-ui-style="rd899b796f1"]{padding:20px 24px; text-align: center; font-size:12px; text-transform: uppercase; letter-spacing: 1px; color: var(--gray-text);}
[data-ui-style="ra91664c23f"]{border-bottom: 1px solid var(--border); transition: 0.2s;}
[data-ui-style="r279e11f2a9"]{padding:20px 24px;}
[data-ui-style="r43b44843a8"]{font-weight: 600; color: var(--gray-text); font-size: 13px;}
[data-ui-style="rb2196a628a"]{font-weight: 700; color: var(--fg);}
[data-ui-style="rb6d1a33314"]{color: var(--gray-text); font-size: 12px;}
[data-ui-style="r072cd421aa"]{background: var(--bg); padding:4px 8px; border-radius: 8px; font-weight: 800;}
[data-ui-style="rd134cd4508"]{display: inline-flex; align-items: center; gap:4px; color:var(--ui-warning); font-weight: 700; font-size: 12px; text-transform: uppercase;}
[data-ui-style="rca3e4893ac"]{background:var(--ui-warning);}
[data-ui-style="r07185549db"]{display: inline-flex; align-items: center; gap:4px; color: var(--success); font-weight: 700; font-size: 12px; text-transform: uppercase;}
[data-ui-style="rb322ea8024"]{padding:20px 24px; text-align: center;}
[data-ui-style="r31c6380632"]{border: none; cursor: pointer; height: 36px; padding:0 16px; font-size: 12px; width: auto;}
[data-ui-style="rcedb22dcf2"]{color: var(--border);}
[data-ui-style="r0355b97736"]{padding: 80px; text-align: center;}
[data-ui-style="rabe7bdf7ac"]{font-size: 40px; margin-bottom:16px; display: block;}
[data-ui-style="r80d654f9c8"]{text-decoration:none}
[data-ui-style="r6384e3671f"]{grid-template-columns:1fr}
[data-ui-style="rae125572d5"]{display:contents}
[data-ui-style="r53b50a8a60"]{max-width:920px}
[data-ui-style="r34b5f8ef86"]{display:flex;gap:8px;align-items:flex-start;margin:4px 0 16px;color:var(--text-muted,var(--ui-muted));font-size:.82rem;line-height:1.5;}
[data-ui-style="rd57df0b464"]{margin-top:4px;accent-color:var(--primary,var(--ui-primary));}
[data-ui-style="rb75fad0009"]{margin-bottom: 20px;}
[data-ui-style="raa1500f1f7"]{font-size: 4rem; color: var(--primary);}
[data-ui-style="r50666a574d"]{position: relative;}
[data-ui-style="rce31fa50e4"]{position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: var(--text-muted);}
[data-ui-style="r522cdbe26e"]{padding-left:48px;}
[data-ui-style="r1c6e64ff4b"]{font-size:3rem;color:var(--primary)}
[data-ui-style="rbade9ba368"]{text-align:center;font-size:1.35rem;letter-spacing:.18rem;text-transform:uppercase}
[data-ui-style="r9506854fae"]{font-size: 3.5rem; color: var(--primary);}
[data-ui-style="rdc271cfe4e"]{max-width: 600px;}
[data-ui-style="r5fa693f3d4"]{margin-top: 20px;}
[data-ui-style="rb05317f99f"]{margin-top:12px;}
[data-ui-style="r1dd1b3a0a2"]{font-size:28px;color:var(--primary)}
[data-ui-style="r068a8ddc17"]{grid-column:1/-1}
[data-ui-style="r8ebc815c09"]{margin-top:8px; font-weight: 800; font-size: 16px;}
[data-ui-style="rb5dec29717"]{border-top: none;}
[data-ui-style="rb63d49eca1"]{color:var(--ui-primary);}
[data-ui-style="rd82513d1a3"]{color:var(--ui-primary);}
[data-ui-style="r8a6e890fc1"]{margin-top:48px; border-left:4px solid var(--ui-line); padding-left:16px;}
[data-ui-style="redc6720411"]{font-size:12px; font-weight: 800; color:var(--ui-primary); margin: 0;}
[data-ui-style="r4327100c18"]{font-size: 12px; color:var(--ui-primary); margin-top:4px;}
[data-ui-style="r56f4356299"]{margin-top:12px}
[data-ui-style="r69f523bf93"]{color:var(--primary);font-size:22px}
[data-ui-style="rdb33098995"]{display:block;font-size:24px;margin-bottom:8px;}
[data-ui-style="r7bc0a70b94"]{color:var(--text-muted);font-size:12px;margin-bottom:12px;}
[data-ui-style="r2b583d7389"]{margin-bottom:12px;}
[data-ui-style="r391ef1246f"]{margin-left:4px;}
[data-ui-style="r1169661891"]{margin:0}
[data-ui-style="r927232e65f"]{--h:38%}
[data-ui-style="r6d5a36283e"]{--h:54%}
[data-ui-style="rdab2ff0e27"]{--h:45%}
[data-ui-style="rfce528bb18"]{--h:72%}
[data-ui-style="r23b0a52684"]{--h:61%}
[data-ui-style="r30c7ca8998"]{--h:88%}
[data-ui-style="r49676cd522"]{--h:68%}
[data-ui-style="rdac4fe6c9b"]{text-align:center;}
[data-ui-style="r0cd28ce9ba"]{display:inline;}
[data-ui-style="r31ac4ee7d0"]{width:43%}
[data-ui-style="r477d664a08"]{width:10%}
[data-ui-style="r3dc2eec8dc"]{width:17%}
[data-ui-style="rc28f1b1511"]{width:12%}
[data-ui-style="r55b2e17218"]{width:18%}
[data-ui-style="r27af8985f8"]{max-width:220px}
[data-ui-style="r3b6a3a65d8"]{cursor:pointer}
[data-ui-style="rba760c5bf0"]{margin-top:8px;display:grid;gap:8px;}
[data-ui-style="r8a77e5a311"]{margin-top:8px}
[data-ui-style="r4536df011c"]{font-weight: 700; color: var(--success); font-size: 0.8rem;}
[data-ui-style="r1a6574a6b7"]{font-size:0.75rem; vertical-align: middle;}
[data-ui-style="rbf4b678785"]{color: var(--text-muted);}
[data-ui-style="r215b7c82c1"]{margin:0; font-weight: 800;}
[data-ui-style="rfb748c4250"]{display:block; margin:4px 0; font-size: 1rem; color: var(--text-main);}
[data-ui-style="rd8152b1a39"]{display: flex; flex-direction: column; gap:16px;}
[data-ui-style="ra459da896e"]{color:var(--ui-primary); font-size: 0.85rem; text-decoration: none; font-weight: 600;}
[data-ui-style="rcccfa4560d"]{display:inline}
[data-ui-style="r81c7c97945"]{border:0;background:none;color:var(--ui-primary);font-size:.8rem;cursor:pointer;}
[data-ui-style="r140b8277de"]{margin-left:var(--sidebar-space,0)}
[data-ui-style="rb462b4f0ae"]{margin-bottom: 20px; padding:8px; background:var(--ui-warning-soft); border:1px solid var(--ui-warning-line); border-radius: 6px;}
[data-ui-style="r42df27450f"]{background:var(--ui-primary); color: white; border: none; padding:8px 16px; border-radius: 4px; font-weight: bold; cursor: pointer;}
[data-ui-style="rc62080786f"]{background:var(--ui-surface-strong); color: white; border: none; padding:8px 16px; border-radius: 4px; margin-left:8px; cursor: pointer;}
[data-ui-style="r723dec2810"]{margin-left:16px; font-size:12px; color:var(--ui-warning);}
[data-ui-style="r85b7a6bea8"]{width: 20%;}
[data-ui-style="re289b717a9"]{width: 45%;}
[data-ui-style="r3ebefbda92"]{width: 15%; text-center}
[data-ui-style="raf5bb0afde"]{font-weight: 500;}
[data-ui-style="r78d7af8b7e"]{font-weight: bold;}
[data-ui-style="rf2bea76310"]{background:var(--ui-primary-soft); color: white; border: none; padding:8px 16px; border-radius: 4px; font-weight: bold; cursor: pointer;}
[data-ui-style="r26cef2c5d8"]{text-align: left;}

/* ========================================================================== 
   Superadmin payments — canonical flat table composition
   ========================================================================== */
body.orbis-master.payments-management {
  min-height: 100dvh;
  margin: 0;
  background: var(--ui-bg) !important;
  color: var(--ui-text);
  font-family: var(--ui-font);
}
body.orbis-master.payments-management > .topbar {
  width: 100%;
  min-height: var(--ui-topbar);
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--ui-line);
  background: var(--ui-surface);
  padding: 0 var(--ui-page-pad);
}
body.orbis-master.payments-management .topbar-content {
  width: min(100%, 1280px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
}
body.orbis-master.payments-management .nav-logo {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  color: var(--ui-text);
  text-decoration: none;
  font-weight: 750;
}
body.orbis-master.payments-management .nav-logo i { color: var(--ui-primary); font-size: 18px; }
body.orbis-master.payments-management .btn-theme {
  min-height: var(--ui-control-sm);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  color: var(--ui-text-soft);
  cursor: pointer;
}
body.orbis-master.payments-management > main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.orbis-master.payments-management .hero {
  width: min(100%, 1280px);
  margin: 0 auto;
  padding: var(--ui-space-8) var(--ui-page-pad) var(--ui-space-6);
  background: transparent;
  border: 0;
}
body.orbis-master.payments-management .hero-inner { max-width: 720px; text-align: left; }
body.orbis-master.payments-management .hero h2 {
  margin: var(--ui-space-2) 0;
  color: var(--ui-text);
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.12;
  letter-spacing: -.035em;
}
body.orbis-master.payments-management .hero p { margin: 0; color: var(--ui-muted); font-size: 14px; line-height: 1.6; }
body.orbis-master.payments-management .content-container {
  width: min(100%, 1280px);
  margin: 0 auto;
  padding: 0 var(--ui-page-pad) var(--ui-space-8);
  overflow-x: auto;
}
body.orbis-master.payments-management .payments-table {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  background: var(--ui-surface);
  border-top: 1px solid var(--ui-line);
  border-bottom: 1px solid var(--ui-line);
}
body.orbis-master.payments-management .payments-table th {
  padding: var(--ui-space-3) var(--ui-space-4);
  border-bottom: 1px solid var(--ui-line);
  background: var(--ui-surface-soft);
  color: var(--ui-muted);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .045em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
body.orbis-master.payments-management .payments-table td {
  padding: var(--ui-space-4);
  border: 0;
  border-bottom: 1px solid var(--ui-line);
  background: var(--ui-surface);
  color: var(--ui-text-soft);
  vertical-align: middle;
}
body.orbis-master.payments-management .payments-table tbody tr:last-child td { border-bottom: 0; }
body.orbis-master.payments-management .payments-table tbody tr:hover td { background: var(--ui-surface-soft); }
body.orbis-master.payments-management .pill {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
body.orbis-master.payments-management .status-PENDING { background: var(--ui-warning-soft); color: var(--ui-warning); }
body.orbis-master.payments-management .status-APPROVED { background: var(--ui-success-soft); color: var(--ui-success); }
body.orbis-master.payments-management .btn-approve {
  min-height: var(--ui-control-sm);
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-3);
  border: 0;
  border-radius: var(--ui-radius-sm);
  background: var(--ui-success);
  color: var(--ui-white);
  font-weight: 700;
  cursor: pointer;
}
@media (max-width: 700px) {
  body.orbis-master.payments-management .hero { padding-top: var(--ui-space-6); }
  body.orbis-master.payments-management .hero h2 { font-size: 28px; }
}

/* ========================================================================== 
   Final component calibration — quiet surfaces, consistent nesting
   ========================================================================== */
/* KPI strips read as information, not as a wall of bordered cards. */
body.orbis-app :where(
  .workspace-metric,.metric-card,.stat-card,.kpi-card,.stock-kpis > article,
  .master-kpis > article,.crm-v3-stats > article,.report-stat,.dashboard-stat
) {
  border-color: transparent !important;
  background: var(--ui-surface) !important;
  box-shadow: var(--ui-shadow-sm) !important;
}

/* Secondary/nested surfaces are separated by tone and spacing instead of another box. */
body.orbis-app :where(.workspace-card,.bo-card,.content-card,.detail-card,.summary-card)
  :where(.workspace-card,.bo-card,.content-card,.detail-card,.summary-card,.module-entity-card) {
  border-color: transparent !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
body.orbis-app :where(.filter-panel,.filters-panel,.toolbar-card,.search-card,.control-panel) {
  border-color: transparent !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}

/* Tables use row separators; avoid a border on every cell. */
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table) :where(th,td) {
  border-left: 0 !important;
  border-right: 0 !important;
}
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table) tbody tr:last-child td {
  border-bottom-color: transparent !important;
}

/* CRM: one outer work surface, calm internal sections. */
body.orbis-app .crm-v3 .crm-v3-stats article {
  border-color: transparent !important;
  box-shadow: var(--ui-shadow-sm) !important;
}
body.orbis-app .crm-v3 .crm-client-hero {
  border-color: transparent !important;
  border-bottom: 1px solid var(--ui-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-client-kpis article {
  border-color: transparent !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-v3-card {
  border-color: transparent !important;
  border-radius: var(--ui-radius) !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-v3-columns {
  gap: var(--ui-space-4) !important;
}

/* Module cards share exactly the same density. */
body.orbis-app .module-page :where(.module-row,.module-entity-card,.module-kv > div) {
  border-color: transparent !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
body.orbis-app .module-page .module-row + .module-row {
  margin-top: 0 !important;
}

/* Dark mode: retain hierarchy without bright outlines around every panel. */
html.dark body.orbis-app :where(
  .workspace-metric,.metric-card,.stat-card,.kpi-card,.stock-kpis > article,
  .master-kpis > article,.crm-v3-stats > article,.report-stat,.dashboard-stat
) {
  box-shadow: none !important;
  background: var(--ui-surface) !important;
}

/* Topbar and sidebar finishing: fewer outlined controls. */
#app-sidebar .brand-icon { border-color: transparent !important; background: var(--ui-surface-soft) !important; }
.app-topbar__button,
.app-topbar__profile { border-color: transparent !important; background: transparent !important; }
.app-topbar__button--search { background: var(--ui-surface-soft) !important; }
.app-topbar__button:hover,
.app-topbar__profile:hover { border-color: transparent !important; background: var(--ui-surface-hover) !important; }

/* ========================================================================== 
   POLISHED FINAL PASS · 2026-08-29 · visual QA from real screens
   Purpose: remove double page spacing, neutralize module-specific palette leaks,
   simplify navigation, flatten nested surfaces and make dark mode deterministic.
   ========================================================================== */
:root {
  --ui-sidebar: 232px;
  --ui-sidebar-collapsed: 68px;
  --ui-topbar: 60px;
  --ui-page: 1920px;
  --ui-page-pad: clamp(20px, 1.6vw, 28px);
  --ui-radius: 9px;
  --ui-radius-lg: 12px;
  --ui-radius-xl: 16px;
}

/* 1) Shell: exactly one source of outer spacing. Page wrappers never add another frame. */
body.orbis-app:not(.pos-page) > main {
  margin-left: auto !important;
  margin-right: auto !important;
  padding: calc(var(--ui-topbar) + 24px) var(--ui-page-pad) 40px !important;
}
body.orbis-app:not(.pos-page) > main > :not(dialog) {
  width: 100% !important;
  max-width: var(--ui-page) !important;
}
body.orbis-app:not(.pos-page) > main:where(
  .workspace-page,.clients-page,.stock-page,.history-page,.kardex-page,.staff-page,
  .suppliers-page,.purchases-page,.purchase-page,.sales-page,.company-settings-page,
  .ops-page,.data-center-page,.purchase-setup-page,.sales-hub,.request-error-page
) {
  width: auto !important;
  max-width: none !important;
}
body.orbis-app:not(.pos-page) > main > :where(
  .module-page,.product-kanban-page,.crm-v3,.bo-page,.retail-shell,.main-content,
  .content-container,.sales-hub__shell,.operations-shell,.report-shell
) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
html.sidebar-collapsed body.orbis-app:not(.pos-page) > main { margin-left: auto !important; margin-right:auto!important; }

/* 2) Sidebar: calm navigation, no mixed accent bars or colored icon tiles. */
#app-sidebar.sidebar {
  width: var(--ui-sidebar) !important;
  border-right: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
}
#app-sidebar .sidebar-header { padding: 12px 8px 8px !important; }
#app-sidebar .brand { min-height: 44px !important; margin: 0 0 8px !important; padding: 4px 8px !important; }
#app-sidebar .brand-icon { width: 32px !important; height: 32px !important; min-width: 32px !important; border: 0 !important; background: var(--ui-surface-soft) !important; }
#app-sidebar .brand-name { font-size: 13.5px !important; font-weight: 750 !important; }
#app-sidebar .brand-meta { margin-top: 2px !important; color: var(--ui-faint) !important; font-size: 10.5px !important; letter-spacing: .055em !important; }
#app-sidebar .sidebar-search { height: 38px !important; border-color: transparent !important; background: var(--ui-surface-soft) !important; }
#app-sidebar .sidebar-search:focus-within { border-color: var(--ui-primary-line) !important; background: var(--ui-surface) !important; }
#app-sidebar .sidebar-nav { padding: 4px 8px 12px !important; }
#app-sidebar .nav-section { margin-bottom: 8px !important; }
#app-sidebar .section-title,
#app-sidebar .nav-section-toggle { min-height: 27px !important; padding: 0 8px !important; color: var(--ui-faint) !important; font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .055em !important; }
#app-sidebar .nav-items { gap: 1px !important; }
#app-sidebar .nav-item {
  min-height: 38px !important;
  padding: 4px 8px !important;
  gap: 8px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--ui-text-soft) !important;
  box-shadow: none !important;
}
#app-sidebar .nav-item:hover { background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; }
#app-sidebar .nav-item.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
#app-sidebar .nav-item.active::before { display: none !important; }
#app-sidebar .nav-item--primary { background: var(--ui-primary) !important; color: var(--ui-white) !important; }
#app-sidebar .nav-item--primary:hover,
#app-sidebar .nav-item--primary.active { background: var(--ui-primary-hover) !important; color: var(--ui-white) !important; }
#app-sidebar .nav-icon {
  width: 25px !important;
  height: 25px !important;
  min-width: 25px !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: currentColor !important;
  box-shadow: none !important;
  font-size: 14px !important;
}
#app-sidebar .nav-label { font-size: 12.5px !important; font-weight: 560 !important; }
#app-sidebar .sidebar-footer { padding: 8px !important; border-top: 1px solid var(--ui-line) !important; }
#app-sidebar .sidebar-footer .nav-item { min-height: 37px !important; }
#app-sidebar .logout-item:hover { background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
#app-sidebar .collapse-btn {
  right: 8px !important;
  bottom: 12px !important;
  width: 27px !important;
  height: 27px !important;
  border: 0 !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-muted) !important;
  box-shadow: none !important;
}
html.sidebar-collapsed #app-sidebar.sidebar { width: var(--ui-sidebar-collapsed) !important; }
html.sidebar-collapsed #app-sidebar .sidebar-header { padding-inline: 8px !important; }
html.sidebar-collapsed #app-sidebar .nav-item { justify-content: center !important; padding-inline: 5px !important; }

/* 3) Top bar: remove ornamental status color and heavy pills. */
.app-topbar {
  left: var(--ui-sidebar) !important;
  height: var(--ui-topbar) !important;
  min-height: var(--ui-topbar) !important;
  padding: 0 var(--ui-page-pad) !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
html.sidebar-collapsed .app-topbar { left: 0 !important; }
.app-topbar__mark { display: none !important; }
.app-topbar__context { gap: 8px !important; }
.app-topbar__context strong { font-size: 12.5px !important; }
.app-topbar__context > span:last-child { font-size: 12px !important; }
.app-topbar__button,
.app-topbar__profile { min-height: 36px !important; border: 0 !important; border-radius: 8px !important; }
.app-topbar__button--search { min-width: 112px !important; background: var(--ui-surface-soft) !important; }
.app-topbar__avatar { width: 27px !important; height: 27px !important; }

/* 4) Page headers and outer rhythm. */
body.orbis-app:not(.pos-page) > main :where(
  .workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,
  .purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,
  .kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,
  .data-hero,.master-heading,.section-header,.order-header,.purchase-setup-header,.transfer-header
) {
  margin: 0 0 24px !important;
  padding: 0 !important;
  align-items: flex-end !important;
  gap: 20px !important;
}
body.orbis-app:not(.pos-page) > main :where(
  .workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,
  .purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,
  .kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,
  .data-hero,.master-heading,.section-header,.order-header,.purchase-setup-header,.transfer-header
) :where(h1,h2) {
  font-size: clamp(26px, 2.15vw, 32px) !important;
  font-weight: 760 !important;
  letter-spacing: -.032em !important;
}
body.orbis-app:not(.pos-page) > main :where(
  .workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,
  .purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,
  .kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,
  .data-hero,.master-heading,.section-header,.order-header,.purchase-setup-header,.transfer-header
) p { max-width: 720px !important; margin-top: 6px !important; color: var(--ui-muted) !important; }

/* 5) Buttons. Primary is always Orbis orange; semantic colors only indicate state/danger. */
body.orbis-app :where(
  .workspace-btn,.primary-action,.btn-primary,.btn-action,.master-btn.primary,.btn-nav-primary,
  .btn-hero-primary,button.primary,a.primary,.crm-add-task,.export-report
):not(.secondary):not(.danger):not(.success) {
  border-color: var(--ui-primary) !important;
  background: var(--ui-primary) !important;
  color: var(--ui-white) !important;
  box-shadow: none !important;
}
body.orbis-app :where(
  .workspace-btn,.primary-action,.btn-primary,.btn-action,.master-btn.primary,.btn-nav-primary,
  .btn-hero-primary,button.primary,a.primary,.crm-add-task,.export-report
):not(.secondary):not(.danger):not(.success):hover {
  border-color: var(--ui-primary-hover) !important;
  background: var(--ui-primary-hover) !important;
  color: var(--ui-white) !important;
  transform: none !important;
}
body.orbis-app :where(.workspace-btn.secondary,.btn-secondary,.secondary-action,button.secondary,a.secondary) {
  border: 1px solid var(--ui-line-strong) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text-soft) !important;
  box-shadow: none !important;
}
body.orbis-app :where(.workspace-btn.secondary,.btn-secondary,.secondary-action,button.secondary,a.secondary):hover {
  border-color: var(--ui-line-strong) !important;
  background: var(--ui-surface-hover) !important;
  color: var(--ui-text) !important;
}
body.orbis-app :where(button,.btn,.workspace-btn,[class*="btn-"]) { border-radius: 8px !important; }

/* 6) Forms and filter rows: one height, one fill, no double boxes. */
body.orbis-app:not(.pos-page) :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border-color: var(--ui-line-strong) !important;
  border-radius: 8px !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}
body.orbis-app:not(.pos-page) :where(input:not([type="checkbox"]):not([type="radio"]),select) { min-height: 40px !important; }
body.orbis-app:not(.pos-page) :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus {
  border-color: var(--ui-primary) !important;
  outline: 2px solid var(--ui-primary-soft) !important;
  outline-offset: 0 !important;
  background: var(--ui-surface) !important;
}
body.orbis-app :where(.filter-panel,.filters-panel,.toolbar-card,.search-card,.control-panel,.module-toolbar,.filters-bar,.action-bar) {
  padding: 12px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}

/* 7) Surfaces: one outer panel, quiet nested blocks. */
body.orbis-app :where(
  .workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.stats-card,
  .form-container,.form-container-left,.configuration-column,.ops-card,.master-panel,
  .supplier-select-card,.section-shell,.capability-card,.hub-card,.workspace-panel,.info-box,
  .activity-panel,.product-panel,.sales-card,.lines-card,.route-card,.items-card
) {
  border-color: var(--ui-line) !important;
  border-radius: var(--ui-radius-lg) !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-app :where(
  .workspace-card,.bo-card,.content-card,.detail-card,.summary-card,.form-container,.form-container-left,
  .configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,.capability-card,
  .hub-card,.workspace-panel,.info-box,.activity-panel,.product-panel,.sales-card,.lines-card,.route-card,.items-card
) { padding: 20px !important; }
body.orbis-app :where(.workspace-card,.bo-card,.content-card,.detail-card,.summary-card,.hub-card,.workspace-panel)
  :where(.workspace-card,.bo-card,.content-card,.detail-card,.summary-card,.module-entity-card,.info-box,.activity-panel) {
  border: 0 !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}

/* KPIs are a compact information strip, not mini window frames. */
body.orbis-app :where(
  .workspace-metric,.workspace-kpi,.metric-card,.stat-card,.kpi-card,.bo-kpi,.stock-kpis > article,
  .master-kpis > article,.crm-v3-stats > article,.report-stat,.dashboard-stat
) {
  min-height: 92px !important;
  padding: 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: var(--ui-surface) !important;
  box-shadow: 0 1px 2px var(--ui-line) !important;
}

/* 8) Tables: no cell grid, no tinted legacy headers. */
body.orbis-app :where(.table-card,.workspace-table-wrap,.bo-table-wrap,.table-responsive,.table-wrap,[class*="table-container"]) {
  overflow: hidden !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 10px !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) { background: var(--ui-surface) !important; }
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) th {
  border: 0 !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: var(--ui-surface-soft) !important;
  color: var(--ui-muted) !important;
  font-weight: 700 !important;
}
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) td {
  border: 0 !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text-soft) !important;
}
body.orbis-app :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) tbody tr:hover td { background: var(--ui-surface-hover) !important; }

/* 9) Generic module pages: eradicate leftover local page padding and colored shells. */
body.orbis-app .module-page {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--ui-text) !important;
}
body.orbis-app .module-page :where(.module-row,.module-entity-card,.module-kv > div) {
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
body.orbis-app .module-page .module-row + .module-row { border-top: 1px solid var(--ui-line) !important; border-radius: 0 !important; }

/* 10) CRM: remove the centered inner canvas and mixed purple/orange palette. */
body.orbis-app .crm-v3 { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.orbis-app .crm-v3 .crm-v3-stats {
  width: 100% !important;
  margin: 0 0 16px !important;
  display: grid !important;
  grid-template-columns: repeat(5,minmax(0,1fr)) !important;
  gap: 12px !important;
}
body.orbis-app .crm-v3 .crm-v3-stats article { min-height: 88px !important; padding: 12px 16px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > span { color: var(--ui-muted) !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > span i { color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > strong { color: var(--ui-text) !important; font-size: 21px !important; }
body.orbis-app .crm-v3 .crm-v3-stats article > small { color: var(--ui-faint) !important; }
body.orbis-app .crm-v3 .crm-v3-shell {
  width: 100% !important;
  min-height: 560px !important;
  display: grid !important;
  grid-template-columns: 286px minmax(0,1fr) !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 12px !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-directory {
  width: auto !important;
  min-width: 0 !important;
  padding: 16px !important;
  border: 0 !important;
  border-right: 1px solid var(--ui-line) !important;
  border-radius: 0 !important;
  background: var(--ui-surface-soft) !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-directory > header { margin: 0 0 12px !important; padding: 0 !important; }
body.orbis-app .crm-v3 .crm-directory > header span,
body.orbis-app .crm-v3 .crm-card-head span { color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-directory-search { margin-bottom: 8px !important; border: 1px solid var(--ui-line-strong) !important; border-radius: 8px !important; background: var(--ui-surface) !important; }
body.orbis-app .crm-v3 .crm-stage-tabs { gap: 4px !important; margin-bottom: 8px !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button {
  min-height: 31px !important;
  padding: 0 8px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ui-muted) !important;
}
body.orbis-app .crm-v3 .crm-stage-tabs button:hover { background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; }
body.orbis-app .crm-v3 .crm-stage-tabs button.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
body.orbis-app .crm-v3 .crm-client-list { gap: 4px !important; }
body.orbis-app .crm-v3 .crm-client-item {
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.orbis-app .crm-v3 .crm-client-item:hover { background: var(--ui-surface-hover) !important; }
body.orbis-app .crm-v3 .crm-client-item.active { background: var(--ui-primary-soft) !important; }
body.orbis-app .crm-v3 .crm-client-avatar,
body.orbis-app .crm-v3 .crm-avatar-lg { border: 0 !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
body.orbis-app .crm-v3 :where(.crm-stage-badge,.module-chip) { border: 0 !important; background: var(--ui-surface-strong) !important; color: var(--ui-text-soft) !important; }
body.orbis-app .crm-v3 :where(.stage-ganado,[data-status="Ganado"].active) { background: var(--ui-success-soft) !important; color: var(--ui-success) !important; }
body.orbis-app .crm-v3 :where(.stage-perdido,[data-status="Perdido"].active) { background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; }
body.orbis-app .crm-v3 .crm-detail { min-width: 0 !important; padding: 0 !important; background: var(--ui-surface) !important; }
body.orbis-app .crm-v3 .crm-client-view { padding: 16px !important; }
body.orbis-app .crm-v3 .crm-client-hero {
  margin: 0 0 12px !important;
  padding: 0 0 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ui-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.orbis-app .crm-v3 .crm-client-kpis {
  margin: 0 0 12px !important;
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  gap: 8px !important;
}
body.orbis-app .crm-v3 .crm-client-kpis article { padding: 12px !important; border: 0 !important; border-radius: 8px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .crm-v3 .crm-v3-columns { gap: 10px !important; }
body.orbis-app .crm-v3 .crm-v3-card { padding: 16px !important; border: 0 !important; border-radius: 9px !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .crm-v3 .crm-activity-card { margin-top: 12px !important; }
body.orbis-app .crm-v3 .crm-pipeline { gap: 4px !important; }
body.orbis-app .crm-v3 .crm-pipeline button { border: 1px solid var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-muted) !important; box-shadow: none !important; }
body.orbis-app .crm-v3 .crm-pipeline button.active { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
body.orbis-app .crm-v3 .crm-card-head > i { color: var(--ui-primary) !important; }
body.orbis-app .crm-v3 .crm-add-task { min-height: 34px !important; }
body.orbis-app .crm-v3 .crm-composer textarea { background: var(--ui-surface) !important; }
body.orbis-app .crm-v3 .crm-toast { background: var(--ui-text) !important; color: var(--ui-surface) !important; }

/* 11) Product catalog / retail / backoffice: same density and same palette. */
body.orbis-app .product-kanban-page { margin: 0 !important; padding: 0 !important; }
body.orbis-app .product-filter-panel,
body.orbis-app .product-kanban-shell { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .product-filter-panel { padding: 12px !important; border: 0 !important; background: var(--ui-surface-soft) !important; }
body.orbis-app .product-list-header { margin-bottom: 10px !important; }
body.orbis-app .odoo-product-card { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app .odoo-product-card:hover { border-color: var(--ui-line-strong) !important; box-shadow: var(--ui-shadow-sm) !important; }
body.orbis-app .odoo-product-image { background: var(--ui-surface-soft) !important; }
body.orbis-app :where(.retail-shell,.bo-page) { color: var(--ui-text) !important; }
body.orbis-app :where(.retail-launch-card,.retail-record,.bo-card) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; box-shadow: none !important; }
body.orbis-app :where(.retail-launch-card,.retail-record):hover { border-color: var(--ui-line-strong) !important; background: var(--ui-surface) !important; transform: none !important; }

/* 12) Modal overlays: no rgba/alpha-color syntax. Native dialog can safely use opacity. */
body.orbis-app dialog::backdrop { background: var(--ui-black) !important; opacity: .24 !important; }
html.dark body.orbis-app dialog::backdrop { background: var(--ui-black) !important; opacity: .62 !important; }
body.orbis-app :where(.modal-backdrop,.supplier-modal-backdrop,.orbis-feedback-backdrop,.orbis-confirm-backdrop,.workspace-dialog-backdrop,.master-modal-backdrop) {
  background: var(--ui-overlay) !important;
}

/* 13) Dark mode: explicit neutral hierarchy, including legacy module containers. */
html.dark body.orbis-app:not(.pos-page) > main { background: var(--ui-bg) !important; color: var(--ui-text) !important; }
html.dark #app-sidebar.sidebar,
html.dark .app-topbar { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; }
html.dark #app-sidebar .nav-item { color: var(--ui-text-soft) !important; }
html.dark #app-sidebar .nav-item:hover { background: var(--ui-surface-hover) !important; color: var(--ui-text) !important; }
html.dark #app-sidebar .nav-item.active { background: var(--ui-primary-soft) !important; color: var(--ui-primary-text) !important; }
html.dark body.orbis-app:not(.pos-page) :where(
  .workspace-page,.bo-page,.module-page,.retail-shell,.crm-v3,.product-kanban-page,.clients-page,
  .stock-page,.history-page,.kardex-page,.staff-page,.suppliers-page,.purchases-page,.purchase-page,
  .sales-page,.company-settings-page,.ops-page,.data-center-page,.purchase-setup-page,.sales-hub
) { background: transparent !important; color: var(--ui-text) !important; }
html.dark body.orbis-app:not(.pos-page) :where(
  .workspace-card,.bo-card,.content-card,.table-card,.detail-card,.summary-card,.form-container,
  .form-container-left,.configuration-column,.ops-card,.master-panel,.supplier-select-card,.section-shell,
  .capability-card,.hub-card,.workspace-panel,.product-panel,.sales-card,.lines-card,.route-card,.items-card,
  .retail-launch-card,.retail-record,.odoo-product-card
) { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; box-shadow: none !important; }
html.dark body.orbis-app:not(.pos-page) :where(
  .filter-panel,.filters-panel,.toolbar-card,.search-card,.control-panel,.module-toolbar,.filters-bar,.action-bar,
  .module-row,.module-entity-card,.module-kv > div
) { border-color: transparent !important; background: var(--ui-surface-soft) !important; color: var(--ui-text) !important; }
html.dark body.orbis-app:not(.pos-page) :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) th { background: var(--ui-surface-soft) !important; color: var(--ui-muted) !important; }
html.dark body.orbis-app:not(.pos-page) :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) td { background: var(--ui-surface) !important; color: var(--ui-text-soft) !important; }
html.dark body.orbis-app:not(.pos-page) :where(table,.workspace-table,.bo-table,.retail-table,.commercial-table) tbody tr:hover td { background: var(--ui-surface-hover) !important; }
html.dark body.orbis-app .crm-v3 .crm-directory { background: var(--ui-surface-soft) !important; border-right-color: var(--ui-line) !important; }
html.dark body.orbis-app .crm-v3 .crm-detail { background: var(--ui-surface) !important; }
html.dark body.orbis-app .crm-v3 .crm-v3-card,
html.dark body.orbis-app .crm-v3 .crm-client-kpis article { background: var(--ui-surface-soft) !important; }
html.dark body.orbis-app .crm-v3 .crm-pipeline button { background: var(--ui-surface) !important; border-color: var(--ui-line) !important; }

/* 14) Launchpad/public/master surfaces receive the same restrained language. */
body.orbis-launchpad .tablet-app,
body.orbis-launchpad .tablet-app.featured { border-color: var(--ui-line) !important; background: var(--ui-surface) !important; color: var(--ui-text) !important; }
body.orbis-launchpad .tablet-app:hover,
body.orbis-launchpad .tablet-app.featured:hover { border-color: var(--ui-primary-line) !important; background: var(--ui-primary-soft) !important; }
body.orbis-launchpad .tablet-app-icon,
body.orbis-launchpad .featured .tablet-app-icon,
body.orbis-launchpad .tablet-app-go,
body.orbis-launchpad .featured .tablet-app-go { background: var(--ui-primary-soft) !important; color: var(--ui-primary) !important; }
body.orbis-launchpad .tablet-app-copy small,
body.orbis-launchpad .featured .tablet-app-copy small { color: var(--ui-muted) !important; }
body.orbis-public :where(.login-card,.register-card,.verify-card,.auth-card,.owner-card,.company-card,.company-form-panel) {
  border-color: var(--ui-line) !important;
  border-radius: 14px !important;
  background: var(--ui-surface) !important;
  box-shadow: none !important;
}
body.orbis-public :where(.side-visual,.visual-side,.visual-panel) { background: var(--ui-surface-soft) !important; color: var(--ui-text) !important; }
body.orbis-master :where(.master-panel,.master-company-card,.payment-card,.stat-card,.card) { box-shadow: none !important; }

/* 15) Tablet/mobile: eliminate desktop residual margin and keep consistent gutters. */
html.tablet-mode body.orbis-app:not(.pos-page) > main {
  margin-left: 0 !important;
  padding: calc(64px + 16px) max(14px,env(safe-area-inset-right)) calc(72px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)) !important;
}
@media (max-width: 1180px) {
  body.orbis-app .crm-v3 .crm-v3-stats { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.orbis-app .crm-v3 .crm-v3-shell { grid-template-columns: 260px minmax(0,1fr) !important; }
}
@media (max-width: 900px) {
  :root { --ui-page-pad: 16px; }
  body.orbis-app:not(.pos-page) > main { margin-left: 0 !important; padding-top: calc(58px + 18px) !important; }
  .app-topbar { left: 0 !important; min-height: 58px !important; height: 58px !important; }
  body.orbis-app .crm-v3 .crm-v3-stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.orbis-app .crm-v3 .crm-v3-shell { grid-template-columns: 1fr !important; }
  body.orbis-app .crm-v3 .crm-directory { border-right: 0 !important; border-bottom: 1px solid var(--ui-line) !important; }
}
@media (max-width: 620px) {
  body.orbis-app:not(.pos-page) > main { padding-inline: 12px !important; padding-bottom: 28px !important; }
  body.orbis-app:not(.pos-page) > main :where(
    .workspace-header,.bo-header,.page-header,.clients-header,.stock-header,.suppliers-header,
    .purchases-header,.sales-header,.staff-header,.reports-header,.history-header,.monthly-header,
    .kardex-header,.company-settings-header,.profile-header,.hub-header,.cash-header,.ops-hero,
    .data-hero,.master-heading,.section-header
  ) { align-items: flex-start !important; gap: 12px !important; }
  body.orbis-app .crm-v3 .crm-v3-stats { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  body.orbis-app .crm-v3 .crm-client-kpis { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.orbis-app .crm-v3 .crm-client-view { padding: 12px !important; }
}

/* Complete-document reset: public/master pages must not inherit authenticated main offsets. */
body.orbis-public > main,
body.orbis-launchpad > main,
body.orbis-master > main {
  margin-left: auto !important;
  margin-right: auto !important;
}
body.orbis-public > main {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}
body.orbis-public :where(.split-layout,.auth-layout,.company-shell,.company-create-shell) {
  width: 100% !important;
  margin: 0 !important;
}
html.dark body.orbis-public,
html.dark body.orbis-launchpad,
html.dark body.orbis-master { background: var(--ui-bg) !important; color: var(--ui-text) !important; }
html.dark body.orbis-public :where(.auth-nav,.public-nav,.landing-nav,.side-form,.form-side,.login-card,.register-card,.verify-card,.auth-card,.owner-card,.company-card,.company-form-panel),
html.dark body.orbis-launchpad :where(.tablet-top-actions button,.tablet-desktop-link,.tablet-profile-link,.tablet-search,.tablet-app,.tablet-launch-dock),
html.dark body.orbis-master :where(.master-topbar,.topbar,.master-panel,.master-company-card,.payment-card,.stat-card,.card) {
  border-color: var(--ui-line) !important;
  background: var(--ui-surface) !important;
  color: var(--ui-text) !important;
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   Command palette v2 · clear, keyboard-first global search
   -------------------------------------------------------------------------- */
.sidebar-search-hint{margin-left:auto;color:var(--ui-faint);font-size:10px;font-weight:700;letter-spacing:.02em}.global-search-modal{padding:9vh 20px 24px!important;background:#111827!important}.global-search-panel{width:min(760px,100%)!important;max-height:min(720px,82vh)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;border:1px solid var(--ui-line-strong)!important;border-radius:18px!important;background:var(--ui-surface)!important;box-shadow:0 28px 80px #030712!important}.global-search-head{min-height:72px;padding:15px 16px 13px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;border-bottom:1px solid var(--ui-line)!important;background:var(--ui-surface)!important}.global-search-brand{min-width:0;display:flex;align-items:center;gap:11px}.global-search-brand>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:var(--ui-primary-soft);color:var(--ui-primary);font-size:16px}.global-search-brand>div{min-width:0;display:grid;gap:2px}.global-search-brand strong{color:var(--ui-text);font-size:13.5px;font-weight:800}.global-search-brand small{overflow:hidden;color:var(--ui-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.global-search-close{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid var(--ui-line)!important;border-radius:9px!important;background:var(--ui-surface-soft)!important;color:var(--ui-muted)!important;cursor:pointer}.global-search-close:hover{border-color:var(--ui-line-strong)!important;background:var(--ui-surface-hover)!important;color:var(--ui-text)!important}.global-search-box{min-height:64px!important;padding:0 16px!important;gap:11px!important;border-bottom:0!important;background:var(--ui-surface)!important}.global-search-box>i{color:var(--ui-primary)!important;font-size:17px!important}.global-search-box input{height:60px!important;min-height:60px!important;color:var(--ui-text)!important;font-size:16px!important;font-weight:600!important;letter-spacing:-.01em}.global-search-box input::placeholder{color:var(--ui-faint)!important}.global-search-box kbd{padding:4px 7px!important;border:1px solid var(--ui-line)!important;border-radius:7px!important;background:var(--ui-surface-soft)!important;color:var(--ui-muted)!important;font-size:10px!important;font-weight:700!important}.global-search-scope{padding:0 16px 12px;display:flex;align-items:center;gap:6px;overflow-x:auto;color:var(--ui-faint);font-size:9.5px;white-space:nowrap;scrollbar-width:none}.global-search-scope::-webkit-scrollbar{display:none}.global-search-scope span{margin-right:2px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.global-search-scope b{padding:4px 7px;border-radius:999px;background:var(--ui-surface-soft);color:var(--ui-muted);font-weight:650}.global-search-results{min-height:190px;max-height:440px!important;padding:6px 9px 10px!important;overflow:auto!important;border-top:1px solid var(--ui-line)!important;background:var(--ui-surface)!important}.global-search-result{min-height:58px!important;padding:8px 9px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;border:1px solid transparent!important;border-radius:11px!important;color:var(--ui-text-soft)!important;text-decoration:none!important}.global-search-result:hover,.global-search-result.is-active{border-color:var(--ui-primary-line)!important;background:var(--ui-primary-soft)!important;color:var(--ui-text)!important}.global-search-result-icon{width:38px!important;height:38px!important;border-radius:10px!important;background:var(--ui-surface-soft)!important;color:var(--ui-text-soft)!important}.global-search-result.is-active .global-search-result-icon,.global-search-result:hover .global-search-result-icon{background:var(--ui-surface)!important;color:var(--ui-primary)!important}.global-search-result-copy{min-width:0;display:grid;gap:2px}.global-search-result-copy strong{overflow:hidden;color:var(--ui-text);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.global-search-result-copy small{overflow:hidden;color:var(--ui-muted);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.global-search-result-type{display:inline-flex;align-items:center;gap:7px;color:var(--ui-faint);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.global-search-result-type i{font-size:12px}.search-empty{min-height:180px!important;padding:26px 18px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:5px!important;color:var(--ui-muted)!important;text-align:center!important}.search-empty>span{width:42px;height:42px;display:grid;place-items:center;margin-bottom:3px;border-radius:12px;background:var(--ui-surface-soft);color:var(--ui-primary);font-size:17px}.search-empty strong{color:var(--ui-text);font-size:12.5px;font-weight:750}.search-empty small{color:var(--ui-muted);font-size:10.5px}.global-search-footer{min-height:42px;padding:0 14px;display:flex;align-items:center;justify-content:flex-end;gap:15px;border-top:1px solid var(--ui-line);background:var(--ui-surface-soft);color:var(--ui-muted);font-size:9.5px}.global-search-footer span{display:inline-flex;align-items:center;gap:4px}.global-search-footer kbd{min-width:22px;padding:2px 5px;border:1px solid var(--ui-line);border-radius:5px;background:var(--ui-surface);color:var(--ui-text-soft);font:inherit;font-weight:700;text-align:center}@media(max-width:640px){.global-search-modal{padding:0!important;align-items:stretch!important}.global-search-panel{width:100%!important;max-height:none!important;height:100dvh!important;border:0!important;border-radius:0!important}.global-search-head{padding-top:max(15px,env(safe-area-inset-top))!important}.global-search-scope{padding-bottom:10px}.global-search-results{max-height:none!important;flex:1}.global-search-footer{padding-bottom:max(0px,env(safe-area-inset-bottom));justify-content:center}.global-search-footer span:first-child{display:none}}


/* ORBIS MOTION SYSTEM · 20260829-smooth1
   Lightweight motion: navigation must feel immediate, never blocked.
   Full-page fades and route-cover overlays are intentionally avoided. */

html.theme-preload body,
html.ui-ready body {
  visibility: visible !important;
  opacity: 1 !important;
}

@keyframes orbis-view-enter-soft {
  from { transform: translate3d(0, 3px, 0); }
  to { transform: translate3d(0, 0, 0); }
}
@keyframes orbis-modal-enter {
  from { opacity: 0; transform: translate3d(0, 5px, 0) scale(.992); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes orbis-backdrop-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes orbis-pop-enter {
  from { opacity: 0; transform: translate3d(0, -3px, 0) scale(.993); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

/* Page navigation: deliberately subtle. The sidebar/topbar do not replay an
   entrance animation on every request, so the shell feels stable. */
html.ui-ready body.orbis-app > main,
html.ui-ready body.orbis-public > main,
html.ui-ready body.orbis-master > main,
html.ui-ready body.orbis-launchpad > main,
html.ui-ready body.pos-page > .pos-layout {
  animation: orbis-view-enter-soft 145ms cubic-bezier(.22,.75,.25,1) both;
}

/* Fast micro-interactions: enough feedback without making the UI feel delayed. */
body :where(button,.btn,.primary-action,.secondary-action,.nav-item,a.action-link,input,select,textarea) {
  transition-property: color, background-color, border-color, box-shadow, transform;
  transition-duration: 120ms;
  transition-timing-function: cubic-bezier(.22,.75,.25,1);
}
body :where(button,.btn,.primary-action,.secondary-action):active {
  transform: translateY(1px) scale(.995);
}
#app-sidebar .nav-item,
#app-sidebar .nav-section-toggle,
#app-sidebar .brand,
#app-sidebar .sidebar-search {
  transition: color 120ms cubic-bezier(.22,.75,.25,1), background-color 120ms cubic-bezier(.22,.75,.25,1), border-color 120ms cubic-bezier(.22,.75,.25,1), transform 120ms cubic-bezier(.22,.75,.25,1) !important;
}

/* Dialogs and popovers can carry slightly more motion because they do not
   interrupt document navigation. */
:where(.global-search-modal,.modal-backdrop,.master-modal-backdrop,.supplier-modal-backdrop):not([hidden]) {
  animation: orbis-backdrop-enter 110ms ease-out both;
}
:where(.global-search-modal,.modal-backdrop,.master-modal-backdrop,.supplier-modal-backdrop):not([hidden]) > :where(.global-search-panel,.editor-modal,.master-modal,.supplier-modal,[role="dialog"]),
:where(dialog[open],[role="dialog"]:not([hidden])) {
  animation: orbis-modal-enter 165ms cubic-bezier(.22,.75,.25,1) both;
  transform-origin: 50% 35%;
}
:where(.filter-popover,.filters-popover,.drive-menu-popover,.quick-panel):not([hidden]) {
  animation: orbis-pop-enter 135ms cubic-bezier(.22,.75,.25,1) both;
  transform-origin: top center;
}

/* Theme switches are instant at document level to preserve zero-flash. */
html.ui-ready #app-sidebar,
html.ui-ready .app-topbar {
  transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease;
}
html.ui-ready,
html.ui-ready body {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html.ui-ready body.orbis-app > main,
  html.ui-ready body.orbis-public > main,
  html.ui-ready body.orbis-master > main,
  html.ui-ready body.orbis-launchpad > main,
  html.ui-ready body.pos-page > .pos-layout,
  :where(.global-search-modal,.modal-backdrop,.master-modal-backdrop,.supplier-modal-backdrop):not([hidden]),
  :where(dialog[open],[role="dialog"]:not([hidden])),
  :where(.filter-popover,.filters-popover,.drive-menu-popover,.quick-panel):not([hidden]) {
    animation: none !important;
    transform: none !important;
  }
}

/* ========================================================================
   ORBIS MOTION STABILITY · 20260829-smooth2
   Structural content never bounces, lifts, scales or replays an entrance.
   Fast color/focus feedback remains; overlays may still animate independently.
   ======================================================================== */
html.ui-ready body.orbis-app > main,
html.ui-ready body.orbis-public > main,
html.ui-ready body.orbis-master > main,
html.ui-ready body.orbis-launchpad > main,
html.ui-ready body.pos-page > .pos-layout,
html.orbis-motion-stable body > main,
body .orbis-page,
body .orbis-reveal,
body .orbis-reveal.orbis-revealed {
  animation: none !important;
  transform: none !important;
}

body.orbis-app :where(
  .workspace-card,.workspace-metric,.module-card,.table-card,.product-card,.ware-card,
  .kpi-card,.stat-card,.product-tile,.drive-folder,.drive-file,.tablet-app,.crm-v3-card,
  .crm-client-item,.scanner-shell,.product-node,.route-path
) {
  animation: none !important;
}
body.orbis-app :where(
  .workspace-card,.workspace-metric,.module-card,.table-card,.product-card,.ware-card,
  .kpi-card,.stat-card,.product-tile,.drive-folder,.drive-file,.tablet-app,.crm-v3-card,
  .crm-client-item,.scanner-reset,.product-node
):hover {
  transform: none !important;
}

body :where(button,.btn,.workspace-btn,.primary-action,.secondary-action,.nav-item,a.action-link):active {
  transform: none !important;
}
body :where(button,.btn,.workspace-btn,.primary-action,.secondary-action,.nav-item,a.action-link,input,select,textarea) {
  transition-duration: 90ms !important;
  transition-timing-function: ease-out !important;
}

/* Neutralize legacy page/section reveal layers without disabling loaders. */
body .orbis-page,
body .orbis-reveal,
body .orbis-revealed {
  transition-property: color,background-color,border-color,box-shadow !important;
  transition-duration: 90ms !important;
  transition-delay: 0ms !important;
}
html.tablet-mode body > main,
html.tablet-mode body .tablet-app,
html.tablet-mode body .workspace-card,
html.tablet-mode body .module-card {
  animation: none !important;
  transform: none !important;
}
