﻿:root {
  --ink: #10271e;
  --ink-soft: #52685e;
  --forest: #073c2b;
  --forest-deep: #04291e;
  --green: #16844b;
  --green-bright: #3f7f20;
  --lime-wash: #eff8e9;
  --paper: #f5f8f4;
  --white: #ffffff;
  --line: #dce8df;
  --orange: #c66b28;
  --red: #af4543;
  --shadow: 0 18px 44px rgba(20, 62, 39, .09);
  --shadow-soft: 0 8px 22px rgba(20, 62, 39, .06);
}

textarea {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  resize: none;
}

/* Global issue dialog — must not depend on Magazie CSS load */
.rz1-team-notice {
  width: min(640px, calc(100vw - 28px));
  max-height: min(86vh, 820px);
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
}
.rz1-team-notice::backdrop {
  background: rgba(3, 39, 28, .54);
  backdrop-filter: blur(3px);
}
.rz1-team-notice-card {
  display: grid;
  gap: 12px;
  max-height: min(86vh, 820px);
  padding: 22px 22px 18px;
  overflow: auto;
  border: 1px solid #b9d8c0;
  border-radius: 20px;
  background: linear-gradient(145deg, #fff, #f3faf3);
  box-shadow: 0 26px 65px rgba(4, 41, 30, .3);
}
.rz1-team-notice-card .eyebrow { margin: 0; }
.rz1-team-notice-card h2 { margin: 0; color: #0f4a32; font-size: 1.35rem; line-height: 1.25; }
.rz1-team-notice-body { display: grid; gap: 10px; }
.rz1-team-notice-body p { margin: 0; color: #1d3b2e; font-size: .98rem; line-height: 1.5; }
.rz1-team-notice-rule {
  padding: 12px 14px;
  border-radius: 12px;
  color: #0f4a32;
  background: #e7f6ee;
}
.rz1-team-notice-ok {
  justify-self: start;
  min-height: 48px;
  margin-top: 4px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: #15814b;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.rz1-team-notice-ok:disabled { opacity: .7; cursor: progress; }
.app-issue-dialog {
  width: min(540px, calc(100vw - 28px));
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
}
.app-issue-dialog::backdrop {
  background: rgba(3, 39, 28, .54);
  backdrop-filter: blur(3px);
}
.app-issue-dialog-card {
  padding: 24px;
  border: 1px solid #b9d8c0;
  border-radius: 20px;
  background: linear-gradient(145deg, #fff, #f3faf3);
  box-shadow: 0 26px 65px rgba(4, 41, 30, .3);
}
.app-issue-dialog-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.app-issue-dialog-heading .eyebrow { margin: 0 0 5px; }
.app-issue-dialog-heading h2 {
  margin: 0;
  color: var(--forest);
  font-size: 23px;
  letter-spacing: -.03em;
}
.app-issue-dialog-heading p:not(.eyebrow) {
  margin: 6px 0 0;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.45;
}
.dialog-close {
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  color: #915043;
  border: 1px solid #e7c5be;
  border-radius: 10px;
  background: #fff8f6;
  font-size: 22px;
  line-height: 1;
}
.dialog-close:hover { background: #ffede8; }

/* [VirixBlades] CSS moved to blades.css (former 25-831) */

* { box-sizing: border-box; }
html { min-height: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; touch-action: manipulation; }
/* VIRIX-081: elimină flash-ul gri/albastru de "tap highlight" pe Android/iOS la
   atingerea butoanelor și linkurilor; păstrăm feedback vizual prin :active proprii. */
button, a, [role="button"], input, select, textarea, summary, label { -webkit-tap-highlight-color: transparent; }
body { min-width: 0; min-height: 100dvh; overflow-x: clip; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  /* Fundal discret, cu adâncime: rămâne calm pentru lucru zilnic, dar dă
     aplicației aceeași identitate verde Virix pe ecrane mari și mobile. */
  background-color: #e9f4e8;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
  background-blend-mode: normal;
  background-attachment: scroll;
  font: 15px/1.5 "Aptos", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
}
/* Magazie / Tehnic — rețeta Debitare/Vânzări: poză + wash CSS ușor (nu spălat dublu). */
body:not(.operator-locked):not(.module-home):not(.platform-module-mode) {
  background-color: #eef4ee;
  background-image:
    linear-gradient(90deg, rgba(244, 250, 244, .28), rgba(250, 252, 248, .38) 34%, rgba(250, 252, 248, .38) 66%, rgba(239, 247, 239, .28)),
    url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8");
  background-blend-mode: normal;
}
body.warehouse-area:not(.operator-locked),
body.warehouse-operator-mode:not(.module-home):not(.operator-locked),
body.maintenance-only-mode:not(.module-home):not(.operator-locked) {
  background-color: #eef4ee !important;
  background-image:
    linear-gradient(90deg, rgba(244, 250, 244, .28), rgba(250, 252, 248, .38) 34%, rgba(250, 252, 248, .38) 66%, rgba(239, 247, 239, .28)),
    url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
  background-attachment: scroll !important;
  background-blend-mode: normal !important;
}
/* Layer fix: garantat vizibil indiferent de overflow pe body. */
#virix-warehouse-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #eef4ee;
  background-image:
    linear-gradient(90deg, rgba(244, 250, 244, .28), rgba(250, 252, 248, .38) 34%, rgba(250, 252, 248, .38) 66%, rgba(239, 247, 239, .28)),
    url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
body.warehouse-area:not(.operator-locked) #virix-warehouse-backdrop,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) #virix-warehouse-backdrop,
body.maintenance-only-mode:not(.module-home):not(.operator-locked) #virix-warehouse-backdrop {
  display: block;
}
body.warehouse-area:not(.operator-locked) > .topbar,
body.warehouse-area:not(.operator-locked) > main,
body.warehouse-area:not(.operator-locked) > dialog,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) > .topbar,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) > main,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) > dialog,
body.maintenance-only-mode:not(.module-home):not(.operator-locked) > .topbar,
body.maintenance-only-mode:not(.module-home):not(.operator-locked) > main,
body.maintenance-only-mode:not(.module-home):not(.operator-locked) > dialog {
  position: relative;
  z-index: 1;
}
@media (max-width: 720px) {
  body.warehouse-area:not(.operator-locked),
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked),
  body.maintenance-only-mode:not(.module-home):not(.operator-locked),
  body.warehouse-area:not(.operator-locked) #virix-warehouse-backdrop,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) #virix-warehouse-backdrop,
  body.maintenance-only-mode:not(.module-home):not(.operator-locked) #virix-warehouse-backdrop {
    background-image:
      linear-gradient(180deg, rgba(247, 251, 246, .36), rgba(250, 252, 248, .44) 45%, rgba(243, 249, 244, .40)),
      url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8") !important;
  }
}

/* CORE: atmosferă Vânzări — layer viewport-fix (SoT = Magazie/Pânze backdrop).
   Poza NU stă pe body: cover pe body recadrează când Laturoaie/Cherestea au înălțimi diferite
   și se mișcă la scroll (background-attachment: scroll). */
#virix-sales-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #eef5f0;
  background-image:
    linear-gradient(90deg, rgba(244, 250, 246, .28), rgba(250, 252, 249, .38) 34%, rgba(250, 252, 249, .38) 66%, rgba(241, 248, 244, .28)),
    url("/static/assets/virix-sales-background-v1-lite.jpg?v=20260730-sales-bg-v2");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.sales-module-mode #virix-sales-backdrop {
  display: block;
}
body.module-home #virix-sales-backdrop,
body.operator-locked #virix-sales-backdrop {
  display: none;
}
body.sales-module-mode,
body.sales-module-mode:not(.operator-locked) {
  background-color: #eef5f0 !important;
  background-image: none !important;
}
/* position:relative fără z-index: deasupra backdrop z=0, fără stacking context
   care ar prinde .sales-prices-overlay (z=12000) sub .topbar (z=50). */
body.sales-module-mode > main,
body.sales-module-mode > dialog {
  position: relative;
}
@media (max-width: 720px) {
  #virix-sales-backdrop {
    background-image:
      linear-gradient(180deg, rgba(245, 250, 246, .36), rgba(250, 252, 249, .44) 45%, rgba(242, 248, 244, .4)),
      url("/static/assets/virix-sales-background-v1-lite.jpg?v=20260730-sales-bg-v2");
  }
}

/* CORE: atmosferă Debitare primară — layer viewport-fix (SoT = Magazie/Vânzări).
   Poza NU stă pe body: attachment:scroll o mută cu pagina; attachment:fixed e interzis
   (contract platformă + iOS + sticky). */
#virix-primary-cutting-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #eef4ee;
  background-image:
    linear-gradient(90deg, rgba(244, 250, 244, .58), rgba(250, 252, 248, .68) 34%, rgba(250, 252, 248, .68) 66%, rgba(239, 247, 239, .58)),
    url("/static/assets/virix-primary-cutting-background-v1-lite.jpg?v=20260730-perf002g-v8");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.primary-cutting-mode:not(.operator-locked):not(.module-home) #virix-primary-cutting-backdrop {
  display: block;
}
body.module-home #virix-primary-cutting-backdrop,
body.operator-locked #virix-primary-cutting-backdrop {
  display: none;
}
body.primary-cutting-mode:not(.operator-locked) {
  background-color: #eef4ee !important;
  background-image: none !important;
}
/* position:relative fără z-index: deasupra backdrop z=0, fără stacking context
   care ar prinde overlay-uri sub .topbar (lecția Vânzări). */
body.primary-cutting-mode:not(.operator-locked) > main,
body.primary-cutting-mode:not(.operator-locked) > dialog {
  position: relative;
}
@media (max-width: 720px) {
  #virix-primary-cutting-backdrop {
    background-image:
      linear-gradient(180deg, rgba(247, 251, 246, .72), rgba(250, 252, 248, .78) 45%, rgba(243, 249, 244, .74)),
      url("/static/assets/virix-primary-cutting-background-v1-lite.jpg?v=20260730-perf002g-v8");
  }
}

/* CORE: atmosferă Incidente — layer viewport-fix (SoT = Vânzări/Magazie/Pânze).
   Poza NU stă pe body: cover + background-attachment:scroll mută fundalul la scroll. */
#virix-incidents-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f3f6f2;
  background-image:
    radial-gradient(ellipse 70% 50% at 92% 8%, rgba(175, 69, 67, .05), transparent 55%),
    radial-gradient(ellipse 55% 45% at 6% 92%, rgba(183, 232, 105, .08), transparent 50%),
    linear-gradient(105deg, rgba(244, 250, 244, .38), rgba(250, 252, 248, .46) 40%, rgba(248, 246, 242, .42) 70%, rgba(243, 248, 244, .36)),
    url("/static/assets/virix-card-incidente-v1-lite.jpg?v=20260731-inc-bg-v2");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.incidents-module-mode #virix-incidents-backdrop {
  display: block;
}
#virix-coordination-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f3f6f2;
  background-image:
    radial-gradient(ellipse 70% 50% at 92% 8%, rgba(14, 117, 71, .06), transparent 55%),
    radial-gradient(ellipse 55% 45% at 6% 92%, rgba(183, 232, 105, .08), transparent 50%),
    linear-gradient(105deg, rgba(244, 250, 244, .38), rgba(250, 252, 248, .46) 40%, rgba(248, 246, 242, .42) 70%, rgba(243, 248, 244, .36)),
    url("/static/assets/virix-card-coordonare-v1-lite.jpg?v=20260903-coord-ui-v1");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.coordination-module-mode #virix-coordination-backdrop {
  display: block;
}
body.module-home #virix-coordination-backdrop,
body.operator-locked #virix-coordination-backdrop {
  display: none;
}
#virix-dashboard-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f3f6f2;
  background-image:
    radial-gradient(ellipse 70% 50% at 92% 8%, rgba(14, 117, 71, .06), transparent 55%),
    radial-gradient(ellipse 55% 45% at 6% 92%, rgba(183, 232, 105, .08), transparent 50%),
    linear-gradient(105deg, rgba(244, 250, 244, .38), rgba(250, 252, 248, .46) 40%, rgba(248, 246, 242, .42) 70%, rgba(243, 248, 244, .36)),
    url("/static/assets/virix-card-dashboard-v1-lite.jpg?v=20260912-dashboard-floor-v1");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.dashboard-module-mode #virix-dashboard-backdrop {
  display: block;
}
body.module-home #virix-dashboard-backdrop,
body.operator-locked #virix-dashboard-backdrop {
  display: none;
}
body.dashboard-module-mode,
body.dashboard-module-mode:not(.operator-locked) {
  background-color: #f3f6f2 !important;
  background-image: none !important;
}
body.dashboard-module-mode > main,
body.dashboard-module-mode > dialog {
  position: relative;
}
body.coordination-module-mode,
body.coordination-module-mode:not(.operator-locked) {
  background-color: #f3f6f2 !important;
  background-image: none !important;
}
body.coordination-module-mode > main,
body.coordination-module-mode > dialog {
  position: relative;
}
body.module-home #virix-incidents-backdrop,
body.operator-locked #virix-incidents-backdrop {
  display: none;
}
body.incidents-module-mode,
body.incidents-module-mode:not(.operator-locked) {
  background-color: #f3f6f2 !important;
  background-image: none !important;
}
/* position:relative fără z-index: deasupra backdrop z=0, fără stacking context
   care ar prinde lightbox-ul de foto sub .topbar (z=50). */
body.incidents-module-mode > main,
body.incidents-module-mode > dialog {
  position: relative;
}
@media (max-width: 720px) {
  #virix-incidents-backdrop {
    background-image:
      radial-gradient(ellipse 80% 40% at 90% 0%, rgba(175, 69, 67, .05), transparent 50%),
      linear-gradient(180deg, rgba(247, 251, 246, .42), rgba(250, 252, 248, .5) 50%, rgba(243, 249, 244, .44)),
      url("/static/assets/virix-card-incidente-v1-lite.jpg?v=20260731-inc-bg-v2");
  }
  #virix-coordination-backdrop {
    background-image:
      radial-gradient(ellipse 80% 40% at 90% 0%, rgba(14, 117, 71, .05), transparent 50%),
      linear-gradient(180deg, rgba(247, 251, 246, .42), rgba(250, 252, 248, .5) 50%, rgba(243, 249, 244, .44)),
      url("/static/assets/virix-card-coordonare-v1-lite.jpg?v=20260903-coord-ui-v1");
  }
  #virix-dashboard-backdrop {
    background-image:
      radial-gradient(ellipse 80% 40% at 90% 0%, rgba(14, 117, 71, .05), transparent 50%),
      linear-gradient(180deg, rgba(247, 251, 246, .42), rgba(250, 252, 248, .5) 50%, rgba(243, 249, 244, .44)),
      url("/static/assets/virix-card-dashboard-v1-lite.jpg?v=20260912-dashboard-floor-v1");
  }
}

#virix-technical-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background-color: #e8f0ea;
}
#virix-technical-backdrop::before {
  content: "";
  position: absolute;
  inset: -14px;
  background: #e8f0ea url("/static/assets/virix-blades-workshop-background-v7-lite.jpg") center center / cover no-repeat;
  filter: blur(2.5px);
  transform: translateZ(0);
}
#virix-technical-backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(243, 247, 243, .48),
    rgba(247, 251, 247, .62) 44%,
    rgba(238, 244, 239, .54)
  );
}
body.technical-module-mode #virix-technical-backdrop {
  display: block;
}
body.module-home #virix-technical-backdrop,
body.operator-locked #virix-technical-backdrop {
  display: none;
}
body.technical-module-mode,
body.technical-module-mode:not(.operator-locked) {
  background-color: #e8f0ea !important;
  background-image: none !important;
}
body.technical-module-mode > main,
body.technical-module-mode > dialog {
  position: relative;
}

#virix-blades-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background-color: #eef3ed;
}
#virix-blades-backdrop::before {
  content: "";
  position: absolute;
  inset: -18px;
  background: #eef3ed url("/static/assets/virix-blades-workshop-background-v7-lite.jpg") center center / cover no-repeat;
  filter: blur(3px);
  transform: translateZ(0);
}
#virix-blades-backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(244, 250, 244, .42),
    rgba(250, 252, 248, .52) 34%,
    rgba(250, 252, 248, .52) 66%,
    rgba(239, 247, 239, .42)
  );
}
body.blades-module-mode:not(.operator-locked) #virix-blades-backdrop,
body.blades-module-mode #virix-blades-backdrop {
  display: block;
}
body.blades-module-mode,
body.blades-module-mode:not(.operator-locked) {
  background-color: transparent !important;
  background-image: none !important;
}
body.blades-module-mode > .topbar,
body.blades-module-mode > main,
body.blades-module-mode > dialog {
  position: relative;
  z-index: 1;
}
@media (max-width: 720px) {
  #virix-blades-backdrop::before { filter: blur(2.5px); }
  #virix-blades-backdrop::after {
    background: linear-gradient(
      180deg,
      rgba(247, 251, 246, .52),
      rgba(250, 252, 248, .60) 42%,
      rgba(243, 249, 244, .54)
    );
  }
}

.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  min-height: 80px;
  /* 100% (nu 100vw): scrollbar-ul clasic pe Windows nu mai împinge bara spre dreapta. */
  padding: 10px max(24px, calc((100% - 1360px) / 2));
  display: flex;
  align-items: center;
  gap: 28px;
  color: #fff;
  background: linear-gradient(114deg, rgba(4, 41, 30, .98), rgba(7, 60, 43, .96) 58%, rgba(17, 91, 49, .95));
  border-bottom: 1px solid rgba(203, 241, 205, .13);
  box-shadow: 0 5px 22px rgba(4, 41, 30, .2);
  backdrop-filter: blur(18px);
}
/* Magazie + module platformă (Pânze etc.): bara rămâne mereu vizibilă la scroll.
   sticky eșuează din cauza overflow-x pe body / background-attachment: scroll. */
body.warehouse-operator-mode:not(.module-home):not(.operator-locked),
body.platform-module-mode:not(.module-home):not(.operator-locked) {
  --app-topbar-offset: 88px;
  padding-top: var(--app-topbar-offset);
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar,
body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 50;
}
/* Magazie: global topbar stays platform-owned; secondary nav is module chrome below. */
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar {
  justify-content: flex-start;
  gap: 14px;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .env-badge {
  flex: 0 0 auto;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-actions {
  flex: 0 0 auto;
  margin-left: auto;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user {
  max-width: min(22rem, 36vw);
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Magazie internal nav — scaffold only; visual design owned by warehouse.css. */
#warehouse-module-nav.warehouse-module-nav,
.warehouse-module-nav {
  display: none;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > #warehouse-module-nav.warehouse-module-nav:not([hidden]),
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > .warehouse-module-nav:not([hidden]) {
  display: flex;
  position: relative;
  z-index: 5;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 2px;
  width: 100%;
  max-width: 100%;
  margin: 0 0 10px;
  padding: 0;
  overflow-x: auto;
  overflow-y: visible;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  touch-action: pan-x pan-y;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > .warehouse-module-nav > a,
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > .warehouse-module-nav > .nav-menu {
  flex: 0 0 auto;
}
body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > .warehouse-module-nav::-webkit-scrollbar {
  display: none;
}
/* 20260821-wh-chrome-phone-v1 — scaffold pe telefon: fără overflow-x:auto
   (taie vertical) și fără nowrap (Acasă/Lucrează/Stoc ies din ecran).
   Designul vizual rămâne în warehouse.css. */
@media (max-width: 1100px) {
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > #warehouse-module-nav.warehouse-module-nav:not([hidden]),
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > .warehouse-module-nav:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(5.75rem, 1fr));
    flex-wrap: unset;
    overflow: visible;
    overflow-x: visible;
  }
}
/* Hard isolation: Magazie nav must never render inside the global header or as body-level chrome. */
.topbar .main-nav,
.topbar .warehouse-module-nav,
.topbar #warehouse-module-nav,
body > #warehouse-module-nav,
body > .warehouse-module-nav {
  display: none !important;
}
.brand { position: relative; z-index: 2; min-width: max-content; display: flex; align-items: center; gap: 11px; padding: 0; color: inherit; border: 0; background: transparent; text-decoration: none; font: inherit; text-align: left; }
.brand-refresh { cursor: pointer; border-radius: 16px; transition: transform .18s, filter .18s; }
.brand-refresh:hover { transform: translateY(-1px); filter: brightness(1.08); }
.brand-refresh:focus-visible { outline: 3px solid rgba(189, 231, 138, .7); outline-offset: 4px; }

/* Pull-to-refresh (telefon): același efect ca butonul de pe siglă. */
.pull-refresh {
  position: fixed;
  z-index: 80;
  top: 0;
  left: 50%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 8px 14px;
  border: 1px solid rgba(193, 220, 197, .95);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: #1f5a3d;
  box-shadow: 0 10px 24px rgba(8, 72, 42, .16);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
  transform: translate(-50%, calc(-110% + var(--pull, 0px)));
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s ease;
}
.pull-refresh:not([hidden]) { opacity: 1; }
.pull-refresh.is-ready { color: #0d5c4f; border-color: #8fbe3a; }
.pull-refresh.is-refreshing { opacity: 1; transform: translate(-50%, 12px); }
.pull-refresh-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid #c5dec9;
  border-top-color: #1f8a4d;
  border-radius: 50%;
}
.pull-refresh.is-ready .pull-refresh-spinner,
.pull-refresh.is-refreshing .pull-refresh-spinner {
  animation: pull-refresh-spin .7s linear infinite;
}
@keyframes pull-refresh-spin {
  to { transform: rotate(360deg); }
}
body.pull-refreshing { cursor: progress; }
@media (min-width: 721px) {
  .pull-refresh { display: none !important; }
}
.brand-logo { width: 76px; height: 52px; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.28); border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px rgba(7, 60, 43, .08), 0 8px 18px rgba(0,0,0,.17); }
.brand-logo img { width: 100%; height: 100%; padding: 3px; object-fit: contain; object-position: center; }
.brand-copy { display: grid; line-height: 1.05; }
.brand-copy strong { font-size: 17px; letter-spacing: -.025em; }
.brand-copy span { margin-top: 5px; color: rgba(232, 255, 229, .72); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 4px; margin: 0 auto; padding: 4px; border: 1px solid rgba(255,255,255,.13); border-radius: 13px; background: rgba(255,255,255,.07); }
.main-nav a, .nav-menu > summary { padding: 8px 11px; color: rgba(245, 255, 246, .78); border-radius: 9px; font-size: 13px; font-weight: 650; text-decoration: none; transition: color .18s, background .18s, transform .18s; }
.main-nav a:hover, .nav-menu > summary:hover, .nav-menu[open] > summary { color: #fff; background: rgba(255,255,255,.13); transform: translateY(-1px); }
.nav-menu { position: relative; list-style: none; }
.nav-menu > summary { display: flex; align-items: center; gap: 5px; cursor: pointer; white-space: nowrap; list-style: none; }
.nav-menu > summary::-webkit-details-marker { display: none; }
.nav-menu > summary span { font-size: 14px; line-height: 1; transition: transform .16s; }
.nav-menu[open] > summary span { transform: rotate(180deg); }
.nav-menu-dropdown { position: absolute; z-index: 80; top: calc(100% + 8px); left: 0; min-width: 218px; padding: 6px; display: grid; gap: 2px; border: 1px solid #cce1cf; border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 16px 34px rgba(16,73,40,.2); }
.nav-menu-end .nav-menu-dropdown { right: 0; left: auto; }
.nav-menu-item { width: 100%; min-height: 36px; padding: 8px 10px; display: flex; align-items: center; color: #174d31; border: 0; border-radius: 8px; background: transparent; font: 700 12px inherit; text-align: left; text-decoration: none; cursor: pointer; }
.nav-menu-item:hover, .nav-menu-item:focus-visible { color: #073920; outline: none; background: #eaf6eb; }
.main-nav .nav-menu-item { color: #174d31; transform: none; }
.main-nav .nav-menu-item:hover, .main-nav .nav-menu-item:focus-visible { color: #073920; background: #eaf6eb; transform: none; }
.nav-menu-action { min-height: 40px; margin-bottom: 2px; padding-inline: 11px; color: #fff !important; background: var(--nav-action-background); box-shadow: 0 4px 10px rgba(14, 74, 42, .12); }
.nav-menu-action span { width: 19px; height: 19px; margin-right: 7px; display: grid; place-items: center; border-radius: 6px; background: rgba(255,255,255,.2); font-size: 16px; line-height: 1; }
.main-nav .nav-menu-action-in { --nav-action-background: linear-gradient(135deg, #0d7948, #168a55); }
.main-nav .nav-menu-action-out { --nav-action-background: linear-gradient(135deg, #bf5b2b, #d9783e); }
.main-nav .nav-menu-action-return { --nav-action-background: linear-gradient(135deg, #397a65, #579e82); }
.main-nav .nav-menu-action-disposition { --nav-action-background: linear-gradient(135deg, #9b4c3d, #bf6d54); }
.main-nav .nav-menu-action:hover, .main-nav .nav-menu-action:focus-visible { color: #fff; background: var(--nav-action-background); filter: brightness(1.06); }
.topbar-actions { position: relative; display: flex; align-items: center; gap: 14px; }
.topbar-back { min-height: 34px; padding: 0 10px; color: rgba(248,255,249,.94); border: 1px solid rgba(255,255,255,.22); border-radius: 9px; background: rgba(255,255,255,.08); font: 750 11px inherit; cursor: pointer; white-space: nowrap; transition: background .16s, transform .16s; }
.topbar-back:hover { background: rgba(255,255,255,.17); transform: translateY(-1px); }
/* Shared chrome — !important against module CSS that styles `button` inside body.*-mode. */
.topbar .topbar-module-home,
.topbar-module-home {
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  color: #f8fff9;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 9px;
  background: rgba(255,255,255,.10);
  font: 800 19px/1 inherit;
  cursor: pointer;
  transition: background .16s, transform .16s;
}
.topbar-module-home:hover, .topbar-module-home:focus-visible { background: rgba(183, 232, 105, .22); transform: translateY(-1px); outline: none; }
.topbar .topbar-module-home .topbar-home-icon,
.topbar-module-home .topbar-home-icon {
  display: inline-flex !important;
  width: 1.35em !important;
  height: 1.35em !important;
  color: inherit;
}
.session-user {
  display: grid;
  gap: 2px;
  width: max-content;
  max-width: min(100%, 48rem);
  min-height: 36px;
  padding: 5px 12px;
  color: #f8fff9;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 9px;
  background: rgba(255,255,255,.08);
  text-align: left;
  cursor: pointer;
  flex: 0 1 auto;
}
.session-user:hover { background: rgba(255,255,255,.16); }
.session-user strong {
  max-width: none;
  overflow: visible;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.session-user small { color: rgba(241,255,242,.72); font-size: 9px; font-weight: 700; }
.session-user-home { display: none; }

/* PERF-002b/c: fundal lite pe alegere utilizator/PIN (nu PNG 2MB; nu zero fundal). */
body.operator-locked {
  min-height: 100vh;
  background-color: #f3f6e8;
  background-image:
    linear-gradient(105deg, rgba(255, 248, 232, .22), rgba(236, 246, 220, .28)),
    url("/static/assets/virix-platform-zones-background-v7-lite.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-attachment: scroll;
  background-blend-mode: normal;
}
/* Alegerea zonei — același fundal lite. */
body.operator-locked.access-zone-selecting {
  background-color: #f3f6e8;
  background-image:
    linear-gradient(105deg, rgba(255, 248, 232, .18), rgba(236, 246, 220, .24)),
    url("/static/assets/virix-platform-zones-background-v7-lite.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-attachment: scroll;
  background-blend-mode: normal;
}
body.operator-locked main,
body.operator-locked .brand,
body.operator-locked .main-nav,
body.operator-locked .notification-button,
body.operator-locked .notification-panel,
body.operator-locked .topbar-back,
body.operator-locked .topbar-module-home,
body.operator-locked .connection { display: none !important; }
body.operator-locked .topbar-issue-button { display: none !important; }
body.operator-locked .topbar { min-height: 100vh; justify-content: center; align-content: center; padding: 34px 20px; background: transparent; box-shadow: none; backdrop-filter: none; }
body.operator-locked .topbar-actions { width: min(100%, 520px); margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 14px; border: 1px solid rgba(193, 220, 197, .95); border-radius: 27px; background: rgba(255,255,255,.88); box-shadow: 0 28px 70px rgba(12, 74, 50, .18); backdrop-filter: blur(15px); }
.access-zone-chooser { display: none; }
body.operator-locked.access-zone-selecting .topbar-actions { width: min(100%, 760px); grid-template-columns: 1fr; padding: 16px; }
body.operator-locked.access-zone-selecting .login-welcome,
body.operator-locked.access-zone-selecting .current-user,
body.operator-locked.access-zone-selecting .login-user-picker,
body.operator-locked.access-zone-selecting .operator-unlock { display: none !important; }
/* Pe ecranul cu cele șase module nu există nici utilizator, nici PIN.
   Regula este repetată explicit pentru telefon, unde PIN-ul este altfel
   forțat vizibil după alegerea unui profil. */
body.operator-locked.access-zone-selecting .topbar-actions .current-user-pin { display: none !important; }
body.operator-locked.access-zone-selecting .access-zone-chooser { display: grid; gap: 14px; }
.access-zone-hero { position: relative; display: grid; grid-template-columns: 94px minmax(0, 1fr); align-items: center; gap: 17px; padding: 25px; overflow: hidden; color: #fff; border-radius: 19px; background: radial-gradient(circle at 96% 4%, rgba(183, 232, 105, .42), transparent 10rem), linear-gradient(135deg, #043b2a, #0e7547); }
.access-zone-hero::after { content: ''; position: absolute; right: -55px; bottom: -96px; width: 220px; height: 220px; border: 31px solid rgba(207,247,177,.14); border-radius: 50%; }
.access-zone-hero img { position: relative; z-index: 1; width: 94px; height: 72px; padding: 4px; object-fit: contain; object-position: center; border-radius: 15px; background: #fff; box-shadow: 0 12px 25px rgba(0,0,0,.2); }
.access-zone-hero > *:not(.access-zone-hero-actions), .access-zone-hero-main, .access-zone-hero-main > div { position: relative; z-index: 1; }
.access-zone-hero p { margin: 0 0 6px; color: #bde987; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.access-zone-hero h1 { margin: 0; color: #fff; font-size: clamp(25px, 5vw, 33px); letter-spacing: -.045em; }
.access-zone-hero-main span { display: block; margin-top: 7px; color: rgba(245,255,245,.82); font-size: 12px; line-height: 1.45; }
.access-zone-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.access-zone-card { position: relative; isolation: isolate; overflow: hidden; min-height: 174px; padding: 22px 18px 20px; display: grid; grid-template-columns: 1fr; justify-items: center; align-content: center; gap: 12px; color: var(--ink); border: 1px solid #d5e7d8; border-radius: 18px; background-color: #f2f9f1; background-image: none; background-clip: padding-box; text-align: center; cursor: pointer; box-shadow: 0 8px 18px rgba(9,71,40,.06); transition: transform .18s, box-shadow .18s, border-color .18s; }
.access-zone-card > * { position: relative; z-index: 1; }
/* Fundalul foto stă pe ::before (nu pe buton) ca să nu apară dunga de 1px
   pe muchia dreaptă din overflow+radius+border pe lățimi fractionale. */
.access-zone-card::before {
  --az-card-photo-blur: 1.5px;
  --az-card-wash-from: .80;
  --az-card-wash-to: .78;
  content: '';
  position: absolute;
  z-index: 0;
  inset: calc(-1 * (4px + var(--az-card-photo-blur)));
  border-radius: inherit;
  pointer-events: none;
  background-color: inherit;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: blur(var(--az-card-photo-blur));
}
.access-zone-card::after { content: ''; position: absolute; z-index: 0; inset: 0; border-radius: inherit; pointer-events: none; opacity: .9; }
.access-zone-card:hover { transform: translateY(-3px); border-color: #84bb90; box-shadow: 0 16px 30px rgba(8,72,42,.14); }
.access-zone-card:focus-visible { outline: 3px solid rgba(111,187,111,.34); outline-offset: 3px; }
.access-zone-icon { width: 52px; height: 52px; display: grid; place-items: center; color: #fff; border-radius: 16px; background: linear-gradient(135deg, #0a5b3e, #21965a); box-shadow: 0 10px 18px rgba(8,91,55,.2); }
.access-zone-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.access-zone-card > span:last-of-type,
.access-zone-card .access-zone-copy { display: grid; justify-items: center; align-content: center; gap: 5px; width: 100%; max-width: 240px; text-align: center; }
.access-zone-card small,
.access-zone-card .access-zone-badge { color: #5f876a; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.access-zone-card strong,
.access-zone-card .access-zone-title { color: var(--forest); font-size: 22px; letter-spacing: -.035em; line-height: 1.1; }
.access-zone-card em,
.access-zone-card .access-zone-desc { color: var(--ink-soft); font-size: 11px; font-style: normal; line-height: 1.35; max-width: 22ch; }
/* Tehnic — chei / atelier mecanic */
.technical-zone { border-color: #c5e4cf; background-color: #f4fcf6; }
.technical-zone::before {
  background-image:
    linear-gradient(145deg, rgba(244, 252, 246, var(--az-card-wash-from)), rgba(223, 245, 231, var(--az-card-wash-to))),
    url("/static/assets/virix-card-tehnic-v1-lite.jpg");
}
.technical-zone .access-zone-icon { background: linear-gradient(135deg, #127048, #3f9d5d); }
.technical-zone::after { background:
  radial-gradient(circle at 88% 18%, rgba(34, 140, 78, .10) 0 10px, transparent 11px); opacity: .55; }
/* Magazie — rafturi / paleți */
.warehouse-zone { border-color: #d0e5a8; background-color: #f8fcf0; }
.warehouse-zone::before {
  background-image:
    linear-gradient(145deg, rgba(248, 252, 240, var(--az-card-wash-from)), rgba(232, 246, 201, var(--az-card-wash-to))),
    url("/static/assets/virix-card-magazie-v1-lite.jpg");
}
.warehouse-zone .access-zone-icon { background: linear-gradient(135deg, #2f7d28, #8fbe3a); }
.warehouse-zone::after { background:
  linear-gradient(90deg, transparent 78%, rgba(102,145,55,.08) 78% 80%, transparent 80%); opacity: .5; }
/* Debitare — bușteni */
.production-zone { border-color: #b9ddd8; background-color: #f0faf8; }
.production-zone::before {
  background-image:
    linear-gradient(145deg, rgba(240, 250, 248, var(--az-card-wash-from)), rgba(217, 241, 238, var(--az-card-wash-to))),
    url("/static/assets/virix-card-debitare-v2-lite.jpg");
}
.production-zone .access-zone-icon { background: linear-gradient(135deg, #0f6f6a, #2fb3a8); }
.production-zone::after { background:
  radial-gradient(circle at 90% 16%, transparent 0 16px, rgba(26,132,148,.10) 17px 18px, transparent 19px); opacity: .55; }
/* Produse finite — pachete cherestea */
.finished-zone { border-color: #edd3a0; background-color: #fff9ef; }
.finished-zone::before {
  background-image:
    linear-gradient(145deg, rgba(255, 249, 239, var(--az-card-wash-from)), rgba(255, 231, 189, var(--az-card-wash-to))),
    url("/static/assets/virix-card-finite-v1-lite.jpg");
}
.finished-zone .access-zone-icon { background: linear-gradient(135deg, #b56a14, #e8a73a); }
.finished-zone::after { background-image:
  linear-gradient(rgba(193,126,31,.06) 1px, transparent 1px),
  linear-gradient(90deg, rgba(193,126,31,.06) 1px, transparent 1px);
  background-size: 16px 16px; background-position: center; opacity: .45; }
/* Pânze — disc + panglică (otel, fără violet) */
.blades-zone { border-color: #b7d6d0; background-color: #f2f8f7; }
.blades-zone::before {
  background-image:
    linear-gradient(145deg, rgba(242, 248, 247, var(--az-card-wash-from)), rgba(215, 236, 232, var(--az-card-wash-to))),
    url("/static/assets/virix-card-panze-v1-lite.jpg");
}
.blades-zone .access-zone-icon { background: linear-gradient(135deg, #1d6b62, #4aa899); }
.blades-zone::after { background:
  radial-gradient(ellipse at 90% 18%, transparent 0 15px, rgba(45, 130, 118, .12) 16px 17px, transparent 18px); opacity: .55; }
/* Incidente */
.incidents-zone { border-color: #efc0b4; background-color: #fff7f4; }
.incidents-zone::before {
  background-image:
    linear-gradient(145deg, rgba(255, 247, 244, var(--az-card-wash-from)), rgba(255, 217, 207, var(--az-card-wash-to))),
    url("/static/assets/virix-card-incidente-v1-lite.jpg");
}
.incidents-zone .access-zone-icon { background: linear-gradient(135deg, #b44636, #e07a56); }
.incidents-zone::after { background:
  radial-gradient(circle at 90% 16%, rgba(190,78,50,.10) 0 6px, transparent 7px); opacity: .5; }
/* Coordonare — comandă / sarcini (DEC-347: aceeași poză pe card și backdrop) */
.coordination-zone { border-color: #c5d4c8; background-color: #f3f7f4; }
.coordination-zone::before {
  --az-card-photo-blur: 2px;
  --az-card-wash-from: .58;
  --az-card-wash-to: .52;
  background-position: 58% 78%;
  background-image:
    linear-gradient(145deg, rgba(243, 247, 244, var(--az-card-wash-from)), rgba(196, 214, 204, var(--az-card-wash-to))),
    url("/static/assets/virix-card-coordonare-v1-lite.jpg?v=20260903-coord-ui-v1");
}
.coordination-zone .access-zone-icon { background: linear-gradient(135deg, #164536, #3f7d64); }
.coordination-zone::after { background:
  radial-gradient(circle at 88% 18%, rgba(14,117,71,.10) 0 7px, transparent 8px); opacity: .5; }
/* DEC-358 / DEC-361: avertizor inbox — decorativ; cardul întreg deschide modulul */
.coordination-zone .access-zone-signal {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  min-height: 22px;
  padding: 0 8px;
  border: 0;
  border-radius: 99px;
  background: #164536;
  color: #e8f4ec;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1;
  pointer-events: none;
  user-select: none;
  box-shadow: 0 2px 8px rgba(22, 69, 54, .28);
}
.coordination-zone .access-zone-signal:not([hidden]) {
  display: inline-grid;
  place-items: center;
}
/* Stocuri — cherestea / laturoaie */
.stocks-zone { border-color: #e0c89a; background-color: #fffaf2; }
.stocks-zone::before {
  background-image:
    linear-gradient(145deg, rgba(255, 250, 242, var(--az-card-wash-from)), rgba(245, 228, 190, var(--az-card-wash-to))),
    url("/static/assets/virix-card-stocuri-cherestea-v1-lite.jpg");
}
.stocks-zone .access-zone-icon { background: linear-gradient(135deg, #9a6a28, #d4a24a); }
.stocks-zone::after { background:
  linear-gradient(90deg, transparent 76%, rgba(154,106,40,.08) 76% 78%, transparent 78%); opacity: .5; }
.logistics-zone { border-color: #d8c39a; background-color: #fff8ef; }
.logistics-zone::before {
  /* Same factory log family as the IL module atmosphere (DEC-192). Crop to the pile. */
  background-position: 18% 78%;
  background-image:
    linear-gradient(145deg, rgba(255, 248, 239, var(--az-card-wash-from)), rgba(237, 220, 176, var(--az-card-wash-to))),
    url("/static/assets/virix-primary-cutting-background-v1-lite.jpg?v=20260730-perf002g-v8");
}
.logistics-zone .access-zone-icon { background: linear-gradient(135deg, #8a5a22, #c7923d); }
.logistics-zone::after { background:
  radial-gradient(circle at 88% 18%, rgba(138,90,34,.10) 0 7px, transparent 8px); opacity: .5; }
/* Vânzări — card pe meniu (PP-001: nu aștepta sales.css lazy) */
.sales-zone { border-color: #b8d4c4; background-color: #f4faf6; }
.sales-zone::before {
  background-image:
    linear-gradient(145deg, rgba(244, 250, 246, var(--az-card-wash-from)), rgba(214, 236, 224, var(--az-card-wash-to))),
    url("/static/assets/virix-card-vanzari-v1-lite.jpg");
}
.sales-zone .access-zone-icon { background: linear-gradient(135deg, #1f6f4e, #4e9f74); }
.sales-zone::after { background:
  radial-gradient(circle at 90% 18%, rgba(31,111,78,.10) 0 8px, transparent 9px); opacity: .5; }
/* Personal — oameni / HR / documente (atmosferă subtilă, ca celelalte module) */
.personal-zone { border-color: #b7ddd0; background-color: #f3faf7; }
.personal-zone::before {
  background-image:
    linear-gradient(145deg, rgba(243, 250, 247, var(--az-card-wash-from)), rgba(199, 232, 218, var(--az-card-wash-to))),
    url("/static/assets/virix-card-personal-v1-lite.jpg");
}
.personal-zone .access-zone-icon { background: linear-gradient(135deg, #176b52, #3fad86); }
.personal-zone::after { background:
  radial-gradient(circle at 88% 18%, rgba(23,107,82,.10) 0 7px, transparent 8px); opacity: .5; }
/* Dashboard — KPI / analiză / control (atmosferă subtilă, ca celelalte module) */
.dashboard-zone { border-color: #b8cfe0; background-color: #f3f7fb; }
.dashboard-zone::before {
  background-image:
    linear-gradient(145deg, rgba(243, 247, 251, var(--az-card-wash-from)), rgba(205, 224, 239, var(--az-card-wash-to))),
    url("/static/assets/virix-card-dashboard-v1-lite.jpg");
}
.dashboard-zone .access-zone-icon { background: linear-gradient(135deg, #1f4f73, #4a8bb5); }
.dashboard-zone::after { background:
  radial-gradient(circle at 88% 18%, rgba(31,79,115,.10) 0 7px, transparent 8px); opacity: .5; }

/* CORE: atmosferă Produse Finite — layer viewport-fix (SoT = Debitare/Magazie).
   Poza de cherestea (pachete din uscătoare), nu bușteanul Debitare. Nu picta pe body. */
#virix-finished-products-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #fff9ef;
  background-image:
    linear-gradient(90deg, rgba(255, 249, 239, .62), rgba(252, 248, 240, .70) 34%, rgba(252, 248, 240, .70) 66%, rgba(255, 246, 232, .58)),
    url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.finished-products-mode:not(.operator-locked):not(.module-home) #virix-finished-products-backdrop {
  display: block;
}
body.module-home #virix-finished-products-backdrop,
body.operator-locked #virix-finished-products-backdrop {
  display: none;
}
body.finished-products-mode:not(.operator-locked):not(.module-home) {
  background-color: #fff9ef !important;
  background-image: none !important;
}
body.finished-products-mode:not(.operator-locked) > main,
body.finished-products-mode:not(.operator-locked) > dialog {
  position: relative;
}
@media (max-width: 720px) {
  #virix-finished-products-backdrop {
    background-image:
      linear-gradient(180deg, rgba(255, 249, 239, .74), rgba(252, 248, 240, .80) 45%, rgba(255, 246, 232, .72)),
      url("/static/assets/virix-warehouse-background-v4-lite.jpg?v=20260730-whbg-v8");
  }
}

/* CORE: atmosferă Logistică internă — layer viewport-fix (SoT = Debitare/Vânzări).
   Familia foto e bușteanul de fabrică, nu pachetele Magazie. Identitatea față de
   Debitare e spălarea caldă (chihlimbar/rampă), nu o poză AI și nu un design system nou.
   Poza NU stă pe body. */
#virix-internal-logistics-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f4efe6;
  background-image:
    radial-gradient(ellipse 60% 45% at 12% 88%, rgba(140, 92, 42, .10), transparent 55%),
    radial-gradient(ellipse 50% 40% at 92% 8%, rgba(14, 117, 71, .08), transparent 50%),
    linear-gradient(105deg, rgba(255, 246, 232, .42), rgba(252, 248, 240, .52) 38%, rgba(244, 250, 244, .48) 70%, rgba(236, 244, 236, .40)),
    url("/static/assets/virix-primary-cutting-background-v1-lite.jpg?v=20260730-perf002g-v8");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-blend-mode: normal;
}
body.internal-logistics-mode:not(.operator-locked):not(.module-home) #virix-internal-logistics-backdrop {
  display: block;
}
body.module-home #virix-internal-logistics-backdrop,
body.operator-locked #virix-internal-logistics-backdrop {
  display: none;
}
body.internal-logistics-mode:not(.operator-locked) {
  background-color: #f4efe6 !important;
  background-image: none !important;
}
/* position:relative fără z-index: deasupra backdrop z=0, fără stacking context
   care ar prinde overlay-uri sub .topbar (lecția Vânzări). */
body.internal-logistics-mode:not(.operator-locked) > main,
body.internal-logistics-mode:not(.operator-locked) > dialog {
  position: relative;
}
@media (max-width: 720px) {
  #virix-internal-logistics-backdrop {
    background-image:
      radial-gradient(ellipse 60% 45% at 12% 88%, rgba(140, 92, 42, .08), transparent 55%),
      radial-gradient(ellipse 50% 40% at 92% 8%, rgba(14, 117, 71, .06), transparent 50%),
      linear-gradient(180deg, rgba(255, 246, 232, .62), rgba(252, 248, 240, .70) 45%, rgba(244, 236, 220, .66)),
      url("/static/assets/virix-primary-cutting-background-v1-lite.jpg?v=20260730-perf002g-v8");
  }
}
body.incidents-module-mode:not(.operator-locked):not(.module-home) {
  background-color: #f3f6f2 !important;
  background-image: none !important;
}
body.coordination-module-mode:not(.operator-locked):not(.module-home) {
  background-color: #f3f5f8 !important;
  background-image: none !important;
}
/* RC9 early-paint: warm Stocks base only. Atmosphere is owned by .stc-canvas (full viewport).
   Do NOT set background-image:none in a way that fights module CSS — keep solid FOUC base. */
body.stocks-module-mode:not(.operator-locked):not(.module-home) {
  background-color: #f4ebe0 !important;
  background-image: none !important;
}

/* PP-006 / PP-008 / PP-012 — skeleton + chrome premium */
.virix-skeleton-block {
  min-height: 54px;
  margin: 0 0 8px;
  border-radius: 12px;
  background: linear-gradient(90deg, #e8f1ea 0%, #f4faf5 45%, #e8f1ea 90%);
  background-size: 200% 100%;
  animation: virix-skeleton-shine 1.2s ease-in-out infinite;
}
.virix-skeleton-row td { padding: 14px 12px !important; border-bottom: 1px solid #e8f0ea !important; }
.virix-skeleton-line {
  display: block;
  height: 12px;
  width: 72%;
  border-radius: 999px;
  background: linear-gradient(90deg, #e8f1ea 0%, #f4faf5 45%, #e8f1ea 90%);
  background-size: 200% 100%;
  animation: virix-skeleton-shine 1.2s ease-in-out infinite;
}
@keyframes virix-skeleton-shine {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
.platform-module-busy { opacity: .72; transition: opacity .15s ease; pointer-events: none; }
.topbar-home-icon,
.access-zone-admin-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35em;
  height: 1.35em;
}
.topbar-home-icon svg,
.access-zone-admin-icon svg {
  width: 100%;
  height: 100%;
}
.access-zone-admin-button .access-zone-admin-icon {
  width: 28px;
  height: 28px;
  margin-right: 2px;
  color: var(--forest);
}

.platform-module-placeholder { display: grid; gap: 10px; padding: 28px 24px; }
.platform-module-placeholder .eyebrow { margin: 0; color: #6a8071; font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.platform-module-placeholder h2 { margin: 0; color: var(--forest); font-size: clamp(22px, 3vw, 28px); letter-spacing: -.03em; }
.platform-module-placeholder p { margin: 0; max-width: 52ch; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.stocks-toolbar { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid #d5e7d8; border-radius: 14px; background: linear-gradient(145deg, #fff, #f4faf5); }
.stocks-toolbar label { display: grid; gap: 6px; min-width: min(100%, 220px); color: #496453; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.stocks-toolbar select { min-height: 42px; }
.stocks-toolbar .filter-summary { margin: 0; }
.stocks-empty-banner {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #e0c89a;
  border-radius: 12px;
  background: #fff8ec;
  color: #6a4a1c;
  font-size: 13px;
  line-height: 1.45;
}
.stocks-empty-cell { color: #5f6f63 !important; font-size: 13px !important; line-height: 1.45; }
.stocks-hidden-note { margin: 10px 2px 0; color: #6a7f70; font-size: 12px; }
.stocks-kpi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.stocks-kpi { display: grid; gap: 4px; padding: 16px 18px; border: 1px solid #d5e7d8; border-radius: 14px; background: linear-gradient(145deg, #fff, #f3faf4); box-shadow: 0 8px 18px rgba(9,71,40,.05); }
.stocks-kpi small { color: #5f876a; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.stocks-kpi strong { color: var(--forest); font-size: clamp(22px, 3vw, 30px); letter-spacing: -.04em; }
.stocks-kpi span { color: var(--ink-soft); font-size: 12px; }
.stocks-grid { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .75fr); }
.stocks-table-wrap { overflow: auto; }
.stocks-table { width: 100%; border-collapse: collapse; }
.stocks-table th, .stocks-table td { padding: 10px 12px; border-bottom: 1px solid #e3eee5; text-align: left; font-size: 13px; }
.stocks-table th { color: #5f876a; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; background: #f7fbf7; }
.stocks-table td b { color: var(--forest); }
.stocks-note { margin: 14px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
@media (max-width: 900px) {
  .stocks-kpi-grid, .stocks-grid { grid-template-columns: 1fr; }
}
.login-welcome { display: none; }
body.operator-locked .login-welcome { position: relative; grid-column: 1 / -1; display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 16px; padding: 24px; overflow: hidden; color: #fff; border-radius: 18px; background: radial-gradient(circle at 94% 5%, rgba(182, 233, 105, .42), transparent 9rem), linear-gradient(135deg, #043b2a, #0d7446); }
body.operator-locked .login-welcome::after { content: ''; position: absolute; right: -47px; bottom: -88px; width: 205px; height: 205px; border: 30px solid rgba(207, 247, 177, .14); border-radius: 50%; }
body.operator-locked .login-welcome img { position: relative; z-index: 1; width: 92px; height: 70px; padding: 4px; object-fit: contain; object-position: center; border-radius: 15px; background: #fff; box-shadow: 0 12px 25px rgba(0,0,0,.2); }
body.operator-locked .login-welcome div { position: relative; z-index: 1; }
body.operator-locked .login-welcome p { margin: 0 0 6px; color: #bde987; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
body.operator-locked .login-welcome h1 { margin: 0; color: #fff; font-size: clamp(23px, 5vw, 30px); letter-spacing: -.045em; }
body.operator-locked .login-welcome span { display: block; margin-top: 7px; color: rgba(245,255,245,.82); font-size: 12px; line-height: 1.45; }
.login-area-back { position: absolute; z-index: 2; top: 12px; right: 13px; min-height: 28px; padding: 0 8px; color: rgba(255,255,255,.88); border: 1px solid rgba(255,255,255,.24); border-radius: 8px; background: rgba(255,255,255,.1); font: 750 10px inherit; cursor: pointer; }
.login-area-back:hover { background: rgba(255,255,255,.2); }
body.operator-locked .current-user { min-width: 0; color: var(--ink-soft); font-size: 11px; }
body.operator-locked .current-user select { height: 48px; color: var(--ink); border-color: #9ccba4; background: #f9fcf9; font-size: 14px; }
body.operator-locked .current-user:has(#current-user) { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
body:not(.operator-locked) .login-user-picker { display: none !important; }
body.operator-locked .login-user-picker { grid-column: 1 / -1; display: grid; gap: 8px; min-width: 0; }
.login-user-search-label { display: grid; gap: 6px; color: #496453; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.login-user-search-label input { min-height: 50px; padding: 0 15px; color: var(--ink); border: 1px solid #9ccba4; border-radius: 12px; background: #f9fcf9; font: 750 15px inherit; letter-spacing: 0; text-transform: none; }
.login-user-search-label input:focus { outline: none; border-color: #398a58; box-shadow: 0 0 0 4px rgba(64, 151, 85, .16); }
.login-user-hint, .login-user-match-count { margin: 0; color: #6a8071; font-size: 11px; line-height: 1.42; }
.login-user-hint.is-empty { color: #a0483d; }
.login-user-match-list { display: grid; gap: 6px; max-height: 238px; overflow: auto; padding-right: 2px; }
.login-user-match { width: 100%; min-height: 52px; display: grid; grid-template-columns: 33px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px 10px; color: var(--ink); border: 1px solid #d5e7d8; border-radius: 11px; background: rgba(250, 253, 250, .96); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.login-user-match:hover, .login-user-match:focus-visible { border-color: #69a77b; background: #eff8ef; transform: translateY(-1px); outline: none; }
.login-user-avatar { width: 33px; height: 33px; display: grid; place-items: center; color: #fff; border-radius: 10px; background: linear-gradient(135deg, #0c6745, #64a64b); font-size: 13px; font-weight: 900; }
.login-user-match > span:not(.login-user-avatar) { display: grid; gap: 2px; min-width: 0; }
.login-user-match strong { overflow: hidden; color: var(--forest); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.login-user-match small { overflow: hidden; color: #718675; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.login-user-match b { color: #197044; font-size: 10px; white-space: nowrap; }
.login-user-selected { min-height: 61px; display: grid; grid-template-columns: 37px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid #a8d8b0; border-radius: 12px; background: linear-gradient(135deg, #edf9ee, #f9fcf9); }
.login-user-selected .login-user-avatar { width: 37px; height: 37px; border-radius: 11px; }
.login-user-selected > span:not(.login-user-avatar) { display: grid; gap: 2px; min-width: 0; }
.login-user-selected small { color: #548262; font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.login-user-selected strong { overflow: hidden; color: var(--forest); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.login-user-selected em { color: #66806d; font-size: 10px; font-style: normal; font-weight: 700; }
.login-user-change { min-height: 32px; padding: 0 10px; color: #176b42; border: 1px solid #a9d4b1; border-radius: 8px; background: #fff; font: 800 10px inherit; cursor: pointer; }
.login-user-change:hover, .login-user-change:focus-visible { background: #e8f5e9; outline: none; }
.login-no-pin-notice {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #e2c48a;
  border-radius: 12px;
  background: #fff8ea;
  color: #6a4b12;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
}
body.operator-locked .topbar-actions.login-has-user {
  min-height: 320px;
}
body.operator-locked .current-user-pin {
  min-width: 0;
  display: grid;
  gap: 8px;
  color: #1f2937;
  font-size: 16px;
}
body.operator-locked .pin-field-label {
  display: block;
  margin: 0;
  color: #1f2937;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
}
body.operator-locked .pin-field-control {
  position: relative;
  display: grid;
  align-items: center;
  min-width: 0;
}
body.operator-locked .pin-field-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: #6b7280;
  pointer-events: none;
  transform: translateY(-50%);
  z-index: 1;
}
body.operator-locked .pin-field-icon svg {
  width: 20px;
  height: 20px;
}
body.operator-locked .current-user-pin input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 56px;
  min-height: 56px;
  margin: 0;
  padding: 0 48px 0 46px;
  color: #111827;
  border: 2px solid #d1d5db;
  border-radius: 12px;
  background: #ffffff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.2;
  transition: border-color .16s ease, box-shadow .16s ease;
}
body.operator-locked .current-user-pin input::placeholder {
  color: #9ca3af;
  letter-spacing: 0.01em;
  font-weight: 500;
  opacity: 1;
}
body.operator-locked .current-user-pin input:hover {
  border-color: #9ca3af;
}
body.operator-locked .current-user-pin input:focus,
body.operator-locked .current-user-pin input:focus-visible {
  outline: none;
  border-color: #16a34a;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.18);
}
body.operator-locked .pin-field-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  color: #4b5563;
  border: 0;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
  z-index: 1;
  transition: background .14s ease, color .14s ease;
}
body.operator-locked .pin-field-toggle:hover,
body.operator-locked .pin-field-toggle:focus-visible {
  color: #16a34a;
  background: rgba(22, 163, 74, 0.08);
  outline: none;
}
body.operator-locked .pin-field-toggle svg {
  width: 20px;
  height: 20px;
}
body.operator-locked .pin-field-help {
  margin: 0;
  color: #4b5563;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
}
body.operator-locked .topbar-actions.login-needs-pin {
  gap: 16px;
}
body.operator-locked .topbar-actions:not(.login-needs-pin) .current-user { grid-column: 1 / -1; }
body.operator-locked .operator-unlock {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--forest), #137044);
  font-size: 15px;
  font-weight: 800;
}
body.operator-locked .operator-unlock-arrow {
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
}

/* După autentificare, meniul celor șase module este separat de formularul de
   login. Sesiunea activă rămâne aceeași până când utilizatorul alege explicit
   „Schimbă utilizatorul”. */
body.module-home,
body.module-home.access-zone-selecting,
body.module-home:not(.operator-locked) {
  height: 100vh;
  height: 100svh;
  max-height: 100vh;
  max-height: 100svh;
  min-height: 0;
  overflow: hidden;
  background-color: #f3f6e8 !important;
  background-image:
    linear-gradient(105deg, rgba(255, 248, 232, .16), rgba(236, 246, 220, .22)),
    url("/static/assets/virix-platform-zones-background-v7-lite.jpg") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
  background-attachment: scroll !important;
  background-blend-mode: normal !important;
}
html:has(body.module-home) {
  height: 100vh;
  height: 100svh;
  max-height: 100vh;
  max-height: 100svh;
  overflow: hidden;
}
html:has(body.module-home),
html:has(body.operator-locked) {
  background-color: #f3f6e8;
  background-image:
    linear-gradient(105deg, rgba(255, 248, 232, .16), rgba(236, 246, 220, .22)),
    url("/static/assets/virix-platform-zones-background-v7-lite.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-attachment: scroll;
}
/* Cât timp trecem dintr-un modul spre Home, păstrăm fundalul meniului
   (altfel blades/warehouse câștigă un frame și pagina „licărește” de două ori). */
body.module-home.blades-module-mode,
body.module-home.platform-module-mode,
body.module-home.warehouse-operator-mode,
body.module-home.maintenance-only-mode {
  background-color: #f3f6e8 !important;
  background-image:
    linear-gradient(105deg, rgba(255, 248, 232, .16), rgba(236, 246, 220, .22)),
    url("/static/assets/virix-platform-zones-background-v7-lite.jpg") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
  background-attachment: scroll !important;
  background-blend-mode: normal !important;
}
body.module-home main,
body.module-home .brand,
body.module-home .main-nav,
body.module-home .notification-button,
body.module-home .notification-panel,
body.module-home .topbar-back,
body.module-home .topbar-module-home,
body.module-home .connection { display: none !important; }
body.module-home .topbar {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  max-height: 100vh;
  max-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 788px);
  justify-content: center;
  justify-items: stretch;
  align-content: safe center;
  align-items: stretch;
  padding: 18px 18px 56px;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  border-bottom: none !important;
}
body.module-home .topbar-actions {
  box-sizing: border-box;
  width: 100%;
  max-width: 788px;
  height: calc(100vh - 74px);
  height: calc(100svh - 74px);
  max-height: calc(100vh - 74px);
  max-height: calc(100svh - 74px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgba(193,220,197,.95);
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 30px 76px rgba(12,74,50,.18);
  backdrop-filter: blur(15px);
}
body.module-home .login-welcome,
body.module-home .current-user,
body.module-home .current-user-pin,
body.module-home .operator-unlock { display: none !important; }
body.module-home .access-zone-chooser {
  display: grid;
  /* Middle row must shrink (0, not min-content) so the module grid can
     share leftover height. Footer (Alerte / Utilizatori / Control Center)
     stays in-flow. No inner scrollbar — the used box is the SoT. */
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(6px, 1.2svh, 11px);
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}
body.module-home .access-zone-hero {
  display: flex !important;
  grid-template-columns: unset !important;
  align-items: stretch;
  gap: 15px;
  padding: 13px 13px 13px 17px;
  border-radius: 17px;
  overflow: hidden;
}
body.module-home .access-zone-hero-main {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
  z-index: 1;
}
body.module-home .access-zone-hero-main img {
  width: 74px;
  height: 56px;
  border-radius: 13px;
}
body.module-home .access-zone-hero-main > div { min-width: 0; }
body.module-home .access-zone-hero p { margin: 0 0 4px; font-size: 8.5px; }
body.module-home .access-zone-hero h1 { font-size: clamp(22px, 2.8vw, 30px); }
body.module-home .access-zone-hero span#modules-description { margin-top: 4px; font-size: 12px; line-height: 1.3; }
body.module-home .access-zone-hero-actions {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 2;
  display: flex !important;
  flex-direction: column;
  justify-content: space-evenly;
  align-items: stretch;
  flex: 0 0 194px;
  width: 194px;
  align-self: stretch;
  margin: 0;
  padding: 0;
  pointer-events: none;
}
body.module-home .access-zone-hero-actions .session-user-home { display: inline-flex !important; }
body.module-home .access-zone-hero-actions > button.session-user-home,
body.module-home .access-zone-hero-actions > button.topbar-issue-button {
  pointer-events: auto;
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
  inset: auto !important;
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto;
  gap: 8px;
  width: 194px;
  min-width: 194px;
  max-width: 194px;
  min-height: 36px;
  height: 36px;
  margin: 0;
  padding: 0 10px 0 5px;
  color: #f4fff6 !important;
  border: 1px solid rgba(220, 245, 214, .34);
  border-radius: 12px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.05)),
    rgba(2, 48, 34, .42) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 8px 18px rgba(0, 20, 12, .18);
  backdrop-filter: blur(10px);
  font: inherit !important;
  font-size: 10px !important;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  transition: background .16s, border-color .16s, box-shadow .16s;
}
body.module-home .access-zone-hero-actions > button:hover,
body.module-home .access-zone-hero-actions > button:focus-visible {
  background:
    linear-gradient(145deg, rgba(255,255,255,.26), rgba(255,255,255,.08)),
    rgba(2, 48, 34, .58) !important;
  border-color: rgba(220, 245, 214, .55);
  transform: none !important;
  outline: none;
}
body.module-home .access-zone-hero-actions .hero-action-icon {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  display: grid !important;
  place-items: center;
  flex: 0 0 24px;
  margin: 0 !important;
  color: #163f2d !important;
  border-radius: 8px !important;
  background: linear-gradient(160deg, #e8f7c8, #b7e07a) !important;
  box-shadow: 0 4px 10px rgba(120, 180, 60, .28);
  font-size: 0 !important;
}
body.module-home .access-zone-hero-actions .hero-action-icon svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.module-home .access-zone-hero-actions b {
  display: inline !important;
  color: inherit !important;
  font-size: 10px !important;
  font-weight: 780;
  letter-spacing: .01em;
  text-align: left;
}

/* MAIN MENU GRID — columns follow visible card count; rows share leftover height.
   SoT = CSS (--az-cols). JS only writes data-visible-count (permissions), never resolution.
   No inner scroll. Equal cards; a single leftover is centered at track width. */
body.module-home .access-zone-options {
  --menu-grid-gap: clamp(5px, 1.1svh, 10px);
  --az-cols: 3;
  --az-card-track: calc((100% - (var(--az-cols) - 1) * var(--menu-grid-gap)) / var(--az-cols));
  --az-last-col-start: auto;
  --az-last-col-end: auto;
  --az-last-width: 100%;
  --az-last-justify: stretch;
  display: grid;
  grid-template-columns: repeat(var(--az-cols), minmax(0, 1fr));
  grid-auto-rows: minmax(0, 1fr);
  gap: var(--menu-grid-gap);
  min-height: 0;
  height: 100%;
  overflow: hidden;
  align-content: stretch;
  justify-items: stretch;
}
@media (min-width: 721px) {
  body.module-home .access-zone-options[data-visible-count="0"],
  body.module-home .access-zone-options[data-visible-count="1"] { --az-cols: 1; }
  body.module-home .access-zone-options[data-visible-count="2"],
  body.module-home .access-zone-options[data-visible-count="4"] { --az-cols: 2; }
  body.module-home .access-zone-options[data-visible-count="3"],
  body.module-home .access-zone-options[data-visible-count="5"],
  body.module-home .access-zone-options[data-visible-count="6"],
  body.module-home .access-zone-options[data-visible-count="8"],
  body.module-home .access-zone-options[data-visible-count="9"],
  body.module-home .access-zone-options[data-visible-count="11"],
  body.module-home .access-zone-options[data-visible-count="12"] { --az-cols: 3; }
  body.module-home .access-zone-options[data-visible-count="7"],
  body.module-home .access-zone-options[data-visible-count="10"] {
    --az-cols: 3;
    --az-last-col-start: 1;
    --az-last-col-end: -1;
    --az-last-width: var(--az-card-track);
    --az-last-justify: center;
  }
}
body.module-home .access-zone-card[data-az-last="1"] {
  grid-column-start: var(--az-last-col-start);
  grid-column-end: var(--az-last-col-end);
  width: var(--az-last-width);
  max-width: var(--az-last-width);
  justify-self: var(--az-last-justify);
}
/* Single footer row for Utilizatori & Control Center (chooser 3-row grid). */
body.module-home .access-zone-admin-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(5px, 0.8svh, 8px);
  justify-items: stretch;
  width: 100%;
  min-height: 0;
  flex-shrink: 0;
}
.access-zone-admin-stack {
  display: grid;
  gap: 10px;
  justify-items: center;
  width: 100%;
}
.access-zone-phone-alerts {
  box-sizing: border-box;
  width: min(100%, 390px);
  margin: 0 auto;
  padding: 10px 12px;
  display: grid;
  gap: 8px;
  color: var(--ink);
  border: 1px solid #b9d9c1;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff, #edf7ee);
  box-shadow: 0 7px 16px rgba(9,71,40,.06);
}
.access-zone-phone-alerts-copy {
  display: flex;
  align-items: center;
  gap: 10px;
}
.access-zone-phone-alerts-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  border-radius: 8px;
  background: linear-gradient(135deg, #1a6a46, #43a15a);
}
.access-zone-phone-alerts-icon svg { width: 15px; height: 15px; }
.access-zone-phone-alerts-copy strong {
  display: block;
  color: var(--forest);
  font-size: 12px;
  font-weight: 800;
}
.access-zone-phone-alerts-copy p,
.access-zone-phone-alerts-wait {
  margin: 3px 0 0;
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.35;
}
.access-zone-phone-alerts-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.access-zone-phone-alerts-actions .secondary-button,
.access-zone-phone-alerts-actions .ghost-button {
  min-height: 34px;
  padding: 0 10px;
  font-size: 11px;
}
body.module-home .access-zone-phone-alerts {
  width: 100%;
  max-width: none;
  padding: clamp(6px, 1svh, 10px) 12px;
  gap: clamp(4px, 0.7svh, 8px);
}
body.module-home .access-zone-phone-alerts-actions {
  flex-wrap: wrap;
}
body.module-home .access-zone-phone-alerts-actions .secondary-button,
body.module-home .access-zone-phone-alerts-actions .ghost-button {
  flex: 1 1 0;
  min-width: 0;
}
/*
  MAIN MENU CARD — one template, fluid to the used box (svh).
  Icon + copy are one cluster, centered in the card (left/right and up/down).
  When shown, description has two full lines. Never clip mid-glyph.
  On a short screen the description is removed (display:none), not crushed.
*/
body.module-home .access-zone-card {
  --az-pad-y: clamp(2px, 0.5svh, 8px);
  --az-pad-x: clamp(5px, 0.8svh, 8px);
  --az-icon: clamp(20px, 2.9svh, 36px);
  --az-icon-svg: clamp(11px, 1.4svh, 17px);
  --az-icon-radius: clamp(8px, 1.2svh, 11px);
  --az-stack-gap: clamp(2px, 0.4svh, 5px);
  --az-text-gap: clamp(1px, 0.25svh, 2px);
  --az-badge-h: clamp(7px, 1svh, 10px);
  --az-title-h: clamp(13px, 1.75svh, 20px);
  --az-title-size: clamp(12px, 1.5svh, 16px);
  --az-desc-size: clamp(7px, 0.95svh, 9px);
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: var(--az-pad-y) var(--az-pad-x);
  gap: var(--az-stack-gap);
  border-width: 1px;
  border-style: solid;
  border-radius: 14px;
  display: grid;
  grid-template-rows: auto auto;
  align-content: center;
  justify-content: center;
  justify-items: center;
  align-items: center;
  box-shadow: 0 8px 18px rgba(9,71,40,.06);
}
body.module-home .access-zone-card[hidden] { display: none !important; }
body.module-home .access-zone-icon {
  box-sizing: border-box;
  width: var(--az-icon);
  height: var(--az-icon);
  min-width: var(--az-icon);
  min-height: var(--az-icon);
  max-width: var(--az-icon);
  max-height: var(--az-icon);
  border-radius: var(--az-icon-radius);
  box-shadow: 0 6px 12px rgba(8,91,55,.16);
  display: grid;
  place-items: center;
}
body.module-home .access-zone-icon svg {
  width: var(--az-icon-svg);
  height: var(--az-icon-svg);
  display: block;
}
/* Text stack — sized to its lines, centered with the icon as one cluster */
body.module-home .access-zone-copy {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto auto;
  row-gap: var(--az-text-gap);
  justify-items: center;
  justify-content: center;
  align-content: center;
  align-items: center;
  text-align: center;
}
body.module-home .access-zone-badge,
body.module-home .access-zone-card small.access-zone-badge {
  box-sizing: border-box;
  display: block;
  width: 100%;
  height: var(--az-badge-h);
  margin: 0;
  padding: 0;
  font-size: min(8px, var(--az-badge-h));
  font-weight: 850;
  letter-spacing: .08em;
  line-height: var(--az-badge-h);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.module-home .access-zone-title,
body.module-home .access-zone-card strong.access-zone-title {
  box-sizing: border-box;
  display: block;
  width: 100%;
  height: var(--az-title-h);
  margin: 0;
  padding: 0;
  font-size: var(--az-title-size);
  font-weight: 750;
  letter-spacing: -.035em;
  line-height: var(--az-title-h);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.module-home .access-zone-desc,
body.module-home .access-zone-card em.access-zone-desc {
  box-sizing: border-box;
  width: 100%;
  max-width: 26ch;
  height: auto;
  min-height: calc(var(--az-desc-size) * 1.3 * 2);
  margin: 0;
  padding: 0;
  font-size: var(--az-desc-size);
  font-style: normal;
  font-weight: 400;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  justify-self: center;
  align-self: center;
}
body.module-home .access-zone-admin-button {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: clamp(30px, 4.2svh, 38px);
  margin: 0;
  padding: clamp(4px, 0.7svh, 7px) 12px;
}
body.module-home .session-user { display: none !important; }
@media (max-height: 860px) {
  body.module-home .access-zone-hero span#modules-description { display: none; }
}
@media (max-height: 760px) {
  body.module-home .access-zone-chooser { gap: 8px; }
}
@media (max-height: 720px) {
  /* Short used box: drop the two-line subtitle cleanly. Do not crush it. */
  body.module-home .access-zone-desc,
  body.module-home .access-zone-card em.access-zone-desc { display: none; }
}
@media (max-height: 680px) {
  body.module-home .access-zone-hero {
    gap: 10px;
    padding: 10px 10px 10px 12px;
  }
  body.module-home .access-zone-hero-main {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px;
  }
  body.module-home .access-zone-hero-main img { width: 52px; height: 40px; }
  body.module-home .access-zone-hero h1 { font-size: 20px; }
  body.module-home .access-zone-hero-actions {
    flex-basis: 174px;
    width: 174px;
  }
  body.module-home .access-zone-hero-actions > button.session-user-home,
  body.module-home .access-zone-hero-actions > button.topbar-issue-button {
    width: 174px;
    min-width: 174px;
    max-width: 174px;
  }
}
@media (max-height: 600px) {
  body.module-home .access-zone-badge,
  body.module-home .access-zone-card small.access-zone-badge { display: none; }
}
.access-zone-admin-button { width: min(100%, 390px); min-height: 44px; margin: 0 auto; padding: 8px 13px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; color: #145138; border: 1px solid #b9d9c1; border-radius: 12px; background: linear-gradient(145deg, #fff, #edf7ee); box-shadow: 0 7px 16px rgba(9,71,40,.06); font: inherit; text-align: left; cursor: pointer; transition: transform .16s, border-color .16s, box-shadow .16s; }
.access-zone-admin-button:hover, .access-zone-admin-button:focus-visible { border-color: #75ae83; box-shadow: 0 11px 22px rgba(9,71,40,.12); transform: translateY(-1px); outline: none; }
.access-zone-admin-button > span:first-child { width: 26px; height: 26px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; border-radius: 8px; background: linear-gradient(135deg, #1a6a46, #43a15a); font-size: 14px; }
.access-zone-admin-button > span:last-child { display: grid; gap: 2px; }
.access-zone-admin-button strong { color: var(--forest); font-size: 12px; }
.access-zone-admin-button small { color: var(--ink-soft); font-size: 10px; }
.connection { display: flex; align-items: center; gap: 8px; color: rgba(245, 255, 246, .78); font-size: 12px; font-weight: 600; white-space: nowrap; }
.connection span { width: 8px; height: 8px; background: #9bdd76; border-radius: 50%; box-shadow: 0 0 0 4px rgba(155,221,118,.13); }
.connection.offline span { background: #f0a36d; }
.notification-button { position: relative; width: 40px; min-width: 40px; height: 40px; min-height: 40px; padding: 0; display: inline-grid; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; background: rgba(255,255,255,.08); cursor: pointer; transition: background .18s, transform .18s; }
.notification-button:hover, .notification-button.has-alert { background: rgba(255,255,255,.17); transform: translateY(-1px); }
.notification-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.notification-badge { position: absolute; top: -6px; right: -6px; display: grid; min-width: 20px; height: 20px; place-items: center; padding: 0 5px; color: white; background: #e47743; border: 2px solid var(--forest); border-radius: 99px; font-size: 10px; font-weight: 800; }
.notification-panel { position: absolute; z-index: 5; top: 53px; right: 0; width: min(360px, calc(100vw - 30px)); padding: 15px; color: var(--ink); border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.98); box-shadow: 0 20px 45px rgba(4, 41, 30, .23); }
dialog.notification-panel {
  position: fixed;
  inset: 0;
  width: min(560px, calc(100vw - 32px));
  height: fit-content;
  max-height: min(720px, calc(100dvh - 32px));
  margin: auto;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 45px rgba(4, 41, 30, .23);
}
dialog.notification-panel[open] { display: flex; flex-direction: column; }
dialog.notification-panel::backdrop { background: rgba(4, 41, 30, .45); }
dialog.notification-panel .notification-heading {
  flex: 0 0 auto;
  margin: 0;
  padding: 14px 16px 11px;
  background: #fff;
}
dialog.notification-panel #notification-list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(640px, calc(100dvh - 110px));
  overflow: auto;
  overscroll-behavior: contain;
  padding: 0 16px 16px;
}
dialog.notification-panel .dialog-close {
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  margin-left: 8px;
  padding: 0;
  color: #915043;
  border: 1px solid #e7c5be;
  border-radius: 10px;
  background: #fff8f6;
  font-size: 22px;
  line-height: 1;
}
dialog.notification-panel .notification-actions .secondary-button {
  min-height: 36px;
  border: 1px solid #b9d5c1;
}
.notification-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 2px 11px; border-bottom: 1px solid var(--line); }
.notification-heading-side { display: flex; align-items: center; gap: 8px; }
.notification-heading strong { font-size: 14px; }
.notification-heading span { color: var(--orange); font-size: 12px; font-weight: 800; }
.notification-list { display: grid; gap: 1px; margin: 8px 0 0; }
.notification-item { display: flex; justify-content: space-between; gap: 15px; align-items: center; padding: 10px 2px; border-bottom: 1px solid #edf2ee; }
.notification-item:last-child { border-bottom: 0; }
.notification-item strong { display: block; font-size: 13px; }
.notification-item small, .notification-empty { color: var(--ink-soft); font-size: 12px; }
.notification-quantity { color: var(--red); font-size: 12px; font-weight: 800; white-space: nowrap; text-align: right; }
.notification-quantity small { display: block; margin-top: 1px; color: var(--ink-soft); font-size: 10px; font-weight: 650; }
.notification-item.is-seen { opacity: .72; }
.notification-actions { display: flex; justify-content: flex-end; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.notification-actions .secondary-button { min-height: 34px; padding: 0 12px; font-size: 12px; }
.notification-seen-note { margin: 10px 0 0; }

main { width: min(1360px, calc(100% - 48px)); margin: 0 auto; padding: 42px 0 78px; }
/* Legacy website fallback — NEVER wins over platform-ui-contract / platform-module-mode. */
.platform-module-shell { width: min(1160px, 100%); margin: 0 auto; }
/* [VirixPrimaryCutting] width shell mutat in primary-cutting.css */

/* ── PLATFORM SHELL — compact enterprise (density/width owned by platform-ui-contract.css)
   Fallback if contract CSS fails to load: centered ~1180 work column. */
body.platform-module-mode > main#panou,
body.platform-module-mode > main,
body[data-virix-root="platform"] > main#panou,
body[data-virix-root="platform"] > main {
  width: min(1180px, calc(100% - 48px));
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 0 28px;
}
body.platform-module-mode .platform-module-shell,
body[data-virix-root="platform"] .platform-module-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 0;
  overflow: visible;
}
body.platform-module-mode #platform-module-content,
body[data-virix-root="platform"] #platform-module-content {
  width: 100%;
  max-width: none;
  min-width: 0;
}
.platform-user-management { margin-top: 18px; }
.platform-user-management > .panel { max-width: 980px; margin: 0 auto; }
.platform-users-intro { display: flex; justify-content: space-between; gap: 22px; align-items: end; margin: -2px 0 18px; padding: 18px 20px; border: 1px solid #cfe4d4; border-radius: 18px; background: linear-gradient(135deg, #f6fbf6, #edf7ed); }
.platform-users-intro .eyebrow { margin: 0 0 5px; }
.platform-users-intro h2 { margin: 0; color: var(--forest); font-size: 20px; }
.platform-users-intro p:not(.eyebrow) { max-width: 740px; margin: 7px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.platform-users-intro > span { flex: 0 0 auto; padding: 8px 10px; color: #24663f; border: 1px solid #bee0c6; border-radius: 9px; background: #fff; font-size: 11px; font-weight: 750; }

/* [VirixAdministration] panoul de comanda Administrare (.admin-*, destinatari notificari)
   mutat in static/modules/administration/administration.css */
.platform-module-header { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 18px; padding: 28px 30px; overflow: hidden; color: #fff; border-radius: 22px; background: radial-gradient(circle at 88% 0%, rgba(183, 232, 105, .35), transparent 12rem), linear-gradient(135deg, #043b2a, #0e7547); }
.platform-module-header h1 { margin: 0; color: #fff; font-size: clamp(28px, 4vw, 44px); letter-spacing: -.05em; }
.platform-module-header p { max-width: 680px; margin: 9px 0 0; color: rgba(255,255,255,.85); }
.platform-module-header .eyebrow { color: #c5ed88; }
.platform-module-grid { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr); gap: 18px; }
.platform-module-form { display: grid; gap: 12px; }
.platform-module-form .two-columns { gap: 10px; }
.platform-module-list { display: grid; gap: 9px; max-height: 620px; overflow: auto; padding-right: 4px; }
.platform-module-error { display: grid; gap: 12px; justify-items: start; padding: 18px 4px; }
.platform-module-error .filter-summary { margin: 0; }
.platform-module-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 13px; border: 1px solid #dce9de; border-radius: 12px; background: #fbfdfb; }
.platform-module-entry strong { display: block; color: var(--forest); font-size: 14px; }
.platform-module-entry small { display: block; margin-top: 3px; color: var(--ink-soft); line-height: 1.4; }
.platform-module-entry b { align-self: center; color: #0a6943; font-size: 12px; text-align: right; white-space: nowrap; }
.platform-module-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.platform-module-meta span { padding: 8px; border-radius: 8px; background: #f0f7f0; color: var(--ink-soft); font-size: 10px; }
.platform-module-meta b { display: block; margin-top: 3px; color: var(--forest); font-size: 13px; text-align: left; }
.platform-module-subsection { margin-top: 18px; }
.platform-module-subsection h3 { margin: 0 0 10px; color: var(--forest); font-size: 16px; }
.module-readonly-note { margin: 0 0 14px; padding: 11px 13px; color: #496252; border: 1px solid #cfe1d3; border-radius: 10px; background: #f4faf4; font-size: 12px; font-weight: 650; }
body.platform-module-mode .main-nav, body.platform-module-mode .notification-button, body.platform-module-mode .notification-panel { display: none !important; }
/* Only the PAGE <main> children — never nested module content areas (e.g. Personal). */
body.platform-module-mode > main > :not(#platform-module-shell) { display: none !important; }
/* PLATFORM CORE — defense in depth: data-virix-root owns Magazie vs platform isolation.
   Prevents Incidente showing Magazie when platform-module-mode desyncs. */
body[data-virix-root="platform"] > main > :not(#platform-module-shell) { display: none !important; }
body[data-virix-root="platform"] #virix-warehouse-backdrop { display: none !important; }
body[data-virix-root="platform"] #platform-module-shell { display: block !important; }
body[data-virix-root="warehouse"] #platform-module-shell { display: none !important; }
body[data-virix-root="home"] main { display: none !important; }
/* Topbar aligns to compact work column (contract may refine). */
body.platform-module-mode .topbar {
  padding-inline: max(16px, calc((100% - 1180px) / 2));
  gap: 18px;
}
body.platform-module-mode .topbar-actions { margin-left: auto; }
/* [VirixBlades] fundal atelier mutat in blades.css */
/* [VirixPrimaryCutting] atmosferă body.primary-cutting-mode mutată în primary-cutting.css */
/* [VirixBlades] shell overlay mutat in blades.css */
section[id], article[id] { scroll-margin-top: calc(var(--app-topbar-offset, 104px) + 16px); }
/* Când singurul drept este Fișa de intervenție, persoana intră direct în zona de mentenanță.
   Imediat ce primește orice alt drept, meniul și secțiunile aferente apar automat. */
body.maintenance-only-mode {
  background-color: #eef3ef;
  background-image:
    linear-gradient(90deg, rgba(249, 253, 249, .62), rgba(244, 250, 244, .68)),
    url("/static/assets/virix-maintenance-background-v1-lite.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-attachment: scroll;
  background-blend-mode: normal;
}
body.maintenance-only-mode .brand,
body.maintenance-only-mode .main-nav,
body.maintenance-only-mode .notification-button,
body.maintenance-only-mode .notification-panel,
body.maintenance-only-mode .connection,
body.maintenance-only-mode .page-intro,
body.maintenance-only-mode #asistent,
body.maintenance-only-mode #operational-layout,
body.maintenance-only-mode #documente,
/* Mentenanța poate fi ridicată ca fiu direct SAU rămâne temporar în #warehouse-cost-menu. */
body.maintenance-only-mode #management-workspace > :not(#mentenanta):not(#gestiuni):not(#warehouse-cost-menu) { display: none !important; }
body.maintenance-only-mode #warehouse-cost-menu {
  display: block !important;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.maintenance-only-mode #warehouse-cost-menu > :not(#mentenanta) { display: none !important; }
body.maintenance-only-mode #warehouse-cost-menu:not(:has(#mentenanta)) { display: none !important; }
body.maintenance-only-mode .topbar { justify-content: flex-end; }
body.maintenance-only-mode main { width: min(900px, calc(100% - 48px)); padding-top: 26px; }
body.maintenance-only-mode #management-workspace { margin: 0; padding: 0; border: 0; }
body.maintenance-only-mode #management-workspace > #mentenanta { margin-top: 0; }
body.maintenance-only-mode #management-workspace > #gestiuni { margin-top: 18px; }
/* Formular + istoric pe o coloană — nu ascunde lista de lucrări recente. */
body.maintenance-only-mode .maintenance-grid {
  grid-template-columns: minmax(0, 1fr);
  justify-content: center;
  gap: 18px;
}
body.maintenance-only-mode #mentenanta.is-always-open-panel,
body.maintenance-only-mode #gestiuni.is-always-open-panel {
  display: block !important;
}
/* Mentenanța / meniul Tehnic apar doar în modulul Tehnic — niciodată în Magazie. */
body:not(.maintenance-only-mode) #mentenanta,
body:not(.maintenance-only-mode) [data-mechanic-only] {
  display: none !important;
}
body.warehouse-operator-mode #mentenanta,
body.warehouse-operator-mode [data-mechanic-only] {
  display: none !important;
}
body.warehouse-operator-mode #copii-siguranta,
body.warehouse-operator-mode [href="#copii-siguranta"] {
  display: none !important;
}
/* [VirixAdministration] .admin-backups-slot mutat in modules/administration/administration.css */

/* [VirixWarehouse] CSS moved to warehouse.css (former Magazie block) */


@media (max-width: 1080px) {
  .topbar { gap: 16px; }
  .main-nav a, .nav-menu > summary { padding-inline: 8px; }
  .daily-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #operational-layout > .daily-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maintenance-grid, .zone-inventory-grid, .cost-grid { grid-template-columns: 1fr; }
}
@media (max-width: 930px) {
  .topbar { flex-wrap: wrap; gap: 10px 16px; padding-top: 9px; padding-bottom: 10px; }
  /* Magazie internal nav stays inside #panou; horizontal scroll on narrow viewports. */
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) main#panou > #warehouse-module-nav {
    width: 100%;
    max-width: 100%;
    margin-bottom: 10px;
    overflow-x: auto;
    justify-content: flex-start;
    touch-action: pan-x pan-y;
  }
  .topbar-actions { margin-left: auto; }
  .current-user { min-width: 130px; }
  main { padding-top: 28px; }
  .intelligence-grid { grid-template-columns: 1fr; }
  .operations-grid { grid-template-columns: 1fr 1fr; }
  .operations-grid > :last-child { grid-column: span 2; }
}
@media (max-width: 720px) {
  /* iPhone nu mai mărește automat pagina când se completează un câmp. */
  input, select, textarea { font-size: 16px; }
  /* VIRIX-038/079: câteva câmpuri au selectori mai specifici cu font sub 16px,
     ceea ce readuce zoom-ul automat pe iOS la focus — le aliniem explicit. */
  .blade-datetime-field input, .blade-datetime-field select,
  .machine-list-search input,
  .current-user-pin input,
  .user-role-select input { font-size: 16px; }
  body.operator-locked .topbar { padding: 20px 14px; }
  body.operator-locked .topbar-actions { grid-template-columns: 1fr; padding: 10px; border-radius: 22px; }
  body.operator-locked.access-zone-selecting .topbar-actions { padding: 10px; }
  .access-zone-hero { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 17px; }
  .access-zone-hero img { width: 64px; height: 57px; border-radius: 12px; }
  .access-zone-hero h1 { font-size: 24px; }
  .access-zone-options { grid-template-columns: 1fr; }
  .access-zone-card { min-height: 142px; padding: 16px; }

  /* Meniul principal cu module este o hartă de acces, nu o pagină de citit.
     Pe telefon toate cele șase zone intră într-un singur ecran, fără derulare. */
  body.operator-locked.access-zone-selecting { overflow-y: hidden; }
  body.operator-locked.access-zone-selecting .topbar {
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    padding: 10px 12px;
    overflow: hidden;
  }
  body.operator-locked.access-zone-selecting .topbar-actions {
    width: min(100%, 560px);
    max-height: calc(100vh - 20px);
    max-height: calc(100svh - 20px);
    padding: 10px;
    gap: 8px;
  }
  body.operator-locked.access-zone-selecting .access-zone-chooser { gap: 8px; }
  body.operator-locked.access-zone-selecting .access-zone-hero {
    grid-template-columns: 53px minmax(0, 1fr);
    gap: 9px;
    padding: 12px;
    border-radius: 15px;
  }
  body.operator-locked.access-zone-selecting .access-zone-hero img {
    width: 53px;
    height: 47px;
    border-radius: 10px;
  }
  body.operator-locked.access-zone-selecting .access-zone-hero p { margin-bottom: 3px; font-size: 7px; }
  body.operator-locked.access-zone-selecting .access-zone-hero h1 { font-size: 22px; }
  body.operator-locked.access-zone-selecting .access-zone-hero span { margin-top: 3px; font-size: 9px; line-height: 1.2; }
  body.operator-locked.access-zone-selecting .access-zone-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  body.operator-locked.access-zone-selecting .access-zone-card {
    min-height: 118px;
    padding: 12px 10px;
    grid-template-columns: 1fr;
    justify-items: center;
    align-content: center;
    gap: 8px;
    border-radius: 13px;
    text-align: center;
  }
  body.operator-locked.access-zone-selecting .access-zone-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    font-size: 12px;
  }
  body.operator-locked.access-zone-selecting .access-zone-card small { font-size: 7px; letter-spacing: .08em; }
  body.operator-locked.access-zone-selecting .access-zone-card strong { font-size: 16px; line-height: 1.05; }
  body.operator-locked.access-zone-selecting .access-zone-card em { font-size: 8px; line-height: 1.18; }
  body.operator-locked.access-zone-selecting .access-zone-card b { font-size: 9px; }
  .platform-module-header { display: block; padding: 22px 18px; border-radius: 18px; }
  .platform-users-intro { display: grid; gap: 12px; padding: 15px; }
  .platform-users-intro > span { width: fit-content; }
  .platform-module-grid { grid-template-columns: 1fr; }
  .platform-module-meta { grid-template-columns: 1fr 1fr; }
  body.operator-locked .login-welcome { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 17px; }
  body.operator-locked .login-welcome img { width: 64px; height: 57px; border-radius: 12px; }
  body.operator-locked .login-welcome h1 { font-size: 23px; }
  body.operator-locked .current-user-pin { min-width: 0; }
  body.operator-locked .current-user-pin input {
    height: 52px;
    min-height: 52px;
  }
  body.operator-locked .pin-field-toggle {
    width: 44px;
    height: 44px;
  }
  .user-management-row { grid-template-columns: 1fr; align-items: stretch; }
  .user-management-row .inline-actions { justify-content: stretch; }
  .user-management-row .inline-actions > * { flex: 1; }
  .permission-checklist { grid-template-columns: 1fr; }
  .topbar { min-height: 66px; padding-inline: 15px; }
  .brand-logo { width: 64px; height: 43px; border-radius: 12px; }
  .brand-logo img { width: 82px; height: 52px; }
  .brand-copy strong { font-size: 15px; }
  .brand-copy span, .connection { font-size: 0; }
  body.platform-module-mode:not(.module-home) .connection.offline {
    /* 20260824-mod-outage-honest-v1 — phone 720: restore readable offline badge */
    font-size: 12px;
  }
  .main-nav { gap: 2px; border-radius: 11px; }
  .main-nav a, .nav-menu > summary { padding: 7px 9px; font-size: 12px; }
  .nav-menu-dropdown { min-width: 202px; }
  main { width: min(100% - 28px, 1360px); padding-top: 23px; }
  .page-intro { min-height: 0; padding: 12px; border-radius: 14px; }
  .page-intro h1 br { display: none; }
  .warehouse-hero .assistant-form { grid-template-columns: 1fr; }
  .warehouse-hero .assistant-form .primary-button { width: 100%; }
  .intro-actions { width: 100%; }
  .intro-actions > * { flex: 1; }
  .daily-actions { grid-template-columns: 1fr 1fr; gap: 10px; }
  .action-card { min-height: 120px; padding: 13px; grid-template-columns: 33px minmax(0, 1fr); gap: 8px; }
  .action-icon { width: 33px; height: 33px; border-radius: 10px; font-size: 21px; }
  .action-card strong { font-size: 13px; }
  .action-card small { font-size: 10px; }
  .assistant-panel { padding: 17px; border-radius: 16px; }
  .today-panel { padding: 18px 16px; border-radius: 16px; }
  .today-heading { align-items: start; flex-direction: column; }
  .today-summary { grid-template-columns: 1fr 1fr; }
  .accounting-export { grid-template-columns: 1fr; }
  .accounting-column-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .machine-history-list article { align-items: start; flex-direction: column; }
  .machine-history-list article > span { text-align: left; }
  .assistant-form { grid-template-columns: 1fr; }
  .assistant-form .primary-button { width: 100%; }
  .assistant-confirmation { grid-template-columns: 1fr; }
  .assistant-confirm-form { grid-template-columns: 1fr; }
  .assistant-confirm-form .primary-button { width: 100%; }
  .intelligence-proposal { grid-template-columns: 1fr; gap: 10px; }
  .intelligence-proposal-action { min-width: 0; align-items: flex-start; text-align: left; }
  .intelligence-approved { justify-items: start; }
  .content-grid, .equipment-tables { grid-template-columns: 1fr; }
  .custody-grid { grid-template-columns: 1fr; }
  .operations-grid, .planning-grid, .admin-grid, .history-grid { grid-template-columns: 1fr; }
  .supply-grid { grid-template-columns: 1fr; }
  .operations-grid > :last-child { grid-column: auto; }
  .panel { padding: 21px 17px; border-radius: 16px; }
  .summary-card { min-height: 112px; }
  .summary-card strong { font-size: 33px; }
  .machine-parts-heading { flex-direction: column; }
  .machine-list-heading { align-items: stretch; flex-direction: column; }
  .machine-list-search, .search, .machine-selection-status { width: 100%; }
  .table-heading { align-items: start; flex-direction: column; }
  .equipment-forms { max-width: none; }
  .notification-panel { top: 49px; }
  .current-user { min-width: 116px; display: grid; }
  .current-user-pin { min-width: 58px; }
  .report-controls { grid-template-columns: 1fr; }
  .workspace-heading h2 { font-size: 23px; }
  #operational-layout > #miscare { margin-inline: 0; }
  .assistant-disclosure > summary, .today-disclosure > summary { grid-template-columns: 31px minmax(0, 1fr); }
  .assistant-disclosure summary > b, .today-disclosure summary > b { display: none; }
  .maintenance-panel, .cost-panel, .zone-inventory-panel { padding: 21px 17px; }
  .maintenance-part-row, .campaign-count-form, .maintenance-scan-field { grid-template-columns: 1fr; }
  .maintenance-part-row button { justify-self: end; }
  .maintenance-scan-field .icon-text-button { width: 100%; }
  .mechanic-withdrawals-heading { align-items: stretch; flex-direction: column; }
  .mechanic-withdrawals-heading label { width: 100%; }
  .mechanic-withdrawals-list article { grid-template-columns: 1fr; gap: 6px; }
  .mechanic-withdrawals-list article > span { text-align: left; }
  .receipt-ai-actions, .receipt-ai-grid { grid-template-columns: 1fr; }
  .receipt-ai-button { width: 100%; }
  .product-history-grid { grid-template-columns: 1fr; }
  .label-position-grid { width: min(100%, 340px); grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  body.operator-locked .topbar-actions.login-needs-pin { grid-template-columns: 1fr; }
  body.operator-locked .topbar-actions.login-needs-pin .current-user,
  body.operator-locked .topbar-actions.login-needs-pin .current-user-pin { grid-column: 1 / -1; }
}
@media (max-width: 390px) { .two-columns { grid-template-columns: 1fr; } }

/* Real phone width, or factory WebView that reports ~980px (DEC-169). */
@media (max-width: 720px), (max-width: 1100px) and (hover: none) and (pointer: coarse) {
  /* Meniul de module: se compactează, dar textul rămâne citibil. */
  body.module-home {
    height: 100vh;
    height: 100svh;
    max-height: 100vh;
    max-height: 100svh;
    overflow: hidden;
  }
  body.module-home .topbar {
    height: 100vh;
    height: 100svh;
    max-height: 100vh;
    max-height: 100svh;
    padding: 10px 10px 48px;
    overflow: hidden;
  }
  body.module-home .topbar-actions {
    width: min(100%, 610px);
    height: calc(100vh - 58px);
    height: calc(100svh - 58px);
    max-height: calc(100vh - 58px);
    max-height: calc(100svh - 58px);
    padding: 9px;
    border-radius: 19px;
  }
  body.module-home .access-zone-chooser { gap: 7px; }
  body.module-home .access-zone-hero {
    gap: 8px;
    padding: 10px;
    border-radius: 13px;
  }
  body.module-home .brand,
  body.module-home .access-zone-hero-main > div {
    min-width: 0;
    max-width: 100%;
  }
  body.module-home .access-zone-hero-main {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 8px;
  }
  body.module-home .access-zone-hero-main img { width: 48px; height: 42px; border-radius: 9px; }
  body.module-home .access-zone-hero p { margin-bottom: 2px; font-size: 7px; }
  body.module-home .access-zone-hero h1 { font-size: 18px; }
  body.module-home .access-zone-hero span#modules-description { display: none; }
  body.module-home .access-zone-options,
  body.module-home .access-zone-options[data-visible-count] {
    --az-cols: 2;
    --az-last-col-start: auto;
    --az-last-col-end: auto;
    --az-last-width: 100%;
    --az-last-justify: stretch;
    --menu-grid-gap: 6px;
    gap: var(--menu-grid-gap);
    grid-auto-rows: minmax(0, 1fr);
    overflow: hidden;
  }
  body.module-home .access-zone-options[data-visible-count="0"],
  body.module-home .access-zone-options[data-visible-count="1"] { --az-cols: 1; }
  body.module-home .access-zone-options[data-visible-count="3"],
  body.module-home .access-zone-options[data-visible-count="5"],
  body.module-home .access-zone-options[data-visible-count="7"],
  body.module-home .access-zone-options[data-visible-count="9"],
  body.module-home .access-zone-options[data-visible-count="11"] {
    --az-cols: 2;
    --az-last-col-start: 1;
    --az-last-col-end: -1;
    --az-last-width: var(--az-card-track);
    --az-last-justify: center;
  }
  /* 10–12 cards on phone: cells are too short for two desc lines. Hide, do not clip. */
  body.module-home .access-zone-options[data-visible-count="10"] .access-zone-desc,
  body.module-home .access-zone-options[data-visible-count="11"] .access-zone-desc,
  body.module-home .access-zone-options[data-visible-count="12"] .access-zone-desc,
  body.module-home .access-zone-options[data-visible-count="10"] .access-zone-card em.access-zone-desc,
  body.module-home .access-zone-options[data-visible-count="11"] .access-zone-card em.access-zone-desc,
  body.module-home .access-zone-options[data-visible-count="12"] .access-zone-card em.access-zone-desc {
    display: none;
  }
  body.module-home .access-zone-card {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: var(--az-pad-y) var(--az-pad-x);
    gap: var(--az-stack-gap);
    border-radius: 12px;
  }
  body.module-home .access-zone-icon {
    width: var(--az-icon);
    height: var(--az-icon);
    border-radius: var(--az-icon-radius);
  }
  body.module-home .access-zone-icon svg {
    width: var(--az-icon-svg);
    height: var(--az-icon-svg);
  }
  body.module-home .access-zone-admin-button { width: 100%; max-width: none; }
  body.module-home .access-zone-hero-actions {
    flex-basis: 34px;
    width: 34px;
  }
  body.module-home .access-zone-hero-actions > button.session-user-home,
  body.module-home .access-zone-hero-actions > button.topbar-issue-button {
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    height: 30px;
    min-height: 30px;
    justify-content: center;
    padding: 0;
    border-radius: 10px;
  }
  body.module-home .access-zone-hero-actions b { display: none !important; }
  body.module-home .access-zone-hero-actions .hero-action-icon {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    flex-basis: 22px;
    border-radius: 7px;
  }
  body.module-home .access-zone-hero-actions .hero-action-icon svg { width: 12px; height: 12px; }
  body.module-home .access-zone-admin-button { min-height: 30px; padding: 4px 8px; gap: 6px; border-radius: 9px; }
  body.module-home .access-zone-admin-button > span:first-child { width: 18px; height: 18px; border-radius: 6px; font-size: 10px; }
  body.module-home .access-zone-admin-button strong { font-size: 9px; }
  body.module-home .access-zone-admin-button small { font-size: 7px; }
  body.module-home .access-zone-phone-alerts { padding: 7px 8px; gap: 6px; border-radius: 9px; }
  body.module-home .access-zone-phone-alerts-icon { width: 18px; height: 18px; border-radius: 6px; }
  body.module-home .access-zone-phone-alerts-icon svg { width: 11px; height: 11px; }
  body.module-home .access-zone-phone-alerts-copy strong { font-size: 10px; }
  body.module-home .access-zone-phone-alerts-copy p,
  body.module-home .access-zone-phone-alerts-wait { font-size: 9px; }
  body.module-home .access-zone-phone-alerts-actions .secondary-button,
  body.module-home .access-zone-phone-alerts-actions .ghost-button { min-height: 28px; font-size: 9px; }
  .module-permission-choices { grid-template-columns: 1fr; }
  .user-permissions-steps { grid-template-columns: 1fr; }
}

/* Telefon / tabletă: pagina nu trebuie să poată fi împinsă pe orizontală.
   Unele ecrane iOS păstrează dimensiunile minime ale unui element flex/grid;
   regulile de mai jos le permit să se micșoreze, fără să afecteze tabelele
   care au propriul scroll intern. */
@media (max-width: 720px) {
  html,
  body {
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
    overflow-x: hidden !important;
    overscroll-behavior-x: none;
    /* VIRIX-039/VIRIX-040: pan-y simplu bloca pinch-zoom și scrollul orizontal
       din containerele de tabel (touch-action e o intersecție cu strămoșii).
       „manipulation” = pan-x + pan-y + pinch-zoom, fără dublu-tap zoom. */
    touch-action: manipulation;
    -webkit-overflow-scrolling: touch;
    background-attachment: scroll !important;
  }

  /* Home is one used box. Do not force auto height on module-home.
     Keep :has() in its own rule — old WebView drops the whole list. */
  body:not(.module-home) {
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto;
  }

  /* Pe Android (app instalată), smooth + fixed background blochează deseori scroll-ul. */
  html { scroll-behavior: auto; touch-action: manipulation; }

  body { touch-action: manipulation; }

  .topbar,
  main {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  main {
    width: calc(100% - 28px);
    max-width: calc(100% - 28px);
    overflow: visible;
  }

  html:has(body.module-home) {
    height: 100vh !important;
    height: 100svh !important;
    max-height: 100vh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
  }
  body.module-home {
    height: 100vh !important;
    height: 100svh !important;
    max-height: 100vh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
  }
  body.module-home .topbar {
    height: 100vh !important;
    height: 100svh !important;
    max-height: 100vh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
  }

  .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    padding: 10px 14px;
  }

  /* Module platformă (Debitare, Pânze…): o singură bandă compactă, fără suprapunere. */
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    min-height: 56px;
    padding: 8px 12px;
    padding-top: max(8px, env(safe-area-inset-top, 0px));
  }
  /* VIRIX-041: Magazie (warehouse-operator-mode) primea aceeași bandă compactă
     de topbar ca modulele platformă, dar păstra fallback-ul CSS static de 88px
     de pe desktop — sincronizarea din JS (syncFixedTopbarOffset) corecta ulterior,
     dar rămânea un fallback greșit înainte de măsurare / dacă JS întârzie. */
  body.platform-module-mode:not(.module-home):not(.operator-locked),
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) {
    --app-topbar-offset: calc(64px + env(safe-area-inset-top, 0px));
  }
  /* 20260821-wh-chrome-phone-v1 — Magazie folosea banda compactă, dar NU
     override-urile de brand/actions. `.brand { width:100% }` + nowrap
     împingea userul și ▦ în afara ecranului (overflow-x pe html/body). */
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand {
    width: auto;
    flex: 0 0 auto;
    max-width: 42%;
    gap: 8px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-logo,
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-logo img,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-logo,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-logo img {
    width: 36px;
    height: 28px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-copy strong,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-copy strong {
    font-size: 12px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-copy span,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-copy span {
    display: none;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar-actions,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-actions {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    width: auto;
    min-width: 0;
    margin-left: 0;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .session-user,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: none;
    min-height: 34px;
    padding: 4px 8px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .session-user strong,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .session-user small,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user small {
    display: none;
  }
  /* Înapoi = același lucru ca Home pe module; pe telefon rămâne doar ▦. */
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar-back,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-back {
    display: none !important;
  }
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .env-badge {
    display: none;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar-issue-button b,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-issue-button b {
    display: none !important;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar-issue-button,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-issue-button {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
    justify-content: center;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar-module-home,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar-module-home {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
    height: 34px;
    flex: 0 0 34px;
  }

  .topbar > *,
  main > *,
  .panel,
  .page-intro,
  .workspace-section,
  .topbar * {
    min-width: 0;
    max-width: 100%;
  }

  .brand {
    width: 100%;
    min-width: 0;
  }

  .brand-copy {
    min-width: 0;
    overflow: hidden;
  }

  .brand-copy strong,
  .brand-copy span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .topbar-actions {
    width: 100%;
    min-width: 0;
    margin-left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px auto;
    align-items: end;
    gap: 8px;
  }

  .topbar-actions .current-user {
    width: 100%;
    min-width: 0;
  }

  .topbar-actions .current-user select,
  .topbar-actions .current-user input {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .topbar-actions .connection {
    display: none !important;
  }
  body.platform-module-mode:not(.module-home) .topbar-actions .connection.offline {
    /* 20260824-mod-outage-honest-v1 — factory phone chrome hid the only outage signal */
    display: flex !important;
    grid-column: 1 / -1;
    font-size: 12px;
    white-space: normal;
  }

  /* PIN-ul apare doar după alegerea unui utilizator care are PIN configurat. */
  body.operator-locked .topbar-actions.login-needs-pin .current-user-pin {
    display: grid !important;
    width: 100%;
    gap: 8px;
  }
  body.operator-locked .topbar-actions:not(.login-needs-pin) .current-user-pin { display: none !important; }

  .notification-button { width: 40px; min-width: 40px; }
  .topbar-back { min-width: 0; padding-inline: 9px; }

  .main-nav {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    overflow: visible;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .main-nav > a,
  .main-nav > .nav-menu { min-width: 0; }

  .main-nav a,
  .nav-menu > summary {
    min-width: 0;
    padding: 7px 8px;
    font-size: 11px;
  }

  .nav-menu-dropdown,
  .nav-menu-end .nav-menu-dropdown {
    left: 0;
    right: auto;
    width: min(280px, calc(100vw - 28px));
    min-width: 0;
    max-width: calc(100vw - 28px);
  }

  .page-intro,
  .panel,
  .assistant-panel,
  .today-panel,
  .workspace-section,
  .equipment-tables,
  .table-wrap {
    min-width: 0;
    max-width: 100%;
  }

  .table-wrap {
    width: 100%;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  .two-columns,
  .summary-grid,
  .daily-actions,
  #operational-layout > .daily-actions,
  .content-grid,
  .intelligence-grid,
  .operations-grid,
  .planning-grid,
  .admin-grid,
  .history-grid,
  .supply-grid,
  .equipment-tables,
  .maintenance-grid,
  .zone-inventory-grid,
  .cost-grid,
  .report-controls,
  .assistant-form,
  .assistant-confirmation,
  .assistant-confirm-form,
  .accounting-export,
  .receipt-ai-actions,
  .receipt-ai-grid,
  .campaign-count-form,
  .maintenance-scan-field {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  .field-with-camera,
  .field-with-clear,
  .control-with-clear {
    min-width: 0;
    max-width: 100%;
  }

  img,
  svg,
  video,
  canvas { max-width: 100%; }
}

/* VIRIX-082: telefon în landscape — topbar-ul standard (56-88px) pe o înălțime
   mică de viewport (ex. 375×667 culcat ≈ 375px înălțime) fura prea mult din ecran.
   Compactăm suplimentar banda și păstrăm minim jumătate din viewport pentru conținut. */
@media (max-width: 1000px) and (max-height: 480px) and (orientation: landscape) {
  body.platform-module-mode:not(.module-home):not(.operator-locked) .topbar,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .topbar {
    min-height: 40px;
    padding: 4px 10px;
    padding-top: max(4px, env(safe-area-inset-top, 0px));
    gap: 6px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked),
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) {
    --app-topbar-offset: calc(46px + env(safe-area-inset-top, 0px));
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-copy,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-copy span {
    display: none;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-logo,
  body.platform-module-mode:not(.module-home):not(.operator-locked) .brand-logo img,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-logo,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .brand-logo img {
    width: 28px;
    height: 22px;
  }
  body.platform-module-mode:not(.module-home):not(.operator-locked) .session-user,
  body.warehouse-operator-mode:not(.module-home):not(.operator-locked) .session-user {
    min-height: 28px;
    padding: 2px 8px;
  }
  /* Login may grow. Home stays one screen — 10 modules in two rows. */
  body.operator-locked.access-zone-selecting .topbar {
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    overflow-y: auto;
    padding-block: 10px;
  }
  body.module-home .topbar {
    height: 100vh;
    height: 100svh;
    max-height: 100vh;
    max-height: 100svh;
    min-height: 0;
    overflow: hidden;
    padding-block: 10px;
  }
  body.module-home .access-zone-options[data-visible-count="8"],
  body.module-home .access-zone-options[data-visible-count="9"],
  body.module-home .access-zone-options[data-visible-count="10"],
  body.module-home .access-zone-options[data-visible-count="11"],
  body.module-home .access-zone-options[data-visible-count="12"] {
    --az-cols: 5;
    --az-last-col-start: auto;
    --az-last-col-end: auto;
    --az-last-width: 100%;
    --az-last-justify: stretch;
  }
  body.module-home .access-zone-options[data-visible-count="11"] {
    --az-cols: 5;
    --az-last-col-start: 1;
    --az-last-col-end: -1;
    --az-last-width: var(--az-card-track);
    --az-last-justify: center;
  }
}

/* Fluxul de pânze: controale compacte, fără depășire pe ecran sau în panou. */
html, body { max-width: 100%; overflow-x: hidden; }
textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  /* Operatorul nu trebuie să poată trage un câmp în afara panoului. */
  resize: none;
}
.blade-family-rule,
.blade-work-summary { display: none !important; }
.blade-ready-form,
.blade-shift-panel,
.blade-machine-browser,
.blade-mount-form,
.blade-picker,
.blade-datetime-control,
.blade-workflow-actions,
.two-columns > * { min-width: 0; max-width: 100%; }
.blade-machine-choices { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.blade-machine-choice {
  min-width: 0;
  padding: 10px 9px;
  border: 1px solid #c9dfd0;
  border-radius: 11px;
  color: #124d35;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.blade-machine-choice b,
.blade-machine-choice small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blade-machine-choice small { margin-top: 3px; color: #62786d; font-size: .7rem; }
.blade-machine-choice.is-selected { border-color: #138050; background: #ebf8ef; box-shadow: 0 0 0 2px rgb(19 128 80 / .12); }
.blade-machine-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.blade-machine-tag { flex: 1 1 220px; min-width: 0; }
.blade-removal-form > .field-help { display: none; }
/* Selectorul de zonă are o identitate diferită de pașii de lucru din atelier.
   Aici utilizatorul schimbă doar ecranul, nu mută nicio pânză în flux. */
.blade-zone-nav {
  margin: 0 0 18px;
  padding: 14px 16px 16px;
  border: 1px solid #cfe4d4;
  border-radius: 18px;
  background: linear-gradient(135deg, #f8fcf8, #eff8f2);
}
.blade-zone-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 1px 12px;
}
.blade-zone-heading .eyebrow { margin: 0 0 2px; color: #3d7d1e; }
.blade-zone-heading h2 { margin: 0; color: #143f2e; font-size: 1rem; }
.blade-zone-heading p:not(.eyebrow) { margin: 3px 0 0; color: #5c7568; font-size: .76rem; }
.blade-zone-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  padding: 7px 10px;
  color: #416958;
  border: 1px solid #d1e3d5;
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  font-size: .71rem;
  font-weight: 750;
}
.blade-zone-status i { width: 7px; height: 7px; border-radius: 50%; background: #2e9a5b; box-shadow: 0 0 0 3px #ddf4e4; }
.blade-zone-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.blade-zone-button {
  position: relative;
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr);
  column-gap: 8px;
  align-items: center;
  min-width: 0;
  min-height: 58px;
  padding: 9px 10px;
  color: #214d39;
  border: 1px solid #cadfce;
  border-radius: 12px;
  background: rgba(255, 255, 255, .9);
  cursor: pointer;
  text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.blade-zone-button:hover { border-color: #7db592; background: #fbfefb; }
.blade-zone-button.active { border-color: #168451; background: #eaf7ee; box-shadow: inset 4px 0 0 #15844f, 0 4px 12px rgb(15 95 59 / .10); }
.blade-zone-button i { display: grid; width: 29px; height: 29px; place-items: center; color: #176a45; border-radius: 9px; background: #e4f3e8; font-style: normal; font-size: .75rem; font-weight: 900; }
.blade-zone-button.active i { color: #fff; background: #168451; }
.blade-zone-button span { min-width: 0; display: grid; gap: 1px; }
.blade-zone-button b { overflow: hidden; color: inherit; font-size: .77rem; text-overflow: ellipsis; white-space: nowrap; }
.blade-zone-button small { overflow: hidden; color: #5f776b; font-size: .64rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.blade-zone-button em { grid-column: 2; margin-top: 2px; color: #29734d; font-size: .62rem; font-style: normal; font-weight: 800; }
.blade-zone-button.active em { color: #117345; }

@media (max-width: 980px) {
  .blade-zone-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blade-machine-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .blade-zone-nav { padding: 12px; border-radius: 14px; }
  .blade-zone-heading { display: block; margin-bottom: 10px; }
  .blade-zone-status { margin-top: 8px; }
  .blade-zone-tabs { grid-template-columns: 1fr; gap: 7px; }
  .blade-zone-button { min-height: 56px; }
  .blade-machine-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blade-machine-choice { padding: 9px 8px; }
  .blade-workshop-title { align-items: stretch; flex-direction: column; }
  .blade-workshop-title-actions { justify-content: stretch; }
  .blade-workshop-title-actions .secondary-button { flex: 1 1 100%; }
  .blade-register-shortcut { width: 100%; }
  .blade-incident-heading { align-items: flex-start; }
  .blade-incident-toolbar { justify-content: stretch; }
  .blade-incident-filter { width: 100%; }
  .blade-incident-row { grid-template-columns: 1fr; gap: 7px; }
}

/* Pânze — audit vizual: un singur layout stabil pentru evidența pe utilaj. */
.blade-machine-browser-compact {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.blade-machine-browser-compact,
.blade-machine-browser-compact * { min-width: 0; }
.blade-machine-browser-compact .blade-machine-choices {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: stretch;
}
.blade-machine-browser-compact .blade-machine-choices.blade-machine-group-choices {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  max-width: none;
}
.blade-machine-browser-compact .blade-machine-choice {
  min-height: 62px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}
.blade-machine-choice.tone-all { border-color: #9fc9ae; }
.blade-machine-choice.tone-unassigned { border-color: #e0c28a; background: linear-gradient(145deg, #fff, #fff8ea); }
.blade-machine-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 1.3fr) minmax(140px, .8fr) auto auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0 0;
  padding: 12px;
}
/* [VirixBlades] CSS moved to blades.css (former 4300-4442) */

/* --------------------------------------------------------------------------
/* [VirixBlades] CSS moved to blades.css (former 4445-5208) */

.env-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--env-accent-soft, #e8f5ec);
  color: var(--env-accent-deep, var(--forest-deep));
  font-size: 12px;
  letter-spacing: .04em;
  white-space: nowrap;
}
.env-badge b { font-size: 12px; }
.env-badge small { opacity: .8; font-size: 11px; }
.env-badge[data-env="development"],
body[data-virix-env="development"] .env-badge {
  background: #d9e8f7;
  border-color: #7aa7d4;
  color: #0f3d6b;
}
.env-badge[data-env="staging"],
body[data-virix-env="staging"] .env-badge {
  background: #fff1d6;
  border-color: #e0a93a;
  color: #8a5f0d;
}
/* PROD: identitatea e în titlu (Virix PROD). Badge-ul e doar versiune discretă, nu pastilă. */
.env-badge[data-env="production"],
body[data-virix-env="production"] .env-badge {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: rgba(248, 255, 249, 0.42);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: 0.06em;
  padding: 0;
  gap: 5px;
}
body[data-virix-env="production"] .env-badge b,
body[data-virix-env="production"] .env-badge small {
  font-size: 10px;
  font-weight: 650;
  opacity: 0.92;
}
body[data-virix-env="development"] .topbar {
  border-bottom: 3px solid #1f5f9e;
}
body[data-virix-env="staging"] .topbar {
  border-bottom: 3px solid #c4891a;
}
body[data-virix-env="production"] .topbar {
  border-bottom: 3px solid #0d5c4f;
}
.env-warning-banner {
  padding: 0.45rem 1rem;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.env-warning-banner[data-env="development"] {
  background: #d9e8f7;
  color: #0f3d6b;
}
.env-warning-banner[data-env="staging"] {
  background: #fff1d6;
  color: #8a5f0d;
}
.env-warning-banner[hidden],
#app-brand-subtitle[hidden],
.env-warning-banner[data-env="production"],
body[data-virix-env="production"] .env-warning-banner {
  display: none !important;
}
body.module-home .env-badge,
body.operator-locked .env-badge {
  position: fixed;
  top: auto;
  right: 14px;
  bottom: 14px;
  left: auto;
  z-index: 60;
  margin-left: 0;
  padding: 5px 10px;
  gap: 6px;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: .03em;
  opacity: .94;
  box-shadow: 0 6px 18px rgba(12, 30, 24, .12);
  pointer-events: none;
}
body.module-home .env-badge b,
body.operator-locked .env-badge b { font-size: 11px; font-weight: 800; }
body.module-home .env-badge small,
body.operator-locked .env-badge small { font-size: 10px; opacity: .85; }
/* PROD, în modul: ultimul element din header — dreapta sus, după acțiuni. */
body[data-virix-env="production"]:not(.module-home):not(.operator-locked) .env-badge {
  order: 2;
  margin-left: 8px;
}
/* PROD, login + meniu module: colț dreapta-sus, nu pastilă jos. */
body[data-virix-env="production"].module-home .env-badge,
body[data-virix-env="production"].operator-locked .env-badge {
  top: max(10px, env(safe-area-inset-top, 0px));
  right: max(12px, env(safe-area-inset-right, 0px));
  bottom: auto;
  padding: 0;
  opacity: 0.7;
  box-shadow: none;
  color: rgba(255, 255, 255, 0.58);
  text-shadow: 0 1px 2px rgba(4, 41, 30, 0.4);
}
body[data-virix-env="production"].module-home .env-badge b,
body[data-virix-env="production"].operator-locked .env-badge b,
body[data-virix-env="production"].module-home .env-badge small,
body[data-virix-env="production"].operator-locked .env-badge small {
  font-size: 10px;
  font-weight: 650;
}
@media (max-width: 720px) {
  body[data-virix-env="production"]:not(.module-home):not(.operator-locked) .env-badge small {
    display: none;
  }
}
body.module-home .env-warning-banner,
body.operator-locked .env-warning-banner {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 39;
}
/* Pe meniul principal, bannerul de avertizare nu trebuie să strice centrarea. */
body.module-home .env-warning-banner {
  display: none;
}

/* 20260904-coord-incident-link-v2 / 20260904-coord-routine-photo-v1 — poartă rutină pe tot VIRIX */
#coord-gate {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background: rgba(4, 41, 30, .46);
}
#coord-gate[hidden] { display: none; }
body.coord-gate-locked main,
body.coord-gate-locked .main-nav,
body.coord-gate-locked .platform-module-shell,
body.coord-gate-locked .topbar,
body.coord-gate-locked .notification-button,
body.coord-gate-locked .notification-panel {
  pointer-events: none;
}
body.coord-gate-locked #coord-gate {
  pointer-events: auto;
}
body.operator-locked #coord-gate {
  display: none !important;
}
.coord-gate-card {
  width: min(560px, 100%);
  max-height: min(88vh, 760px);
  overflow: auto;
  display: grid;
  gap: 14px;
  padding: 22px 20px;
  border: 1px solid #c9dccb;
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(183, 232, 105, .14), transparent 12rem),
    linear-gradient(180deg, #fbfefb, #f3f8f3);
  box-shadow: 0 28px 70px rgba(12, 74, 50, .22);
  color: #10271e;
}
.coord-gate-kicker {
  margin: 0;
  color: #0e7547;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.coord-gate-card h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.2;
}
.coord-gate-lead {
  margin: 0;
  color: #3d6650;
}
.coord-gate-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.coord-gate-item {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid #d5e7d8;
  border-radius: 14px;
  background: #fff;
}
.coord-gate-item strong { font-size: 16px; }
.coord-gate-item small { color: #3d6650; }
.coord-gate-item p { margin: 0; }
.coord-gate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: start;
}
.coord-gate-block {
  display: grid;
  gap: 8px;
  width: 100%;
}
.coord-gate-block textarea {
  width: 100%;
  min-height: 64px;
}
.coord-gate-item[data-coord-gate-busy] {
  opacity: .72;
}
.coord-gate-item button:disabled,
.coord-gate-item textarea:disabled {
  cursor: wait;
}
.coord-gate-item:not([data-coord-gate-busy]) [data-coord-gate-done]:disabled {
  cursor: not-allowed;
}
.coord-gate-photos {
  display: grid;
  gap: 8px;
}
.coord-gate-photo-lead {
  margin: 0;
  color: #3d6650;
  font-size: 13px;
}
.coord-gate-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.coord-gate-thumbs:empty { display: none; }
.coord-gate-thumb {
  position: relative;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  min-width: 64px;
  min-height: 64px;
  padding: 0;
  overflow: hidden;
  border: 1px solid #c5decb;
  border-radius: 12px;
  background: #f3f8f4;
}
.coord-gate-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.coord-gate-exit {
  justify-self: start;
}

/* 20260911-coord-home-notice-v1c / 20260911-coord-comm-attach-v1 — același limbaj ca poarta, alt job: am citit, nu confirm lucrul */
#coord-notice {
  position: fixed;
  inset: 0;
  z-index: 10800;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background: rgba(4, 41, 30, .46);
}
#coord-notice[hidden] { display: none; }
body.operator-locked #coord-notice {
  display: none !important;
}
.coord-notice-card {
  width: min(640px, 100%);
}
.coord-notice-index {
  margin: 0;
  color: #3d6650;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.coord-notice-meta {
  margin: 0;
  color: #3d6650;
  font-size: 14px;
}
.coord-notice-body {
  display: grid;
  gap: 12px;
}
.coord-notice-copy {
  display: grid;
  gap: 8px;
}
.coord-notice-copy p,
.coord-notice-body p {
  margin: 0;
  white-space: pre-wrap;
}
.coord-notice-facts {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #3d6650;
}
.coord-notice-steps {
  margin: 0;
  padding-left: 1.2em;
  display: grid;
  gap: 6px;
}
.coord-notice-card [data-coord-notice-ok] {
  justify-self: start;
}
.coord-file-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #c5decb;
  border-radius: 12px;
  background: #f3f8f4;
  color: #0b3d2a;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.coord-notice-photos,
.coord-notice-files {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.coord-notice-photos .coord-gate-thumb {
  display: block;
}
