.novincut-signin {
  --signin-unit: clamp(.88px, calc(100vw / 1487), 1.1px);
  position: relative;
  isolation: isolate;
  min-height: max(780px, 100svh);
  overflow: clip;
  color: var(--ink-950);
  background: var(--canvas);
  font-family: "Plus Jakarta Sans", "Shabnam", sans-serif;
}

.novincut-signin[lang="fa"] { font-family: var(--font-fa); }
.novincut-signin button, .novincut-signin input, .novincut-signin a { touch-action: manipulation; }
.novincut-signin button { cursor: pointer; }
.novincut-signin button:disabled { cursor: not-allowed; }
.novincut-signin :is(button, a, input):focus-visible { outline: 3px solid var(--brand-800); outline-offset: 4px; }
.novincut-signin .novincut-signin__scene { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; user-select: none; }
.novincut-signin[dir="ltr"] .novincut-signin__scene { transform: scaleX(-1); }

.novincut-signin .novincut-signin__header {
  position: absolute;
  inset-block-start: 3.4vh;
  inset-inline: 4.1%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(82 * var(--signin-unit));
  min-height: 0;
  gap: 24px;
  padding: 0 calc(30 * var(--signin-unit));
  border: 1px solid rgba(208, 216, 226, .72);
  border-radius: calc(24 * var(--signin-unit));
  background: rgba(236, 243, 251, .38);
  box-shadow: 0 14px 28px rgba(23, 48, 87, .09);
  backdrop-filter: blur(16px) saturate(115%);
  -webkit-backdrop-filter: blur(16px) saturate(115%);
}
.novincut-signin .novincut-signin__brand { display: flex; align-items: center; min-height: 44px; text-decoration: none; }
.novincut-signin .novincut-signin__brand img { display: block; width: calc(180 * var(--signin-unit)); height: auto; }
.novincut-signin .novincut-signin__language { display: flex; align-items: center; gap: 12px; direction: ltr; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--brand-700); font-size: 18px; font-weight: 700; line-height: 1; }
.novincut-signin .novincut-signin__language img { display: block; flex: none; filter: invert(34%) sepia(13%) saturate(1478%) hue-rotate(176deg) brightness(95%) contrast(86%); }
.novincut-signin .novincut-signin__language-divider { padding-inline: 2px; }
.novincut-signin .novincut-signin__language:hover { color: var(--brand-900); }
.novincut-signin .novincut-signin__main { padding-block: 22.87vh 70px; padding-inline: 18.08vw 44.25vw; }
.novincut-signin .novincut-signin__card {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: calc(40 * var(--signin-unit)) calc(36 * var(--signin-unit)) calc(35 * var(--signin-unit));
  border: 1.5px solid rgba(255, 255, 255, .86);
  border-radius: calc(32 * var(--signin-unit));
  background: rgba(239, 245, 252, .43);
  box-shadow: -12px 28px 48px rgba(23, 48, 87, .15), 0 2px 4px rgba(23, 48, 87, .02);
  backdrop-filter: blur(18px) saturate(105%);
  -webkit-backdrop-filter: blur(18px) saturate(105%);
}
.novincut-signin .novincut-signin__emblem { position: relative; width: calc(126 * var(--signin-unit)); height: calc(125 * var(--signin-unit)); margin: 0 auto calc(22 * var(--signin-unit)); pointer-events: none; }
.novincut-signin .novincut-signin__emblem img { position: absolute; width: calc(270 * var(--signin-unit)); height: auto; max-width: none; left: 50%; top: calc(-73 * var(--signin-unit)); transform: translateX(-50%); }
.novincut-signin .novincut-signin__card > form { display: block; width: 100%; max-width: none; margin: 0; }
.novincut-signin .field { display: block; color: var(--ink-950); font-weight: 500; }
.novincut-signin .field > span { display: block; margin-block-end: calc(6 * var(--signin-unit)); font-size: calc(20 * var(--signin-unit)); font-weight: 500; line-height: calc(28 * var(--signin-unit)); }
.novincut-signin .field input {
  display: block;
  width: 100%;
  min-width: 0;
  height: calc(63 * var(--signin-unit));
  min-height: 0;
  padding: 12px 18px;
  border: 1px solid var(--ink-200);
  border-radius: calc(14 * var(--signin-unit));
  background: rgba(255, 255, 255, .77);
  color: var(--ink-950);
  font-family: "Plus Jakarta Sans", "Shabnam", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, .6);
  transition: border-color 160ms, box-shadow 160ms;
}
.novincut-signin .field input:hover { border-color: rgba(83, 101, 131, .65); }
.novincut-signin .field input:focus { border-color: var(--brand-800); box-shadow: 0 0 0 3px rgba(83, 101, 131, .1); }
.novincut-signin .field input[aria-invalid="true"] { border-color: #923d3b; }
.novincut-signin .field + .field { margin-block-start: calc(20 * var(--signin-unit)); }
.novincut-signin .field__password > input { padding-left: 18px; padding-right: 58px; }
.novincut-signin[dir="rtl"] .field__password > input { padding-left: 58px; padding-right: 18px; }
.novincut-signin .field__password > .icon-button { inset-inline-end: calc(10 * var(--signin-unit)); width: 44px; height: 44px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--brand-700); }
.novincut-signin .field__password > .icon-button svg { width: 26px; height: 26px; }
.novincut-signin .field__password > .icon-button:hover { background: rgba(83, 101, 131, .08); }
.novincut-signin .novincut-signin__recover { display: flex; align-items: center; min-height: 44px; margin-block-start: calc(8 * var(--signin-unit)); padding: 0; border: 0; background: transparent; color: var(--brand-700); font-size: calc(18 * var(--signin-unit)); font-weight: 500; line-height: 1.5; }
.novincut-signin .novincut-signin__recover:hover { text-decoration: underline; text-underline-offset: 4px; color: var(--brand-900); }
.novincut-signin .novincut-signin__card > form > .novincut-signin__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: calc(69 * var(--signin-unit));
  margin-block-start: calc(12 * var(--signin-unit));
  padding: 12px 20px;
  border: 1px solid rgba(133, 171, 194, .36);
  border-radius: calc(14 * var(--signin-unit));
  background: rgba(133, 171, 194, .35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 7px 14px rgba(23, 48, 87, .03);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: var(--brand-900);
  font-size: calc(21 * var(--signin-unit));
  font-weight: 700;
  line-height: 1.4;
  transition: background 160ms, box-shadow 160ms;
}
.novincut-signin .novincut-signin__card > form > .novincut-signin__submit:hover:not(:disabled) { background: rgba(133, 171, 194, .47); box-shadow: 0 6px 20px rgba(23, 48, 87, .1); transform: none; }
.novincut-signin .novincut-signin__card > form > .novincut-signin__submit:active:not(:disabled) { background: rgba(133, 171, 194, .57); }
.novincut-signin .novincut-signin__card > form > .novincut-signin__submit:disabled { opacity: .65; }
.novincut-signin .auth-feedback { margin-block-end: 22px; }
.novincut-signin .auth-feedback:empty { display: none; }
.novincut-signin .auth-feedback.is-reserved:empty { display: block; }
.novincut-signin .novincut-signin__recovery-form { display: grid; gap: 20px; }
.novincut-signin .novincut-signin__recovery-form .field > span { font-size: 17px; line-height: 28px; }
.novincut-signin .novincut-signin__recovery-form .field input { height: 56px; font-size: 16px; }
.novincut-signin .novincut-signin__recovery-form > p { margin: 0; }

@media (min-width: 1700px) {
  .novincut-signin .novincut-signin__main { padding-inline: 18.08vw 0; }
  .novincut-signin .novincut-signin__card { max-width: 620px; }
}
@media (max-width: 1100px) and (min-width: 901px) { .novincut-signin .novincut-signin__main { padding-inline: 10vw 39vw; } }
@media (max-width: 900px) {
  .novincut-signin { --signin-unit: .9px; min-height: 100svh; }
  .novincut-signin .novincut-signin__header { inset: 24px 24px auto; height: 72px; padding-inline: 24px; border-radius: 20px; }
  .novincut-signin .novincut-signin__brand img { width: 164px; }
  .novincut-signin .novincut-signin__main { padding: 164px 24px 64px; }
  .novincut-signin .novincut-signin__card { max-width: 504px; margin-inline: auto; padding: 32px; }
  .novincut-signin .novincut-signin__scene { object-position: 36% center; }
  .novincut-signin .field > span { font-size: 18px; line-height: 28px; }
  .novincut-signin .field input { height: 58px; }
  .novincut-signin .novincut-signin__recover { font-size: 16px; }
  .novincut-signin .novincut-signin__card > form > .novincut-signin__submit { min-height: 60px; font-size: 20px; }
}
@media (max-width: 520px) {
  .novincut-signin .novincut-signin__header { inset: 16px 16px auto; height: 64px; padding-inline: 18px; border-radius: 18px; gap: 16px; }
  .novincut-signin .novincut-signin__brand img { width: 146px; }
  .novincut-signin .novincut-signin__language { gap: 8px; font-size: 15px; }
  .novincut-signin .novincut-signin__language img { width: 19px; height: 19px; }
  .novincut-signin .novincut-signin__main { padding: 120px 16px 48px; }
  .novincut-signin .novincut-signin__card { padding: 28px 22px; border-radius: 26px; background: rgba(255, 255, 255, .58); }
  .novincut-signin .novincut-signin__emblem { margin-block-end: 24px; }
  .novincut-signin .field > span { font-size: 17px; }
  .novincut-signin .field input { height: 56px; font-size: 16px; }
  .novincut-signin .field + .field { margin-block-start: 20px; }
  .novincut-signin .novincut-signin__card > form > .novincut-signin__submit { min-height: 58px; }
  .novincut-signin .novincut-signin__scene { object-position: 41% center; }
}
@media (max-height: 700px) and (min-width: 901px) {
  .novincut-signin .novincut-signin__main { padding-block-start: 148px; }
  .novincut-signin .novincut-signin__header { inset-block-start: 24px; }
}
@media (prefers-reduced-motion: reduce) { .novincut-signin *, .novincut-signin *::before, .novincut-signin *::after { transition: none !important; scroll-behavior: auto !important; } }
@font-face {
  font-family: 'Ozone Inter';
  src: url('/assets/fonts/inter.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Ozone identity tokens. Existing workspace tokens are migrated per surface. */
:root {
  --ozone-ink: #151515;
  --ozone-paper: #fafaf7;
  --ozone-field: #ffffff;
  --ozone-muted: #666660;
  --ozone-line: #d8d8d1;
  --ozone-input-line: #8c8c86;
  --ozone-hover: #30302d;
  --ozone-soft: #efefea;
  --ozone-radius: 6px;
  --ozone-font: 'Ozone Inter', 'Shabnam', system-ui, sans-serif;
}

.novincut-signin.ozone-access,
.ozone-access-loading {
  --ink-950: var(--ozone-ink);
  --ink-900: var(--ozone-ink);
  --ink-800: var(--ozone-hover);
  --ink-700: var(--ozone-muted);
  --ink-600: var(--ozone-muted);
  --ink-500: var(--ozone-muted);
  --ink-200: var(--ozone-line);
  --ink-150: var(--ozone-line);
  --brand-900: var(--ozone-ink);
  --brand-800: var(--ozone-ink);
  --brand-700: var(--ozone-muted);
  --brand-600: var(--ozone-muted);
  --brand-100: var(--ozone-soft);
  --brand-050: var(--ozone-paper);
  --brand-rgb: 21, 21, 21;
  --brand-shadow-rgb: 21, 21, 21;
  --paper: var(--ozone-field);
  --canvas: var(--ozone-paper);
  color: var(--ozone-ink);
  background: var(--ozone-paper);
  font-family: var(--ozone-font);
  scrollbar-color: var(--ozone-line) var(--ozone-paper);
  scrollbar-width: thin;
}

body:has(.ozone-access, .ozone-access-loading) {
  background: var(--ozone-paper);
  scrollbar-color: var(--ozone-line) var(--ozone-paper);
}

.novincut-signin.ozone-access {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100svh;
  overflow: visible;
}

.novincut-signin.ozone-access[hidden] {
  display: none;
}
.novincut-signin.ozone-access[lang='fa'],
.ozone-access-loading[lang='fa'] {
  font-family: 'Shabnam', var(--ozone-font);
}

.ozone-access__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  direction: ltr;
  width: min(100%, 1600px);
  margin-inline: auto;
  padding: 20px 36px;
}

.ozone-access__brand {
  display: flex;
  align-items: center;
  flex: none;
  min-height: 44px;
  border-radius: 2px;
}
.ozone-access__brand img {
  display: block;
  width: 228px;
  height: auto;
}
.ozone-access__language {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--ozone-line);
  border-radius: 999px;
  background: transparent;
  color: var(--ozone-ink);
  font: 500 14px/1.5 var(--ozone-font);
}
.ozone-access__language img {
  filter: grayscale(1) brightness(0);
}
.ozone-access__language:hover {
  background: var(--ozone-soft);
}
.ozone-access__language:active {
  background: var(--ozone-line);
}

.novincut-signin.ozone-access .novincut-signin__main {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(380px, 0.9fr);
  align-items: center;
  gap: clamp(40px, 6vw, 96px);
  width: min(100%, 1600px);
  min-width: 0;
  margin-inline: auto;
  padding: 8px 36px 20px;
  direction: ltr;
}

.ozone-access__showcase {
  position: relative;
  isolation: isolate;
  display: flex;
  align-self: stretch;
  align-items: flex-end;
  min-width: 0;
  min-height: min(680px, calc(100svh - 180px));
  overflow: hidden;
  border-radius: 12px;
  background: var(--ozone-ink);
  color: var(--ozone-field);
}
.ozone-access__showcase-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
}
.ozone-access__showcase::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    transparent 30%,
    rgb(21 21 21 / 15%) 52%,
    rgb(21 21 21 / 88%) 100%
  );
  content: '';
}
.ozone-access__showcase-copy {
  width: 100%;
  padding: clamp(28px, 3.4vw, 52px);
}
.ozone-access__eyebrow {
  margin: 0 0 20px;
  color: var(--ozone-field);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.novincut-signin.ozone-access .ozone-access__showcase h2 {
  margin: 0;
  color: var(--ozone-field);
  font-size: clamp(42px, 4.6vw, 68px);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -0.055em;
}
.ozone-access__showcase h2 span {
  display: block;
}
.ozone-access__showcase[dir='rtl'] .ozone-access__eyebrow,
.novincut-signin.ozone-access .ozone-access__showcase[dir='rtl'] h2 {
  letter-spacing: normal;
}
.novincut-signin.ozone-access .ozone-access__showcase[dir='rtl'] h2 {
  font-size: clamp(38px, 4vw, 58px);
  line-height: 1.5;
}
.ozone-access__showcase-description {
  max-width: 30ch;
  margin: 20px 0 0;
  color: var(--ozone-field);
  font-size: 14px;
  line-height: 1.8;
}

.novincut-signin.ozone-access .novincut-signin__card {
  display: flex;
  flex-direction: column;
  width: min(100%, 380px);
  min-width: 0;
  justify-self: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.novincut-signin.ozone-access[dir='rtl'] .novincut-signin__card {
  direction: rtl;
}

.ozone-access__intro {
  order: 0;
  margin-block-end: 30px;
}
.novincut-signin.ozone-access .ozone-access__intro h1 {
  margin: 0;
  color: var(--ozone-ink);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.35;
}
.ozone-access__intro p {
  margin: 10px 0 0;
  color: var(--ozone-muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}
.ozone-access[lang='fa'] .ozone-access__intro h1 {
  font-size: 28px;
  letter-spacing: normal;
  line-height: 1.6;
}

.novincut-signin.ozone-access .field {
  margin: 0;
}
.novincut-signin.ozone-access .field > span {
  margin-block-end: 8px;
  color: var(--ozone-ink);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.7;
}
.novincut-signin.ozone-access .field input {
  height: 50px;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid var(--ozone-input-line);
  border-radius: var(--ozone-radius);
  background: var(--ozone-field);
  color: var(--ozone-ink);
  font: 400 16px/1.5 var(--ozone-font);
  box-shadow: none;
  transition: border-color 120ms ease;
}
.novincut-signin.ozone-access .field input:hover {
  border-color: var(--ozone-muted);
}
.novincut-signin.ozone-access .field input:focus {
  border-color: var(--ozone-ink);
  box-shadow: none;
}
.novincut-signin.ozone-access .field input[aria-invalid='true'] {
  border-color: var(--red-700);
}
.novincut-signin.ozone-access .field input:disabled {
  color: var(--ozone-muted);
  background: var(--ozone-soft);
  cursor: not-allowed;
}
.novincut-signin.ozone-access .field + .field {
  margin-block-start: 20px;
}
.novincut-signin.ozone-access .field__password > input {
  padding-left: 14px;
  padding-right: 54px;
}
.novincut-signin.ozone-access[dir='rtl'] .field__password > input {
  padding-left: 54px;
  padding-right: 14px;
}
.novincut-signin.ozone-access .field__password > .icon-button {
  width: 44px;
  height: 44px;
  inset-inline-end: 3px;
  border-radius: 4px;
  color: var(--ozone-muted);
}
.novincut-signin.ozone-access .field__password > .icon-button svg {
  width: 20px;
  height: 20px;
}
.novincut-signin.ozone-access .field__password > .icon-button:hover {
  background: var(--ozone-soft);
  color: var(--ozone-ink);
}

.novincut-signin.ozone-access .novincut-signin__recover {
  min-height: 44px;
  margin-block-start: 6px;
  color: var(--ozone-muted);
  font-size: 13px;
  font-weight: 400;
}
.novincut-signin.ozone-access .novincut-signin__recover:hover {
  color: var(--ozone-ink);
}
.novincut-signin.ozone-access .novincut-signin__card > form > .novincut-signin__submit {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 50px;
  min-height: 50px;
  margin-block-start: 18px;
  padding: 12px 20px;
  border: 1px solid var(--ozone-ink);
  border-radius: var(--ozone-radius);
  background: var(--ozone-ink);
  color: var(--ozone-field);
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  box-shadow: none;
}
.novincut-signin.ozone-access .button.button--primary {
  background: var(--ozone-ink);
  color: var(--ozone-field);
  border-color: var(--ozone-ink);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.novincut-signin.ozone-access .button.button--primary:hover:not(:disabled),
.novincut-signin.ozone-access
  .novincut-signin__card
  > form
  > .novincut-signin__submit:hover:not(:disabled) {
  background: var(--ozone-hover);
  border-color: var(--ozone-hover);
  transform: none;
  box-shadow: none;
}
.novincut-signin.ozone-access .button.button--primary:active:not(:disabled),
.novincut-signin.ozone-access
  .novincut-signin__card
  > form
  > .novincut-signin__submit:active:not(:disabled) {
  background: var(--ozone-ink);
  transform: none;
}
.novincut-signin.ozone-access .button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.novincut-signin.ozone-access .novincut-signin__card > form {
  order: 1;
}
.novincut-signin.ozone-access .auth-feedback {
  order: 2;
  height: 104px;
  min-height: 104px;
  max-height: 104px;
  overflow: auto;
}
.novincut-signin.ozone-access .role-launcher {
  order: 3;
}
.novincut-signin.ozone-access .auth-feedback:empty,
.novincut-signin.ozone-access .auth-feedback:not(:empty) {
  display: block;
  margin: 12px 0 0;
}
.novincut-signin.ozone-access .auth-feedback .info-strip {
  margin: 0;
  border-radius: var(--ozone-radius);
  font-size: 13px;
}
.novincut-signin.ozone-access .overlay.overlay--center {
  background: rgb(21 21 21 / 24%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.novincut-signin.ozone-access .modal {
  color: var(--ozone-ink);
  border: 1px solid var(--ozone-line);
  border-radius: 10px;
  background: var(--ozone-paper);
  box-shadow: none;
}
.novincut-signin.ozone-access .modal .info-strip {
  border-radius: var(--ozone-radius);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.novincut-signin.ozone-access .modal .info-strip--info {
  background: var(--ozone-soft);
  color: var(--ozone-muted);
  border-color: var(--ozone-line);
}
.novincut-signin.ozone-access .drawer__header {
  border-color: var(--ozone-line);
}
.novincut-signin.ozone-access .drawer__header h2 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}
.novincut-signin.ozone-access .drawer__header .icon-button {
  width: 44px;
  height: 44px;
  border-radius: var(--ozone-radius);
}
.novincut-signin.ozone-access .novincut-signin__recovery-form {
  gap: 18px;
}
.novincut-signin.ozone-access .novincut-signin__recovery-form > p {
  color: var(--ozone-muted);
  line-height: 1.8;
}
.novincut-signin.ozone-access .novincut-signin__recovery-form > .button {
  min-height: 50px;
  border-radius: var(--ozone-radius);
  font-size: 14px;
  font-weight: 500;
}

.ozone-access__footer {
  display: flex;
  justify-content: center;
  padding: 8px 24px 12px;
}
.ozone-access__footer a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px;
  color: var(--ozone-muted);
  font: 400 12px/1.6 var(--ozone-font);
  text-decoration: none;
  text-underline-offset: 4px;
}
.ozone-access__footer a:hover {
  color: var(--ozone-ink);
  text-decoration: underline;
}
.novincut-signin.ozone-access :is(button, a, input, [tabindex='0']):focus-visible {
  outline: 2px solid var(--ozone-ink);
  outline-offset: 4px;
}
.ozone-access__language,
.ozone-access__brand,
.ozone-access__footer a {
  cursor: pointer;
}

.ozone-access-loading {
  display: flex;
  min-height: 100svh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 32px;
  text-align: center;
}
.ozone-access-loading > img {
  display: block;
  width: min(280px, 100%);
  height: auto;
}
.ozone-access-loading > p {
  margin: 0;
  color: var(--ozone-muted);
  font-size: 14px;
  line-height: 1.8;
}

@media (max-width: 960px) {
  .novincut-signin.ozone-access .novincut-signin__main {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    padding: 8px 24px 12px;
  }
  .ozone-access__showcase {
    width: min(100%, 500px);
    height: 148px;
    min-height: 0;
    justify-self: center;
  }
  .ozone-access__showcase-image {
    object-position: 50% 44%;
  }
  .ozone-access__showcase::after {
    background: linear-gradient(90deg, rgb(21 21 21 / 92%), rgb(21 21 21 / 8%));
  }
  .ozone-access__showcase[dir='rtl']::after {
    background: linear-gradient(270deg, rgb(21 21 21 / 92%), rgb(21 21 21 / 8%));
  }
  .ozone-access__showcase-copy {
    padding: 22px 24px;
  }
  .novincut-signin.ozone-access .ozone-access__showcase h2 {
    font-size: 28px;
    line-height: 1.16;
    letter-spacing: -0.04em;
  }
  .novincut-signin.ozone-access .ozone-access__showcase[dir='rtl'] h2 {
    font-size: 26px;
    line-height: 1.5;
  }
  .ozone-access__eyebrow,
  .ozone-access__showcase-description {
    display: none;
  }
  .ozone-access__intro {
    margin-block-end: 24px;
  }
}

@media (max-width: 600px) {
  .ozone-access__header {
    padding: 14px 16px;
    gap: 12px;
  }
  .ozone-access__brand img {
    width: 178px;
  }
  .ozone-access__language {
    padding-inline: 10px;
    font-size: 13px;
  }
  .novincut-signin.ozone-access .ozone-access__intro h1 {
    font-size: 28px;
  }
  .ozone-access[lang='fa'] .ozone-access__intro h1 {
    font-size: 26px;
  }
  .ozone-access__footer {
    padding-block: 8px 12px;
  }
}

@media (min-width: 961px) and (max-height: 760px) {
  .ozone-access__header {
    padding: 12px 28px;
  }
  .ozone-access__brand img {
    width: 200px;
  }
  .novincut-signin.ozone-access .novincut-signin__main {
    padding-block: 8px 12px;
  }
  .ozone-access__footer {
    padding-block: 8px 12px;
  }
}

@media (max-width: 960px) and (max-height: 700px) {
  .ozone-access__showcase {
    height: 104px;
  }
  .novincut-signin.ozone-access .novincut-signin__main {
    gap: 20px;
    padding-block-start: 0;
  }
  .ozone-access__intro {
    margin-block-end: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .novincut-signin.ozone-access *,
  .ozone-access-loading * {
    transition: none;
    animation: none;
    scroll-behavior: auto;
  }
}

@media (forced-colors: active) {
  .novincut-signin.ozone-access {
    scrollbar-color: auto;
  }
  .novincut-signin.ozone-access .field input,
  .novincut-signin.ozone-access .button {
    border: 1px solid ButtonText;
  }
}
/* The approved panorama is preserved as artwork; page copy and actions are native. */
.novincut-landing .connected-workflow {
  position: relative;
  isolation: isolate;
  container-type: inline-size;
  overflow: clip;
  background: #07121a;
  color: var(--white);
}
.novincut-landing .connected-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  z-index: -1;
  pointer-events: none;
}
.novincut-landing .connected-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 27%);
  gap: 5%;
  align-items: center;
  min-height: 258px;
  min-height: 17.98cqw;
  padding: 3.55cqw 5.2cqw 0 6.27cqw;
}
.novincut-landing .connected-heading .eyebrow {
  color: var(--wood);
  font-size: clamp(10px, .97cqw, 17px);
  letter-spacing: .12em;
  margin: 0 0 .75cqw;
}
.novincut-landing .connected-heading h2 {
  font-size: clamp(45px, 6.14cqw, 110px);
  font-weight: 700;
  letter-spacing: -.04em;
  word-spacing: .04em;
  line-height: .95;
  margin: 0;
}
.novincut-landing .connected-heading h2 span,
.novincut-landing .connected-heading h2 em { display: block; }
.novincut-landing .connected-heading h2 em { color: var(--wood); margin-top: .45cqw; font-weight: 600; }
.novincut-landing .connected-summary > p { font-size: clamp(16px, 1.52cqw, 27px); line-height: 1.32; color: #c6cdd6; }
.novincut-landing .connected-workflow .connected-cta { margin-top: 16px; min-height: 54px; padding: 14px 28px; gap: 24px; font-size: 16px; }
.novincut-landing .connected-workflow .connected-cta .icon { filter: brightness(0) saturate(100%) invert(16%) sepia(24%) saturate(1953%) hue-rotate(177deg) brightness(90%) contrast(94%); }
.novincut-landing .connected-workflow .connected-cta:focus-visible { outline: 3px solid var(--wood); outline-offset: 5px; }
.novincut-landing .connected-panorama { margin: 0; direction: ltr; }
.novincut-landing .connected-panorama-art { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1435 / 528; }
.novincut-landing .connected-panorama-art > img {
  position: absolute;
  width: 100%;
  max-width: none;
  height: auto;
  top: -56.81818%;
  left: 0;
  pointer-events: none;
}
.novincut-landing .connected-captions {
  display: grid;
  grid-template-columns: 25% 47% 28%;
  gap: 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: .6cqw 1cqw 2cqw;
  font-size: clamp(13px, 1.19cqw, 21px);
  line-height: 1.5;
  text-align: center;
}
.novincut-landing .connected-caption-floor { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.novincut-landing .connected-caption-floor > img { position: absolute; width: 100%; max-width: none; height: auto; top: -125.85366cqw; left: 0; transform: scaleY(2.1); transform-origin: top; }
.novincut-landing .connected-captions > bdi { transform: translateX(-3.5%); }
.novincut-landing .connected-mobile-flow { display: none; }
.novincut-landing[dir=rtl] .connected-heading .eyebrow { letter-spacing: 0; }
.novincut-landing[dir=rtl] .connected-heading h2 { font-size: clamp(42px, 5.25cqw, 90px); line-height: 1.45; letter-spacing: 0; }
.novincut-landing[dir=rtl] .connected-heading h2 em { font-style: normal; margin: 0; }
.novincut-landing[dir=rtl] .connected-summary > p { line-height: 1.9; }
.novincut-landing[dir=rtl] .connected-captions > span { direction: rtl; }
@media (min-width: 761px) and (max-width: 1100px) {
  .novincut-landing .connected-intro { grid-template-columns: 1fr 33%; gap: 3%; }
  .novincut-landing .connected-heading h2 { font-size: 5.8cqw; }
  .novincut-landing .connected-summary > p { font-size: 16px; }
  .novincut-landing .connected-workflow .connected-cta { min-width: 0; padding: 12px 18px; font-size: 14px; gap: 16px; }
}
@media (max-width: 760px) {
  .novincut-landing .connected-backdrop { opacity: .3; }
  .novincut-landing .connected-intro { grid-template-columns: 1fr; gap: 24px; padding: 44px var(--gutter) 28px; }
  .novincut-landing .connected-heading .eyebrow { font-size: 11px; margin-bottom: 15px; }
  .novincut-landing .connected-heading h2 { font-size: clamp(38px, 8.3cqw, 60px); line-height: 1.08; }
  .novincut-landing .connected-heading h2 em { margin-top: 4px; }
  .novincut-landing .connected-summary > p { font-size: 17px; max-width: 500px; line-height: 1.65; }
  .novincut-landing .connected-workflow .connected-cta { font-size: 15px; padding: 14px 24px; }
  .novincut-landing .connected-panorama { display: none; }
  .novincut-landing .connected-mobile-flow { display: block; list-style: none; margin: 0; padding: 10px var(--gutter) 36px; text-align: center; }
  .novincut-landing .connected-mobile-flow li { margin: 0; padding: 0; }
  .novincut-landing .connected-mobile-flow figure { margin: 0; }
  .novincut-landing .connected-mobile-flow figcaption { font-size: 17px; line-height: 1.6; margin-top: 12px; }
  .novincut-landing .connected-crop { position: relative; overflow: hidden; margin: 0 auto; direction: ltr; }
  .novincut-landing .connected-crop > img { position: absolute; height: auto; max-width: none; pointer-events: none; }
  .novincut-landing .connected-phone-crop { width: min(70%, 250px); aspect-ratio: 238 / 525; clip-path: inset(1% 2% 1% 2% round 12%); }
  .novincut-landing .connected-phone-crop > img { width: 602.94118%; left: -25.21008%; top: -57.52381%; }
  .novincut-landing .connected-desktop-crop { width: min(100%, 480px); aspect-ratio: 483 / 456; clip-path: polygon(0 10%, 96% 1%, 98% 2%, 99% 85%, 58% 82%, 58% 89%, 74% 94%, 44% 99%, 21% 95%, 39% 89%, 40% 81%, 0 79%); }
  .novincut-landing .connected-desktop-crop > img { width: 297.10145%; left: -191.71843%; top: -75.4386%; }
  .novincut-landing .connected-mobile-machine { width: min(100%, 560px); height: auto; margin-block: -24px -34px; pointer-events: none; }
  .novincut-landing .connected-link { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 22px 0 18px; color: var(--wood); font-size: 15px; }
  .novincut-landing .connected-link img { width: 32px; height: 40px; filter: brightness(0) saturate(100%) invert(83%) sepia(23%) saturate(706%) hue-rotate(339deg) brightness(93%) contrast(93%); }
  .novincut-landing[dir=rtl] .connected-heading h2 { font-size: clamp(36px, 9cqw, 60px); line-height: 1.5; }
  .novincut-landing[dir=rtl] .connected-summary > p { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) { .novincut-landing .connected-workflow .connected-cta { transition: none; } }
.novincut-landing .landing-founders {
  background: var(--ivory);
  padding: clamp(56px, 6vw, 100px) var(--gutter);
}
.novincut-landing .landing-founders__intro {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: end;
  gap: clamp(28px, 6vw, 100px);
  max-width: 1440px;
  margin: 0 auto 44px;
}
.novincut-landing .landing-founders .eyebrow { color: var(--primary); margin-bottom: 16px; }
.novincut-landing .landing-founders h2 { max-width: 640px; font-size: clamp(32px, 3.5vw, 56px); line-height: 1.15; font-weight: 650; }
.novincut-landing .landing-founders__intro > p { color: var(--muted); font-size: 16px; line-height: 1.85; max-width: 550px; }
.novincut-landing .landing-founders__companies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; max-width: 1440px; margin-inline: auto; }
.novincut-landing .landing-founder { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(24px, 3vw, 44px); border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--paper); min-width: 0; }
.novincut-landing .landing-founder__logo { height: 84px; display: flex; align-items: center; margin-bottom: 32px; }
.novincut-landing .landing-founder__logo img { width: auto; height: auto; max-width: 180px; max-height: 80px; }
.novincut-landing .landing-founder__details { display: flex; flex-direction: column; flex: 1; }
.novincut-landing .landing-founder__specialty { color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1.6; margin-bottom: 9px; }
.novincut-landing .landing-founder h3 { font-size: 25px; font-weight: 650; line-height: 1.4; margin-bottom: 14px; }
.novincut-landing .landing-founder__description { color: var(--muted); font-size: 15px; line-height: 1.85; margin-bottom: 28px; max-width: 520px; }
.novincut-landing .landing-founder a { display: inline-flex; align-items: center; align-self: flex-start; gap: 12px; min-height: 44px; margin-top: auto; color: var(--primary); font-size: 13px; font-weight: 650; }
.novincut-landing .landing-founder a:hover span { text-decoration: underline; text-underline-offset: 5px; }
.novincut-landing .landing-brands { background: var(--paper); padding: 28px 0 34px; border-top: 1px solid var(--line); }
.novincut-landing .landing-brands__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-inline: var(--gutter); margin-bottom: 14px; }
.novincut-landing .landing-brands h2 { color: var(--muted); font-size: 12px; line-height: 1.6; font-weight: 600; letter-spacing: .04em; }
.novincut-landing .landing-brands__pause { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 8px 12px; color: var(--primary); background: var(--primary-soft); border: 1px solid var(--line); border-radius: var(--radius-control); font-size: 11px; flex-shrink: 0; }
.novincut-landing .landing-brands__pause svg { flex-shrink: 0; }
.novincut-landing .landing-brands__viewport { overflow: hidden; mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent); }
.novincut-landing .landing-brands__track { display: flex; width: max-content; animation: novincut-brand-scroll 26s linear infinite; }
.novincut-landing .landing-brands__group { display: flex; align-items: center; justify-content: space-around; flex: 0 0 auto; width: max(100vw, 720px); margin: 0; padding: 0; list-style: none; }
.novincut-landing .landing-brands__logo { display: flex; align-items: center; justify-content: center; width: 33.333%; height: 110px; padding-inline: 32px; }
.novincut-landing .landing-brands__logo img { width: auto; height: auto; max-width: 170px; max-height: 68px; object-fit: contain; }
.novincut-landing .landing-brands__logo--tai-chan img { max-height: 110px; }
.novincut-landing .landing-brands[data-paused="true"] .landing-brands__track { animation-play-state: paused; }
.novincut-landing[dir="rtl"] .landing-founders h2 { letter-spacing: 0; line-height: 1.5; }
.novincut-landing[dir="rtl"] .landing-brands h2 { letter-spacing: 0; }
@keyframes novincut-brand-scroll { to { transform: translateX(-50%); } }
@media (hover: hover) {
  .novincut-landing .landing-brands__viewport:hover .landing-brands__track { animation-play-state: paused; }
}
@media (max-width: 760px) {
  .novincut-landing .landing-founders__intro { grid-template-columns: 1fr; gap: 22px; margin-bottom: 30px; }
  .novincut-landing .landing-founders__companies { grid-template-columns: 1fr; gap: 18px; }
  .novincut-landing .landing-founder__logo { margin-bottom: 22px; }
  .novincut-landing .landing-brands__heading { gap: 12px; }
  .novincut-landing .landing-brands__pause span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .novincut-landing .landing-brands__track { animation: none; width: 100%; }
  .novincut-landing .landing-brands__group { width: 100%; flex-wrap: wrap; gap: 12px 24px; padding-inline: var(--gutter); }
  .novincut-landing .landing-brands__group[aria-hidden="true"],
  .novincut-landing .landing-brands__pause { display: none; }
  .novincut-landing .landing-brands__logo { width: auto; flex: 0 1 170px; padding-inline: 8px; }
  .novincut-landing .landing-brands__viewport { mask-image: none; }
}
@font-face{font-family:NovinCutJakarta;src:url('/novincut/assets/fonts/PlusJakartaSans.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:NovinCutShabnam;src:url('/novincut/assets/fonts/Shabnam.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:NovinCutShabnam;src:url('/novincut/assets/fonts/Shabnam-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:NovinCutShabnam;src:url('/novincut/assets/fonts/Shabnam-Bold.woff2') format('woff2');font-weight:600 800;font-display:swap}
.novincut-landing{--night:#0b151f;--ink:#07142f;--ivory:#f5f7f7;--white:#faf9f6;--wood:#e8b887;--muted:#536583;--line:#d0d8e2;--paper:#fff;--primary:#30466a;--primary-dark:#173057;--primary-soft:#f5f7f8;--brand-rgb:83,101,131;--brand-glass:rgba(242,246,249,.76);--danger:#bd1b1b;--radius-control:6px;--radius-panel:13px;--shadow-md:0 10px 34px rgba(7,20,47,.10);--font:NovinCutJakarta,sans-serif;--gutter:4.5vw;color-scheme:light;scroll-behavior:smooth;scrollbar-color:#536583 #0b151f;scrollbar-width:thin}
.novincut-landing *{box-sizing:border-box}.novincut-landing{margin:0;font-family:var(--font);color:var(--ink);background:var(--night);-webkit-font-smoothing:antialiased}.novincut-landing button,.novincut-landing input,.novincut-landing textarea{font:inherit}.novincut-landing button,.novincut-landing a{-webkit-tap-highlight-color:transparent}.novincut-landing button{cursor:pointer}.novincut-landing a{color:inherit;text-decoration:none}.novincut-landing button{border:0}.novincut-landing button:disabled{cursor:wait;opacity:.55}.novincut-landing button:focus-visible,.novincut-landing a:focus-visible,.novincut-landing input:focus-visible,.novincut-landing textarea:focus-visible{outline:3px solid rgba(var(--brand-rgb),.4);outline-offset:3px}.novincut-landing img{display:block;max-width:100%}.novincut-landing button,.novincut-landing a{touch-action:manipulation}.novincut-landing h1,.novincut-landing h2,.novincut-landing h3,.novincut-landing p{margin:0}.novincut-landing h1,.novincut-landing h2{letter-spacing:-.04em}.novincut-landing h1 span,.novincut-landing h1 em,.novincut-landing h2 span,.novincut-landing h2 em{display:block}.novincut-landing em{font-weight:550;color:var(--wood)}.novincut-landing [hidden]{display:none!important}.novincut-landing .skip-link{position:fixed;top:8px;left:8px;z-index:20;transform:translateY(-150%);background:var(--ivory);padding:14px}.novincut-landing .skip-link:focus{transform:none}
.novincut-landing .hero{position:relative;min-height:760px;height:63.72vw;max-height:1120px;color:var(--white);isolation:isolate;overflow:clip;background:var(--night)}.novincut-landing .hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:brightness(.65)}.novincut-landing .hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,15,22,.6),rgba(6,15,22,0) 65%);pointer-events:none;z-index:-1}
.novincut-landing .site-header{height:102px;padding:20px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;z-index:5}.novincut-landing .brand{width:222px;flex:none;display:block}.novincut-landing .brand img{width:100%;height:auto;filter:grayscale(1) invert(1);mix-blend-mode:screen}.novincut-landing .main-nav{display:flex;gap:56px;margin-inline-start:10%;font-size:15px}.novincut-landing .main-nav a{padding:12px 0}.novincut-landing .main-nav a:hover,.novincut-landing .language-switch:hover{color:var(--wood)}.novincut-landing .header-actions{display:flex;align-items:center;gap:14px;font-size:14px}.novincut-landing .language-switch{background:none;color:inherit;display:flex;align-items:center;gap:10px;min-height:44px;padding:7px 10px}.novincut-landing .lang-fa{font-family:NovinCutShabnam,sans-serif;font-size:14px}.novincut-landing .slash,.novincut-landing .lang-fa{opacity:.6}.novincut-landing .icon{width:21px;height:21px;flex:none}.novincut-landing .icon.light{filter:invert(1)}.novincut-landing .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:20px;border-radius:var(--radius-control);padding:12px 20px;font-size:14px;font-weight:680;transition:transform 160ms ease,background 160ms ease,border-color 160ms ease,color 160ms ease}.novincut-landing .button:hover{transform:translateY(-1px)}.novincut-landing .button:active{transform:translateY(0)}.novincut-landing .button-primary{background:var(--brand-glass);color:var(--primary-dark);border:1px solid rgba(var(--brand-rgb),.22);box-shadow:0 4px 14px rgba(var(--brand-rgb),.14);backdrop-filter:blur(16px) saturate(125%);-webkit-backdrop-filter:blur(16px) saturate(125%)}.novincut-landing .button-primary:hover{background:rgba(242,246,249,.9);border-color:rgba(var(--brand-rgb),.4)}.novincut-landing .button-outline{border:1px solid rgba(208,216,226,.45);background:transparent;font-weight:400;color:var(--white)}.novincut-landing .button-outline:hover{background:rgba(255,255,255,.08)}.novincut-landing .menu-toggle{display:none;background:transparent;min-width:44px;min-height:44px;align-items:center;justify-content:center}.novincut-landing .mobile-nav{position:absolute;top:80px;inset-inline:20px;background:var(--night);padding:18px;border:1px solid #536583;box-shadow:0 15px 40px #0008}.novincut-landing .mobile-nav a,.novincut-landing .mobile-nav button{display:block;padding:15px;color:var(--white);background:none;width:100%;text-align:start}
.novincut-landing .hero-copy{position:absolute;inset-inline-start:var(--gutter);top:19%;width:43%;z-index:2;pointer-events:none}.novincut-landing .hero-copy>*{pointer-events:auto}.novincut-landing .eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;line-height:1.6;color:var(--wood);margin-bottom:22px}.novincut-landing .hero h1{font-size:clamp(52px,5.4vw,92px);font-weight:650;line-height:1.065;margin-inline-end:-45px}.novincut-landing .hero h1 em{letter-spacing:-.06em;white-space:nowrap}.novincut-landing .hero-description{font-size:clamp(19px,1.85vw,28px);line-height:1.5;max-width:530px;margin-top:38px;letter-spacing:-.035em}.novincut-landing .hero-actions{display:flex;align-items:center;gap:26px;margin-top:40px}.novincut-landing .hero-demo{min-height:63px;font-size:16px;padding:19px 28px;white-space:nowrap}.novincut-landing .watch-button{background:none;color:var(--white);display:flex;align-items:center;gap:16px;font-size:14px;white-space:nowrap;padding:5px 0;min-height:52px}.novincut-landing .play-ring{width:55px;height:55px;border:1px solid #d4d4d4;display:grid;place-items:center;border-radius:50%;transition:background .2s}.novincut-landing .watch-button:hover .play-ring{background:#ffffff1a}.novincut-landing .watch-button .icon{width:23px;height:23px}.novincut-landing .cabinet-scene{position:absolute;width:59%;height:87%;inset-inline-end:0;top:7%;z-index:1;touch-action:pan-y}.novincut-landing .cabinet-scene canvas{display:block;width:100%;height:100%;outline:0}.novincut-landing .scene-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .3s}.novincut-landing .cabinet-scene[data-ready=true] .scene-fallback{opacity:0;pointer-events:none}.novincut-landing .scene-words{position:absolute;inset-inline-end:4.5%;top:16%;display:flex;flex-direction:column;gap:11px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;opacity:.6;z-index:2}.novincut-landing .hero-bottom{position:absolute;bottom:31px;inset-inline:var(--gutter);display:flex;align-items:flex-end;justify-content:space-between;z-index:3}.novincut-landing .stage-controls{display:flex;align-items:flex-start;gap:0;width:390px;position:relative}.novincut-landing .stage{position:relative;text-align:start;background:transparent;color:#b9c2cc;font-size:15px;min-width:110px;min-height:60px;padding:0 14px 0 0;display:flex;flex-direction:column;gap:13px}.novincut-landing .stage:before{content:"";position:absolute;top:9px;inset-inline:0;border-top:1px solid #8190a2;width:100%}.novincut-landing .stage-dot{width:12px;height:12px;border-radius:50%;background:#9dafc0;margin-top:4px;z-index:1;box-shadow:0 0 0 4px transparent;transition:box-shadow .2s,background .2s}.novincut-landing .stage.active{color:#e9edf1}.novincut-landing .stage.active:before{border-color:#b7c2d1}.novincut-landing .stage.active .stage-dot{background:#d0d8e2;box-shadow:0 0 0 3px rgba(var(--brand-rgb),.3)}.novincut-landing .stage:hover .stage-dot{box-shadow:0 0 0 4px #ffffff17}.novincut-landing .motion-button{background:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;margin-top:-11px;opacity:.65}.novincut-landing .motion-button:hover{opacity:1;background:#ffffff14}.novincut-landing .motion-button .icon{width:16px;height:16px}.novincut-landing .scroll-cue{display:flex;align-items:center;gap:22px;padding:0;min-height:44px;color:var(--white);background:none;font-size:13px}.novincut-landing .scroll-cue .icon{height:38px;width:30px}.novincut-landing .scroll-cue:hover{color:var(--wood)}
.novincut-landing .workflow{background:var(--ivory);padding:44px var(--gutter) 36px;min-height:49.82vw;scroll-margin-top:25px}.novincut-landing .workflow-intro{display:grid;grid-template-columns:55% 45%;align-items:end;gap:0;margin-bottom:24px}.novincut-landing .workflow .eyebrow{color:var(--primary);margin-bottom:13px;font-size:11px}.novincut-landing .workflow h2{font-size:clamp(48px,5.4vw,88px);line-height:1.025;font-weight:650}.novincut-landing .workflow-intro>p{font-size:18px;line-height:1.65;color:var(--muted);padding:0 0 9px 36px;letter-spacing:-.025em}.novincut-landing .workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.novincut-landing .workflow-step{position:relative;min-width:0;padding-inline:0 20px}.novincut-landing .workflow-step+.workflow-step{border-inline-start:1px solid var(--line);padding-inline-start:28px}.novincut-landing .step-art{height:19.3vw;max-height:350px;display:flex;align-items:center;justify-content:center;margin-bottom:0}.novincut-landing .step-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:darken}.novincut-landing .step-number{display:flex;align-items:center;gap:22px;color:var(--primary);font-size:38px;line-height:1.3;font-weight:500;letter-spacing:-.04em;margin-top:-2px;margin-bottom:7px}.novincut-landing .step-number span+span{display:block;width:58px;height:1px;background:var(--ink)}.novincut-landing .workflow h3{font-size:25px;font-weight:650;letter-spacing:-.025em;line-height:1.3;margin-bottom:8px;white-space:nowrap}.novincut-landing .workflow-step p{font-size:18px;line-height:1.45;color:var(--muted);letter-spacing:-.03em;max-width:370px}.novincut-landing .closing{position:relative;height:19.8vw;min-height:270px;max-height:400px;overflow:hidden;color:var(--white);isolation:isolate;background:var(--night)}.novincut-landing .closing>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:-2}.novincut-landing .closing:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06101966,transparent 75%);z-index:-1}.novincut-landing .closing-copy{padding:4vw var(--gutter) 20px}.novincut-landing .closing h2{font-size:clamp(46px,4.7vw,80px);line-height:1.03;font-weight:650;letter-spacing:-.045em}.novincut-landing .closing-copy p{font-size:9px;letter-spacing:.27em;text-transform:uppercase;display:flex;align-items:center;gap:18px;margin-top:28px;line-height:1.6}.novincut-landing .closing-copy p:before{content:"";width:42px;height:1px;flex:none;background:var(--wood)}
.novincut-landing .demo-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:var(--radius-panel);padding:40px;width:min(550px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;box-shadow:var(--shadow-md)}.novincut-landing .demo-dialog::backdrop{background:rgba(7,20,47,.48);backdrop-filter:blur(7px)}.novincut-landing .dialog-close{position:absolute;top:16px;inset-inline-end:16px;width:44px;height:44px;background:none;display:grid;place-items:center}.novincut-landing .demo-dialog .eyebrow{color:var(--muted);margin:0 0 12px}.novincut-landing .demo-dialog h2{font-size:30px;line-height:1.3;letter-spacing:-.04em;margin-bottom:14px}.novincut-landing .demo-dialog>p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.6}.novincut-landing .demo-dialog form{margin-top:24px;display:flex;flex-direction:column}.novincut-landing .demo-dialog label{font-size:13px;margin-bottom:7px;font-weight:600}.novincut-landing .demo-dialog input,.novincut-landing .demo-dialog textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);padding:11px 12px;min-height:44px;margin-bottom:17px;color:var(--ink);resize:none}.novincut-landing .demo-dialog [aria-invalid=true]{border-color:var(--danger)}.novincut-landing .form-feedback{font-size:13px;line-height:1.5;color:var(--muted);min-height:24px;margin-bottom:8px}.novincut-landing .form-feedback.error{color:var(--danger)}.novincut-landing .button-dark{color:var(--primary-dark);background:rgba(var(--brand-rgb),.12);border:1px solid rgba(var(--brand-rgb),.16);box-shadow:0 4px 14px rgba(var(--brand-rgb),.14);width:100%}.novincut-landing .button-dark:hover{background:rgba(var(--brand-rgb),.18);border-color:rgba(var(--brand-rgb),.22)}.novincut-landing .local-note{font-size:12px;line-height:1.5;color:var(--muted);margin-top:14px}
.novincut-landing[dir=rtl]{--font:NovinCutShabnam,NovinCutJakarta,sans-serif}.novincut-landing[dir=rtl] .hero:after{transform:scaleX(-1)}.novincut-landing[dir=rtl] .hero h1{font-size:clamp(48px,5.1vw,86px);line-height:1.42;letter-spacing:0}.novincut-landing[dir=rtl] em{font-style:normal;letter-spacing:0}.novincut-landing[dir=rtl] .hero-copy{top:17%;width:44%}.novincut-landing[dir=rtl] .hero-description{letter-spacing:0;line-height:1.7;margin-top:24px}.novincut-landing[dir=rtl] .hero-actions{gap:22px;margin-top:28px}.novincut-landing[dir=rtl] .eyebrow,.novincut-landing[dir=rtl] .scene-words,.novincut-landing[dir=rtl] .closing-copy p{letter-spacing:0}.novincut-landing[dir=rtl] .workflow h2{letter-spacing:0;line-height:1.3;font-size:clamp(48px,5vw,80px)}.novincut-landing[dir=rtl] .workflow-intro>p{padding:0 36px 9px 0;letter-spacing:0;line-height:1.9}.novincut-landing[dir=rtl] .workflow h3{font-size:24px;letter-spacing:0;white-space:normal}.novincut-landing[dir=rtl] .workflow-step p{letter-spacing:0;line-height:1.8;font-size:18px}.novincut-landing[dir=rtl] .closing h2{letter-spacing:0;line-height:1.25}.novincut-landing[dir=rtl] .closing>img,.novincut-landing[dir=rtl] .closing:after{transform:scaleX(-1)}.novincut-landing[dir=rtl] .directional{transform:scaleX(-1)}.novincut-landing[dir=rtl] .lang-fa{opacity:1}.novincut-landing[dir=rtl] .lang-en{opacity:.6}.novincut-landing[dir=rtl] .brand{direction:ltr}.novincut-landing[dir=rtl] .demo-dialog h2{letter-spacing:0}.novincut-landing[dir=rtl] .main-nav{margin-inline-start:4%}
@media(min-width:1680px){.novincut-landing .hero-copy{width:43%}.novincut-landing .hero-description{max-width:590px}.novincut-landing .hero-actions{margin-top:48px}.novincut-landing .workflow{min-height:0;padding-top:60px;padding-bottom:55px}}
@media(max-width:1180px){.novincut-landing .site-header{height:86px;gap:20px}.novincut-landing .brand{width:184px}.novincut-landing .main-nav{margin-inline-start:0;gap:32px}.novincut-landing .header-actions{gap:10px;font-size:12px}.novincut-landing .header-demo{font-size:11px;padding:12px 17px}.novincut-landing .sign-in{font-size:13px;padding:12px 15px}.novincut-landing .hero-copy{top:22%}.novincut-landing .hero-actions{gap:17px}.novincut-landing .hero-demo{font-size:13px;min-height:55px;padding:16px 22px}.novincut-landing .watch-button{font-size:12px;gap:12px}.novincut-landing .play-ring{width:47px;height:47px}.novincut-landing .hero-description{font-size:20px;margin-top:32px}.novincut-landing .eyebrow{font-size:9px}.novincut-landing .workflow-intro>p{font-size:15px;padding-inline-start:18px}.novincut-landing .workflow h3{font-size:20px}.novincut-landing .workflow-step p{font-size:15px}.novincut-landing .step-number{font-size:34px}.novincut-landing .workflow-grid{gap:22px}.novincut-landing .workflow-step+.workflow-step{padding-inline-start:22px}.novincut-landing .stage{min-width:93px;font-size:13px}.novincut-landing .scene-words{font-size:8px}.novincut-landing .workflow{padding-top:38px;min-height:0}.novincut-landing .step-art{height:20.8vw}.novincut-landing[dir=rtl] .hero-copy{top:19%}.novincut-landing[dir=rtl] .hero h1{font-size:4.8vw}.novincut-landing[dir=rtl] .hero-description{font-size:19px}.novincut-landing[dir=rtl] .workflow h3{font-size:21px}.novincut-landing[dir=rtl] .workflow-step p{font-size:16px}}
@media(max-width:900px){.novincut-landing .main-nav{display:none}.novincut-landing .menu-toggle{display:flex}.novincut-landing .header-demo{display:none}.novincut-landing .site-header{padding-block:16px}.novincut-landing .hero{height:850px;min-height:0}.novincut-landing .hero-copy{width:47%;top:20%}.novincut-landing .hero h1{font-size:5.6vw}.novincut-landing .hero h1 em{white-space:normal}.novincut-landing .hero-description{font-size:18px}.novincut-landing .hero-actions{flex-wrap:wrap;gap:16px;margin-top:30px}.novincut-landing .hero-demo{padding:17px 23px;min-height:55px}.novincut-landing .watch-button{font-size:13px}.novincut-landing .cabinet-scene{width:62%;height:78%;top:15%;inset-inline-end:0}.novincut-landing .scene-words{display:none}.novincut-landing .workflow h2{font-size:5.6vw}.novincut-landing .workflow-intro{grid-template-columns:53% 47%;margin-bottom:25px}.novincut-landing .workflow-grid{gap:16px}.novincut-landing .workflow-step+.workflow-step{padding-inline-start:16px}.novincut-landing .workflow-step{padding-inline-end:0}.novincut-landing .workflow h3{white-space:normal;font-size:19px}.novincut-landing .workflow-step p{font-size:14px}.novincut-landing .step-art{height:23vw}.novincut-landing .closing-copy{padding-top:45px}.novincut-landing .closing h2{font-size:52px}.novincut-landing[dir=rtl] .hero-copy{width:47%;top:20%}.novincut-landing[dir=rtl] .hero h1{font-size:5vw}.novincut-landing[dir=rtl] .hero-actions{gap:16px}.novincut-landing[dir=rtl] .workflow h3{font-size:18px}.novincut-landing[dir=rtl] .workflow-step p{font-size:14px}}
@media(max-width:600px){.novincut-landing{--gutter:24px}.novincut-landing .site-header{height:84px;padding-inline:24px;gap:12px}.novincut-landing .brand{width:157px}.novincut-landing .main-nav,.novincut-landing .header-demo,.novincut-landing .sign-in{display:none}.novincut-landing .header-actions{gap:3px}.novincut-landing .language-switch{font-size:12px;padding:6px 2px;gap:6px}.novincut-landing .language-switch>.icon{display:none}.novincut-landing .lang-fa{font-size:12px}.novincut-landing .menu-toggle{display:flex;width:44px;min-width:44px}.novincut-landing .hero{height:auto;max-height:none;min-height:0;padding-bottom:26px}.novincut-landing .hero-background{object-position:65% center}.novincut-landing .hero-copy{position:relative;inset:auto!important;width:auto!important;margin:45px var(--gutter) 0}.novincut-landing .hero .eyebrow{font-size:8px;letter-spacing:.18em;margin-bottom:17px}.novincut-landing .hero h1{font-size:clamp(36px,9.9vw,59px);line-height:1.12;letter-spacing:-.05em;margin:0}.novincut-landing .hero h1 em{white-space:nowrap}.novincut-landing .hero-description{font-size:16px;line-height:1.6;max-width:390px;margin-top:25px;letter-spacing:-.02em}.novincut-landing .hero-actions{gap:20px;margin-top:27px;flex-wrap:wrap}.novincut-landing .hero-demo{font-size:12px;min-height:52px;padding:15px 18px;gap:14px}.novincut-landing .hero-demo .icon{width:17px;height:17px}.novincut-landing .watch-button{font-size:11px;gap:10px}.novincut-landing .play-ring{width:42px;height:42px}.novincut-landing .watch-button .icon{width:18px;height:18px}.novincut-landing .cabinet-scene{position:relative;top:auto;inset-inline-end:auto;width:100%;height:440px;margin-top:0}.novincut-landing .hero-bottom{position:relative;bottom:auto;inset:auto;margin:0 var(--gutter);align-items:center}.novincut-landing .stage-controls{width:100%;max-width:340px;flex:1}.novincut-landing .stage{min-width:0;flex:1;font-size:11px;min-height:50px;gap:12px;padding-inline-end:12px}.novincut-landing .stage-dot{width:9px;height:9px;margin-top:5px}.novincut-landing .motion-button{width:44px;height:44px;margin-top:-7px}.novincut-landing .scroll-cue{width:44px;margin-inline-start:8px;min-width:44px}.novincut-landing .scroll-cue span{display:none}.novincut-landing .scroll-cue .icon{width:22px;height:31px}.novincut-landing .workflow{padding:42px var(--gutter) 38px}.novincut-landing .workflow-intro{display:block;margin-bottom:28px}.novincut-landing .workflow .eyebrow{font-size:9px;margin-bottom:14px}.novincut-landing .workflow h2{font-size:clamp(34px,9.5vw,55px);line-height:1.08;letter-spacing:-.055em}.novincut-landing .workflow-intro>p{font-size:14px;line-height:1.8;padding:0;margin-top:22px}.novincut-landing .workflow-grid{display:block}.novincut-landing .workflow-step{padding:0 0 30px}.novincut-landing .workflow-step+.workflow-step{border-inline-start:0;border-top:1px solid var(--line);padding:26px 0}.novincut-landing .workflow-step:last-child{padding-bottom:0}.novincut-landing .step-art{height:240px;max-height:none;margin:0 -7px 5px}.novincut-landing .step-number{font-size:34px;margin:0 0 8px;gap:20px}.novincut-landing .step-number span+span{width:45px}.novincut-landing .workflow h3{font-size:22px;white-space:normal;margin-bottom:8px}.novincut-landing .workflow-step p{font-size:15px;line-height:1.7;max-width:none}.novincut-landing .closing{height:295px;min-height:0}.novincut-landing .closing>img{object-position:65% center}.novincut-landing .closing-copy{padding:43px var(--gutter) 20px}.novincut-landing .closing h2{font-size:43px;line-height:1.1}.novincut-landing .closing-copy p{font-size:8px;letter-spacing:.17em;max-width:290px;margin-top:30px}.novincut-landing .closing-copy p:before{width:26px}.novincut-landing .demo-dialog{padding:30px 24px}.novincut-landing .demo-dialog h2{font-size:25px}.novincut-landing[dir=rtl] .hero-copy{margin-top:35px}.novincut-landing[dir=rtl] .hero h1{font-size:clamp(32px,8.7vw,50px);line-height:1.65}.novincut-landing[dir=rtl] .hero .eyebrow{letter-spacing:0;font-size:12px;margin-bottom:8px}.novincut-landing[dir=rtl] .hero-description{font-size:16px;line-height:1.9;margin-top:13px}.novincut-landing[dir=rtl] .hero-actions{gap:17px;margin-top:24px}.novincut-landing[dir=rtl] .hero-demo{font-size:13px}.novincut-landing[dir=rtl] .watch-button{font-size:13px}.novincut-landing[dir=rtl] .workflow h2{font-size:42px;line-height:1.35}.novincut-landing[dir=rtl] .workflow-intro>p{padding:0;font-size:15px}.novincut-landing[dir=rtl] .workflow .eyebrow{font-size:12px}.novincut-landing[dir=rtl] .workflow h3{font-size:22px}.novincut-landing[dir=rtl] .workflow-step p{font-size:16px}.novincut-landing[dir=rtl] .closing h2{font-size:41px}.novincut-landing[dir=rtl] .closing-copy p{font-size:11px}}
@media(max-width:374px){.novincut-landing{--gutter:19px}.novincut-landing .site-header{padding-inline:19px}.novincut-landing .brand{width:136px}.novincut-landing .hero-copy{margin-top:30px}.novincut-landing .hero-actions{gap:12px}.novincut-landing .hero-demo{font-size:11px}.novincut-landing .watch-button{font-size:10px}.novincut-landing .play-ring{width:36px;height:36px}.novincut-landing .cabinet-scene{height:375px}.novincut-landing .hero-description{font-size:15px}.novincut-landing .step-art{height:205px}.novincut-landing .closing h2{font-size:38px}.novincut-landing .header-actions{gap:0}.novincut-landing .menu-toggle{width:44px;min-width:44px}.novincut-landing .workflow h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.novincut-landing{scroll-behavior:auto}.novincut-landing *,.novincut-landing *:before,.novincut-landing *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.novincut-landing .button,.novincut-landing .stage-dot{border:1px solid ButtonText}.novincut-landing .stage.active{outline:2px solid Highlight}.novincut-landing .icon{filter:none}.novincut-landing .hero:after,.novincut-landing .closing:after{display:none}}
/* The supplied raster mark is extracted faithfully, without a white image tile. */
.novincut-landing .brand img{filter:none;mix-blend-mode:normal}
.novincut-landing .step-art img{mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 95%,transparent);mask-composite:intersect}

/* Shared app control treatment; the dark workshop retains its art direction. */
.novincut-landing .hero button:focus-visible,.novincut-landing .hero a:focus-visible{outline-color:#b7c2d1}
.novincut-landing .site-header{border-bottom:1px solid rgba(208,216,226,.14)}
.novincut-landing .language-switch{border:1px solid transparent;border-radius:var(--radius-control);transition:background 160ms ease,border-color 160ms ease}
.novincut-landing .language-switch:hover{color:var(--white);border-color:rgba(208,216,226,.18);background:rgba(83,101,131,.14)}
.novincut-landing .hero .button-primary .icon{filter:brightness(0) saturate(100%) invert(16%) sepia(24%) saturate(1953%) hue-rotate(177deg) brightness(90%) contrast(94%)}
.novincut-landing .workflow h2{letter-spacing:-.035em}
.novincut-landing .demo-dialog label{color:var(--primary-dark)}
.novincut-landing .demo-dialog input:focus-visible,.novincut-landing .demo-dialog textarea:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.1)}
.novincut-landing .demo-dialog [aria-invalid=true]{background:#fff9f9}
.novincut-landing .demo-dialog [aria-invalid=true]:focus-visible{border-color:var(--danger);box-shadow:0 0 0 3px rgba(189,27,27,.12)}
.novincut-landing .local-note{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--primary-soft)}
@media(max-width:600px){.novincut-landing .hero .eyebrow{letter-spacing:.12em}.novincut-landing .workflow h2{letter-spacing:-.035em}}
.novincut-landing[dir=rtl] .workflow h2,.novincut-landing[dir=rtl] .hero .eyebrow{letter-spacing:0}

.novincut-landing {font-family:var(--font);line-height:normal;min-height:100svh}.novincut-landing p{color:inherit}.novincut-landing button{line-height:normal}.novincut-landing .demo-dialog{max-height:calc(100svh - 40px);overflow:auto}.novincut-landing .demo-consent{display:flex;gap:12px;align-items:flex-start;margin-block:20px;font-size:13px;line-height:1.7}.novincut-landing .demo-consent input{width:20px;min-height:20px;flex:none;margin:3px 0 0}.novincut-landing .demo-dialog .button-dark{width:100%}

/* Preserve the approved Latin emphasis against the app-wide em reset. */
.novincut-landing[dir=ltr] em { font-style: italic; font-synthesis: style; }

/* The selected equipment showcase extends the page below the existing workflow. */
.novincut-landing .featured-machine {
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding: 64px var(--gutter) 40px;
  background: var(--night);
  color: var(--white);
}
.novincut-landing .machine-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.55);
  z-index: -1;
}
.novincut-landing .machine-intro {
  display: grid;
  grid-template-columns: 68.5% 31.5%;
  align-items: center;
}
.novincut-landing .machine-heading .eyebrow { margin-bottom: 14px; font-size: 12px; }
.novincut-landing .machine-heading h2 {
  font-size: clamp(42px, 5.6vw, 92px);
  font-weight: 650;
  line-height: 1;
}
.novincut-landing .machine-type {
  font-size: clamp(24px, 3.33vw, 52px);
  line-height: 1.3;
  letter-spacing: -.035em;
}
.novincut-landing .machine-summary { padding-inline-start: 18px; }
.novincut-landing .machine-summary > p { max-width: 390px; font-size: 22px; line-height: 1.5; }
.novincut-landing .machine-cta { margin-top: 16px; min-height: 63px; min-width: 306px; padding: 19px 28px; font-size: 18px; }
.novincut-landing .machine-cta .icon { filter: brightness(0) saturate(100%) invert(16%) sepia(24%) saturate(1953%) hue-rotate(177deg) brightness(90%) contrast(94%); }
.novincut-landing .machine-cta:focus-visible { outline-color: var(--line); }
.novincut-landing .machine-visual {
  position: relative;
  aspect-ratio: 1000 / 348.74;
  margin-top: 24px;
  direction: ltr;
}
/* The source photo's transparent margins are kept, with its visible body aligned to the stage. */
.novincut-landing .machine-photo {
  position: absolute;
  pointer-events: none;
  top: -41.337%;
  left: -3%;
  width: 106%;
  max-width: none;
  height: auto;
  filter: drop-shadow(0 18px 12px rgba(0, 0, 0, .45));
}
.novincut-landing .machine-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 4px 0 0; }
.novincut-landing .machine-specs > div { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 0 18px; text-align: center; }
.novincut-landing .machine-specs > div + div { border-inline-start: 1px solid rgba(208, 216, 226, .3); }
.novincut-landing .machine-specs dt { order: 2; font-size: 18px; line-height: 1.5; }
.novincut-landing .machine-specs dd { margin: 0; color: var(--wood); font-size: clamp(22px, 2.36vw, 40px); line-height: 1.25; font-weight: 600; letter-spacing: -.035em; }
.novincut-landing[dir=rtl] .machine-heading h2 { font-family: NovinCutJakarta, sans-serif; }
.novincut-landing[dir=rtl] .machine-type,
.novincut-landing[dir=rtl] .machine-specs dd { letter-spacing: 0; }
.novincut-landing[dir=rtl] .machine-summary > p { line-height: 1.9; }
@media (min-width: 901px) and (max-width: 1180px) {
  .novincut-landing .machine-intro { grid-template-columns: 60% 40%; }
  .novincut-landing .machine-summary > p { font-size: 18px; }
  .novincut-landing .machine-cta { min-width: 0; padding: 16px 20px; font-size: 14px; }
}
@media (max-width: 900px) {
  .novincut-landing .featured-machine { padding-block: 48px 38px; }
  .novincut-landing .machine-intro { grid-template-columns: 1fr; gap: 22px; }
  .novincut-landing .machine-summary { padding: 0; }
  .novincut-landing .machine-summary > p { max-width: 550px; font-size: 16px; }
  .novincut-landing .machine-heading h2 { font-size: clamp(38px, 6.5vw, 58px); }
  .novincut-landing .machine-type { font-size: 28px; }
  .novincut-landing .machine-cta { min-width: 0; min-height: 52px; padding: 14px 22px; font-size: 14px; }
  .novincut-landing .machine-visual { margin-top: 30px; }
  .novincut-landing .machine-specs > div { padding-inline: 12px; }
  .novincut-landing .machine-specs dd { font-size: 24px; }
  .novincut-landing .machine-specs dt { font-size: 14px; }
}
@media (max-width: 600px) {
  .novincut-landing .featured-machine { padding-block: 42px 32px; }
  .novincut-landing .machine-background { object-position: 40% center; }
  .novincut-landing .machine-heading .eyebrow { font-size: 10px; }
  .novincut-landing .machine-heading h2 { font-size: clamp(30px, 8.8vw, 48px); }
  .novincut-landing .machine-type { font-size: 23px; margin-top: 5px; }
  .novincut-landing .machine-summary > p { font-size: 15px; }
  .novincut-landing .machine-photo { filter: drop-shadow(0 8px 6px rgba(0, 0, 0, .45)); }
  .novincut-landing .machine-specs { grid-template-columns: 1fr; margin-top: 25px; }
  .novincut-landing .machine-specs > div { align-items: flex-start; text-align: start; padding: 18px 0; gap: 3px; }
  .novincut-landing .machine-specs > div + div { border-inline-start: 0; border-top: 1px solid rgba(208, 216, 226, .3); }
  .novincut-landing .machine-specs > div:last-child { padding-bottom: 0; }
  .novincut-landing .machine-specs dd { font-size: 26px; }
  .novincut-landing[dir=rtl] .machine-type { font-size: 25px; }
}
.novincut-signin[hidden] { display: none; }

.novincut-login-loading {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: transparent;
  color: #536583;
}

.novincut-login-loading__stage {
  width: min(calc(100% - 48px), 896px);
  aspect-ratio: 17 / 6;
}

.novincut-login-loading__stage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.novincut-login-loading__status {
  position: absolute;
  inset-inline: 20px;
  inset-block-start: min(calc(50% + clamp(66px, 14vw, 170px)), calc(100% - 48px));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  text-align: center;
  font: 500 13px / 1.7 var(--font-ui, sans-serif);
}

.novincut-login-loading[lang="fa"] .novincut-login-loading__status {
  font-family: var(--font-fa, sans-serif);
}

.novincut-login-loading__dot {
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: currentColor;
  animation: novincut-login-wait 1.6s ease-in-out infinite;
}

@keyframes novincut-login-wait {
  50% { opacity: .35; }
}

@media (prefers-reduced-motion: reduce) {
  .novincut-login-loading__dot { animation: none; }
}
/* Shared shell search: presentation only, using the existing NovinCut tokens. */
.workspace-project-search {
  position: relative;
}
.workspace-job-results {
  position: absolute;
  z-index: 70;
  inset-block-start: calc(100% + 8px);
  inset-inline: 0;
  min-inline-size: 0;
  max-block-size: min(520px, calc(100dvh - 110px));
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--ink-200);
  border-radius: 11px;
  background: var(--paper);
  box-shadow: var(--shadow-md);
  color: var(--ink-900);
  text-align: start;
}
.workspace-job-results__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-block-size: 43px;
  padding: 6px 12px;
  border-block-end: 1px solid var(--ink-150);
  color: var(--ink-600);
  font-size: 11px;
}
.workspace-job-results button {
  font: inherit;
  cursor: pointer;
}
.workspace-job-results button:focus-visible {
  outline: 2px solid var(--blue-700);
  outline-offset: -3px;
}
.workspace-job-results__refresh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-block-size: 30px;
  padding: 4px 6px;
  border: 0;
  border-radius: var(--radius-xs);
  background: transparent;
  color: var(--ink-700);
}
.workspace-job-results__refresh:hover:not(:disabled) {
  background: var(--ink-050);
}
.workspace-job-results__refresh:disabled {
  color: var(--ink-500);
  cursor: wait;
}
.workspace-job-results__list {
  display: grid;
  padding: 5px;
  gap: 2px;
}
.workspace-job-results__item {
  display: flex;
  align-items: center;
  gap: 10px;
  inline-size: 100%;
  min-inline-size: 0;
  min-block-size: 55px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: var(--radius-xs);
  background: var(--paper);
  color: var(--ink-900);
  text-align: start;
}
.workspace-job-results__item[aria-selected='true'],
.workspace-job-results__item:hover {
  background: var(--blue-100);
  border-color: var(--ink-200);
}
.workspace-job-results__item:active {
  border-color: var(--blue-700);
}
.workspace-job-results__icon {
  display: grid;
  flex: 0 0 32px;
  inline-size: 32px;
  block-size: 32px;
  place-items: center;
  border: 1px solid var(--ink-150);
  border-radius: var(--radius-xs);
  background: var(--paper);
  color: var(--ink-700);
}
.workspace-job-results__identity {
  display: grid;
  flex: 1 1 auto;
  min-inline-size: 0;
  gap: 4px;
}
.workspace-job-results__identity strong,
.workspace-job-results__identity small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.workspace-job-results__identity strong {
  font-size: 12px;
  font-weight: 650;
}
.workspace-job-results__identity small {
  color: var(--ink-600);
  font-size: 10px;
}
.workspace-job-results__open {
  flex: 0 0 auto;
  color: var(--ink-600);
}
.workspace-job-results__error,
.workspace-job-results__empty {
  margin: 0;
  padding: 12px;
  font-size: 12px;
  line-height: 1.5;
}
.workspace-job-results__error {
  border-block-end: 1px solid var(--ink-150);
  background: var(--amber-100);
  color: var(--amber-800);
}
.workspace-job-results__all {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  inline-size: 100%;
  min-block-size: 42px;
  padding: 10px 14px;
  border: 0;
  border-block-start: 1px solid var(--ink-150);
  background: var(--ink-050);
  color: var(--ink-800);
  font-size: 12px;
  text-align: start;
}
.workspace-job-results__all:hover {
  background: var(--ink-100);
}
[dir='rtl'] .workspace-job-results__open,
[dir='rtl'] .workspace-job-results__all > svg {
  transform: scaleX(-1);
}
@media (max-width: 900px) {
  .workspace-job-results {
    max-block-size: min(480px, calc(100dvh - 165px));
  }
  .workspace-job-results__refresh,
  .workspace-job-results__all {
    min-block-size: 44px;
  }
}
@media (forced-colors: active) {
  .workspace-job-results__item[aria-selected='true'] {
    border-color: Highlight;
    outline: 1px solid Highlight;
  }
}
/* A mounted Room/Cabinet editor owns the compact project header. */
.workspace.workspace--focused > .context-rail[hidden] { display: none; }

.workspace-focused-header {
  position: relative;
  z-index: 25;
  display: flex;
  min-inline-size: 0;
  min-block-size: 64px;
  align-items: center;
  gap: 16px;
  padding: 8px 18px;
  border: 1px solid var(--ink-200);
  border-block-end: 0;
  border-start-start-radius: 12px;
  background: var(--paper);
  color: var(--ink-900);
}

.workspace-focused-header__identity {
  position: relative;
  flex: 0 1 clamp(180px, 24vw, 350px);
  min-inline-size: 160px;
  padding-inline-end: 16px;
  border-inline-end: 1px solid var(--ink-200);
}
.workspace-focused-header__identity > summary {
  display: flex;
  min-inline-size: 0;
  min-block-size: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 8px;
  border-radius: var(--radius-xs);
  list-style: none;
  cursor: pointer;
}
.workspace-focused-header__identity > summary::-webkit-details-marker { display: none; }
.workspace-focused-header__identity > summary:hover { background: var(--ink-050); }
.workspace-focused-header__identity > summary:focus-visible,
.workspace-focused-header__details button:focus-visible { outline: 2px solid var(--ink-600); outline-offset: 2px; }
.workspace-focused-header__identity > summary > svg { flex: 0 0 16px; transition: transform 180ms ease; }
.workspace-focused-header__identity[open] > summary > svg { transform: rotate(180deg); }
.workspace-focused-header__identity-copy { display: grid; flex: 1 1 auto; min-inline-size: 0; gap: 3px; }
.workspace-focused-header__identity-copy strong,
.workspace-focused-header__identity-copy > span { display: block; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace-focused-header__identity-copy strong { font-size: 14px; font-weight: 750; line-height: 1.35; }
.workspace-focused-header__identity-copy > span { color: var(--ink-600); font-size: 11px; line-height: 1.35; }
.workspace-focused-header__details {
  position: absolute;
  z-index: 45;
  inset-block-start: calc(100% + 9px);
  inset-inline-start: 0;
  inline-size: min(390px, calc(100vw - 120px));
  padding: 18px;
  border: 1px solid var(--ink-200);
  border-radius: 10px;
  background: var(--paper);
  box-shadow: 0 14px 38px rgba(var(--brand-rgb), .12);
}
.workspace-focused-header__details dl { display: grid; gap: 16px; margin: 0 0 16px; }
.workspace-focused-header__details dl > div { display: grid; gap: 5px; }
.workspace-focused-header__details dt { color: var(--ink-600); font-size: 11px; font-weight: 650; }
.workspace-focused-header__details dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; line-height: 1.5; }
.workspace-focused-header__details nav { display: flex; flex-wrap: wrap; gap: 8px; padding-block-start: 12px; border-block-start: 1px solid var(--ink-200); }
.workspace-focused-header__details button {
  display: inline-flex;
  min-block-size: 44px;
  min-inline-size: 44px;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-xs);
  background: var(--ink-050);
  color: var(--ink-800);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.workspace-focused-header__details button:hover { background: var(--ink-100); }
.workspace-focused-header__portal { display: flex; flex: 1 1 auto; min-inline-size: 0; align-items: center; }

@media (min-width: 901px) {
  .workspace.workspace--focused {
    grid-template-columns: var(--global-rail) minmax(0, 1fr);
    grid-template-rows: 65px auto minmax(0, 1fr);
  }
  .workspace.workspace--focused > .workspace-focused-header { grid-column: 2; grid-row: 2; margin-inline-end: 6px; }
  .workspace.workspace--focused > .workspace__main { grid-column: 2; grid-row: 3; }
}

@media (max-width: 1100px) and (min-width: 901px) {
  .workspace-focused-header { flex-wrap: wrap; gap: 8px 12px; }
  .workspace-focused-header__identity { flex-basis: 100%; border-inline-end: 0; padding-inline-end: 0; }
  .workspace-focused-header__portal { flex-basis: 100%; }
}

@media (max-width: 900px) {
  .workspace.workspace--focused { grid-template-rows: auto auto minmax(0, 1fr); }
  .workspace.workspace--focused > .workspace-focused-header { grid-column: 1; grid-row: 2; flex-wrap: wrap; gap: 8px; padding: 8px 12px; border-radius: 0; border-inline: 0; }
  .workspace.workspace--focused > .workspace__main { grid-column: 1; grid-row: 3; }
  .workspace-focused-header__identity { flex-basis: 100%; border-inline-end: 0; padding-inline-end: 0; }
  .workspace-focused-header__portal { flex-basis: 100%; }
  .workspace-focused-header__details { inline-size: min(390px, calc(100vw - 24px)); }
}

@media (prefers-reduced-motion: reduce) {
  .workspace-focused-header__identity > summary > svg { transition: none; }
}
.swipe-row {
  --sr-h: 64px;
  --sr-r: 16px;
  --sr-a: 80px;
  --sr-row: #27272a;
  --sr-text: #f5f5f5;
  --sr-drawer: #3f3f46;
  --sr-on-drawer: #ffffff;
  --sr-action: #e5484d;
  --sr-on-action: #ffffff;
  --sr-collapse: 200ms;
  --sr-ease-out: cubic-bezier(0.23, 1, 0.32, 1);

  position: relative;
  height: var(--sr-h);
  overflow: hidden;
  opacity: 1;
  transition:
    height var(--sr-collapse) var(--sr-ease-out),
    margin-bottom var(--sr-collapse) var(--sr-ease-out),
    opacity var(--sr-collapse) var(--sr-ease-out);
}

.swipe-row[data-phase='collapsing'] {
  height: 0 !important;
  margin-bottom: 0 !important;
  opacity: 0;
}

.swipe-row[data-disabled] {
  opacity: 0.55;
  pointer-events: none;
}

.swipe-row__clip {
  position: relative;
  height: var(--sr-h);
  border-radius: var(--sr-r);
  overflow: hidden;
  background: var(--sr-row);
}

.swipe-row__rail {
  position: absolute;
  inset: 0;
  background: var(--sr-drawer);
}

.swipe-row__action {
  position: absolute;
  top: 0;
  display: grid;
  place-items: center;
  width: var(--sr-a);
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--sr-drawer);
  color: var(--sr-on-drawer);
  font: inherit;
  cursor: pointer;
  outline: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.swipe-row__action::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #fff;
  opacity: 0;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .swipe-row__action::after {
    transition: opacity 150ms ease;
  }

  .swipe-row__action:hover::after {
    opacity: 0.08;
  }
}

.swipe-row__glyph {
  display: grid;
  justify-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1;
  transition: transform 160ms var(--sr-ease-out);
}

.swipe-row__icon {
  display: inline-flex;
}

.swipe-row__action:active .swipe-row__glyph {
  transform: scale(0.97);
}

.swipe-row__block {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: var(--sr-action);
}

.swipe-row[data-direction='left'] .swipe-row__block {
  left: calc(100% - var(--sr-a));
}

.swipe-row[data-direction='right'] .swipe-row__block {
  right: calc(100% - var(--sr-a));
}

.swipe-row__action--commit {
  background: transparent;
  color: var(--sr-on-action);
}

.swipe-row[data-direction='left'] .swipe-row__action--commit {
  left: 0;
}

.swipe-row[data-direction='right'] .swipe-row__action--commit {
  right: 0;
}

.swipe-row__surface {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  padding: 0 16px;
  background: var(--sr-row);
  color: var(--sr-text);
  touch-action: pan-y;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

.swipe-row[data-auto-height] .swipe-row__surface {
  height: auto;
  min-height: 64px;
}

@media (hover: hover) and (pointer: fine) {
  .swipe-row__surface {
    cursor: grab;
  }

  .swipe-row[data-dragging] .swipe-row__surface {
    cursor: grabbing;
  }
}

@media (pointer: coarse) {
  .swipe-row__surface {
    user-select: none;
    -webkit-user-select: none;
  }
}

.swipe-row[data-dragging] .swipe-row__surface,
.swipe-row[data-dragging] .swipe-row__surface * {
  user-select: none;
  -webkit-user-select: none;
}

.swipe-row__toggle {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--sr-text);
  font: inherit;
  border-radius: 12px;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.swipe-row__toggle:hover {
  background: color-mix(in srgb, var(--sr-text) 8%, transparent);
}

.swipe-row__action:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.swipe-row__toggle:focus-visible,
.swipe-row__action:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -4px;
}

.swipe-row__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

@media (prefers-reduced-motion: reduce) {
  .swipe-row,
  .swipe-row__glyph,
  .swipe-row__action::after {
    transition: none;
  }
  .swipe-row__action:active .swipe-row__glyph {
    transform: none;
  }
}
/* Keep the existing order identity/metadata layout inside the swipe surface. */
.manager-jobs .jobs-list > .job-row--managed.job-row--swipe {
  display: block;
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

.job-row--swipe > .job-swipe-row {
  display: block;
}

.job-swipe-row .swipe-row__surface {
  gap: 12px;
  padding: 20px 12px 20px 20px;
}

[dir="rtl"] .job-swipe-row .swipe-row__surface {
  padding: 20px 20px 20px 12px;
}

.job-swipe-row .job-row__open {
  flex: 1;
  min-height: 64px;
}

.job-swipe-row .swipe-row__glyph {
  gap: 8px;
  padding: 8px;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .job-swipe-row .swipe-row__surface {
    align-items: flex-start;
  }

  .job-swipe-row .job-row__details {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Selected project-card layout; scoped to the manager project catalogue. */
.manager-jobs .manager-projects-header {
  align-items: center;
  flex-wrap: nowrap;
  gap: 20px;
  margin-bottom: 28px;
}

.workspace--manager .manager-jobs .manager-projects-header > div:first-child {
  flex: 1 1 0;
  min-width: 0;
}

.manager-projects-header__eyebrow {
  margin: 0 0 12px;
  color: var(--ink-600);
  font-size: 14px;
  line-height: 1.5;
}

.manager-jobs .manager-projects-header h1 {
  margin: 0;
}

.manager-jobs .manager-projects-header > .button {
  flex: 0 0 auto;
  min-height: 44px;
}

.manager-jobs .jobs-list.manager-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-content: start;
  align-items: start;
  gap: 20px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.manager-project-grid > .empty-state {
  grid-column: 1 / -1;
}

.manager-jobs .jobs-list.manager-project-grid > .project-card {
  display: block;
  min-width: 0;
  padding: 0;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-sm);
  background: var(--paper);
  box-shadow: none;
  overflow: hidden;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.manager-jobs .jobs-list.manager-project-grid > .project-card:focus-within {
  border-color: var(--ink-500);
}

.manager-jobs .project-card .job-swipe-row .swipe-row__surface {
  display: block;
  padding: 0;
}

.manager-jobs .project-card .job-row__open {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink-950);
  text-align: start;
  cursor: pointer;
}

.manager-jobs .project-card .job-row__open:focus-visible {
  outline: 3px solid var(--ink-500);
  outline-offset: -4px;
}

.manager-jobs .project-card__top {
  display: flex;
  align-items: center;
  min-height: 63px;
  padding: 22px 24px 0;
  color: var(--ink-900);
}

.manager-jobs .project-card .swipe-row__toggle {
  position: absolute;
  inset-block-start: 16px;
  inset-inline-end: 14px;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-xs);
}

.manager-jobs .project-card .job-row__open .job-row__main {
  display: grid;
  align-content: center;
  gap: 9px;
  min-height: 116px;
  padding: 22px 24px 27px;
}

.manager-jobs .project-card .job-row__main > strong {
  display: block;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.manager-jobs .project-card .job-row__client {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 7px;
  color: var(--ink-600);
  font-size: 13px;
  line-height: 1.6;
}

.manager-jobs .project-card .job-row__client > span,
.manager-jobs .project-card .job-row__client bdi {
  color: inherit;
}

.manager-jobs .project-card .job-row__client bdi {
  white-space: normal;
  overflow-wrap: anywhere;
}

.manager-jobs .project-card .job-row__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  min-height: 92px;
  padding: 18px 24px 20px;
  border-top: 1px solid var(--ink-150);
  background: var(--ink-050);
}

.manager-jobs .project-card .job-row__details > span {
  min-width: 0;
  gap: 7px;
  font-size: 12px;
  line-height: 1.6;
}

.manager-jobs .project-card .job-row__details time,
.manager-jobs .project-card .job-row__details strong {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

@media (hover: hover) and (pointer: fine) {
  .manager-jobs .jobs-list.manager-project-grid > .project-card:hover {
    border-color: var(--ink-300);
    background: var(--paper);
    box-shadow: var(--shadow-sm);
  }
}

@media (max-width: 1040px) {
  .manager-jobs .jobs-list.manager-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

@media (max-width: 640px) {
  .manager-jobs .manager-projects-header {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
  }

  .manager-projects-header__eyebrow {
    margin-bottom: 8px;
    font-size: 12px;
  }

  .manager-jobs .manager-projects-header > .button {
    width: auto;
    padding-inline: 12px;
  }

  .manager-jobs .jobs-list.manager-project-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .manager-jobs .project-card__top {
    min-height: 56px;
    padding: 18px 20px 0;
  }

  .manager-jobs .project-card .swipe-row__toggle {
    inset-block-start: 12px;
    inset-inline-end: 10px;
  }

  .manager-jobs .project-card .job-row__open .job-row__main {
    min-height: 100px;
    padding: 18px 20px 22px;
  }

  .manager-jobs .project-card .job-row__main > strong {
    font-size: 19px;
  }

  .manager-jobs .project-card .job-row__details {
    min-height: 84px;
    gap: 12px;
    padding: 16px 20px 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .manager-jobs .jobs-list.manager-project-grid > .project-card {
    transition: none;
  }
}
.machine-output-summary .stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.machine-output-summary .stat { min-width: 0; }
.machine-output-summary .stat > strong { overflow-wrap: anywhere; }
.machine-output-summary__actions { margin-top: 28px; }

@media (max-width: 600px) {
  .machine-output-summary .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .machine-output-summary__actions .button { width: 100%; }
}
/* The selected Quiet field uses the existing workflow, values and slate tokens. */
section.manager-quick-workflow--quiet .manager-quick-steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: visible;
}
section.manager-quick-workflow--quiet .manager-quick-steps li > button {
  min-height: 62px;
  height: 100%;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 7px;
  padding: 8px 4px;
  border: 0;
  border-bottom: 2px solid var(--ink-150);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
section.manager-quick-workflow--quiet .manager-quick-steps li.is-active > button {
  border-bottom-color: var(--brand-700);
}
section.manager-quick-workflow--quiet .manager-quick-steps li.has-error > button {
  border-bottom-color: var(--red-700);
}
section.manager-quick-workflow--quiet .manager-quick-step__number { width: 20px; height: 20px; }
section.manager-quick-workflow--quiet .manager-quick-step__copy { display: grid; gap: 5px; }
section.manager-quick-workflow--quiet .manager-quick-step__copy small { font-size: 11px; }
section.manager-quick-workflow--quiet .manager-quick-step__copy strong { font-size: 12px; }
.manager-quiet-field { display: grid; min-width: 0; gap: 8px; padding-block: 4px; }
.manager-quiet-field__label { color: var(--ink-700); font-size: 12px; font-weight: 600; }
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control {
  min-height: 52px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--ink-050);
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control.has-value {
  background: var(--brand-800);
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control input {
  min-height: 50px;
  padding: 10px 14px;
  color: var(--ink-950);
  font-size: 24px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
  transition: color 180ms ease;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control.is-text input {
  font-family: var(--font-ui);
  font-size: 16px;
  font-weight: 400;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control > span[data-manager-quick-unit] {
  width: auto;
  min-width: 40px;
  padding-inline: 10px;
  color: var(--ink-600);
  font-size: 12px;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control.has-value input,
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control.has-value > span[data-manager-quick-unit] {
  color: var(--paper);
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control:focus-within {
  outline: 2px solid var(--brand-700);
  outline-offset: 3px;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control.is-invalid {
  border-color: var(--red-700);
  outline: 2px solid var(--red-700);
  outline-offset: 3px;
}
section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control:has(input:disabled) { opacity: .6; }
.manager-edge-board-stage { display: grid; width: 100%; height: 230px; min-width: 0; place-items: center; }
.uw-cabinet-materials .manager-edge-board-stage { height: 142px; }
.p-floating-workspace .uw-cabinet-materials .manager-edge-board-stage { height: 102px; }
.manager-edge-board-stage > .manager-edge-board {
  transition: width 200ms ease, height 200ms ease;
}
@media (max-width: 600px) {
  /* All steps remain visible in two rows; the active input always gets full width. */
  .workspace--manager .manager-parts-v2 section.manager-quick-workflow--quiet .manager-quick-steps,
  section.manager-quick-workflow--quiet .manager-quick-steps { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
  section.manager-quick-workflow--quiet .manager-quick-steps li { grid-column: span 2; }
  section.manager-quick-workflow--quiet .manager-quick-steps li:last-child { grid-column: span 4; }
  .workspace--manager .manager-parts-v2__inline-quick section.manager-quick-workflow--quiet .manager-quick-steps li > button { min-height: 58px; padding: 6px 2px; gap: 5px; }
  .workspace--manager .manager-parts-v2__inline-quick section.manager-quick-workflow--quiet .manager-quick-step__copy { display: grid; }
  .workspace--manager .manager-parts-v2__inline-quick section.manager-quick-workflow--quiet .manager-quick-step__copy small,
  .workspace--manager .manager-parts-v2__inline-quick section.manager-quick-workflow--quiet .manager-quick-step__copy strong { grid-column: auto; white-space: nowrap; }
  .manager-edge-editor.is-entry-draft .manager-edge-board-stage { height: 132px; }
  section.manager-quick-workflow--quiet .manager-quick-workflow__actions { padding-top: 4px; }
  section.manager-quick-workflow--quiet .manager-quick-workflow__actions .button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control,
  section.manager-quick-workflow--quiet .manager-quiet-field .manager-quiet-field__control input,
  .manager-edge-board-stage > .manager-edge-board { transition: none; }
}
.manager-contour-preview {
  display: grid;
  min-width: 0;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--ink-150);
  border-radius: var(--radius-sm);
  background: var(--paper);
}
.manager-contour-preview svg {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  overflow: visible;
}
.manager-contour-note {
  margin: 0;
  color: var(--ink-600);
  font-size: 12px;
  line-height: 1.6;
}
/* Material Ledger uses the existing NovinCut palette and shared button finish. */
.material-ledger { min-width: 0; }
.material-ledger .material-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.material-ledger .material-page-heading h1 { margin: 0; font-size: clamp(24px, 2.2vw, 32px); }
.material-ledger .material-page-heading p { margin: 8px 0 0; font-size: 13px; }
.material-ledger .material-page-heading p span { color: var(--ink-500); }
.material-ledger .material-page-heading .button-row { flex-wrap: wrap; }
.material-ledger .material-ledger__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 330px); gap: 24px; align-items: start; }
.material-ledger.manager-inventory .inventory-layout { grid-template-columns: minmax(0, 1fr) minmax(300px, 330px); }
.material-ledger .material-catalogue,
.material-ledger .material-catalogue__body { display: grid; min-width: 0; align-content: start; gap: 14px; }
.material-filters { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; }
.material-filters .search { flex: 1 1 230px; min-width: 0; max-width: none; }
.material-filters .select-field { flex: 0 1 168px; min-width: 140px; margin: 0; }
.material-filters .select-field__control select { min-height: 44px; }
.material-low-filter { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; cursor: pointer; color: var(--ink-800); font-size: 13px; }
.material-low-filter input,
.material-source-choice input { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; accent-color: var(--brand-700); }
.material-result-count { margin: 0; font-size: 12px; color: var(--ink-500); }
.material-swatch { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); color: var(--ink-500); background: var(--ink-050); }
.material-swatch img { width: 100%; height: 100%; object-fit: cover; }
.material-swatch--large { width: 80px; height: 72px; }
.material-identity { display: flex; min-width: 0; align-items: center; gap: 12px; text-align: start; }
.material-identity > span:last-child { display: grid; min-width: 0; gap: 5px; }
.material-identity strong { color: var(--ink-950); font-size: 14px; font-weight: 680; line-height: 1.4; overflow-wrap: anywhere; }
.material-identity small { font-size: 11px; overflow-wrap: anywhere; }
.material-identity--large strong { font-size: 19px; }
.material-identity--large small { font-size: 12px; }
.material-selection-mark { flex: 0 0 auto; color: var(--brand-700); }
.material-table { width: 100%; table-layout: fixed; border-spacing: 0; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); overflow: hidden; background: var(--paper); text-align: start; }
.material-table th,
.material-table td { padding: 14px 8px; border-bottom: 1px solid var(--ink-150); text-align: start; font-size: 12px; font-weight: 450; color: var(--ink-800); overflow-wrap: anywhere; }
.material-table thead th { background: var(--ink-050); color: var(--ink-600); font-size: 11px; font-weight: 600; }
.material-table thead th:first-child { width: 33%; padding-inline-start: 16px; }
.material-table thead th:nth-child(2) { width: 18%; }
.material-table thead th:nth-child(3) { width: 12%; }
.material-table thead th:last-child { width: 14%; }
.material-table tbody tr { cursor: pointer; }
.material-table tbody tr:last-child > * { border-bottom: 0; }
.material-table tbody tr:hover { background: var(--ink-050); }
.material-table tbody tr.is-selected { background: var(--brand-100); }
.material-table tbody tr.is-selected > :first-child { box-shadow: inset 3px 0 0 var(--brand-700); }
[dir="rtl"] .material-table tbody tr.is-selected > :first-child { box-shadow: inset -3px 0 0 var(--brand-700); }
.material-table .status { font-size: 11px; padding: 3px 5px; white-space: normal; }
.material-table__select { display: flex; align-items: center; gap: 10px; min-height: 44px; width: 100%; padding: 0; border: 0; background: transparent; text-align: start; cursor: pointer; }
.material-table .material-identity { gap: 9px; }
.material-table .material-identity strong { font-size: 13px; }
.material-table .material-swatch { width: 38px; height: 42px; }
.material-inventory-mobile { display: none; }
.material-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.material-list { overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.material-list__row { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 76px; width: 100%; padding: 12px 16px; text-align: start; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; cursor: pointer; }
.material-list__row:last-child { border-bottom: 0; }
.material-list__row:hover { background: var(--ink-050); }
.material-list__row.is-selected { background: var(--brand-100); box-shadow: inset 3px 0 0 var(--brand-700); }
[dir="rtl"] .material-list__row.is-selected { box-shadow: inset -3px 0 0 var(--brand-700); }
.material-list__row:focus-visible { position: relative; outline-offset: -3px; }
.material-list__row:disabled { cursor: wait; }
.material-list__measure { display: grid; gap: 4px; font-size: 13px; color: var(--ink-800); text-align: end; }
.material-list__measure small { font-size: 11px; }
.material-low-stock { color: var(--amber-800) !important; }
.material-source-tabs { display: flex; border-bottom: 1px solid var(--ink-200); }
.material-source-tabs > button { min-height: 46px; padding: 12px 24px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--ink-600); cursor: pointer; }
.material-source-tabs > button[aria-selected="true"] { background: var(--ink-050); color: var(--brand-900); border-bottom-color: var(--brand-700); font-weight: 700; }
.material-source-tabs > button:disabled { cursor: wait; }
.material-ledger .material-inspector,
.material-ledger.manager-inventory .inventory-detail.material-inspector { display: grid; min-width: 0; gap: 0; padding: 0; margin: 0; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: none; position: static; }
.material-ledger.manager-inventory .inventory-detail.material-inspector::before { display: none; }
.material-inspector__identity { display: grid; gap: 12px; padding: 20px; }
.material-inspector__origin { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.material-inspector__origin .inline-link { min-height: 32px; }
.material-inspector__identity > .status { justify-self: start; }
.material-stock-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0 0 16px; padding: 0 14px; }
.material-stock-summary > div { display: flex; flex-direction: column; gap: 4px; align-items: center; min-width: 0; padding: 4px 6px; border-inline-end: 1px solid var(--ink-150); text-align: center; }
.material-stock-summary > div:last-child { border: 0; }
.material-stock-summary dt { color: var(--ink-600); font-size: 12px; }
.material-stock-summary dd { order: -1; margin: 0; color: var(--ink-950); font-size: 22px; font-weight: 750; overflow-wrap: anywhere; }
.material-stock-summary small { font-size: 10px; }
.material-stock-actions { display: grid; gap: 10px; padding: 0 16px 20px; }
.material-inspector__specs { padding: 18px 20px; border-top: 1px solid var(--ink-150); }
.material-inspector__specs h2 { margin: 0 0 12px; font-size: 14px; }
.material-inspector .key-values { margin: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); column-gap: 12px; }
.material-inspector .key-values > dt,
.material-inspector .key-values > dd { min-width: 0; padding-block: 8px; font-size: 12px; }
.material-disclosure { min-width: 0; border-top: 1px solid var(--ink-150); }
.material-disclosure > summary { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 14px 20px; color: var(--ink-800); font-size: 13px; cursor: pointer; list-style: none; }
.material-disclosure > summary::-webkit-details-marker { display: none; }
.material-disclosure > summary > span { flex: 1; }
.material-disclosure > summary:focus-visible { outline: 3px solid var(--brand-700); outline-offset: -3px; }
.material-disclosure__caret { flex: 0 0 auto; transition: transform 160ms ease; }
.material-disclosure[open] .material-disclosure__caret { transform: rotate(180deg); }
.material-disclosure__body { padding: 0 20px 18px; min-width: 0; }
.material-disclosure__body > p { margin: 4px 0 0; font-size: 13px; }
.material-history-heading { display: flex; justify-content: space-between; align-items: center; }
.material-history-heading button { min-height: 44px; }
.material-history,
.material-offcuts { margin: 0; padding: 0; list-style: none; }
.material-history li,
.material-offcuts li { display: grid; gap: 6px; padding: 14px 0; border-bottom: 1px solid var(--ink-150); font-size: 12px; overflow-wrap: anywhere; }
.material-history li:last-child,
.material-offcuts li:last-child { border: 0; padding-bottom: 0; }
.material-history li > div { display: flex; justify-content: space-between; gap: 12px; }
.material-history li time { color: var(--ink-600); }
.material-ledger .material-filter-note { margin: 0; padding: 12px 20px; color: var(--ink-600); background: var(--ink-050); font-size: 12px; }
.material-empty { padding: 24px 16px; text-align: center; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
.material-empty .empty-state { min-height: 150px; border: 0; }
.material-spec-summary { display: grid; grid-template-columns: 1.5fr .8fr .9fr; margin: 0; padding: 0 18px 18px; gap: 10px; }
.material-spec-summary > div { min-width: 0; border-inline-end: 1px solid var(--ink-150); padding-inline-end: 8px; }
.material-spec-summary > div:last-child { border: 0; padding: 0; }
.material-spec-summary dt { color: var(--ink-600); margin-bottom: 8px; font-size: 11px; }
.material-spec-summary dd { margin: 0; color: var(--ink-950); font-size: 12px; overflow-wrap: anywhere; }
.material-source-form { display: grid; gap: 14px; padding: 18px; border-top: 1px solid var(--ink-150); }
.material-source-form fieldset,
.material-editor-fields { margin: 0; padding: 0; min-width: 0; border: 0; }
.material-source-form legend { margin-bottom: 12px; font-size: 14px; font-weight: 700; }
.material-source-choice { display: flex; align-items: center; gap: 12px; padding: 14px 12px; min-height: 50px; margin-bottom: 8px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); font-size: 14px; cursor: pointer; }
.material-source-choice.is-selected { background: var(--brand-050); border-color: var(--brand-700); }
.material-source-form .field { margin-top: 14px; }
.material-source-form > .button { width: 100%; }
.material-workshop-next { padding: 18px; border-top: 1px solid var(--ink-150); }
.material-workshop-next p { font-size: 13px; }
.material-workshop-next .button { width: 100%; }
.material-muted-note { font-size: 12px; color: var(--ink-500); }
.material-notes { white-space: pre-wrap; overflow-wrap: anywhere; }
.material-save-notice { margin: 0; font-size: 13px; color: var(--green-700); }
.material-editor-fields > .field { margin-top: 18px; }
.material-ledger.manager-inventory .inventory-kind-bar { display: flex; }
.material-ledger.manager-inventory .inventory-kind-tabs { min-width: 0; width: auto; border: 0; border-bottom: 1px solid var(--ink-200); border-radius: 0; }
.material-ledger.manager-inventory .inventory-kind-tabs > button { min-height: 46px; padding: 10px 20px; border-inline-end: 0; }
.material-ledger.manager-inventory .inventory-kind-tabs > button > span { display: flex; align-items: center; gap: 8px; }
.material-ledger.manager-inventory .inventory-kind-tabs > button small { font-size: 11px; }
.material-ledger.manager-inventory .inventory-add-action { min-width: 0; width: auto; }
@media (max-width: 1239px) {
  .material-ledger.manager-inventory .inventory-layout { grid-template-columns: minmax(0, 1fr); }
  .material-ledger .material-ledger__layout { grid-template-columns: minmax(0, 1fr) minmax(290px, .7fr); gap: 18px; }
}
@media (max-width: 900px) {
  .material-ledger .material-ledger__layout { grid-template-columns: minmax(0, 1fr); }
  .material-inventory-desktop { display: none; }
  .material-inventory-mobile { display: block; }
  .material-ledger .material-page-heading { align-items: start; }
  .material-ledger .material-page-heading h1 { font-size: 25px; }
  .material-ledger .material-page-heading .button-row { justify-content: flex-end; }
  .material-ledger .material-page-heading p span { display: block; margin-top: 4px; }
}
@media (max-width: 600px) {
  .material-ledger .material-page-heading { flex-wrap: wrap; gap: 12px; }
  .material-ledger .material-page-heading .button { min-height: 44px; padding: 10px 12px; font-size: 12px; }
  .material-ledger .material-page-heading .button-row { gap: 8px; }
  .material-ledger .material-page-heading h1 { font-size: 22px; }
  .material-ledger.manager-inventory .material-page-heading > .button-row { width: 100%; justify-content: space-between; }
  .material-filters { gap: 8px; }
  .material-filters .search { flex-basis: 100%; }
  .material-filters .select-field { flex: 1 1 140px; }
  .material-source-tabs > button { flex: 1; }
  .material-list__row { gap: 8px; padding: 12px 10px; grid-template-columns: 18px minmax(0, 1fr) auto; }
  .material-list .material-identity { gap: 8px; }
  .material-list .material-swatch { width: 34px; height: 38px; }
  .material-list .material-identity strong { font-size: 13px; }
  .material-list .material-identity small { font-size: 10px; }
  .material-list__measure { font-size: 12px; }
  .material-list__measure small { font-size: 10px; max-width: 100px; overflow-wrap: anywhere; }
  .material-ledger .material-inspector__identity { padding: 16px; }
  .material-ledger .material-swatch--large { width: 54px; height: 54px; }
  .material-spec-summary { padding-inline: 16px; }
  .material-source-form { padding: 16px; }
  .material-inspector__specs { padding: 16px; }
  .material-disclosure > summary { padding-inline: 16px; }
  .material-disclosure__body { padding-inline: 16px; }
  .material-ledger.manager-inventory .inventory-kind-tabs { width: 100%; }
}
@media (max-width: 360px) {
  .material-list__row { grid-template-columns: 16px minmax(0, 1fr); }
  .material-list__measure { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; text-align: start; }
  .material-list__measure small { max-width: none; }
}
@media (prefers-reduced-motion: reduce) { .material-disclosure__caret { transition: none; } }
.manager-edge-reduction { min-width: 0; margin-block: 4px 8px; }
.manager-edge-reduction__heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.manager-edge-reduction__heading > strong { min-width: 0; color: var(--ink-900); font-size: 12px; }
.manager-edge-reduction > p { margin: 0; color: var(--ink-600); font-size: 11px; line-height: 1.5; }
.manager-edge-reduction__switch { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; min-height: 44px; padding: 0 2px; border: 0; background: transparent; color: var(--ink-700); font: inherit; font-size: 11px; cursor: pointer; }
.manager-edge-reduction__switch > i { display: block; position: relative; width: 44px; height: 24px; border: 1px solid var(--ink-300); border-radius: 999px; background: var(--ink-100); transition: background 150ms ease; }
.manager-edge-reduction__switch > i > span { position: absolute; inset-block-start: 2px; inset-inline-start: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--paper); box-shadow: 0 1px 3px rgba(7,20,47,.22); transition: transform 150ms ease; }
.manager-edge-reduction__switch.is-on > i { background: var(--brand-700); border-color: var(--brand-700); }
.manager-edge-reduction__switch.is-on > i > span { transform: translateX(20px); }
[dir="rtl"] .manager-edge-reduction__switch.is-on > i > span { transform: translateX(-20px); }
.manager-edge-reduction__switch:focus-visible { outline: 2px solid var(--brand-700); outline-offset: 3px; border-radius: 6px; }
.manager-edge-reduction__switch:disabled { cursor: not-allowed; opacity: .55; }
@media (prefers-reduced-motion: reduce) {
  .manager-edge-reduction__switch > i, .manager-edge-reduction__switch > i > span { transition: none; }
}
.lattice-loader {
  --ll-n: 3;
  --ll-cell: 6px;
  --ll-gap: 2px;
  --ll-font: 14px;
  --ll-color: currentColor;
  --ll-mark: #22c55e;
  --ll-idle: 0.15;
  --ll-glow: currentColor;
  --ll-mark-glow: #22c55e;
  --ll-peak: 1;
  --ll-cycle: 864ms;
  --ll-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ll-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);

  position: relative;
  min-width: 0;
  max-width: 100%;
  color: var(--ll-color);
  display: inline-flex;
  align-items: center;
  gap: calc(var(--ll-font) * 0.625);
  font-family: inherit;
  font-size: var(--ll-font);
  line-height: 1;
}

.lattice-loader__grid {
  direction: ltr;
  display: grid;
  flex: none;
}

.lattice-loader__layer {
  grid-area: 1 / 1;
  display: grid;
  grid-template-columns: repeat(var(--ll-n), var(--ll-cell));
  gap: var(--ll-gap);
}

.lattice-loader__cell {
  width: var(--ll-cell);
  height: var(--ll-cell);
  border-radius: max(1px, calc(var(--ll-cell) * 0.25));
  background: var(--ll-color);
  opacity: var(--ll-idle);
}

.lattice-loader[data-shape='round'] .lattice-loader__cell {
  border-radius: 50%;
}

.lattice-loader[data-glow] .lattice-loader__run .lattice-loader__cell:not([data-hole]) {
  box-shadow: 0 0 calc(var(--ll-cell) * 1.2) calc(var(--ll-cell) * 0.12) var(--ll-glow);
}

.lattice-loader[data-glow] .lattice-loader__mark .lattice-loader__cell[data-on] {
  box-shadow: 0 0 calc(var(--ll-cell) * 1.2) calc(var(--ll-cell) * 0.12) var(--ll-mark-glow);
}

.lattice-loader__run {
  transition: opacity 200ms ease;
}

.lattice-loader__run .lattice-loader__cell {
  animation: lattice-on var(--ll-cycle) var(--ll-ease-in-out) infinite;
}

.lattice-loader__run .lattice-loader__cell[data-lit='45'] {
  animation-name: lattice-on-45;
}

.lattice-loader__run .lattice-loader__cell[data-lit='35'] {
  animation-name: lattice-on-35;
}

.lattice-loader__run .lattice-loader__cell[data-lit='25'] {
  animation-name: lattice-on-25;
}

.lattice-loader__run .lattice-loader__cell[data-hole] {
  animation: none;
  opacity: calc(var(--ll-idle) * 0.47);
}

.lattice-loader__mark {
  opacity: 0;
  transform: scale(0.9);
  transform-origin: center;
  transition:
    opacity 160ms var(--ll-ease-out),
    transform 160ms var(--ll-ease-out);
}

.lattice-loader__mark .lattice-loader__cell {
  transition:
    opacity 200ms ease,
    background-color 200ms ease;
}

.lattice-loader__mark .lattice-loader__cell[data-on] {
  background: var(--ll-mark);
  opacity: var(--ll-peak);
}

.lattice-loader:not([data-status='working']) .lattice-loader__run {
  opacity: 0;
}

.lattice-loader:not([data-status='working']) .lattice-loader__run .lattice-loader__cell {
  animation-play-state: paused;
}

.lattice-loader:not([data-status='working']) .lattice-loader__mark {
  opacity: 1;
  transform: none;
  transition:
    opacity 200ms ease,
    transform 200ms var(--ll-ease-out);
}

.lattice-loader__label {
  min-width: 0;
  overflow: clip;
  line-height: 1.5;
  overflow-wrap: anywhere;
  position: relative;
  display: inline-block;
  font-weight: 500;
}

.lattice-loader__text {
  position: absolute;
  top: 0;
  inset-inline-start: 0;
  white-space: normal;
  opacity: 0;
  filter: blur(2px);
  transition:
    opacity 200ms ease,
    filter 200ms ease;
}

.lattice-loader__text[data-active] {
  position: static;
  opacity: 1;
  filter: blur(0);
}

.lattice-loader__timer {
  flex: none;
  direction: ltr;
  unicode-bidi: isolate;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: calc(var(--ll-font) * 0.875);
  font-variant-numeric: tabular-nums;
  opacity: 0.6;
}

.lattice-loader__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@keyframes lattice-on {
  0%,
  100% {
    opacity: var(--ll-idle);
  }

  18%,
  42% {
    opacity: var(--ll-peak);
  }

  62% {
    opacity: var(--ll-idle);
  }
}

@keyframes lattice-on-45 {
  0%,
  100% {
    opacity: var(--ll-idle);
  }

  13%,
  31% {
    opacity: var(--ll-peak);
  }

  45% {
    opacity: var(--ll-idle);
  }
}

@keyframes lattice-on-35 {
  0%,
  100% {
    opacity: var(--ll-idle);
  }

  10%,
  24% {
    opacity: var(--ll-peak);
  }

  35% {
    opacity: var(--ll-idle);
  }
}

@keyframes lattice-on-25 {
  0%,
  100% {
    opacity: var(--ll-idle);
  }

  7%,
  17% {
    opacity: var(--ll-peak);
  }

  25% {
    opacity: var(--ll-idle);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lattice-loader__run {
    --ll-peak: 0.7;
  }

  .lattice-loader__run .lattice-loader__cell {
    animation: none !important;
    opacity: var(--ll-peak);
  }

  .lattice-loader__run .lattice-loader__cell[data-hole] {
    opacity: calc(var(--ll-idle) * 0.47);
  }

  .lattice-loader,
  .lattice-loader * {
    transition: none !important;
  }

  .lattice-loader .lattice-loader__mark {
    transform: none;
  }

  .lattice-loader .lattice-loader__text {
    filter: none;
  }
}
.project-information { display: grid; gap: 24px; padding-block-end: 40px; }
.project-information .job-header { margin-block-end: 0; }
.project-information__heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.project-information__heading p { margin: 8px 0 0; font-size: 13px; }
.project-information__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 24px; align-items: start; }
.project-information__details, .project-information__summary, .project-information__invoice { display: grid; gap: 20px; min-width: 0; }
.project-information .panel { min-width: 0; }
.project-information fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 20px; }
.project-information fieldset + fieldset { margin-block-start: 28px; }
.project-information legend { font-weight: 700; margin-block-end: 18px; font-size: 15px; }
.project-information fieldset:disabled input, .project-information fieldset:disabled textarea, .project-information fieldset:disabled select { opacity: .72; }
.project-information .button { min-height: 44px; }
.project-information .field input, .project-information .select-field select { min-height: 44px; }
.project-information__source-tabs { display: flex; gap: 5px; background: var(--ink-050); padding: 5px; border: 1px solid var(--ink-150); border-radius: var(--radius-sm); margin-block-end: 24px; }
.project-information__source-tabs button { min-height: 44px; flex: 1; border: 1px solid transparent; border-radius: var(--radius-xs); padding: 10px 15px; background: transparent; color: var(--ink-600); font-weight: 650; cursor: pointer; }
.project-information__source-tabs button[aria-selected="true"] { color: var(--ink-900); background: var(--paper); border-color: var(--ink-200); box-shadow: var(--shadow-sm); }
.project-information__source-tabs button:disabled { cursor: default; }
.project-information__form-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.project-information__part-count { display: flex; justify-content: space-between; align-items: center; align-self: end; min-height: 44px; padding: 10px 14px; background: var(--ink-050); border-radius: var(--radius-xs); color: var(--ink-600); font-size: 13px; }
.project-information__part-count strong { font-size: 18px; color: var(--ink-900); }
.project-information__summary .panel > .button { width: 100%; margin-block-start: 20px; }
.project-information__invoice-total { display: grid; gap: 8px; padding-block: 26px 20px; }
.project-information__invoice-total strong { font-size: clamp(24px, 2.2vw, 31px); overflow-wrap: anywhere; font-weight: 750; }
.project-information__blockers { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.project-information__blockers li { display: flex; align-items: start; gap: 9px; color: var(--ink-600); font-size: 13px; line-height: 1.6; }
.project-information__blockers svg { flex: 0 0 auto; margin-block-start: 3px; color: var(--amber-700); }
.project-information__disclosure { border-block: 1px solid var(--ink-150); padding-block: 16px; margin-block: 4px; }
.project-information__disclosure summary { min-height: 32px; font-weight: 650; cursor: pointer; color: var(--ink-700); }
.project-information__disclosure[open] summary { margin-block-end: 16px; }
.project-information__table-scroll { overflow: auto; max-width: 100%; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
.project-information__table { width: 100%; min-width: 690px; border-collapse: collapse; text-align: start; font-size: 13px; }
.project-information__table th, .project-information__table td { padding: 14px 12px; border-block-end: 1px solid var(--ink-150); vertical-align: middle; text-align: start; }
.project-information__table thead th { background: var(--ink-050); color: var(--ink-600); font-weight: 650; }
.project-information__table tbody th { font-weight: 500; min-width: 200px; }
.project-information__table tbody th strong { display: block; font-weight: 650; }
.project-information__table tbody th small { display: block; margin-block-start: 6px; line-height: 1.5; }
.project-information__table tr:last-child > * { border-block-end: 0; }
.project-information__table td:first-child { width: 50px; color: var(--ink-500); }
.project-information__table input:not([type="checkbox"]) { width: 118px; min-height: 44px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-900); padding: 8px 10px; }
.project-information__checkbox { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--ink-600); min-height: 44px; }
.project-information__checkbox input { accent-color: var(--brand-800); width: 18px; height: 18px; }
.project-information__missing { color: var(--amber-800); }
.project-information__extras { display: grid; gap: 16px; padding-block: 6px 20px; border-block-end: 1px solid var(--ink-150); }
.project-information__extras > .button { justify-self: start; }
.project-information__extra-row { display: grid; grid-template-columns: minmax(150px, 2fr) minmax(70px, .7fr) minmax(95px, .8fr) minmax(95px, 1fr) 44px; gap: 12px; align-items: end; }
.project-information__invoice-footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .65fr); gap: 34px; }
.project-information__invoice-footer > div:first-child { display: grid; gap: 20px; }
.project-information__totals { border: 1px solid var(--ink-200); border-radius: var(--radius-sm); padding: 18px; align-self: start; background: var(--ink-050); }
.project-information__totals small { display: block; margin-block-start: 15px; line-height: 1.6; }
.project-information__invoice .panel > .button-row { margin-block-start: 22px; }
.project-information__invoice .info-strip { margin-block-start: 18px; }
.project-information__balances { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-block-end: 18px; }
.project-information__balances .metric-row { display: grid; gap: 8px; }
.project-information__history article { display: flex; align-items: center; gap: 20px; padding-block: 16px; border-block-end: 1px solid var(--ink-150); }
.project-information__history article > div { display: grid; gap: 7px; margin-inline-end: auto; }
.project-information__historical-agreement { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.project-information__conflict { border-color: var(--amber-500); }
.project-information__conflict td { max-width: 330px; white-space: pre-wrap; overflow-wrap: anywhere; vertical-align: top; }
.project-information__conflict .button-row { margin-block-start: 20px; }
@media (max-width: 1000px) {
  .project-information__grid { grid-template-columns: minmax(0, 1fr) minmax(240px, 290px); gap: 18px; }
  .project-information__form-pair { grid-template-columns: minmax(0, 1fr); }
  .project-information__invoice-footer { gap: 22px; }
}
@media (max-width: 720px) {
  .project-information { gap: 18px; padding-block-end: 30px; }
  .project-information__grid, .project-information__invoice-footer { grid-template-columns: minmax(0, 1fr); }
  .project-information__heading { align-items: stretch; }
  .project-information__heading > .button-row { width: 100%; display: grid; grid-template-columns: 1fr 1.5fr; }
  .project-information__heading > .button-row .button { padding-inline: 10px; }
  .project-information__balances { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .project-information__balances .metric-row { display: flex; }
  .project-information__extra-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--ink-200); border-radius: var(--radius-sm); padding: 13px; }
  .project-information__extra-row .field:first-child { grid-column: 1 / -1; }
  .project-information__extra-row .button { justify-self: end; }
  .project-information__history article { flex-wrap: wrap; gap: 12px; }
  .project-information__history article > div { flex-basis: 100%; }
}
/* Producer catalogue uses the selected compact project-card geometry. */
.producer-projects .producer-projects-header {
  align-items: center;
  flex-wrap: wrap;
  gap: 18px 24px;
  margin-bottom: 8px;
}

.producer-projects .producer-projects-header > div:first-child {
  flex: 1 1 180px;
  min-width: 0;
}

.producer-projects-header__eyebrow {
  margin: 0 0 12px;
  color: var(--ink-600);
  font-size: 14px;
  line-height: 1.5;
}

.producer-projects .producer-projects-header h1 { margin: 0; }

.producer-projects-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
}

.producer-projects-header__actions > .button { min-height: 44px; }
.producer-projects-header__actions > .button[aria-pressed="true"] { border-color: var(--ink-500); background: var(--ink-100); color: var(--ink-950); }

.producer-projects .producer-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 20px;
  min-width: 0;
}

.producer-project-grid > .empty-state { grid-column: 1 / -1; }

.producer-projects .producer-project-card {
  min-width: 0;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-sm);
  background: var(--paper);
  overflow: hidden;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.producer-projects .producer-project-card:focus-within { border-color: var(--ink-500); }

.producer-projects .producer-project-card__open {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink-950);
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.producer-projects .producer-project-card__open:focus-visible { outline: 3px solid var(--ink-500); outline-offset: -4px; }

.producer-project-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  min-height: 63px;
  padding: 22px 24px 0;
  color: var(--ink-900);
}

.producer-project-card__top > svg { flex: 0 0 auto; }
.producer-project-card__code { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-500); font-size: 11px; line-height: 1.5; }

.producer-project-card__main {
  display: grid;
  align-content: center;
  gap: 9px;
  min-width: 0;
  min-height: 116px;
  padding: 22px 24px 27px;
}

.producer-project-card__main > strong { font-size: 20px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.producer-project-card__client { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 7px; color: var(--ink-600); font-size: 13px; line-height: 1.6; }
.producer-project-card__client bdi { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.producer-project-card__action { color: var(--ink-600); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }

.producer-project-card__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  min-height: 92px;
  padding: 18px 24px 20px;
  border-top: 1px solid var(--ink-150);
  background: var(--ink-050);
}

.producer-project-card__details > span { display: grid; align-content: start; min-width: 0; gap: 7px; color: var(--ink-600); font-size: 12px; line-height: 1.6; }
.producer-project-card__details time,
.producer-project-card__details strong { color: var(--ink-950); font-size: 13px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }

.producer-create-fields { display: grid; gap: 20px; min-width: 0; margin: 0; padding: 0; border: 0; }
.producer-create-error { margin-bottom: 16px; }

@media (hover: hover) and (pointer: fine) {
  .producer-projects .producer-project-card:hover { border-color: var(--ink-300); box-shadow: var(--shadow-sm); }
}

@media (max-width: 1040px) {
  .producer-projects .producer-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

@media (max-width: 640px) {
  .workspace--producer .producer-projects .producer-projects-header { gap: 14px; }
  .producer-projects-header__eyebrow { margin-bottom: 8px; font-size: 12px; }
  .producer-projects-header__actions { gap: 8px; }
  .producer-projects-header__actions > .button { width: auto; padding-inline: 12px; }
  .producer-projects .producer-project-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .producer-project-card__top { min-height: 56px; padding: 18px 20px 0; }
  .producer-project-card__main { min-height: 100px; padding: 18px 20px 22px; }
  .producer-project-card__main > strong { font-size: 19px; }
  .producer-project-card__details { min-height: 84px; gap: 12px; padding: 16px 20px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .producer-projects .producer-project-card { transition: none; }
}
/* Photo review consumes the existing Drawing Desk palette and shared modal. */
.room-photo-survey-host {
  /* Portals copy their mounted owner's canonical tokens. Product-token
     adapters cover the no-room state before Drawing Desk is mounted. */
  --ink: var(--ink-950);
  --line: var(--ink-150);
  --slate: var(--ink-600);
  --blue: var(--blue-700);
  --blue-soft: var(--blue-100);
  --danger: var(--red-700);
  color: var(--ink);
  font-family: var(--font-ui, Inter), Shabnam, system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.55;
}
.room-photo-survey-host .modal {
  width: min(760px, 100%);
}
.room-photo-survey-host .drawer__body {
  padding: 16px 20px;
}
.room-photo-survey-host .drawer__header {
  padding: 14px 20px;
}
.room-photo-survey-host .drawer__header h2 {
  font-size: 17px;
}
.room-photo-survey-host .drawer__footer {
  padding: 12px 20px;
}
.photo-survey-content {
  display: grid;
  min-width: 0;
  gap: 18px;
}
.photo-survey-content :is(p, h3, figure) {
  margin: 0;
}
.photo-survey-content h3 {
  font-size: 13px;
  font-weight: 650;
}
.photo-survey-intro {
  max-width: 65ch;
  color: var(--slate);
}
.photo-survey-intake {
  display: grid;
  gap: 12px;
}
.photo-survey-upload {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px;
  background: var(--canvas);
  border: 1px dashed var(--line);
  border-radius: 5px;
}
.photo-survey-upload > div {
  flex: 1;
  min-width: 160px;
}
.photo-survey-upload p {
  margin: 2px 0 0;
  font-size: 11px;
  color: var(--slate);
}
.photo-survey-upload.is-dragging {
  border-color: var(--blue);
  background: var(--blue-soft);
}
.room-photo-survey-host .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 6px 12px;
  font-size: 12px;
}
.room-photo-survey-host button {
  cursor: pointer;
}
.room-photo-survey-host button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.room-photo-survey-host button:focus-visible,
.room-photo-survey-host textarea:focus-visible,
.room-photo-survey-host input:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
.room-photo-survey-host .button.secondary:hover:not(:disabled) {
  background: var(--blue-soft);
  border-color: var(--blue);
}
.room-photo-survey-host .button.primary:hover:not(:disabled) {
  filter: brightness(1.15);
}
.room-photo-survey-host button:active:not(:disabled) {
  filter: brightness(0.94);
}
.photo-survey-file-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}
.photo-survey-file-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding-inline: 8px;
  border: 1px solid var(--line);
  border-radius: 4px;
}
.photo-survey-file-list li > span {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.photo-survey-file-list small {
  color: var(--slate);
  white-space: nowrap;
}
.photo-survey-file-list .icon-button {
  min-width: 30px;
  width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 4px;
}
.photo-survey-prompt {
  display: grid;
  gap: 5px;
}
.photo-survey-prompt textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 82px;
  max-height: 200px;
  overflow: auto;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  resize: none;
}
.photo-survey-start,
.photo-survey-section-heading,
.photo-survey-proposal-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.photo-survey-start > p,
.photo-survey-note {
  color: var(--slate);
  font-size: 12px;
  overflow-wrap: anywhere;
}
.photo-survey-history {
  display: grid;
  gap: 9px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.photo-survey-job-list {
  display: flex;
  gap: 7px;
  overflow: auto;
  max-height: 150px;
  padding: 3px;
  scrollbar-gutter: stable;
}
.photo-survey-job-list > button {
  display: grid;
  flex: 0 0 auto;
  min-width: 150px;
  gap: 2px;
  text-align: start;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 8px 10px;
  font: inherit;
}
.photo-survey-job-list > button:is(:hover, .is-selected) {
  background: var(--blue-soft);
  border-color: var(--blue);
}
.photo-survey-job-list small {
  color: var(--slate);
}
.photo-survey-review {
  display: grid;
  gap: 12px;
  min-width: 0;
}
.photo-survey-status {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 22px;
  font-weight: 600;
}
.photo-survey-spinner {
  animation: photo-survey-spin 1.2s linear infinite;
}
.photo-survey-thumbnails {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.photo-survey-thumbnails figure {
  display: grid;
  grid-template-rows: 100px auto;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--canvas);
  overflow: hidden;
}
.photo-survey-thumbnails img {
  display: block;
  width: 100%;
  height: 100px;
  object-fit: contain;
  background: var(--paper);
}
.photo-survey-thumbnails figure > svg {
  align-self: center;
  justify-self: center;
}
.photo-survey-thumbnails figcaption {
  padding: 4px 6px;
  font-size: 10px;
  color: var(--slate);
  overflow-wrap: anywhere;
}
.photo-survey-proposal {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
}
.photo-survey-proposal-heading > span {
  font-size: 11px;
  color: var(--slate);
}
.photo-survey-plan {
  display: block;
  width: 100%;
  height: 220px;
  direction: ltr;
  background: var(--canvas);
}
.photo-survey-room-shape {
  fill: var(--paper);
  stroke: var(--ink);
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}
.photo-survey-obstacle {
  fill: var(--line);
  stroke: var(--slate);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.photo-survey-aperture {
  stroke-width: 7;
  vector-effect: non-scaling-stroke;
}
.photo-survey-aperture--window {
  stroke: var(--blue);
}
.photo-survey-aperture--door {
  stroke: var(--slate);
  stroke-dasharray: 4 3;
}
.photo-survey-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  color: var(--slate);
  font-size: 10px;
}
.photo-survey-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.photo-survey-legend i {
  width: 15px;
  height: 0;
  border-top: 3px solid var(--blue);
}
.photo-survey-legend .photo-survey-door-key {
  border-color: var(--slate);
  border-top-style: dashed;
}
.photo-survey-legend .photo-survey-object-key {
  height: 9px;
  border: 1px solid var(--slate);
  background: var(--line);
}
.photo-survey-dimensions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 0;
  padding: 10px 0;
  border-block: 1px solid var(--line);
}
.photo-survey-dimensions dt {
  color: var(--slate);
  font-size: 10px;
}
.photo-survey-dimensions dd {
  margin: 2px 0 0;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.photo-survey-assumptions ul {
  padding-inline-start: 20px;
  margin-block: 6px 12px;
  font-size: 12px;
}
.photo-survey-detections summary {
  cursor: pointer;
  font-size: 12px;
}
.photo-survey-detections summary:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
.photo-survey-detections ul {
  display: grid;
  gap: 10px;
  margin: 10px 0 0;
  padding-inline-start: 20px;
  font-size: 12px;
}
.photo-survey-detections small {
  color: var(--slate);
}
.photo-survey-replace {
  display: flex;
  align-items: start;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  cursor: pointer;
  font-size: 12px;
}
.photo-survey-replace input {
  flex-shrink: 0;
  margin-top: 4px;
  accent-color: var(--blue);
}
.photo-survey-error {
  min-height: 20px;
  color: var(--danger);
  overflow-wrap: anywhere;
}
.photo-survey-note > button {
  color: var(--blue);
  text-decoration: underline;
  border: 0;
  background: transparent;
  padding: 3px 5px;
  font: inherit;
}
.photo-survey-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.photo-survey-actions .primary {
  min-width: 170px;
}
.photo-survey-estimate-notice {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  color: var(--slate, #536583);
  font-size: 11px;
}
.photo-survey-estimate-notice button {
  padding: 3px 4px;
  color: var(--blue, #2468ff);
  background: transparent;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
}
@keyframes photo-survey-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 600px) {
  .room-photo-survey-host .drawer__body {
    padding: 12px;
  }
  .room-photo-survey-host .drawer__header,
  .room-photo-survey-host .drawer__footer {
    padding: 12px;
  }
  .photo-survey-upload {
    padding: 10px;
    gap: 8px;
  }
  .photo-survey-upload > .button {
    width: 100%;
  }
  .photo-survey-thumbnails {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .photo-survey-actions > button {
    flex: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .photo-survey-spinner {
    animation: none;
  }
}
/* A functional sibling of photo review; existing Drawing Desk tokens stay authoritative. */
.room-ai-design-host {
  --ink: var(--ink-950);
  --line: var(--ink-150);
  --slate: var(--ink-600);
  --blue: var(--blue-700);
  --blue-soft: var(--blue-100);
  --danger: var(--red-700);
  color: var(--ink);
  font:
    13px/1.55 var(--font-ui, Inter),
    Shabnam,
    system-ui,
    sans-serif;
}
.room-ai-design-host .modal {
  width: min(1080px, 100%);
}
.room-ai-design-host :is(.drawer__body, .drawer__header, .drawer__footer) {
  padding: 16px 20px;
}
.room-ai-design-host :is(p, h3, h4) {
  margin: 0;
}
.room-ai-design-host :is(button, input, select, textarea) {
  font: inherit;
}
.room-ai-design-host :is(button, input, select, textarea):focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
.room-ai-design-host button {
  cursor: pointer;
}
.room-ai-design-host button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.room-ai-design-host .button {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 6px 12px;
  font-size: 12px;
}
.room-ai-design-host .button.secondary:hover:not(:disabled) {
  background: var(--blue-soft);
  border-color: var(--blue);
}
.room-ai-design-host .button.primary:hover:not(:disabled) {
  filter: brightness(1.12);
}
.ai-room-content {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.ai-room-intro,
.ai-room-help {
  color: var(--slate);
}
.ai-room-intro {
  max-width: 85ch;
}
.ai-room-layout {
  display: grid;
  grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
.ai-room-brief,
.ai-room-review {
  display: grid;
  gap: 12px;
  min-width: 0;
}
.ai-room-brief label,
.ai-room-history {
  display: grid;
  gap: 5px;
  font-weight: 600;
}
.ai-room-brief :is(input, textarea),
.ai-room-history select {
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper);
  font-weight: 400;
}
.ai-room-brief textarea {
  resize: none;
  min-height: 84px;
}
.ai-room-help {
  font-size: 12px;
}
.ai-room-review-header,
.ai-room-actions,
.ai-room-view-switch {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.ai-room-review-header {
  justify-content: space-between;
}
.ai-room-review-header h3,
.ai-room-checks h4 {
  font-size: 13px;
  font-weight: 650;
}
.ai-room-actions {
  justify-content: flex-end;
  width: 100%;
}
.ai-room-history select {
  min-height: 36px;
}
.ai-room-empty {
  padding: 36px 16px;
  color: var(--slate);
  border: 1px solid var(--line);
  border-radius: 5px;
}
.ai-room-status {
  color: var(--slate);
}
.ai-room-preview {
  height: 330px;
  min-height: 260px;
  width: 100%;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--canvas);
}
.ai-room-preview > :is(svg, div) {
  width: 100%;
  height: 100%;
}
.ai-room-checks,
.ai-room-notice {
  display: grid;
  gap: 8px;
}
.ai-room-notice {
  padding: 12px;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: 5px;
}
.ai-room-notice label {
  display: flex;
  gap: 8px;
  align-items: start;
}
.ai-room-notice :is(input, button) {
  flex-shrink: 0;
}
.ai-room-notice ul,
.ai-room-checks ul {
  margin: 0;
  padding-inline-start: 20px;
}
.ai-room-warning,
.ai-room-error {
  color: var(--danger);
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-inline-start: 3px solid var(--danger);
  border-radius: 4px;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .ai-room-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .ai-room-preview {
    height: 290px;
  }
}
@media (max-width: 480px) {
  .room-ai-design-host :is(.drawer__body, .drawer__header, .drawer__footer) {
    padding: 12px;
  }
  .ai-room-actions .button {
    min-height: 44px;
    flex: 1;
  }
}

/* The approved Library workbench is a business variant of the shared Modal.
   Its fixed frame owns one main content scroller; source geometry stays LTR. */
.room-ai-design-host--workbench .overlay--center > .modal {
  width: min(1000px, 100%);
  height: min(820px, calc(100dvh - 40px));
  max-height: calc(100dvh - 40px);
  border-color: var(--line);
  border-radius: 12px;
  background: var(--paper);
}
.room-ai-design-host--workbench .modal > .drawer__header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
}
.room-ai-design-host--workbench .drawer__header h2 {
  font-size: 19px;
  line-height: 1.35;
  font-weight: 700;
}
.room-ai-design-host--workbench .modal > .drawer__body {
  display: flex;
  flex: 1 1 auto;
  overflow: hidden;
  padding: 0;
}
.room-ai-design-host--workbench .modal > .drawer__footer {
  padding: 14px 18px;
  background: var(--paper);
  border-top: 1px solid var(--line);
}
.room-ai-design-host--workbench .ai-room-actions {
  justify-content: space-between;
  flex-wrap: nowrap;
}
.room-ai-design-host--workbench .ai-room-actions .button {
  min-height: 42px;
  padding-inline: 18px;
}
.room-ai-design-host--workbench .ai-room-actions .primary {
  min-width: 215px;
}
.room-ai-design-host--workbench .ai-room-workbench {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  direction: ltr;
  width: 100%;
  min-width: 0;
  min-height: 0;
}
.room-ai-design-host--workbench .ai-room-section-nav {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 12px 8px;
  border-right: 1px solid var(--line);
}
.room-ai-design-host--workbench .ai-room-section-nav button {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 74px;
  padding: 10px 4px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--ink);
  background: transparent;
  font-size: 12px;
  line-height: 1.4;
}
.room-ai-design-host--workbench .ai-room-section-nav button:hover,
.room-ai-design-host--workbench .ai-room-section-nav button[aria-current] {
  color: var(--blue);
  background: var(--blue-soft);
}
.room-ai-design-host--workbench .ai-room-section-count {
  position: absolute;
  top: 5px;
  right: 5px;
  min-width: 17px;
  padding-inline: 3px;
  border-radius: 5px;
  color: var(--danger);
  background: var(--paper);
  font-size: 10px;
}
.room-ai-design-host--workbench .ai-room-workbench-main {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 20px;
  color: var(--ink);
}
.room-ai-design-host--workbench[lang='fa'] .ai-room-workbench-main,
.room-ai-design-host--workbench[lang='fa'] .ai-room-section-nav button {
  direction: rtl;
}
.room-ai-design-host--workbench .ai-room-section[hidden] {
  display: none !important;
}
.room-ai-design-host--workbench .ai-room-section {
  min-width: 0;
}
.room-ai-design-host--workbench .ai-room-source-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin-bottom: 18px;
}
.room-ai-design-host--workbench .ai-room-source-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  background: var(--canvas);
}
.room-ai-design-host--workbench .ai-room-source-description {
  display: grid;
  gap: 2px;
  min-width: 0;
  margin-inline-end: auto;
  overflow-wrap: anywhere;
}
.room-ai-design-host--workbench .ai-room-source-description strong {
  font-size: 14px;
}
.room-ai-design-host--workbench .ai-room-source-description span {
  color: var(--slate);
  font-size: 12px;
}
.room-ai-design-host--workbench .ai-room-history {
  max-width: 290px;
  min-width: 0;
}
.room-ai-design-host--workbench .ai-room-refresh {
  flex: 0 0 auto;
  width: 36px;
  padding: 6px;
}
.room-ai-design-host--workbench .ai-room-lifecycle {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
}
.room-ai-design-host--workbench .ai-room-lifecycle:empty {
  display: none;
}
.room-ai-design-host--workbench .ai-room-brief {
  max-width: 680px;
  gap: 16px;
}
.room-ai-design-host--workbench .ai-room-brief label {
  gap: 7px;
}
.room-ai-design-host--workbench .ai-room-brief textarea {
  min-height: 105px;
  line-height: 1.6;
}
.room-ai-design-host--workbench .ai-room-brief .button.primary {
  min-height: 42px;
  justify-self: start;
  padding-inline: 22px;
}
.room-ai-design-host--workbench .ai-room-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.room-ai-design-host--workbench h3 {
  font-size: 14px;
  font-weight: 650;
}
.room-ai-design-host--workbench .ai-room-view-switch {
  flex-wrap: nowrap;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.room-ai-design-host--workbench .ai-room-view-switch .button {
  min-height: 28px;
  border-color: transparent;
  padding: 3px 13px;
}
.room-ai-design-host--workbench .ai-room-preview {
  height: clamp(300px, 43dvh, 430px);
  min-height: 260px;
  background: var(--canvas);
}
.room-ai-design-host--workbench .ai-room-estimate {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.room-ai-design-host--workbench .ai-room-estimate svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.room-ai-design-host--workbench .ai-room-checks {
  gap: 10px;
  margin-top: 18px;
}
.room-ai-design-host--workbench .ai-room-attention {
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--danger) 18%, var(--paper));
  border-radius: 7px;
  background: color-mix(in srgb, var(--danger) 5%, var(--paper));
}
.room-ai-design-host--workbench .ai-room-attention-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.room-ai-design-host--workbench .ai-room-attention-heading h3 {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--danger);
}
.room-ai-design-host--workbench .ai-room-attention ul {
  display: grid;
  gap: 0;
  padding: 0;
  list-style: none;
}
.room-ai-design-host--workbench .ai-room-attention li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px;
  border-top: 1px solid color-mix(in srgb, var(--danger) 12%, var(--paper));
}
.room-ai-design-host--workbench .ai-room-attention li > svg {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--danger);
}
.room-ai-design-host--workbench .ai-room-attention li p {
  margin-top: 3px;
  color: var(--slate);
  overflow-wrap: anywhere;
}
.room-ai-design-host--workbench .ai-room-disclosure {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.room-ai-design-host--workbench .ai-room-disclosure summary {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 45px;
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
}
.room-ai-design-host--workbench .ai-room-disclosure summary::-webkit-details-marker {
  display: none;
}
.room-ai-design-host--workbench .ai-room-disclosure summary strong {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 500;
}
.room-ai-design-host--workbench .ai-room-disclosure summary span {
  color: var(--slate);
  font-size: 12px;
}
.room-ai-design-host--workbench .ai-room-disclosure summary > svg {
  flex-shrink: 0;
}
.room-ai-design-host--workbench .ai-room-disclosure[open] summary > svg:last-child {
  transform: rotate(90deg);
}
.room-ai-design-host--workbench .ai-room-disclosure > div {
  display: grid;
  gap: 10px;
  padding: 0 14px 14px;
}
.room-ai-design-host--workbench .ai-room-empty {
  display: grid;
  justify-items: start;
  gap: 10px;
}
.room-ai-design-host--workbench .ai-room-history-section,
.room-ai-design-host--workbench .ai-room-history-list {
  display: grid;
  gap: 12px;
}
.room-ai-design-host--workbench .ai-room-history-list button {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
  text-align: start;
}
.room-ai-design-host--workbench .ai-room-history-list button.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}
.room-ai-design-host--workbench .ai-room-history-list button > span {
  display: grid;
  gap: 3px;
  flex: 1;
}
.room-ai-design-host--workbench .ai-room-history-list button > span > span {
  color: var(--slate);
  font-size: 12px;
}
.room-ai-design-host--workbench .ai-room-disclosure summary:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.room-ai-design-host--workbench .ai-room-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@media (max-width: 700px), (max-height: 500px) {
  .room-ai-design-host--workbench .overlay--center > .modal {
    height: calc(100dvh - 24px);
    max-height: calc(100dvh - 24px);
  }
  .room-ai-design-host--workbench .ai-room-workbench {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
  }
  .room-ai-design-host--workbench .ai-room-section-nav {
    flex-direction: row;
    padding: 5px 8px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .room-ai-design-host--workbench .ai-room-section-nav button {
    min-height: 54px;
    padding: 5px;
    flex: 1;
    font-size: 11px;
  }
  .room-ai-design-host--workbench .ai-room-section-nav button svg {
    width: 19px;
    height: 19px;
  }
  .room-ai-design-host--workbench .ai-room-workbench-main {
    padding: 14px;
  }
  .room-ai-design-host--workbench .ai-room-source-summary {
    flex-wrap: wrap;
    gap: 9px;
  }
  .room-ai-design-host--workbench .ai-room-history {
    max-width: none;
    flex: 1 1 180px;
  }
  .room-ai-design-host--workbench .ai-room-source-icon {
    width: 38px;
    height: 38px;
  }
}
@media (max-width: 480px) {
  .room-ai-design-host--workbench .modal > .drawer__header,
  .room-ai-design-host--workbench .modal > .drawer__footer {
    padding: 12px;
  }
  .room-ai-design-host--workbench .ai-room-actions {
    gap: 8px;
  }
  .room-ai-design-host--workbench .ai-room-actions .button {
    min-width: 0;
    min-height: 44px;
    padding-inline: 10px;
  }
  .room-ai-design-host--workbench .ai-room-actions .primary {
    flex: 2;
  }
  .room-ai-design-host--workbench .ai-room-disclosure summary span {
    display: none;
  }
}
/* Selected Property strip: one floating surface, exact generated dimensions. */
.novincut-drawing-desk .context-editor.room-cabinet-editor {
  container-type: inline-size;
  top: auto;
  right: 20px;
  bottom: 76px;
  width: min(600px, calc(100% - 40px));
  min-width: 0;
  padding: 12px 12px 8px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor form {
  display: block;
}
/* Override the shared product fields within this density variant only. */
.novincut-drawing-desk .context-editor.room-cabinet-editor .field {
  min-width: 0;
  width: auto;
  margin: 0;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .field-control {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  width: auto;
  gap: 4px;
  padding: 0 6px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .field-control:focus-within {
  outline: none;
  box-shadow: none;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .field input {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 30px;
  padding: 5px 7px;
  border: 0;
  background: transparent;
  color: var(--ink);
  box-shadow: none;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.25;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .desk-panel-icon {
  width: 26px;
  height: 26px;
  border-radius: 6px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .desk-panel-title p {
  margin-top: 1px;
  font-size: 10px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .desk-panel-header {
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding-bottom: 8px;
  margin-bottom: 9px !important;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__actions {
  display: flex;
  align-items: center;
  gap: 3px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__actions
  .icon-button {
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--primary);
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__actions
  .icon-button:hover:not(:disabled),
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  > button:hover:not(:disabled) {
  background: var(--selected);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__sizes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__size {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__size
  + .room-cabinet-editor__size {
  padding-inline-start: 10px;
  border-inline-start: 1px solid var(--line);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__size-heading {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 17px;
  color: var(--slate);
  font-size: 11px;
  line-height: 1.5;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__size-heading
  strong {
  color: var(--primary);
  font-size: 13px;
  font-weight: 600;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__fixed {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--slate);
  font-size: 10px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__stepper {
  display: flex;
  min-width: 0;
  height: 32px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  background: #fafcff;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper:focus-within,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__coordinate-fields
  .field:focus-within {
  border-color: var(--blue);
  outline: 2px solid #2468ff1a;
  outline-offset: 1px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__stepper > .field {
  flex: 1;
  min-width: 0;
  margin: 0;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  .field
  > span:first-child,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__base-value
  .field
  > span:first-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  .field-control {
  border: 0;
  background: transparent;
  outline: none;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  .field
  input {
  height: 30px;
  padding: 5px 7px;
  font-size: 13px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__stepper > button {
  display: grid;
  place-items: center;
  flex: 0 0 26px;
  min-width: 0;
  height: 30px;
  padding: 0;
  border: 0;
  border-inline-start: 1px solid var(--line);
  border-radius: 0;
  color: var(--primary);
  background: var(--paper);
  cursor: ew-resize;
  touch-action: none;
  user-select: none;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  > button:last-child {
  border-start-end-radius: 4px;
  border-end-end-radius: 4px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  > button:disabled {
  color: var(--slate);
  opacity: 0.45;
  cursor: default;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__slider {
  display: block;
  width: 100%;
  min-width: 0;
  height: 18px;
  margin: 0;
  padding: 0;
  accent-color: var(--blue);
  cursor: pointer;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__slider:disabled {
  cursor: default;
  opacity: 0.5;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor:not(:has(.room-cabinet-editor__position[open]))
  .room-cabinet-editor__slider {
  display: none;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor input[aria-invalid='true'] {
  color: var(--danger);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__meta {
  display: grid;
  grid-template-columns: minmax(190px, 1.6fr) minmax(100px, 1fr) minmax(84px, 0.8fr) minmax(
      62px,
      0.6fr
    );
  align-items: start;
  gap: 10px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__meta > * {
  min-width: 0;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__meta > * + * {
  padding-inline-start: 10px;
  border-inline-start: 1px solid var(--line);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__meta-label {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 3px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__coordinate-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__coordinate-fields
  .field {
  flex-direction: row;
  align-items: center;
  gap: 3px;
  margin: 0;
  padding-inline-start: 6px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  background: #fafcff;
  direction: ltr;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__coordinate-fields
  .field-control {
  gap: 2px;
  padding-inline-end: 5px;
  border: 0;
  outline: none;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__coordinate-fields
  input {
  height: 30px;
  padding: 6px 2px;
  font-size: 11px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__finish-button {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--primary);
  text-align: start;
  font-size: 11px;
  cursor: pointer;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__finish-button
  > span:not(.room-cabinet-editor__swatch) {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__finish-button
  > svg {
  flex: 0 0 auto;
  margin-inline-start: auto;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__finish-button
  > img,
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__swatch {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--line);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__base-value {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 32px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__base-value .field {
  min-width: 0;
  margin: 0;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__base-value
  .field-control {
  border: 1px solid #cfdaea;
  border-radius: 4px;
  background: #fafcff;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .desk-world-fields .field-control {
  border: 1px solid #cfdaea;
  border-radius: 4px;
  background: #fafcff;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__base-value
  .field-control:focus-within,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .desk-world-fields
  .field-control:focus-within {
  border-color: var(--blue);
  outline: 2px solid #2468ff1a;
  outline-offset: 1px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__base-value input {
  height: 30px;
  padding: 5px;
  font-size: 11px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__base-value:has(input:disabled)
  .field-control {
  border-color: transparent;
  background: transparent;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__base-value
  input:disabled {
  opacity: 1;
  color: var(--primary);
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__save-status {
  display: flex;
  align-items: center;
  align-self: stretch;
  padding-top: 9px;
  color: var(--slate);
  font-size: 11px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__save-status
  .dd-auto-save {
  flex-wrap: wrap;
  max-width: 100%;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__save-status
  .dd-auto-save
  > span {
  white-space: normal;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__save-status
  [data-auto-save-status='saved'] {
  color: #2d7450;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__position {
  margin-top: 4px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__position
  > summary {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  color: var(--slate);
  font-size: 10px;
  list-style: none;
  cursor: pointer;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__position
  > summary::-webkit-details-marker {
  display: none;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__position
  > summary
  > small {
  margin-inline-start: auto;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__position[open]
  > summary
  > svg:last-child {
  transform: rotate(180deg);
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__position[open]
  > .desk-world-fields {
  margin-top: 10px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__details-link {
  margin-top: 10px;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__note {
  margin: 0 0 12px;
  color: var(--slate);
  font-size: 11px;
  line-height: 1.55;
}
.novincut-drawing-desk .context-editor.room-cabinet-editor .desk-inspector-footer:empty {
  display: none;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__actions
  .icon-button:focus-visible,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__stepper
  > button:focus-visible,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor
  .room-cabinet-editor__finish-button:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
@container (max-width: 520px) {
  .novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__meta {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 10px;
  }
  .novincut-drawing-desk
    .context-editor.room-cabinet-editor
    .room-cabinet-editor__meta
    > :nth-child(3) {
    padding-inline-start: 0;
    border-inline-start: 0;
  }
  .novincut-drawing-desk
    .context-editor.room-cabinet-editor
    .room-cabinet-editor__size
    + .room-cabinet-editor__size {
    padding-inline-start: 8px;
  }
  .novincut-drawing-desk
    .context-editor.room-cabinet-editor
    .room-cabinet-editor__stepper
    > button {
    flex-basis: 26px;
  }
}
@container (max-width: 390px) {
  .novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__sizes {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__size {
    grid-template-columns: minmax(0, 1fr) minmax(120px, 1.4fr);
    align-items: center;
  }
  .novincut-drawing-desk
    .context-editor.room-cabinet-editor
    .room-cabinet-editor__size
    + .room-cabinet-editor__size {
    padding-inline-start: 0;
    border-inline-start: 0;
  }
  .novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__slider {
    grid-column: 1 / -1;
  }
}
@media (forced-colors: active) {
  .novincut-drawing-desk .context-editor.room-cabinet-editor .room-cabinet-editor__slider {
    accent-color: auto;
  }
}
/* Cabinet-local quick settings share the existing editor and save owner. */
.novincut-drawing-desk .context-editor.room-cabinet-editor.room-cabinet-editor--quick {
  container-type: normal;
  --cabinet-quick-width: 252px;
  --cabinet-quick-extra: 0px;
  width: var(--cabinet-quick-width);
  min-height: min(calc(260px + var(--cabinet-quick-extra)), var(--editor-max-height, 306px));
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: auto;
  pointer-events: none;
}
.novincut-drawing-desk .room-cabinet-editor--quick form {
  position: relative;
  min-height: calc(260px + var(--cabinet-quick-extra));
}
.novincut-drawing-desk .room-cabinet-quick__bubbles {
  position: relative;
  width: 96px;
  height: calc(238px + var(--cabinet-quick-extra));
  direction: ltr;
  pointer-events: none;
}
.novincut-drawing-desk .room-cabinet-quick__rail {
  position: absolute;
  inset: 0;
  width: 96px;
  height: calc(238px + var(--cabinet-quick-extra));
  overflow: visible;
  fill: none;
  stroke: #cdd9eb;
  stroke-width: 1;
  pointer-events: none;
}
.novincut-drawing-desk .room-cabinet-quick__bubble,
.novincut-drawing-desk .room-cabinet-quick__more {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 0;
  margin: 0;
  border: 1px solid #d2ddec;
  color: var(--primary);
  background: #ffffff;
  box-shadow: 0 2px 6px #173c7417;
  cursor: pointer;
  pointer-events: auto;
}
.novincut-drawing-desk .room-cabinet-quick__bubble {
  flex-direction: column;
  gap: 1px;
  width: 42px;
  height: 42px;
  padding: 3px;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.15;
}
.novincut-drawing-desk .room-cabinet-quick__bubble > strong {
  max-width: 100%;
  overflow: hidden;
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
}
.novincut-drawing-desk .room-cabinet-quick__bubble > .lucide-lock-keyhole {
  position: absolute;
  right: 2px;
  bottom: 5px;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:nth-of-type(1) {
  top: 0;
  left: 2px;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:nth-of-type(2) {
  top: 46px;
  left: 20px;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:nth-of-type(3) {
  top: 92px;
  left: 26px;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:nth-of-type(4) {
  top: 138px;
  left: 18px;
  width: 44px;
  height: 44px;
  gap: 2px;
}
.novincut-drawing-desk .room-cabinet-quick__bubble.is-active {
  border-color: var(--blue);
  color: #ffffff;
  background: var(--blue);
  box-shadow:
    0 0 0 2px #2468ff17,
    0 2px 7px #2468ff25;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:hover:not(:disabled):not(.is-active),
.novincut-drawing-desk .room-cabinet-quick__more:hover {
  border-color: #a7c1f2;
  background: #f5f8ff;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:disabled {
  opacity: 0.6;
  cursor: default;
}
.novincut-drawing-desk .room-cabinet-quick__more {
  top: calc(190px + var(--cabinet-quick-extra));
  left: 0;
  gap: 6px;
  width: 96px;
  min-height: 34px;
  padding: 5px 9px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.15;
  text-align: start;
}
.novincut-drawing-desk .context-editor.room-cabinet-quick.has-opening-switch {
  --cabinet-quick-extra: 46px;
}
.novincut-drawing-desk .room-cabinet-quick__opening {
  position: absolute;
  top: 186px;
  left: 8px;
  width: 42px;
  height: 42px;
  pointer-events: auto;
}
.novincut-drawing-desk .room-cabinet-quick__opening > .uw-tool-help {
  display: block;
  width: 100%;
  height: 100%;
}
.novincut-drawing-desk .room-cabinet-quick__opening .uw-tool-opening-side--quick {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 42px;
  height: 42px;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--primary);
  box-shadow: 0 2px 6px #173c7417;
  cursor: pointer;
}
.novincut-drawing-desk .room-cabinet-quick__opening .uw-tool-opening-side--quick:disabled {
  opacity: 0.6;
  cursor: default;
}
.novincut-drawing-desk .uw-tool-opening-side--quick .uw-opening-side-icon {
  display: inline-flex;
  position: relative;
}
.novincut-drawing-desk .uw-tool-opening-side--quick .uw-opening-side-icon__switch {
  position: absolute;
  right: -5px;
  bottom: -4px;
  padding: 1px;
  border-radius: 3px;
  color: var(--blue);
  background: var(--paper);
}
.novincut-drawing-desk .room-cabinet-quick__more > svg {
  flex: 0 0 auto;
}
.novincut-drawing-desk .room-cabinet-quick__popover {
  position: absolute;
  top: 0;
  left: 88px;
  right: auto;
  box-sizing: border-box;
  width: 164px;
  max-height: max(100px, calc(var(--editor-max-height, 260px) - 138px));
  overflow: auto;
  padding: 6px 8px 8px;
  border: 1px solid #cfdaea;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 4px 12px #173c7417;
  pointer-events: auto;
}
.novincut-drawing-desk .room-cabinet-quick[data-side='left'] .room-cabinet-quick__bubbles {
  margin-left: auto;
}
.novincut-drawing-desk .room-cabinet-quick[data-side='left'] .room-cabinet-quick__rail {
  transform: scaleX(-1);
}
.novincut-drawing-desk .room-cabinet-quick[data-side='left'] .room-cabinet-quick__opening {
  left: 46px;
}
.novincut-drawing-desk
  .room-cabinet-quick[data-side='left']
  .room-cabinet-quick__bubble:nth-of-type(1) {
  left: 52px;
}
.novincut-drawing-desk
  .room-cabinet-quick[data-side='left']
  .room-cabinet-quick__bubble:nth-of-type(2) {
  left: 34px;
}
.novincut-drawing-desk
  .room-cabinet-quick[data-side='left']
  .room-cabinet-quick__bubble:nth-of-type(3) {
  left: 28px;
}
.novincut-drawing-desk
  .room-cabinet-quick[data-side='left']
  .room-cabinet-quick__bubble:nth-of-type(4) {
  left: 34px;
}
.novincut-drawing-desk .room-cabinet-quick[data-side='left'] .room-cabinet-quick__popover,
.novincut-drawing-desk .room-cabinet-quick[data-side='left'] .room-cabinet-quick__error {
  left: 0;
}
.novincut-drawing-desk [data-quick-active='carcassHeight'] .room-cabinet-quick__popover {
  top: 46px;
}
.novincut-drawing-desk [data-quick-active='depth'] .room-cabinet-quick__popover {
  top: 92px;
}
.novincut-drawing-desk [data-quick-active='finish'] .room-cabinet-quick__popover {
  top: 138px;
}
.novincut-drawing-desk .room-cabinet-quick__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  min-height: 24px;
  margin-bottom: 4px;
}
.novincut-drawing-desk .room-cabinet-quick__label {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  color: var(--primary);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.novincut-drawing-desk .room-cabinet-quick__close {
  display: grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  color: var(--slate);
  background: transparent;
  cursor: pointer;
}
.novincut-drawing-desk .room-cabinet-quick__close:hover {
  color: var(--primary);
  background: var(--selected);
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__stepper {
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  border-color: #c8d7ec;
  background: #fbfcff;
  direction: ltr;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__stepper
  .field-control {
  gap: 3px;
  padding-inline-end: 5px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__stepper
  .field-unit {
  display: inline;
  flex: 0 0 auto;
  min-width: 14px;
  color: var(--slate);
  font-size: 9px;
  visibility: visible;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__stepper
  .field
  input {
  height: 30px;
  padding: 5px 6px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__stepper
  > button {
  flex-basis: 24px;
  height: 30px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__finish-button {
  box-sizing: border-box;
  gap: 5px;
  min-height: 36px;
  padding: 5px 6px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fbfcff;
  font-size: 10px;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__finish-button
  > span:not(.room-cabinet-editor__swatch) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  line-height: 1.25;
}
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__finish-button
  > img,
.novincut-drawing-desk
  .context-editor.room-cabinet-editor.room-cabinet-editor--quick
  .room-cabinet-editor__swatch {
  flex-basis: 20px;
  width: 20px;
  height: 20px;
}
.novincut-drawing-desk .room-cabinet-quick__hint {
  margin: 6px 0 0;
  color: var(--slate);
  font-size: 10px;
  line-height: 1.5;
}
.novincut-drawing-desk .room-cabinet-quick__popover .text-action {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  font-size: 10px;
}
.novincut-drawing-desk .room-cabinet-quick__popover .desk-edit-error {
  margin: 6px 0 0;
  font-size: 10px;
  line-height: 1.5;
}
.novincut-drawing-desk .room-cabinet-quick__error {
  position: absolute;
  top: 0;
  left: 88px;
  right: auto;
  box-sizing: border-box;
  width: 164px;
  max-height: var(--editor-max-height, 260px);
  overflow: auto;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  pointer-events: auto;
}
.novincut-drawing-desk .room-cabinet-quick__bubble:focus-visible,
.novincut-drawing-desk .room-cabinet-quick__more:focus-visible,
.novincut-drawing-desk .room-cabinet-quick__close:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: -3px;
}
@media (forced-colors: active) {
  .novincut-drawing-desk .room-cabinet-quick__bubble.is-active {
    outline: 2px solid Highlight;
  }
}
.uw-placement-status { margin: 8px 12px; color: #34465b; font-size: 12px; line-height: 1.5; }
.uw-placement-status summary { cursor: pointer; padding-block: 10px; min-height: 44px; }
.uw-placement-status details { border-block-start: 1px solid #e1e7ee; }
.uw-placement-status article { padding-block: 10px; border-block-end: 1px solid #e1e7ee; overflow-wrap: anywhere; }
.uw-placement-status article p { margin-block: 5px; }
.uw-placement-status article[data-rule-status="fail"] > strong { color: #9b443b; }
.uw-placement-status dl { margin-block: 5px; }
.uw-placement-status dl > div { display: flex; justify-content: space-between; gap: 12px; }
.uw-placement-status dd { margin: 0; }
.uw-placement-status small { display: block; }
.uw-placement-status a { color: inherit; text-decoration: underline; }
.uw-placement-status bdi { direction: ltr; unicode-bidi: isolate; }
.scene-assets-host {
  --ink: var(--ink-950, #07142f);
  --line: var(--ink-150, #dbe3ed);
  --slate: var(--ink-600, #536583);
  --blue: var(--blue-700, #2468ff);
  --blue-soft: var(--blue-100, #edf3ff);
  --danger: var(--red-700, #c43544);
  color: var(--ink);
  font:
    13px/1.5 var(--font-ui, Inter),
    Shabnam,
    system-ui,
    sans-serif;
}
.scene-assets-host .modal {
  width: min(860px, calc(100vw - 32px));
  max-height: min(900px, calc(100dvh - 32px));
}
.scene-assets-host .drawer__header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
}
.scene-assets-host .drawer__body {
  padding: 0;
  min-height: 0;
}
.scene-assets-host .drawer__footer {
  padding: 12px 16px;
  border-top: 1px solid var(--line);
}
.scene-assets-host :is(button, input, select) {
  font: inherit;
}
.scene-assets-host button {
  cursor: pointer;
}
.scene-assets-host button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.scene-assets-host :is(button, input, select):focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.scene-assets-host :is(h3, p) {
  margin: 0;
}
.scene-assets-picker {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr);
  direction: ltr;
  min-height: 0;
}
.scene-assets-groups {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 16px 8px;
  border-right: 1px solid var(--line);
  background: var(--paper, #fff);
}
.scene-assets-groups button {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 9px 8px;
  color: var(--ink);
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  text-align: start;
}
.scene-assets-groups button[aria-pressed='true'] {
  color: var(--blue);
  background: var(--blue-soft);
}
.scene-assets-groups button:hover {
  border-color: var(--line);
}
.scene-assets-groups small,
.scene-assets-tabs small {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--canvas, #f4f7fb);
  color: var(--slate);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.scene-assets-main {
  min-width: 0;
  padding: 0 16px 16px;
}
.scene-assets-host[dir='rtl'] :is(.scene-assets-main, .scene-assets-groups button) {
  direction: ltr;
}
.scene-assets-host[dir='rtl']
  :is(
    .scene-assets-groups button > span,
    .scene-assets-tabs button,
    .scene-assets-search input,
    .scene-asset-tile,
    .scene-assets-details > header > *,
    .scene-assets-detail-form,
    .scene-asset-actions button
  ) {
  direction: rtl;
}
.scene-assets-tabs {
  display: flex;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid var(--line);
}
.scene-assets-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 43px;
  padding: 10px 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--slate);
  background: transparent;
}
.scene-assets-tabs button[aria-selected='true'] {
  color: var(--blue);
  border-bottom-color: var(--blue);
}
.scene-assets-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin-top: 12px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--slate);
  background: var(--paper, #fff);
}
.scene-assets-search input {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  border: 0;
  padding: 5px 0;
  color: var(--ink);
  background: transparent;
}
.scene-assets-search input::-webkit-search-cancel-button {
  display: none;
}
.scene-assets-search .icon-button {
  width: 28px;
  height: 28px;
  min-width: 28px;
  padding: 4px;
  border: 0;
}
.scene-assets-search .icon-button svg {
  width: 15px;
  height: 15px;
}
.scene-assets-results {
  position: relative;
  height: 286px;
  margin-top: 8px;
}
.scene-assets-result-count {
  min-height: 20px;
  color: var(--slate);
  font-size: 11px;
}
.scene-assets-catalog {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  align-content: start;
  max-height: 258px;
  overflow: auto;
  padding: 2px 3px 3px;
}
.scene-assets-catalog .scene-asset-tile {
  position: relative;
  display: grid;
  grid-template-rows: 96px auto auto;
  align-content: start;
  gap: 4px;
  min-width: 0;
  padding: 5px 6px 7px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper, #fff);
  text-align: start;
}
.scene-assets-catalog .scene-asset-tile:hover {
  background: var(--canvas, #f4f7fb);
}
.scene-assets-catalog .scene-asset-tile[aria-pressed='true'] {
  border-color: var(--blue);
  box-shadow: inset 0 0 0 1px var(--blue);
}
.scene-assets-catalog strong {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.scene-asset-kind {
  color: var(--slate);
  font-size: 11px;
}
.scene-asset-thumbnail {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border-radius: 3px;
  background: var(--canvas, #f4f7fb);
}
.scene-asset-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.scene-asset-thumbnail-fallback {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 8px;
  color: var(--slate);
  font-size: 11px;
  text-align: center;
}
.scene-asset-selected-mark {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 2px;
  color: var(--paper, #fff);
  background: var(--blue);
  border-radius: 50%;
  box-sizing: content-box;
}
.scene-assets-empty {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 10px;
  min-height: 215px;
  padding: 20px;
  color: var(--slate);
  text-align: center;
}
.scene-assets-empty button {
  min-height: 34px;
  padding: 5px 10px;
  color: var(--blue);
  background: var(--paper, #fff);
  border: 1px solid var(--line);
  border-radius: 5px;
}
.scene-assets-details {
  min-height: 270px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}
.scene-assets-details > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.scene-assets-details h3 {
  min-width: 0;
  font-size: 15px;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.scene-assets-details > header > span {
  flex-shrink: 0;
  color: var(--slate);
  font-size: 11px;
}
.scene-assets-detail-layout {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 16px;
  direction: ltr;
}
.scene-assets-host[dir='rtl'] .scene-assets-detail-form {
  direction: rtl;
}
.scene-assets-selected-preview {
  min-width: 0;
}
.scene-assets-selected-preview .scene-asset-thumbnail {
  height: 128px;
}
.scene-asset-dimensions {
  display: grid;
  gap: 3px;
  margin-top: 8px !important;
  color: var(--slate);
  font-size: 11px;
}
.scene-asset-dimensions > span {
  display: block;
}
.scene-assets-detail-form {
  min-width: 0;
}
.scene-assets-detail-form form[hidden] {
  display: none;
}
.scene-assets-detail-form .desk-edit-error {
  margin-top: 10px;
}
.scene-assets-empty-detail {
  padding: 30px 10px;
  color: var(--slate);
}
.scene-asset-fields {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
  display: grid;
  gap: 10px;
}
.scene-asset-fields > label {
  display: grid;
  gap: 5px;
  font-size: 12px;
}
.scene-asset-required-hint {
  color: var(--slate);
  font-size: 11px;
  font-weight: 400;
}
.scene-asset-fields :is(input, select) {
  min-height: 35px;
  width: 100%;
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--paper, #fff);
  color: var(--ink, #07142f);
  font: inherit;
}
.scene-asset-fields .field-control {
  display: flex;
  align-items: center;
}
.scene-asset-fields .field-unit {
  font-size: 11px;
  padding-inline: 5px;
}
.scene-asset-fields .panel-note {
  font-size: 11px;
  color: var(--slate, #536583);
  margin: 0;
}
.scene-asset-fields .room-object-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  direction: ltr;
}
.scene-asset-fields .field {
  display: grid;
  gap: 5px;
}
.scene-asset-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.scene-asset-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 36px;
  padding: 7px 11px;
}
.scene-assets-host .scene-asset-actions {
  justify-content: space-between;
  width: 100%;
  direction: ltr;
}
.scene-assets-host .scene-asset-actions .button {
  min-height: 38px;
  border-radius: 5px;
  font-size: 12px;
}
.scene-assets-host .scene-asset-actions .button.primary {
  min-width: 220px;
}
.scene-asset-inspector form {
  padding: 12px 16px;
}
.scene-asset-inspector .scene-asset-actions {
  margin-block-start: 16px;
}
@media (max-width: 650px) {
  .scene-assets-host .modal {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
  }
  .scene-assets-picker {
    grid-template-columns: 1fr;
  }
  .scene-assets-groups {
    flex-direction: row;
    overflow-x: auto;
    padding: 8px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .scene-assets-groups button {
    flex-shrink: 0;
    grid-template-columns: 18px auto auto;
    padding: 7px;
  }
  .scene-assets-main {
    padding-inline: 12px;
  }
  .scene-assets-results {
    height: 246px;
  }
  .scene-assets-catalog {
    max-height: 218px;
  }
  .scene-assets-catalog .scene-asset-tile {
    grid-template-rows: 80px auto auto;
  }
  .scene-assets-detail-layout {
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 12px;
  }
  .scene-assets-selected-preview .scene-asset-thumbnail {
    height: 108px;
  }
  .scene-assets-details > header {
    align-items: start;
  }
  .scene-assets-details > header > span {
    max-width: 95px;
    text-align: end;
  }
  .scene-assets-host .scene-asset-actions .button.primary {
    min-width: 0;
    flex: 1;
  }
  .scene-asset-actions button {
    min-height: 44px;
  }
}
@media (max-width: 410px) {
  .scene-assets-detail-layout {
    grid-template-columns: 1fr;
  }
  .scene-assets-selected-preview {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .scene-assets-selected-preview .scene-asset-thumbnail {
    width: 92px;
    height: 88px;
    flex-shrink: 0;
  }
}
/* The opening library has its own workbench; Objects and AI retain their layout owners. */
.catalog-openings-host {
  --ink: var(--ink-950, #07142f);
  --line: var(--ink-150, #dbe3ed);
  --slate: var(--ink-600, #536583);
  --blue: var(--blue-700, #2468ff);
  --blue-soft: var(--blue-100, #edf3ff);
  --danger: var(--red-700, #c43544);
  color: var(--ink);
  font:
    13px/1.5 var(--font-ui, Inter),
    Shabnam,
    system-ui,
    sans-serif;
}
.catalog-openings-host .overlay--center > .modal {
  width: min(1100px, 100%);
  height: min(800px, calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  max-height: calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  padding: 0;
  overflow: hidden;
}
.catalog-openings-host .drawer__header {
  flex: 0 0 auto;
  min-height: 60px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--line);
}
.catalog-openings-host .drawer__header h2 {
  font-size: 19px;
  line-height: 1.3;
}
.catalog-openings-host .drawer__body {
  display: block;
  gap: 0;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
.catalog-openings-host .drawer__footer {
  flex: 0 0 auto;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  background: var(--paper, #fff);
}
.catalog-openings-host :is(button, input, select) {
  font: inherit;
}
.catalog-openings-host :is(h3, h4, p) {
  margin: 0;
}
.catalog-openings-host button {
  cursor: pointer;
}
.catalog-openings-host button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.catalog-openings-host :is(button, input, select):focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.catalog-opening-workbench {
  display: grid;
  grid-template-columns: 136px minmax(0, 1fr) 310px;
  height: 100%;
  min-height: 0;
  direction: ltr;
}
.catalog-opening-groups {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  overflow-y: auto;
  gap: 6px;
  padding: 16px 8px;
  border-right: 1px solid var(--line);
  background: var(--paper, #fff);
}
.catalog-opening-groups button {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 9px 6px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: var(--ink);
  background: transparent;
  text-align: start;
}
.catalog-opening-groups button[aria-pressed='true'] {
  color: var(--blue);
  background: var(--blue-soft);
}
.catalog-opening-groups button:hover {
  border-color: var(--line);
}
.catalog-opening-groups small {
  padding: 1px 4px;
  border-radius: 4px;
  color: var(--slate);
  background: var(--canvas, #f4f7fb);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.catalog-opening-library {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 16px 16px 12px;
}
.catalog-opening-library-header {
  margin-bottom: 12px;
}
.catalog-opening-library-header h3 {
  font-size: 15px;
  font-weight: 650;
}
.catalog-opening-library-header p {
  margin-top: 3px;
  color: var(--slate);
  font-size: 12px;
}
.catalog-opening-filters .search {
  min-width: 0;
  min-height: 38px;
  padding: 0 10px;
  border-color: var(--line);
  border-radius: 5px;
}
.catalog-opening-filters .search input {
  min-height: 36px;
}
.catalog-opening-filters .search > svg {
  width: 17px;
}
.catalog-opening-filters .search > .icon-button {
  width: 30px;
  height: 34px;
  margin-inline-end: -6px;
}
.catalog-opening-result-count {
  flex: 0 0 auto;
  min-height: 28px;
  padding-top: 7px;
  color: var(--slate);
  font-size: 12px;
}
.catalog-opening-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  align-content: start;
  min-height: 0;
  overflow: auto;
  scrollbar-gutter: stable;
  padding: 2px 4px 4px 2px;
}
.catalog-opening-cards > button {
  position: relative;
  display: grid;
  grid-template-rows: 110px auto auto;
  align-content: start;
  gap: 5px;
  min-width: 0;
  padding: 6px 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper, #fff);
  text-align: start;
}
.catalog-opening-cards > button:hover {
  background: var(--canvas, #f4f7fb);
}
.catalog-opening-cards > button[aria-pressed='true'] {
  border-color: var(--blue);
  box-shadow: inset 0 0 0 1px var(--blue);
}
.catalog-opening-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border-radius: 3px;
  background: var(--canvas, #f4f7fb);
}
.catalog-opening-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.catalog-opening-preview-fallback {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 10px;
  color: var(--slate);
  font-size: 12px;
  text-align: center;
}
.catalog-opening-cards strong {
  font-size: 13px;
  line-height: 1.35;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.catalog-opening-card-size {
  font-size: 11px;
  color: var(--slate);
  font-variant-numeric: tabular-nums;
}
.catalog-opening-selected-mark {
  position: absolute;
  top: 11px;
  right: 11px;
  padding: 2px;
  border-radius: 50%;
  color: var(--paper, #fff);
  background: var(--blue);
  box-sizing: content-box;
}
.catalog-opening-no-results {
  display: grid;
  grid-column: 1 / -1;
  justify-items: center;
  align-content: center;
  gap: 10px;
  min-height: 260px;
  padding: 24px;
  color: var(--slate);
  text-align: center;
}
.catalog-opening-no-results h4 {
  color: var(--ink);
  font-size: 15px;
}
.catalog-opening-no-results button {
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--paper, #fff);
  color: var(--blue);
}
.catalog-opening-no-results button:hover {
  border-color: var(--blue);
  background: var(--blue-soft);
}
.catalog-opening-placement {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  scrollbar-gutter: stable;
  padding: 16px;
  border-left: 1px solid var(--line);
}
.catalog-opening-selected-header {
  margin-bottom: 12px;
}
.catalog-opening-type-label {
  color: var(--slate);
  font-size: 12px;
}
.catalog-opening-placement h3 {
  font-size: 16px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.catalog-opening-preview--selected {
  height: 160px;
}
.catalog-opening-source-size {
  display: grid;
  gap: 3px;
  margin-block: 8px 16px !important;
  color: var(--slate);
  font-size: 11px;
}
.catalog-opening-placement .scene-asset-fields {
  gap: 12px;
}
.catalog-opening-placement .scene-asset-fields .room-object-grid {
  gap: 12px;
}
.catalog-opening-placement .scene-asset-fields :is(input, select) {
  min-height: 38px;
}
.catalog-opening-placement .scene-asset-fields :is(input, select)[aria-invalid='true'] {
  border-color: var(--danger);
}
.catalog-opening-wall-hint {
  margin-top: 12px !important;
  color: var(--slate);
  font-size: 12px;
}
.catalog-opening-notice {
  margin-top: 16px !important;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--slate);
}
.catalog-opening-placement .desk-edit-error {
  margin-top: 12px;
  color: var(--danger);
}
.catalog-opening-choose-model {
  display: grid;
  justify-items: start;
  align-content: start;
  gap: 12px;
  padding-block: 30px;
  color: var(--slate);
}
.catalog-opening-choose-model > svg {
  color: var(--blue);
}
.catalog-opening-choose-model h3 {
  color: var(--ink);
}
.catalog-opening-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  direction: ltr;
}
.catalog-opening-actions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 5px;
}
.catalog-openings-host .catalog-opening-actions .button.primary {
  min-width: 200px;
  background: var(--brand-900, #10254c);
  border-color: var(--brand-900, #10254c);
  color: var(--paper, #fff);
  box-shadow: none;
  backdrop-filter: none;
}
.catalog-openings-host .catalog-opening-actions .button.secondary {
  background: var(--paper, #fff);
  border-color: var(--line);
  color: var(--ink);
}
.catalog-openings-host .catalog-opening-actions .button.primary:hover:not(:disabled) {
  background: var(--brand-800, #213e70);
  border-color: var(--brand-800, #213e70);
  transform: none;
}
.catalog-openings-host .catalog-opening-actions .button.primary:active:not(:disabled) {
  background: var(--brand-950, #07142f);
  transform: none;
}
.catalog-openings-host .catalog-opening-actions .button:disabled {
  background: var(--ink-100, #e8edf5);
  border-color: var(--line);
  color: var(--slate);
  opacity: 1;
}
.catalog-opening-actions .secondary:hover:not(:disabled) {
  border-color: var(--blue);
  background: var(--blue-soft);
}
.catalog-opening-actions .primary:hover:not(:disabled) {
  filter: brightness(1.12);
}
.catalog-openings-host[dir='rtl']
  :is(
    .catalog-opening-groups button > span,
    .catalog-opening-library-header,
    .catalog-opening-filters,
    .catalog-opening-result-count,
    .catalog-opening-cards strong,
    .catalog-opening-no-results,
    .catalog-opening-placement,
    .catalog-opening-actions button
  ) {
  direction: rtl;
}
.catalog-openings-host[dir='rtl'] .catalog-opening-source-size > span[dir='ltr'] {
  direction: ltr;
}
.scene-asset-fields .catalog-opening-mirror {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
}
.scene-asset-fields .catalog-opening-mirror input {
  width: 18px;
  min-height: 18px;
}
@media (max-width: 1000px) {
  .catalog-opening-workbench {
    grid-template-columns: minmax(0, 1fr) 310px;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .catalog-opening-groups {
    grid-column: 1 / -1;
    flex-direction: row;
    overflow-x: auto;
    padding: 8px 12px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .catalog-opening-groups button {
    flex-shrink: 0;
    grid-template-columns: 18px auto auto;
    padding: 8px;
  }
  .catalog-opening-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 701px) and (max-height: 600px) {
  .catalog-opening-library {
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
  .catalog-opening-cards {
    flex: 0 0 220px;
    max-height: 220px;
  }
}
@media (max-width: 700px) {
  .catalog-openings-host .drawer__header {
    min-height: 54px;
    padding: 12px 16px;
  }
  .catalog-openings-host .drawer__body {
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
  .catalog-opening-workbench {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    height: auto;
  }
  .catalog-opening-library {
    padding: 14px 12px 12px;
  }
  .catalog-opening-cards {
    max-height: 330px;
  }
  .catalog-opening-cards > button {
    grid-template-rows: 100px auto auto;
  }
  .catalog-opening-placement {
    padding: 16px;
    border-left: 0;
    border-top: 1px solid var(--line);
    overflow: visible;
  }
  .catalog-opening-choose-model {
    padding-block: 12px;
  }
  .catalog-opening-actions {
    gap: 8px;
  }
  .catalog-opening-actions .button {
    min-height: 44px;
  }
  .catalog-openings-host .catalog-opening-actions .button.primary {
    min-width: 0;
    flex: 1;
  }
}
.uw-equipment-inspector fieldset{display:grid;gap:8px;min-width:0;border:0;padding:0;margin:0}.uw-equipment-inspector input,.uw-equipment-inspector select,.uw-equipment-inspector textarea{width:100%;min-width:0}.uw-equipment-datum,.uw-equipment-installation,.uw-equipment-service-links p{font-size:11px;line-height:1.55;color:#60758a}.uw-equipment-installation{padding:8px;background:#f3f5f7;border-radius:6px}.uw-equipment-service-links{border-top:1px solid #dce3e9!important;padding-block-start:10px!important}.uw-equipment-service-links legend{font-size:12px}.uw-equipment-service-links>div{display:grid;gap:5px}.uw-equipment-sources li{display:grid;gap:4px;font-size:10px;overflow-wrap:anywhere}.uw-equipment-sources code{white-space:normal;font-size:9px}.uw-equipment-inspector label{font-size:12px}.uw-equipment-actions{display:grid;gap:6px}.uw-equipment-inspector .p-button{min-height:44px}
.uw-equipment-installation .uw-room-dimensions{margin-block:8px;display:grid;gap:8px}.uw-equipment-installation .uw-room-dimensions>div{display:grid;gap:3px}.uw-equipment-installation dd{margin:0;overflow-wrap:anywhere}.uw-equipment-installation-citation{font-size:10px;overflow-wrap:anywhere}.uw-equipment-installation ul{padding-inline-start:18px;margin-block:6px}
.novincut-drawing-desk .room-objects-palette {
  width: min(440px, calc(100% - 32px));
  max-height: calc(100% - 96px);
  overflow: auto;
  inset-block-start: 62px;
  inset-inline-start: 20px;
  padding: 18px;
}
.novincut-drawing-desk .room-object-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-block: 12px 16px;
}
.novincut-drawing-desk .room-object-tabs button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 38px;
  padding: 6px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: #fff;
  color: var(--ink, #07142f);
  font: inherit;
  font-size: 12px;
}
.novincut-drawing-desk .room-object-tabs [aria-selected='true'] {
  background: #edf3ff;
  color: #153d8a;
  border-color: #2468ff;
}
.novincut-drawing-desk .room-object-fields {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.novincut-drawing-desk .room-object-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-block: 10px;
}
.novincut-drawing-desk .room-object-fields .field {
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  min-width: 0;
  margin-block: 8px;
}
.novincut-drawing-desk .room-object-fields .field > span:first-child {
  max-width: none;
}
.novincut-drawing-desk .room-object-fields .field-control {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}
.novincut-drawing-desk .room-object-fields .field-control input {
  flex: 1 1 0;
  min-width: 0;
  width: 0;
}
.novincut-drawing-desk .room-object-fields .field-unit {
  flex: 0 0 auto;
}
.novincut-drawing-desk .room-object-fields input,
.novincut-drawing-desk .room-object-fields select,
.novincut-drawing-desk .room-object-fields textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}
.novincut-drawing-desk .room-object-fields select,
.novincut-drawing-desk .room-object-fields textarea,
.novincut-drawing-desk .room-object-fields > .field > input,
.novincut-drawing-desk .room-object-fields details > .field > input {
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  padding: 8px;
  background: #fff;
  color: var(--ink, #07142f);
  font: inherit;
}
.novincut-drawing-desk .room-object-fields details {
  padding-block: 12px;
  border-top: 1px solid var(--line, #dbe3ed);
}
.novincut-drawing-desk .room-object-fields summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}
.novincut-drawing-desk .room-object-fields .room-object-notes {
  min-height: 96px;
  resize: none;
}
.novincut-drawing-desk .room-object-shape {
  font-size: 12px;
  color: #536583;
  margin-block: 0 10px;
}
.novincut-drawing-desk .room-object-list {
  display: grid;
  gap: 5px;
}
.novincut-drawing-desk .room-object-list button {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  padding: 10px;
  background: #fff;
  color: var(--ink, #07142f);
  text-align: start;
  font: inherit;
}
.novincut-drawing-desk .room-object-list small {
  color: #536583;
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk .room-object-add,
.novincut-drawing-desk .room-object-create-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-block-start: 14px;
}
.novincut-drawing-desk .room-objects-palette .primary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid #10254c;
  border-radius: 5px;
  background: #10254c;
  color: #fff;
  font: inherit;
  cursor: pointer;
}
.novincut-drawing-desk .room-objects-palette button:disabled {
  cursor: default;
  opacity: 0.5;
}
.novincut-drawing-desk .room-object-create-actions > button:not(.primary-action) {
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid #dbe3ed;
  border-radius: 5px;
  background: #fff;
  color: #07142f;
  font: inherit;
}
.novincut-drawing-desk .room-object-link {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-block: 8px;
  font-size: 12px;
}
.novincut-drawing-desk .room-object-link input {
  width: 18px;
  height: 18px;
}
.novincut-drawing-desk .room-object-inspector {
  width: 100%;
}
.novincut-drawing-desk .room-context-outline-notice {
  position: absolute;
  top: 64px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  max-width: calc(100% - 48px);
  padding: 6px 10px;
  border: 1px solid #dbe3ed;
  border-radius: 5px;
  background: #fff;
  color: #536583;
  font-size: 11px;
  text-align: center;
}
.novincut-drawing-desk .room-object-inspector .editor-footer {
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  .novincut-drawing-desk .room-objects-palette {
    inset-inline-start: 12px;
    width: calc(100% - 24px);
    max-height: calc(100% - 80px);
  }
}
/* Generated from the existing room styles. Run scripts/scope-room-styles.mjs. */
@font-face {
  font-family: Inter;
  src: url('/assets/fonts/inter.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: Shabnam;
  src: url('/assets/fonts/shabnam.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.novincut-drawing-desk {
  font-family: Inter, Shabnam, system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  --ink: #07142f;
  --blue: #2468ff;
  --slate: #536583;
  --paper: #fff;
  --canvas: #f5f7f7;
  --line: #dbe3ed;
  --danger: #b73838;
  --blue-soft: #edf3ff;
  --shadow: 0 8px 25px #122e5810, 0 2px 5px #122e5808;
  --thumb: #b9c5d4;
  --track: #f3f6fa;
  font-synthesis: none;
  font-weight: 400;
  font-size: 14px;
}
.novincut-drawing-desk * {
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: var(--thumb) var(--track);
}
.novincut-drawing-desk *::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.novincut-drawing-desk *::-webkit-scrollbar-track {
  background: var(--track);
}
.novincut-drawing-desk *::-webkit-scrollbar-thumb {
  background: var(--thumb);
  border-radius: 5px;
}
.novincut-drawing-desk *::-webkit-scrollbar-thumb:hover {
  background: #8394ad;
}
.novincut-drawing-desk {
  margin: 0;
  min-width: 360px;
  -webkit-font-smoothing: antialiased;
}
.novincut-drawing-desk button,
.novincut-drawing-desk input,
.novincut-drawing-desk select {
  font: inherit;
}
.novincut-drawing-desk button,
.novincut-drawing-desk a,
.novincut-drawing-desk input,
.novincut-drawing-desk select,
.novincut-drawing-desk summary {
  -webkit-tap-highlight-color: transparent;
}
.novincut-drawing-desk button {
  cursor: pointer;
  color: inherit;
}
.novincut-drawing-desk button:disabled {
  cursor: default;
  opacity: 0.38;
}
.novincut-drawing-desk button {
  border: 0;
  background: transparent;
}
.novincut-drawing-desk a {
  color: inherit;
  text-decoration: none;
}
.novincut-drawing-desk button,
.novincut-drawing-desk a,
.novincut-drawing-desk summary {
  touch-action: manipulation;
}
.novincut-drawing-desk button:focus-visible,
.novincut-drawing-desk a:focus-visible,
.novincut-drawing-desk summary:focus-visible,
.novincut-drawing-desk [role='button']:focus-visible,
.novincut-drawing-desk input:focus-visible,
.novincut-drawing-desk select:focus-visible {
  outline: 3px solid #2468ff66;
  outline-offset: 3px;
}
.novincut-drawing-desk button,
.novincut-drawing-desk input,
.novincut-drawing-desk select {
  transition:
    background 0.15s,
    border-color 0.15s,
    box-shadow 0.15s;
}
.novincut-drawing-desk input,
.novincut-drawing-desk select {
  min-width: 0;
  color: var(--ink);
}
.novincut-drawing-desk input[type='checkbox'] {
  accent-color: var(--blue);
  width: 17px;
  height: 17px;
  cursor: pointer;
  flex-shrink: 0;
}
.novincut-drawing-desk h1,
.novincut-drawing-desk h2,
.novincut-drawing-desk h3,
.novincut-drawing-desk p {
  margin: 0;
}
.novincut-drawing-desk h2 {
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: -0.4px;
  font-weight: 650;
}
.novincut-drawing-desk h3 {
  font-size: 14px;
  font-weight: 600;
}
.novincut-drawing-desk svg {
  flex-shrink: 0;
}
.novincut-drawing-desk hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 16px 0;
}
.novincut-drawing-desk {
  height: 100dvh;
  min-height: 680px;
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  grid-template-rows: 68px 72px minmax(0, 1fr);
  background: var(--paper);
  position: relative;
  isolation: isolate;
}
.novincut-drawing-desk .global-rail {
  grid-row: 1/4;
  grid-column: 1;
  border-right: 1px solid var(--line);
  background: linear-gradient(90deg, #f7f9fb, #fff);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 10px 20px;
  gap: 26px;
  z-index: 12;
}
.novincut-drawing-desk .brand-mark {
  height: 40px;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.novincut-drawing-desk .brand-mark img {
  max-width: 36px;
  max-height: 42px;
  object-fit: contain;
}
.novincut-drawing-desk .global-rail nav {
  display: flex;
  flex-direction: column;
  gap: 17px;
  align-items: center;
  width: 100%;
}
.novincut-drawing-desk .global-rail > .icon-button:last-child {
  margin-top: auto;
}
.novincut-drawing-desk .global-rail .icon-button {
  height: 46px;
  width: 52px;
  border-radius: 7px;
}
.novincut-drawing-desk .global-rail nav > .icon-button:first-child {
  background: #e8edf4;
  border: 1px solid #d3dce7;
  margin-bottom: 4px;
}
.novincut-drawing-desk .topbar {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 0 26px;
  gap: 24px;
  min-width: 0;
  background: var(--paper);
  z-index: 11;
}
.novincut-drawing-desk .brand-wordmark {
  width: 109px;
  height: 38px;
  object-fit: contain;
}
.novincut-drawing-desk .top-divider {
  height: 24px;
  width: 1px;
  background: var(--line);
}
.novincut-drawing-desk .project-title {
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.novincut-drawing-desk .prototype-tag {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--slate);
  border: 1px solid var(--line);
  padding: 4px 6px;
  border-radius: 4px;
}
.novincut-drawing-desk .top-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-left: auto;
}
.novincut-drawing-desk .icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 36px;
  border: 1px solid transparent;
  border-radius: 5px;
  flex-shrink: 0;
}
.novincut-drawing-desk .icon-button:hover:not(:disabled) {
  background: #f0f4fa;
}
.novincut-drawing-desk .icon-button.active {
  color: var(--blue);
  background: var(--blue-soft);
  border-color: #c8d8ff;
}
.novincut-drawing-desk .save-button {
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0 13px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 12px 0 4px;
  white-space: nowrap;
}
.novincut-drawing-desk .save-button:hover {
  border-color: #9db5dd;
  background: #f7faff;
}
.novincut-drawing-desk .unsaved-dot,
.novincut-drawing-desk .saved-dot {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c99437;
}
.novincut-drawing-desk .saved-dot {
  background: #5b9972;
}
.novincut-drawing-desk .language-button {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-left: 1px solid var(--line);
}
.novincut-drawing-desk .avatar {
  height: 35px;
  width: 35px;
  border: 1px solid #d0ddf7;
  border-radius: 50%;
  background: #ecf2ff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  margin-left: 10px;
}
.novincut-drawing-desk .project-nav {
  grid-column: 2;
  grid-row: 2;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 24px;
  white-space: nowrap;
  z-index: 10;
  overflow-x: auto;
  scrollbar-width: thin;
  background: #fff;
}
.novincut-drawing-desk .workspace-tabs,
.novincut-drawing-desk .workflow-tabs {
  display: flex;
  align-items: center;
  gap: 9px;
}
.novincut-drawing-desk .workspace-tabs button,
.novincut-drawing-desk .workflow-tabs button {
  height: 44px;
  padding: 0 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: 13px;
}
.novincut-drawing-desk .workspace-tabs button:hover,
.novincut-drawing-desk .workflow-tabs button:hover {
  background: #f5f8fd;
}
.novincut-drawing-desk .workspace-tabs button.active {
  background: var(--blue-soft);
  color: var(--blue);
}
.novincut-drawing-desk .workflow-tabs button.active {
  background: var(--blue-soft);
  color: var(--blue);
  border-color: #bfd1ff;
}
.novincut-drawing-desk .workflow-tabs {
  gap: 13px;
}
.novincut-drawing-desk .workflow-tabs button {
  padding: 0 17px;
}
.novincut-drawing-desk .nav-divider {
  height: 34px;
  width: 1px;
  background: var(--line);
  flex-shrink: 0;
}
.novincut-drawing-desk .small-count {
  font-size: 10px;
  min-width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff1d6;
  color: #906027;
  font-weight: 600;
}
.novincut-drawing-desk .workspace {
  grid-column: 2;
  grid-row: 3;
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: #fff;
}
.novincut-drawing-desk .scene {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.novincut-drawing-desk .room-editing-locked .scene--plan,
.novincut-drawing-desk .room-editing-locked .scene--elevation {
  --room-grid-line: #dfe7f0;
  --room-paper: #f5f8fc;
  background: #f5f8fc;
}
.novincut-drawing-desk .editor-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.novincut-drawing-desk .context-editor form > .editor-fieldset {
  display: inherit;
  flex-wrap: inherit;
  align-items: inherit;
  gap: inherit;
  width: 100%;
}
.novincut-drawing-desk .editor-fieldset:disabled input,
.novincut-drawing-desk .editor-fieldset:disabled select {
  color: var(--slate);
  background: #f3f6fa;
  cursor: default;
}
.novincut-drawing-desk .editor-readonly-note {
  margin: 0 0 14px;
  color: var(--slate);
  font-size: 12px;
  line-height: 1.6;
}
.novincut-drawing-desk .plan-svg {
  width: 100%;
  height: 100%;
  display: block;
  touch-action: none;
  user-select: none;
}
.novincut-drawing-desk .view-row {
  position: absolute;
  top: 16px;
  left: 20px;
  right: 100px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  z-index: 4;
  pointer-events: none;
}
.novincut-drawing-desk .view-row > * {
  pointer-events: auto;
}
.novincut-drawing-desk .view-tabs {
  display: flex;
  align-items: center;
  padding: 4px;
  gap: 4px;
  border: 1px solid #edf0f5;
  border-radius: 6px;
  background: #ffffffed;
  backdrop-filter: blur(5px);
}
.novincut-drawing-desk .view-tabs button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 38px;
  padding: 0 15px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 13px;
}
.novincut-drawing-desk .view-tabs button.active {
  color: var(--blue);
  background: var(--blue-soft);
  border-color: #c5d5fb;
}
.novincut-drawing-desk .view-tabs button:hover {
  background: #f2f6ff;
}
@media (max-width: 1150px) {
  .novincut-drawing-desk .view-row--elevation {
    align-items: flex-start;
    flex-direction: column;
  }
}
.novincut-drawing-desk .room-wall-visibility {
  position: relative;
  display: grid;
  justify-items: end;
}
.novincut-drawing-desk .cutaway-status {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  width: max-content;
  max-width: min(260px, calc(100vw - 110px));
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--paper);
  color: var(--slate);
  font-size: 11px;
  line-height: 1.35;
  text-align: start;
  overflow-wrap: anywhere;
  box-shadow: 0 2px 5px #122e5807;
  opacity: 0;
  pointer-events: none;
}
.novincut-drawing-desk .room-wall-visibility:hover .cutaway-status,
.novincut-drawing-desk .room-wall-visibility:focus-within .cutaway-status {
  opacity: 1;
}
.novincut-drawing-desk .wall-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.novincut-drawing-desk .wall-picker select {
  padding: 7px 10px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
}
.novincut-drawing-desk .scene-loading {
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--slate);
}
.novincut-drawing-desk .context-editor {
  position: absolute;
  z-index: 5;
  top: 28%;
  left: 57%;
  width: 320px;
  max-height: calc(72% - 100px);
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 11px;
  box-shadow: var(--shadow);
  padding: 20px;
  scrollbar-gutter: stable;
}
.novincut-drawing-desk .context-editor::before {
  content: '';
  position: absolute;
  left: -13px;
  top: 25px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transform: rotate(45deg);
}
.novincut-drawing-desk .editor-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 15px;
  position: relative;
}
.novincut-drawing-desk .editor-header h2 {
  display: inline;
}
.novincut-drawing-desk .editor-header > .editor-actions {
  display: flex;
  gap: 0;
  flex-shrink: 0;
  margin: -7px -7px 0 0;
}
.novincut-drawing-desk .editor-actions .icon-button {
  width: 29px;
  height: 29px;
}
.novincut-drawing-desk .editor-actions .icon-button svg {
  width: 16px;
  height: 16px;
}
.novincut-drawing-desk .editor-header .subtle {
  display: block;
  margin-top: 4px;
}
.novincut-drawing-desk .reference-line {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 10px;
  color: var(--slate);
  margin: 6px 0 23px;
  direction: ltr;
}
.novincut-drawing-desk .reference-a {
  font-weight: 700;
  color: var(--blue);
  font-size: 12px;
}
.novincut-drawing-desk .reference-track {
  height: 1px;
  max-width: 60px;
  flex: 1;
  background: #8294ac;
  position: relative;
}
.novincut-drawing-desk .reference-track:before,
.novincut-drawing-desk .reference-track:after {
  position: absolute;
  content: '';
  top: -2px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #8192a8;
}
.novincut-drawing-desk .reference-track:after {
  right: 0;
}
.novincut-drawing-desk .reference-track i {
  position: absolute;
  left: 25%;
  top: -3px;
  width: 17px;
  height: 6px;
  border: 1px solid var(--blue);
  background: #d8e5ff;
}
.novincut-drawing-desk .field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
  margin: 13px 0;
  font-size: 12px;
  line-height: 1.5;
}
.novincut-drawing-desk .field > span:first-child {
  max-width: 145px;
}
.novincut-drawing-desk .field-control {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  direction: ltr;
}
.novincut-drawing-desk .field input {
  width: 88px;
  height: 35px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  background: #fff;
  padding: 7px 10px;
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  text-align: left;
}
.novincut-drawing-desk .field input:hover {
  border-color: #a6bddc;
}
.novincut-drawing-desk .field input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px #2468ff0c;
  outline: none;
}
.novincut-drawing-desk .field-unit {
  color: var(--slate);
  font-size: 11px;
  min-width: 19px;
}
.novincut-drawing-desk .field input[aria-invalid='true'] {
  border-color: var(--danger);
}
.novincut-drawing-desk .select-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
  margin: 16px 0;
}
.novincut-drawing-desk .select-field select {
  width: 100%;
  height: 36px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  padding: 0 8px;
  background: #fff;
  font-size: 12px;
}
.novincut-drawing-desk .extra-settings {
  border-top: 1px solid #e7edf5;
  margin-top: 19px;
  padding-top: 14px;
}
.novincut-drawing-desk .extra-settings summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  font-size: 11px;
  color: var(--slate);
}
.novincut-drawing-desk .extra-settings summary::-webkit-details-marker {
  display: none;
}
.novincut-drawing-desk .extra-settings[open] summary {
  margin-bottom: 10px;
}
.novincut-drawing-desk .editor-hint {
  font-size: 11px;
  line-height: 1.7;
  color: var(--slate);
  margin-top: 18px;
}
.novincut-drawing-desk .editor-footer {
  display: flex;
  gap: 9px;
  justify-content: flex-end;
  border-top: 1px solid #e5ebf3;
  margin-top: 19px;
  padding-top: 16px;
}
.novincut-drawing-desk .editor-footer > .icon-button {
  margin-right: auto;
  width: 30px;
  color: #a75757;
}
.novincut-drawing-desk .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 15px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid transparent;
  white-space: nowrap;
}
.novincut-drawing-desk .button.primary {
  background: #10254c;
  color: #fff;
  border-color: #10254c;
}
.novincut-drawing-desk .button.primary:hover {
  background: #213e70;
}
.novincut-drawing-desk .button.secondary {
  background: #fff;
  border-color: #d0dbea;
}
.novincut-drawing-desk .button.secondary:hover {
  background: #f5f8fd;
  border-color: #a8bddc;
}
.novincut-drawing-desk .full-width {
  width: 100%;
}
.novincut-drawing-desk .inline-error {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  background: #fff2f1;
  color: var(--danger);
  padding: 10px;
  font-size: 11px;
  border-radius: 4px;
  line-height: 1.6;
  margin-top: 12px;
}
.novincut-drawing-desk .inline-error svg {
  margin-top: 2px;
}
.novincut-drawing-desk .toggle-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 0;
  font-size: 12px;
  line-height: 1.5;
}
.novincut-drawing-desk .toggle-row > svg {
  margin-left: auto;
  color: var(--slate);
}
.novincut-drawing-desk .edit-explanation {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  line-height: 1.7;
  color: var(--slate);
}
.novincut-drawing-desk .edit-explanation strong {
  color: var(--ink);
  font-size: 12px;
  font-weight: 500;
}
.novincut-drawing-desk .tiny-caption {
  display: block;
  font-size: 10px;
  line-height: 1.7;
  color: var(--slate);
}
.novincut-drawing-desk .preview-value {
  color: var(--blue);
  font-weight: 500;
  padding: 7px 9px;
  background: var(--blue-soft);
  border-radius: 4px;
}
.novincut-drawing-desk .finish-label {
  font-size: 12px;
  margin-top: 19px;
  margin-bottom: 10px;
}
.novincut-drawing-desk .finish-options {
  display: flex;
  gap: 6px;
}
.novincut-drawing-desk .finish-choice {
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 7px 6px;
  font-size: 10px;
  flex: 1;
}
.novincut-drawing-desk .finish-choice:hover,
.novincut-drawing-desk .finish-choice.active {
  border-color: #9bbaff;
  background: #f3f7ff;
}
.novincut-drawing-desk .finish-swatch {
  height: 18px;
  width: 18px;
  border-radius: 3px;
  display: inline-block;
  border: 1px solid #c8cfda;
  flex-shrink: 0;
}
.novincut-drawing-desk .finish-swatch.ivory {
  background: #ecebe4;
}
.novincut-drawing-desk .finish-swatch.oak {
  background: #d0b790 url('/assets/oak.png') center/cover;
}
.novincut-drawing-desk .finish-swatch.charcoal {
  background: #4a515d;
}
.novincut-drawing-desk .kind-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  background: var(--kind);
  border-radius: 50%;
  margin-right: 7px;
}
.novincut-drawing-desk .floating-panel {
  position: absolute;
  z-index: 7;
  width: 270px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 9px;
  padding: 19px;
  max-height: calc(100% - 135px);
  overflow-y: auto;
}
.novincut-drawing-desk .floating-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}
.novincut-drawing-desk .floating-panel > header h2 {
  font-size: 15px;
}
.novincut-drawing-desk .floating-panel > header .icon-button {
  margin: -5px -6px -5px 0;
  height: 28px;
  width: 28px;
}
.novincut-drawing-desk .floating-panel > header .icon-button svg {
  width: 16px;
  height: 16px;
}
.novincut-drawing-desk .subtle {
  font-size: 12px;
  line-height: 1.7;
  color: var(--slate);
}
.novincut-drawing-desk .layers-panel {
  top: 85px;
  right: 83px;
  width: 245px;
}
.novincut-drawing-desk .panel-note {
  font-size: 10px;
  line-height: 1.7;
  color: var(--slate);
  padding-top: 13px;
  margin-top: 13px;
  border-top: 1px solid var(--line);
}
.novincut-drawing-desk .services-panel {
  top: 80px;
  right: 83px;
  width: 278px;
}
.novincut-drawing-desk .service-palette {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
}
.novincut-drawing-desk .service-palette button {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 12px 2px;
  text-align: start;
  font-size: 12px;
  border-bottom: 1px solid #edf1f6;
}
.novincut-drawing-desk .service-palette button:hover {
  background: #f8faff;
}
.novincut-drawing-desk .service-palette .service-symbol {
  display: grid;
  place-items: center;
  height: 34px;
  width: 34px;
  border: 1px solid color-mix(in srgb, var(--kind), white 75%);
  background: color-mix(in srgb, var(--kind), white 95%);
  border-radius: 8px;
  color: var(--kind);
}
.novincut-drawing-desk .service-palette .service-option > span:not(.service-symbol) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  gap: 3px;
  color: var(--ink);
  line-height: 1.45;
}
.novincut-drawing-desk .service-palette .service-option small {
  display: block;
  color: var(--slate);
  font-size: 10px;
  line-height: 1.45;
}
.novincut-drawing-desk .service-palette button > svg:last-child {
  justify-self: end;
  color: var(--slate);
}
.novincut-drawing-desk .room-panel {
  top: 80px;
  right: 83px;
  width: 285px;
}
.novincut-drawing-desk .room-templates {
  display: flex;
  flex-direction: column;
  margin-top: 22px;
  gap: 8px;
}
.novincut-drawing-desk .room-templates > button {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #edf1f6;
  font-size: 12px;
}
.novincut-drawing-desk .room-templates > button:hover {
  color: var(--blue);
}
.novincut-drawing-desk .start-panel {
  top: 84px;
  left: 21px;
  width: 300px;
}
.novincut-drawing-desk .menu-action {
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  padding: 13px 8px;
  border-radius: 5px;
  font-size: 12px;
  text-align: left;
}
.novincut-drawing-desk .menu-action > svg:last-child:not(:first-child) {
  margin-left: auto;
}
.novincut-drawing-desk .menu-action:hover {
  background: #f2f6ff;
  color: var(--blue);
}
.novincut-drawing-desk .scope-panel {
  left: 20px;
  top: 82px;
  width: 330px;
}
.novincut-drawing-desk .scope-panel p {
  font-size: 12px;
  line-height: 1.8;
}
.novincut-drawing-desk .scope-panel h3 {
  margin-top: 20px;
  margin-bottom: 7px;
}
.novincut-drawing-desk .text-action {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--blue);
  padding: 9px 0;
  font-size: 11px;
  text-align: left;
}
.novincut-drawing-desk .text-action:hover {
  text-decoration: underline;
}
.novincut-drawing-desk .muted {
  color: var(--slate);
}
.novincut-drawing-desk .check-panel {
  top: 98px;
  right: 95px;
  width: 355px;
}
.novincut-drawing-desk .checks-clear {
  display: flex;
  align-items: center;
  flex-direction: column;
  text-align: center;
  gap: 16px;
  padding: 35px 4px 25px;
}
.novincut-drawing-desk .checks-clear > svg {
  color: #3f886c;
}
.novincut-drawing-desk .checks-clear p {
  font-size: 12px;
  color: var(--slate);
  line-height: 1.8;
}
.novincut-drawing-desk .check-limit {
  font-size: 10px;
  line-height: 1.7;
  color: var(--slate);
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.novincut-drawing-desk .issue-list > button {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 11px;
  text-align: left;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .issue-list > button > svg:first-child {
  color: #b48134;
  margin-top: 2px;
}
.novincut-drawing-desk .issue-list > button > svg:last-child {
  margin-left: auto;
  margin-top: 3px;
}
.novincut-drawing-desk .issue-list > button > span {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.novincut-drawing-desk .issue-list strong {
  font-size: 12px;
  font-weight: 600;
}
.novincut-drawing-desk .issue-list span span {
  font-size: 11px;
  line-height: 1.6;
  color: var(--slate);
}
.novincut-drawing-desk .issue-list > button:hover strong {
  color: var(--blue);
}
.novincut-drawing-desk .draw-panel {
  right: 90px;
  top: 90px;
  width: 340px;
}
.novincut-drawing-desk .drawing-guide-controls {
  padding: 11px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .wall-corner-actions {
  display: flex;
  gap: 7px;
  margin: 10px 0 13px;
}
.novincut-drawing-desk .wall-corner-actions .button {
  flex: 1;
  padding: 7px 9px;
  font-size: 11px;
}
.novincut-drawing-desk .corner-editor {
  top: 15%;
  max-height: calc(85% - 100px);
}
.novincut-drawing-desk .corner-editor .drawing-guide-controls,
.novincut-drawing-desk .corner-editor .select-field,
.novincut-drawing-desk .corner-editor .editor-hint,
.novincut-drawing-desk .corner-editor .reference-line,
.novincut-drawing-desk .corner-editor .edit-explanation,
.novincut-drawing-desk .corner-editor .inline-error,
.novincut-drawing-desk .corner-editor .corner-length-lock,
.novincut-drawing-desk .corner-editor .editor-footer {
  width: 100%;
}
.novincut-drawing-desk .corner-editor .corner-length-lock {
  margin: 12px 0;
}
.novincut-drawing-desk .corner-editor .drawing-guide-settings {
  grid-template-columns: minmax(0, 1fr);
}
.novincut-drawing-desk .corner-handle.is-selected {
  fill: #edf3ff;
  stroke: var(--blue);
  stroke-width: 2;
  opacity: 1;
}
.novincut-drawing-desk .drawing-guide-settings {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 10px;
}
.novincut-drawing-desk .drawing-guide-settings .select-field {
  min-width: 0;
  margin: 10px 0 0;
  font-size: 11px;
  gap: 6px;
}
.novincut-drawing-desk .drawing-guide-settings select {
  min-width: 0;
  font-size: 11px;
}
.novincut-drawing-desk .drawing-check {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  line-height: 1.5;
  cursor: pointer;
}
.novincut-drawing-desk .drawing-check input,
.novincut-drawing-desk .drawing-snap-options input {
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--blue);
}
.novincut-drawing-desk .drawing-snap-master {
  font-weight: 600;
}
.novincut-drawing-desk .drawing-guide-note {
  margin: 7px 0;
  font-size: 10px;
  line-height: 1.6;
  color: var(--slate);
}
.novincut-drawing-desk .drawing-input-error {
  margin: 8px 0;
  color: var(--danger);
  font-size: 11px;
  line-height: 1.5;
}
.novincut-drawing-desk .drawing-snap-details {
  margin-top: 10px;
  font-size: 11px;
}
.novincut-drawing-desk .drawing-snap-details summary {
  cursor: pointer;
  width: fit-content;
  color: #153d8a;
}
.novincut-drawing-desk .drawing-snap-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 8px;
  margin-top: 12px;
}
.novincut-drawing-desk .drawing-snap-options label {
  display: flex;
  align-items: center;
  gap: 6px;
  line-height: 1.5;
  cursor: pointer;
}
.novincut-drawing-desk .drawing-entry-method {
  margin: 13px 0;
  gap: 6px;
}
.novincut-drawing-desk .drawing-length-lock {
  margin: -4px 0 11px;
}
.novincut-drawing-desk .draw-numeric-form > .button {
  width: 100%;
  justify-content: center;
}
.novincut-drawing-desk .drawing-inputs .field {
  font-size: 11px;
}
.novincut-drawing-desk .draw-actions {
  display: flex;
  gap: 8px;
  margin: 12px 0;
}
.novincut-drawing-desk .draw-actions .button {
  flex: 1;
}
.novincut-drawing-desk .panels-panel {
  right: 90px;
  top: 100px;
  width: 340px;
}
.novincut-drawing-desk .cabinet-review-row {
  display: flex;
  gap: 13px;
  align-items: center;
  width: 100%;
  text-align: left;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .cabinet-review-row > span:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
}
.novincut-drawing-desk .cabinet-review-row > span:nth-child(2) > span {
  font-size: 11px;
  color: var(--slate);
}
.novincut-drawing-desk .cabinet-review-row > svg {
  margin-left: auto;
}
.novincut-drawing-desk .room-summary {
  position: absolute;
  right: 28px;
  bottom: 135px;
  width: 144px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 9px 10px;
  background: #ffffffd9;
  border: 1px solid var(--line);
  border-radius: 9px;
  pointer-events: none;
  font-size: 11px;
  color: var(--slate);
}
.novincut-drawing-desk .room-summary > div {
  display: grid;
  gap: 2px;
}
.novincut-drawing-desk .room-summary > div + div {
  padding-top: 7px;
  border-top: 1px solid var(--line);
}
.novincut-drawing-desk .room-summary strong {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk .room-summary .text-action {
  pointer-events: auto;
}
.novincut-drawing-desk .bottom-toolbar {
  position: absolute;
  z-index: 6;
  bottom: 20px;
  left: 20px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffffef;
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  padding: 5px;
  gap: 4px;
  box-shadow: 0 2px 8px #1f355804;
}
.novincut-drawing-desk .workspace--room-actions > .bottom-toolbar {
  max-width: calc(100% - 40px);
  overflow-x: auto;
  justify-content: flex-start;
}
.novincut-drawing-desk .workspace--room-actions > .bottom-toolbar > .tool-button {
  flex-shrink: 0;
}
.novincut-drawing-desk .tool-button {
  height: 58px;
  min-width: 57px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 4px 9px;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: 10px;
}
.novincut-drawing-desk .tool-button:hover {
  background: #f1f5fb;
}
.novincut-drawing-desk .tool-button.active {
  background: #eaf1ff;
  color: var(--blue);
}
.novincut-drawing-desk .toolbar-divider {
  height: 35px;
  width: 1px;
  background: var(--line);
  margin: 0 3px;
}
.novincut-drawing-desk .canvas-hint {
  position: absolute;
  z-index: 3;
  left: 490px;
  right: 225px;
  bottom: 43px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: var(--slate);
  font-size: 10px;
  pointer-events: none;
  white-space: normal;
  text-align: center;
  line-height: 1.6;
}
.novincut-drawing-desk .hint-dot {
  width: 13px;
  height: 13px;
  border: 1px solid #8a9bb4;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}
.novincut-drawing-desk .hint-dot:after {
  content: 'i';
  display: block;
  text-align: center;
  font-size: 9px;
  line-height: 12px;
  font-style: normal;
}
.novincut-drawing-desk .placement-hint {
  color: var(--blue);
  font-size: 11px;
}
.novincut-drawing-desk .zoom-controls {
  position: absolute;
  z-index: 6;
  right: 20px;
  bottom: 29px;
  display: flex;
  align-items: center;
  gap: 1px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 3px;
  font-size: 11px;
}
.novincut-drawing-desk .zoom-controls > .icon-button {
  width: 27px;
  height: 31px;
}
.novincut-drawing-desk .zoom-controls > .icon-button svg {
  width: 16px;
  height: 16px;
}
.novincut-drawing-desk .zoom-controls > span {
  padding: 0 5px;
  min-width: 40px;
  text-align: center;
}
.novincut-drawing-desk .zoom-controls > button:last-child {
  height: 31px;
  display: flex;
  align-items: center;
  gap: 7px;
  border-left: 1px solid var(--line);
  padding: 0 9px;
  margin-left: 3px;
}
.novincut-drawing-desk .zoom-controls > button:last-child:hover {
  background: #f2f6ff;
}
.novincut-drawing-desk .plan-svg .dimension {
  fill: none;
  stroke: #607799;
  stroke-width: 1;
  pointer-events: none;
}
.novincut-drawing-desk .plan-svg .dimension[role='button'] {
  pointer-events: auto;
  cursor: pointer;
}
.novincut-drawing-desk .plan-svg .dimension[role='button']:hover {
  stroke: var(--blue);
}
.novincut-drawing-desk .plan-svg .dimension text {
  fill: #233b5c;
  stroke: none;
  font-size: 13px;
  font-family: Inter, Shabnam, sans-serif;
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk .plan-svg .dim-paper {
  fill: #fff;
  fill-opacity: 0.95;
  stroke: none;
}
.novincut-drawing-desk .plan-svg .dim-witness {
  stroke: #a7b7cb;
  stroke-width: 0.65;
}
.novincut-drawing-desk .plan-svg .dimension.is-selected {
  stroke: var(--blue);
}
.novincut-drawing-desk .plan-svg .dimension.is-selected text {
  fill: var(--blue);
}
.novincut-drawing-desk .wall-letter {
  font-size: 11px;
  fill: #5a7191;
  font-weight: 600;
}
.novincut-drawing-desk .wall-hit {
  cursor: pointer;
}
.novincut-drawing-desk .tool-door .wall-hit,
.novincut-drawing-desk .tool-window .wall-hit,
.novincut-drawing-desk .tool-cabinet .wall-hit {
  cursor: crosshair;
}
.novincut-drawing-desk .plan-object {
  cursor: grab;
  touch-action: none;
}
.novincut-drawing-desk .workspace[data-cabinet-editable='false'] [data-editor-target^='cabinet:'],
.novincut-drawing-desk
  .workspace[data-cabinet-editable='false']
  [data-editor-target^='cabinet:']
  * {
  cursor: pointer;
}
.novincut-drawing-desk .plan-object:active,
.novincut-drawing-desk .plan-service:active {
  cursor: grabbing;
}
.novincut-drawing-desk .object-code {
  font-size: 11px;
  fill: #15325c;
  pointer-events: none;
  font-weight: 500;
}
.novincut-drawing-desk .selection-handle {
  fill: #fff;
  stroke: var(--blue);
  stroke-width: 2;
}
.novincut-drawing-desk .plan-service {
  cursor: grab;
  touch-action: none;
}
.novincut-drawing-desk .service-caption {
  font-size: 10px;
  fill: #33597c;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 4px;
}
.novincut-drawing-desk .corner-handle {
  fill: #fff;
  stroke: #7094c6;
  stroke-width: 1;
  cursor: move;
  opacity: 0.55;
}
.novincut-drawing-desk .corner-handle:hover {
  opacity: 1;
  fill: #e6efff;
}
.novincut-drawing-desk .fixed-corner {
  fill: #bad0ff;
  stroke: var(--blue);
  stroke-width: 1.7;
  cursor: move;
}
.novincut-drawing-desk .plan-svg[data-room-editable='false'] :is(.corner-handle, .fixed-corner),
.novincut-drawing-desk
  .plan-svg[data-room-editable='false']
  .plan-object:has([data-editor-target^='opening:']),
.novincut-drawing-desk .plan-svg[data-room-services-editable='false'] .plan-service {
  cursor: pointer;
}
.novincut-drawing-desk .datum-label {
  font-size: 10px;
  fill: #607895;
  pointer-events: none;
}
.novincut-drawing-desk .tool-draw {
  cursor: crosshair;
}
.novincut-drawing-desk .drawing-instruction {
  font-size: 17px;
  fill: #8495ae;
  font-weight: 400;
}
.novincut-drawing-desk .tool-pan {
  cursor: grab;
}
.novincut-drawing-desk .toast {
  position: fixed;
  z-index: 40;
  left: 50%;
  bottom: 105px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 14px 17px;
  background: #10254c;
  color: #fff;
  border-radius: 7px;
  box-shadow: 0 10px 35px #07142f25;
  max-width: min(620px, calc(100vw - 30px));
  font-size: 12px;
  line-height: 1.6;
}
.novincut-drawing-desk .toast > svg {
  color: #afc7fa;
}
.novincut-drawing-desk .toast > button {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  padding: 0;
  margin-left: 8px;
  color: #fff;
  flex-shrink: 0;
}
.novincut-drawing-desk .toast > button:hover {
  background: #ffffff22;
}
.novincut-drawing-desk .modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: #07142f40;
  backdrop-filter: blur(3px);
}
.novincut-drawing-desk .confirmation-dialog {
  background: #fff;
  border: 1px solid var(--line);
  width: 420px;
  max-width: 100%;
  border-radius: 12px;
  padding: 28px;
  box-shadow: 0 20px 70px #07142f30;
  outline: none;
}
.novincut-drawing-desk .confirmation-dialog h2 {
  font-size: 19px;
}
.novincut-drawing-desk .confirmation-dialog p {
  font-size: 13px;
  line-height: 1.8;
  color: var(--slate);
  margin: 15px 0 24px;
}
.novincut-drawing-desk .confirmation-dialog footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.novincut-drawing-desk .locale-fa {
  font-family: Shabnam, Inter, sans-serif;
}
.novincut-drawing-desk .locale-fa .context-editor,
.novincut-drawing-desk .locale-fa .floating-panel {
  direction: rtl;
}
.novincut-drawing-desk .locale-fa .field-control,
.novincut-drawing-desk .locale-fa .reference-line {
  direction: ltr;
}
.novincut-drawing-desk .locale-fa .field > span:first-child {
  text-align: right;
}
.novincut-drawing-desk .locale-fa .editor-header {
  direction: rtl;
}
.novincut-drawing-desk .locale-fa .editor-footer {
  direction: ltr;
}
.novincut-drawing-desk .locale-fa .topbar,
.novincut-drawing-desk .locale-fa .project-nav,
.novincut-drawing-desk .locale-fa .view-tabs,
.novincut-drawing-desk .locale-fa .bottom-toolbar,
.novincut-drawing-desk .locale-fa .plan-svg {
  direction: ltr;
}
.novincut-drawing-desk .locale-fa .button,
.novincut-drawing-desk .locale-fa .subtle {
  line-height: 1.8;
}
@media (min-width: 1700px) {
  .novincut-drawing-desk .context-editor {
    left: 59%;
    width: 340px;
    top: 26%;
    padding: 23px;
  }
  .novincut-drawing-desk .field {
    font-size: 13px;
    margin: 16px 0;
  }
  .novincut-drawing-desk .field input {
    height: 39px;
    width: 97px;
  }
  .novincut-drawing-desk .canvas-hint {
    font-size: 12px;
  }
  .novincut-drawing-desk .project-nav {
    gap: 40px;
  }
  .novincut-drawing-desk .tool-button {
    min-width: 66px;
    font-size: 11px;
  }
  .novincut-drawing-desk .bottom-toolbar {
    left: 26px;
    bottom: 24px;
  }
  .novincut-drawing-desk .view-row {
    left: 26px;
    top: 21px;
  }
}
@media (max-width: 1150px) {
  .novincut-drawing-desk .topbar {
    gap: 15px;
    padding: 0 19px;
  }
  .novincut-drawing-desk .project-title {
    font-size: 13px;
  }
  .novincut-drawing-desk .prototype-tag {
    display: none;
  }
  .novincut-drawing-desk .project-nav {
    gap: 12px;
    padding: 0 13px;
  }
  .novincut-drawing-desk .workspace-tabs button,
  .novincut-drawing-desk .workflow-tabs button {
    font-size: 11px;
    padding: 0 10px;
    gap: 7px;
  }
  .novincut-drawing-desk .workflow-tabs {
    gap: 5px;
  }
  .novincut-drawing-desk .workspace-tabs {
    gap: 3px;
  }
  .novincut-drawing-desk .context-editor {
    left: auto;
    right: 85px;
    width: 292px;
    padding: 17px;
    top: 24%;
    max-height: calc(76% - 100px);
  }
  .novincut-drawing-desk .canvas-hint {
    display: none;
  }
  .novincut-drawing-desk .global-rail {
    padding-inline: 7px;
  }
  .novincut-drawing-desk {
    grid-template-columns: 66px minmax(0, 1fr);
  }
  .novincut-drawing-desk .view-row {
    left: 15px;
  }
  .novincut-drawing-desk .room-summary {
    display: none;
  }
  .novincut-drawing-desk .tool-button {
    min-width: 49px;
    padding: 4px 7px;
  }
  .novincut-drawing-desk .bottom-toolbar {
    left: 15px;
  }
  .novincut-drawing-desk .top-actions {
    gap: 3px;
  }
  .novincut-drawing-desk .avatar {
    display: none;
  }
  .novincut-drawing-desk .save-button {
    margin: 0 4px;
  }
  .novincut-drawing-desk .brand-wordmark {
    width: 95px;
  }
  .novincut-drawing-desk .top-divider {
    display: none;
  }
}
@media (max-width: 780px) {
  .novincut-drawing-desk {
    height: 100dvh;
    min-height: 740px;
    grid-template-columns: 1fr;
    grid-template-rows: 57px 57px minmax(0, 1fr);
  }
  .novincut-drawing-desk .global-rail {
    display: none;
  }
  .novincut-drawing-desk .topbar,
  .novincut-drawing-desk .project-nav,
  .novincut-drawing-desk .workspace {
    grid-column: 1;
  }
  .novincut-drawing-desk .topbar {
    padding: 0 13px;
    gap: 12px;
  }
  .novincut-drawing-desk .brand-wordmark {
    width: 85px;
    height: 31px;
  }
  .novincut-drawing-desk .project-title {
    font-size: 11px;
    max-width: 150px;
  }
  .novincut-drawing-desk .top-actions {
    gap: 0;
  }
  .novincut-drawing-desk .top-actions > .icon-button {
    width: 29px;
  }
  .novincut-drawing-desk .save-button {
    height: 34px;
    font-size: 11px;
    padding: 0 9px;
    gap: 7px;
  }
  .novincut-drawing-desk .language-button {
    font-size: 11px;
    padding: 6px;
    gap: 4px;
  }
  .novincut-drawing-desk .language-button svg {
    width: 16px;
  }
  .novincut-drawing-desk .project-nav {
    padding: 0 9px;
    gap: 10px;
    overflow-x: auto;
  }
  .novincut-drawing-desk .workspace-tabs button,
  .novincut-drawing-desk .workflow-tabs button {
    height: 37px;
    font-size: 10px;
    padding: 0 9px;
  }
  .novincut-drawing-desk .workspace-tabs button svg,
  .novincut-drawing-desk .workflow-tabs button svg {
    width: 16px;
  }
  .novincut-drawing-desk .workspace-tabs button:nth-child(2),
  .novincut-drawing-desk .workspace-tabs button:nth-child(3) {
    display: none;
  }
  .novincut-drawing-desk .nav-divider {
    height: 25px;
  }
  .novincut-drawing-desk .workflow-tabs {
    gap: 2px;
  }
  .novincut-drawing-desk .view-row {
    top: 10px;
    left: 10px;
    right: 55px;
    gap: 8px;
  }
  .novincut-drawing-desk .view-tabs {
    padding: 3px;
  }
  .novincut-drawing-desk .view-tabs button {
    height: 34px;
    padding: 0 11px;
    gap: 6px;
    font-size: 11px;
  }
  .novincut-drawing-desk .view-tabs button svg {
    width: 16px;
  }
  .novincut-drawing-desk
    .utility-dock:not(.drawing-utility-dock--room-actions)
    > .icon-button:first-child {
    display: none;
  }
  .novincut-drawing-desk .plan-svg {
    height: 63%;
    margin-top: 34px;
  }
  .novincut-drawing-desk .context-editor {
    top: auto;
    left: 12px;
    right: 12px;
    bottom: 90px;
    width: auto;
    max-height: 39%;
    padding: 15px;
    border-radius: 10px;
    box-shadow: 0 -4px 30px #10254c0b;
  }
  .novincut-drawing-desk .context-editor::before {
    display: none;
  }
  .novincut-drawing-desk .editor-header {
    margin-bottom: 8px;
  }
  .novincut-drawing-desk .editor-header h2 {
    font-size: 15px;
  }
  .novincut-drawing-desk .reference-line {
    margin: 0 0 10px;
    font-size: 9px;
  }
  .novincut-drawing-desk .context-editor form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 16px;
  }
  .novincut-drawing-desk .field {
    width: calc(50% - 8px);
    margin: 7px 0;
    font-size: 11px;
    gap: 7px;
    align-items: flex-start;
    flex-direction: column;
  }
  .novincut-drawing-desk .field-control {
    width: 100%;
    gap: 5px;
  }
  .novincut-drawing-desk .field input {
    width: calc(100% - 25px);
    height: 33px;
    font-size: 12px;
  }
  .novincut-drawing-desk .editor-footer {
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
  }
  .novincut-drawing-desk .editor-footer .button {
    min-height: 35px;
    font-size: 11px;
  }
  .novincut-drawing-desk .extra-settings,
  .novincut-drawing-desk .editor-hint,
  .novincut-drawing-desk .inline-error,
  .novincut-drawing-desk .select-field,
  .novincut-drawing-desk .finish-label,
  .novincut-drawing-desk .finish-options,
  .novincut-drawing-desk .edit-explanation,
  .novincut-drawing-desk .toggle-row {
    width: 100%;
  }
  .novincut-drawing-desk .extra-settings {
    margin-top: 10px;
    padding-top: 10px;
  }
  .novincut-drawing-desk .extra-settings > .field {
    width: 100%;
  }
  .novincut-drawing-desk .extra-settings .field-control {
    width: 150px;
  }
  .novincut-drawing-desk .extra-settings .field {
    flex-direction: row;
    align-items: center;
  }
  .novincut-drawing-desk .editor-hint {
    display: none;
  }
  .novincut-drawing-desk .select-field {
    margin: 8px 0;
    gap: 5px;
  }
  .novincut-drawing-desk .finish-label {
    margin-top: 10px;
  }
  .novincut-drawing-desk .finish-options {
    margin-bottom: 4px;
  }
  .novincut-drawing-desk .edit-explanation {
    margin-top: 8px;
    padding-top: 10px;
  }
  .novincut-drawing-desk .bottom-toolbar {
    left: 8px;
    right: 8px;
    bottom: 13px;
    justify-content: space-around;
    padding: 5px;
    gap: 1px;
  }
  .novincut-drawing-desk .workspace--room-actions > .bottom-toolbar {
    max-width: calc(100% - 16px);
  }
  .novincut-drawing-desk .tool-button {
    height: 54px;
    min-width: 44px;
    font-size: 9px;
    padding: 4px;
  }
  .novincut-drawing-desk .tool-button svg {
    width: 21px;
  }
  .novincut-drawing-desk .toolbar-divider {
    height: 25px;
    margin: 0 2px;
  }
  .novincut-drawing-desk .zoom-controls {
    display: none;
  }
  .novincut-drawing-desk .floating-panel {
    max-height: calc(100% - 155px);
  }
  .novincut-drawing-desk .services-panel,
  .novincut-drawing-desk .layers-panel,
  .novincut-drawing-desk .room-panel,
  .novincut-drawing-desk .scope-panel,
  .novincut-drawing-desk .start-panel,
  .novincut-drawing-desk .draw-panel,
  .novincut-drawing-desk .check-panel,
  .novincut-drawing-desk .panels-panel {
    top: 70px;
    left: 12px;
    right: 55px;
    width: auto;
    max-width: 345px;
  }
  .novincut-drawing-desk .services-panel {
    padding: 16px;
  }
  .novincut-drawing-desk .service-palette button {
    padding: 8px 0;
  }
  .novincut-drawing-desk .floating-panel h2 {
    font-size: 15px;
  }
  .novincut-drawing-desk .room-panel .field,
  .novincut-drawing-desk .draw-panel .field {
    width: 100%;
    flex-direction: row;
    align-items: center;
  }
  .novincut-drawing-desk .room-panel .field-control,
  .novincut-drawing-desk .draw-panel .field-control {
    width: 130px;
  }
  .novincut-drawing-desk .toast {
    bottom: 91px;
    font-size: 11px;
    min-width: 250px;
    max-width: calc(100vw - 25px);
    padding: 11px 13px;
  }
  .novincut-drawing-desk .wall-picker {
    font-size: 10px;
    gap: 4px;
  }
  .novincut-drawing-desk .wall-picker select {
    padding: 5px;
  }
  .novincut-drawing-desk .confirmation-dialog {
    padding: 22px;
  }
  .novincut-drawing-desk .confirmation-dialog footer {
    flex-wrap: wrap;
  }
  .novincut-drawing-desk .room-3d {
    bottom: 80px !important;
  }
}
.novincut-drawing-desk {
  direction: ltr;
}
.novincut-drawing-desk[dir='rtl'] .context-editor,
.novincut-drawing-desk[dir='rtl'] .floating-panel {
  direction: rtl;
  font-family: Shabnam, Inter, sans-serif;
}
.novincut-drawing-desk[dir='rtl'] .field-control,
.novincut-drawing-desk[dir='rtl'] .reference-line {
  direction: ltr;
}
.novincut-drawing-desk .editor-capture {
  display: contents;
}
.novincut-drawing-desk .adaptive-editor-shell[data-editor-layout='action'][data-ready='true'] {
  transition: none;
}
.novincut-drawing-desk
  .adaptive-editor-shell[data-editor-layout='action'][data-ready='false']
  .context-editor,
.novincut-drawing-desk
  .adaptive-editor-shell[data-editor-layout='action'][data-dragging='true']
  .context-editor {
  visibility: hidden;
  pointer-events: none;
}
.novincut-drawing-desk .context-editor.cabinet-canvas-action {
  width: 176px;
  height: var(--editor-max-height, 36px);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.novincut-drawing-desk .cabinet-canvas-action .uw-tool-help {
  display: block;
  width: 100%;
}
.novincut-drawing-desk .cabinet-canvas-action .uw-tool-opening-side--canvas {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: var(--editor-max-height, 36px);
  min-height: 0;
  padding: 0 10px;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: var(--shadow);
  font-size: 11px;
  white-space: nowrap;
}
.novincut-drawing-desk .cabinet-canvas-action .uw-tool-opening-side--canvas > span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.novincut-drawing-desk .cabinet-canvas-action .uw-tool-opening-side--canvas svg {
  flex-shrink: 0;
}
.novincut-drawing-desk .adaptive-editor-shell {
  display: contents;
}
.novincut-drawing-desk .adaptive-editor-shell[data-ready='true'] {
  display: block;
  position: absolute;
  z-index: 7;
  width: var(--editor-width);
  pointer-events: none;
  transition:
    left 160ms ease-out,
    top 160ms ease-out;
}
.novincut-drawing-desk .adaptive-editor-shell[data-ready='true'] .context-editor {
  position: relative;
  inset: auto;
  width: var(--editor-width);
  max-width: 100%;
  max-height: var(--editor-max-height);
  margin: 0;
  pointer-events: auto;
}
.novincut-drawing-desk .adaptive-editor-shell[data-ready='true'] .context-editor::before {
  display: none;
}
.novincut-drawing-desk .adaptive-editor-shell[data-dragging='true'] {
  transition: none;
}
.novincut-drawing-desk .adaptive-editor-shell[data-editor-layout='quick'] .context-editor {
  overflow: auto;
  scrollbar-width: thin;
}
.novincut-drawing-desk .adaptive-editor-shell[data-compact='true'] .context-editor {
  visibility: hidden;
  pointer-events: none;
}
.novincut-drawing-desk .adaptive-editor-restore {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 154px;
  max-width: 100%;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: var(--shadow);
  font-size: 12px;
  pointer-events: auto;
  cursor: pointer;
}
.novincut-drawing-desk .adaptive-editor-restore:hover:not(:disabled) {
  color: #153d8a;
  border-color: #a7bffc;
}
.novincut-drawing-desk .adaptive-editor-restore:disabled {
  opacity: 0.9;
  cursor: default;
}
.novincut-drawing-desk .brand-wordmark {
  padding: 0;
  display: flex;
  align-items: center;
}
.novincut-drawing-desk .brand-wordmark > img {
  width: 100%;
  height: 38px;
  object-fit: contain;
}
.novincut-drawing-desk .topbar-divider {
  width: 1px;
  height: 23px;
  background: var(--line);
  flex-shrink: 0;
}
.novincut-drawing-desk .rail-bottom {
  margin-top: auto;
}
.novincut-drawing-desk .save-button > i {
  height: 5px;
  width: 5px;
  border-radius: 50%;
  background: #c99437;
}
.novincut-drawing-desk .room-summary button {
  pointer-events: auto;
  text-align: start;
  padding: 0;
  min-height: 24px;
  font-size: 14px;
  color: var(--ink);
}
.novincut-drawing-desk .room-summary button:hover {
  color: var(--blue);
}
.novincut-drawing-desk .room-summary small {
  font-size: 10px;
  line-height: 1.4;
}
.novincut-drawing-desk .preview-caption {
  font-size: 12px;
  fill: var(--blue);
}
.novincut-drawing-desk .layer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 12px;
  padding: 12px 0;
}
.novincut-drawing-desk .panel-header {
  margin-bottom: 16px !important;
}
.novincut-drawing-desk .panel-header p {
  margin-top: 5px;
  font-size: 11px;
}
.novincut-drawing-desk .service-palette .service-option {
  gap: 11px;
}
.novincut-drawing-desk .service-symbol {
  color: var(--kind);
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  height: 34px;
  width: 34px;
}
.novincut-drawing-desk .existing-services {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--line);
  padding-top: 12px;
  margin-top: 12px;
}
.novincut-drawing-desk .existing-services > button {
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
  font-size: 11px;
  padding: 8px 2px;
  color: var(--slate);
}
.novincut-drawing-desk .existing-services > button:hover {
  color: var(--blue);
}
.novincut-drawing-desk .template-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}
.novincut-drawing-desk .template-choice {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 12px;
  text-align: left;
}
.novincut-drawing-desk .template-choice:hover {
  background: #f2f6ff;
  border-color: #b5c9f1;
}
.novincut-drawing-desk .template-choice > span {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4px;
}
.novincut-drawing-desk .template-choice small {
  font-size: 10px;
  color: var(--slate);
  line-height: 1.6;
}
.novincut-drawing-desk .template-choice > svg:last-child {
  margin-left: auto;
}
.novincut-drawing-desk .draw-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.novincut-drawing-desk .angle-presets {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 9px 0 18px;
}
.novincut-drawing-desk .angle-presets button {
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-size: 11px;
}
.novincut-drawing-desk .angle-presets button:hover {
  color: var(--blue);
  border-color: #a7bffc;
}
.novincut-drawing-desk .drawing-inputs {
  margin-top: 16px;
}
.novincut-drawing-desk .issues-list {
  display: flex;
  flex-direction: column;
  margin-top: 16px;
}
.novincut-drawing-desk .issue-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  width: 100%;
  padding: 14px 0;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .issue-item > svg:first-child {
  color: #9e6b28;
}
.novincut-drawing-desk .issue-item > span {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 5px;
}
.novincut-drawing-desk .issue-item strong {
  font-size: 12px;
  font-weight: 500;
}
.novincut-drawing-desk .issue-item small {
  font-size: 11px;
  line-height: 1.65;
  color: var(--slate);
}
.novincut-drawing-desk .check-success {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  line-height: 1.7;
  margin: 25px 0;
}
.novincut-drawing-desk .check-success > svg {
  color: #478b71;
}
.novincut-drawing-desk .project-name-field {
  font-size: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 14px 0;
}
.novincut-drawing-desk .project-name-field input {
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 8px;
}
.novincut-drawing-desk .project-actions {
  display: flex;
  flex-direction: column;
  gap: 11px;
  margin-top: 23px;
}
.novincut-drawing-desk .cabinet-reference {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 0;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .cabinet-reference > span {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 5px;
}
.novincut-drawing-desk .cabinet-reference small {
  font-size: 11px;
  color: var(--slate);
}
.novincut-drawing-desk .scope-panel ul {
  padding-left: 19px;
  color: var(--slate);
  font-size: 12px;
  line-height: 2;
}
.novincut-drawing-desk .scope-approval {
  border-top: 1px solid var(--line);
  padding-top: 15px;
  margin-top: 17px !important;
  color: var(--slate);
  font-size: 11px !important;
  line-height: 1.8;
}
.novincut-drawing-desk .scope-approval > svg {
  display: inline-block;
  vertical-align: middle;
  margin-right: 5px;
  color: #3f886c;
}
.novincut-drawing-desk .issue-count {
  background: #fff1d6;
  color: #906027;
  padding: 2px 5px;
  font-size: 10px;
  border-radius: 20px;
}
.novincut-drawing-desk .view-loading {
  display: grid;
  height: 100%;
  place-items: center;
  color: var(--slate);
}
.novincut-drawing-desk .empty-state {
  font-size: 12px;
  line-height: 1.8;
  color: var(--slate);
  padding: 20px 0;
}
.novincut-drawing-desk .toast.error {
  background: #763a38;
}
.novincut-drawing-desk .workspace-tabs button.active,
.novincut-drawing-desk .workflow-tabs button.active,
.novincut-drawing-desk .view-tabs button.active,
.novincut-drawing-desk .tool-button.active,
.novincut-drawing-desk .preview-value {
  color: #153d8a;
}
.novincut-drawing-desk .active > svg {
  color: var(--blue);
}
.novincut-drawing-desk .room-3d .view-orientation {
  bottom: 104px !important;
}
.novincut-drawing-desk .room-3d .canvas-orbit-hint,
.novincut-drawing-desk .elevation-view .canvas-orbit-hint {
  left: 50% !important;
  bottom: 42px !important;
  transform: translateX(-50%);
  white-space: nowrap;
}
@media (max-width: 780px) {
  .novincut-drawing-desk .topbar-divider {
    display: none;
  }
  .novincut-drawing-desk .topbar .prototype-tag {
    display: none;
  }
  .novincut-drawing-desk .context-editor {
    max-height: 40%;
  }
  .novincut-drawing-desk .project-title {
    max-width: 110px;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .novincut-drawing-desk .plan-svg {
    margin-top: 20px;
    height: 65%;
  }
  .novincut-drawing-desk .elevation-view {
    height: 65% !important;
    padding-top: 30px;
  }
  .novincut-drawing-desk .elevation-wall-tabs {
    top: 65px !important;
    left: 10px !important;
    transform: none !important;
    max-width: calc(100% - 65px) !important;
  }
  .novincut-drawing-desk .room-3d {
    height: 65% !important;
    min-height: 260px !important;
    padding-top: 40px;
    bottom: 0 !important;
  }
  .novincut-drawing-desk .canvas-orbit-hint {
    display: none !important;
  }
  .novincut-drawing-desk .view-orientation {
    bottom: 10px !important;
    right: 12px !important;
  }
  .novincut-drawing-desk .view-orientation button {
    font-size: 9px !important;
    padding: 6px !important;
  }
  .novincut-drawing-desk .room-summary {
    display: none;
  }
  .novincut-drawing-desk .service-palette .service-option {
    padding: 8px 0;
  }
  .novincut-drawing-desk .draw-panel .field {
    width: 100%;
    flex-direction: row;
  }
  .novincut-drawing-desk .drawing-inputs .field-control {
    max-width: 130px;
  }
}
/* Keep utilities, camera controls and readouts in separate lanes in short windows. */
@media (min-height: 801px) {
  .novincut-drawing-desk .workspace--room-actions:not(.workspace--camera-open) > .room-summary {
    right: 82px;
  }
}
@media (min-width: 768px) {
  .novincut-drawing-desk
    .workspace--room-actions:not(.workspace--camera-open)
    .room-3d
    .room-view-dial {
    right: 118px;
  }
}
@media (max-height: 800px) and (min-width: 768px) {
  .novincut-drawing-desk .room-3d .room-view-dial {
    --dial-size: 100px;
    top: 24px;
    right: 118px;
    width: 100px;
    height: 148px;
  }
  .novincut-drawing-desk .room-3d .room-view-dial__preview {
    width: 76px;
    height: 76px;
  }
  .novincut-drawing-desk .workspace > .room-summary {
    top: 24px;
    right: 230px;
    bottom: auto;
  }
  .novincut-drawing-desk .workspace > .utility-dock .cutaway-status {
    top: 0;
    right: calc(100% + 298px);
    transform: none;
  }
}
@media (max-height: 800px) and (min-width: 768px) and (max-width: 1150px) {
  .novincut-drawing-desk .workspace > .utility-dock .cutaway-status {
    right: calc(100% + 136px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .novincut-drawing-desk *,
  .novincut-drawing-desk *::before,
  .novincut-drawing-desk *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@media (forced-colors: active) {
  .novincut-drawing-desk button,
  .novincut-drawing-desk input,
  .novincut-drawing-desk select {
    border: 1px solid ButtonText;
  }
  .novincut-drawing-desk .icon-button.active,
  .novincut-drawing-desk .tool-button.active {
    outline: 2px solid Highlight;
  }
}
/* Connected Drawing Desk panels reuse the room palette and field owners. */
.novincut-drawing-desk :is(.floating-panel, .desk-context-editor) {
  background: var(--paper);
  border-color: var(--line);
  border-radius: 11px;
  box-shadow:
    0 10px 30px #10254c12,
    0 1px 4px #10254c08;
  color: var(--ink);
  scrollbar-width: thin;
  overscroll-behavior: contain;
}
.novincut-drawing-desk :is(.layers-panel, .room-panel) {
  padding: 20px;
  width: min(310px, calc(100% - 100px));
}
.novincut-drawing-desk :is(.panel-header, .desk-panel-header) {
  align-items: flex-start;
  gap: 11px;
  padding-bottom: 16px;
  margin-bottom: 16px !important;
  border-bottom: 1px solid var(--line);
}
.novincut-drawing-desk .desk-panel-header,
.novincut-drawing-desk .panel-header:has(> .desk-panel-icon) {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 30px;
}
.novincut-drawing-desk .desk-panel-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border: 1px solid #dce6f8;
  border-radius: 7px;
  color: #153d8a;
  background: #edf3ff;
}
.novincut-drawing-desk .desk-panel-title {
  flex: 1;
  min-width: 0;
  padding-top: 1px;
}
.novincut-drawing-desk .desk-panel-title h2 {
  display: block;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.novincut-drawing-desk .desk-panel-title p {
  margin-top: 4px;
  color: var(--slate);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.55;
}
.novincut-drawing-desk :is(.panel-header, .desk-panel-header) > .icon-button {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  margin: -2px -4px 0 0;
  border: 1px solid transparent;
  border-radius: 5px;
  color: var(--slate);
}
.novincut-drawing-desk :is(.panel-header, .desk-panel-header) > .icon-button:hover {
  background: #f1f5fb;
  color: var(--ink);
}
.novincut-drawing-desk .layers-panel .layer-row {
  min-height: 48px;
  padding: 11px 6px;
  border-bottom: 1px solid #edf1f6;
  border-radius: 4px;
  cursor: pointer;
}
.novincut-drawing-desk .layers-panel .layer-row:hover {
  background: #f7f9fd;
}
.novincut-drawing-desk .layer-row-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.novincut-drawing-desk .layer-row-label svg {
  flex: 0 0 17px;
  color: var(--slate);
}
.novincut-drawing-desk .layer-row input {
  direction: ltr;
  appearance: none;
  width: 34px;
  height: 20px;
  flex: 0 0 34px;
  margin: 0;
  padding: 2px;
  border: 1px solid #becce0;
  border-radius: 20px;
  background: #e5ebf4;
  cursor: pointer;
}
.novincut-drawing-desk .layer-row input::before {
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px #10254c26;
}
.novincut-drawing-desk .layer-row input:checked {
  border-color: #2468ff;
  background: #2468ff;
}
.novincut-drawing-desk .layer-row input:checked::before {
  transform: translateX(14px);
}
.novincut-drawing-desk .desk-object-summary {
  margin-bottom: 18px;
  color: var(--slate);
  font-size: 11px;
  line-height: 1.6;
}
.novincut-drawing-desk .desk-context-editor .desk-world-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 12px;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  gap: 6px;
  margin: 0 0 14px;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field > span:first-child {
  max-width: none;
  color: var(--slate);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}
.novincut-drawing-desk .desk-world-fields > .field > span:first-child {
  display: flex;
  align-items: flex-end;
  min-height: 1.5em;
}
.novincut-drawing-desk .desk-world-fields > .field {
  margin: 0;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field-control {
  flex: 1;
  min-width: 0;
  width: 100%;
  gap: 4px;
  padding-inline-end: 9px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  background: #fafcff;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field-control:focus-within {
  border-color: var(--blue);
  outline: 2px solid #2468ff1a;
  outline-offset: 1px;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field input {
  flex: 1;
  min-width: 0;
  width: 100%;
  height: 38px;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  box-shadow: none;
  outline: none;
  color: var(--ink);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) .field-unit {
  flex: 0 0 auto;
  color: var(--slate);
  font-size: 10px;
}
.novincut-drawing-desk .desk-context-editor select {
  min-height: 38px;
  min-width: 0;
  width: 100%;
  padding: 7px 9px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper);
  font: inherit;
  font-size: 12px;
}
.novincut-drawing-desk .desk-inspector-links {
  display: grid;
  gap: 10px;
  padding-top: 16px;
  margin-top: 4px;
  border-top: 1px solid var(--line);
}
.novincut-drawing-desk .desk-inspector-links .button {
  justify-content: flex-start;
}
.novincut-drawing-desk .desk-inspector-links .text-action {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  text-align: start;
  white-space: normal;
  line-height: 1.5;
}
.novincut-drawing-desk .desk-inspector-links svg {
  flex: 0 0 16px;
}
.novincut-drawing-desk .desk-inspector-footer {
  align-items: center;
  gap: 8px;
  margin-top: 18px;
}
.novincut-drawing-desk .desk-inspector-footer > .icon-button {
  flex: 0 0 30px;
  margin: 0;
  margin-inline-end: auto;
  color: var(--slate);
}
.novincut-drawing-desk .desk-inspector-footer .button {
  padding-inline: 12px;
}
.novincut-drawing-desk .desk-inspector-footer .button:not(.primary) {
  border-color: var(--line);
  background: var(--paper);
  color: var(--ink);
}
.novincut-drawing-desk .room-panel .desk-room-apply {
  width: 100%;
  margin-top: 15px;
}
.novincut-drawing-desk .room-panel > .text-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 8px;
  padding-top: 14px;
  margin-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  line-height: 1.5;
}
.novincut-drawing-desk :is(.desk-context-editor, .room-panel) :is(input, select):disabled {
  color: var(--slate);
  cursor: default;
}
.novincut-drawing-desk .layer-row input:focus-visible,
.novincut-drawing-desk
  :is(.floating-panel, .desk-context-editor)
  :is(button, select):focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
@media (forced-colors: active) {
  .novincut-drawing-desk .layer-row input {
    appearance: auto;
  }
  .novincut-drawing-desk .layer-row input::before {
    display: none;
  }
}
@media (max-width: 780px) {
  .novincut-drawing-desk :is(.layers-panel, .room-panel) {
    width: auto;
    padding: 16px;
  }
}

/* Original source inspection follows the existing floating panel's sizing. */
.novincut-drawing-desk .recovered-model-inspector .inspector-body {
  display: grid;
  gap: 10px;
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.novincut-drawing-desk .recovered-model-inspector .inspector-body p { margin: 0; }
/* Persistent dimensional authority sits in existing canvas chrome; it never
   inserts another page-height banner or changes physical room geometry. */
.novincut-drawing-desk .desk-photo-estimate-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--paper);
  color: var(--slate);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.novincut-drawing-desk .desk-photo-estimate-status:hover {
  color: var(--ink);
  border-color: var(--blue);
}
.novincut-drawing-desk .desk-photo-estimate-status:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.novincut-drawing-desk .desk-photo-estimate-status svg { flex: none; }
/* Room creation and placement share the Drawing Desk's bounded panel owner. */
.novincut-drawing-desk .room-panel.desk-place-unit-panel {
  inset-inline-end: 82px;
  width: 330px;
  max-width: calc(100% - 110px);
  max-height: calc(100% - 110px);
  padding: 18px;
  overflow-y: auto;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-panel-header {
  padding-bottom: 13px;
  margin-bottom: 13px !important;
}
.novincut-drawing-desk .desk-place-unit-modes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f5f8fd;
}
.novincut-drawing-desk .desk-place-unit-modes button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  min-height: 33px;
  padding: 6px 7px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: var(--slate);
  background: transparent;
  font: inherit;
  font-size: 11px;
  cursor: pointer;
}
.novincut-drawing-desk .desk-place-unit-modes button:hover {
  color: var(--ink);
  background: #edf3ff;
}
.novincut-drawing-desk .desk-place-unit-modes button[aria-pressed='true'] {
  color: #153d8a;
  border-color: #d8e3f7;
  background: var(--paper);
  box-shadow: 0 1px 3px #10254c08;
}
.novincut-drawing-desk .desk-place-unit-panel .select-field {
  min-width: 0;
  margin: 13px 0;
  gap: 6px;
}
.novincut-drawing-desk .desk-place-unit-panel .select-field > span {
  color: var(--slate);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}
.novincut-drawing-desk .desk-place-unit-panel .select-field select {
  width: 100%;
  min-width: 0;
  height: 37px;
  padding: 7px 8px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper);
  font: inherit;
  font-size: 12px;
}
.novincut-drawing-desk .desk-place-unit-sizes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.novincut-drawing-desk .desk-place-unit-sizes .field > span:first-child {
  min-height: 1.5em;
  font-size: 10px;
}
.novincut-drawing-desk .desk-place-unit-sizes .field input {
  padding-inline: 7px;
  font-size: 12px;
}
.novincut-drawing-desk .desk-place-unit-sizes .field-unit {
  font-size: 9px;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-place-unit-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--line);
  color: var(--slate);
  font-size: 10px;
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
}
.novincut-drawing-desk .desk-place-unit-wall {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  margin-top: 13px;
}
.novincut-drawing-desk .desk-place-unit-wall .select-field {
  margin: 0;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-pick-unit-wall {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  min-height: 37px;
  padding: 7px 10px;
  border: 1px solid #cfdaea;
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper);
  font-size: 11px;
  cursor: pointer;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-pick-unit-wall:hover {
  border-color: #a8c0f3;
  background: #f6f9ff;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-pick-unit-wall.is-active {
  color: #153d8a;
  border-color: #a8c0f3;
  background: #edf3ff;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-place-unit-help {
  min-height: 3.2em;
  margin: 9px 0 13px;
  color: var(--slate);
  font-size: 10px;
  line-height: 1.6;
}
.novincut-drawing-desk .desk-place-unit-clearances {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.novincut-drawing-desk .desk-place-unit-extra {
  margin-top: 2px;
  border-top: 1px solid var(--line);
}
.novincut-drawing-desk .desk-place-unit-extra > summary {
  padding: 11px 0;
  color: var(--slate);
  font-size: 11px;
  line-height: 1.6;
  cursor: pointer;
}
.novincut-drawing-desk .desk-place-unit-extra > summary:hover {
  color: var(--ink);
}
.novincut-drawing-desk .desk-place-unit-extra > summary:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-place-unit-lock {
  display: grid;
  gap: 9px;
  padding: 12px;
  margin-top: 2px;
  border: 1px solid #dce6f8;
  border-radius: 6px;
  color: var(--slate);
  background: #f5f8fd;
  font-size: 10px;
  line-height: 1.6;
}
.novincut-drawing-desk .desk-place-unit-lock .button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  border-color: #cfdaea;
  background: var(--paper);
  color: var(--ink);
  font-size: 11px;
}
.novincut-drawing-desk .desk-place-unit-panel .desk-place-unit-footer {
  position: sticky;
  bottom: -18px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 13px 0 2px;
  margin-top: 14px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}
.novincut-drawing-desk .desk-place-unit-footer .button {
  min-height: 36px;
  padding: 8px 13px;
  font-size: 11px;
  cursor: pointer;
}
.novincut-drawing-desk .desk-place-unit-panel button:disabled {
  opacity: 0.55;
  cursor: default;
}
@media (max-width: 780px) {
  .novincut-drawing-desk .room-panel.desk-place-unit-panel {
    inset-inline-end: 12px;
    width: 320px;
    max-width: calc(100% - 24px);
    max-height: calc(100% - 102px);
    padding: 16px;
  }
  .novincut-drawing-desk .desk-place-unit-panel .desk-place-unit-footer {
    bottom: -16px;
  }
}
/* These rules apply only to the shared Cabinet workspace. Its live editors
   retain their normal composition in standalone and ordinary Panels views. */
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings {
  display: block;
  position: relative;
  height: var(--uw-floating-height);
  min-height: 460px;
  --uw-settings-gap: clamp(6px, calc((var(--uw-floating-height) - 320px) / 5), 20px);
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-main,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-workspace {
  display: contents;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-access {
  inset-inline: 18px 108px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-scene-bottom {
  left: 16px;
  right: auto;
  inset-inline-start: unset;
  inset-inline-end: unset;
  bottom: 16px;
  transform: none;
  width: max-content;
  max-width: calc(100% - 112px);
  justify-content: flex-start;
}
.uw-cabinet-settings {
  position: absolute;
  inset: 16px;
  z-index: 8;
  min-width: 0;
  pointer-events: none;
  color: #0a1b3a;
  font-family: var(--font-ui, inherit);
  --uw-setting-center-y: calc(24px + var(--uw-setting-index) * (48px + var(--uw-settings-gap, 16px)));
  --uw-setting-origin-x: calc(100% + 56px);
  --uw-setting-origin-y: var(--uw-setting-center-y);
  --uw-setting-motion-duration: 210ms;
  --uw-setting-exit-duration: 180ms;
  --uw-connector-translation: translateY(-50%);
  --uw-connector-start-scale: scaleX(.05);
}
.uw-cabinet-settings[dir='rtl'] { font-family: var(--font-fa, inherit); }
.uw-cabinet-settings__controller { display: contents; }
.uw-cabinet-settings[hidden],
.uw-cabinet-settings [hidden] { display: none !important; }
.uw-cabinet-settings__rail {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--uw-settings-gap, 16px);
  width: 64px;
  pointer-events: none;
  direction: ltr;
}
.uw-cabinet-settings__bubble-wrap {
  position: relative;
  flex: none;
  display: block;
  width: 48px;
  height: 48px;
  pointer-events: auto;
}
.unified-workspace .producer-app .uw-cabinet-settings__bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #e3e9f2;
  border-radius: 50%;
  background: #fff;
  color: #122c53;
  box-shadow: 0 5px 16px #020b2026;
  transition: transform 150ms, color 150ms, border-color 150ms, box-shadow 150ms, background-color 150ms;
}
.unified-workspace .producer-app .uw-cabinet-settings__bubble:hover { background: #f4f7ff; }
.unified-workspace .producer-app .uw-cabinet-settings__bubble.is-active {
  border: 2px solid #135dff;
  color: #135dff;
  background: #fff;
  box-shadow: 0 0 0 2px #135dff24, 0 0 14px #135dff55;
  transform: scale(1.025);
}
.unified-workspace .producer-app .uw-cabinet-settings__bubble:active { transform: scale(.94); }
.uw-cabinet-settings__tooltip {
  position: absolute;
  right: 60px;
  top: 50%;
  z-index: 3;
  width: max-content;
  max-width: 180px;
  padding: 7px 10px;
  border: 1px solid #516587;
  border-radius: 7px;
  background: #102340f5;
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity 120ms;
}
.uw-cabinet-settings__bubble-wrap:is(:hover, :focus-within) .uw-cabinet-settings__tooltip {
  visibility: visible;
  opacity: 1;
}
.uw-cabinet-settings__connector {
  position: absolute;
  right: 54px;
  top: var(--uw-setting-center-y);
  z-index: 2;
  width: 50px;
  height: 64px;
  pointer-events: none;
  transform: var(--uw-connector-translation);
  transform-origin: 100% 50%;
  animation: uw-settings-link-b 180ms cubic-bezier(.2, .75, .25, 1) both;
}
.uw-cabinet-settings[data-setting-motion='a'] .uw-cabinet-settings__connector { animation-name: uw-settings-link-a; }
.uw-cabinet-settings__bridge { display: block; width: 100%; height: 100%; overflow: visible; }
.uw-cabinet-settings__bridge--compact { display: none; }
.uw-cabinet-settings__bridge path { fill: #fff; stroke: none; }
.unified-workspace .uw-cabinet-settings__panel.uw-cabinet-materials {
  position: absolute;
  top: 0;
  right: 88px;
  bottom: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(480px, calc(100% - 104px));
  max-width: 480px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 1px solid #dce4ef;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 16px 44px #020c2038, 0 1px 3px #020c2026;
  pointer-events: auto;
  isolation: isolate;
  transform-origin: var(--uw-setting-origin-x) var(--uw-setting-origin-y);
  animation: uw-settings-expand-b var(--uw-setting-motion-duration) cubic-bezier(.2, .75, .25, 1) both;
}
.unified-workspace .uw-cabinet-settings[data-setting-motion='a'] .uw-cabinet-settings__panel.uw-cabinet-materials { animation-name: uw-settings-expand-a; }
.unified-workspace .uw-cabinet-settings[data-cabinet-settings-phase='closing'] .uw-cabinet-settings__panel.uw-cabinet-materials {
  pointer-events: none;
  animation: var(--uw-setting-exit-animation) var(--uw-setting-exit-duration) cubic-bezier(.4, 0, .8, .2) both;
}
.unified-workspace .uw-cabinet-settings[data-cabinet-settings-phase='closing'] .uw-cabinet-settings__header-action:disabled { opacity: 1; }
.uw-cabinet-settings[data-cabinet-settings-phase='closing'] .uw-cabinet-settings__connector {
  animation: var(--uw-setting-exit-link-animation) var(--uw-setting-exit-duration) cubic-bezier(.4, 0, .8, .2) both;
}
/* Alternating names replay the short opening/switch motion on the same panel
   element. None of the editor or portal hosts need to be remounted. */
@keyframes uw-settings-expand-a {
  from { opacity: 0; transform: scale(.16); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes uw-settings-expand-b {
  from { opacity: 0; transform: scale(.16); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes uw-settings-link-a {
  from { opacity: 0; transform: var(--uw-connector-translation) var(--uw-connector-start-scale); }
  to { opacity: 1; transform: var(--uw-connector-translation) scale(1); }
}
@keyframes uw-settings-link-b {
  from { opacity: 0; transform: var(--uw-connector-translation) var(--uw-connector-start-scale); }
  to { opacity: 1; transform: var(--uw-connector-translation) scale(1); }
}
@keyframes uw-settings-collapse-a {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(.16); }
}
@keyframes uw-settings-collapse-b {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(.16); }
}
@keyframes uw-settings-retract-a {
  from { opacity: 1; transform: var(--uw-connector-translation) scale(1); }
  to { opacity: 0; transform: var(--uw-connector-translation) var(--uw-connector-start-scale); }
}
@keyframes uw-settings-retract-b {
  from { opacity: 1; transform: var(--uw-connector-translation) scale(1); }
  to { opacity: 0; transform: var(--uw-connector-translation) var(--uw-connector-start-scale); }
}
.uw-cabinet-settings__header {
  flex: none;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
  padding: 19px 18px 16px 24px;
  border-bottom: 1px solid #dbe3ef;
  border-radius: 15px 15px 0 0;
  background: #fff;
}
.uw-cabinet-settings__header > svg { margin-top: 4px; }
.uw-cabinet-settings__heading { flex: 1; min-width: 0; }
.unified-workspace .producer-app .uw-cabinet-settings__heading h2 {
  font-size: 19px;
  line-height: 1.5;
  font-weight: 750;
  letter-spacing: -.3px;
}
.unified-workspace .producer-app .uw-cabinet-settings__heading p {
  margin-top: 2px;
  font-size: 13px;
  color: #536d98;
  overflow-wrap: anywhere;
}
.unified-workspace .producer-app .uw-cabinet-settings__header-action {
  flex: none;
  width: 36px;
  height: 40px;
  padding: 4px;
  margin-top: -4px;
  color: #203958;
}
.unified-workspace .producer-app .uw-cabinet-settings__header-action[aria-pressed='true'] {
  color: #135dff;
  background: #edf2ff;
}
.uw-cabinet-settings__body {
  display: flex;
  flex: 1;
  min-width: 0;
  min-height: 0;
}
.uw-cabinet-settings__section {
  flex: 1;
  min-width: 0;
  min-height: 0;
  padding: 22px 24px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b7c3d5 #f4f6fa;
  touch-action: pan-y;
}
.uw-cabinet-settings__footer {
  flex: none;
  padding: 14px 24px 16px;
  border-top: 1px solid #dbe3ef;
  border-radius: 0 0 15px 15px;
  background: #fff;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-apply-row {
  position: static;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  padding: 0;
  gap: 10px;
  background: transparent;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-editor__apply {
  min-height: 48px;
  padding: 9px 12px;
  border-radius: 7px;
  border-color: #135dff;
  background: #135dff;
  color: #fff;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-editor__apply:hover:not(:disabled) { background: #064deb; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .uw-panel-scope select { min-height: 48px; font-size: 12px; }
.uw-cabinet-settings__footer [role='alert'] { margin: 10px 0 0; color: #9d3236; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-dimensions-section,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-structure-section { display: block; padding: 0; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings fieldset {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-name-field {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-name-field input { width: 100%; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-validation { display: block; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-settings-units { margin-bottom: 18px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-settings-units > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  padding-block: 10px;
  border-bottom: 1px solid #dbe3ef;
  font-size: 13px;
  font-weight: 650;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-settings-units[open] > summary > svg { transform: rotate(180deg); }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-settings-units .p-unit-list { margin-top: 10px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-opening-controls { padding-inline: 0; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-number,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-installed output { width: 164px; max-width: 50%; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-number { direction: ltr; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-number > span { right: 10px; left: auto; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-number input { padding-right: 32px !important; padding-left: 9px !important; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-field { margin-bottom: 16px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-field > label,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-field > span { font-size: 13px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-stepper { max-width: 160px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-stepper .p-field { display: block; margin: 0; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-stepper .p-number { width: 56px; max-width: none; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-stepper button { width: 44px; height: 44px; min-height: 44px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-stepper input { height: 44px; padding: 6px !important; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings input:not([type='checkbox']):not([type='range']),
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings select { min-height: 42px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-part-picker { gap: 8px; font-size: 13px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-part-picker__control {
  min-height: 52px;
  grid-template-columns: 36px minmax(0, 1fr) 16px;
  gap: 10px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-part-picker__control .manager-color-swatch { width: 36px; height: 36px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-part-picker__control select { min-height: 50px; font-size: 12px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-canvas {
  padding: 54px 48px;
  background: #f2f5fa;
  border-radius: 9px;
  min-height: 280px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-board-stage { height: 180px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-board { width: min(100%, calc(180px * var(--board-ratio))); }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-selection { display: block; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-operations button,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-templates button { font-size: 12px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-unit-list { padding: 0; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-unit-actions { padding-block: 12px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-unit-actions .p-icon { width: 44px; height: 44px; min-height: 44px; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-structure { padding-inline: 0; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-structure > h3 { display: block; }
.unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-add { margin-inline: 0; width: 100%; }
.uw-cabinet-settings :is(button, select, input, summary, [tabindex]):focus-visible {
  outline: 2px solid #135dff;
  outline-offset: 3px;
}
@media (max-width: 900px) {
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-stage {
    position: relative;
    inset: auto;
    flex: none;
    height: min(60dvh, 500px);
    min-height: 320px;
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .p-access { inset-inline: 18px; }
  .uw-cabinet-settings {
    position: relative;
    inset: auto;
    order: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
    background: #f3f6fb;
    --uw-setting-origin-x: calc((var(--uw-setting-index) + .5) * 100% / 6);
    --uw-setting-origin-y: -37px;
    --uw-connector-translation: translateX(-50%);
    --uw-connector-start-scale: scaleY(.05);
  }
  .uw-cabinet-settings__rail {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    justify-items: center;
    gap: 0;
    width: 100%;
    padding: 3px 0;
  }
  .uw-cabinet-settings__bubble-wrap { width: 44px; height: 44px; }
  .unified-workspace .producer-app .uw-cabinet-settings__bubble { width: 44px; height: 44px; }
  .uw-cabinet-settings__bubble svg { width: 22px; height: 22px; }
  .uw-cabinet-settings__connector {
    right: auto;
    left: calc(12px + (100% - 24px) / 6 * (var(--uw-setting-index) + .5));
    top: 57px;
    width: 64px;
    height: 23px;
    transform-origin: 50% 0;
  }
  .uw-cabinet-settings__bridge--desktop { display: none; }
  .uw-cabinet-settings__bridge--compact { display: block; }
  .uw-cabinet-settings__tooltip {
    top: 51px;
    right: 50%;
    max-width: min(150px, 45vw);
    transform: translateX(50%);
  }
  .uw-cabinet-settings__bubble-wrap:first-child .uw-cabinet-settings__tooltip { right: auto; left: -3px; transform: none; }
  .uw-cabinet-settings__bubble-wrap:last-child .uw-cabinet-settings__tooltip { right: -3px; transform: none; }
  .unified-workspace .uw-cabinet-settings__panel.uw-cabinet-materials {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
    height: min(620px, 74dvh);
    max-height: min(620px, 74dvh);
  }
  .uw-cabinet-settings__header { padding: 16px; gap: 10px; }
  .unified-workspace .producer-app .uw-cabinet-settings__header-action { width: 44px; height: 44px; }
  .uw-cabinet-settings__section { padding: 20px 16px; }
  .uw-cabinet-settings__footer { padding: 12px 16px; }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings input:not([type='checkbox']):not([type='range']),
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings select { min-height: 44px; }
}
@media (max-width: 450px) {
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .manager-edge-apply-row { grid-template-columns: 1fr; }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-number,
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings .uw-cabinet-settings .p-installed output { width: 130px; }
  .unified-workspace .producer-app .uw-cabinet-settings__heading h2 { font-size: 17px; }
  .uw-cabinet-settings__header > svg { width: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .unified-workspace .producer-app .uw-cabinet-settings__bubble,
  .uw-cabinet-settings__tooltip { transition: none; }
  .unified-workspace .uw-cabinet-settings[data-setting-motion] .uw-cabinet-settings__panel.uw-cabinet-materials,
  .uw-cabinet-settings[data-setting-motion] .uw-cabinet-settings__connector { animation: none; }
  .unified-workspace .producer-app .uw-cabinet-settings__bubble.is-active,
  .unified-workspace .producer-app .uw-cabinet-settings__bubble:active { transform: none; }
}
/* Drawing Desk is a presentation variant of the canonical editors/commands.
   Token fallbacks mirror the prototype's src/styles.css; no outer app styling. */
.dd-view-settings .dd-fit-cabinet {
  width: 100%;
  min-height: 38px;
  margin-block-start: 4px;
  justify-content: center;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--paper, #fff);
  color: var(--ink, #07142f);
  font-size: 12px;
}
.unified-workspace.uw-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--ink, #07142f);
}
.uw-header-actions .uw-edit-tools {
  flex: none;
}
.uw-header-actions .dd-workspace-actions {
  position: relative;
}
.uw-header-actions .dd-workspace-actions > summary {
  list-style: none;
}
.uw-header-actions .dd-workspace-actions > summary::-webkit-details-marker {
  display: none;
}
.uw-header-actions .dd-workspace-actions__menu {
  position: absolute;
  z-index: 45;
  inset-block-start: calc(100% + 8px);
  inset-inline-end: 0;
  display: grid;
  gap: 3px;
  width: 220px;
  padding: 6px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 7px;
  background: var(--paper, #fff);
  color: var(--ink, #07142f);
  box-shadow: 0 8px 26px #10254c1a;
}
.uw-header-actions .dd-workspace-actions__menu .uw-tool-help {
  display: block;
}
.unified-workspace.uw-header-actions .dd-workspace-actions__menu .uw-tool {
  justify-content: flex-start;
  width: 100%;
  gap: 10px;
  min-height: 40px;
  padding: 8px 10px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font-size: 12px;
}
.unified-workspace.uw-header-actions .dd-workspace-actions__menu .uw-tool:hover:not(:disabled) {
  background: var(--blue-soft, #edf3ff);
}
.uw-header-actions .dd-workspace-actions__menu .uw-tool-save::after {
  display: none;
}
.uw-header-actions .dd-auto-save {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 5px;
  max-width: 195px;
  min-width: 0;
  color: var(--slate, #536583);
  font-size: 11px;
  white-space: nowrap;
}
.dd-auto-save > [role='status'] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.dd-auto-save > [role='status'] > svg {
  flex: none;
}
.dd-auto-save > [role='status'] > span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.dd-auto-save[data-auto-save-status='error'] {
  color: #a33636;
}
.dd-auto-save[data-auto-save-status='saving'] > [role='status'] > svg {
  animation: dd-saving-spin 1.1s linear infinite;
}
.unified-workspace .dd-auto-save > button {
  min-height: 34px;
  padding: 4px 7px;
  border: 1px solid currentColor;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.dd-auto-save > button:disabled {
  opacity: 0.45;
  cursor: default;
}
@keyframes dd-saving-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .dd-auto-save[data-auto-save-status='saving'] > [role='status'] > svg {
    animation: none;
  }
}
.unified-workspace.dd-header-tools .uw-tool-strip,
.unified-workspace.uw-header-actions .uw-tool-strip {
  border-color: transparent;
  border-radius: 5px;
  padding: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.unified-workspace.uw-header-actions .uw-tool {
  min-height: 38px;
}
.unified-workspace.uw-header-actions .uw-tool-save {
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  min-width: 86px;
}
.unified-workspace.uw-header-actions .uw-scene-status {
  max-width: 155px;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 11px;
}
.unified-workspace .p-floating-workspace .uw-viewport-tools--drawing-desk > .uw-scene-top {
  inset-block-start: 16px;
  inset-inline-start: 16px;
  inset-inline-end: auto;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  max-width: calc(100% - 230px);
}
.dd-view-settings,
.dd-cabinet-settings-menu {
  position: relative;
  width: max-content;
  max-width: 100%;
  pointer-events: auto;
  color: var(--ink, #07142f);
  font-family: var(--font-ui, Inter, Shabnam, system-ui, sans-serif);
  font-size: 13px;
}
.dd-labelled-control {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
  min-height: 52px;
  padding: 7px 10px 7px 8px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 7px;
  background: var(--paper, #fff);
  color: #10254c;
  list-style: none;
  cursor: pointer;
  user-select: none;
  text-align: start;
  box-shadow:
    0 3px 10px #10254c0a,
    0 1px 2px #10254c06;
  transition:
    border-color 140ms,
    background-color 140ms,
    box-shadow 140ms;
}
.dd-labelled-control::-webkit-details-marker {
  display: none;
}
.dd-control-icon {
  display: inline-grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #e7edf5;
  border-radius: 5px;
  background: #f5f8fc;
  color: #294462;
}
.dd-control-copy {
  display: grid;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 170px;
  gap: 2px;
}
.dd-control-copy > strong {
  color: inherit;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}
.dd-control-copy > small {
  display: block;
  color: var(--slate, #536583);
  font-size: 10px;
  line-height: 1.4;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.dd-control-chevron {
  flex: none;
  margin-inline-start: 6px;
  color: var(--slate, #536583);
  transition: transform 140ms;
}
.dd-labelled-control:hover {
  border-color: #bdcce1;
  background: #fbfcff;
  box-shadow: 0 3px 12px #10254c10;
}
:is(.dd-view-settings, .dd-cabinet-settings-menu)[open] > .dd-labelled-control,
.dd-labelled-control[data-active='true'] {
  border-color: #b9cdff;
  background: #fff;
  color: #153d8a;
}
:is(.dd-view-settings, .dd-cabinet-settings-menu)[open] .dd-control-icon,
.dd-labelled-control[data-active='true'] .dd-control-icon {
  color: var(--blue, #2468ff);
  background: var(--blue-soft, #edf3ff);
  border-color: #d9e4ff;
}
:is(.dd-view-settings, .dd-cabinet-settings-menu)[open]
  > .dd-labelled-control
  > .dd-control-chevron {
  transform: rotate(180deg);
}
.dd-view-settings__body,
.dd-cabinet-settings-menu__options {
  position: absolute;
  inset-block-start: calc(100% + 9px);
  inset-inline-start: 0;
  z-index: 15;
  width: min(320px, calc(100vw - 40px));
  padding: 0;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 11px;
  background: var(--paper, #fff);
  color: #10254c;
  box-shadow:
    0 8px 25px #122e5814,
    0 2px 5px #122e5808;
  max-height: min(590px, calc(100dvh - 210px));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b7c3d5 #f5f7f7;
}
.dd-settings-heading {
  display: grid;
  gap: 4px;
  padding: 16px;
  border-bottom: 1px solid var(--line, #dbe3ed);
}
.dd-settings-heading > strong {
  color: #10254c;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
}
.dd-settings-heading > span {
  color: var(--slate, #536583);
  font-size: 11px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.dd-settings-section,
.dd-view-settings__toggles {
  min-width: 0;
  margin: 0;
  padding: 15px 16px 16px;
  border: 0;
  border-bottom: 1px solid var(--line, #dbe3ed);
}
.dd-settings-section > h3,
.dd-view-settings__toggles > h3 {
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
  color: var(--slate, #536583);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.4;
}
.dd-control-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(125px, 150px);
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
}
.dd-control-field:last-child {
  margin-bottom: 0;
}
.dd-control-field > span {
  font-size: 12px;
  line-height: 1.5;
}
.unified-workspace .dd-control-field select {
  width: 100%;
  min-height: 38px;
  min-width: 0;
  margin: 0;
  padding: 7px 8px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  color: #10254c;
  background: var(--paper, #fff);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.unified-workspace .dd-control-field select:hover {
  border-color: #b8c8df;
}
.dd-view-settings__toggles {
  display: grid;
  gap: 4px;
}
.dd-view-settings__toggles > h3 {
  margin-bottom: 8px;
}
.dd-view-settings__toggles label {
  display: grid;
  grid-template-columns: 16px 18px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 38px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: #294462;
  font-size: 12px;
  line-height: 1.4;
  cursor: pointer;
}
.dd-view-settings__toggles label:hover {
  background: #f5f8fc;
}
.dd-view-settings__toggles label:has(input:checked) {
  border-color: #e0e9ff;
  color: #153d8a;
  background: #f2f6ff;
}
.dd-view-settings__toggles input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--blue, #2468ff);
}
.dd-view-settings__body .dd-settings-footnote {
  color: var(--slate, #536583);
  margin: 0;
  padding: 12px 16px;
  font-size: 11px;
  line-height: 1.5;
  background: #fafbfd;
}
.uw-cabinet-settings--drawing-desk {
  inset: 20px;
  --uw-setting-origin-x: 100%;
  --uw-setting-origin-y: 0;
}
.uw-cabinet-settings--drawing-desk .dd-cabinet-settings-all {
  position: relative;
  inset: auto;
  flex: none;
  align-self: stretch;
  width: auto;
  padding: 0 18px;
}
.dd-cabinet-settings-all__trigger {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-height: 44px;
  color: var(--blue, #2468ff);
  font-size: 12px;
  list-style: none;
  cursor: pointer;
}
.dd-cabinet-settings-all__trigger::-webkit-details-marker {
  display: none;
}
.uw-cabinet-settings--drawing-desk .dd-cabinet-settings-all .dd-cabinet-settings-menu__options {
  top: auto;
  right: 0;
  bottom: calc(100% + 6px);
  left: auto;
  inset-inline-start: auto;
  inset-inline-end: 0;
  width: min(290px, calc(100vw - 64px));
  max-height: min(390px, calc(100dvh - 210px));
}
.dd-panel-sections {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  gap: 4px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line, #dbe3ed);
}
.unified-workspace .producer-app .dd-panel-sections button {
  min-height: 32px;
  padding: 5px 8px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: var(--slate, #536583);
  font: inherit;
  font-size: 11px;
}
.unified-workspace .producer-app .dd-panel-sections button[aria-pressed='true'] {
  border-color: #d9e4ff;
  background: var(--blue-soft, #edf3ff);
  color: var(--selectedText, #153d8a);
}
.dd-installed-size {
  margin: 18px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--line, #dbe3ed);
  color: var(--slate, #536583);
  font-size: 12px;
}
.dd-installed-size dd {
  margin: 6px 0 0;
  padding: 9px 12px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--canvas, #f5f7f7);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.dd-view-settings__body.dd-view-settings__body--embedded {
  position: static;
  inset: auto;
  width: 100%;
  max-height: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.dd-settings-group {
  padding: 10px 6px 6px;
}
.dd-settings-group + .dd-settings-group {
  border-top: 1px solid var(--line, #dbe3ed);
}
.dd-settings-group > h3 {
  margin: 0 0 6px;
  padding-inline: 10px;
  color: var(--slate, #536583);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.5;
}
.unified-workspace .uw-cabinet-settings--drawing-desk .dd-cabinet-settings-menu__options button {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  width: 100%;
  margin: 0 0 2px;
  padding: 7px 10px 7px 7px;
  border: 1px solid transparent;
  border-inline-start-width: 3px;
  border-radius: 5px;
  background: var(--paper, #fff);
  color: #10254c;
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
  text-align: start;
  cursor: pointer;
}
.dd-setting-icon {
  display: inline-grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 5px;
  background: #f4f7fb;
  color: #536583;
}
.dd-setting-label {
  flex: 1;
  min-width: 0;
}
.dd-setting-state {
  flex: none;
  color: #9aabc2;
}
[dir='rtl'] .dd-setting-state.lucide-chevron-right {
  transform: rotate(180deg);
}
.unified-workspace
  .uw-cabinet-settings--drawing-desk
  .dd-cabinet-settings-menu__options
  button:hover {
  background: #f5f8fc;
}
.unified-workspace
  .uw-cabinet-settings--drawing-desk
  .dd-cabinet-settings-menu__options
  button[aria-expanded='true'] {
  border-color: #dfe8ff;
  border-inline-start-color: var(--blue, #2468ff);
  color: #153d8a;
  background: var(--blue-soft, #edf3ff);
}
.dd-cabinet-settings-menu__options
  button[aria-expanded='true']
  :is(.dd-setting-icon, .dd-setting-state) {
  color: var(--blue, #2468ff);
}
.dd-cabinet-settings-menu__options button[aria-expanded='true'] .dd-setting-icon {
  background: #fff;
}
.dd-settings-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  min-height: 20px;
  padding: 2px 5px;
  border-radius: 4px;
  color: var(--slate, #536583);
  background: #eef2f8;
  font-size: 10px;
}
.unified-workspace
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .uw-cabinet-settings__panel.uw-cabinet-materials {
  top: 0;
  right: 120px;
  bottom: auto;
  left: auto;
  width: min(400px, calc(100% - 120px));
  max-width: 400px;
  height: min(560px, 100%);
  border-radius: 11px;
  box-shadow: 0 6px 22px #10254c1a;
  animation: none;
}
.uw-cabinet-settings--drawing-desk .uw-cabinet-settings__header {
  padding: 16px;
  gap: 10px;
}
.uw-cabinet-settings--drawing-desk .uw-cabinet-settings__section {
  padding: 18px;
}
.uw-cabinet-settings--drawing-desk .uw-cabinet-settings__footer {
  padding: 12px 18px;
}
.unified-workspace
  .producer-app
  .uw-cabinet-settings--drawing-desk
  .uw-cabinet-settings__heading
  h2 {
  font-size: 17px;
}
:is(.dd-view-settings, .dd-cabinet-settings-menu)
  :is(button, summary, select, input):focus-visible {
  outline: 2px solid var(--blue, #2468ff);
  outline-offset: 3px;
}

.dd-number-hint {
  margin: 12px 0 0;
  color: var(--slate, #536583);
  font-size: 11px;
  line-height: 1.5;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--adjustable {
  direction: ltr;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px 44px;
  gap: 0;
  width: 230px;
  max-width: 66%;
  height: 46px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--paper, #fff);
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--adjustable
  > input {
  height: 44px;
  padding-right: 40px !important;
  padding-left: 10px !important;
  border: 0;
  box-shadow: none;
  background: transparent;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--adjustable
  > span:first-of-type {
  right: 100px;
  left: auto;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number
  > .p-number-step {
  position: static;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--line, #dbe3ed);
  border-radius: 0;
  background: transparent;
  color: var(--ink, #07142f);
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number
  > .p-number-step:last-child {
  border-radius: 0 4px 4px 0;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number
  > .p-number-step:hover:not(:disabled) {
  background: var(--blue-soft, #edf3ff);
  color: var(--blue, #2468ff);
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--fixed {
  direction: ltr;
  width: 230px;
  max-width: 66%;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--fixed
  > input {
  width: calc(100% - 78px);
  padding-right: 40px !important;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--fixed
  > span:first-of-type {
  right: 90px;
  left: auto;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-number--fixed
  > .p-number-fixed {
  top: 0;
  right: 0;
  left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 68px;
  height: 100%;
  color: var(--slate, #536583);
  font-size: 11px;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-help {
  font-size: 11px;
  line-height: 1.5;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .p-name-field {
  margin-bottom: 16px;
  font-size: 12px;
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings
  .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
  .uw-cabinet-settings__section--dimensions
  .p-dimension-slider {
  display: none;
}

@media (max-height: 650px) and (min-width: 901px) {
  .unified-workspace
    .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
    .uw-cabinet-settings__panel.uw-cabinet-materials {
    right: 204px;
    width: min(400px, calc(100% - 204px));
  }
}
@media (max-width: 900px) {
  .unified-workspace .p-floating-workspace .uw-viewport-tools--drawing-desk > .uw-scene-top {
    max-width: calc(100% - 32px);
  }
  .uw-cabinet-settings--drawing-desk {
    position: relative;
    inset: auto;
    padding: 12px;
    background: var(--canvas, #f5f7f7);
  }
  .unified-workspace
    .uw-cabinet-settings.uw-cabinet-settings--drawing-desk
    .uw-cabinet-settings__panel.uw-cabinet-materials {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
    height: min(560px, 74dvh);
  }
  .unified-workspace.uw-header-actions .uw-scene-status {
    display: none;
  }
}
@media (max-width: 560px) {
  .dd-labelled-control {
    min-height: 52px;
    padding-inline: 8px;
  }
  .unified-workspace .dd-control-field select {
    min-height: 44px;
  }
  .dd-view-settings__toggles label {
    min-height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dd-labelled-control,
  .dd-control-chevron {
    transition: none;
  }
}
/* Cabinet and inspector share the shell's bounded content height. Only the
   Cabinet mount changes; Room and the full Panels workspace keep their scrollers. */
.workspace--focused .uw-mounted-view:has(> .p-floating-workspace--navigator) {
  overflow: hidden;
}

/* Selected Nested Navigator: the same native editors, one persistent inspector.
   Physical canvas geometry stays LTR; text follows the current product locale. */
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings.p-floating-workspace--navigator {
  --cn-width: clamp(490px, 38vw, 600px);
  --cn-inset: 0px;
  --cn-pending-text: #8c5200;
  --cn-pending-mark: #e69a21;
  display: block;
  position: relative;
  --p-canvas: var(--paper, #fff);
  height: 100%;
  max-height: 100%;
  min-height: 0;
  background: var(--paper, #fff);
}
.unified-workspace .p-floating-workspace--navigator .p-empty {
  color: var(--ink, #07142f);
}
.unified-workspace
  .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings.p-floating-workspace--navigator
  .p-stage {
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(var(--cn-width) + var(--cn-inset) * 2);
  left: 0;
  width: calc(100% - var(--cn-width) - var(--cn-inset) * 2);
  height: 100%;
  min-height: 0;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 10px;
  background: var(--paper, #fff);
}
.unified-workspace .p-floating-workspace--navigator .cn-root {
  position: absolute;
  inset: 0 var(--cn-inset) 0 auto;
  z-index: 12;
  width: var(--cn-width);
  height: 100%;
  pointer-events: none;
  color: var(--ink, #07142f);
  font-family: var(--font-ui, Inter, Shabnam, system-ui, sans-serif);
  font-size: 14px;
  line-height: 1.5;
}
.cn-root[hidden],
.cn-root [hidden],
.cn-canvas-actions[hidden] {
  display: none !important;
}
.unified-workspace .p-floating-workspace--navigator .cn-root[dir='rtl'] {
  font-family: var(--font-fa, Shabnam, Inter, system-ui, sans-serif);
}
.cn-panel {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 10px;
  background: var(--paper, #fff);
  overflow: hidden;
  pointer-events: auto;
}
.cn-root.is-closing .cn-panel {
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease;
}
.cn-header {
  display: flex;
  flex: none;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 18px 16px;
}
.cn-header > div:first-child {
  min-width: 0;
}
.cn-header h2 {
  margin: 0;
  color: inherit;
  font-size: 21px;
  font-weight: 650;
  line-height: 1.35;
}
.cn-header p {
  margin: 4px 0 0;
  color: var(--slate, #536583);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.cn-unit {
  display: flex;
  flex: none;
  gap: 12px;
  align-items: center;
  margin: 0 18px 16px;
  padding: 10px 12px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 6px;
  min-width: 0;
}
.cn-thumbnail {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 54px;
  place-items: center;
  overflow: hidden;
}
.cn-thumbnail > * {
  width: 100%;
  height: 100%;
}
.cn-thumbnail canvas {
  display: block;
}
.cn-unit-copy {
  flex: 1;
  min-width: 0;
}
.cn-unit-copy p {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 3px 0 0;
  color: var(--slate, #536583);
  font-size: 12px;
}
.cn-unit-copy p > span {
  padding-inline-start: 12px;
  border-inline-start: 1px solid var(--line, #dbe3ed);
}
.unified-workspace .cn-panel .p-settings-unit-selector {
  display: block;
  margin: 0;
}
.cn-panel .p-settings-unit-selector > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-settings-unit-selector select {
  width: 100%;
  min-height: 30px;
  padding: 1px 24px 1px 0;
  border: 0;
  background-color: transparent;
  font-size: 14px;
  font-weight: 650;
}
.cn-content {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr) minmax(155px, 34%);
  min-width: 0;
  min-height: 0;
  border-top: 1px solid var(--line, #dbe3ed);
  direction: ltr;
}
.cn-navigation {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  padding: 12px 10px;
  border-left: 1px solid var(--line, #dbe3ed);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.cn-navigation,
.cn-detail {
  direction: inherit;
}
.cn-root[dir='rtl'] :is(.cn-navigation, .cn-detail) {
  direction: rtl;
}
.cn-group {
  margin-bottom: 8px;
}
.unified-workspace .producer-app .cn-group-button,
.unified-workspace .producer-app .cn-leaf {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 42px;
  margin: 0;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: inherit;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  text-align: start;
  cursor: pointer;
}
.cn-group-button > svg {
  flex: none;
}
.cn-group-button > span {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.unified-workspace .producer-app .cn-group-button.is-current,
.unified-workspace .producer-app .cn-leaf[aria-current='page'] {
  color: var(--blue, #2468ff);
  background: var(--blue-soft, #edf3ff);
}
.cn-leaves {
  position: relative;
  margin: 4px 0 12px 18px;
  padding-left: 8px;
  border-left: 1px solid var(--line, #dbe3ed);
}
.unified-workspace .producer-app .cn-leaf {
  position: relative;
  min-height: 38px;
  padding-inline: 12px 6px;
  font-weight: 400;
}
.cn-leaf[aria-current='page']::before {
  content: '';
  position: absolute;
  left: -12px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue, #2468ff);
}
.cn-detail {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
}
.cn-breadcrumb {
  display: flex;
  flex: none;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 14px 16px 9px;
  color: var(--slate, #536583);
  font-size: 11px;
}
.cn-breadcrumb h3 {
  margin: 0;
  color: var(--ink, #07142f);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.5;
  outline-offset: 4px;
}
.cn-body {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 8px 16px 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.cn-section {
  min-width: 0;
}
.cn-section-heading {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.4;
}
.cn-section-intro {
  margin: 0 0 18px;
  color: var(--slate, #536583);
  font-size: 12px;
}
.cn-section + .cn-section:not([hidden]) {
  margin-top: 16px;
}
.unified-workspace .producer-app .cn-back {
  display: none;
}
.cn-status {
  flex: none;
  min-height: 46px;
  padding: 10px 18px;
  border-top: 1px solid var(--line, #dbe3ed);
  color: var(--slate, #536583);
  font-size: 12px;
}
.cn-status:empty {
  display: none;
}
.cn-status > p {
  margin: 0;
}
.cn-footer {
  flex: none;
  padding: 10px 14px 14px;
  border-top: 1px solid var(--line, #dbe3ed);
  background: var(--paper, #fff);
}
.cn-footer > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.cn-footer .manager-edge-apply-row {
  display: contents;
}
.cn-footer .uw-panel-scope {
  flex: 1 1 140px;
  order: 1;
  margin: 0;
}
.cn-footer .manager-edge-editor__apply {
  order: 3;
}
.cn-footer .p-button {
  order: 2;
}
.cn-footer [role='alert'] {
  flex: 1 1 100%;
  order: 4;
  margin: 4px 0 0;
}
.cn-pending {
  margin: 0 0 8px;
  color: var(--cn-pending-text, #8c5200);
  font-size: 12px;
}
.cn-pending::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-inline-end: 7px;
  border-radius: 50%;
  background: var(--cn-pending-mark, #e69a21);
}
.cn-canvas-actions {
  position: absolute;
  z-index: 7;
  right: 94px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 6px;
  direction: ltr;
}
.unified-workspace .producer-app .cn-canvas-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--paper, #fff);
  color: var(--ink, #07142f);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.cn-open > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.unified-workspace .producer-app .cn-canvas-actions .cn-open {
  width: 40px;
  padding: 0;
}
.cn-fit > svg {
  color: var(--blue, #2468ff);
}

/* Reset inherited floating-card density within this business-named variant. */
.unified-workspace .p-floating-workspace--navigator .cn-panel :is(button, input, select) {
  font-family: inherit;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel :is(button, select):not(:disabled) {
  cursor: pointer;
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  :is(button, input, select):focus-visible,
.unified-workspace .producer-app .cn-canvas-actions button:focus-visible {
  outline: 2px solid var(--blue, #2468ff);
  outline-offset: 2px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel :is(button, select, input):disabled {
  cursor: default;
  opacity: 0.55;
}
.unified-workspace .producer-app .cn-panel button:hover:not(:disabled),
.unified-workspace .producer-app .cn-canvas-actions button:hover:not(:disabled) {
  background-color: var(--blue-soft, #edf3ff);
  color: var(--blue, #2468ff);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-settings-fields {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  .p-settings-section--body
  > .p-settings-fields {
  display: flex;
  flex-direction: column;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-name-field {
  display: grid;
  order: 2;
  gap: 6px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line, #dbe3ed);
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-name-field input {
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  color: inherit;
  background: var(--paper, #fff);
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-field {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
  min-height: 44px;
  margin: 0 0 8px;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number {
  width: min(175px, 100%);
  min-width: 128px;
  min-height: 36px;
  direction: ltr;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  overflow: visible;
  background: var(--paper, #fff);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number input {
  min-width: 0;
  width: 100%;
  min-height: 34px;
  height: 34px;
  padding: 5px 2px;
  border: 0;
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number button {
  width: 30px;
  min-width: 30px;
  min-height: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number small {
  padding-inline: 4px;
  font-size: 10px;
  color: var(--slate, #536583);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--adjustable {
  display: grid;
  grid-template-columns: 30px minmax(55px, 1fr) 30px 25px;
  gap: 0;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--adjustable > input {
  grid-column: 2;
  grid-row: 1;
  padding-inline: 4px !important;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--adjustable > span {
  position: static;
  grid-column: 4;
  grid-row: 1;
  justify-self: center;
  font-size: 10px;
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  .p-number-step[data-number-direction='decrease'] {
  grid-column: 1;
  grid-row: 1;
  border-inline-end: 1px solid var(--line, #dbe3ed);
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  .p-number-step[data-number-direction='increase'] {
  grid-column: 3;
  grid-row: 1;
  border-inline-start: 1px solid var(--line, #dbe3ed);
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  .p-number
  > .p-number-step:not(:disabled) {
  cursor: ew-resize;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--fixed {
  display: grid;
  grid-template-columns: minmax(50px, 1fr) 25px 45px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--fixed > input {
  grid-column: 1;
  grid-row: 1;
  padding-inline: 4px !important;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--fixed > span {
  position: static;
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-number--fixed > .p-number-fixed {
  grid-column: 3;
  font-size: 10px;
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-panel
  .p-number:has(input[aria-invalid='true']) {
  border-color: var(--danger, #b73838);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-stepper .p-field {
  display: block;
  min-height: 0;
  margin: 0;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-stepper .p-number {
  width: 51px;
  min-width: 0;
  max-width: none;
  border: 0;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-stepper button {
  width: 35px;
  min-width: 35px;
  min-height: 36px;
  height: 36px;
}
.unified-workspace .p-floating-workspace--navigator .cn-footer .manager-edge-editor__apply {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--blue, #2468ff);
  border-radius: 5px;
  background: var(--blue, #2468ff);
  color: var(--paper, #fff);
  font-size: 12px;
}
.unified-workspace
  .p-floating-workspace--navigator
  .cn-footer
  .manager-edge-editor__apply:hover:not(:disabled) {
  background: var(--primary, #10254c);
  border-color: var(--primary, #10254c);
  color: var(--paper, #fff);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-select {
  display: grid;
  min-width: 0;
  gap: 7px;
  margin: 0 0 18px;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel select {
  max-width: 100%;
  min-height: 38px;
  padding: 7px 25px 7px 10px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background-color: var(--paper, #fff);
  color: inherit;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-help {
  margin: 6px 0 16px;
  color: var(--slate, #536583);
  font-size: 11px;
  line-height: 1.6;
}
.cn-panel .p-settings-lock-note {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 14px;
  color: var(--slate, #536583);
  font-size: 11px;
}
.cn-panel .p-settings-plinth-summary {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line, #dbe3ed);
}
.cn-panel .p-settings-plinth-summary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
}
.cn-panel .p-settings-plinth-summary output {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cn-panel .p-settings-plinth-summary > button {
  min-height: 34px;
  margin-top: 5px;
  padding: 5px 0;
  border: 0;
  background: transparent;
  color: var(--blue, #2468ff);
  font-size: 12px;
}
.cn-panel .p-settings-plinth-summary button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--blue, #2468ff);
  font-size: 11px;
}
.cn-panel .p-gola-source-construction {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--line, #dbe3ed);
}
.cn-panel .p-gola-source-construction summary {
  cursor: pointer;
  font-size: 13px;
}
.cn-panel .p-gola-source-construction summary > span {
  display: block;
  margin-top: 4px;
  color: var(--slate, #536583);
  font-size: 11px;
}
.cn-panel .p-installed-summary {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line, #dbe3ed);
}
.cn-panel .p-installed-summary h3 {
  margin: 0 0 14px;
  font-size: 14px;
}
.cn-panel .p-installed-summary dl {
  display: grid;
  gap: 10px;
  margin: 0;
}
.cn-panel .p-installed-summary dl > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.cn-panel .p-installed-summary dt {
  font-size: 13px;
}
.cn-panel .p-installed-summary dd {
  flex: 0 1 150px;
  min-width: 0;
  margin: 0;
  padding: 7px 10px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  background: var(--canvas, #f5f7f7);
  text-align: end;
  font-size: 13px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-installed output {
  width: auto;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  font-size: 13px;
}
.cn-panel .p-gola-choice-field {
  display: grid;
  gap: 8px;
  margin: 20px 0 0;
  font-size: 13px;
}
.cn-panel .p-gola-choice-group {
  display: flex;
  width: 100%;
  min-width: 0;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-gola-choice {
  flex: 1;
  min-height: 38px;
  margin: 0;
  padding: 7px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 0;
  background: var(--paper, #fff);
  color: inherit;
  font: inherit;
  font-size: 13px;
}
.cn-panel .p-gola-choice:first-child {
  border-radius: 5px 0 0 5px !important;
}
.cn-panel .p-gola-choice:last-child {
  border-radius: 0 5px 5px 0 !important;
  margin-left: -1px !important;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-gola-choice[aria-pressed='true'] {
  z-index: 1;
  border-color: var(--blue, #2468ff);
  background: var(--blue-soft, #edf3ff);
  color: var(--blue, #2468ff);
}
.cn-panel .p-gola-settings > h3 {
  margin: 14px 0 0;
  font-size: 14px;
}
.cn-panel .p-gola-dimensions-link {
  margin-top: 16px;
  color: var(--blue, #2468ff);
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .p-tree-row {
  min-height: 40px;
  padding: 8px 0;
  font-size: 13px;
}
.cn-panel .p-tree-row > small {
  font-size: 11px;
}
.cn-panel .p-validation,
.cn-panel .p-disclosure {
  margin-top: 18px;
  font-size: 12px;
}
.cn-panel .p-validation summary,
.cn-panel .p-disclosure summary {
  cursor: pointer;
}
.cn-panel .uw-cabinet-material-role {
  position: relative;
  padding: 12px 0;
  border-bottom: 1px solid var(--line, #dbe3ed);
}
.cn-panel .uw-cabinet-material-role:first-child {
  padding-top: 0;
}
.cn-panel .uw-cabinet-material-thickness {
  position: absolute;
  inset-inline-end: 0;
  top: 12px;
  color: var(--slate, #536583);
  font-size: 11px;
}
.cn-panel .uw-cabinet-material-role:first-child .uw-cabinet-material-thickness {
  top: 0;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-part-picker {
  gap: 7px;
  margin: 0;
  font-size: 13px;
}
.cn-panel .manager-part-picker > span {
  padding-inline-end: 58px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-part-picker__control {
  min-height: 40px;
  grid-template-columns: 32px minmax(0, 1fr) 14px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-part-picker__control select {
  min-height: 38px;
  padding: 6px 0;
  border: 0;
  background: transparent;
  font-size: 12px;
}
.cn-panel .manager-part-picker__control .manager-color-swatch {
  width: 30px;
  height: 30px;
}
.cn-panel .uw-cabinet-role-pickers > .p-help {
  margin-top: 14px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .uw-panel-preview-picker {
  margin-bottom: 16px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .uw-panel-preview-picker > span {
  position: static;
  width: auto;
  height: auto;
  clip-path: none;
}
.cn-panel .uw-panel-source-summary > strong {
  display: block;
  margin: 0 0 8px;
  font-size: 14px;
}
.cn-panel .uw-panel-source-summary dl {
  display: grid;
  gap: 8px;
  margin: 0;
}
.cn-panel .uw-panel-source-summary dl > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 8px;
}
.cn-panel .uw-panel-source-summary :is(dt, dd) {
  margin: 0;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.cn-panel .uw-panel-source-summary :is(dt, p) {
  color: var(--slate, #536583);
  font-size: 11px;
}
.cn-root:not([data-active-setting='selection']) .uw-panel-source-summary dl > div:not(:last-child) {
  display: none;
}
.cn-root:not([data-active-setting='selection']) .uw-panel-source-summary dl > div:last-child {
  display: block;
}
.cn-root:not([data-active-setting='selection']) .uw-panel-source-summary dl > div:last-child dt {
  display: none;
}
.cn-panel .p-field-error {
  flex: 1 1 100%;
  max-width: 100%;
  font-size: 12px;
  color: var(--danger, #b73838);
}
.cn-panel .manager-edge-canvas {
  min-height: 0;
  padding: 42px 34px;
}
.cn-panel .manager-edge-canvas__dimensions {
  position: static;
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
}
.cn-panel .manager-edge-canvas__dimensions b {
  display: none;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-edge-board {
  width: min(100%, calc(128px * var(--board-ratio)));
}
.cn-panel .manager-edge-board__center {
  display: none;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-edge-operations {
  display: flex;
  gap: 0;
  margin-top: 10px;
}
.unified-workspace .p-floating-workspace--navigator .cn-panel .manager-edge-operations button {
  flex: 1;
  min-width: 0;
  min-height: 40px;
  padding: 6px 4px;
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 5px;
  flex-direction: row;
  font-size: 11px;
}
.cn-panel .manager-edge-operations button > svg {
  display: none;
}
.cn-panel .manager-edge-selection {
  margin: 12px 0;
  font-size: 12px;
}
.cn-panel .manager-edge-templates {
  margin-top: 12px;
}
.cn-panel .manager-edge-templates button {
  min-height: 34px;
  font-size: 11px;
}
.cn-panel .manager-edge-selection__states {
  flex-wrap: wrap;
}
.cn-panel .dd-view-settings__body--embedded {
  padding: 0;
}
.cn-panel .dd-settings-section {
  padding-inline: 0;
}
.cn-panel .dd-settings-section h3,
.cn-panel .dd-view-settings__toggles h3 {
  font-size: 14px;
}
.cn-panel .dd-view-settings__toggles label {
  padding-inline: 0;
  font-size: 13px;
}
.cn-panel .dd-view-settings__body .dd-settings-footnote {
  padding-inline: 0;
  background: transparent;
}

/* Unit commands move with their existing dialog, outside the Cabinet mount. */
.producer-app .uw-unit-dialog .p-unit-dialog-actions {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line, #dbe3ed);
}
.producer-app .uw-unit-dialog .p-unit-dialog-actions h3 {
  margin: 0 0 4px;
  font-size: 12px;
  color: var(--slate, #536583);
}
.producer-app .uw-unit-dialog .p-unit-dialog-actions p {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.producer-app .uw-unit-dialog .p-unit-dialog-actions .p-unit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.producer-app .uw-unit-dialog .p-unit-dialog-actions .p-button {
  min-height: 36px;
  margin: 0;
  padding: 7px 10px;
  font-size: 12px;
}

@media (max-width: 1250px) {
  .unified-workspace
    .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings.p-floating-workspace--navigator {
    --cn-width: clamp(460px, 48vw, 560px);
  }
  .cn-canvas-actions {
    top: 14px;
    right: 16px;
    bottom: auto;
  }
}
@media (max-width: 1000px) {
  .unified-workspace
    .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings.p-floating-workspace--navigator {
    --cn-width: min(560px, calc(100% - 24px));
  }
  .unified-workspace
    .p-floating-workspace.p-floating-workspace--focused.p-floating-workspace--settings.p-floating-workspace--navigator
    .p-stage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
  }
  .unified-workspace .p-floating-workspace--navigator .cn-root {
    top: 88px;
    right: 12px;
    height: calc(100% - 100px);
  }
  .cn-panel {
    box-shadow: 0 8px 30px #10254c16;
  }
}
@media (max-width: 650px) {
  .unified-workspace .p-floating-workspace--navigator .cn-root {
    top: 24%;
    bottom: 8px;
    right: 8px;
    width: calc(100% - 16px);
    height: auto;
  }
  .cn-header {
    padding: 12px 12px 10px;
  }
  .cn-header h2 {
    font-size: 17px;
  }
  .cn-header p {
    margin-top: 2px;
    font-size: 12px;
  }
  .cn-unit {
    gap: 8px;
    margin: 0 12px 10px;
    padding: 6px 8px;
  }
  .cn-thumbnail {
    height: 38px;
    flex-basis: 26px;
    width: 26px;
  }
  .cn-content {
    grid-template-columns: minmax(0, 1fr);
  }
  .cn-navigation,
  .cn-detail {
    grid-column: 1;
    grid-row: 1;
  }
  .cn-navigation {
    border-left: 0;
  }
  .cn-breadcrumb {
    padding: 8px 12px;
    font-size: 12px;
  }
  .cn-breadcrumb :is(.cn-parent, .cn-divider) {
    display: none;
  }
  .unified-workspace .producer-app .cn-back {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 34px;
    margin-inline-end: auto;
    padding: 4px 5px;
    border: 0;
    background: transparent;
    color: var(--blue, #2468ff);
    font: inherit;
    font-size: 12px;
  }
  .cn-body {
    padding: 8px 12px 18px;
  }
  .cn-footer {
    padding: 8px 12px;
  }
  .cn-footer .uw-panel-scope {
    flex-basis: 120px;
  }
  .cn-status {
    padding: 8px 12px;
    min-height: 40px;
  }
  .cn-canvas-actions {
    top: 8px;
    right: 8px;
    gap: 5px;
  }
  .unified-workspace .producer-app .cn-canvas-actions button {
    min-height: 36px;
    padding: 6px 8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cn-root.is-closing .cn-panel {
    transition: none;
  }
}
@media (forced-colors: active) {
  .cn-leaf[aria-current='page'],
  .cn-group-button.is-current {
    outline: 1px solid Highlight;
  }
  .cn-leaf[aria-current='page']::before {
    background: Highlight;
  }
}
.producer-app .three-scene.three-scene--drawing-desk {
  background: var(--paper, #fff);
  color: var(--ink, #07142f);
  container-type: inline-size;
  container-name: cabinet-scene;
}
.producer-app .three-scene--drawing-desk .scene-dimension {
  font-family: var(--font-ui, Inter, Shabnam, system-ui, sans-serif);
  color: var(--slate, #536583);
  background: transparent;
  translate: 0 -9px;
  padding: 2px 5px;
  font-size: 11px;
  border-radius: 3px;
  box-shadow: none;
}
.cabinet-inspection-caption {
  position: absolute;
  z-index: 3;
  left: 16px;
  right: 132px;
  bottom: 14px;
  max-width: 540px;
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  color: var(--ink, #07142f);
  background: var(--paper, #fff);
  border: 1px solid var(--line, #dbe3ed);
  border-radius: 7px;
  font: 12px/1.5 var(--font-ui, Inter, Shabnam, system-ui, sans-serif);
  pointer-events: auto;
  max-height: min(34%, 190px);
  overflow: auto;
}
.cabinet-inspection-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin: 0;
}
.cabinet-inspection-metrics > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}
.cabinet-inspection-metrics dt,
.cabinet-inspection-selection > div > span {
  color: var(--slate, #536583);
  font-size: 10px;
}
.cabinet-inspection-metrics dd {
  margin: 0;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.cabinet-inspection-selection {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding-block-start: 7px;
  border-block-start: 1px solid var(--line, #dbe3ed);
}
.cabinet-inspection-selection > div {
  flex: 1;
  min-width: 0;
  display: grid;
  overflow-wrap: anywhere;
}
.cabinet-inspection-selection strong {
  font-size: 12px;
  font-weight: 600;
}
.cabinet-inspection-selection small {
  color: var(--slate, #536583);
  font-size: 11px;
}
.producer-app .cabinet-inspection-selection > button {
  flex: none;
  width: 34px;
  height: 34px;
  color: var(--ink, #07142f);
  border: 1px solid var(--line, #dbe3ed);
  background: var(--paper, #fff);
}
.producer-app .cabinet-inspection-selection > button:hover {
  color: var(--blue, #2468ff);
  background: var(--blue-soft, #edf3ff);
}
.producer-app .cabinet-inspection-help {
  color: var(--slate, #536583);
  font-size: 10px;
  margin: 0;
}
@media (max-width: 760px) {
  .cabinet-inspection-caption {
    right: 16px;
    max-width: none;
    padding: 8px 10px;
    bottom: 10px;
  }
  .cabinet-inspection-help {
    display: none;
  }
  .cabinet-inspection-selection > button {
    min-width: 40px;
    min-height: 40px;
  }
}
@container cabinet-scene (max-width: 760px) {
  .cabinet-inspection-caption {
    right: 16px;
    max-width: none;
    padding: 8px 10px;
    bottom: 10px;
  }
  .cabinet-inspection-help {
    display: none;
  }
  .cabinet-inspection-selection > button {
    min-width: 40px;
    min-height: 40px;
  }
}
.producer-app .p-dimension-field .p-number--adjustable {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px 32px;
  gap: 4px;
  width: 190px;
}
.producer-app .p-number--adjustable > span {
  inset-inline-end: 82px;
}
.producer-app .p-number > .p-number-step {
  width: 32px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--p-line);
  border-radius: 5px;
  background: var(--paper, #fff);
  color: var(--p-ink);
  cursor: ew-resize;
  touch-action: none;
  user-select: none;
}
.producer-app .p-number > .p-number-step:disabled {
  cursor: not-allowed;
}
.producer-app .p-number--fixed {
  width: 190px;
}
.producer-app .p-number--fixed > input {
  padding-inline-end: 100px !important;
}
.producer-app .p-number--fixed > span:first-of-type {
  inset-inline-end: 58px;
}
.producer-app .p-number--fixed > .p-number-fixed {
  inset-inline-end: 9px;
  font-size: 10px;
}
.p-unit-catalogue {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.p-unit-catalogue-toolbar {
  position: relative;
  flex: none;
  padding-block-end: 14px;
}
.p-unit-catalogue-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.producer-app .p-unit-catalogue-categories > button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--p-line);
  border-radius: 6px;
  background: var(--paper, #fff);
  color: var(--p-muted);
  font-size: 12px;
  line-height: 1.4;
  text-align: start;
}
.producer-app .p-unit-catalogue-categories > button[aria-pressed='true'] {
  border-color: var(--p-blue);
  background: var(--p-active);
  color: var(--p-blue);
  font-weight: 650;
}
.p-unit-catalogue-categories > button > small {
  font-size: 10px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.p-unit-catalogue-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.p-unit-catalogue-results {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  margin-inline: -4px;
  padding: 4px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scroll-padding-block: 4px;
}
.p-unit-catalogue .p-catalogue {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.producer-app .p-unit-catalogue .p-catalogue > button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 4px 12px;
  min-width: 0;
  min-height: 68px;
  padding: 12px 14px;
  text-align: start;
  scroll-margin-block: 4px;
}
.p-unit-catalogue .p-catalogue > button > strong {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.p-unit-catalogue .p-catalogue > button > small {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.p-unit-catalogue .p-catalogue > button > svg {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  width: 17px;
  height: 17px;
  color: var(--p-blue);
}
.p-catalogue-source {
  color: var(--p-muted);
}
.p-unit-catalogue button:focus-visible {
  outline: 2px solid var(--p-blue);
  outline-offset: 2px;
}
@media (max-width: 600px) {
  .p-unit-catalogue .p-catalogue {
    grid-template-columns: minmax(0, 1fr);
  }
}
@font-face{font-family:Jakarta;src:url('/assets/PlusJakartaSans-BZU_LQer.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:Shabnam;src:url('/assets/Shabnam-Ci_87ogH.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Shabnam;src:url('/assets/Shabnam-Bold-C6MDpycz.woff2') format('woff2');font-weight:700;font-display:swap}
.producer-app{--p-ink:#0a1b3a;--p-muted:#5c7094;--p-line:#e0e7f0;--p-blue:#073874;--p-active:#eaf0ff;--p-canvas:#0b1a30;font:13px/1.5 Jakarta,system-ui,sans-serif;color:var(--p-ink);background:#f8fafc;min-height:100dvh;display:grid;grid-template-columns:270px minmax(0,1fr);grid-template-rows:72px minmax(0,1fr) auto;isolation:isolate}
.producer-app[dir=rtl]{font-family:Shabnam,Jakarta,sans-serif}
.producer-app button,.producer-app input,.producer-app select{font:inherit;color:inherit}
.producer-app button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;border-radius:6px;line-height:1.4;transition:background .15s,color .15s;min-width:0}
.producer-app button:hover:not(:disabled){background:#eef3fa}
.producer-app button:disabled{opacity:.48;cursor:not-allowed}
.producer-app button:focus-visible,.producer-app a:focus-visible,.producer-app summary:focus-visible,.producer-app input:focus-visible,.producer-app select:focus-visible,.producer-app [tabindex]:focus-visible{outline:2px solid #3573d8;outline-offset:3px}
.producer-app input,.producer-app select{border:1px solid #d6e0ee;border-radius:5px;background:#fff;min-width:0;max-width:100%;box-shadow:0 1px 2px #0a1b3a03}
.producer-app input:not([type=checkbox]){height:36px;padding:6px 9px}
.producer-app input[type=checkbox]{width:17px;height:17px;accent-color:var(--p-blue);flex:none}
.producer-app h1,.producer-app h2,.producer-app h3,.producer-app p{margin:0}
.producer-app h1{font-size:23px;line-height:1.4;letter-spacing:-.7px;font-weight:750}
.producer-app h2{font-size:18px;letter-spacing:-.35px;font-weight:750}
.producer-app h3{font-size:13px;font-weight:750}
.producer-app p{color:var(--p-muted)}
.producer-app svg{flex-shrink:0}
.producer-app a{color:var(--p-blue);text-decoration:none}
.producer-app fieldset{padding:0;margin:0;border:0;min-width:0}
.producer-app details>summary{list-style:none;cursor:pointer}
.producer-app details>summary::-webkit-details-marker{display:none}
.p-header{grid-column:1/-1;background:white;border-bottom:1px solid var(--p-line);display:flex;align-items:center;padding:0 28px;gap:52px;z-index:12}
.p-brand{width:176px;display:flex;align-items:center;flex:none;overflow:hidden;height:48px}
.p-brand img{width:180px;height:72px;max-width:none;object-fit:contain;flex:none;transform:translateX(-16px)}
.p-breadcrumb{display:flex;gap:18px;align-items:center;font-size:13px}
.p-breadcrumb strong{font-weight:500}
.p-header-actions{margin-inline-start:auto;display:flex;align-items:center;gap:16px}
.p-language{min-height:40px;padding:8px!important}
.p-avatar{display:grid;place-items:center;width:33px;height:33px;background:#e9edf3;color:#233e67;font-weight:700;border-radius:50%;border:2px solid white;outline:1px solid #e1e6ed}
.p-icon{width:36px;height:36px;padding:5px;flex:none}
.p-advanced{position:relative}
.p-advanced>summary{width:36px;height:40px;display:grid;place-items:center;border-radius:5px}
.p-advanced>div{position:absolute;inset-inline-end:0;top:48px;width:280px;padding:20px;background:#fff;border:1px solid var(--p-line);border-radius:8px;box-shadow:0 15px 40px #1324431c;z-index:30}
.p-advanced a{display:flex;align-items:center;gap:6px;margin-top:18px}
.p-rail{grid-column:1;grid-row:2/4;background:#fff;border-inline-end:1px solid var(--p-line);display:flex;flex-direction:column;min-width:0}
.p-schedule-title{display:flex;align-items:center;justify-content:space-between;padding:23px 20px 15px;gap:8px}
.p-schedule-title h2{font-size:17px;letter-spacing:-.4px}
.p-schedule-title p{font-size:12px;margin-top:3px}
.p-schedule-title>svg{color:#5a7298;flex:none}
.p-unit-list{padding:0 14px}
.producer-app .p-unit{padding:10px 8px;display:flex;width:100%;text-align:start;gap:10px;border:1px solid transparent;border-bottom:1px solid #edf1f6;border-radius:5px;min-height:72px}
.producer-app .p-unit.is-active{background:var(--p-active);border:1px solid #d9e4fb;border-inline-start:2px solid #5377e5}
.p-unit>span:nth-child(2){min-width:0;flex:1}
.p-unit strong{font-size:12px;display:block;line-height:1.5;font-weight:700;overflow-wrap:anywhere}
.p-unit small{display:block;font-size:12px;color:#4c6891;margin-top:3px;text-align:start}
.p-unit>svg{color:#56729a}
.p-unit-icon{display:grid;place-items:center;width:49px;height:53px;border:1px solid #d9e2ed;background:#f7f6f2;color:#8a7458;border-radius:5px;flex:none}
.p-unit-icon.manual{height:47px;color:#917b62;background:#fbfaf7}
.producer-app .p-button{min-height:38px;padding:9px 15px;border:1px solid #bfcde2;background:#fff;font-weight:600;font-size:12px;box-shadow:0 1px 2px #0a1b3a04}
.producer-app .p-primary{min-height:44px;padding:11px 23px;border:1px solid #082e64;background:#08366f;color:white;font-weight:650;box-shadow:0 2px 4px #061d4c0c}
.producer-app .p-primary:hover:not(:disabled){background:#104a91}
.producer-app .p-add{margin:15px 16px;width:calc(100% - 32px);min-height:40px;background:#fbfcff}
.p-structure{padding:16px 16px 22px;border-top:1px solid var(--p-line)}
.p-structure h3{margin:0 4px 13px;font-size:14px}
.producer-app .p-tree-row{display:flex;justify-content:flex-start;text-align:start;width:100%;min-height:39px;padding:9px 6px;gap:12px;font-size:12px}
.p-tree-row small{margin-inline-start:auto;color:#617496;font-size:10px}
.p-tree-row>svg:nth-child(2){color:#3b557d}
.p-zone-tree,.p-zone-children{list-style:none;padding:0;padding-inline-start:8px;border-inline-start:1px solid #cfdaed;margin:0;margin-inline-start:18px}
.p-zone-tree{margin-inline-start:26px;margin-bottom:6px}
.p-zone-children{margin-block:2px 6px}
.producer-app .p-zone{padding-inline-start:9px;gap:9px}
.p-zone>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.p-zone small{display:block;margin:1px 0 0;color:#48618e;font-size:10px}
.producer-app .p-tree-row.is-active{background:#e9edff;color:#16356d;border-inline-start:2px solid #6884dd;border-radius:4px}
.p-rail-bottom{margin-top:auto;border-top:1px solid var(--p-line);display:flex;align-items:center;gap:13px;padding:23px 22px;min-height:102px}
.p-rail-bottom strong{font-size:12px}
.p-rail-bottom p{font-size:11px;margin-top:5px}
.p-main{grid-column:2;grid-row:2;min-width:0;padding:20px 20px 14px;display:flex;flex-direction:column;gap:15px}
.p-workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 10px;min-height:51px}
.p-workspace-heading p{font-size:12px;margin-top:4px}
.p-badge{vertical-align:middle;display:inline-flex;align-items:center;justify-content:center;margin-inline-start:9px;padding:3px 9px;font-size:11px;line-height:1.4;border-radius:6px;background:#e9edff;color:#3155ad;letter-spacing:0;font-weight:550;white-space:nowrap}
.p-unit-actions{display:flex;gap:5px}
.p-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;flex:1;min-height:650px;align-items:stretch}
.p-stage{position:relative;background:var(--p-canvas);min-width:0;min-height:530px;border-radius:8px;overflow:hidden;border:1px solid #d0d8e2;isolation:isolate}
.producer-app .three-scene{position:absolute;inset:0;width:100%;height:100%;border-radius:0;background:var(--p-canvas)}
.producer-app .scene-dimension{font:600 12px/1.4 Jakarta,system-ui;color:#f5f7fe;background:#0b1a30ab;padding:3px 7px;border-radius:4px;white-space:nowrap}
.p-view-toolbar{position:absolute;top:16px;inset-inline-start:16px;display:flex;gap:2px;padding:4px;border:1px solid #52607888;border-radius:6px;background:#0c1b32e8;z-index:3;max-width:calc(100% - 112px)}
.producer-app .p-view-toolbar button{color:#e8eef9;padding:9px 10px;min-height:36px;font-size:11px;gap:7px;white-space:nowrap}
.producer-app .p-view-toolbar button:hover,.producer-app .p-view-toolbar button[aria-pressed=true]{background:#2a3c56}
.p-view-bottom{position:absolute;inset-inline:14px;bottom:14px;display:flex;align-items:center;gap:12px;color:#b5c5dd;z-index:3;font-size:10px}
.p-view-bottom>span{margin:auto;text-align:center}
.producer-app .p-view-bottom button{color:#dce8fc;background:#0b1a30c9;border:1px solid #647c984f;padding:8px;font-size:10px;min-height:34px}
.producer-app .p-view-bottom button:hover{background:#294361}
.p-inspector{background:#fff;border:1px solid var(--p-line);border-radius:7px;min-width:0;overflow:hidden;align-self:start}
.p-dimensions-section{padding:17px 17px 0}
.p-dimensions-section>h3{font-size:14px;margin-bottom:17px}
.p-name-field{display:none}
.p-field{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;min-width:0}
.p-field>label,.p-field>span{font-size:12px;flex:1}
.p-number{display:flex;align-items:center;position:relative;width:105px;flex:none}
.p-number input{width:100%;padding-inline-end:32px!important;appearance:textfield;-moz-appearance:textfield;direction:ltr}
.p-number input::-webkit-inner-spin-button,.p-number input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.p-number>span{position:absolute;inset-inline-end:9px;pointer-events:none;color:#7185a6;font-size:11px}
.p-dimension-field{row-gap:1px}
.producer-app input.p-dimension-slider{appearance:none;-webkit-appearance:none;flex-basis:100%;width:100%;height:28px;padding:0;border:0;box-shadow:none;background:transparent;cursor:ew-resize;accent-color:var(--p-blue)}
.p-dimension-slider::-webkit-slider-runnable-track{height:3px;background:#d6e0ee;border-radius:2px}
.p-dimension-slider::-moz-range-track{height:3px;background:#d6e0ee;border-radius:2px}
.p-dimension-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-7.5px;border:2px solid var(--p-blue);border-radius:50%;background:white;box-shadow:0 1px 3px #0a1b3a20}
.p-dimension-slider::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--p-blue);border-radius:50%;background:white;box-shadow:0 1px 3px #0a1b3a20}
.p-dimension-slider:disabled{opacity:.45;cursor:not-allowed}
@media(pointer:coarse){.producer-app input.p-dimension-slider{height:44px}}
.p-field-error{color:#ac3038;flex-basis:100%;font-size:11px}
.producer-app .p-field-error button{text-decoration:underline;color:#a12d38;padding:3px}
.producer-app input[aria-invalid=true]{border-color:#c3474b;background:#fff8f8}
.p-installed{margin-top:23px}
.p-installed output{width:105px;background:#eff2f7;border-radius:4px;padding:7px 9px;color:#344d77}
.p-installed small{float:right;color:#7185a6;font-size:11px}
.producer-app .p-help{font-size:10px;line-height:1.7;color:#617699;margin-top:-6px;margin-bottom:15px}
.p-stepper-row{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:20px 0;padding-top:19px;border-top:1px solid var(--p-line);font-size:12px}
.p-stepper{display:flex;align-items:center;border:1px solid #d6e0ee;border-radius:5px;max-width:144px;direction:ltr}
.p-stepper button{width:35px;height:35px;padding:0;border-radius:0}
.p-stepper .p-field{margin:0;display:block;position:relative}
.p-stepper .p-field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.p-stepper .p-number{width:51px}
.producer-app .p-stepper input{border:0;border-inline:1px solid #d6e0ee;border-radius:0;text-align:center;padding:6px!important;height:35px}
.p-stepper .p-field-error{position:absolute;top:40px;inset-inline:0;width:130px;z-index:3;background:white;box-shadow:0 2px 8px #0a1b3a20;padding:5px}
.p-opening-controls{padding:17px;border-top:1px solid var(--p-line)}
.p-opening-controls>h3{font-size:11px;color:#617699;margin-bottom:8px}
.p-select{display:block;margin:0 0 15px;min-width:0}
.p-select>span{display:block;font-weight:600;font-size:12px;margin-bottom:7px}
.p-select select{width:100%;min-height:37px;padding:7px 25px 7px 10px;font-size:12px}
[dir=rtl] .p-select select{padding:7px 10px 7px 25px}
.p-split-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.producer-app .p-split-actions .p-button{font-size:10px;padding:8px;flex:1;white-space:nowrap}
.p-opening-controls .p-stepper-row{margin:15px 0 0;border-top:0;padding-top:0}
.p-disclosure{border-top:1px solid var(--p-line);margin-top:5px}
.p-disclosure>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600;font-size:12px;padding:12px 17px}
.p-dimensions-section .p-disclosure{margin-inline:-17px}
.p-disclosure>div{padding:5px 17px 15px}
.p-disclosure[open]>summary>svg,.p-validation[open]>summary>svg:last-child{transform:rotate(180deg)}
.p-validation{border-top:1px solid var(--p-line);font-size:11px}
.p-validation>summary{display:flex;align-items:center;gap:8px;padding:15px 14px;min-height:50px}
.p-validation>summary>svg:first-child{color:#ba7b20;fill:#fff2d8}
.p-validation>summary>span{flex:1;font-weight:600;line-height:1.5}
.p-validation>div{padding:0 16px 16px}
.p-validation p{font-size:11px;margin-bottom:10px;line-height:1.8}
.producer-app .p-issue{display:flex;justify-content:space-between;text-align:start;font-size:11px;width:100%;padding:9px 0;color:#a54a21;border-top:1px solid #f0e5d9}
.p-flat-part{height:163px;display:grid;grid-template-columns:28px 1fr 28px;grid-template-rows:26px 1fr 26px;padding:8px 20px;font-size:9px;color:#5d7393;margin:12px 0 16px}
.p-flat-part>div{grid-column:2;grid-row:2;background:#f6f2ea;border:2px solid #c3a87d;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#7f6447}
.p-flat-part>div>span{font-size:17px}.p-flat-part small{font-size:9px}
.p-edge-top{grid-column:2;grid-row:1;align-self:center;text-align:center}
.p-edge-bottom{grid-column:2;grid-row:3;align-self:center;text-align:center}
.p-edge-left{grid-column:1;grid-row:2;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;justify-self:center}
.p-edge-right{grid-column:3;grid-row:2;writing-mode:vertical-rl;text-align:center;justify-self:center}
.p-edge-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.p-edge-checks label,.p-check{display:flex;align-items:center;gap:9px;font-size:12px;min-height:35px}
.p-check{margin:8px 0 14px}
.p-footer{grid-column:2;grid-row:3;background:white;border-top:1px solid var(--p-line);display:flex;align-items:center;padding:18px 22px;gap:14px;min-height:102px}
.p-estimate{min-width:0;flex:1;font-size:11px;color:#547097}
.p-estimate>span{display:block;margin-bottom:8px}.p-estimate strong{font-weight:650;color:var(--p-ink)}
.p-estimate>div{display:flex;gap:10px;align-items:center;color:#173563;font-size:11px}
.p-estimate>div>svg{color:#3a63ab}
.p-save-state{font-size:10px;color:#71819d;max-width:170px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;text-align:center}
.p-save-state small{display:block;flex-basis:100%;font-size:9px}
.producer-app .p-save{min-height:45px;white-space:nowrap;padding-inline:19px}
.producer-app .p-review{min-height:45px;min-width:169px;justify-content:space-between}
.p-spinner{width:18px;height:18px;border:2px solid #dce6fa;border-top-color:#416bd2;border-radius:50%;animation:p-spin 1s linear infinite;flex:none}
@keyframes p-spin{to{transform:rotate(360deg)}}
.p-text-button{padding:3px!important;text-decoration:underline;text-underline-offset:3px;font-size:11px!important}
.producer-app .p-error-text{color:#ac3f42;font-size:11px}
.p-access{display:flex;gap:10px;align-items:flex-start;background:#f0f4fb;border:1px solid #d9e4f4;border-radius:6px;padding:13px 16px;font-size:12px;color:#365680}
.p-access>svg{margin-top:2px}
.p-empty{min-height:650px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center}
.p-empty h1{max-width:400px;font-size:23px}
.p-toast{position:fixed;bottom:118px;left:50%;transform:translateX(-50%);border:1px solid #c0d4c8;box-shadow:0 4px 18px #071e3220;border-radius:7px;background:#f3fcf6;color:#295642;padding:13px 20px;display:flex;align-items:center;gap:9px;font-size:12px;z-index:100;max-width:90vw}
.p-modal{border:1px solid #d4deec;border-radius:12px;padding:0;width:min(550px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);color:var(--p-ink);font:inherit;box-shadow:0 24px 100px #07142f44;overflow-y:auto;margin:auto;background:white}
.p-modal::backdrop{background:#06122980;backdrop-filter:blur(3px)}
.p-modal-wide{width:min(960px,calc(100vw - 40px))}
.p-modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--p-line);padding:15px 22px;position:sticky;top:0;z-index:4;background:white}
.p-modal-head h2{font-size:19px}
.p-modal-body{padding:24px}
.p-modal-body>p{margin-bottom:20px;line-height:1.8}
.p-modal-body>.p-help{margin:0 0 20px;font-size:12px}
.p-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:23px;flex-wrap:wrap}
.p-catalogue{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.producer-app .p-catalogue>button{border:1px solid var(--p-line);padding:17px 14px;text-align:start;display:grid;grid-template-columns:1fr 20px;gap:10px;min-height:128px}
.p-catalogue>button>svg:first-child{color:#8d7758;grid-column:1}
.p-catalogue>button>strong{grid-column:1/-1;font-size:13px}
.p-catalogue>button>small{grid-column:1/-1;color:var(--p-muted);font-size:10px}
.p-catalogue>button>svg:last-child{grid-column:2;grid-row:1;color:#44628d}
.p-review-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.p-review-heading h3{font-size:18px;margin-bottom:5px}
.p-review-heading p{font-size:12px}
.p-review-totals{display:grid;grid-template-columns:repeat(3,1fr);background:#f7f9fd;border:1px solid var(--p-line);padding:20px;border-radius:7px;margin-bottom:18px;gap:12px}
.p-review-totals span{font-size:11px;color:#6680a1}
.p-review-totals strong{display:block;font-size:21px;color:var(--p-ink);margin-bottom:4px;direction:ltr}
.p-review-tabs{display:flex;border-bottom:1px solid var(--p-line);margin-top:24px;gap:5px}
.p-review-tabs button{border-radius:0!important;padding:11px 18px}
.p-review-tabs button[aria-pressed=true]{border-bottom:2px solid #2860b1;color:#164a8f}
.p-review-units>div{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--p-line)}
.p-review-units>div>div{flex:1;min-width:0}
.p-review-units small{display:block;font-size:10px;color:var(--p-muted);margin-top:5px;overflow-wrap:anywhere}
.p-review-units strong{font-size:13px}
.p-table-wrap{overflow:auto;max-height:400px;border-bottom:1px solid var(--p-line)}
.p-table-wrap table{border-collapse:collapse;font-size:11px;width:100%;min-width:660px}
.p-table-wrap td,.p-table-wrap th{text-align:start;padding:12px 9px;border-bottom:1px solid var(--p-line);vertical-align:middle}
.p-table-wrap th{background:#f7f9fd;font-size:10px;font-weight:600;position:sticky;top:0;z-index:1}
.p-table-wrap td small{display:block;font-size:9px;color:var(--p-muted);margin-top:4px}
.p-review-materials>div{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--p-line)}
.p-review-materials small{display:block;font-size:11px;color:var(--p-muted);margin-top:4px}
.p-swatch{display:block;width:45px;height:45px;border-radius:6px;border:1px solid #d7d9dc;background:#dedbd3;flex:none}
.p-swatch.warm-grey-oak{background:#b8ad9a url('/assets/material-warm-grey-oak-vI15eeD3.png') center/cover}
.p-swatch.charcoal-laminate{background:#686868}
.p-review-notice{display:flex;gap:13px;border:1px solid #e8dcc6;background:#fffbf4;border-radius:7px;padding:16px;margin-top:23px}
.p-review-notice>svg{color:#b27920;margin-top:2px}
.p-review-notice strong{font-size:12px}.p-review-notice p{font-size:11px;line-height:1.8;margin-top:5px}
.p-manual-preview,.p-scene-fallback{height:100%;min-height:400px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;color:#d1c3ac;text-align:center;padding:32px}
.p-manual-preview h2,.p-scene-fallback p{color:#dce6f5}
.p-manual-preview p{color:#a9bcd8!important}
.p-mobile-context,.p-mobile-unit-nav,.p-edit-tabs,.p-sheet-heading,.p-mobile-structure,.p-mobile-materials,.p-mobile-unit-actions{display:none}
@media(min-width:1500px){.producer-app{grid-template-columns:290px minmax(0,1fr)}.p-workspace{grid-template-columns:minmax(0,1fr) 302px;min-height:720px}.p-main{padding:24px}.p-header{gap:75px}.p-field>label{font-size:13px}.p-view-toolbar button{font-size:12px;padding-inline:16px}}
@media(min-width:1051px){.producer-app{height:100dvh;min-height:720px;grid-template-rows:72px minmax(0,1fr) 102px}.p-main{min-height:0;overflow:hidden}.p-workspace{min-height:0}.p-stage{min-height:0}.p-inspector{max-height:100%;overflow:auto}.p-rail{min-height:0;overflow:auto}.p-view-toolbar{max-width:calc(100% - 112px);flex-wrap:wrap}}
@media(max-width:1250px) and (min-width:1051px){.producer-app{grid-template-columns:235px minmax(0,1fr)}.p-workspace{grid-template-columns:minmax(0,1fr) 257px;gap:10px}.p-main{padding:17px 14px 12px}.p-header{gap:20px}.p-save-state{display:none}.p-view-toolbar{top:12px;inset-inline-start:12px;max-width:calc(100% - 100px)}.p-view-toolbar button{padding:7px;font-size:10px}.p-view-toolbar button span{display:none}.p-schedule-title{padding-inline:15px}.p-schedule-title h2{font-size:15px}.p-unit-icon{width:40px;height:45px}.p-unit strong{font-size:11px}.p-view-bottom>span{display:none}.p-view-bottom>.p-icon{margin-inline-start:auto}.p-footer{gap:10px;padding-inline:15px}.producer-app .p-review{min-width:138px;padding-inline:17px}.p-workspace-heading{padding:0}.producer-app h1{font-size:20px}}
@media(max-width:1050px){.producer-app{grid-template-columns:220px minmax(0,1fr);grid-template-rows:64px 1fr auto}.p-header{padding:0 20px;gap:20px}.p-brand{width:150px}.p-brand img{width:180px}.p-workspace{grid-template-columns:1fr;min-height:0}.p-stage{min-height:450px}.p-inspector{width:100%}.p-main{padding:16px}.p-footer{flex-wrap:wrap;gap:12px}.p-estimate{flex-basis:60%}.p-save-state{max-width:none}.p-workspace-heading{padding:0}.producer-app h1{font-size:20px}.p-rail-bottom{padding:18px 15px}.p-rail-bottom strong{font-size:11px}.p-schedule-title{padding-inline:14px}.p-schedule-title h2{font-size:15px}.p-unit-list{padding:0 8px}.p-unit-icon{width:35px;height:44px}.p-unit strong{font-size:10px}.p-unit small{font-size:10px}.p-field{max-width:100%}.p-dimensions-section{padding:18px}.p-number{width:145px}.p-dimensions-section .p-disclosure{margin-inline:-18px}.p-opening-controls{padding:18px}}
@media(max-width:760px){
 .producer-app{display:block;min-height:100dvh;background:white;padding-bottom:180px;font-size:13px}
 .p-header{height:62px;padding:0 16px;gap:15px;position:relative}.p-brand{width:143px}.p-brand img{width:175px;height:70px}.p-breadcrumb{display:none}.p-header-actions{gap:9px}.p-avatar{width:30px;height:30px}.p-language{gap:6px!important;font-size:12px!important}.p-advanced>div{width:min(300px,calc(100vw - 32px));top:46px}.p-advanced>summary{width:30px}
 .p-rail{display:none}.p-main{display:block;padding:0}.p-mobile-context{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--p-line);font-size:12px;font-weight:650}.p-mobile-context span{font-size:11px;color:#5a739b;font-weight:400}
 .p-mobile-unit-nav{display:flex;align-items:center;gap:8px;padding:8px 9px;border-bottom:1px solid var(--p-line);height:74px}
 .p-mobile-unit-nav>button:not(.p-icon){border:1px solid #d2ddeb;padding:7px 12px;flex:1;gap:13px;justify-content:flex-start;height:57px}
 .p-mobile-unit-nav>button:not(.p-icon)>svg:first-child{color:#8c765b}.p-mobile-unit-nav>button:not(.p-icon)>svg:last-child{margin-inline-start:auto;color:#305c9c}
 .p-mobile-unit-nav>button>span{min-width:0;text-align:start}.p-mobile-unit-nav strong{font-size:12px;display:block;max-width:185px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-mobile-unit-nav small{display:block;color:#5876a2;font-size:11px;margin-top:3px}
 .p-workspace-heading{display:none}.p-workspace{display:flex;flex-direction:column;gap:0}.p-stage{border-radius:0;border:0;height:365px;min-height:0;flex:none}
 .p-view-toolbar{top:12px;inset-inline-start:12px;max-width:calc(100% - 103px);padding:3px;gap:2px}.producer-app .p-view-toolbar button{padding:8px;width:35px;min-height:35px}.p-view-toolbar button span{display:none}.p-view-toolbar button:first-child::after{content:none}
 .p-view-bottom{bottom:19px;inset-inline:12px}.p-view-bottom>span{display:none}.p-view-bottom>.p-icon{margin-inline-start:auto}.producer-app .scene-dimension{font-size:10px;padding:2px 4px}
 .p-inspector{position:relative;margin-top:-8px;z-index:4;border-radius:16px 16px 0 0;border:0;overflow:visible;box-shadow:0 -3px 7px #0514280b}
 .p-sheet-heading{display:block;padding:24px 18px 15px;position:relative}.p-sheet-handle{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:39px;height:4px;background:#b9c7da;border-radius:4px}.p-sheet-heading h2{font-size:17px;letter-spacing:-.25px;display:flex;align-items:center;flex-wrap:wrap;gap:3px}.p-sheet-heading .p-badge{font-size:10px;padding:4px 8px}
 .p-edit-tabs{display:flex;border-bottom:1px solid var(--p-line);padding:0 14px;gap:4px}.p-edit-tabs>button{flex:1;padding:12px 7px;border-radius:5px 5px 0 0;min-height:44px;font-size:12px}.p-edit-tabs>button[aria-pressed=true]{border-bottom:2px solid #2459ac;background:#f7f9fd;color:#073873;font-weight:700}
 .p-dimensions-section,.p-structure-section,.p-mobile-materials{display:none}.p-tab-dimensions .p-dimensions-section,.p-tab-structure .p-manual-dimensions,.p-tab-structure .p-structure-section,.p-tab-materials .p-mobile-materials{display:block}
 .p-mobile-materials{padding:22px 20px}.p-desktop-materials{display:none}.p-mobile-structure{display:block}.p-mobile-structure .p-structure{border:0;padding:12px 17px}.p-mobile-structure .p-structure>h3{display:none}
 .producer-app .p-tree-row{min-height:44px;font-size:12px}.p-zone small{font-size:11px}.p-tree-row small{font-size:11px}.p-zone-tree{margin-bottom:3px}.p-opening-controls{border-top:1px solid var(--p-line);padding:20px}
 .p-dimensions-section{padding:22px 20px 0}.p-dimensions-section h3{display:none}.p-name-field{display:block;margin-bottom:20px}.p-name-field span{display:block;font-size:12px;margin-bottom:7px}.p-name-field input{width:100%;height:44px!important}
 .p-field{margin-bottom:14px;gap:14px}.p-field>label,.p-field>span{font-size:13px}.p-number{width:139px}.producer-app input:not([type=checkbox]){height:43px}.p-installed output{width:139px;padding:11px 9px}.producer-app .p-help{font-size:11px}.p-stepper-row{margin:22px 0;font-size:13px}.p-stepper button{width:42px;height:42px}.p-stepper .p-number{width:55px}.producer-app .p-stepper input{height:42px}.p-select select{min-height:44px;font-size:13px}.p-select>span{font-size:13px}.p-select{margin-bottom:21px}.p-split-actions{gap:10px;margin-top:24px}.producer-app .p-split-actions .p-button{font-size:11px;min-height:44px}.p-disclosure>summary{min-height:52px;font-size:12px}.p-dimensions-section .p-disclosure{margin-inline:-20px}
 .p-mobile-unit-actions{display:flex;gap:12px;padding:16px 0 20px}.p-mobile-unit-actions button{flex:1;min-height:44px!important}.p-validation>summary{min-height:54px;padding:16px 20px;font-size:12px}.p-validation>div{padding-inline:20px}.p-validation p{font-size:12px}
 .p-footer{position:fixed;bottom:0;inset-inline:0;z-index:10;display:grid;grid-template-columns:minmax(0,1fr) 146px;gap:9px 12px;min-height:0;padding:12px 15px max(12px,env(safe-area-inset-bottom));box-shadow:0 -3px 12px #15295108;background:#fffffff7;backdrop-filter:blur(12px)}
 .p-estimate{grid-column:1;grid-row:1;font-size:10px;min-width:0}.p-estimate>span{font-size:10px;line-height:1.4;margin-bottom:4px}.p-estimate>span strong{display:block}.p-estimate>div{font-size:10px;gap:6px;line-height:1.4}.p-estimate>div>svg{width:15px}.p-save-state{grid-row:3;grid-column:1/-1;font-size:9px;max-width:none;justify-content:center;gap:5px;line-height:1.3}.p-save-state small{font-size:9px;flex-basis:auto}.producer-app .p-save{grid-column:1/-1;grid-row:2;min-height:41px}.producer-app .p-review{grid-column:2;grid-row:1;min-width:0;min-height:45px;padding:11px 15px;font-size:12px;align-self:center}.p-footer .p-save>svg{display:none}
 .p-access{border-radius:0;margin:0;padding:12px 17px;border-inline:0;font-size:11px}.p-empty{min-height:450px;padding:30px}.p-empty h1{font-size:21px}.p-toast{bottom:184px;left:16px;right:16px;transform:none;max-width:none;font-size:11px}
 .p-modal,.p-modal-wide{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:10px}.p-modal-head{padding:12px 15px}.p-modal-head h2{font-size:17px}.p-modal-body{padding:19px 16px}.p-catalogue{gap:10px}.producer-app .p-catalogue>button{min-height:136px;padding:16px 12px}.p-catalogue>button>strong{font-size:12px}.p-modal .p-unit-list{padding:0}.p-modal .p-unit-icon{width:49px;height:53px}.p-modal .p-unit strong{font-size:12px}.p-modal .p-unit small{font-size:12px}.p-modal .p-schedule-title{padding:0 0 17px}.p-modal .p-add{margin:17px 0 0;width:100%}.p-review-heading h3{font-size:16px}.p-review-heading p{font-size:11px}.p-review-totals{padding:15px 12px;gap:8px}.p-review-totals strong{font-size:18px}.p-review-totals span{font-size:9px}.p-review-units>div{gap:10px;flex-wrap:wrap}.p-review-units>div>.p-button{margin-inline-start:auto;min-height:39px;padding:8px 12px}.p-review-units>div>div{flex-basis:calc(100% - 70px)}.p-modal-actions>.p-primary{font-size:12px;padding-inline:14px}.p-review-notice{padding:13px}.p-flat-part{max-width:280px;margin-inline:auto}.p-edge-checks label{min-height:40px}.p-check{min-height:44px}.p-scene-fallback,.p-manual-preview{min-height:340px}
}
@media(prefers-reduced-motion:reduce){.producer-app *{scroll-behavior:auto!important;transition:none!important}.p-spinner{animation:none}}

.producer-app .p-unit-icon .cabinet-thumbnail,.producer-app .p-mobile-thumb .cabinet-thumbnail{width:100%;height:100%;border:0;border-radius:0;background:transparent;display:block;overflow:hidden}
.p-mobile-thumb{display:block;width:43px;height:45px;flex:none;pointer-events:none}
.p-unit-icon{pointer-events:none;overflow:hidden}
.p-manual-render{display:block;width:220px;height:170px;pointer-events:none}
.p-manual-render .cabinet-thumbnail{display:block;width:100%;height:100%;border:0;background:transparent}
/* Only the connected workspace's globally hosted Units/Add unit dialogs. */
.producer-app.uw-unit-dialog-scope {
  display: contents;
  min-height: 0;
  isolation: auto;
  background: transparent;
  --p-ink: #10254c;
  --p-muted: #536583;
  --p-line: #dbe3ed;
  --p-blue: #2468ff;
  --p-active: #edf3ff;
  font-family: var(--font-ui, Inter, Shabnam, system-ui, sans-serif);
}
.producer-app.uw-unit-dialog-scope[dir='rtl'] {
  font-family: var(--font-fa, Shabnam, Inter, system-ui, sans-serif);
}
.uw-unit-dialog.p-modal {
  width: min(440px, calc(100vw - 28px));
  max-height: min(640px, calc(100dvh - 32px));
  padding: 0;
  border: 1px solid #dbe3ed;
  border-radius: 11px;
  background: #fff;
  color: #10254c;
  box-shadow:
    0 16px 55px #10254c29,
    0 3px 10px #10254c0d;
  overflow: hidden;
}
.uw-unit-dialog.p-modal[open] {
  display: flex;
  flex-direction: column;
}
.uw-unit-dialog .p-modal-head {
  position: static;
  flex: none;
  gap: 12px;
  min-height: 54px;
  padding: 10px 14px 10px 18px;
  border-bottom: 1px solid #dbe3ed;
}
.producer-app .uw-unit-dialog .p-modal-head h2 {
  min-width: 0;
  margin: 0;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.4;
}
.producer-app .uw-unit-dialog .p-modal-head .p-icon {
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  border-radius: 5px;
  color: #536583;
}
.uw-unit-dialog > .p-modal-body {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 14px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b9c5d4 #f3f6fa;
}
.uw-unit-dialog .p-modal-body > .p-help {
  margin: 0 2px 12px;
  color: #536583;
  font-size: 11px;
  line-height: 1.5;
}
.uw-unit-dialog .p-modal-body > .uw-unit-dialog__notice {
  margin: 0 0 12px;
  padding: 8px 10px;
  border: 1px solid #e4eaf3;
  border-radius: 5px;
  color: #536583;
  background: #f6f8fc;
  font-size: 11px;
  line-height: 1.5;
}
.uw-unit-dialog .p-catalogue {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.producer-app .uw-unit-dialog .p-catalogue > button {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 14px;
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  gap: 2px 8px;
  min-width: 0;
  min-height: 64px;
  padding: 9px 8px;
  border: 1px solid #dbe3ed;
  border-radius: 6px;
  background: #fff;
  color: #10254c;
  text-align: start;
}
.producer-app .uw-unit-dialog .p-catalogue > button:hover:not(:disabled) {
  border-color: #b9cdff;
  background: #f4f7ff;
}
.uw-unit-dialog .p-catalogue > button > svg:first-child {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 21px;
  height: 21px;
  color: #536583;
}
.uw-unit-dialog .p-catalogue > button > strong {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  color: inherit;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.uw-unit-dialog .p-catalogue > button > small {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  color: #536583;
  font-size: 10px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.uw-unit-dialog .p-catalogue > button > svg:last-child {
  grid-column: 3;
  grid-row: 1 / 3;
  width: 14px;
  height: 14px;
  color: #2468ff;
}
.uw-unit-dialog .p-unit-list {
  padding: 0;
}
.producer-app .uw-unit-dialog .p-unit {
  gap: 10px;
  min-height: 60px;
  margin-bottom: 4px;
  padding: 8px;
  border: 1px solid #e8edf5;
  border-radius: 6px;
  background: #fff;
}
.producer-app .uw-unit-dialog .p-unit.is-active {
  border-color: #b9cdff;
  background: #edf3ff;
}
.uw-unit-dialog .p-unit .p-unit-icon,
.uw-unit-dialog .p-unit .p-unit-icon.manual {
  width: 36px;
  height: 40px;
  border-color: #dbe3ed;
  background: #f5f8fc;
}
.uw-unit-dialog .p-unit strong {
  font-size: 12px;
  line-height: 1.4;
}
.uw-unit-dialog .p-unit small {
  margin-top: 3px;
  color: #536583;
  font-size: 10px;
  line-height: 1.4;
}
.producer-app .uw-unit-dialog .p-add {
  width: 100%;
  min-height: 36px;
  margin: 10px 0 0;
  border: 1px solid #dbe3ed;
  border-radius: 5px;
  color: #153d8a;
  background: #f5f8ff;
  font-size: 12px;
}
.producer-app .uw-unit-dialog button:focus-visible {
  outline: 2px solid #2468ff;
  outline-offset: 2px;
}
@media (max-width: 370px) {
  .uw-unit-dialog .p-catalogue {
    grid-template-columns: minmax(0, 1fr);
  }
  .producer-app .uw-unit-dialog .p-catalogue > button {
    min-height: 58px;
  }
}
.uw-plinth-runs,.uw-plinth-inspector{display:grid;gap:10px;color:var(--nw-slate-700,#425466)}
.uw-plinth-runs p,.uw-plinth-inspector p{margin:0;font-size:12px;line-height:1.55}
.uw-plinth-run-row{display:flex;flex-wrap:wrap;gap:6px}
.uw-plinth-run-row button:first-child{flex:1 1 100%}
.uw-plinth-choice{display:flex;align-items:center;gap:10px;min-height:44px;font-size:12px}
.uw-plinth-choice input{width:18px;height:18px;accent-color:#445c72}
.uw-plinth-choice small{display:block;font-size:11px}
.uw-plinth-inspector fieldset{border:1px solid #d9e2e7;border-radius:8px;padding:8px}
.uw-plinth-inspector legend{font-size:12px;font-weight:600}
.uw-plinth-runs button,.uw-plinth-actions button{min-height:44px;padding:8px;border:1px solid #d9e2e7;border-radius:8px;background:#f5f7f9;font-size:12px}
.uw-plinth-actions{display:flex;gap:8px}.uw-plinth-actions button{flex:1}
.uw-plinth-inspector [role=alert]{color:#9a4c35}
.uw-plinth-segment{fill:#dce4e8;stroke:#52687a;vector-effect:non-scaling-stroke;stroke-width:1}
.uw-plinth-segment.is-selected{stroke:#3d8bff;stroke-width:1.6}
.uw-plinth-segment:focus{outline:none;stroke:#3d8bff;stroke-width:2}
.uw-room-columns { display: grid; gap: .45rem; }
.uw-column-inspector .uw-column-datum { color: var(--p-muted, #64748b); font-size: .73rem; line-height: 1.5; }
.uw-column-inspector .uw-column-world { direction: ltr; text-align: start; font-size: .75rem; font-variant-numeric: tabular-nums; }
.uw-column-inspector .uw-column-actions { flex-wrap: wrap; }
.uw-column-inspector .uw-column-collision { font-size: .75rem; line-height: 1.5; }
.uw-column-inspector .uw-column-collision small { color: var(--p-muted, #64748b); }
.uw-column-inspector [data-column-field] { font-variant-numeric: tabular-nums; }
/* Room settings float above one full-width measured drawing surface. */
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  padding: 0;
  min-height: 480px;
  background: #f3f6f7;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(.uw-room-repair-tray) {
  grid-template-rows: minmax(0, 1fr) auto;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-center {
  position: relative;
  inset: auto;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-drawing {
  border: 0;
  border-radius: 0;
  background: #f7fafb;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode='3d'] .uw-room-drawing { background: #e6ecef; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-dock {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 16px 16px;
  background: #fff;
  font-size: 13px;
  border-inline-start: 1px solid #d8e1ec;
  scrollbar-width: thin;
  z-index: 3;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-viewport-tools > .uw-scene-top,
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-scene-top {
  inset: auto;
  inset-block-start: 16px;
  left: 20px;
  right: 88px;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-scene-bottom {
  inset: auto;
  left: 20px;
  right: 88px;
  inset-block-end: calc(var(--uw-room-caption-height, 0px) + 20px);
  justify-content: center;
  align-items: center;
  gap: 6px;
  max-width: none;
  flex-wrap: wrap;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(.uw-room-repair-tray) .uw-scene-bottom {
  inset-block-end: calc(var(--uw-room-repair-height, 210px) + var(--uw-room-caption-height, 0px) + 16px);
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-plan-hint {
  inset: auto;
  inset-inline: 16px;
  inset-block-end: 4px;
  margin: 0;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-tool-slot { display: contents; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-card {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-card > summary {
  min-height: 44px;
  padding: 10px 0;
  border-block-start: 1px solid #dfe6ef;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-card-body { padding: 0 0 12px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-card > summary > strong { font-size: 13px; }
.uw-room-dock-header {
  position: sticky;
  inset-block-start: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 60px;
  background: #fff;
  border-block-end: 1px solid #dfe6ef;
  z-index: 6;
}
.uw-room-dock-tabs { display: flex; align-self: stretch; flex: 1; min-width: 0; }
.uw-room-dock-tabs > button {
  flex: 1;
  min-width: 0;
  min-height: 44px;
  padding: 10px 8px;
  border: 0;
  border-block-end: 2px solid transparent;
  color: #123154;
  background: transparent;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.uw-room-dock-tabs > button[aria-selected='true'] { color: #135dff; border-block-end-color: #135dff; }
.uw-room-units-menu { flex: none; }
.uw-room-units-menu > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 6px 9px;
  border: 1px solid #d4dfef;
  border-radius: 6px;
  list-style: none;
  box-sizing: border-box;
  font-size: 12px;
  cursor: pointer;
}
.uw-room-units-menu > summary::-webkit-details-marker { display: none; }
.uw-room-units-options {
  position: absolute;
  inset-block-start: calc(100% + 4px);
  inset-inline: 0;
  max-height: min(360px, 55vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px;
  border: 1px solid #d5dfed;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px #2139541a;
}
.uw-room-units-options > strong { display: block; margin: 2px 8px 8px; font-size: 11px; }
.uw-room-dock-panels { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.uw-room-dock-panel { min-width: 0; padding-block-start: 14px; }
.uw-room-dock-panel[hidden] { display: none !important; }
.uw-room-workspace--focused[data-room-dock='room'] .uw-room-navigator { order: -1; }
.uw-room-workspace--focused .uw-room-dock-issues { display: grid; gap: 8px; padding-block-start: 12px; }
.uw-room-workspace--focused .uw-room-dock-issues .uw-room-issue { margin: 0; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-plan { height: 116px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock-walls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
  gap: 4px;
  margin-block: 4px 8px;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock-walls > button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3px;
  min-height: 44px;
  padding: 5px 3px;
  border: 1px solid #e2e8f0;
  font-size: 10px;
  text-align: center;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock-walls > button bdi { font-size: 9px; white-space: nowrap; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-lock { margin-block: 8px 0; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-lock p { margin-block: 5px 0; font-size: 11px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-identity { padding-block: 0 16px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-identity strong { font-size: 13px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-identity small { font-size: 11px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-inspector-tabs button { min-height: 40px; font-size: 13px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-cabinet-field {
  grid-template-columns: minmax(0, 1fr) minmax(0, 126px);
  font-size: 13px;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-cabinet-field input,
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-cabinet-field select { min-height: 38px; background: #fff; font-size: 14px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-section > summary { min-height: 44px; font-size: 13px; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-editor-link,
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock .p-button,
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dimensions,
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] .p-field { font-size: 13px; }
.uw-room-construction > summary { gap: 8px; }
.uw-room-construction > summary > span { flex: 1; }
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-repair-tray {
  grid-column: 1 / -1;
  grid-row: 2;
  min-height: 0;
  max-height: 210px;
  padding-inline: 16px;
  border-block-start: 1px solid #d8e1ec;
  background: #fff;
}
.uw-room-workspace--focused :is(.uw-room-dock-tabs button, .uw-room-units-menu summary, .uw-room-unit, .uw-room-card > summary, .uw-room-dock-walls button):focus-visible {
  outline: 2px solid #135dff;
  outline-offset: 2px;
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(> .uw-room-dock--bubbles) {
  min-height: max(480px, calc(352px + var(--uw-room-repair-height, 0px) + var(--uw-room-caption-height, 0px) + var(--uw-room-tools-bottom, 46px)));
  --uw-settings-gap: clamp(6px, calc((var(--uw-room-height, 700px) - var(--uw-room-repair-height, 0px) - var(--uw-room-caption-height, 0px) - var(--uw-room-tools-bottom, 46px) - 292px) / 4), 20px);
}
.uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-dock--bubbles {
  position: absolute;
  inset: 0;
  bottom: calc(var(--uw-room-repair-height, 0px) + var(--uw-room-caption-height, 0px) + var(--uw-room-tools-bottom, 46px) + 20px);
  grid-column: auto;
  grid-row: auto;
  display: block;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
  z-index: 8;
  pointer-events: none;
}
/* Cabinet's typography and button reset live inside producer-app. Room reuses
   the shared shell and supplies only those scoped presentation defaults. */
.uw-room-dock--bubbles .uw-cabinet-settings__bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  padding: 0;
  border: 1px solid #e3e9f2;
  border-radius: 50%;
  background: #fff;
  color: #122c53;
  box-shadow: 0 5px 16px #020b2026;
  font: inherit;
  cursor: pointer;
  transition: transform 150ms, color 150ms, border-color 150ms, box-shadow 150ms, background-color 150ms;
}
.uw-room-dock--bubbles .uw-cabinet-settings__bubble:hover { background: #f4f7ff; }
.uw-room-dock--bubbles .uw-cabinet-settings__bubble.is-active {
  border: 2px solid #135dff;
  color: #135dff;
  background: #fff;
  box-shadow: 0 0 0 2px #135dff24, 0 0 14px #135dff55;
  transform: scale(1.025);
}
.uw-room-dock--bubbles .uw-cabinet-settings__bubble:active { transform: scale(.94); }
.uw-room-dock--bubbles .uw-cabinet-settings__badge {
  position: absolute;
  top: -3px;
  right: -3px;
  display: grid;
  place-items: center;
  min-width: 18px;
  min-height: 18px;
  padding: 1px 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #b75a12;
  color: #fff;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  pointer-events: none;
}
.uw-room-dock--bubbles .uw-cabinet-settings__heading h2 {
  margin: 0;
  font-size: 19px;
  line-height: 1.5;
  font-weight: 750;
  letter-spacing: -.3px;
}
.uw-room-dock--bubbles .uw-cabinet-settings__heading p {
  margin: 2px 0 0;
  font-size: 13px;
  color: #536d98;
  overflow-wrap: anywhere;
}
.uw-room-dock--bubbles .uw-cabinet-settings__header-action {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 40px;
  padding: 4px;
  margin-top: -4px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #203958;
  font: inherit;
  cursor: pointer;
}
.uw-room-dock--bubbles .uw-cabinet-settings__header-action:hover:not(:disabled) { background: #eef3fa; }
.uw-room-dock--bubbles .uw-cabinet-settings__header-action[aria-pressed='true'] { color: #135dff; background: #edf2ff; }
.uw-room-dock--bubbles .uw-cabinet-settings__section > .uw-room-dock-panel { padding-block-start: 0; }
.uw-room-dock--bubbles .uw-room-units-options {
  position: static;
  inset: auto;
  max-height: none;
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
@media (min-width: 901px) {
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock-inspector > summary { display: none; }
}
@media (min-width: 901px) and (max-width: 1200px) {
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-dock:not(.uw-room-dock--bubbles) { padding-inline: 12px; }
}
@media (max-width: 900px) {
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    height: auto;
    min-height: 0;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(.uw-room-repair-tray) { grid-template-rows: auto auto auto; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-center {
    grid-column: 1;
    grid-row: 1;
    height: 520px;
    order: initial;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode='wall'] > .uw-room-center { height: 560px; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-dock {
    grid-column: 1;
    grid-row: 2;
    order: initial;
    max-height: 640px;
    overflow-y: auto;
    border-inline-start: 0;
    border-block-start: 1px solid #d8e1ec;
    padding-inline: 16px;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-viewport-tools > .uw-scene-top,
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-scene-top {
    position: absolute;
    inset-inline: 12px;
    left: 12px;
    right: 12px;
    inset-block-start: 12px;
    order: initial;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-scene-bottom {
    position: absolute;
    inset-inline: 12px;
    left: 12px;
    right: 12px;
    inset-block-start: auto;
    inset-block-end: auto;
    top: calc(520px - var(--uw-room-tools-bottom, 88px) - var(--uw-room-caption-height, 0px) - 16px);
    order: initial;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode='wall'] .uw-scene-bottom { top: calc(560px - var(--uw-room-tools-bottom, 88px) - var(--uw-room-caption-height, 0px) - 16px); }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-repair-tray {
    grid-row: 3;
    order: initial;
    max-height: 260px;
  }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-inspector > .uw-room-card-body { max-height: none; overflow: visible; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-inspector > summary::before { display: none; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-cabinet-field :is(input, select),
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-dock :is(button, .uw-room-units-menu > summary) { min-height: 44px; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-cabinet-field :is(input, select) { font-size: 16px; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] .uw-room-inspector-tabs button { min-height: 44px; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(.uw-room-repair-tray) .uw-scene-bottom { inset-block-end: auto; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode]:has(> .uw-room-dock--bubbles) { min-height: 0; }
  .uw-room-workspace.uw-room-workspace--focused[data-room-mode] > .uw-room-dock--bubbles {
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 2;
    max-height: none;
    padding: 0;
    border: 0;
    overflow: visible;
  }
  .uw-room-dock--bubbles .uw-cabinet-settings {
    --uw-setting-origin-x: calc((var(--uw-setting-index) + .5) * 100% / var(--uw-setting-count, 5));
  }
  .uw-room-dock--bubbles .uw-cabinet-settings__rail { grid-template-columns: repeat(var(--uw-setting-count, 5), minmax(0, 1fr)); }
  .uw-room-dock--bubbles .uw-cabinet-settings__connector { left: calc(12px + (100% - 24px) / var(--uw-setting-count, 5) * (var(--uw-setting-index) + .5)); }
  .uw-room-dock--bubbles .uw-cabinet-settings__bubble { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
  .uw-room-dock--bubbles .uw-cabinet-settings__header-action { width: 44px; height: 44px; }
}
@media (max-width: 450px) {
  .uw-room-dock--bubbles .uw-cabinet-settings__heading h2 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .uw-room-workspace--focused .uw-room-dock { scroll-behavior: auto; }
  .uw-room-dock--bubbles .uw-cabinet-settings__bubble { transition: none; }
  .uw-room-dock--bubbles .uw-cabinet-settings__bubble:is(.is-active, :active) { transform: none; }
}
/* Opt-in layout only. Cabinet panel geometry, materials and notation retain
   their canonical renderers and existing appearance. */
/* The new preview toggle must wrap alongside the classic view buttons too. */
.uw-room-workspace[data-room-presentation='classic']
  .uw-room-modes:has(.uw-drawing-desk-toggle) {
  flex-wrap: wrap;
}
.uw-room-workspace--drawing-desk {
  --dd-ink: #07142f;
  --dd-slate: #536583;
  --dd-blue: #2468ff;
  --dd-selected: #edf3ff;
  --dd-selected-text: #153d8a;
  --dd-line: #dbe3ed;
  --dd-paper: #fff;
  --dd-canvas: #f5f7f7;
  color: var(--dd-ink);
  font-variant-numeric: tabular-nums;
}
.uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode] {
  background: var(--dd-canvas);
}
.uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode] .uw-room-drawing {
  background: var(--dd-paper);
}
.uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode='3d'] .uw-room-drawing {
  background: var(--dd-canvas);
}
.uw-room-workspace--drawing-desk .uw-room-drawing .uw-plan-floor,
.uw-room-workspace--drawing-desk .uw-room-drawing .uw-plan-floor-edge {
  stroke: none;
}
.uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode]
  > .uw-viewport-tools
  > .uw-scene-top,
.uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode] > .uw-scene-top {
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--dd-line);
  border-radius: 7px;
  background: var(--dd-paper);
  box-shadow: 0 2px 10px #10254c05;
}
.uw-room-workspace--drawing-desk .dd-room-workflow {
  display: flex;
  flex: 1 0 100%;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  padding-block-end: 11px;
  border-block-end: 1px solid var(--dd-line);
  pointer-events: auto;
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool,
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 40px;
  height: auto;
  padding: 9px 13px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: var(--dd-ink);
  font: inherit;
  font-size: 13px;
  line-height: 1.3;
  cursor: pointer;
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool[aria-pressed='true'],
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool[aria-pressed='true'] {
  border-color: #c9d9ff;
  background: var(--dd-selected);
  color: var(--dd-selected-text);
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool[aria-pressed='true'] > svg,
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool[aria-pressed='true'] > svg {
  color: var(--dd-blue);
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool:hover:not(:disabled),
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool:hover:not(:disabled) {
  background: #f3f6fc;
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool:active:not(:disabled),
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool:active:not(:disabled) {
  background: #e4edff;
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool:focus-visible,
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool:focus-visible {
  outline: 2px solid var(--dd-blue);
  outline-offset: 2px;
}
.uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool:disabled,
.uw-room-workspace--drawing-desk .uw-room-modes .uw-tool:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}
.uw-room-workspace--drawing-desk .uw-room-modes {
  flex-wrap: wrap;
  gap: 4px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.uw-room-workspace--drawing-desk .uw-room-modes .uw-drawing-desk-toggle {
  margin-inline-start: 8px;
  border-inline-start-color: var(--dd-line);
  color: var(--dd-slate);
  font-size: 11px;
}
.uw-room-workspace--drawing-desk .dd-room-check-count {
  display: grid;
  place-items: center;
  min-width: 19px;
  min-height: 19px;
  padding: 1px 5px;
  border: 1px solid var(--dd-line);
  border-radius: 4px;
  color: var(--dd-slate);
  font-size: 10px;
}
@media (max-width: 900px) {
  .uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode]
    > .uw-viewport-tools
    > .uw-scene-top,
  .uw-room-workspace.uw-room-workspace--drawing-desk[data-room-mode] > .uw-scene-top {
    left: 10px;
    right: 10px;
    inset-inline: 10px;
    padding: 9px;
    gap: 8px;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow {
    gap: 4px;
    padding-block-end: 8px;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool,
  .uw-room-workspace--drawing-desk .uw-room-modes .uw-tool {
    min-height: 44px;
    gap: 6px;
    padding: 8px;
    font-size: 11px;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow > .uw-tool-help {
    flex: 1;
    min-width: 0;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool {
    width: 100%;
    white-space: normal;
    text-align: start;
    line-height: 1.45;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool > span {
    min-width: 0;
  }
  .uw-room-workspace--drawing-desk .uw-room-modes .uw-drawing-desk-toggle {
    margin-inline-start: 0;
  }
}
@media (forced-colors: active) {
  .uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool,
  .uw-room-workspace--drawing-desk .uw-room-modes .uw-tool {
    border: 1px solid ButtonText;
  }
  .uw-room-workspace--drawing-desk .dd-room-workflow .uw-tool[aria-pressed='true'],
  .uw-room-workspace--drawing-desk .uw-room-modes .uw-tool[aria-pressed='true'] {
    outline: 2px solid Highlight;
  }
}
.uw-drawing-package-action { display: grid; gap: 5px; padding: 10px 14px; border-bottom: 1px solid #e1e7ed; }
.uw-drawing-package-action button, .uw-drawing-package-dialog button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; border: 1px solid #ccd6e0; border-radius: 8px; padding: 7px 11px; background: #fff; color: #263947; font: inherit; cursor: pointer; }
.uw-drawing-package-action small { color: #647587; font-size: 11px; }
.uw-drawing-package-action button:disabled, .uw-drawing-package-dialog button:disabled { opacity: .55; cursor: default; }
.uw-drawing-package-backdrop { position: fixed; inset: 0; z-index: 1200; background: #182b4266; display: grid; place-items: center; padding: 18px; }
.uw-drawing-package-dialog { display: flex; flex-direction: column; width: min(1200px, 100%); max-height: calc(100dvh - 36px); border-radius: 14px; background: #f5f7f9; box-shadow: 0 20px 70px #14243955; overflow: auto; color: #263947; }
.uw-drawing-package-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 18px; background: #fff; border-bottom: 1px solid #dce3ea; }
.uw-drawing-package-dialog header strong { display: block; font-size: 16px; }
.uw-drawing-package-dialog header small { display: block; margin-top: 5px; font-size: 11px; overflow-wrap: anywhere; color: #647587; }
.uw-drawing-package-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; padding: 14px 18px 4px; }
.uw-drawing-package-toolbar label { display: grid; gap: 4px; font-size: 12px; flex: 1; min-width: 170px; }
.uw-drawing-package-toolbar select { width: 100%; min-height: 40px; border: 1px solid #ccd6e0; background: #fff; border-radius: 8px; padding: 6px 8px; font: inherit; }
.uw-drawing-package-note, .uw-drawing-package-dialog > p { margin: 8px 18px; font-size: 12px; color: #647587; }
.uw-drawing-package-preview { margin: 12px 18px; overflow: auto; direction: ltr; min-height: 180px; border: 1px solid #ccd6e0; background: #dce3e8; }
.uw-drawing-package-preview svg { display: block; width: 100%; height: auto; min-width: 740px; }
.uw-drawing-package-data { margin: 4px 18px 16px; font-size: 12px; color: #52616b; }
.uw-drawing-package-data summary { cursor: pointer; }
.uw-drawing-package-data p { overflow-wrap: anywhere; }
.uw-drawing-package-dialog :focus-visible, .uw-drawing-package-action :focus-visible { outline: 2px solid #357cbd; outline-offset: 2px; }
@media (max-width: 600px) {
  .uw-drawing-package-backdrop { padding: 5px; }
  .uw-drawing-package-dialog { max-height: calc(100dvh - 10px); border-radius: 10px; }
  .uw-drawing-package-dialog > header, .uw-drawing-package-toolbar { padding-inline: 10px; }
  .uw-drawing-package-preview { margin-inline: 8px; }
  .uw-drawing-package-action button, .uw-drawing-package-dialog button, .uw-drawing-package-toolbar select { min-height: 44px; }
}
.uw-cabinet-handle { cursor: grab; outline: none; touch-action: none; }
.uw-cabinet-handle-hit { fill: #fff; stroke: #66819b; stroke-width: 1; }
.uw-cabinet-handle path { fill: none; stroke: #244e73; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.uw-cabinet-handle text { fill: #244e73; font-size: 10px; font-weight: 650; pointer-events: none; }
.uw-cabinet-handle:hover .uw-cabinet-handle-hit { fill: #edf5ff; stroke: #276bea; }
.uw-cabinet-handle:focus .uw-cabinet-handle-hit { fill: #edf5ff; stroke: #135dff; stroke-width: 3; }
.uw-cabinet-handle:active { cursor: grabbing; }
.uw-cabinet-handle[aria-disabled="true"] { cursor: default; opacity: .48; }
.uw-cabinet-handle-origin { stroke: #6c8aac; stroke-width: 1; }
.uw-cabinet-handle-origin line { stroke-dasharray: 3 4; }
.uw-cabinet-handle-origin circle { fill: #fff; }
.uw-plan-cabinet-unit[role="button"] { outline: none; }
.uw-plan-cabinet-unit[role="button"]:focus .uw-plan-cabinet-surface { stroke: #135dff; stroke-width: 2.5; }
.uw-elevation-cabinet-hit[role="button"] { outline: none; }
.uw-elevation-cabinet-hit[role="button"]:focus { stroke: #135dff; stroke-width: 3; }
.uw-plan-surface { position: relative; }
.uw-plan-inline-length {
  position: absolute; z-index: 8; transform: translateX(-50%); box-sizing: border-box;
  padding: 12px; border: 1px solid #cbd5e1; border-radius: 14px; background: #fff;
  color: #334155; box-shadow: 0 8px 24px #0f172a1a; font: inherit;
}
.uw-plan-inline-length label { display: block; font-weight: 600; font-size: 12px; margin-bottom: 8px; }
.uw-plan-inline-value { display: flex; align-items: center; gap: 8px; }
.uw-plan-inline-value input { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box;
  border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px; font: inherit; direction: ltr; background: #f8fafc; color: #0f172a; }
.uw-plan-inline-length input:focus-visible, .uw-plan-inline-actions button:focus-visible { outline: 2px solid #0284c7; outline-offset: 2px; }
.uw-plan-inline-length input[aria-invalid="true"] { border-color: #b45309; }
.uw-plan-inline-length p { font-size: 11px; line-height: 1.5; margin: 8px 0; }
.uw-plan-inline-length [role="alert"] { color: #9a3412; }
.uw-plan-inline-actions { display: flex; gap: 8px; }
.uw-plan-inline-actions button { min-height: 44px; flex: 1; border: 1px solid #cbd5e1; border-radius: 8px;
  background: #f1f5f9; color: #334155; font: inherit; cursor: pointer; }
.uw-plan-inline-actions button:disabled { opacity: .5; cursor: default; }
.uw-plan-editor [data-wall-length-control]:not([aria-disabled="true"]) { cursor: pointer; }
.uw-plan-editor [data-wall-length-control]:focus-visible { outline: 2px solid #0284c7; }
.uw-plan-helper-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; align-items: center; }
.uw-plan-helper-controls button { min-height: 44px; }
.uw-plan-helper-controls select { min-height: 44px; min-width: 0; max-width: 100%; }
.uw-cabinet-transform { padding-block: 12px; border-block: 1px solid #e4e9ef; }
.uw-cabinet-transform p { font-size: 12px; color: #536583; margin: 8px 0; }
.uw-cabinet-transform-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.uw-cabinet-transform fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.uw-cabinet-transform .p-number { min-width: 0; }
.uw-cabinet-transform input { min-width: 0; width: 100%; }
.uw-cabinet-transform .p-field { min-width: 0; margin: 0; }
.uw-cabinet-transform .p-button { min-height: 44px; margin-block-start: 8px; white-space: normal; }
.uw-cabinet-transform-tools { display: flex; gap: 8px; }
.uw-cabinet-transform-tools .p-button[aria-pressed="true"] { background: #e9edf1; color: #173057; }
.uw-cabinet-transform :is(input, button):focus-visible { outline: 2px solid #536583; outline-offset: 2px; }
.uw-cabinet-transform [role="alert"] { color: #a13c35; }
@media (max-width: 600px) { .uw-cabinet-transform input { min-height: 44px; font-size: 16px; } }
.uw-wall-snap { border-top: 1px solid var(--line, #dbe1e7); margin-top: 12px; padding-top: 12px; min-width: 0; }
.uw-wall-snap p { color: var(--muted, #687786); font-size: 12px; line-height: 1.5; margin: 6px 0; overflow-wrap: anywhere; }
.uw-wall-snap fieldset { border: 0; padding: 0; margin: 8px 0; min-width: 0; }
.uw-wall-snap .p-number input { min-width: 0; width: 100%; }
.uw-wall-snap .p-button { min-height: 44px; max-width: 100%; white-space: normal; }
.uw-wall-snap [aria-pressed="true"] { background: #edf3f6; border-color: #708b9d; }
.uw-wall-snap-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.uw-wall-snap [data-wall-snap-state="captured"] { color: #31576b; }

.uw-wall-snap select { width: 100%; min-width: 0; min-height: 44px; }
.uw-wall-snap [data-neighbor-snap-state="captured"] { color: #31576b; }
/* Room A step 3. The shared shell and Cabinet/Panels styles keep their ownership. */
.uw-room-lock { margin-block: 10px; }
.uw-room-window { color: #388295; cursor: pointer; }
.uw-room-window.is-selected, .uw-room-window:focus-visible { color: #135dff; }
.uw-window-glass { fill: #d5f0f5; fill-opacity: .75; stroke: currentColor; }
.uw-window-diagonal { fill: none; stroke: currentColor; opacity: .55; pointer-events: none; }
.uw-window-scene { display: flex; gap: 4px; align-items: center; padding: 4px; background: #ffffffeb; border: 1px solid #388295; border-radius: 5px; color: #275f73; white-space: nowrap; cursor: pointer; }
.uw-window-scene span { display: none; }
.uw-window-scene:hover span, .uw-window-scene:focus-visible span, .uw-window-scene[aria-pressed='true'] span { display: inline; }
.uw-room-lock .p-button { display: flex; align-items: center; gap: 8px; width: 100%; }
.uw-service-inspector fieldset { display: grid; gap: 6px; min-width: 0; padding: 0; border: 0; }
.uw-service-inspector label { font-size: 11px; }
.uw-service-inspector input, .uw-service-inspector select, .uw-service-inspector textarea { min-width: 0; width: 100%; box-sizing: border-box; padding: 7px; border: 1px solid #c7d2df; border-radius: 5px; background: white; font: inherit; color: inherit; }
.uw-service-inspector textarea { resize: vertical; min-height: 64px; }
.uw-service-inspector .p-field { margin-block: 0; }
.uw-service-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.uw-service-icon { flex: none; overflow: visible; direction: ltr; }
.uw-service-icon, .uw-service-symbol { color: #53687b; }
.uw-service-icon > circle, .uw-service-symbol > circle { fill: #f2f5f8; stroke: #6b8093; stroke-width: 1.5; }
.uw-service-symbol { cursor: pointer; direction: ltr; }
.uw-service-symbol .uw-service-symbol-label { display: none; fill: #253e5c; font: 500 11px sans-serif; paint-order: stroke; stroke: #f5f6f5; stroke-width: 3px; stroke-linejoin: round; }
.uw-service-symbol:hover > .uw-service-symbol-label, .uw-service-symbol:focus-visible > .uw-service-symbol-label, .uw-service-symbol.is-selected > .uw-service-symbol-label:not(.has-guide-caption) { display: block; }
.uw-service-symbol.is-selected, .uw-service-icon.is-selected { color: #135dff; }
.uw-service-symbol.is-selected > circle, .uw-service-icon.is-selected > circle { fill: #e3edff; stroke: #135dff; stroke-width: 2.5; }
.uw-service-symbol:focus-visible > circle { stroke: #135dff; stroke-width: 3; }
.uw-service-scene { position: relative; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; box-sizing: border-box; padding: 3px; border: 0; background: #fffffff0; border-radius: 5px; cursor: pointer; color: #253e5c; font: 11px sans-serif; white-space: nowrap; transform: translateY(-24px); }
.uw-service-scene::after { content: ''; position: absolute; top: 100%; left: 50%; width: 1px; height: 9px; background: #6b8093; pointer-events: none; }
.uw-service-scene > span { display: none; position: absolute; left: calc(100% + 4px); top: 50%; transform: translateY(-50%); padding: 3px; background: #fffffff0; border-radius: 3px; pointer-events: none; }
.uw-service-scene:hover > span, .uw-service-scene:focus-visible > span, .uw-service-scene[aria-pressed='true'] > span { display: block; }
.uw-room-services .uw-room-unit:focus-visible, .uw-service-scene:focus-visible, .uw-service-inspector :is(input, select, textarea, button):focus-visible { outline: 2px solid #135dff; outline-offset: 2px; }
.uw-service-guides { color: #53687b; stroke: currentColor; stroke-width: .7; fill: none; direction: ltr; }
.uw-service-guides line { vector-effect: non-scaling-stroke; }
.uw-service-guides .uw-service-guide-extension { opacity: .55; }
.uw-service-guides text { fill: currentColor; stroke: none; }
.uw-service-guides .uw-service-guide-datum { fill: #f5f7f9; }
.uw-service-guides.is-invalid, .uw-service-guide-label.is-invalid { color: #9a4c35; }
.uw-service-guide-label { display: inline-block; padding: 2px 4px; border: 0; border-radius: 0; background: #fafbf9f0; color: #53687b; font-size: 10px; white-space: nowrap; }
.uw-service-guide-label.is-invalid { transform: translateY(24px); }
.uw-window-guides { color: #53687b; stroke: currentColor; stroke-width: .7; fill: none; direction: ltr; }
.uw-window-guides line { vector-effect: non-scaling-stroke; }
.uw-window-guides .uw-window-guide-extension { opacity: .55; }
.uw-window-guides text { fill: currentColor; stroke: none; }
.uw-window-guides circle { fill: #f5f7f9; }
.uw-window-guides.is-invalid, .uw-window-guide-label.is-invalid { color: #9a4c35; }
.uw-window-guide-label { display: inline-block; padding: 2px 4px; border: 0; border-radius: 0; background: #fafbf9f0; color: #53687b; font-size: 10px; white-space: nowrap; }
@media (max-width: 900px) {
  .uw-service-inspector :is(input, select, button), .uw-room-lock button { min-height: 44px; }
  .uw-service-scene { min-width: 44px; min-height: 44px; }
}
.uw-cabinet-edit [hidden] { display: none; }
.uw-cabinet-entry fieldset, .uw-cabinet-opening { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 9px; }
.uw-cabinet-entry { display: grid; gap: 8px; margin-block: 12px; }
.uw-cabinet-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 112px); align-items: center; gap: 5px 8px; font-size: 12px; }
.uw-cabinet-field input, .uw-cabinet-field select { width: 100%; min-width: 0; min-height: 38px; padding: 7px; border: 1px solid #ccd7e5; border-radius: 6px; background: #fff; box-sizing: border-box; color: inherit; }
.uw-cabinet-field small { grid-column: 2; font-size: 10px; color: #66778e; }
.uw-cabinet-splits { display: flex; flex-wrap: wrap; gap: 6px; }
.uw-cabinet-error { color: #922f32; }
.uw-cabinet-confirm { padding: 8px; border: 1px solid #d8dfeb; border-radius: 6px; margin-block: 10px; }
.uw-cabinet-edit p { font-size: 11px; line-height: 1.6; }
.uw-cabinet-edit .p-zone-tree { list-style: none; padding: 0; margin-block: 10px; }
.uw-cabinet-edit .p-zone-children { list-style: none; padding-inline-start: 14px; }
.uw-cabinet-edit .p-tree-row { width: 100%; min-width: 0; text-align: start; }
.uw-cabinet-edit button:focus-visible, .uw-cabinet-edit input:focus-visible, .uw-cabinet-edit select:focus-visible { outline: 2px solid #135dff; outline-offset: 2px; }
@media (max-width: 900px) { .uw-cabinet-edit button, .uw-cabinet-field input, .uw-cabinet-field select { min-height: 44px; } }
.uw-room-workspace {
  --room-blue: #135dff;
  --room-card: #fffffffa;
  position: relative;
  display: grid;
  grid-template-columns: 238px minmax(0, 1fr) 264px;
  gap: 20px;
  padding: calc(var(--uw-room-tools-top, 46px) + 34px) 20px calc(var(--uw-room-tools-bottom, 46px) + 30px);
  height: var(--uw-room-height, 700px);
  min-height: 620px;
  max-height: none;
  box-sizing: border-box;
  color: #112b50;
  background: #f2f4f5;
  isolation: isolate;
}
.uw-room-workspace > .uw-viewport-tools > .uw-scene-top, .uw-room-workspace > .uw-scene-top {
  inset: 14px 20px auto;
  align-items: center;
  justify-content: center;
}
.uw-room-workspace .uw-scene-status { margin-inline-start: 0; }
.uw-room-workspace .uw-scene-bottom {
  inset-inline: 278px 304px;
  inset-block-end: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  max-width: none;
}
.uw-room-tool-slot { display: contents; }
.uw-room-workspace .uw-inspect-tools { flex-wrap: wrap; justify-content: center; }
.uw-room-workspace .uw-tool-save { background: var(--room-blue); }
.uw-room-left, .uw-room-right { min-width: 0; overflow-y: auto; scrollbar-width: thin; z-index: 3; }
.uw-room-left { display: flex; flex-direction: column; gap: 12px; }
.uw-room-card {
  background: var(--room-card);
  border: 1px solid #d9e2ee;
  border-radius: 9px;
  box-shadow: 0 8px 25px #020c2026;
  min-width: 0;
  flex: none;
}
.uw-room-card > summary {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 8px 13px;
  list-style: none;
  box-sizing: border-box;
  cursor: pointer;
}
.uw-room-card > summary > strong { flex: 1; font-size: 12px; }
.uw-room-card[open] > summary > svg:last-child { transform: rotate(180deg); }
.uw-room-card-body { padding: 0 13px 13px; }
.uw-room-card p { font-size: 11px; line-height: 1.6; color: #526b8d; }
.uw-room-plan { width: 100%; height: 170px; display: block; direction: ltr; overflow: visible; }
.uw-plan-wall { stroke: #153450; stroke-width: 2; pointer-events: none; }
.uw-plan-wall-hit { stroke: transparent; stroke-width: 18; cursor: pointer; }
.uw-room-plan text { font-size: 11px; fill: #17395f; font-weight: 650; cursor: pointer; }
.uw-room-plan .is-selected .uw-plan-wall { stroke: var(--room-blue); stroke-width: 4; }
.uw-plan-cabinet { fill: #bcc6d180; stroke: #718499; stroke-width: .5; cursor: pointer; }
.uw-room-plan .is-selected .uw-plan-cabinet { fill: #93b4ff80; stroke: var(--room-blue); }
.uw-room-wall-list { display: grid; margin-block-start: 8px; }
.uw-room-wall-list button, .uw-room-unit, .uw-room-inspector-tabs button {
  font: inherit; cursor: pointer; color: inherit; border: 0; background: transparent;
}
.uw-room-wall-list button { display: flex; justify-content: space-between; gap: 8px; padding: 8px; border-block-end: 1px solid #ebeff5; min-height: 34px; text-align: start; font-size: 11px; border-radius: 4px; }
.uw-room-wall-list button[aria-pressed='true'], .uw-room-unit[aria-pressed='true'] { color: #135dff; background: #e8efff; }
.uw-room-height { display: flex; justify-content: space-between; gap: 8px; }
.uw-room-section { margin-block-start: 10px; border-block-start: 1px solid #e1e8f2; }
.uw-room-section > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; min-height: 42px; font-size: 11px; list-style: none; }
.uw-room-workspace .p-field { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-block: 7px; font-size: 11px; }
.uw-room-workspace .p-field > span { min-width: 0; }
.uw-room-workspace .p-number { width: 98px; direction: ltr; }
.uw-room-workspace .p-number > span { right: 8px; left: auto; }
.uw-room-workspace .p-field input { width: 98px; max-width: 100%; min-height: 32px; box-sizing: border-box; border: 1px solid #d9e2ef; border-radius: 5px; padding: 6px 8px; font: inherit; color: #123152; background: #fff; direction: ltr; }
.uw-room-unit { display: flex; gap: 9px; align-items: center; width: 100%; min-height: 52px; padding: 8px; text-align: start; border-radius: 5px; }
.uw-room-unit > span { flex: 1; min-width: 0; }
.uw-room-unit strong, .uw-room-identity strong { font-size: 11px; overflow-wrap: anywhere; }
.uw-room-unit small, .uw-room-identity small, .uw-room-editor-link small { display: block; font-size: 10px; font-weight: 400; color: #5d789f; margin-block-start: 5px; }
.uw-room-issue { margin: 0; padding: 10px; background: #fff1d7; border-radius: 6px; font-size: 11px; }
.uw-room-center { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.uw-room-view-heading { display: flex; justify-content: center; align-items: center; gap: 12px; min-height: 46px; color: #34485b; }
.uw-room-view-heading button { display: grid; place-items: center; min-height: 36px; min-width: 36px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.uw-room-view-heading select { font: inherit; color: inherit; background: transparent; border: 0; min-height: 36px; max-width: 100%; }
.uw-room-view-heading label { min-width: 0; }
.uw-room-drawing { flex: 1; min-height: 0; min-width: 0; position: relative; direction: ltr; }
.uw-room-fallback { color: #34485b; padding: 30px; font-size: 13px; line-height: 1.6; }
.uw-room-identity { display: flex; align-items: center; gap: 10px; padding-block: 4px 14px; }
.uw-room-thumbnail { display: grid; place-items: center; width: 52px; height: 52px; flex: none; overflow: hidden; background: #eef2f7; border: 1px solid #e0e7f1; border-radius: 5px; }
.uw-room-thumbnail .cabinet-thumbnail { width: 100%; height: 100%; }
.uw-room-identity > div { min-width: 0; }
.uw-room-inspector-tabs { display: flex; border-block-end: 1px solid #e1e8f2; margin-block-end: 12px; }
.uw-room-inspector-tabs button { flex: 1; min-height: 36px; font-size: 11px; border-block-end: 2px solid transparent; }
.uw-room-inspector-tabs button[aria-pressed='true'] { color: #135dff; background: #e8efff; border-color: #135dff; }
.uw-room-dimensions { margin: 0; font-size: 11px; }
.uw-room-dimensions > div { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-block: 7px; }
.uw-room-dimensions dd { margin: 0; min-width: 98px; padding: 7px 8px; background: #f7f9fc; border: 1px solid #e0e7f1; border-radius: 5px; box-sizing: border-box; }
.uw-room-editor-link { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 44px; padding: 10px 0; border: 0; border-block-end: 1px solid #e1e8f2; background: transparent; text-align: start; color: #193c70; font: inherit; font-size: 11px; cursor: pointer; }
.uw-room-editor-link > svg:last-child { margin-inline-start: auto; }
.uw-room-placement-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.uw-room-workspace .p-button { font-size: 11px; }
.uw-room-add, .uw-room-place { width: 100%; margin-block-start: 12px; }
.uw-room-section .p-button { width: 100%; margin-block-end: 6px; }
.uw-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 1200px) and (min-width: 901px) {
  .uw-room-workspace { grid-template-columns: 200px minmax(0, 1fr) 232px; gap: 12px; padding-inline: 12px; }
  .uw-room-workspace .uw-scene-bottom { inset-inline: 224px 256px; }
  .uw-room-workspace .uw-scene-status { display: none; }
  .uw-room-card-body { padding-inline: 10px; }
}
@media (max-width: 900px) {
  .uw-room-workspace { display: flex; flex-direction: column; gap: 12px; padding: 12px; height: auto; min-height: 0; max-height: none; }
  .uw-room-workspace > .uw-viewport-tools { position: static; display: contents; }
  .uw-room-workspace > .uw-viewport-tools > .uw-scene-top { position: relative; inset: auto; order: 0; gap: 6px; justify-content: center; }
  .uw-room-workspace .uw-scene-status { display: none; }
  .uw-room-workspace .uw-scene-bottom { position: relative; inset: auto; order: 2; z-index: 5; max-width: 100%; }
  .uw-room-workspace .uw-tool-strip { max-width: 100%; box-sizing: border-box; }
  .uw-room-workspace .uw-edit-tools { flex-wrap: wrap; justify-content: center; }
  .uw-room-center { order: 1; height: 400px; flex: none; }
  .uw-room-left { order: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; align-items: start; }
  .uw-room-left:has(.uw-room-card[open]) { grid-template-columns: minmax(0, 1fr); }
  .uw-room-right { order: 4; overflow: visible; }
  .uw-room-inspector > .uw-room-card-body { max-height: 440px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .uw-room-inspector { border-radius: 14px 14px 7px 7px; }
  .uw-room-inspector > summary::before { content: ''; position: absolute; width: 38px; height: 4px; background: #c7d2e3; border-radius: 4px; inset-block-start: 5px; inset-inline-start: calc(50% - 19px); }
  .uw-room-inspector > summary { position: relative; padding-block-start: 15px; }
  .uw-room-modes .uw-tool { min-height: 44px; }
  .uw-room-view-heading { min-height: 44px; }
  .uw-room-view-heading button, .uw-room-view-heading select { min-height: 44px; min-width: 44px; }
  .uw-room-wall-list button, .uw-room-inspector-tabs button, .uw-room-workspace .p-field input { min-height: 44px; }
  .uw-room-workspace .p-field input, .uw-room-view-heading select { font-size: 16px; }
  .uw-room-workspace .p-field input, .uw-room-workspace .p-number { width: 120px; }
  .uw-room-dimensions dd { min-width: 120px; }
}
/* Room A step 4: plan editing stays within the selected drawing and plan card. */
.uw-plan-controls > .p-button { width: 100%; margin-block: 4px; }
.uw-plan-controls fieldset { min-width: 0; }
.uw-plan-select { display: grid; gap: 6px; margin-block: 12px; font-size: 11px; }
.uw-plan-select select { width: 100%; min-height: 44px; font: inherit; color: inherit; border: 1px solid #d9e2ef; border-radius: 5px; background: #fff; }
.uw-plan-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.uw-plan-measurements { margin-block: 10px; }
.uw-plan-measurements .p-button { width: 100%; min-height: 40px; }
.uw-plan-errors { padding: 8px; border: 1px solid #ce7272; border-radius: 5px; background: #fff1ef; margin-block-start: 10px; font-size: 12px; }
.uw-plan-errors p { color: #8a2d27; }
.uw-plan-surface { height: 100%; display: flex; flex-direction: column; min-height: 0; }
.uw-plan-editor { flex: 1; min-height: 0; width: 100%; touch-action: none; direction: ltr; user-select: none; }
.uw-plan-hint { margin: 6px 0; font-size: 11px; line-height: 1.5; color: #637486; text-align: center; }
.uw-plan-controls button:disabled { opacity: .5; cursor: default; }
/* Room A step 5: measured vector elevations inside the selected workspace. */
.uw-elevation { height: 100%; min-height: 0; display: flex; flex-direction: column; }
.uw-elevation-tools { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; max-width: 100%; }
.uw-elevation-visibility { display: flex; gap: 2px; }
.uw-elevation-tools button:disabled { opacity: .5; cursor: default; }
.uw-wall-placement { border-block-start: 1px solid #d9e2ef; margin-block-start: 12px; padding-block-start: 6px; }
.uw-wall-placement p { font-size: 11px; line-height: 1.5; }
.uw-wall-placement .p-button { width: 100%; min-height: 44px; margin-block: 3px; }
.uw-wall-placement [role='alert'] { color: #8a2d27; background: #fff1ef; padding: 8px; border-radius: 5px; }
.uw-elevation-canvas { width: 100%; flex: 1; min-height: 110px; direction: ltr; touch-action: none; user-select: none; cursor: grab; }
.uw-elevation-canvas:active { cursor: grabbing; }
.uw-elevation-wall { fill: #fff; stroke: #a3adb7; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.uw-elevation-panel, .uw-elevation-cabinet-hit { cursor: grab; }
.uw-elevation-canvas[data-interaction="move"]:active .uw-elevation-panel { cursor: grabbing; }
.uw-elevation-panel polygon { fill: #dce1e3; stroke: #536574; stroke-width: .8; stroke-linejoin: round; }
.uw-elevation-panel[data-panel-type='door'] polygon, .uw-elevation-panel[data-panel-type='drawer-front'] polygon { fill: #f9faf8; }
.uw-elevation-panel[data-panel-type='kick'] polygon { fill: #abb5bc; }
.uw-elevation-panel[data-face-shade='edge'] polygon { fill: #c5cdd2; }
.uw-elevation-panel.is-selected polygon { fill: #e3edfc; stroke: #5175a0; }
.uw-elevation-panel.is-selected[data-panel-type='door'] polygon, .uw-elevation-panel.is-selected[data-panel-type='drawer-front'] polygon { fill: #eff5ff; }
.uw-elevation-panel.is-selected[data-panel-type='kick'] polygon { fill: #a9bdd7; }
.uw-elevation-selection { fill: none; stroke: var(--room-blue, #135dff); stroke-width: 1.8; }
.uw-elevation-panel polygon { paint-order: fill stroke; }
.uw-elevation-floor { stroke: #465b6b; stroke-width: 2; }
.uw-room-height-boundaries { color: #53687b; }
.uw-room-boundary-line { stroke: #465b6b; stroke-width: 1; }
.uw-room-boundary-hatch { stroke: #83909c; stroke-width: .55; stroke-opacity: .6; }
.uw-room-level-marker { fill: #fafbf9; stroke: currentColor; stroke-width: .75; }
.uw-room-level-leader { stroke: currentColor; stroke-width: .6; stroke-dasharray: 2 3; }
.uw-room-height-boundaries text { fill: currentColor; stroke: none; }
.uw-elevation-dimension { fill: #53687b; stroke: #8a9eae; stroke-width: 1; }
.uw-elevation-dimension line { vector-effect: non-scaling-stroke; }
.uw-elevation-dimension text { stroke: none; }
.uw-elevation-labels { fill: #30485b; font-weight: 600; }
.uw-technical-elevation { color: #53687b; fill: none; stroke: currentColor; stroke-width: .75; }
.uw-technical-elevation :is(line, polyline, path) { vector-effect: non-scaling-stroke; }
.uw-technical-elevation text { fill: currentColor; stroke: none; }
.uw-technical-door-opening { fill: none; stroke: #9b6f5c; stroke-width: .7; stroke-dasharray: 6 5; pointer-events: none; }
.uw-technical-dimension { fill: none; stroke: #53687b; stroke-width: .75; }
.uw-technical-extension { opacity: .65; stroke-width: .6; stroke-dasharray: 2 3; }
.uw-technical-label, .uw-technical-caption { fill: #53687b; stroke: none; font-weight: 400; }
.uw-elevation-caption { flex: none; max-height: 124px; overflow: auto; overscroll-behavior: contain; text-align: center; color: #657787; font-size: 11px; }
.uw-elevation-caption p { margin: 5px 0; line-height: 1.5; }
.uw-elevation-tools button:focus-visible, .uw-room-modes button:focus-visible { outline: 2px solid #135dff; outline-offset: 2px; }
@media (max-width: 900px) {
  .uw-plan-controls .p-button, .uw-plan-controls select { min-height: 44px; }
  .uw-plan-select select { font-size: 16px; }
  .uw-room-left .uw-room-card-body { max-height: 520px; overflow-y: auto; overscroll-behavior: contain; }
  .uw-room-center:has(.uw-plan-surface) { height: 470px; }
  .uw-room-center:has(.uw-elevation) { height: 610px; }
  .uw-elevation-caption { max-height: 145px; }
  .uw-elevation-tools .uw-tool, .uw-plan-zoom .uw-tool { min-height: 44px; min-width: 44px; }
}

/* Step9 canvas refinement: calm paper, joined display strokes and whole-cabinet emphasis. */
.uw-room-workspace[data-room-mode='3d'] { background: #e6ecef; }
.uw-room-workspace .uw-tool-strip { background: #ffffffed; border: 1px solid #dce3e9; box-shadow: 0 3px 12px #19344b0a; }
.uw-room-workspace .uw-tool { color: #476078; }
.uw-room-workspace .uw-tool.is-active, .uw-room-workspace .uw-tool[aria-pressed='true'] { background: #e8f0fd; border-color: #b5c8e4; color: #1b54a3; }
.uw-room-workspace .uw-tool-save { color: #fff; background: #244b76; }
.uw-room-workspace .uw-scene-status { color: #546779; background: #ffffffd9; }
.uw-room-workspace .uw-room-card { border-color: #dce3e9; box-shadow: 0 4px 18px #243c5010; }
.uw-room-drawing { border-radius: 12px; background: #fafbf9; border: 1px solid #e0e5e6; overflow: hidden; }
.uw-room-drawing[data-room-view='3d'] { background: transparent; border-color: transparent; }
.uw-room-view-heading button:hover { background: #e4eaf0; border-radius: 6px; }
.uw-plan-hint, .uw-elevation-caption { padding-inline: 12px; }
.uw-plan-floor { fill: #fff; stroke: #b9c3ca; stroke-width: 12; stroke-linejoin: miter; vector-effect: non-scaling-stroke; paint-order: stroke fill; }
.uw-plan-floor-edge { fill: none; stroke: #536777; stroke-width: 1.1; stroke-linejoin: miter; vector-effect: non-scaling-stroke; }
.uw-plan-wall-measure { fill: #526b7d; font-weight: 500; }
.uw-room-plan .uw-plan-floor { stroke-width: 6; }
.uw-plan-editor [data-unit-id] { cursor: grab; }
.uw-plan-editor:active [data-unit-id] { cursor: grabbing; }
.uw-plan-editor .uw-plan-cabinet-label { font-weight: 600; }
/* B6 retained-placement repair uses the shared draft and existing inspector. */
.uw-room-workspace:has(.uw-room-repair-tray) { grid-template-rows: minmax(0, 1fr) auto; }
.uw-room-repair-tray { grid-column: 1 / -1; max-height: 210px; overflow: auto; z-index: 3; }
.uw-room-repair-tray > summary { position: sticky; top: 0; background: #fff; }
.uw-room-repair-tray > summary > svg:first-child { color: #a46117; }
.uw-room-repair-tray > summary > span { font-size: 11px; color: #536583; }
.uw-room-repair-tray ul { list-style: none; margin: 0; padding: 0; }
.uw-room-repair-tray li { display: flex; align-items: center; gap: 14px; padding-block: 10px; border-block-start: 1px solid #dce3e9; }
.uw-room-repair-tray li > div { flex: 1; min-width: 0; }
.uw-room-repair-tray li strong { font-size: 12px; }
.uw-room-repair-tray li p { margin-block: 4px; }
.uw-room-repair-tray button { min-height: 44px; white-space: normal; }
.uw-room-repair-tray button:focus-visible, .uw-room-repair-tray summary:focus-visible { outline: 2px solid #244b76; outline-offset: 2px; }
.uw-plan-closure { padding: 8px; border: 1px solid #c7d2df; border-radius: 5px; font-size: 11px; }
@media (max-width: 900px) {
  .uw-room-repair-tray { order: 2; max-height: 260px; }
  .uw-room-repair-tray > summary { flex-wrap: wrap; }
  .uw-room-repair-tray > summary > span { flex-basis: 100%; }
  .uw-room-repair-tray li { flex-wrap: wrap; }
  .uw-room-repair-tray li > button { width: 100%; }
}

/* B6 Mac feedback: one full workspace canvas behind the floating Plan controls. */
@media (min-width: 901px) {
  .uw-room-workspace[data-room-mode='plan'] { grid-template-rows: minmax(0, 1fr); }
  .uw-room-workspace[data-room-mode='plan']:has(.uw-room-repair-tray) { grid-template-rows: minmax(0, 1fr) auto; }
  .uw-room-workspace[data-room-mode='plan'] > .uw-room-left { grid-column: 1; grid-row: 1; min-height: 0; }
  .uw-room-workspace[data-room-mode='plan'] > .uw-room-right { grid-column: 3; grid-row: 1; min-height: 0; }
  .uw-room-workspace[data-room-mode='plan'] > .uw-room-center { position: absolute; inset: 0; }
  .uw-room-workspace[data-room-mode='plan'] .uw-room-view-heading { display: none; }
  .uw-room-workspace[data-room-mode='plan'] .uw-room-drawing { border: 0; border-radius: 0; }
  .uw-room-workspace[data-room-mode='plan'] .uw-plan-hint { position: absolute; inset-inline: 20px; bottom: 0; pointer-events: none; }
  .uw-room-workspace[data-room-mode='plan'] > .uw-room-repair-tray { grid-row: 2; }
}
.uw-room-reference-notices { padding: 10px 14px; font-size: 12px; color: #526176; background: #f5f7fa; border-block-end: 1px solid #e2e8f0; }
.uw-room-reference-notices p { margin: 0; }
.uw-room-reference-notices ul { margin: 6px 0 0; padding-inline-start: 18px; }

.uw-room-door { color: #536777; cursor: pointer; }
.uw-room-door.is-selected, .uw-room-door:focus-visible { color: #135dff; }
.uw-room-door polygon, .uw-room-door polyline, .uw-room-door path, .uw-room-door .uw-door-opening-line { vector-effect: non-scaling-stroke; stroke: currentColor; stroke-width: .9; }
.uw-door-opening { fill: #fafbf9; fill-opacity: .9; }
.uw-door-leaf { fill: #dde6e8; fill-opacity: .75; }
.uw-door-closed { fill: none; stroke-dasharray: 3 2; opacity: .65; }
.uw-door-sweep { fill: none; stroke-dasharray: 3 2; opacity: .55; }
.uw-door-hinge { fill: currentColor; stroke: none; pointer-events: none; }
.uw-door-dimension { fill: currentColor; stroke: none; pointer-events: none; }
.uw-shared-review .p-review-tabs {
  max-width: 100%;
  overflow-x: auto;
}
.uw-shared-review .p-review-tabs button {
  flex: none;
  white-space: nowrap;
}
.uw-gola-requirements {
  min-width: 0;
  padding-block-start: 14px;
}
.uw-gola-summary {
  color: var(--p-ink);
}
.uw-gola-issues {
  border-inline-start: 3px solid var(--p-muted);
  padding-inline-start: 12px;
  margin-block: 12px;
}
.uw-gola-issues ul {
  padding-inline-start: 18px;
}
.uw-gola-table caption {
  text-align: start;
  padding-block: 10px;
  color: var(--p-muted);
}
.uw-gola-table th[scope='row'] {
  position: static;
  background: transparent;
  font-size: inherit;
  font-weight: 500;
  min-width: 180px;
}
.uw-gola-table th[scope='row'] small {
  display: block;
  color: var(--p-muted);
  margin-block-start: 4px;
}
.uw-gola-table summary,
.uw-gola-proposal-preparation summary {
  cursor: pointer;
  min-height: 32px;
  padding-block: 6px;
  color: var(--p-blue);
}
.uw-gola-table summary:hover,
.uw-gola-table summary:active,
.uw-gola-proposal-preparation summary:hover,
.uw-gola-proposal-preparation summary:active {
  text-decoration: underline;
}
.uw-gola-table summary:focus-visible,
.uw-gola-proposal-preparation summary:focus-visible,
.uw-gola-table:focus-visible {
  outline: 2px solid var(--p-blue);
  outline-offset: 2px;
}
.uw-gola-source-details {
  width: 240px;
  margin: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.uw-gola-source-details dt {
  color: var(--p-muted);
  margin-block-start: 8px;
}
.uw-gola-source-details dd {
  margin: 0;
}
.uw-gola-pages {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: 10px;
}
.uw-gola-pages span {
  margin-inline-end: auto;
}
.uw-gola-proposal-preparation {
  margin-block-start: 18px;
  border-block-start: 1px solid var(--p-line);
  padding-block-start: 12px;
}
.uw-gola-proposal-preparation h3 {
  font-size: 14px;
  margin-block: 0 8px;
}
.uw-gola-proposal-preparation ul {
  padding-inline-start: 18px;
}
.uw-mcp-pilot{margin:12px;border:1px solid #d9e1e7;border-radius:12px;padding:14px;background:#f8fafc;color:#314b62;max-height:70vh;overflow:auto;font-size:13px}.uw-mcp-pilot>summary{font-size:15px;font-weight:650;cursor:pointer}.uw-mcp-pilot p{line-height:1.5}.uw-mcp-options{display:flex;flex-wrap:wrap;gap:10px;margin-block:14px}.uw-mcp-options label{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;background:white;border:1px solid #cbd5df;border-radius:8px}.uw-mcp-pilot button{min-height:44px;padding:9px 15px;color:#fff;background:#314b62;border:1px solid #314b62;border-radius:8px}.uw-mcp-pilot button:disabled{opacity:.5;cursor:not-allowed}.uw-mcp-pilot :is(button,input,summary):focus-visible{outline:2px solid #276bea;outline-offset:3px}.uw-mcp-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.uw-mcp-preview figure{margin:0;border:1px solid #d9e1e7;background:#fff;border-radius:8px;padding:10px}.uw-mcp-preview figcaption{margin-bottom:8px;font-weight:600}.uw-mcp-preview svg{width:100%;height:190px;direction:ltr}.uw-mcp-table-scroll{overflow:auto;margin-block:14px}.uw-mcp-pilot table{border-collapse:collapse;min-width:650px;width:100%;background:white}.uw-mcp-pilot :is(th,td){padding:9px;text-align:start;border:1px solid #d9e1e7}.uw-mcp-pilot caption{text-align:start;padding-block:8px;font-weight:600}.uw-mcp-run{display:flex;flex-wrap:wrap;gap:16px}.uw-mcp-run div{min-width:110px}.uw-mcp-pilot dd{margin:4px 0;overflow-wrap:anywhere}.uw-mcp-pilot bdi{direction:ltr;unicode-bidi:isolate}.uw-mcp-pilot [data-mcp-error]{color:#9d3434}.uw-mcp-pilot [data-mcp-review-status]{padding:10px;border:1px solid #b9c6d0;background:white;border-radius:8px}@media(max-width:600px){.uw-mcp-pilot{margin:8px;padding:10px}.uw-mcp-preview{grid-template-columns:1fr}.uw-mcp-preview svg{height:170px}.uw-mcp-options{display:block}.uw-mcp-options label{margin-block:8px}}
.unified-workspace {
  --p-ink: #0a1b3a;
  --p-muted: #5c7094;
  --p-line: #e0e7f0;
  --p-blue: #073874;
  color: var(--p-ink);
  background: #f8fafc;
  min-width: 0;
  font-size: 13px;
}
.unified-workspace [hidden] {
  display: none !important;
}
.uw-header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 18px;
  background: white;
  border-block-end: 1px solid var(--p-line);
}
.uw-header nav,
.uw-actions,
.uw-inspection {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.uw-header > strong {
  margin-inline-end: auto;
}
.uw-header [aria-pressed='true'],
.uw-unit[aria-pressed='true'] {
  background: #eaf0ff;
  color: #073874;
  border-color: #a9bedc;
}
.unified-workspace .p-button {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #d6e0ee;
  border-radius: 6px;
  background: white;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
.unified-workspace button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.unified-workspace button:focus-visible,
.unified-workspace input:focus-visible,
.unified-workspace select:focus-visible {
  outline: 2px solid #3573d8;
  outline-offset: 2px;
}
.unified-workspace .p-primary {
  background: #073874;
  color: white;
}
.unified-workspace fieldset {
  border: 0;
  padding: 0;
  min-width: 0;
}
.uw-inspection {
  padding: 10px 18px;
  background: #f1f5fa;
  border-block-end: 1px solid #d6e0ee;
}
.uw-inspection label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.uw-inspection select,
.uw-controls input,
.uw-panel-inspector input,
.uw-panel-inspector select,
.uw-presets input,
.uw-presets select {
  border: 1px solid #d6e0ee;
  border-radius: 5px;
  padding: 7px;
  max-width: 100%;
  font: inherit;
  background: white;
}
.uw-inspection input[type='checkbox'] {
  accent-color: #073874;
}
.uw-notice {
  padding: 10px 18px;
  margin: 0;
  background: #fff4dc;
}
.unified-workspace .producer-app {
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) auto;
}
.unified-workspace .producer-app > .p-rail,
.unified-workspace .producer-app > .p-main {
  grid-row: 1;
}
.unified-workspace .producer-app > .p-footer {
  grid-row: 2;
}
.uw-room {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 600px;
}
.uw-controls {
  padding: 18px;
  border-inline-end: 1px solid #d6e0ee;
  max-height: 720px;
  overflow: auto;
  background: white;
}
.uw-controls h2,
.uw-controls h3 {
  margin: 0 0 12px;
}
.uw-controls p {
  font-size: 12px;
  color: #5c7094;
}
.uw-controls .p-button {
  margin-block: 4px;
}
.uw-unit {
  width: 100%;
  justify-content: flex-start !important;
  text-align: start;
}
.uw-controls .p-field {
  margin-block: 8px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.uw-controls .p-field input {
  max-width: 110px;
}
.uw-room-canvas {
  min-width: 0;
  min-height: 600px;
  height: calc(100dvh - 260px);
  max-height: 760px;
  background: #0b1a30;
  position: relative;
  overflow: hidden;
}
.uw-room-label {
  color: white;
  white-space: nowrap;
  background: #0b1a30d9;
  border: 1px solid #66768d;
  border-radius: 4px;
  padding: 3px 6px;
  font-size: 11px;
}
.uw-panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
  gap: 18px;
  padding: 18px;
  align-items: start;
}
.uw-panels:not(:has(.uw-panel-inspector)) {
  grid-template-columns: minmax(0, 1fr);
}
.uw-panel-main {
  min-width: 0;
}
.uw-panel-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-block-end: 12px;
}
.uw-panel-main > details {
  padding: 10px;
  background: white;
  border: 1px solid #d6e0ee;
  margin-block: 12px;
  border-radius: 6px;
}
.uw-table-wrap {
  overflow: auto;
  max-height: 620px;
  border: 1px solid #d6e0ee;
  background: white;
  border-radius: 6px;
}
.uw-table-wrap table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
}
.uw-table-wrap th,
.uw-table-wrap td {
  padding: 10px;
  text-align: start;
  border-block-end: 1px solid #e0e7f0;
  vertical-align: top;
}
.uw-table-wrap thead {
  background: #eef3f9;
  position: sticky;
  top: 0;
}
.uw-table-wrap small {
  display: block;
  color: #5c7094;
}
.uw-table-wrap button {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: start;
  font: inherit;
}
.uw-table-wrap [aria-selected='true'] {
  background: #eaf0ff;
}
.uw-group {
  background: #f1f5fa;
}
.uw-panel-inspector {
  background: white;
  border: 1px solid #d6e0ee;
  padding: 12px;
  border-radius: 8px;
  min-width: 0;
}
.uw-panel-inspector > label,
.uw-panel-inspector fieldset > label,
.uw-presets label {
  display: grid;
  gap: 5px;
  margin-block: 10px;
}
.uw-presets {
  width: min(650px, calc(100vw - 28px));
  max-height: 85dvh;
  overflow: auto;
  padding: 20px;
  border: 1px solid #d6e0ee;
  border-radius: 12px;
}
.uw-presets::backdrop {
  background: #0b1a3080;
}
.uw-preset-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: 16px;
}
.uw-presets .uw-actions {
  margin-block: 10px;
}
@media (max-width: 900px) {
  .uw-room {
    grid-template-columns: 210px minmax(0, 1fr);
  }
  .uw-panels {
    grid-template-columns: minmax(0, 1fr);
  }
  .uw-panel-inspector {
    max-width: 600px;
    width: 100%;
  }
  .uw-header {
    padding: 10px;
  }
  .uw-inspection {
    padding: 8px;
  }
  .unified-workspace .producer-app {
    display: block;
  }
}
@media (max-width: 600px) {
  .uw-header {
    gap: 8px;
  }
  .uw-header > strong {
    width: 100%;
  }
  .uw-header nav {
    width: 100%;
  }
  .uw-header nav button {
    flex: 1;
  }
  .uw-actions {
    gap: 5px;
  }
  .unified-workspace .p-button {
    min-height: 42px;
  }
  .uw-inspection {
    gap: 8px;
    font-size: 12px;
  }
  .uw-inspection select {
    max-width: 130px;
  }
  .uw-room {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }
  .uw-room-canvas {
    height: 420px;
    min-height: 420px;
  }
  .uw-controls {
    max-height: none;
    border-inline-end: 0;
  }
  .uw-panels {
    padding: 10px;
  }
  .uw-table-wrap {
    max-height: 430px;
  }
  .uw-table-wrap th,
  .uw-table-wrap td {
    padding: 8px;
  }
  .uw-table-wrap table {
    min-width: 520px;
  }
  .uw-panel-summary strong {
    font-size: 12px;
  }
  .uw-header > span {
    font-size: 12px;
  }
}

.unified-workspace .producer-app > .p-footer {
  position: static;
  inset: auto;
  box-shadow: none;
}
.unified-workspace .producer-app {
  height: auto;
  min-height: 0;
}
.unified-workspace .p-stage {
  min-height: 0;
}
@media (max-width: 760px) {
  .unified-workspace .producer-app {
    padding-bottom: 0;
  }
  .unified-workspace .p-stage {
    min-height: 0;
  }
}

/* Keep the scene bounded by the viewport, independent of inspector content. */
.unified-workspace {
  --uw-canvas-height: clamp(360px, calc(100dvh - 335px), 540px);
}
.unified-workspace .p-workspace {
  flex: none;
  min-height: 0;
  align-items: start;
}
.unified-workspace .p-stage,
.unified-workspace .uw-room-canvas {
  height: var(--uw-canvas-height);
  min-height: 0;
  max-height: none;
}
.unified-workspace .p-inspector {
  max-height: var(--uw-canvas-height);
  overflow: auto;
  scrollbar-width: thin;
}
.unified-workspace .uw-room {
  min-height: 0;
}
.unified-workspace .uw-controls {
  max-height: var(--uw-canvas-height);
}
.unified-workspace .p-rail {
  max-height: calc(var(--uw-canvas-height) + 110px);
}
.unified-workspace .p-inspector-dropdown {
  padding: 0;
  border-block-start: 1px solid var(--p-line);
}
.unified-workspace .p-inspector-dropdown:first-child {
  border-block-start: 0;
}
.unified-workspace .p-inspector-dropdown > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 12px 16px;
  list-style: none;
  cursor: pointer;
  font-size: 12px;
  font-weight: 650;
}
.unified-workspace summary::-webkit-details-marker {
  display: none;
}
.unified-workspace .p-inspector-dropdown[open] > summary > svg {
  transform: rotate(180deg);
}
.unified-workspace .p-inspector-dropdown-body {
  padding: 4px 16px 16px;
}
.unified-workspace summary:focus-visible {
  outline: 2px solid #3573d8;
  outline-offset: -3px;
}
.unified-workspace .p-empty {
  position: relative;
  min-height: var(--uw-canvas-height);
  padding-block-start: 120px;
}
.unified-workspace .p-footer .p-save,
.unified-workspace .p-footer .p-save-state {
  display: none;
}

/* The cabinet inspector uses the same swatches and complete-edge preview as Parts. */
.unified-workspace .uw-cabinet-materials {
  padding: 0 12px 14px;
  min-width: 0;
}
.uw-cabinet-defaults {
  margin-block-end: 12px;
  border-block-end: 1px solid var(--p-line);
}
.uw-cabinet-defaults > summary,
.uw-panel-apply-settings > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding-block: 10px;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
}
.uw-cabinet-defaults > summary > span {
  flex: 1;
}
.uw-cabinet-defaults[open] > summary > svg:last-child {
  transform: rotate(180deg);
}
.uw-cabinet-role-pickers {
  display: grid;
  gap: 12px;
  padding-block: 4px 14px;
}
.uw-cabinet-role-pickers .p-select,
.unified-workspace .uw-panel-preview-picker {
  margin: 0 0 10px;
}
.unified-workspace .uw-panel-inspector--embedded {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.uw-cabinet-materials .manager-part-picker {
  min-width: 0;
  gap: 5px;
  font-size: 11px;
}
.uw-cabinet-materials .manager-part-picker__control {
  min-height: 44px;
  gap: 6px;
  padding-inline: 8px;
  grid-template-columns: 18px minmax(0, 1fr) 14px;
}
.unified-workspace .uw-cabinet-materials .manager-part-picker__control select {
  min-height: 42px;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  font-size: 11px;
}
.uw-cabinet-materials .manager-part-picker__control > svg {
  width: 14px;
}
.uw-cabinet-materials .manager-edge-editor {
  gap: 12px;
  padding: 0;
}
.uw-cabinet-materials .manager-edge-canvas {
  min-height: 270px;
  padding: 80px 48px 54px;
  border: 0;
  border-radius: 0;
  background: transparent;
  direction: ltr;
}
.uw-cabinet-materials .manager-edge-board {
  width: min(100%, calc(142px * var(--board-ratio)));
}
.uw-cabinet-materials .manager-edge-board__center {
  inset: 8px;
  gap: 2px;
}
.uw-cabinet-materials .manager-edge-board__center > strong {
  max-width: 100%;
  font-size: 9px;
}
.uw-cabinet-materials .manager-edge-board__center > span:not(.manager-color-swatch),
.uw-cabinet-materials .manager-edge-canvas__action {
  display: none;
}
.uw-cabinet-materials .manager-edge-canvas__dimensions {
  inset-inline: 0;
  font-size: 9px;
}
.uw-cabinet-materials .manager-edge-target {
  min-width: 48px;
  min-height: 48px;
  padding: 0;
  border-radius: 0;
}
.uw-cabinet-materials .manager-edge-operations {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.unified-workspace .uw-cabinet-materials .manager-edge-operations button {
  min-height: 44px;
  padding: 6px 3px;
  gap: 4px;
  border-radius: 0;
  font-size: 10px;
}
.unified-workspace .uw-cabinet-materials .manager-edge-operations button.is-active {
  background: var(--brand-800);
  color: white;
}
.uw-cabinet-materials .manager-edge-operations button > svg {
  width: 16px;
}
.uw-cabinet-materials .manager-edge-selection {
  padding: 8px;
}
.uw-cabinet-materials .manager-groove-offset input {
  width: 100%;
  border: 0;
  box-shadow: none;
}
.uw-cabinet-materials .manager-edge-templates > div {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.unified-workspace .uw-cabinet-materials .manager-edge-templates button {
  min-height: 44px;
  border: 1px solid var(--p-line);
  padding: 6px;
  font-size: 10px;
}
.uw-panel-apply-settings {
  border-block: 1px solid var(--p-line);
}
.uw-panel-apply-settings > summary {
  justify-content: space-between;
}
.uw-panel-apply-settings > div > label {
  display: grid;
  gap: 5px;
  font-size: 11px;
  margin-block: 10px;
}
.uw-panel-apply-settings .p-button {
  width: 100%;
  font-size: 11px;
}
.unified-workspace .uw-cabinet-materials .manager-edge-editor__apply {
  min-height: 44px;
  background: var(--brand-800);
  color: white;
}

.uw-viewport-tools {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  color: #203958;
  font-family: var(--font-ui, inherit);
}
[dir='rtl'] .uw-viewport-tools {
  font-family: var(--font-fa, inherit);
}
.uw-scene-top {
  position: absolute;
  inset-block-start: 12px;
  inset-inline: 12px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.uw-tool-strip {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  width: max-content;
  max-width: 100%;
  border: 1px solid #d4dfedb3;
  border-radius: 10px;
  background: #f3f6fbef;
  backdrop-filter: blur(16px);
  box-shadow: 0 4px 14px #030d1e20;
  pointer-events: auto;
}
.unified-workspace .uw-tool {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  gap: 5px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #294462;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  line-height: 1;
  list-style: none;
  white-space: nowrap;
}
.unified-workspace .uw-tool:hover,
.unified-workspace .uw-tool-menu[open] > summary {
  background: #dce5f0;
}
.unified-workspace .uw-tool[aria-pressed='true'] {
  background: #d5e1f0;
  box-shadow: inset 0 0 0 1px #a8bdd7;
  color: #123f79;
}
.unified-workspace .uw-tool-save {
  color: #fff;
  background: #26476e;
}
.unified-workspace .uw-tool-save:hover {
  background: #173858;
}
.uw-tool-save.is-dirty::after {
  content: '';
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #ffcc79;
  inset-block-start: 5px;
  inset-inline-end: 5px;
}
.uw-tool-divider {
  width: 1px;
  height: 20px;
  background: #bbc9dc;
  margin-inline: 3px;
  flex: none;
}
.uw-scene-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-inline-start: auto;
  color: #d8e4f4;
  background: #0b1a30cc;
  border-radius: 4px;
  padding: 3px 6px;
  font-size: 10px;
  line-height: 1.4;
}
.uw-scene-status.is-dirty {
  color: #ffe0ac;
}
.uw-status-dot {
  height: 5px;
  width: 5px;
  border-radius: 50%;
  background: currentColor;
}
.uw-scene-bottom {
  position: absolute;
  inset-block-end: 12px;
  inset-inline-start: 12px;
  max-width: calc(100% - 24px);
}
.uw-tool-menu {
  position: relative;
  flex: none;
}
.uw-tool-help { display: inline-flex; flex: none; }
.uw-tool-tooltip {
  position: fixed;
  z-index: 2000;
  display: grid;
  gap: 5px;
  width: 260px;
  max-width: calc(100vw - 16px);
  box-sizing: border-box;
  padding: 11px 13px;
  border: 1px solid #c5d3e5;
  border-radius: 9px;
  background: #f7f9fe;
  color: #203958;
  box-shadow: 0 6px 20px #0003;
  font-family: var(--font-ui, inherit);
  font-size: 12px;
  line-height: 1.6;
  text-align: start;
  pointer-events: auto;
}
.uw-tool-tooltip[dir='rtl'] { font-family: var(--font-fa, inherit); }
.uw-tool-tooltip strong { font-size: 12px; font-weight: 650; }
.uw-tool-options {
  position: absolute;
  inset-block-end: calc(100% + 10px);
  inset-inline-start: 0;
  width: 188px;
  padding: 5px;
  border: 1px solid #c5d3e5;
  border-radius: 10px;
  background: #f7f9fe;
  box-shadow: 0 8px 24px #0004;
  color: #203958;
  text-align: start;
}
.uw-tool-options > strong {
  display: block;
  padding: 8px 9px;
  font-size: 11px;
}
.unified-workspace .uw-tool-options > button {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 36px;
  padding: 7px 9px;
  border: 0;
  border-radius: 5px;
  font: inherit;
  font-size: 12px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: start;
}
.uw-tool-options > button > span {
  flex: 1;
}
.unified-workspace .uw-tool-options > button:hover,
.unified-workspace .uw-tool-options > button[aria-pressed='true'] {
  background: #dfe8f5;
}
[dir='rtl'] .uw-tool-continue > svg {
  transform: scaleX(-1);
}
.uw-viewport-tools--panels {
  position: relative;
  padding: 12px;
}
.uw-viewport-tools--panels .uw-scene-top {
  position: static;
  justify-content: flex-start;
  align-items: center;
}
.uw-viewport-tools--panels .uw-scene-status {
  background: transparent;
  color: #526784;
}
@media (min-width: 1051px) {
  .uw-scene-status {
    flex-basis: auto;
  }
}
@media (max-width: 1050px) {
  .unified-workspace .p-inspector {
    max-height: none;
  }
}
@media (max-width: 760px) {
  .unified-workspace {
    --uw-canvas-height: 400px;
  }
  .unified-workspace .p-workspace {
    align-items: stretch;
  }
  .unified-workspace .p-rail {
    max-height: none;
  }
  .unified-workspace .uw-controls {
    max-height: none;
  }
  .uw-scene-top {
    inset-block-start: 8px;
    inset-inline: 8px;
    gap: 5px;
  }
  .uw-scene-bottom {
    inset-inline: 8px;
    inset-block-end: 8px;
    max-width: none;
  }
  .unified-workspace .uw-tool {
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding-inline: 8px;
  }
  .uw-inspect-tools {
    gap: 0;
    padding: 3px;
    flex-wrap: wrap;
  }
  .uw-inspect-tools .uw-tool {
    min-width: 44px;
    padding-inline: 5px;
  }
  .uw-view-switch .uw-tool span {
    display: none;
  }
  .uw-tool-divider {
    margin-inline: 2px;
  }
  .uw-tool-options {
    max-height: 280px;
    overflow-y: auto;
    width: 175px;
  }
  .uw-inspect-tools .uw-tool-menu:nth-of-type(n + 3) .uw-tool-options {
    inset-inline-start: -80px;
    inset-inline-end: auto;
  }
  .unified-workspace .uw-tool-options > button {
    min-height: 44px;
  }
}
/* Selected option 3: the real scene is the work surface; cards sit above it.
   Scope to the integrated Cabinet view so Parts and the standalone editor keep
   their existing layout and editing contracts. */
.unified-workspace .p-floating-workspace {
  --uw-floating-height: max(460px, calc(100dvh - 200px));
  --uw-card-inset: clamp(22px, 3.4vw, 56px);
  --uw-units-width: clamp(238px, 17.6vw, 292px);
  --uw-inspector-width: clamp(280px, 20vw, 328px);
  position: relative;
  display: block;
  height: var(--uw-floating-height);
  min-height: 460px;
  padding: 0;
  background: var(--p-canvas);
  isolation: isolate;
}
.p-floating-workspace .p-main,
.p-floating-workspace .p-workspace,
.unified-workspace .p-floating-workspace .p-stage {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.unified-workspace .p-floating-workspace .p-stage { overflow: hidden; }
.p-floating-workspace .p-mobile-context,
.p-floating-workspace .p-mobile-unit-nav,
.p-floating-workspace .p-sheet-heading,
.p-floating-workspace .p-mobile-unit-actions,
.p-floating-workspace .p-mobile-structure { display: none; }
.p-floating-workspace .p-access {
  position: absolute;
  inset-block-start: 78px;
  inset-inline: calc(var(--uw-units-width) + var(--uw-card-inset) + 20px) calc(var(--uw-inspector-width) + var(--uw-card-inset) + 20px);
  z-index: 7;
  margin: 0;
  font-size: 11px;
}
.p-floating-workspace .p-empty {
  height: 100%;
  min-height: 0;
  margin: 0;
  padding-inline: calc(var(--uw-units-width) + var(--uw-card-inset) + 20px) 30px;
  background: var(--p-canvas);
  color: #e5edf9;
}
.p-floating-workspace .p-floating-card {
  min-width: 0;
  border: 1px solid #dce4ef;
  border-radius: 11px;
  background: #fcfdff;
  box-shadow: 0 8px 28px #020c2029, 0 1px 3px #020c2012;
  pointer-events: auto;
  overflow: hidden;
}
.p-floating-workspace .p-floating-card > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 14px;
  font-size: 12px;
}
.p-floating-workspace .p-floating-card > summary > :first-child { flex: 1; }
.p-floating-workspace .p-floating-card > summary > svg { flex: none; }
.p-floating-workspace .p-floating-card > summary > strong { flex: 1; }
.p-floating-workspace .p-floating-card[open] > summary > svg:last-child { transform: rotate(180deg); }
.p-floating-workspace .p-floating-card > summary small {
  display: block;
  margin-block-start: 2px;
  color: var(--p-muted);
  font-size: 11px;
  font-weight: 400;
}
.unified-workspace .p-floating-workspace .p-rail {
  position: absolute;
  inset-block-start: 58px;
  inset-inline-start: var(--uw-card-inset);
  z-index: 6;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: var(--uw-units-width);
  max-height: calc(100% - 144px);
  min-height: 0;
  border: 0;
  background: transparent;
  overflow: auto;
  scrollbar-width: thin;
  pointer-events: none;
}
.p-floating-workspace .p-rail > details { flex: none; }
.p-floating-workspace .p-units-card > summary { padding-block: 10px 8px; }
.p-floating-workspace .p-units-card > summary strong { font-size: 16px; }
.p-floating-workspace .p-units-card-body {
  max-height: min(440px, calc(var(--uw-floating-height) - 275px));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.p-floating-workspace .p-unit-list { padding-inline: 12px; }
.p-floating-workspace .p-unit { padding: 8px 5px; min-height: 68px; gap: 10px; }
.p-floating-workspace .p-unit strong { font-size: 11px; }
.p-floating-workspace .p-unit small { font-size: 11px; }
.p-floating-workspace .p-unit-icon { width: 48px; height: 50px; }
.p-floating-workspace .p-add { margin: 10px 13px 12px; width: calc(100% - 26px); min-height: 38px; }
.p-floating-workspace .p-structure-card-body { padding: 0 12px 12px; }
.p-floating-workspace .p-floating-unit-title { display: flex; align-items: center; gap: 6px; font-size: 12px; }
.p-floating-workspace .p-unit-actions { padding-block: 6px; flex-wrap: wrap; }
.p-floating-workspace .p-unit-actions .p-button { font-size: 10px; padding-inline: 8px; }
.p-floating-workspace .p-structure { padding: 8px 0; }
.p-floating-workspace .p-structure > h3 { display: none; }

/* One inspector, including read-only panel selection, for desktop and phone. */
.unified-workspace .p-floating-workspace .p-inspector {
  position: absolute;
  inset-block-start: 34px;
  inset-inline-end: var(--uw-card-inset);
  z-index: 6;
  display: flex;
  flex-direction: column;
  width: var(--uw-inspector-width);
  max-height: calc(100% - 140px);
  margin: 0;
  overflow: hidden;
}
.p-floating-workspace .p-floating-inspector-head {
  display: flex;
  flex: none;
  align-items: center;
  padding-inline: 12px 6px;
  min-height: 45px;
}
.p-floating-workspace .p-inspector-toggle {
  flex: 1;
  justify-content: space-between;
  min-height: 44px;
  padding: 4px 0;
  text-align: start;
  font-size: 15px;
}
.p-floating-workspace .p-inspector-toggle > svg { order: 1; width: 15px; }
.p-floating-workspace .is-expanded .p-inspector-toggle > svg { transform: rotate(180deg); }
.p-floating-workspace .p-inspector-mode { order: 1; width: 32px; height: 36px; margin-inline-start: 7px; color: var(--p-muted); }
.p-floating-workspace .p-inspector-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.p-floating-workspace .p-edit-tabs { display: flex; padding: 0 10px; gap: 4px; border-bottom: 1px solid var(--p-line); }
.p-floating-workspace .p-edit-tabs > button { flex: 1; padding: 10px 4px; font-size: 11px; min-height: 42px; }
.p-floating-workspace .p-edit-tabs > button[aria-pressed='true'] { color: var(--p-blue); background: var(--p-active); }
.p-floating-workspace .p-tab-materials .p-edit-tabs,
.p-floating-workspace .p-tab-materials .p-editor-fields,
.p-floating-workspace .p-tab-materials .p-validation,
.p-floating-workspace .p-dimensions-section,
.p-floating-workspace .p-structure-section { display: none; }
.p-floating-workspace .p-tab-dimensions .p-dimensions-section,
.p-floating-workspace .p-tab-structure .p-structure-section { display: block; }
.p-floating-workspace .p-inspector-dropdown { margin: 0; }
.p-floating-workspace .p-name-field { display: none; }
.p-floating-workspace .p-number { width: 105px; }
.p-floating-workspace .p-installed output { width: 105px; }
.p-floating-workspace .uw-cabinet-materials { padding: 0 13px 0; }
.p-floating-workspace .uw-panel-preview-picker > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.unified-workspace .p-floating-workspace .uw-panel-preview-picker { margin: 0 0 10px; }
.p-floating-workspace .uw-panel-preview-picker select { min-height: 38px; background: #f6f8fd; font-size: 11px; }
.p-floating-workspace .uw-cabinet-materials .manager-edge-editor { gap: 8px; }
.p-floating-workspace .manager-edge-pickers { gap: 10px; }
.p-floating-workspace .manager-part-picker { gap: 4px; font-size: 11px; }
.p-floating-workspace .manager-part-picker__control { min-height: 40px; grid-template-columns: 30px minmax(0, 1fr) 14px; }
.p-floating-workspace .manager-part-picker__control .manager-color-swatch { width: 30px; height: 30px; }
.unified-workspace .p-floating-workspace .manager-part-picker__control select { min-height: 38px; font-size: 11px; }
.p-floating-workspace .uw-cabinet-materials .manager-edge-canvas {
  min-height: 0;
  padding: 48px;
  overflow: visible;
}
.p-floating-workspace .uw-cabinet-materials .manager-edge-board {
  width: min(100%, calc(102px * var(--board-ratio)));
  background: var(--panel-color);
}
.p-floating-workspace .manager-edge-canvas__dimensions,
.p-floating-workspace .manager-edge-board__center { display: none; }
.p-floating-workspace .manager-edge-target--left,
.p-floating-workspace .manager-edge-target--right { writing-mode: horizontal-tb; }
.p-floating-workspace .manager-edge-target--left .manager-edge-target__label { transform: none; }
.p-floating-workspace .manager-edge-target__label { font-size: 10px; padding: 3px; }
.p-floating-workspace .manager-edge-target.is-selected .manager-edge-target__label { color: #1b4380; background: #eaf0ff; }
.p-floating-workspace .uw-cabinet-materials .manager-edge-operations { gap: 6px; border: 0; overflow: visible; }
.unified-workspace .p-floating-workspace .manager-edge-operations button {
  flex-direction: column;
  min-height: 48px;
  border: 1px solid #d6e0ee;
  border-radius: 6px;
  color: #213c68;
  background: white;
  gap: 3px;
  font-size: 10px;
}
.unified-workspace .p-floating-workspace .manager-edge-operations button.is-active {
  background: #edf2ff;
  color: #214b9c;
  border-color: #7394e4;
}
.p-floating-workspace .manager-edge-operations button > svg { width: 19px; }
.p-floating-workspace .manager-edge-more { order: 6; border-top: 1px solid var(--p-line); }
.p-floating-workspace .manager-edge-more > summary { display: flex; align-items: center; justify-content: space-between; min-height: 32px; font-size: 10px; color: var(--p-muted); }
.p-floating-workspace .manager-edge-more[open] > summary > svg { transform: rotate(180deg); }
.p-floating-workspace .manager-edge-more > div { display: grid; gap: 12px; padding-block: 4px 12px; }
.p-floating-workspace .manager-edge-more label { display: grid; gap: 5px; font-size: 11px; }
.p-floating-workspace .manager-edge-more select { width: 100%; min-height: 40px; }
.p-floating-workspace .manager-edge-apply-row { position: sticky; inset-block-end: 0; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 8px; padding-block: 4px; background: #fcfdff; }
.p-floating-workspace .uw-panel-scope { min-width: 0; }
.p-floating-workspace .uw-panel-scope > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.p-floating-workspace .uw-panel-scope select { width: 100%; min-height: 40px; padding-inline: 6px; font-size: 11px; }
.unified-workspace .p-floating-workspace .manager-edge-editor__apply { min-height: 40px; padding: 7px; border-radius: 6px; font-size: 11px; }
.p-floating-workspace .uw-cabinet-defaults { margin: 0; border-top: 1px solid var(--p-line); border-bottom: 0; }
.p-floating-workspace .uw-cabinet-defaults > summary { min-height: 44px; }
.p-floating-workspace .uw-panel-inspector--embedded > [role='alert'] { padding: 8px 0; color: #9d3236; }

/* Toolbars occupy the open middle of the scene, never the card columns. */
.p-floating-workspace .uw-scene-top {
  inset-block-start: 18px;
  inset-inline-start: calc(var(--uw-units-width) + var(--uw-card-inset) + 22px);
  inset-inline-end: calc(var(--uw-inspector-width) + var(--uw-card-inset) + 22px);
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.p-floating-workspace .uw-scene-status { margin: 0; background: transparent; white-space: nowrap; }
.p-floating-workspace .uw-tool-strip { background: #f7f9fff5; }
.p-floating-workspace .uw-scene-bottom {
  inset-block-end: 24px;
  inset-inline-start: 50%;
  inset-inline-end: auto;
  transform: translateX(-50%);
  width: max-content;
}
[dir='rtl'] .p-floating-workspace .uw-scene-bottom { transform: translateX(50%); }
.p-floating-workspace .p-floating-review { position: absolute; z-index: 7; inset-block-end: 25px; inset-inline-start: var(--uw-card-inset); }
.p-floating-workspace .p-floating-review > summary { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 10px; border: 1px solid #50627e; border-radius: 7px; color: #d9e5f7; background: #11243e; font-size: 11px; }
.p-floating-workspace .p-floating-review > div { position: absolute; inset-block-end: calc(100% + 8px); inset-inline-start: 0; width: var(--uw-units-width); max-height: min(360px, 65dvh); overflow: auto; border: 1px solid var(--p-line); border-radius: 10px; background: white; box-shadow: 0 6px 24px #0003; }
.p-floating-workspace .p-floating-review .p-footer { position: static; display: flex; flex-direction: column; align-items: stretch; padding: 16px; min-height: 0; border: 0; gap: 14px; }
.p-floating-workspace .p-floating-review .p-estimate { width: 100%; }
.p-floating-workspace .p-floating-review .p-review { width: 100%; }
.p-floating-workspace .p-toast { position: absolute; inset-block-end: 78px; }

@media (max-width: 1300px) and (min-width: 1101px) {
  .p-floating-workspace .uw-view-switch .uw-tool > span { display: none; }
  .p-floating-workspace .uw-scene-top { gap: 6px; }
  .p-floating-workspace .p-inspector-toggle { font-size: 13px; }
}
@media (max-width: 1100px) {
  .unified-workspace .p-floating-workspace { --uw-card-inset: 16px; --uw-units-width: 250px; --uw-inspector-width: 300px; }
  .p-floating-workspace .uw-scene-top { inset-inline: 16px; justify-content: center; gap: 7px; }
  .unified-workspace .p-floating-workspace .p-rail { inset-block-start: 82px; max-height: calc(100% - 175px); }
  .unified-workspace .p-floating-workspace .p-inspector { inset-block-start: 82px; max-height: calc(100% - 175px); }
  .p-floating-workspace .p-units-card > summary { min-height: 44px; }
  .p-floating-workspace .p-units-card > summary strong { font-size: 13px; }
  .p-floating-workspace .p-units-card:not([open]) > summary > span { display: flex; align-items: center; gap: 8px; }
  .p-floating-workspace .p-units-card:not([open]) > summary small { margin: 0; }
  .p-floating-workspace .p-units-card-body { max-height: calc(var(--uw-floating-height) - 240px); }
  .p-floating-workspace .p-access { inset-block-start: 178px; inset-inline: 16px; }
}
@media (max-width: 760px) {
  .unified-workspace .p-floating-workspace { --uw-card-inset: 10px; --uw-units-width: 168px; --uw-inspector-width: calc(100% - 20px); }
  .p-floating-workspace .uw-scene-top { inset-block-start: 10px; inset-inline: 10px; gap: 5px; }
  .p-floating-workspace .uw-tool-strip { padding: 3px; gap: 0; }
  .p-floating-workspace .uw-scene-status { position: absolute; inset-block-start: 54px; inset-inline-end: 0; font-size: 9px; }
  .p-floating-workspace .uw-tool-divider { display: none; }
  .p-floating-workspace .uw-scene-top .uw-tool { min-width: 44px; padding-inline: 5px; }
  .unified-workspace .p-floating-workspace .p-rail { inset-block-start: 80px; gap: 8px; max-height: calc(100% - 175px); overflow: visible; }
  .p-floating-workspace .p-rail:has(details[open]) { width: calc(100% - 20px); overflow: auto; }
  .p-floating-workspace .p-floating-card > summary { min-height: 44px; padding: 9px 10px; font-size: 11px; }
  .p-floating-workspace .p-units-card:not([open]) > summary small { display: none; }
  .p-floating-workspace .p-unit strong, .p-floating-workspace .p-unit small { font-size: 12px; }
  .p-floating-workspace .p-units-card-body { max-height: calc(var(--uw-floating-height) - 250px); }
  .p-floating-workspace .p-structure-card-body { max-height: calc(var(--uw-floating-height) - 245px); overflow: auto; }
  .unified-workspace .p-floating-workspace .p-inspector { inset-block-start: auto; inset-block-end: 79px; width: var(--uw-inspector-width); max-height: min(58%, 460px); }
  .p-floating-workspace .p-floating-inspector-head { min-height: 46px; }
  .p-floating-workspace .p-inspector-toggle { font-size: 13px; }
  .p-floating-workspace .p-inspector-mode { min-width: 44px; height: 44px; }
  .p-floating-workspace .p-edit-tabs > button { min-height: 44px; }
  .p-floating-workspace .p-floating-review { inset-block-end: 12px; }
  .p-floating-workspace .p-floating-review > summary { width: 40px; padding: 0; justify-content: center; }
  .p-floating-workspace .p-floating-review > summary > span,
  .p-floating-workspace .p-floating-review > summary > svg:last-child { display: none; }
  .p-floating-workspace .p-floating-review > div { width: min(300px, calc(100vw - 20px)); }
  .p-floating-workspace .uw-scene-bottom { inset-block-end: 12px; inset-inline-start: auto; inset-inline-end: 10px; max-width: calc(100% - 64px); transform: none; }
  [dir='rtl'] .p-floating-workspace .uw-scene-bottom { transform: none; }
  .p-floating-workspace .uw-inspect-tools { flex-wrap: nowrap; }
  .p-floating-workspace .uw-inspect-tools .uw-tool { min-width: 44px; padding-inline: 4px; gap: 1px; }
  .p-floating-workspace .uw-tool-options { max-height: min(280px, calc(var(--uw-floating-height) - 170px)); }
  .p-floating-workspace .p-empty { padding: 230px 20px 85px; font-size: 12px; }
}
@media (max-width: 389px) {
  .p-floating-workspace .uw-scene-top { flex-direction: column; }
  .p-floating-workspace .uw-scene-status { inset-block-start: 110px; }
  .unified-workspace .p-floating-workspace .p-rail { inset-block-start: 138px; }
  .p-floating-workspace .uw-inspect-tools .uw-tool { min-width: 32px; padding-inline: 3px; }
}
/* The active editor owns these actions even when the shell places them beside
   project identity. In Panels/standalone mode they stay in the scene toolbar. */
.uw-scene-top > .uw-header-tools { display: contents; }
.focused-workspace-header__tools .uw-header-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  width: 100%;
  min-width: 0;
  background: transparent;
  font-size: 13px;
  pointer-events: auto;
}
.focused-workspace-header__tools .uw-tool-strip {
  box-shadow: none;
  backdrop-filter: none;
  background: transparent;
  border-color: transparent;
  border-radius: 6px;
  padding: 2px;
  flex: none;
}
.focused-workspace-header__tools .uw-view-switch {
  background: #f8fafc;
  border-color: #d0d8e2;
}
.focused-workspace-header__tools .uw-edit-tools { margin-inline-start: auto; flex-wrap: wrap; flex-shrink: 1; }
.uw-unit-tools { flex-wrap: wrap; }
.focused-workspace-header__tools .uw-unit-tools { flex-shrink: 1; }
.focused-workspace-header__tools .uw-tool {
  min-width: 44px;
  min-height: 44px;
  height: 44px;
  font-size: 13px;
  padding-inline: 10px;
  color: #30466a;
}
.focused-workspace-header__tools .uw-tool[aria-pressed='true'] {
  color: #135dff;
  background: #e8efff;
  box-shadow: inset 0 0 0 1px #b9cfff;
}
.focused-workspace-header__tools .uw-tool-save,
.focused-workspace-header__tools .uw-tool-review {
  border: 1px solid var(--ink-200);
  background: var(--paper);
  color: var(--ink-950);
  gap: 8px;
}
.focused-workspace-header__tools .uw-tool-save:hover,
.focused-workspace-header__tools .uw-tool-review:hover { background: var(--ink-050); }
.unified-workspace .uw-tool-review {
  min-width: 44px;
  min-height: 44px;
  white-space: nowrap;
}
.focused-workspace-header__tools .uw-scene-status {
  background: transparent;
  color: #536583;
  font-size: 12px;
  max-width: 180px;
  margin: 0;
}
.focused-workspace-header__tools .uw-scene-status.is-dirty { color: #995200; }
.focused-workspace-header__tools .uw-tool-continue { margin-inline-start: 2px; }
.uw-mounted-view { min-width: 0; }

/* Review keeps the native producer dialog's body styling and has no layout
   box of its own. Its trigger lives alongside the shared workspace actions. */
.unified-workspace .producer-app.uw-shared-review {
  display: contents;
  --p-ink: var(--ink-900);
  --p-muted: var(--ink-600);
  --p-line: var(--ink-200);
  --p-blue: var(--brand-800);
  --p-active: var(--ink-100);
  --p-canvas: var(--ink-050);
  color: var(--ink-900);
  font: 13px/1.5 var(--font-ui);
}
.unified-workspace .producer-app.uw-shared-review[dir='rtl'] {
  font-family: var(--font-fa);
}

/* Cabinet shares the same single dock. Existing inspector and units/structure
   components retain their identity and controls, placed on two grid rows.
   The explicit focused class beats inherited floating rules in either import
   order. Rail limits use the viewport-derived height, never an auto row's %. */
.unified-workspace .p-floating-workspace.p-floating-workspace--focused {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--uw-cabinet-dock-width);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0;
  --uw-cabinet-dock-width: clamp(288px, 24vw, 328px);
  --uw-cabinet-rail-max: clamp(96px, calc(var(--uw-floating-height) - 300px), 250px);
  --uw-units-width: 0px;
  --uw-card-inset: 0px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-main,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-workspace {
  display: contents;
  position: static;
  inset: auto;
  grid-area: auto;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding: 0;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-stage {
  position: relative;
  inset: auto;
  grid-column: 1;
  grid-row: 1 / -1;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
  max-height: none;
  align-self: stretch;
  overflow: hidden;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-inspector {
  position: relative;
  inset: auto;
  grid-column: 2;
  grid-row: 1;
  width: auto;
  min-width: 0;
  min-height: 0;
  max-height: none;
  height: auto;
  align-self: stretch;
  border: 0;
  border-inline-start: 1px solid var(--ink-200);
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-rail {
  position: relative;
  inset: auto;
  grid-column: 2;
  grid-row: 2;
  width: auto;
  height: auto;
  max-height: var(--uw-cabinet-rail-max);
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  background: var(--paper);
  border: 0;
  border-inline-start: 1px solid var(--ink-200);
  gap: 0;
  pointer-events: auto;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-rail .p-floating-card {
  box-shadow: none;
  border: 0;
  border-block-start: 1px solid var(--ink-200);
  border-radius: 0;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-units-card-body,
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-structure-card-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-units-card-body {
  max-height: clamp(96px, 18dvh, 170px);
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-structure-card-body {
  max-height: clamp(112px, 24dvh, 220px);
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-inspector-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-access {
  inset-inline: 18px calc(var(--uw-cabinet-dock-width) + 20px);
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-empty {
  grid-column: 1;
  grid-row: 1 / -1;
  height: auto;
  min-width: 0;
  min-height: 0;
  padding: 32px;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .uw-cabinet-materials .manager-edge-canvas {
  min-height: 0;
  padding: 52px 48px;
  border-color: var(--ink-150);
  background: var(--ink-050);
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .uw-cabinet-materials .manager-edge-board-stage {
  height: clamp(128px, 20dvh, 168px);
  min-height: 0;
}
.unified-workspace .p-floating-workspace.p-floating-workspace--focused .uw-scene-bottom {
  inset-inline: 16px;
  transform: none;
  max-width: none;
  justify-content: center;
}

@media (min-width: 901px) {
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused:has(.p-inspector.is-collapsed) {
    grid-template-rows: auto minmax(0, 1fr);
    --uw-cabinet-rail-max: calc(var(--uw-floating-height) - 46px);
  }
}

@media (max-width: 900px) {
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-stage {
    flex: none;
    height: min(60dvh, 500px);
    min-height: 320px;
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-inspector,
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-rail {
    height: auto;
    width: 100%;
    max-height: none;
    border-inline-start: 0;
    border-block-start: 1px solid var(--ink-200);
    overflow: visible;
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-inspector { order: 1; }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-rail { order: 2; }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-inspector-body {
    max-height: min(480px, 60dvh);
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-units-card-body {
    max-height: min(320px, 42dvh);
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-structure-card-body {
    max-height: min(360px, 48dvh);
  }
  .unified-workspace .p-floating-workspace.p-floating-workspace--focused .p-access { inset-inline: 18px; }
}
@media (max-width: 1100px) {
  .focused-workspace-header__tools .uw-header-tools { gap: 5px; flex-wrap: wrap; }
  .focused-workspace-header__tools .uw-tool { padding-inline: 6px; }
  .focused-workspace-header__tools .uw-scene-status { max-width: 100px; font-size: 11px; }
}
@media (max-width: 700px) {
  .focused-workspace-header__tools .uw-header-tools { flex-wrap: wrap; gap: 4px; }
  .focused-workspace-header__tools .uw-edit-tools {
    margin-inline-start: 0;
    flex-wrap: wrap;
    max-width: 100%;
  }
  .focused-workspace-header__tools .uw-view-switch { flex: 1; justify-content: center; }
  .focused-workspace-header__tools .uw-scene-status { margin-inline-start: auto; max-width: 125px; }
  .focused-workspace-header__tools .uw-tool { min-width: 44px; font-size: 12px; }
}
/* Feedback must never consume a row above the canvas or shift product chrome.
   It is a persistent, bounded, nonmodal surface with its own scroll owner. */
.unified-workspace {
  position: relative;
}
.unified-workspace > .uw-workspace-feedback {
  position: absolute;
  inset-inline-start: 20px;
  inset-block-end: 100px;
  z-index: 42;
  inline-size: min(410px, calc(100% - 100px));
  max-block-size: min(42dvh, max(96px, calc(100% - 132px)));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid var(--p-line, #dbe3ed);
  border-radius: 9px;
  background: #fff;
  color: var(--p-ink, #07142f);
  box-shadow: 0 4px 20px #10254c15;
  text-align: start;
  overflow-wrap: anywhere;
}
.uw-workspace-feedback > .uw-notice {
  margin: 0;
  padding: 12px 14px;
  background: transparent;
  line-height: 1.6;
}
.uw-workspace-feedback > .uw-notice + .uw-notice {
  border-block-start: 1px solid var(--p-line, #dbe3ed);
}
.uw-workspace-feedback > [role='alert'] {
  border-inline-start: 3px solid var(--danger, #b73838);
}
.uw-workspace-feedback .uw-feedback-message {
  margin: 0;
}
.uw-workspace-feedback .uw-feedback-retry {
  display: block;
  min-block-size: 36px;
  margin-block-start: 9px;
  padding: 6px 11px;
  border: 1px solid var(--p-line, #dbe3ed);
  border-radius: 5px;
  background: #fff;
  color: var(--p-ink, #07142f);
  font: inherit;
  cursor: pointer;
}
.uw-workspace-feedback .uw-feedback-retry:hover:not(:disabled) {
  border-color: #a9bedc;
  background: #f2f6fc;
}
.uw-workspace-feedback:focus-visible,
.uw-workspace-feedback .uw-feedback-retry:focus-visible {
  outline: 2px solid #2468ff;
  outline-offset: 2px;
}
@media (max-width: 640px) {
  .unified-workspace > .uw-workspace-feedback {
    inset-inline: 12px;
    inset-block-start: auto;
    inset-block-end: 86px;
    inline-size: auto;
    max-block-size: min(36dvh, calc(100% - 110px));
  }
}
@media (forced-colors: active) {
  .unified-workspace > .uw-workspace-feedback {
    border-color: CanvasText;
    box-shadow: none;
  }
  .uw-workspace-feedback > [role='alert'] {
    border-inline-start-color: CanvasText;
  }
}
@font-face { font-family: "Plus Jakarta Sans"; src: url("/assets/PlusJakartaSans-BZU_LQer.ttf") format("truetype"); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Shabnam"; src: url("/assets/Shabnam-Light-C1deMUII.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Shabnam"; src: url("/assets/Shabnam-Ci_87ogH.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Shabnam"; src: url("/assets/Shabnam-Medium-DNmzH3VD.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Shabnam"; src: url("/assets/Shabnam-Bold-C6MDpycz.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200F, U+FB50-FDFF, U+FE70-FEFF; }

:root {
  color-scheme: light;
  --font-ui: "Plus Jakarta Sans", "Shabnam", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-fa: "Shabnam", "Plus Jakarta Sans", sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
  --ink-950: #07142f;
  --ink-900: #0a1b3a;
  --ink-800: #173057;
  --ink-700: #30466a;
  --ink-600: #536583;
  --ink-500: #6d7b94;
  --ink-300: #b7c2d1;
  --ink-200: #d0d8e2;
  --ink-150: #dde3ea;
  --ink-100: #e9edf1;
  --ink-050: #f5f7f8;
  --paper: #ffffff;
  --canvas: #f5f7f7;
  --canvas-warm: #fafaf8;
  --brand-rgb: 83, 101, 131;
  --brand-shadow-rgb: 30, 48, 70;
  --brand-glass: rgba(242, 246, 249, .76);
  --glass-border: rgba(var(--brand-rgb), .22);
  --glass-shadow: 0 8px 26px rgba(var(--brand-shadow-rgb), .1);
  --glass-blur: blur(22px) saturate(135%);
  --brand-900: #173057;
  --brand-800: #30466a;
  --brand-700: #536583;
  --brand-600: #6d7b94;
  --brand-100: #e9edf1;
  --brand-050: #f5f7f8;
  --green-700: #08733f;
  --green-100: #dcf3e6;
  --blue-700: #075bc7;
  --blue-100: #e4efff;
  --amber-800: #995200;
  --amber-700: #b86300;
  --amber-500: #ef9500;
  --amber-100: #fff0d4;
  --red-700: #bd1b1b;
  --red-100: #ffe2e2;
  --shadow-sm: 0 1px 2px rgba(7, 20, 47, 0.05);
  --shadow-md: 0 10px 34px rgba(7, 20, 47, 0.10);
  --radius-xs: 6px;
  --radius-sm: 9px;
  --radius-md: 13px;
  --radius-lg: 18px;
  --page-gutter: clamp(18px, 3vw, 40px);
  --global-rail: 76px;
  --context-rail: 280px;
  font-family: var(--font-ui);
  color: var(--ink-950);
  background: var(--canvas);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

html[dir="rtl"] { --font-ui: var(--font-fa); }
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; -webkit-font-smoothing: antialiased; background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(var(--brand-rgb), 0.28); outline-offset: 2px; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { margin-bottom: 12px; font-size: clamp(27px, 2.4vw, 38px); line-height: 1.08; letter-spacing: -0.035em; }
h2 { margin-bottom: 10px; font-size: clamp(19px, 1.45vw, 25px); line-height: 1.18; letter-spacing: -0.025em; }
h3 { margin-bottom: 8px; font-size: 16px; line-height: 1.3; }
p { line-height: 1.55; color: var(--ink-600); }
small { color: var(--ink-600); }
.mono { font-family: var(--font-mono); letter-spacing: 0.03em; }
.muted { color: var(--ink-600); }
.eyebrow { margin: 0 0 7px; color: var(--ink-600); font-size: 11px; font-weight: 730; letter-spacing: 0.12em; text-transform: uppercase; }
.brand { position: relative; display: inline-flex; align-items: center; padding: 0; border: 0; background: none; color: var(--ink-950); cursor: pointer; }
.brand img { display: block; width: 126px; height: 30px; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.brand > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.button { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; gap: 9px; padding: 10px 16px; border: 1px solid transparent; border-radius: var(--radius-xs); background: var(--brand-800); color: white; font-weight: 680; line-height: 1.1; cursor: pointer; transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; }
.button:hover:not(:disabled) { background: var(--brand-900); transform: translateY(-1px); }
.button:active:not(:disabled) { transform: translateY(0); }
.button:disabled { cursor: not-allowed; background: var(--ink-100); color: var(--ink-500); border-color: var(--ink-200); }
.button--secondary { background: var(--paper); border-color: var(--ink-300); color: var(--ink-900); }
.button--secondary:hover:not(:disabled) { background: var(--ink-050); border-color: var(--brand-700); color: var(--brand-900); }
.button--quiet { min-height: 38px; padding: 7px 9px; border-color: transparent; background: transparent; color: var(--ink-700); }
.button--quiet:hover:not(:disabled) { background: var(--ink-100); color: var(--ink-950); }
.button--danger { background: var(--red-700); color: var(--paper); }
.button--danger:hover:not(:disabled) { background: var(--red-700); border-color: var(--ink-950); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.button-row > .button { flex: 0 0 auto; }
.icon-button { display: inline-grid; width: 39px; height: 39px; place-items: center; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--ink-700); cursor: pointer; }
.icon-button:hover { border-color: var(--ink-200); background: var(--ink-050); color: var(--ink-950); }

.status { display: inline-flex; width: fit-content; align-items: center; gap: 7px; min-height: 28px; padding: 5px 10px; border: 1px solid var(--ink-200); border-radius: 999px; background: var(--paper); color: var(--ink-700); font-size: 12px; font-weight: 650; white-space: nowrap; }
.status__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status--success { border-color: #99ceb3; background: var(--green-100); color: var(--green-700); }
.status--info { border-color: #9fc2ef; background: var(--blue-100); color: var(--blue-700); }
.status--warning { border-color: #ecc385; background: var(--amber-100); color: var(--amber-800); }
.status--danger { border-color: #f2abab; background: var(--red-100); color: var(--red-700); }
.status--neutral { background: var(--ink-050); color: var(--ink-600); }
.status--compact { max-width: min(390px, 42vw); overflow: hidden; text-overflow: ellipsis; }

.panel { padding: 20px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-sm); }
.panel > :last-child { margin-bottom: 0; }
.panel--danger { border-color: #efb2b2; }
.panel__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin: -3px 0 17px; }
.panel__header h2 { margin: 0; }
.panel__header-action { flex: 0 0 auto; }

.info-strip { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 14px 16px; border: 1px solid var(--ink-300); border-radius: var(--radius-xs); background: var(--brand-050); color: var(--brand-900); }
.info-strip svg { flex: 0 0 auto; }
.info-strip__body { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 3px; }
.info-strip__body span { color: var(--ink-700); font-size: 13px; line-height: 1.45; }
.info-strip__action { margin-inline-start: auto; }
.info-strip--warning { border-color: #efc78d; background: #fff9ed; color: var(--amber-800); }
.info-strip--danger { border-color: #e8abab; background: #fff6f6; color: var(--red-700); }
.info-strip--success { border-color: #9fd4b8; background: #f1faf5; color: var(--green-700); }

.progress { display: grid; gap: 8px; }
.progress__label { display: flex; justify-content: space-between; color: var(--ink-600); font-size: 12px; }
.progress__track { height: 8px; overflow: hidden; border-radius: 999px; background: var(--ink-100); }
.progress__track span { display: block; height: 100%; background: var(--brand-700); }
.progress--compact .progress__track { height: 6px; }
.progress--indeterminate .progress__track { position: relative; }
.progress__track .progress__activity { position: absolute; inset-block: 0; background: transparent; overflow: hidden; }
.progress__activity::after { content: ""; display: block; width: 28%; height: 100%; background: var(--brand-700); opacity: .5; animation: progress-activity 1.8s ease-in-out infinite alternate; }
@keyframes progress-activity { from { transform: translateX(0); } to { transform: translateX(257%); } }
[dir="rtl"] .progress__activity::after { animation-name: progress-activity-rtl; }
@keyframes progress-activity-rtl { from { transform: translateX(0); } to { transform: translateX(-257%); } }
.optimizer-run-status:empty { display: none; }
.optimizer-run-status { display: grid; gap: 12px; }
/* Keep progress compact so the current cutting plan remains in view. */
.optimizer-run-progress { min-width: 0; padding: 18px 20px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.optimizer-run-progress__content { width: 100%; min-width: 0; }
.optimizer-run-progress__readout { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 28px; margin-block-end: 12px; color: var(--ink-900); font-size: 14px; font-weight: 600; }
.optimizer-run-progress__readout > :first-child { min-width: 0; overflow-wrap: anywhere; }
.optimizer-run-progress__percent { color: var(--ink-900); font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.optimizer-run-progress .progress__track { height: 8px; }
.optimizer-run-progress .progress__track > span:first-child { transition: width 180ms ease-out; border-radius: inherit; }
.optimizer-run-progress__detail { margin: 8px 0 0; color: var(--ink-600); font-size: 12px; line-height: 1.7; }
.optimizer-run-progress__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-block-start: 10px; padding-block-start: 10px; border-block-start: 1px solid var(--ink-100); }
.optimizer-run-progress__footer p { margin: 0; color: var(--ink-600); font-size: 12px; line-height: 1.7; }
.optimizer-run-progress__footer .button { flex-shrink: 0; min-height: 44px; }
.optimizer-run-progress.is-paused .progress__activity::after { animation: none; opacity: 0; }
.optimizer-run-progress.is-ready .progress__track > span:first-child { background: var(--green-700); }
@media (max-width: 600px) {
  .optimizer-run-progress { padding: 14px 16px; }
  .optimizer-run-progress__readout { font-size: 13px; gap: 8px; }
  .optimizer-run-progress__percent { font-size: 17px; }
  .optimizer-run-progress__footer { flex-wrap: wrap; gap: 8px; }
  .optimizer-run-progress__footer p { flex: 1 1 180px; }
  .optimizer-run-progress__footer .button { max-width: 100%; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .optimizer-run-progress .progress__track > span:first-child { transition: none; } }
@media (prefers-reduced-motion: reduce) { .progress__activity::after, [dir="rtl"] .progress__activity::after { animation: none; width: 100%; opacity: .22; } }
.stat { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.stat > span { color: var(--ink-600); font-size: 12px; }
.stat > strong { overflow-wrap: anywhere; font-size: 23px; line-height: 1.15; }
.stat > small { font-size: 11px; }
.stat--warning > strong { color: var(--amber-700); }
.stat--danger > strong { color: var(--red-700); }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 15px 0; }
.stat-grid .stat { padding: 0 16px; border-inline-end: 1px solid var(--ink-200); }
.stat-grid .stat:first-child { padding-inline-start: 0; }
.stat-grid .stat:last-child { border-inline-end: 0; }

.search { display: flex; min-width: min(340px, 100%); min-height: 44px; align-items: center; gap: 9px; padding: 0 13px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-600); }
.search:focus-within { border-color: var(--brand-800); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), 0.10); }
.search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink-950); }
.search input::placeholder { color: var(--ink-500); }
.field, .select-field { display: grid; min-width: 0; gap: 7px; color: var(--ink-800); font-size: 13px; font-weight: 600; }
.field input, .field textarea, .select-field select { width: 100%; min-height: 44px; padding: 11px 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); outline: 0; background: var(--paper); color: var(--ink-950); font-weight: 450; resize: vertical; }
.field textarea { min-height: 96px; }
.field input:focus, .field textarea:focus, .select-field select:focus { border-color: var(--brand-800); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), 0.10); }
.field small { font-weight: 450; }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--red-700); background: #fff9f9; }
.field input[aria-invalid="true"]:focus, .field textarea[aria-invalid="true"]:focus { border-color: var(--red-700); box-shadow: 0 0 0 3px rgba(189, 27, 27, 0.12); }
.form-grid { display: grid; gap: 14px; }
.form-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jalali-date-field { position: relative; display: grid; min-width: 0; gap: 7px; color: var(--ink-800); font-size: 13px; font-weight: 600; }
.jalali-date-field > small { color: var(--ink-600); font-weight: 450; }
.jalali-date-field__control { direction: ltr; display: grid; grid-template-columns: minmax(0, 1fr) 44px; min-width: 0; }
.jalali-date-field__control input { width: 100%; min-width: 0; min-height: 44px; padding: 11px 12px; border: 1px solid var(--ink-200); border-inline-end: 0; border-radius: var(--radius-xs) 0 0 var(--radius-xs); outline: 0; background: var(--paper); color: var(--ink-950); font-weight: 450; }
.jalali-date-field__control input:focus { position: relative; z-index: 1; border-color: var(--brand-800); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), 0.10); }
.jalali-date-field__control button { display: grid; min-height: 44px; place-items: center; border: 1px solid var(--ink-200); border-radius: 0 var(--radius-xs) var(--radius-xs) 0; background: var(--ink-050); color: var(--ink-700); cursor: pointer; }
.jalali-date-field__control button:hover { background: var(--brand-100); color: var(--brand-900); }
.jalali-date-field__error { color: var(--red-700, #b42318) !important; }
.jalali-calendar { position: absolute; z-index: 5; inset-block-start: calc(100% + 4px); inset-inline-start: 0; display: grid; width: min(340px, 100%); min-width: 280px; gap: 10px; padding: 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-md); }
.jalali-calendar > header, .jalali-calendar > footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.jalali-calendar > header strong { color: var(--ink-950); font-size: 13px; }
.jalali-calendar > header button, .jalali-calendar > footer button { min-height: 32px; padding: 5px 8px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-700); font-size: 12px; font-weight: 650; cursor: pointer; }
.jalali-calendar > header button { display: grid; width: 32px; place-items: center; padding: 0; }
.jalali-calendar button:hover { border-color: var(--brand-600); background: var(--brand-050); color: var(--brand-900); }
.jalali-calendar__weekdays, .jalali-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; text-align: center; }
.jalali-calendar__weekdays span { padding-block: 3px; color: var(--ink-500); font-size: 10px; font-weight: 700; }
.jalali-calendar__days { grid-auto-rows: 34px; }
.jalali-calendar__days button { min-width: 0; border: 1px solid transparent; border-radius: var(--radius-xs); background: transparent; color: var(--ink-800); font: inherit; font-size: 12px; cursor: pointer; }
.jalali-calendar__days button:hover { background: var(--brand-050); }
.jalali-calendar__days button.is-selected { border-color: var(--brand-700); background: var(--brand-700); color: white; }
.select-field__control { position: relative; display: block; }
.select-field select { appearance: none; padding-inline-end: 36px; }
.select-field__control svg { position: absolute; inset-inline-end: 12px; top: 50%; pointer-events: none; transform: translateY(-50%); }
.check-field { display: flex; align-items: flex-start; gap: 10px; color: var(--ink-700); font-size: 13px; line-height: 1.45; }
.check-field input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--brand-700); }
.metric-row { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 12px 0; border-bottom: 1px solid var(--ink-150); color: var(--ink-600); font-size: 13px; }
.metric-row:last-child { border-bottom: 0; }
.metric-row strong { color: var(--ink-950); text-align: end; overflow-wrap: anywhere; }
.metric-row--strong { margin-top: 8px; border-top: 1px solid var(--ink-300); }
.metric-row--strong strong { font-size: 20px; }
.metric-row--success strong { color: var(--green-700); }
.metric-row--warning strong { color: var(--amber-700); }
.metric-row--danger strong { color: var(--red-700); }
.key-values { display: grid; grid-template-columns: minmax(120px, 0.7fr) minmax(160px, 1.3fr); margin: 0; }
.key-values dt, .key-values dd { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--ink-150); font-size: 13px; }
.key-values dt { color: var(--ink-600); }
.key-values dd { color: var(--ink-950); font-weight: 600; overflow-wrap: anywhere; }

.overlay { position: fixed; z-index: 100; inset: 0; display: flex; justify-content: flex-end; background: rgba(7, 20, 47, 0.34); backdrop-filter: blur(3px); }
.overlay--center { align-items: center; justify-content: center; padding: 20px; }
.drawer, .modal { display: flex; width: min(560px, 100%); max-height: 100dvh; flex-direction: column; border-inline-start: 1px solid var(--ink-200); background: var(--paper); box-shadow: var(--shadow-md); animation: slide-in 180ms ease-out; }
.drawer--lg { width: min(860px, 100%); }
.modal { max-height: min(88dvh, 840px); border: 1px solid var(--ink-200); border-radius: var(--radius-lg); animation: lift-in 160ms ease-out; }
.drawer__handle { display: none; width: 44px; height: 5px; margin: 10px auto 2px; border-radius: 999px; background: var(--ink-200); }
.drawer__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid var(--ink-150); }
.drawer__header h2 { margin: 0; }
.drawer__body { display: grid; gap: 18px; padding: 22px; overflow-y: auto; }
.drawer__footer { display: flex; gap: 10px; padding: 16px 22px; border-top: 1px solid var(--ink-150); }
.drawer-actions { display: flex; width: 100%; justify-content: flex-end; gap: 10px; }
@keyframes slide-in { from { opacity: 0; transform: translateX(24px); } }
@keyframes lift-in { from { opacity: 0; transform: translateY(12px) scale(0.99); } }
.empty-state { display: grid; place-items: center; padding: 34px 22px; border: 1px dashed var(--ink-300); border-radius: var(--radius-sm); color: var(--ink-600); text-align: center; }
.empty-state h3 { margin: 12px 0 6px; color: var(--ink-900); }
.empty-state p { margin: 0; }

.timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.timeline__item { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: 12px; min-height: 64px; }
.timeline__item:not(:last-child)::after { position: absolute; top: 30px; bottom: -3px; inset-inline-start: 15px; width: 1px; background: var(--ink-200); content: ""; }
.timeline__marker { position: relative; z-index: 1; display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: var(--paper); color: var(--ink-600); font-size: 11px; }
.timeline__item--success .timeline__marker { border-color: var(--brand-800); color: var(--brand-800); }
.timeline__item--info .timeline__marker { border-color: var(--brand-800); color: var(--brand-800); }
.timeline__item--warning .timeline__marker { border-color: var(--amber-700); color: var(--amber-700); }
.timeline__item--danger .timeline__marker { border-color: var(--red-700); color: var(--red-700); }
.timeline__item > div { display: flex; flex-direction: column; gap: 4px; padding: 5px 0 14px; }
.timeline__item span { color: var(--ink-600); font-size: 12px; }
.timeline__marker > svg { flex: 0 0 auto; }
.stepper { display: flex; margin: 0; padding: 0; list-style: none; }
.stepper li { position: relative; display: flex; flex: 1; min-width: 86px; flex-direction: column; align-items: center; gap: 8px; text-align: center; color: var(--ink-500); font-size: 12px; }
.stepper li:not(:last-child)::after { position: absolute; z-index: 0; top: 15px; inset-inline-start: 60%; width: 80%; height: 2px; background: var(--ink-200); content: ""; }
.stepper li > span { position: relative; z-index: 1; display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: var(--paper); }
.stepper li.is-complete { color: var(--brand-800); }
.stepper li.is-complete > span { border-color: var(--brand-800); background: var(--brand-800); color: white; }
.stepper li.is-complete:not(:last-child)::after { background: var(--brand-800); }
.stepper li.is-current { color: var(--brand-800); }
.stepper li.is-current > span { border: 2px solid var(--brand-700); box-shadow: 0 0 0 4px var(--brand-100); color: var(--brand-800); font-weight: 750; }
.segmented { display: flex; width: fit-content; flex-wrap: wrap; gap: 5px; padding: 4px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
.segmented button { min-height: 34px; padding: 7px 13px; border: 0; border-radius: 4px; background: transparent; color: var(--ink-600); cursor: pointer; }
.segmented button.is-active { background: var(--brand-800); color: white; font-weight: 680; }
.action-row { display: flex; width: 100%; align-items: center; gap: 13px; padding: 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); text-align: start; cursor: pointer; }
.action-row:hover { border-color: var(--brand-700); background: var(--brand-050); }
.action-row__icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: var(--radius-xs); background: var(--ink-050); color: var(--brand-800); }
.action-row__text { display: flex; flex: 1; flex-direction: column; gap: 4px; }
.action-row__text small { font-size: 12px; }
.action-row--danger { border-color: #ebb2b2; }
.back-link, .inline-link { display: inline-flex; width: fit-content; align-items: center; gap: 7px; padding: 0; border: 0; background: none; color: var(--brand-800); font-weight: 650; cursor: pointer; }
.back-link:hover, .inline-link:hover { color: var(--brand-900); text-decoration: underline; }
.user-tools { display: flex; align-items: center; gap: 2px; }
.network-note { display: flex; align-items: center; gap: 8px; color: var(--brand-800); font-size: 12px; }
.network-note--offline { color: var(--red-700); }
.data-table { overflow: auto; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
.data-table__row { display: grid; width: 100%; grid-template-columns: repeat(var(--columns, 5), minmax(110px, 1fr)); align-items: center; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--ink-800); text-align: start; cursor: pointer; }
.data-table__row:last-child { border-bottom: 0; }
.data-table__row:hover:not(.data-table__header), .data-table__row.is-selected { background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
.data-table__row span { padding: 13px 14px; overflow-wrap: anywhere; font-size: 12px; }
.data-table__header { position: sticky; z-index: 1; top: 0; background: var(--ink-050); color: var(--ink-600); cursor: default; }
.data-table__header span { font-size: 10px; font-weight: 720; letter-spacing: 0.07em; text-transform: uppercase; }
.data-table--compact .data-table__row span { padding: 10px 11px; }
.app-footer-note { padding: 14px 20px; border-top: 1px solid var(--ink-200); color: var(--ink-500); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-align: center; text-transform: uppercase; }

/* Public and auth */
.public-page { min-height: 100vh; background: var(--paper); }
.public-topbar { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 max(var(--page-gutter), calc((100vw - 1440px) / 2)); border-bottom: 1px solid var(--ink-200); background: var(--paper); }
.public-topbar > div { display: flex; align-items: center; gap: 8px; }
.demo-form { display: grid; gap: 16px; }
.demo-form > .button { width: 100%; }
.success-state { display: grid; justify-items: center; padding: 30px; color: var(--green-700); text-align: center; }
.success-state h3 { margin: 14px 0 5px; color: var(--ink-950); font-size: 24px; }
.auth-layout { display: grid; width: min(1250px, 100%); min-height: calc(100vh - 72px); grid-template-columns: 250px minmax(420px, 650px); gap: clamp(50px, 9vw, 150px); justify-content: center; padding: clamp(50px, 8vw, 100px) var(--page-gutter); }
.auth-benefits { display: grid; align-content: center; gap: 0; }
.auth-benefits > div { display: grid; grid-template-columns: 30px 1fr; gap: 6px 15px; padding: 30px 0; border-bottom: 1px solid var(--ink-200); }
.auth-benefits svg { grid-row: span 2; color: var(--brand-700); }
.auth-benefits span { color: var(--ink-600); font-size: 13px; line-height: 1.5; }
.sign-in-panel { padding: 24px 0; }
.sign-in-panel h1 { font-size: clamp(48px, 7vw, 80px); }
.sign-in-panel > p { max-width: 520px; font-size: 16px; }
.sign-in-panel > form { display: grid; gap: 17px; max-width: 560px; margin-top: 34px; }
.sign-in-panel > form .button { width: 100%; margin-top: 5px; }
.role-launcher { display: grid; gap: 10px; margin-top: 28px; padding-top: 25px; border-top: 1px solid var(--ink-200); }
.role-launcher > p { margin-bottom: 5px; }
.role-launcher > button { display: flex; align-items: center; gap: 14px; padding: 15px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); text-align: start; cursor: pointer; }
.role-launcher > button:hover { border-color: var(--brand-700); background: var(--brand-050); }
.role-launcher > button > span { display: flex; flex: 1; flex-direction: column; gap: 4px; }

/* Shared workspace */
.workspace { display: grid; min-height: 100vh; grid-template-columns: var(--global-rail) var(--context-rail) minmax(0, 1fr); grid-template-rows: 65px minmax(0, 1fr); background: var(--paper); }
.workspace--job-context, .workspace--project-context { --context-rail: 0px; }
.workspace-topbar { position: sticky; z-index: 30; top: 0; display: grid; min-height: 65px; grid-column: 1 / -1; grid-row: 1; grid-template-columns: calc(var(--global-rail) + var(--context-rail)) minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 0 18px; border-bottom: 1px solid var(--ink-200); background: rgba(255, 255, 255, 0.97); backdrop-filter: blur(14px); view-transition-name: neowood-workspace-topbar; }
.workspace-topbar__desktop-brand { display: flex; align-items: center; }
.workspace-topbar__desktop-brand .brand img { width: 132px; }
.workspace-topbar__mobile-brand { display: none; }
.workspace-topbar__mobile-brand > strong, .workspace-topbar__mobile-brand > span { display: none; }
.breadcrumbs { display: flex; min-width: 0; align-items: center; gap: 10px; color: var(--ink-600); font-size: 12px; text-transform: capitalize; }
.breadcrumbs strong { max-width: 320px; overflow: hidden; color: var(--ink-900); text-overflow: ellipsis; white-space: nowrap; }
.workspace-topbar__tools { display: flex; align-items: center; gap: 5px; }
.global-rail { position: sticky; z-index: 21; top: 65px; display: flex; height: calc(100vh - 65px); grid-column: 1; grid-row: 2; flex-direction: column; align-items: center; padding: 25px 10px 18px; border-inline-end: 1px solid var(--ink-200); background: var(--paper); }
.global-rail__nav { display: grid; width: 100%; justify-items: center; gap: 10px; overflow-y: auto; scrollbar-width: none; }
.global-rail__nav button { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid transparent; border-radius: var(--radius-xs); background: transparent; color: var(--ink-700); cursor: pointer; }
.global-rail__nav button:hover { border-color: var(--ink-200); background: var(--ink-050); color: var(--ink-950); }
.global-rail__nav button.is-active { border-color: var(--brand-800); background: var(--brand-800); color: white; box-shadow: var(--shadow-sm); }
.global-rail__footer { position: relative; display: grid; width: 44px; height: 44px; margin-top: auto; place-items: center; border-top: 1px solid var(--ink-200); color: var(--brand-800); }
.global-rail__online-dot { position: absolute; right: 4px; bottom: 7px; width: 7px; height: 7px; border: 2px solid var(--paper); border-radius: 50%; background: var(--green-700); }
.global-rail__label, .global-rail__hub-identity { display: none; }
.context-rail { position: sticky; z-index: 20; top: 65px; display: flex; height: calc(100vh - 65px); min-width: 0; grid-column: 2; grid-row: 2; flex-direction: column; padding: 35px 20px 20px; overflow-y: auto; border-inline-end: 1px solid var(--ink-200); background: var(--paper); }
.context-rail__identity { display: grid; gap: 6px; padding: 0 22px 22px; border-bottom: 1px solid var(--ink-200); }
.context-rail__identity .eyebrow { margin-bottom: 0; }
.context-rail__identity h2 { margin: 13px 0 8px; font-size: 27px; line-height: 1.08; overflow-wrap: anywhere; }
.context-rail__revision { margin: 0; color: var(--ink-600); font-size: 11px; font-weight: 720; letter-spacing: 0.12em; line-height: 1.4; text-transform: uppercase; }
.context-rail__scope { color: var(--ink-600); font-size: 13px; line-height: 1.5; }
.context-rail__status { display: inline-flex; width: fit-content; min-height: 28px; align-items: center; gap: 7px; margin-top: 4px; padding: 5px 11px; border: 1px solid var(--ink-200); border-radius: 999px; font-size: 12px; font-weight: 650; }
.context-rail__status::before { width: 7px; height: 7px; border-radius: 50%; background: currentColor; content: ""; }
.context-rail__status--warning { border-color: #ecc385; background: var(--amber-100); color: var(--amber-800); }
.context-rail__facts { display: grid; gap: 12px; padding: 23px 22px 17px; color: var(--ink-600); font-size: 13px; line-height: 1.45; }
.context-nav { display: grid; gap: 4px; padding: 8px 0; }
.context-nav button { position: relative; display: flex; min-height: 48px; align-items: center; gap: 14px; padding: 10px 22px; border: 0; border-radius: var(--radius-xs); background: transparent; color: var(--ink-700); text-align: start; cursor: pointer; }
.context-nav button:hover { background: var(--ink-050); color: var(--ink-950); }
.context-nav button.is-active { background: var(--brand-050); color: var(--brand-900); font-weight: 690; }
.context-nav button.is-active::before { position: absolute; inset-block: 8px; inset-inline-start: -20px; width: 3px; background: var(--brand-700); content: ""; }
.context-rail--job { align-items: stretch; padding: 28px 12px 20px; overflow-x: hidden; }
.job-context-summary { display: grid; gap: 5px; padding: 0 8px 20px; border-bottom: 1px solid var(--ink-200); }
.job-context-summary__label { color: var(--ink-500); font-size: 9px; font-weight: 730; letter-spacing: .1em; text-transform: uppercase; }
.context-rail--job .job-context-summary h2,
.context-rail--project .job-context-summary h2 { margin: 0 0 12px; overflow-wrap: anywhere; font-size: 20px; line-height: 1.18; }
.job-context-summary strong { overflow-wrap: anywhere; color: var(--ink-800); font-size: 13px; line-height: 1.35; }
.context-nav--workflow { position: relative; justify-items: center; gap: 4px; padding: 18px 0 10px; }
.context-nav--workflow .workflow-step { isolation: isolate; display: grid; width: 58px; min-height: 58px; place-items: center; padding: 0; color: var(--ink-500); }
.context-nav--workflow .workflow-step:hover,
.context-nav--workflow .workflow-step.is-active { background: transparent; }
.context-nav--workflow .workflow-step.is-active::before { display: none; }
.context-nav--workflow .workflow-step:not(:last-child)::after { position: absolute; z-index: 0; top: 50%; bottom: -54%; left: calc(50% - 1px); width: 2px; background: var(--ink-200); content: ""; }
.context-nav--workflow .workflow-step--complete:not(:last-child)::after { background: var(--ink-300); }
.workflow-step__icon { position: relative; z-index: 1; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: var(--paper); color: var(--ink-500); transition: border-color 180ms ease, background 180ms ease, color 180ms ease, box-shadow 220ms ease, transform 220ms ease; }
.workflow-step--complete .workflow-step__icon { border-color: var(--ink-300); background: var(--brand-100); color: var(--brand-800); }
.workflow-step--current .workflow-step__icon { border-color: var(--brand-700); background: var(--brand-050); color: var(--brand-800); }
.workflow-step--error .workflow-step__icon { border-color: #f2abab; background: var(--red-100); color: var(--red-700); }
.workflow-step.is-active .workflow-step__icon { box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px currentColor; }

@keyframes workflow-step-arrive {
  0% { transform: scale(.82); }
  62% { transform: scale(1.08); }
  100% { transform: scale(1); }
}

@keyframes workflow-surface-arrive {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes workflow-route-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-5px); }
}

@keyframes workflow-route-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
  .workflow-step.is-active .workflow-step__icon { animation: workflow-step-arrive 340ms cubic-bezier(.2, .8, .2, 1); }
  .workspace--job-context .screen > :not(.job-header):not(.overlay):not(.toast) { animation: workflow-surface-arrive 300ms cubic-bezier(.2, .8, .2, 1) both; }
  ::view-transition-old(root) { animation: workflow-route-out 130ms ease-in both; }
  ::view-transition-new(root) { animation: workflow-route-in 280ms cubic-bezier(.2, .8, .2, 1) both; }
}

::view-transition-group(neowood-workspace-topbar),
::view-transition-group(neowood-job-context) { animation-duration: 220ms; animation-timing-function: ease; }
::view-transition-old(neowood-workspace-topbar),
::view-transition-new(neowood-workspace-topbar) { animation: none; mix-blend-mode: normal; }
::view-transition-old(neowood-job-context),
::view-transition-new(neowood-job-context) { mix-blend-mode: normal; }
.context-nav--job-utilities { display: flex; justify-content: center; gap: 8px; margin-top: 8px; padding: 15px 0 0; border-top: 1px solid var(--ink-200); }
.context-nav--job-utilities button { display: grid; width: 44px; min-height: 44px; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 50%; }
.context-nav--job-utilities button.is-active::before { display: none; }
.context-nav--job-utilities button.is-active { border-color: var(--brand-300, var(--ink-300)); }
.context-rail__footer { display: grid; gap: 10px; margin-top: auto; padding: 18px 22px 0; border-top: 1px solid var(--ink-200); }
.context-rail__footer small { line-height: 1.45; }
.workspace__main { min-width: 0; grid-column: 3; grid-row: 2; background: var(--paper); }
.workspace__content { min-width: 0; }
.bottom-nav { display: none; }
.manager-route { display: contents; }
.screen { display: grid; gap: 20px; max-width: 1660px; margin: 0 auto; padding: 26px var(--page-gutter) 48px; }
.screen--flush { padding-top: 0; }
.screen-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.screen-header h1 { margin-bottom: 0; }
.screen-header > div > p:last-child { margin-bottom: 0; }
.screen-header > .button { flex: 0 0 auto; }
.section-title { margin: 24px 0 11px; color: var(--ink-700); font-size: 12px; font-weight: 730; letter-spacing: 0.1em; text-transform: uppercase; }
.toolbar { display: flex; flex-wrap: wrap; gap: 10px; }
.toolbar .search { flex: 1; }
.card-grid { display: grid; gap: 12px; }
.card-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.content-grid { display: grid; gap: 28px; }
.content-grid--two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.content-grid--aside { grid-template-columns: minmax(0, 1fr) minmax(270px, 0.36fr); }
.content-grid--aside > aside { display: grid; align-content: start; gap: 15px; }
.title-with-status { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.title-with-status h1 { margin-bottom: 0; }
.money { font-family: var(--font-mono); font-size: clamp(25px, 2.2vw, 34px); letter-spacing: -0.04em; }
.money small { font-size: 0.48em; }
.tag-row { display: flex; flex-wrap: wrap; gap: 7px; }
.job-header { margin: 0; padding: 42px 0 12px; background: var(--paper); view-transition-name: neowood-job-context; }
.job-header__desktop-title { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.job-header__desktop-title h1 { margin: 0; font-size: 32px; }
.job-header__mobile-title { display: none; }
.job-header__meta { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.tabs { display: flex; overflow-x: auto; scrollbar-width: none; }
.tabs button { display: flex; min-height: 52px; align-items: center; gap: 8px; padding: 10px 16px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--ink-600); white-space: nowrap; cursor: pointer; }
.tabs button:hover { color: var(--ink-950); }
.tabs button.is-active { border-bottom-color: var(--brand-700); color: var(--brand-900); font-weight: 690; }
.tabs--job { display: none; margin-top: 16px; }
.job-workflow-tabs__steps, .job-workflow-tabs__utilities { display: contents; }

.jobs-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.36fr); gap: 18px; }
.jobs-list { padding: 0; overflow: hidden; }
.jobs-list .panel__header { margin: 0; padding: 17px 19px; border-bottom: 1px solid var(--ink-200); }
.job-row { display: grid; width: 100%; grid-template-columns: minmax(180px, 1.3fr) minmax(120px, 0.8fr) minmax(115px, 0.8fr) 90px 80px minmax(120px, 0.7fr); align-items: center; gap: 14px; padding: 17px 18px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; text-align: start; cursor: pointer; }
.job-row:last-child { border-bottom: 0; }
.job-row:hover { background: var(--brand-050); }
.job-row > div { display: flex; flex-direction: column; gap: 6px; }
.job-row > div > span, .job-row > span { color: var(--ink-600); font-size: 12px; }
.job-row__action { color: var(--brand-800); font-size: 12px; }
.manager-jobs .job-row--compact { min-height: 78px; grid-template-columns: minmax(0, 1fr); padding-block: 15px; }
.manager-jobs .job-row--compact .job-row__main { gap: 8px; }
.job-row__client { display: flex; min-width: 0; align-items: center; gap: 7px; color: var(--ink-600); font-size: 12px; }
.job-row__client > span { color: var(--ink-500); }
.job-row__client > span::after { content: ":"; }
.job-row__client bdi { min-width: 0; overflow: hidden; color: var(--ink-700); text-overflow: ellipsis; white-space: nowrap; }
.jobs-summary { display: grid; align-content: start; gap: 13px; }
.attention-panel { border-color: var(--ink-800); }
.attention-panel .button { width: 100%; }
.revision-card { display: flex; min-height: 170px; align-items: flex-start; justify-content: space-between; }
.revision-card h2 { font-size: 32px; }
.revision-card .stat { text-align: end; }
.decision-list { display: grid; gap: 10px; }
.decision-list > button { display: flex; align-items: center; gap: 16px; min-height: 82px; padding: 16px; border: 1px solid var(--ink-300); border-radius: var(--radius-sm); background: var(--paper); text-align: start; cursor: pointer; }
.decision-list > button:hover { border-color: var(--brand-700); background: var(--brand-050); }
.decision-list > button > span { display: flex; flex-direction: column; gap: 6px; }
.decision-list > button small { color: var(--ink-600); }
.decision-list > button.is-danger { color: var(--red-700); }
.manager-request-review__content { display: grid; gap: 18px; }
.manager-request-decisions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.manager-request-decisions > button { min-height: 74px; justify-content: flex-start; padding: 18px 20px; border-width: 2px; font-size: 16px; font-weight: 800; line-height: 1.3; transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; }
.manager-request-decisions > button > svg { flex: 0 0 auto; }
.manager-request-decisions > button:hover:not(:disabled) { transform: translateY(-1px); }
.manager-request-decisions > button.is-primary { border-color: var(--brand-800); background: var(--brand-800); color: var(--paper); }
.manager-request-decisions > button.is-primary:hover:not(:disabled) { border-color: var(--brand-900); background: var(--brand-900); }
.manager-request-decisions > button.is-return { border-color: var(--ink-700); color: var(--ink-950); }
.manager-request-decisions > button.is-return:hover:not(:disabled) { border-color: var(--brand-700); background: var(--brand-050); color: var(--brand-900); }
.manager-request-decisions > button.is-danger { border-color: #e8abab; background: #fff6f6; color: var(--red-700); }
.manager-request-decisions > button.is-danger:hover:not(:disabled) { border-color: var(--red-700); background: var(--red-100); }
.manager-request-decisions > button:disabled { cursor: not-allowed; opacity: .5; }
.manager-review-form { display: grid; gap: 16px; }
.sheet-review-list { display: grid; gap: 8px; }
.sheet-review-list > label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 12px; padding: 13px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); cursor: pointer; }
.sheet-review-list > label:has(input:checked) { border-color: var(--brand-300); background: var(--brand-050); }
.sheet-review-list input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--brand-700); }
.sheet-review-list label > span { display: grid; min-width: 0; gap: 4px; }
.sheet-review-list small { color: var(--ink-600); overflow-wrap: anywhere; }
.sheet-review-list code { color: var(--ink-700); font-size: 11px; overflow-wrap: anywhere; }
.manager-optimization-block { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 12px; padding: 14px 16px; border: 1px solid #e8abab; border-radius: var(--radius-xs); background: #fff6f6; color: var(--red-700); }
.manager-optimization-block__body { display: grid; min-width: 0; gap: 7px; }
.manager-optimization-block__body > p { margin: 0; color: var(--ink-700); font-size: 13px; line-height: 1.5; }
.manager-optimization-block__body > small { color: var(--ink-600); line-height: 1.45; }
.manager-optimization-block__body ul { display: grid; gap: 6px; margin: 3px 0; padding-inline-start: 20px; }
.manager-optimization-block__body li { min-width: 0; padding-inline-start: 2px; color: var(--ink-800); }
.manager-optimization-block__body li > span { display: inline-flex; min-width: 0; flex-wrap: wrap; gap: 4px 8px; }
.manager-optimization-block__body li small { color: var(--ink-600); }
.manager-optimization-block__body li code { display: block; width: fit-content; max-width: 100%; margin-top: 2px; overflow-wrap: anywhere; color: var(--ink-600); font-size: 10px; }
.manager-optimization-block__action { justify-self: start; }
.source-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.choice-card { display: grid; min-height: 146px; grid-template-columns: 30px minmax(0, 1fr); align-content: start; gap: 8px 10px; padding: 17px; border: 1px solid var(--ink-300); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink-900); text-align: start; cursor: pointer; }
.choice-card:hover, .choice-card.is-selected { border-color: var(--brand-700); background: var(--brand-050); }
.choice-card.is-selected { box-shadow: inset 0 0 0 1px var(--brand-700); }
.choice-card__check { display: grid; width: 24px; height: 24px; grid-row: span 2; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; color: white; }
.choice-card.is-selected .choice-card__check { border-color: var(--brand-700); background: var(--brand-700); }
.choice-card strong { margin-top: 2px; font-size: 15px; }
.choice-card small { color: var(--ink-600); line-height: 1.5; }
.job-create-summary { box-shadow: none; }
.section-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.section-toolbar > div:first-child { display: flex; align-items: baseline; gap: 12px; }
.section-toolbar h2 { margin: 0; }
.section-toolbar span { color: var(--ink-600); font-size: 13px; }
.parts-workspace { display: grid; grid-template-columns: minmax(380px, 1.15fr) minmax(220px, .62fr) minmax(320px, .9fr); gap: 0; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); overflow: hidden; }
.parts-workspace > .panel { min-width: 0; border: 0; border-inline-end: 1px solid var(--ink-200); border-radius: 0; box-shadow: none; }
.parts-workspace > .panel:last-child { border-inline-end: 0; }
.board-preview { min-height: 450px; }
.edge-board-editor { display: grid; min-height: 320px; grid-template-columns: 42px minmax(120px, 1fr) 42px; grid-template-rows: 42px minmax(150px, 1fr) 42px; place-items: stretch; gap: 8px; padding: 10px 0; }
.edge-board-editor > button { min-width: 0; border: 1px solid var(--ink-200); border-radius: 4px; background: var(--paper); color: var(--ink-600); font-size: 9px; cursor: pointer; }
.edge-board-editor > button:hover { border-color: var(--brand-700); color: var(--brand-800); }
.edge-board-editor > button.is-active { border-color: var(--brand-700); background: var(--brand-700); color: white; font-weight: 700; }
.edge-top { grid-column: 2; grid-row: 1; }
.edge-right { grid-column: 3; grid-row: 2; writing-mode: vertical-rl; }
.edge-bottom { grid-column: 2; grid-row: 3; }
.edge-left { grid-column: 1; grid-row: 2; writing-mode: vertical-rl; transform: rotate(180deg); }
.dimension-board { display: grid; min-width: 120px; min-height: 150px; grid-column: 2; grid-row: 2; place-items: center; align-content: center; gap: 7px; padding: 18px; border: 2px solid var(--ink-700); border-radius: 2px; background: var(--ink-050); text-align: center; }
.dimension-board span { font-family: var(--font-mono); font-size: 12px; font-weight: 700; }
.dimension-board small { color: var(--ink-600); font-size: 11px; }
.quick-input { display: grid; align-content: start; gap: 18px; }
.quick-part-form { display: grid; gap: 14px; }
.quick-part-form > .button { width: 100%; }
.manager-part-actions > .button { flex: 1 1 120px; }
.edge-templates { display: grid; gap: 8px; color: var(--ink-800); font-size: 13px; font-weight: 600; }
.edge-templates > div { display: flex; flex-wrap: wrap; gap: 6px; }
.edge-templates button { min-height: 34px; padding: 7px 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-700); cursor: pointer; }
.edge-templates button:hover { border-color: var(--brand-700); background: var(--brand-050); color: var(--brand-800); }
.edge-templates button.is-active { border-color: var(--brand-700); background: var(--brand-700); color: white; }
.keyboard-hint { margin: -3px 0 0; color: var(--ink-500); font-size: 11px; line-height: 1.45; text-align: center; }
.manager-parts-heading__actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.manager-parts-phone-layers { display: none; }
.manager-parts--approved .parts-workspace { grid-template-columns: minmax(0, 1.25fr) minmax(0, .95fr) minmax(0, 1.25fr); }
.manager-parts-table { width: 100%; overflow-x: auto; }
.manager-parts-table__row { display: grid; width: 100%; grid-template-columns: minmax(0, 1.25fr) minmax(38px, .45fr) minmax(80px, 1fr) minmax(70px, .95fr) minmax(58px, .7fr) minmax(34px, .35fr); align-items: center; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--ink-800); text-align: start; }
button.manager-parts-table__row { min-height: 62px; cursor: pointer; }
button.manager-parts-table__row:hover, button.manager-parts-table__row.is-selected { background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
.manager-parts-table__row > span { min-width: 0; padding: 10px 6px; overflow: hidden; font-size: 10px; line-height: 1.35; overflow-wrap: normal; text-overflow: ellipsis; white-space: nowrap; }
.manager-parts-table__row > span:last-child { text-align: center; }
.manager-parts-table__head { color: var(--ink-500); font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.manager-board-preview { align-content: start; }
.manager-board-diagram { position: relative; display: grid; min-height: 320px; place-items: center; margin-block: 18px; padding: 34px 38px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--ink-050); }
.manager-board-diagram > div { display: grid; width: min(100%, 230px); min-height: 118px; place-items: center; border: 1px solid var(--ink-800); background: var(--paper); box-shadow: var(--shadow-sm); text-align: center; }
.manager-board-diagram > div strong { max-width: 90%; color: var(--ink-500); font-size: 10px; font-weight: 500; overflow-wrap: anywhere; }
.manager-board-diagram__length { position: absolute; top: 24%; inset-inline: 18%; padding-inline: 8px; border-bottom: 1px solid var(--brand-700); color: var(--ink-900); font-family: var(--font-mono); font-size: 11px; text-align: center; }
.manager-board-diagram__width { position: absolute; top: 45%; inset-inline-end: 7px; color: var(--ink-900); font-family: var(--font-mono); font-size: 11px; transform: translateY(-50%); writing-mode: vertical-rl; }
.manager-quick-input { display: flex; align-content: initial; flex-direction: column; gap: 0; }
.manager-quick-input > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.manager-quick-input > header h2 { margin: 2px 0 0; font-size: 18px; }
.manager-quick-input > header p:not(.eyebrow) { margin: 10px 0 0; color: var(--ink-600); font-size: 11px; line-height: 1.55; }
.manager-quick-input > ol { display: grid; gap: 8px; margin: 20px 0; padding: 0; list-style: none; }
.manager-quick-input > ol li { position: relative; }
.manager-quick-input > ol li:not(:last-child)::after { position: absolute; top: 30px; bottom: -9px; inset-inline-start: 11px; border-inline-start: 1px solid var(--ink-200); content: ""; }
.manager-quick-input > ol button { display: grid; width: 100%; min-height: 42px; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 10px; padding: 0; border: 0; background: transparent; color: var(--ink-500); text-align: start; cursor: pointer; }
.manager-quick-input > ol i { position: relative; z-index: 1; display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid var(--ink-400); border-radius: 50%; background: var(--paper); font-size: 10px; font-style: normal; }
.manager-quick-input > ol li.is-active button { color: var(--brand-800); font-weight: 650; }
.manager-quick-input > ol li.is-active i, .manager-quick-input > ol li.is-complete i { border-color: var(--brand-700); background: var(--brand-700); color: white; }
.manager-quick-field { display: grid; gap: 10px; }
.manager-quick-field > label { color: var(--brand-800); font-size: 13px; }
.manager-quick-field > div:not(.select-field__control), .manager-quick-field > .select-field { min-height: 52px; }
.manager-quick-field > div:not(.select-field__control) { display: grid; grid-template-columns: minmax(0, 1fr) auto; border: 2px solid var(--brand-800); border-radius: var(--radius-xs); overflow: hidden; }
.manager-quick-field input { width: 100%; min-width: 0; padding: 10px 13px; border: 0; outline: 0; background: var(--paper); color: var(--ink-900); font-family: var(--font-mono); font-size: 19px; }
.manager-quick-field > div > span { display: grid; min-width: 50px; place-items: center; padding: 8px; border-inline-start: 1px solid var(--ink-200); font-family: var(--font-mono); }
.manager-quick-input > footer { display: flex; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 20px; }
.manager-quick-input > footer .button { flex: 0 1 auto; }
.manager-quick-input > .keyboard-hint { margin-top: 13px; }
.optimizer-command { display: grid; grid-template-columns: auto minmax(360px, 1fr) auto; align-items: center; gap: 18px; padding-block: 14px; box-shadow: none; }
.optimizer-command > div:first-child { display: flex; align-items: center; gap: 12px; }
.optimizer-run-id { color: var(--ink-500); font-family: var(--font-mono); font-size: 10px; white-space: nowrap; }
.optimizer-summary { display: grid; grid-template-columns: repeat(4, minmax(80px, 1fr)); }
.optimizer-summary .stat { padding: 0 16px; border-inline-end: 1px solid var(--ink-200); }
.optimizer-summary .stat:last-child { border-inline-end: 0; }
.optimizer-summary .stat strong { font-size: 19px; }
.optimizer-setup-grid { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(360px, 1.2fr) minmax(280px, .9fr); gap: 16px; }
.optimizer-setup-grid > .panel { display: grid; align-content: start; gap: 16px; box-shadow: none; }
.engine-choice { display: grid; gap: 9px; }
.engine-choice button { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 5px 10px; padding: 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-900); text-align: start; cursor: pointer; }
.engine-choice button.is-selected { border-color: var(--brand-700); background: var(--brand-050); box-shadow: inset 0 0 0 1px var(--brand-700); }
.engine-choice button > span { display: grid; width: 22px; height: 22px; grid-row: span 2; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; color: white; }
.engine-choice button.is-selected > span { border-color: var(--brand-700); background: var(--brand-700); }
.engine-choice small { color: var(--ink-600); line-height: 1.4; }
.profile-contract { border-block: 1px solid var(--ink-150); }
.profile-contract .metric-row { padding-inline: 0; }
.optimizer-setup-grid > .panel > .button:last-child { width: 100%; }
.quick-constraints { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-050); }
.quick-constraints__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.quick-constraints__header > div { display: grid; gap: 3px; }
.quick-constraints__header strong { color: var(--ink-900); font-size: 13px; }
.quick-constraints__header span { color: var(--ink-600); font-size: 11px; }
.quick-constraints__header .inline-link { min-height: 30px; flex: 0 0 auto; }
.quick-constraints__header .inline-link:disabled { cursor: default; color: var(--ink-500); text-decoration: none; }
.quick-constraints__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.quick-lock { display: flex; min-width: 0; min-height: 62px; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-600); text-align: start; cursor: pointer; }
.quick-lock:hover { border-color: var(--brand-700); color: var(--brand-800); }
.quick-lock.is-active { border-color: var(--brand-700); background: var(--brand-050); color: var(--brand-900); box-shadow: inset 0 0 0 1px var(--brand-700); }
.quick-lock > svg { flex: 0 0 auto; }
.quick-lock > span { display: grid; min-width: 0; gap: 3px; }
.quick-lock strong { font-size: 12px; line-height: 1.25; }
.quick-lock small { font-size: 10px; font-weight: 700; }
.quick-trim .field { gap: 4px; }
.quick-trim .field > span { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.quick-trim .field input { min-height: 40px; background: var(--paper); }
.quick-trim { grid-column: 1 / -1; }
.quick-constraints__note { margin: 0; color: var(--ink-500); font-size: 10px; line-height: 1.45; }
.optimizer-command--spacious { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 0 0 24px; border-bottom: 0; }
.optimizer-command--spacious > div:first-child { align-items: flex-end; gap: 20px; border-bottom: 1px solid var(--ink-200); }
.optimizer-command--spacious .segmented { gap: 24px; padding: 0; border: 0; background: transparent; }
.optimizer-command--spacious .segmented button { min-height: 44px; padding: 8px 7px; border-bottom: 3px solid transparent; border-radius: 0; }
.optimizer-command--spacious .segmented button.is-active { border-bottom-color: var(--brand-700); background: transparent; color: var(--brand-900); }
.optimizer-command--spacious .optimizer-run-id { display: none; }
.optimizer-command--spacious .optimizer-summary { justify-self: start; width: min(600px, 100%); }
.optimizer-spacious-layout { display: grid; grid-template-columns: minmax(0, 1fr) 272px; align-items: stretch; gap: 54px; min-height: 670px; }
.optimizer-spacious-main { min-width: 0; padding-top: 8px; }
.optimizer-profile-strip { display: grid; grid-template-columns: 50px repeat(5, minmax(92px, 1fr)); align-items: center; gap: 0; padding: 14px 0 18px; }
.optimizer-profile-strip__icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; background: var(--ink-050); color: var(--ink-950); }
.optimizer-profile-strip > div { display: grid; min-width: 0; gap: 6px; padding: 0 16px; border-inline-end: 1px solid var(--ink-200); }
.optimizer-profile-strip > div:last-child { border-inline-end: 0; }
.optimizer-profile-strip small { color: var(--ink-600); font-size: 10px; }
.optimizer-profile-strip strong { color: var(--ink-900); font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.optimizer-control-group { display: grid; gap: 18px; margin-top: 42px; }
.optimizer-control-group h2 { margin: 0; font-size: 17px; letter-spacing: -0.01em; }
.optimizer-control-group__heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.optimizer-quick-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(160px, .9fr); gap: 22px; }
.optimizer-quick-row .quick-lock { min-height: 82px; padding: 14px 16px; }
.optimizer-quick-row .quick-lock > span { flex: 1; }
.optimizer-quick-row .quick-lock > svg:last-child { color: var(--ink-700); }
.optimizer-quick-row .quick-trim { grid-column: auto; }
.optimizer-quick-row .quick-trim .field { gap: 8px; }
.optimizer-quick-row .quick-trim .field > span { font-size: 11px; }
.optimizer-quick-row .quick-trim .field input { min-height: 54px; }
.optimizer-strategy-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(190px, 1fr) minmax(145px, .75fr); gap: 22px; }
.optimizer-advanced-toggle { display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: space-between; gap: 18px; margin-top: 42px; padding: 14px 0; border: 0; border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); background: transparent; color: var(--ink-900); font-weight: 680; text-align: start; cursor: pointer; }
.optimizer-advanced-toggle:hover { color: var(--brand-800); }
.optimizer-advanced-toggle svg { transition: transform 160ms ease; }
.optimizer-advanced-toggle svg.is-open { transform: rotate(180deg); }
.optimizer-advanced-panel { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 14px; padding: 18px 0 4px; }
.optimizer-advanced-panel .info-strip { grid-column: 1 / -1; }
.optimizer-ready-panel { display: flex; min-width: 0; flex-direction: column; align-self: stretch; margin-top: 8px; padding: 20px; box-shadow: none; }
.optimizer-ready-panel .panel__header { flex-direction: column; gap: 10px; }
.optimizer-ready-panel .metric-row { gap: 14px; padding-block: 14px; }
.optimizer-ready-panel .metric-row strong { max-width: 148px; }
.optimizer-ready-panel > .button { width: 100%; margin-top: auto; }
.settings-layout { display: grid; grid-template-columns: 210px minmax(420px, 1fr) minmax(285px, 340px); align-items: start; gap: 16px; }
.settings-nav { display: grid; padding: 8px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-sm); }
.settings-nav button { min-height: 44px; padding: 10px 12px; border: 0; border-inline-start: 3px solid transparent; border-radius: 3px; background: transparent; color: var(--ink-600); font-size: 13px; font-weight: 650; text-align: start; cursor: pointer; }
.settings-nav button:hover { background: var(--ink-050); color: var(--ink-900); }
.settings-nav button.is-active { border-inline-start-color: var(--brand-700); background: var(--brand-050); color: var(--brand-900); }
.settings-form { min-height: 510px; box-shadow: none; }
.settings-form__body { display: grid; gap: 18px; }
.setting-toggle { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; min-height: 68px; padding: 12px 0; border-bottom: 1px solid var(--ink-150); }
.setting-toggle > div { display: grid; gap: 4px; }
.setting-toggle > div > strong { color: var(--ink-900); font-size: 13px; }
.setting-toggle > div > span { color: var(--ink-600); font-size: 11px; line-height: 1.45; }
.setting-toggle > button { position: relative; width: 46px; height: 26px; padding: 0; border: 1px solid var(--ink-300); border-radius: 999px; background: var(--ink-100); cursor: pointer; transition: background 150ms ease, border-color 150ms ease; }
.setting-toggle > button > span { position: absolute; top: 3px; inset-inline-start: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--paper); box-shadow: 0 1px 3px rgba(7,20,47,.22); transition: transform 150ms ease; }
.setting-toggle > button.is-on { border-color: var(--brand-700); background: var(--brand-700); }
.setting-toggle > button.is-on > span { transform: translateX(20px); }
[dir="rtl"] .setting-toggle > button.is-on > span { transform: translateX(-20px); }
.setting-toggle.is-disabled { opacity: .55; }
.setting-toggle.is-disabled > button { cursor: not-allowed; }
.trim-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.read-only-contract { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-050); }
.read-only-contract > div { display: grid; gap: 4px; }
.read-only-contract > div > span { color: var(--ink-700); font-size: 12px; font-weight: 650; }
.read-only-contract > div > strong { color: var(--ink-950); font-family: var(--font-mono); font-size: 16px; }
.read-only-contract > div > small { line-height: 1.45; }
.settings-contract { display: grid; gap: 14px; }
.settings-contract > .panel { box-shadow: none; }
.contract-group { display: grid; gap: 9px; padding: 16px 0; border-top: 1px solid var(--ink-150); }
.contract-group:first-of-type { padding-top: 0; border-top: 0; }
.contract-group:last-child { padding-bottom: 0; }
.contract-group > span:not(.status) { position: relative; padding-inline-start: 15px; color: var(--ink-700); font-size: 12px; line-height: 1.4; }
.contract-group > span:not(.status)::before { position: absolute; inset-inline-start: 2px; top: .62em; width: 4px; height: 4px; border-radius: 50%; background: var(--ink-300); content: ""; }
.optimization-settings-screen .screen-header p:last-child { max-width: 660px; margin: 8px 0 0; }
.manager-settings-hub { gap: 16px; }
.manager-settings-hub__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--ink-200); }
.manager-settings-hub__header h1 { margin: 2px 0 7px; font-size: clamp(26px, 3vw, 38px); letter-spacing: -.03em; }
.manager-settings-hub__header p:last-child { max-width: 720px; margin: 0; color: var(--ink-600); line-height: 1.55; }
.manager-settings-hub__nav { display: flex; gap: 4px; overflow-x: auto; padding: 5px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); scrollbar-width: thin; }
.manager-settings-hub__nav button { display: grid; flex: 1 0 auto; min-width: 112px; min-height: 46px; place-items: center; align-content: center; gap: 2px; padding: 7px 13px; border: 0; border-radius: var(--radius-xs); background: transparent; color: var(--ink-600); font: inherit; font-size: 12px; font-weight: 680; cursor: pointer; }
.manager-settings-hub__nav button:hover { background: var(--ink-050); color: var(--ink-900); }
.manager-settings-hub__nav button.is-active { background: var(--brand-050); color: var(--brand-900); box-shadow: inset 0 -2px var(--brand-700); }
.manager-settings-hub__nav small { color: var(--warning-700); font-size: 9px; }
.manager-settings-hub__content > .panel { min-height: 540px; padding: clamp(16px, 2.2vw, 28px); box-shadow: none; }
.manager-settings-form { display: grid; gap: 20px; }
.manager-settings-form > .panel__header { margin-bottom: 2px; }
.manager-settings-form fieldset { display: grid; min-width: 0; gap: 16px; margin: 0; padding: 18px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
.manager-settings-form legend { padding-inline: 7px; color: var(--ink-800); font-size: 12px; font-weight: 740; }
.manager-settings-actions { position: sticky; z-index: 4; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; margin: 4px -8px -8px; padding: 12px 8px 8px; border-top: 1px solid var(--ink-150); background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(10px); }
.manager-settings-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.manager-settings-check-grid label { display: flex; min-width: 0; align-items: center; gap: 9px; min-height: 42px; padding: 9px 11px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-025); color: var(--ink-700); font-size: 11px; font-weight: 640; }
.manager-settings-check-grid input { inline-size: 17px; block-size: 17px; accent-color: var(--brand-700); }
.manager-measurement-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; text-align: left; }
.manager-machine-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.manager-machine-grid article { display: grid; min-width: 0; gap: 14px; padding: 16px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.manager-machine-grid article.is-inactive { background: var(--ink-050); opacity: .82; }
.manager-machine-grid article > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.manager-machine-grid article > header > div { display: grid; min-width: 0; gap: 3px; }
.manager-machine-grid article > header strong, .manager-machine-grid article > header small { overflow-wrap: anywhere; }
.manager-machine-grid article > header small { color: var(--ink-600); font-size: 10px; }
.manager-machine-icon { display: grid; inline-size: 39px; block-size: 39px; place-items: center; border-radius: 50%; background: var(--brand-050); color: var(--brand-800); }
.manager-machine-grid dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.manager-machine-grid dl > div { display: grid; gap: 4px; padding-inline: 9px; border-inline-end: 1px solid var(--ink-150); }
.manager-machine-grid dl > div:last-child { border-inline-end: 0; }
.manager-machine-grid dt { color: var(--ink-500); font-size: 9px; }
.manager-machine-grid dd { min-width: 0; margin: 0; color: var(--ink-850); font-size: 11px; font-weight: 680; overflow-wrap: anywhere; }
.manager-machine-grid article > .button { justify-self: end; }
.pricing-profile-layout { display: grid; grid-template-columns: minmax(190px, 230px) minmax(0, 1fr); align-items: start; gap: 20px; }
.pricing-profile-list { display: grid; gap: 7px; padding: 7px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--ink-025); }
.pricing-profile-list > button { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 9px; padding: 11px; border: 1px solid transparent; border-radius: var(--radius-xs); background: transparent; color: var(--ink-700); font: inherit; text-align: start; cursor: pointer; }
.pricing-profile-list > button:hover:not(:disabled), .pricing-profile-list > button.is-active { border-color: var(--brand-200); background: var(--paper); color: var(--ink-900); }
.pricing-profile-list > button:disabled { cursor: not-allowed; opacity: .7; }
.pricing-profile-list > button > span { display: grid; min-width: 0; gap: 3px; }
.pricing-profile-list strong, .pricing-profile-list small { overflow-wrap: anywhere; }
.pricing-profile-list small { color: var(--ink-500); font-size: 9px; }
.pricing-profile-editor { display: grid; min-width: 0; gap: 18px; }
.pricing-profile-editor__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.pricing-profile-editor__heading h2 { margin: 0 0 5px; font-size: 21px; }
.pricing-profile-editor__heading p { margin: 0; color: var(--ink-600); font-size: 11px; }
.pricing-adjustment-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.pricing-adjustment-list { display: grid; gap: 9px; }
.pricing-adjustment-list article { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(130px, .8fr) minmax(130px, .8fr) auto; align-items: end; gap: 10px; padding: 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-025); }
.pricing-adjustment-list article > div:first-child { display: grid; align-self: center; gap: 4px; }
.pricing-adjustment-list article small { color: var(--ink-500); font-size: 9px; }
.manager-panel-resolution { margin-top: 16px; }
.manager-panel-resolution__list { display: grid; gap: 12px; margin-top: 14px; }
.manager-panel-resolution__list > article { display: grid; gap: 14px; padding: 15px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--ink-025); }
.manager-panel-resolution__list > article > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.manager-panel-resolution__list > article > header > div { display: grid; min-width: 0; gap: 4px; }
.manager-panel-resolution__list > article > header span { color: var(--ink-500); font-size: 10px; }
.optimizer-running { display: grid; max-width: 760px; min-height: 430px; place-items: center; align-content: center; gap: 12px; margin: 30px auto; padding: 44px; text-align: center; }
.optimizer-running > svg { color: var(--brand-700); }
.optimizer-running h2 { margin-bottom: 0; font-size: 30px; }
.optimizer-running p { max-width: 580px; margin: 0; }
.optimizer-running .progress { width: min(540px, 100%); margin-top: 18px; text-align: start; }
.optimizer-running__steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 10px; }
.optimizer-running__steps span { padding: 6px 9px; border: 1px solid var(--ink-200); border-radius: 999px; color: var(--ink-500); font-size: 11px; }
.optimizer-running__steps span.is-done { border-color: var(--green-700); color: var(--green-700); }
.optimization-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr) 350px; min-height: 680px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); overflow: hidden; background: var(--paper); }
.sheet-list, .sheet-review, .cut-steps { padding: 20px; }
.sheet-list { border-inline-end: 1px solid var(--ink-200); }
.sheet-list button { display: flex; width: 100%; justify-content: space-between; gap: 12px; padding: 16px 10px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; text-align: start; cursor: pointer; }
.sheet-list button span { color: var(--green-700); font-size: 11px; }
.sheet-list button.is-active { margin: 4px 0; border: 1px solid var(--brand-700); border-radius: var(--radius-xs); }
.sheet-list button.is-active span { color: var(--amber-700); }
.sheet-review { display: flex; flex-direction: column; gap: 15px; }
.cut-board { display: grid; min-height: 420px; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3, 1fr); border: 2px solid var(--brand-700); background: var(--ink-050); }
.cut-board .part { padding: 12px; border: 1px solid var(--brand-700); background: var(--paper); color: var(--brand-900); font-family: var(--font-mono); font-size: 11px; }
.part--a { grid-column: 1 / 3; grid-row: 1; }
.part--b { grid-column: 3; grid-row: 1; }
.part--c { grid-column: 3 / 5; grid-row: 2; }
.part--d { grid-column: 1 / 3; grid-row: 2; }
.part--e { grid-column: 4; grid-row: 3; border-style: dashed !important; }
.cut-steps { display: grid; align-content: start; gap: 15px; border-inline-start: 1px solid var(--ink-200); }
.cut-steps .data-table__row { --columns: 4; }
.revision-pair { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 18px; }
.revision-pair .panel { position: relative; }
.revision-pair .status { position: absolute; top: 15px; inset-inline-end: 15px; }
.proposal-summary { display: grid; grid-template-columns: 1fr minmax(260px, 0.65fr); gap: 20px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ink-200); }
.proposal-summary > .panel { box-shadow: none; }
.ledger { margin-top: 15px; }
.production-list { padding: 0; overflow: hidden; }
.production-row { display: grid; grid-template-columns: 1.2fr 1.15fr 0.7fr 1fr 0.8fr; align-items: center; gap: 16px; padding: 18px; border-bottom: 1px solid var(--ink-150); }
.production-row:last-child { border-bottom: 0; }
.production-row > div:first-child, .operator-badge > div, .production-row > div:nth-child(4) { display: flex; flex-direction: column; gap: 5px; }
.production-row span, .production-row small, .production-row a { color: var(--ink-600); font-size: 12px; }
.operator-badge { display: flex; align-items: center; gap: 9px; }
.operator-badge > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--ink-100); color: var(--ink-800); }
.inventory-layout { display: grid; grid-template-columns: minmax(770px, 1fr) minmax(320px, 0.42fr); gap: 18px; }
.inventory-kind-bar { display: flex; min-width: 0; align-items: stretch; justify-content: space-between; gap: 12px; }
.inventory-kind-tabs { display: grid; min-width: min(560px, 100%); grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.inventory-kind-tabs > button { display: grid; min-width: 0; min-height: 54px; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 14px; border: 0; border-inline-end: 1px solid var(--ink-200); background: transparent; color: var(--ink-600); text-align: start; cursor: pointer; }
.inventory-kind-tabs > button:last-child { border-inline-end: 0; }
.inventory-kind-tabs > button:hover { background: var(--ink-050); color: var(--ink-900); }
.inventory-kind-tabs > button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(var(--brand-rgb), .18); outline-offset: -3px; }
.inventory-kind-tabs > button.is-active { background: var(--brand-050); color: var(--brand-900); box-shadow: inset 0 -3px 0 var(--brand-700); }
.inventory-kind-tabs > button > span { display: grid; min-width: 0; gap: 2px; }
.inventory-kind-tabs > button strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-kind-tabs > button small { color: var(--ink-500); font-size: 10px; }
.inventory-add-action { flex: 0 0 auto; min-width: 180px; justify-content: center; }
.inventory-layout > section { display: grid; align-content: start; gap: 12px; }
.inventory-layout .data-table__row { --columns: 7; }
.inventory-ledger { display: grid; gap: 12px; padding-top: 6px; border-top: 1px solid var(--ink-200); }
.inventory-ledger .data-table__row { --columns: 6; }
.inventory-ledger-panel,
.inventory-support { grid-column: 1 / -1; }
.inventory-detail { display: grid; align-content: start; gap: 15px; }
.inventory-detail .panel__header { flex-wrap: wrap; }
.inventory-detail .panel__header > div:first-child { min-width: 0; }
.inventory-detail .panel__header h2,
.inventory-detail .panel__header bdi { overflow-wrap: anywhere; }
.inventory-detail .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inventory-detail .stat-grid .stat { padding: 12px; border-inline-end: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
.inventory-detail .stat-grid .stat:nth-child(2n) { border-inline-end: 0; }
.inventory-detail .stat-grid .stat:nth-last-child(-n+2) { border-bottom: 0; }
.inventory-detail .stat-grid .stat:first-child { padding-inline-start: 12px; }
.inventory-detail .stat > strong { font-size: 19px; }
.stock-preview { box-shadow: none; }
.inventory-draft-form { display: grid; gap: 18px; }
.inventory-create-fields { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.inventory-draft-preview { display: grid; gap: 0; }
.inventory-draft-preview .panel__header { flex-wrap: wrap; }
.inventory-draft-preview .panel__header h2,
.inventory-draft-preview .panel__header bdi { overflow-wrap: anywhere; }
.inventory-draft-ready { display: grid; }
.inventory-layout > aside { display: grid; align-content: start; gap: 14px; }
.offcut-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.offcut-grid .panel { display: flex; min-height: 130px; flex-direction: column; gap: 9px; padding: 14px; }
.offcut-grid span { color: var(--ink-600); font-size: 11px; }
.inventory-phone-filter,
.inventory-mobile-summary,
.inventory-mobile-links,
.inventory-mobile-adjust { display: none; }
.inventory-phone-filter { gap: 8px; flex-wrap: wrap; }
.inventory-mobile-empty { margin: 0; padding: 24px 16px; color: var(--ink-600); font-size: 12px; line-height: 1.5; text-align: center; }
.records-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.68fr) minmax(260px, 0.52fr); gap: 18px; }
.records-layout > section { display: grid; align-content: start; gap: 12px; }
.records-layout .data-table__row { --columns: 5; }
.records-layout > aside { display: grid; align-content: start; gap: 15px; }
.notification-layout { display: grid; grid-template-columns: minmax(330px, 0.65fr) minmax(0, 1fr) minmax(220px, 0.45fr); gap: 18px; }
.notification-list { overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.notification-list .toolbar { padding: 14px; border-bottom: 1px solid var(--ink-200); }
.notification-list > button { display: flex; width: 100%; align-items: flex-start; gap: 12px; padding: 17px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; text-align: start; cursor: pointer; }
.notification-list > button:last-child { border-bottom: 0; }
.notification-list > button:hover, .notification-list > button.is-selected { background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
.notification-list > button > div { display: flex; flex: 1; flex-direction: column; gap: 5px; }
.notification-list > button span, .notification-list time { color: var(--ink-600); font-size: 12px; }
.dot { flex: 0 0 auto; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--ink-500); }
.dot--danger { background: var(--red-700); }
.dot--warning { background: var(--amber-500); }
.dot--info { background: var(--blue-700); }
.dot--success { background: var(--green-700); }
.record-compare { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 12px 0; }
.record-compare .panel { display: flex; flex-direction: column; gap: 6px; box-shadow: none; }
.notification-layout > aside { display: grid; align-content: start; gap: 12px; }
.offline-layout { display: grid; grid-template-columns: minmax(260px, 0.48fr) minmax(0, 1.3fr) minmax(300px, 0.65fr); gap: 15px; }
.offline-layout > section { display: grid; align-content: start; gap: 12px; }
.offline-layout .data-table__row { --columns: 4; }
.handoff-identities { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 14px 0; border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
.handoff-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.75fr) minmax(280px, 0.62fr); gap: 14px; }
.handoff-layout > section, .handoff-layout > aside { display: grid; align-content: start; gap: 13px; }
.handoff-layout .data-table__row { --columns: 4; }
.sticky-action { position: sticky; z-index: 5; bottom: 12px; display: flex; justify-content: flex-end; gap: 10px; padding: 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: rgba(255,255,255,.96); box-shadow: var(--shadow-md); backdrop-filter: blur(12px); }
.manager-mobile-list { display: none; }

/* Admin */
.admin-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(350px, 0.8fr) minmax(290px, 0.58fr); gap: 18px; }
.admin-grid__list { padding: 14px; }
.lead-table { margin-top: 12px; }
.lead-table .data-table__row { --columns: 6; }
.admin-grid__detail { display: grid; align-content: start; gap: 8px; }
.admin-grid__handoff { display: grid; align-content: start; gap: 13px; }
.admin-grid__handoff .button { width: 100%; margin-top: 12px; }
.admin-fields { display: grid; gap: 0; margin: 10px 0 18px; }

/* Producer */
.attention-row { display: flex; align-items: center; justify-content: space-between; border-inline-start: 5px solid var(--amber-500); }
.attention-row > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.project-list { overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.project-list > [role="button"] { display: grid; width: 100%; grid-template-columns: minmax(220px, 1fr) 140px minmax(180px, 0.8fr) 150px; align-items: center; gap: 15px; padding: 18px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; text-align: start; cursor: pointer; }
.project-list > [role="button"]:last-child { border-bottom: 0; }
.project-list > [role="button"]:hover, .project-list > [role="button"].is-expanded { background: var(--brand-050); }
.project-list > [role="button"] > div:first-child { display: flex; flex-direction: column; gap: 5px; }
.project-list__step { display: grid; gap: 9px; color: var(--ink-600); font-size: 12px; }
.project-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 0.4fr); gap: 30px; padding: 26px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.project-hero > div:first-child { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.project-hero h1 { margin: 0; }
.producer-project-actions { margin: -2px 0 4px; }
.accordion-stack { display: grid; gap: 8px; margin-top: 24px; }
.project-context { display: none; padding: 42px 0 12px; background: var(--paper); }
.project-context h1 { margin-bottom: 0; }
.project-context__desktop-title h1 { margin: 0; font-size: 32px; }
.project-context__mobile-title, .project-context__mobile-tabs { display: none; }

.manager-overview-focus { display: grid; align-content: start; gap: 15px; }
.manager-overview-focus__card { display: grid; gap: 20px; padding: 22px; }
.manager-overview-focus__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.manager-overview-focus__heading > div { display: grid; gap: 7px; }
.manager-overview-focus__heading .eyebrow { margin: 0; }
.manager-overview-focus__heading h2 { margin: 0; font-size: clamp(22px, 2.2vw, 30px); }
.manager-overview-focus__heading p { max-width: 620px; margin: 0; color: var(--ink-600); font-size: 13px; line-height: 1.55; }
.manager-overview-checkpoints { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.manager-overview-checkpoints .stat { min-width: 0; padding: 15px; border-inline-end: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
.manager-overview-checkpoints .stat:nth-child(2n) { border-inline-end: 0; }
.manager-overview-checkpoints .stat:nth-last-child(-n + 2) { border-bottom: 0; }
.manager-overview-checkpoints .stat strong { overflow-wrap: anywhere; font-size: 15px; }
.manager-overview-lifecycle { min-width: 0; }
.producer-customer-intake { display: grid; gap: 14px; margin-top: 18px; }
.producer-customer-intake__wide { min-width: 0; grid-column: 1 / -1; }
.proposal-diff { display: grid; grid-template-columns: minmax(300px, 0.58fr) minmax(240px, 0.4fr) minmax(480px, 1fr); gap: 15px; }
.proposal-diff > * { min-width: 0; }
.proposal-diff > section { display: grid; align-content: start; gap: 12px; }
.proposal-diff .data-table__row { --columns: 4; }
.finance-mobile-back, .finance-mobile-readiness, .finance-line-items-mobile, .finance-timeline-mobile { display: none; }
.finance-header p:last-child { margin: 4px 0 0; color: var(--ink-600); font-size: 13px; }
.finance-main { display: grid; align-content: start; gap: 16px; min-width: 0; }
.finance-invoice-card, .finance-payment-card { min-width: 0; }
.finance-total-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: -2px 0 22px; padding: 0 0 20px; border-bottom: 1px solid var(--ink-200); }
.finance-total-hero > div { display: grid; gap: 7px; }
.finance-total-hero span { color: var(--ink-600); font-size: 12px; }
.finance-total-hero > span { padding: 6px 9px; border-radius: 999px; background: var(--ink-050); }
.finance-totals { margin-top: 14px; }
.finance-invoice-actions { margin-top: 18px; }
.finance-stat-grid .stat > strong { font-size: 18px; }
.finance-aside { min-width: 0; }
.finance-document-list { display: grid; gap: 8px; }
.finance-document .action-row { min-height: 70px; }
.finance-document.is-selected .action-row { border-color: var(--brand-700); background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
.finance-document-selection { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ink-200); }
.finance-document-selection > span { grid-column: 1 / -1; color: var(--ink-600); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
.finance-document-selection .status { justify-self: end; }
.materials-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(380px, 0.7fr); gap: 24px; }
.materials-layout > section { min-width: 0; }
.materials-layout > aside { display: grid; align-content: start; gap: 14px; }
.producer-materials-screen { gap: 18px; }
.producer-materials-screen .materials-layout > section { display: grid; align-content: start; gap: 12px; }
.producer-panels-heading { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: 10px; }
.producer-panels-heading .section-title { margin-bottom: 2px; }
.producer-panels-heading p { margin: 0; color: var(--ink-500); font-size: 10px; }
.producer-panel-declaration { display: grid; gap: 13px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--ink-150); }
.producer-panel-declaration > .button { justify-self: start; }
.material-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.material-grid > button { display: flex; overflow: hidden; flex-direction: column; align-items: flex-start; gap: 7px; padding: 0 0 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); text-align: start; cursor: pointer; }
.material-grid > button.is-selected { border-color: var(--brand-700); box-shadow: 0 0 0 2px var(--brand-100); }
.material-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 1px solid var(--ink-150); background: var(--ink-050); }
.material-grid strong, .material-grid > button > span, .material-grid .status { margin-inline: 13px; }
.material-grid--edge img { aspect-ratio: 3 / 2; }
.selected-material-image { width: 100%; max-height: 280px; object-fit: cover; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.document-preview { display: grid; min-height: 230px; place-items: center; align-content: center; gap: 8px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-050); color: var(--brand-800); }
.notification-layout--producer { grid-template-columns: minmax(330px, 0.65fr) minmax(0, 1fr) minmax(240px, 0.45fr); }
.offline-hero { display: flex; align-items: center; gap: 18px; padding: 22px; border: 1px solid var(--red-700); border-radius: var(--radius-sm); background: var(--red-700); color: white; }
.offline-hero h1, .offline-hero p { color: white; }
.offline-hero > div { flex: 1; }
.offline-hero .status { background: #fff7e7; }
.offline-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

/* Approved manager finance */
.manager-finance-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, .72fr); grid-template-areas: "invoice progress" "ledger authority" "actions boundary"; align-items: start; gap: 16px 22px; }
.manager-finance-grid > * { min-width: 0; }
.manager-finance-progress { grid-area: progress; }
.manager-finance-progress .money { margin: 17px 0 4px; font-size: clamp(26px, 2.5vw, 34px); }
.manager-finance-progress > p:not(.eyebrow), .manager-finance-progress > small { color: var(--ink-600); }
.manager-finance-progress .progress { margin: 18px 0 13px; }
.manager-finance-progress > small { display: block; margin-top: 13px; font-size: 11px; line-height: 1.55; }
.manager-finance-invoice { grid-area: invoice; }
.manager-finance-invoice-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(235px, .52fr); align-items: stretch; gap: 22px; }
.manager-finance-invoice-body > .info-strip { align-items: flex-start; }
.manager-finance-authority { display: grid; grid-area: authority; gap: 12px; }
.manager-finance-authority .info-strip { min-height: 112px; align-items: flex-start; border-style: dashed; }
.manager-finance-actions { grid-area: actions; flex-wrap: nowrap; gap: 8px; margin: 0; }
.manager-finance-actions .button { min-height: 52px; padding-inline: 13px; font-size: 13px; white-space: nowrap; }
.manager-finance-ledger { grid-area: ledger; padding: 0; overflow: hidden; }
.manager-finance-ledger > .panel__header { margin: 0; padding: 18px 20px; border-bottom: 1px solid var(--ink-200); }
.manager-finance-ledger > .empty-state, .manager-finance-ledger > .loading-state { margin: 18px; }
.manager-payment-ledger { display: grid; }
.manager-payment-ledger article { display: grid; grid-template-columns: minmax(145px, .5fr) minmax(240px, 1.2fr) auto; align-items: center; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--ink-150); }
.manager-payment-ledger article:last-child { border-bottom: 0; }
.manager-payment-ledger article > div { display: grid; min-width: 0; gap: 5px; }
.manager-payment-ledger article span { color: var(--ink-600); font-size: 11px; overflow-wrap: anywhere; }
.manager-payment-ledger article > strong { font-family: var(--font-mono); white-space: nowrap; }
.manager-finance-boundary { grid-area: boundary; }
.manager-finance-boundary p { margin: 0; color: var(--ink-600); font-size: 12px; line-height: 1.65; }

/* Operator */
.operator-stage { min-height: 100vh; padding: 24px; background: #dfe5e8; }
.operator-app { position: relative; width: min(100%, 540px); min-height: calc(100vh - 48px); margin: 0 auto; overflow: hidden; border: 1px solid var(--ink-300); border-radius: 26px; background: var(--paper); box-shadow: var(--shadow-md); }
.operator-header { display: flex; min-height: 104px; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 24px; border-bottom: 1px solid var(--ink-200); }
.operator-header > div:first-child { display: flex; flex-direction: column; gap: 6px; }
.operator-header > div:first-child span { color: var(--ink-600); font-size: 13px; }
.operator-header__tools { display: flex; align-items: center; }
.operator-header__tools > .status, .operator-header__tools > .button { display: none; }
.operator-route-label { padding: 8px 24px; border-bottom: 1px solid var(--ink-200); background: var(--ink-050); color: var(--ink-600); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-align: end; text-transform: uppercase; }
.operator-content { min-height: calc(100vh - 250px); padding-bottom: 90px; }
.operator-screen { display: grid; gap: 16px; padding: 28px 24px; }
.operator-screen h1 { font-size: 36px; }
.operator-screen .button { width: 100%; min-height: 54px; }
.operator-screen__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.operator-lede { margin-bottom: 0; font-size: 16px; }
.operator-lock .button { min-height: 52px; }
.pin-dots { display: flex; justify-content: center; gap: 12px; }
.pin-dots span { width: 42px; height: 52px; border: 1px solid var(--ink-300); border-radius: var(--radius-sm); background: var(--paper); }
.pin-dots span.is-filled { background: var(--brand-700); box-shadow: inset 0 0 0 13px var(--paper); }
.pin-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pin-pad button { min-height: 66px; border: 1px solid var(--ink-300); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink-900); font-size: 24px; cursor: pointer; }
.pin-pad button:hover { border-color: var(--brand-700); background: var(--brand-050); }
.operator-task { display: grid; gap: 12px; }
.operator-task h2 { margin: 0; font-family: var(--font-mono); font-size: 28px; }
.operator-task--next { border-color: var(--brand-700); }
.operator-task-links { display: grid; gap: 8px; }
.camera-surface { display: grid; min-height: 280px; place-items: center; align-content: center; gap: 20px; border-radius: var(--radius-lg); background: #202423; color: white; }
.camera-surface strong { font-size: 19px; }
.scan-result { display: flex; align-items: center; gap: 22px; padding: 16px 0; }
.scan-result h2 { margin-bottom: 4px; }
.photo-drop { display: flex; min-height: 120px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; border-style: dashed; color: var(--brand-800); }
.measurement { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.measurement strong { color: var(--brand-800); font-family: var(--font-mono); font-size: 26px; }
.measurement small { grid-column: 3; }
.offcut-outcome { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 14px; }
.offcut-outcome svg { grid-row: span 3; justify-self: center; color: var(--brand-700); }
.operator-alert { display: grid; grid-template-columns: 70px 1fr; gap: 14px; padding: 20px 0; border-bottom: 1px solid var(--ink-200); }
.operator-alert > svg { color: var(--brand-700); }
.operator-alert--danger > svg { color: var(--red-700); }
.operator-alert > div { display: grid; gap: 9px; }
.operator-alert h2 { margin: 0; font-family: var(--font-mono); }
.operator-alert small { color: var(--ink-600); }
.reconnect-timeline { display: grid; gap: 12px; padding-inline-start: 22px; border-inline-start: 1px solid var(--ink-300); }
.reconnect-timeline > .panel { display: flex; align-items: flex-start; gap: 16px; }
.reconnect-timeline > .panel > div { flex: 1; }
.operator-app > .bottom-nav, .operator-stage .bottom-nav { position: absolute; z-index: 10; inset-inline: 0; bottom: 0; display: grid; grid-template-columns: repeat(4, 1fr); min-height: 78px; border-top: 1px solid var(--ink-200); background: rgba(255,255,255,.98); backdrop-filter: blur(12px); }
.bottom-nav button { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; border: 0; background: transparent; color: var(--ink-600); font-size: 10px; cursor: pointer; }
.bottom-nav button.is-active { color: var(--brand-800); font-weight: 730; }

/* Responsive consolidation */
@media (max-width: 1280px) {
  :root { --global-rail: 68px; --context-rail: 248px; --page-gutter: 22px; }
  .job-row { grid-template-columns: minmax(220px, 1fr) repeat(3, minmax(90px, .42fr)); }
  .job-row__action { display: none; }
  .overview-grid, .optimization-grid, .parts-layout, .records-layout,
  .admin-layout, .materials-layout, .handoff-layout, .offline-layout, .offline-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .notification-layout, .notification-layout--producer { grid-template-columns: minmax(300px, .72fr) minmax(0, 1fr); }
  .notification-layout > :last-child, .notification-layout--producer > :last-child { grid-column: 1 / -1; }
  .proposal-diff { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proposal-diff > :last-child { grid-column: 1 / -1; }
  .optimizer-setup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-setup-grid > .panel:last-child { grid-column: 1 / -1; }
  .optimizer-spacious-layout { grid-template-columns: minmax(0, 1fr) 252px; gap: 28px; }
  .optimizer-profile-strip { grid-template-columns: 46px repeat(5, minmax(80px, 1fr)); }
  .optimizer-profile-strip > div { padding-inline: 11px; }
  .settings-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .settings-contract { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1239px) and (min-width: 901px) {
  .manager-inventory .inventory-layout { grid-template-columns: minmax(0, 1fr); }
  .manager-inventory .inventory-catalogue { order: 1; }
  .manager-inventory .inventory-detail { order: 2; }
  .manager-inventory .inventory-ledger-panel { order: 3; }
  .manager-inventory .inventory-support { order: 4; }
}

@media (max-width: 900px) {
  .manager-settings-hub__header { flex-direction: column; gap: 12px; }
  .manager-settings-hub__nav button { min-width: 104px; }
  .manager-settings-hub__content > .panel { padding: 16px; }
  .manager-settings-check-grid, .manager-measurement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manager-machine-grid { grid-template-columns: minmax(0, 1fr); }
  .pricing-profile-layout { grid-template-columns: minmax(0, 1fr); }
  .pricing-profile-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-adjustment-list article { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manager-inventory .inventory-kind-bar { display: grid; grid-template-columns: minmax(0, 1fr); }
  .manager-inventory .inventory-kind-tabs { width: 100%; min-width: 0; }
  .manager-inventory .inventory-add-action { width: 100%; min-width: 0; }
}

@media (min-width: 901px) {
  .workspace:is(.workspace--job-context, .workspace--project-context) {
    grid-template-columns: var(--global-rail) minmax(0, 1fr);
    grid-template-rows: 65px auto minmax(0, 1fr);
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .workspace-topbar {
    grid-template-columns: max(118px, var(--global-rail)) minmax(0, 1fr) auto;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .global-rail {
    grid-column: 1;
    grid-row: 2 / 4;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) > .context-rail {
    position: sticky;
    top: 65px;
    display: flex;
    min-height: 112px;
    height: auto;
    grid-column: 2;
    grid-row: 2;
    flex-direction: row;
    align-items: stretch;
    gap: 20px;
    padding: 12px clamp(18px, 2.2vw, 34px);
    overflow: visible;
    border-inline-end: 0;
    border-bottom: 1px solid var(--ink-200);
    box-shadow: 0 7px 22px rgba(7, 20, 47, .035);
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .workspace__main {
    grid-column: 2;
    grid-row: 3;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .job-context-summary {
    width: clamp(210px, 18vw, 300px);
    flex: 0 0 auto;
    align-content: center;
    gap: 3px;
    padding: 4px 22px 4px 0;
    border-bottom: 0;
    border-inline-end: 1px solid var(--ink-200);
  }
  [dir="rtl"] .workspace:is(.workspace--job-context, .workspace--project-context) .job-context-summary { padding: 4px 0 4px 22px; }
  .workspace:is(.workspace--job-context, .workspace--project-context) .job-context-summary h2 {
    margin: 0 0 5px;
    font-size: 17px;
    line-height: 1.22;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .job-context-summary strong { font-size: 12px; }
  .workspace--project-context .job-context-summary .context-rail__status {
    min-height: 22px;
    margin-top: 5px;
    padding: 3px 8px;
    font-size: 10px;
    text-transform: capitalize;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow .workflow-step {
    position: relative;
    isolation: isolate;
    display: flex;
    width: auto;
    min-width: 70px;
    min-height: 78px;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 4px;
    overflow: visible;
    color: var(--ink-500);
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow .workflow-step:not(:last-child)::after {
    z-index: 0;
    top: 31px;
    bottom: auto;
    left: auto;
    inset-inline-start: calc(50% + 21px);
    width: calc(100% - 42px);
    height: 2px;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow .workflow-step__label {
    position: relative;
    z-index: 1;
    display: block;
    max-width: 96px;
    overflow: hidden;
    color: var(--ink-600);
    font-size: 10px;
    font-weight: 680;
    line-height: 1.25;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow .workflow-step.is-active .workflow-step__label { color: var(--brand-900); }
  .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--job-utilities {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 0 0 0 18px;
    border-top: 0;
    border-inline-start: 1px solid var(--ink-200);
  }
  [dir="rtl"] .workspace:is(.workspace--job-context, .workspace--project-context) .context-nav--job-utilities { padding: 0 18px 0 0; }
  .workspace.workspace--hub-context { --context-rail: 0px; }
  .workspace--hub-context .workspace-topbar { grid-template-columns: max(118px, var(--global-rail)) minmax(0, 1fr) auto; }
  .workspace--hub-context .workspace__main { grid-column: 2 / -1; }
  .workspace .global-rail--expandable { justify-self: start; inline-size: var(--global-rail); align-items: center; overflow-x: hidden; transition: inline-size 180ms ease, box-shadow 180ms ease; }
  .workspace .global-rail--expandable:is(:hover, :focus-within) { inline-size: 252px; align-items: stretch; box-shadow: 12px 0 28px rgba(7, 20, 47, 0.12); }
  [dir="rtl"] .workspace .global-rail--expandable:is(:hover, :focus-within) { box-shadow: -12px 0 28px rgba(7, 20, 47, 0.12); }
  .global-rail--expandable .global-rail__nav button { display: flex; width: 50px; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 14px; padding: 0 13px; overflow: hidden; white-space: nowrap; transition: width 180ms ease; }
  .global-rail--expandable:is(:hover, :focus-within) .global-rail__nav { justify-items: stretch; }
  .global-rail--expandable:is(:hover, :focus-within) .global-rail__nav button { width: 100%; }
  .global-rail--expandable .global-rail__nav button > svg { flex: 0 0 24px; }
  .global-rail--expandable .global-rail__label { display: block; min-width: 0; max-width: 0; overflow: hidden; opacity: 0; text-overflow: ellipsis; transition: max-width 180ms ease, opacity 120ms ease; }
  .global-rail--expandable:is(:hover, :focus-within) .global-rail__label { max-width: 172px; opacity: 1; }
  .global-rail__hub-identity { min-width: 0; max-height: 0; margin-top: auto; padding: 0 13px; overflow: hidden; opacity: 0; visibility: hidden; }
  .global-rail--expandable:is(:hover, :focus-within) .global-rail__hub-identity { display: grid; max-height: 82px; gap: 4px; padding-block: 12px; opacity: 1; visibility: visible; }
  .global-rail__hub-identity span { color: var(--ink-500); font-size: 10px; font-weight: 720; letter-spacing: .08em; text-transform: uppercase; }
  .global-rail__hub-identity strong { min-width: 0; overflow: hidden; color: var(--ink-900); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
  .global-rail--expandable .global-rail__footer { display: flex; width: 44px; flex: 0 0 44px; justify-content: flex-start; gap: 14px; margin-top: auto; padding-inline: 11px; overflow: hidden; }
  .global-rail--expandable:has(.global-rail__hub-identity) .global-rail__footer { margin-top: 8px; }
  .global-rail--expandable:is(:hover, :focus-within) .global-rail__footer { width: 100%; }
  .global-rail--expandable .global-rail__footer > svg { flex: 0 0 21px; }
}

@media (max-width: 1100px) and (min-width: 901px) {
  .workspace--manager .optimizer-spacious-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .workspace--manager .optimizer-ready-panel { min-height: 520px; }
  .context-rail__identity h2 { font-size: 24px; }
}

@media (max-width: 900px) {
  :root { --page-gutter: 18px; }
  body { overflow-x: hidden; }
  .auth-layout { width: 100%; min-height: calc(100vh - 72px); grid-template-columns: minmax(0, 1fr); gap: 0; justify-content: stretch; padding: 48px var(--page-gutter) 72px; }
  .auth-benefits { display: none; }
  .sign-in-panel { width: min(560px, 100%); min-width: 0; margin: 0 auto; padding: 0; }
  .sign-in-panel h1 { font-size: clamp(48px, 15vw, 68px); }
  .sign-in-panel > form { width: 100%; max-width: none; }
  .workspace { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); padding-bottom: 76px; }
  .global-rail, .context-rail, .workspace-topbar__desktop-brand { display: none; }
  .workspace__main { grid-column: 1; grid-row: 2; }
  .workspace > .bottom-nav { position: fixed; z-index: 40; inset-inline: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); min-height: 72px; border-top: 1px solid var(--ink-200); background: rgba(255,255,255,.97); box-shadow: 0 -8px 30px rgba(15,38,42,.08); backdrop-filter: blur(16px); }
  .workspace-topbar { display: flex; min-height: 68px; grid-column: 1; grid-row: 1; padding: 10px var(--page-gutter); }
  .workspace-topbar__mobile-brand { display: grid; min-width: 0; gap: 5px; }
  .workspace-topbar__mobile-brand > strong, .workspace-topbar__mobile-brand > span { display: block; }
  .workspace-topbar__mobile-brand > strong { overflow: hidden; color: var(--ink-900); text-overflow: ellipsis; white-space: nowrap; }
  .workspace-topbar__mobile-brand > span { color: var(--ink-600); font-size: 12px; }
  .breadcrumbs { display: none; }
  .workspace-topbar__user > div, .workspace-topbar__support { display: none; }
  .workspace-content { min-height: calc(100vh - 140px); }
  .page-header { align-items: flex-start; }
  .page-header h1 { font-size: clamp(28px, 8vw, 42px); }
  .page-header__actions { width: 100%; justify-content: flex-start; }
  .page-header__actions .button { flex: 1; }
  .toolbar { align-items: stretch; }
  .toolbar .field, .toolbar .search { width: 100%; }
  .tabs { margin-inline: calc(var(--page-gutter) * -1); padding-inline: var(--page-gutter); }
  .overview-grid, .optimization-grid, .parts-layout, .inventory-layout, .records-layout,
  .admin-layout, .materials-layout, .handoff-layout, .offline-columns, .notification-layout,
  .notification-layout--producer, .proposal-diff, .project-hero, .auth-grid, .offline-layout,
  .jobs-layout, .content-grid--aside { grid-template-columns: 1fr; }
  .notification-layout > :last-child, .notification-layout--producer > :last-child,
  .proposal-diff > :last-child { grid-column: auto; }
  .job-table__header { display: none; }
  .job-list { gap: 12px; }
  .job-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; padding: 18px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
  .job-row__main { grid-column: 1 / -1; }
  .job-row__action { display: grid; grid-column: 1 / -1; }
  .job-header__title { flex-wrap: wrap; }
  .job-header { margin: 0 calc(var(--page-gutter) * -1); padding: 22px var(--page-gutter) 0; border-bottom: 1px solid var(--ink-200); background: linear-gradient(180deg, #f8fbfb 0%, var(--paper) 82%); }
  .job-header__desktop-title { display: none; }
  .job-header__mobile-title { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px 16px; }
  .job-header__mobile-context { display: grid; min-width: 0; grid-column: 1 / -1; gap: 10px; }
  .job-header__mobile-context > .eyebrow { width: fit-content; max-width: 100%; margin: 0; overflow: hidden; color: var(--ink-600); font-size: 10px; letter-spacing: .08em; text-overflow: ellipsis; white-space: nowrap; }
  .job-header__mobile-context > .title-with-status { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
  .job-header__mobile-context > .title-with-status h1 { min-width: 0; margin: 0; }
  .job-header__mobile-context > .title-with-status .status { align-self: center; }
  .job-header__mobile-context > .job-header__meta { margin: 0; padding-top: 10px; border-top: 1px solid var(--ink-150); color: var(--ink-600); font-size: 12px; }
  .job-header__mobile-action { display: flex; grid-column: 1 / -1; justify-content: flex-start; }
  .job-header__mobile-action > .button, .job-header__mobile-action > .status { min-height: 34px; }
  .tabs--job { display: grid; }
  .job-workflow-tabs { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-top: 18px; padding: 9px 0 8px; overflow: visible; border-top: 1px solid var(--ink-150); }
  .project-workflow-tabs { display: grid; }
  .job-workflow-tabs__steps { display: flex; min-width: 0; align-items: center; }
  .job-workflow-tabs__steps .workflow-step { position: relative; isolation: isolate; display: grid; min-width: 42px; min-height: 46px; flex: 1 1 0; place-items: center; padding: 0; overflow: visible; border: 0; background: transparent; color: var(--ink-500); }
  .job-workflow-tabs__steps .workflow-step:not(:last-child)::after { position: absolute; z-index: 0; top: 22px; inset-inline-start: calc(50% + 17px); width: calc(100% - 34px); height: 2px; background: var(--ink-200); content: ""; }
  .job-workflow-tabs__steps .workflow-step--complete:not(:last-child)::after { background: var(--ink-300); }
  .job-workflow-tabs .workflow-step__icon { width: 34px; height: 34px; }
  .job-workflow-tabs .workflow-step.is-active .workflow-step__icon { box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px currentColor; }
  .job-workflow-tabs__utilities { display: flex; align-items: center; gap: 2px; padding-inline-start: 8px; border-inline-start: 1px solid var(--ink-200); }
  .job-workflow-tabs__utilities > button { display: grid; width: 38px; min-height: 38px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ink-500); }
  .job-workflow-tabs__utilities > button.is-active { border: 1px solid var(--brand-300, var(--ink-300)); background: var(--brand-050); color: var(--brand-900); }
  .project-context { display: block; padding: 24px var(--page-gutter) 0; margin: 0 calc(var(--page-gutter) * -1); border-bottom: 1px solid var(--ink-200); background: linear-gradient(180deg, #f8fbfb 0%, var(--paper) 82%); }
  .project-context__desktop-title { display: none; }
  .project-context__mobile-title { display: block; }
  .project-context__mobile-tabs { display: flex; }
  .production-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .production-row > a { grid-column: 1 / -1; }
  .data-table { overflow-x: auto; }
  .data-table__row { min-width: 720px; }
  .producer-project-actions .button { flex: 1 1 220px; }
  .material-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--producer > .bottom-nav { grid-template-columns: repeat(4, 1fr); }
  .workspace--manager > .bottom-nav { grid-template-columns: repeat(4, 1fr); }
  .workspace--manager .screen,
  .workspace--manager .screen > *,
  .workspace--manager .job-header,
  .workspace--manager .job-header__title,
  .workspace--manager .job-header__title > div,
  .workspace--manager .content-grid,
  .workspace--manager .content-grid > *,
  .workspace--manager .parts-workspace,
  .workspace--manager .optimization-layout,
  .workspace--manager .inventory-layout,
  .workspace--manager .records-layout,
  .workspace--manager .notification-layout,
  .workspace--manager .offline-layout,
  .workspace--manager .handoff-layout,
  .workspace--manager .offline-layout > *,
  .workspace--manager .handoff-layout > * { min-width: 0; max-width: 100%; }
  .workspace--manager .content-grid--two,
  .workspace--manager .parts-workspace,
  .workspace--manager .optimization-layout { grid-template-columns: minmax(0, 1fr); }
  .workspace--producer .producer-project-overview .content-grid--two { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .job-header { overflow: hidden; }
  .workspace--manager .job-header .tabs { width: 100%; margin-inline: 0; padding-inline: 0; }
  .workspace--manager .parts-workspace,
  .workspace--manager .optimization-layout { overflow: visible; border: 0; background: transparent; gap: 14px; }
  .workspace--manager .parts-workspace > .panel,
  .workspace--manager .optimization-layout > * { border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
  .workspace--manager .parts-workspace > .panel { border-inline-end: 1px solid var(--ink-200); }
  .workspace--manager .parts-workspace .quick-input { order: 1; }
  .workspace--manager .parts-workspace .board-preview { order: 2; }
  .workspace--manager .parts-workspace .parts-list { order: 3; }
  .workspace--manager .optimizer-command { grid-template-columns: minmax(0, 1fr) auto; }
  .workspace--manager .optimizer-command > div:first-child { min-width: 0; }
  .workspace--manager .optimizer-summary { grid-column: 1 / -1; grid-row: 2; }
  .workspace--manager .optimizer-setup-grid { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .optimizer-setup-grid > .panel:last-child { grid-column: auto; }
  .workspace--manager .optimizer-spacious-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .workspace--manager .optimizer-ready-panel { min-height: 520px; }
  .workspace--manager .quick-constraints__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--manager .quick-trim { grid-column: 1 / -1; }
  .workspace--manager .optimizer-quick-row .quick-trim { grid-column: auto; }
  .workspace--manager .settings-layout { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .settings-nav { display: flex; grid-column: auto; gap: 4px; overflow-x: auto; padding: 6px; overscroll-behavior-inline: contain; }
  .workspace--manager .settings-nav button { flex: 0 0 auto; border-inline-start: 0; border-bottom: 3px solid transparent; white-space: nowrap; }
  .workspace--manager .settings-nav button.is-active { border-bottom-color: var(--brand-700); }
  .workspace--manager .settings-contract { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .settings-form { min-height: 0; }
  .workspace--manager .optimization-settings-screen .screen-header > .button-row { width: 100%; }
  .workspace--manager .optimization-settings-screen .screen-header > .button-row .button { flex: 1; }
  .workspace--manager .optimization-layout .sheet-review { order: 1; }
  .workspace--manager .optimization-layout .sheet-list { order: 2; }
  .workspace--manager .optimization-layout .cut-steps { order: 3; }
  .workspace--manager .sheet-list,
  .workspace--manager .cut-steps { border-inline: 1px solid var(--ink-200); }
  .workspace--manager .handoff-identities { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .workspace--manager .handoff-identities .metric-row { padding: 12px; }
  .workspace--manager .card-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--manager .proposal-summary { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .data-table,
  .workspace--manager .tabs,
  .workspace--manager .stepper { max-width: 100%; overscroll-behavior-inline: contain; }
  .workspace--manager .data-table__row { min-width: 640px; }
  .workspace--manager .screen-header { flex-wrap: wrap; gap: 14px; }
  .workspace--manager .screen-header > div:first-child { min-width: 0; }
  .workspace--manager .sticky-action { position: static; flex-wrap: wrap; }
  .workspace--manager .sticky-action .button { flex: 1 1 190px; }
  .finance-mobile-back, .finance-mobile-readiness, .finance-line-items-mobile, .finance-timeline-mobile { display: block; }
  .finance-desktop-table, .finance-stepper-desktop, .finance-aside > .info-strip--info:first-child { display: none; }
  .finance-layout { gap: 16px; }
  .finance-line-items-mobile { overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
  .finance-line-items-mobile article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 15px; border-bottom: 1px solid var(--ink-150); }
  .finance-line-items-mobile article:last-child { border-bottom: 0; }
  .finance-line-items-mobile article > div { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
  .finance-line-items-mobile article > div:last-child { align-items: flex-end; text-align: end; }
  .finance-line-items-mobile span, .finance-line-items-mobile small { color: var(--ink-600); font-size: 11px; }
  .finance-line-items-mobile strong { overflow-wrap: anywhere; font-size: 13px; line-height: 1.35; }
  .finance-timeline-mobile .timeline__item { min-height: 74px; }
  .finance-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .finance-stat-grid .stat { padding: 14px; border-inline-end: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
  .finance-stat-grid .stat:nth-child(2n) { border-inline-end: 0; }
  .finance-stat-grid .stat:nth-last-child(-n+2) { border-bottom: 0; }
  .finance-stat-grid .stat:first-child { padding-inline-start: 14px; }
  .finance-invoice-actions .button { flex: 1 1 180px; }
  .manager-finance-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "progress" "invoice" "authority" "actions" "ledger" "boundary"; gap: 16px; }
  .manager-finance-invoice-body { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .manager-finance-authority .info-strip { min-height: 0; }
  .manager-finance-actions .button { flex: 1 1 190px; }
  .public-hero { grid-template-columns: 1fr; padding-top: 68px; }
  .public-hero__visual { min-height: 360px; }
  .public-proof, .feature-grid, .how-grid, .footer-grid { grid-template-columns: 1fr; }
  .public-topbar nav { display: none; }
  .public-topbar { padding-inline: 18px; }
  .admin-lead-list { max-height: none; }
}

/* Approved Floor execution · ART-044–ART-052 */
.operator-header {
  min-height: 108px;
  padding: 18px 22px;
  background: var(--paper);
}
.operator-header__identity {
  display: flex !important;
  min-width: 0;
  align-items: center;
  flex-direction: row !important;
  gap: 12px !important;
}
.operator-header__brand-block {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.operator-header__brand-block .brand {
  width: fit-content;
  font-size: 25px;
}
.operator-header__brand-block > span {
  color: var(--ink-600);
  font-size: 14px;
}
.operator-header__brand-block > small {
  max-width: 260px;
  overflow: hidden;
  color: var(--ink-600);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.operator-header__tools {
  gap: 4px;
}
.operator-header__tools .icon-button {
  width: 43px;
  height: 43px;
  border-color: var(--ink-200);
  border-radius: var(--radius-sm);
  color: var(--ink-900);
}
.operator-header__tools .icon-button:first-of-type {
  border-color: transparent;
}
.operator-header__path {
  margin-inline-end: 6px;
  font-family: var(--font-mono);
  font-size: 15px;
}
.operator-header__workshop {
  display: grid;
  margin-inline-end: 8px;
  gap: 5px;
  color: var(--ink-700);
  text-align: end;
}
.operator-header__workshop strong {
  max-width: 165px;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.operator-header__workshop small {
  color: var(--ink-950);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 730;
}
.operator-content {
  min-height: calc(100vh - 198px);
}
.operator-screen {
  gap: 18px;
  padding: 30px 24px;
}
.operator-screen h1 {
  margin: 0;
  font-size: 36px;
  letter-spacing: -0.045em;
}
.floor-screen-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.floor-count {
  flex: 0 0 auto;
  color: var(--brand-800);
  font-size: 18px;
}
.operator-task {
  gap: 13px;
  padding: 20px;
  border-radius: var(--radius-sm);
  box-shadow: none;
}
.operator-task > .status {
  border: 0;
  border-radius: var(--radius-xs);
}
.operator-task h2 {
  overflow-wrap: anywhere;
  font-size: 25px;
  letter-spacing: -0.03em;
}
.operator-task > p {
  margin: 0;
  color: var(--ink-600);
  font-size: 16px;
}
.operator-task--next {
  border-color: var(--brand-700);
}
.floor-task-state,
.floor-task-workshop {
  display: flex;
  align-items: center;
  gap: 9px;
}
.floor-task-state {
  color: var(--green-700);
}
.floor-task-state--warning {
  color: var(--amber-800);
}
.floor-task-state--danger {
  color: var(--red-700);
}
.floor-task-workshop {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--ink-200);
  color: var(--ink-700);
}
.floor-assignment-boundary {
  border-color: var(--ink-200);
  background: var(--paper);
}
.floor-task-heading {
  display: grid;
  gap: 9px;
}
.floor-task-heading h1 {
  overflow-wrap: anywhere;
  font-family: var(--font-mono);
  font-size: 32px;
  letter-spacing: -0.04em;
}
.floor-task-heading > p {
  margin: 0;
  color: var(--ink-600);
  font-size: 18px;
}
.floor-task-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
  gap: 8px;
}
.floor-detail-card,
.floor-task-tools,
.floor-artifact-card,
.floor-access-boundary,
.floor-material-card,
.floor-offcut-card,
.floor-account-card,
.floor-account-boundaries,
.floor-safe-outcomes,
.floor-alert-boundary {
  box-shadow: none;
}
.floor-detail-card {
  padding: 0;
  overflow: hidden;
}
.floor-detail-card .panel__header {
  margin: 0;
  padding: 18px 20px;
  border-bottom: 1px solid var(--ink-200);
}
.floor-detail-card .panel__header .eyebrow,
.floor-task-tools .eyebrow {
  margin: 0;
  color: var(--ink-700);
  font-size: 11px;
}
.floor-context-list {
  display: grid;
}
.floor-context-list > div {
  display: grid;
  min-height: 57px;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--ink-150);
}
.floor-context-list > div:last-child {
  border-bottom: 0;
}
.floor-context-list > div:first-child span {
  grid-column: 2 / -1;
}
.floor-context-list strong {
  max-width: 220px;
  color: var(--ink-800);
  font-size: 12px;
  text-align: end;
  overflow-wrap: anywhere;
}
.floor-context-list .is-success {
  color: var(--green-700);
}
.floor-context-list .is-warning {
  color: var(--amber-800);
}
.floor-execution-card .stepper {
  padding: 23px 13px 19px;
}
.floor-execution-card .stepper li {
  min-width: 0;
}
.floor-card-notes {
  display: grid;
  border-top: 1px solid var(--ink-200);
}
.floor-card-notes > div {
  display: flex;
  min-height: 50px;
  align-items: center;
  gap: 12px;
  padding: 11px 20px;
  border-bottom: 1px solid var(--ink-150);
  color: var(--ink-700);
}
.floor-card-notes > div:last-child {
  border-bottom: 0;
}
.floor-task-tools {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.floor-task-tools .panel__header {
  grid-column: 1 / -1;
  margin: 0 0 4px;
}
.floor-authority-line {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 16px 20px;
}
.floor-authority-line > div {
  display: grid;
  gap: 6px;
}
.floor-authority-line small {
  color: var(--ink-600);
  line-height: 1.5;
}
.floor-exact-release,
.floor-locked-state,
.floor-offline-subtitle,
.floor-offline-count,
.floor-camera-status {
  display: flex;
  align-items: center;
  gap: 10px;
}
.floor-exact-release {
  color: var(--green-700);
  font-size: 19px;
}
.floor-artifact-card {
  padding: 18px;
}
.floor-artifact-name {
  display: flex;
  align-items: center;
  gap: 15px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ink-200);
  color: var(--brand-800);
}
.floor-artifact-name h2 {
  margin: 0;
  color: var(--ink-950);
  font-family: var(--font-mono);
  font-size: 21px;
  overflow-wrap: anywhere;
}
.floor-artifact-facts {
  display: grid;
}
.floor-artifact-facts > div,
.floor-access-boundary > div,
.floor-safe-outcomes > div,
.floor-account-boundaries > div,
.floor-alert-boundary > div {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 13px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--ink-150);
}
.floor-artifact-facts > div:last-child,
.floor-access-boundary > div:last-child,
.floor-safe-outcomes > div:last-child,
.floor-account-boundaries > div:last-child,
.floor-alert-boundary > div:last-child {
  border-bottom: 0;
}
.floor-access-boundary {
  border-color: #e8caa2;
  color: var(--amber-800);
}
.floor-access-boundary .panel__header {
  padding-bottom: 12px;
  border-bottom: 1px solid #ead7bc;
}
.floor-access-boundary > div {
  color: var(--ink-800);
}
.floor-camera-status {
  color: var(--amber-800);
}
.floor-camera-status > span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: currentColor;
}
.floor-camera-status--ready {
  color: var(--green-700);
}
.floor-camera-status--unavailable {
  color: var(--red-700);
}
.camera-surface {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: #202423;
}
.camera-surface video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.camera-surface__prompt {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  gap: 16px;
  color: white;
  text-align: center;
}
.floor-manual-lookup {
  display: grid;
  gap: 12px;
}
.floor-result-kicker {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--green-700);
}
.floor-scan-result .scan-result {
  align-items: center;
  flex-direction: row;
  gap: 14px;
}
.floor-result-icon,
.floor-card-icon,
.floor-alert__icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--brand-050);
  color: var(--brand-800);
}
.floor-result-icon {
  width: 64px;
  height: 64px;
}
.floor-scan-result .scan-result h2 {
  margin: 0;
  overflow-wrap: anywhere;
  font-family: var(--font-mono);
  font-size: 20px;
}
.floor-scan-result .scan-result p {
  margin: 5px 0;
}
.floor-scan-result .scan-result span {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
}
.floor-safe-outcomes .panel__header {
  margin-bottom: 3px;
}
.floor-safe-outcomes > div:nth-of-type(2),
.floor-safe-outcomes > div:nth-of-type(3) {
  color: var(--amber-800);
}
.floor-safe-outcomes > div:last-child {
  color: var(--red-700);
}
.floor-task-identity {
  display: grid;
  gap: 7px;
}
.floor-task-identity strong {
  font-family: var(--font-mono);
  font-size: 17px;
  overflow-wrap: anywhere;
}
.floor-task-identity span {
  color: var(--ink-600);
  font-size: 16px;
}
.floor-evidence-step {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
}
.floor-step-number {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid var(--ink-500);
  border-radius: 50%;
  color: var(--ink-900);
  font-weight: 720;
}
.floor-evidence-step > div {
  display: grid;
  gap: 9px;
}
.floor-step-label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--ink-950);
  font-size: 17px;
  font-weight: 720;
}
.floor-step-label em {
  padding: 4px 7px;
  border-radius: var(--radius-xs);
  background: var(--red-100);
  color: var(--red-700);
  font-size: 11px;
  font-style: normal;
  font-weight: 650;
}
.floor-step-label .is-optional {
  background: var(--ink-100);
  color: var(--ink-600);
}
.floor-step-label .is-captured {
  background: var(--green-100);
  color: var(--green-700);
}
.floor-photo-boundary {
  display: flex;
  width: 100%;
  min-height: 92px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  border: 1px dashed var(--ink-300);
  border-radius: var(--radius-xs);
  background: var(--ink-050);
  color: var(--ink-600);
}
.floor-photo-boundary--compact {
  min-height: 60px;
  flex-direction: row;
}
.floor-measurement-grid,
.floor-offcut-measurements {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.floor-evidence-outcomes {
  display: grid;
}
.floor-evidence-outcomes > div {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--ink-200);
  color: var(--ink-700);
}
.floor-material-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 14px;
}
.floor-card-icon {
  width: 52px;
  height: 52px;
}
.floor-material-card h2,
.floor-offcut-card h2 {
  margin: 0 0 10px;
  font-size: 21px;
}
.floor-material-facts {
  display: grid;
}
.floor-material-facts > div {
  display: flex;
  min-height: 46px;
  align-items: center;
  gap: 11px;
  border-bottom: 1px solid var(--ink-150);
}
.floor-material-facts > div:last-child {
  border-bottom: 0;
}
.floor-offcut-card {
  display: grid;
  gap: 14px;
}
.floor-offcut-card > header {
  display: flex;
  align-items: center;
  gap: 14px;
}
.floor-offcut-card > header h2,
.floor-offcut-card > header .eyebrow {
  margin-bottom: 0;
}
.floor-offcut-size {
  display: flex;
  min-height: 112px;
  align-items: center;
  justify-content: center;
  gap: 22px;
  border-block: 1px solid var(--ink-150);
  color: var(--brand-800);
}
.floor-offcut-size strong {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ink-900);
  font-family: var(--font-mono);
}
.floor-offcut-measurements {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.floor-alert {
  position: relative;
  display: grid;
  grid-template-columns: 10px 72px minmax(0, 1fr);
  gap: 12px;
  padding: 20px 0;
  border-bottom: 1px solid var(--ink-200);
}
.floor-alert__dot {
  width: 8px;
  height: 8px;
  margin-top: 30px;
  border-radius: 50%;
  background: var(--brand-700);
}
.floor-alert__icon {
  width: 64px;
  height: 64px;
  color: var(--brand-800);
  background: var(--brand-100);
}
.floor-alert--danger .floor-alert__icon {
  color: var(--red-700);
  background: var(--red-100);
}
.floor-alert.is-read {
  opacity: .78;
}
.floor-alert__body {
  display: grid;
  gap: 9px;
  min-width: 0;
}
.floor-alert__body .eyebrow {
  margin: 0;
}
.floor-alert__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.floor-alert__heading h2 {
  margin: 0;
  overflow-wrap: anywhere;
  font-family: var(--font-mono);
  font-size: 19px;
}
.floor-alert__body > p:not(.eyebrow) {
  margin: 0;
  color: var(--ink-600);
  line-height: 1.55;
}
.floor-alert__body small {
  color: var(--ink-600);
}
.floor-locked-state {
  color: var(--amber-800);
  font-size: 18px;
}
.floor-account-screen .pin-dots {
  gap: 8px;
}
.floor-account-screen .pin-dots input {
  width: min(48px, 15%);
  height: 54px;
  flex: 1;
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-xs);
  background: var(--paper);
}
.floor-account-screen .pin-pad button:disabled {
  border-color: var(--ink-250);
  background: var(--paper);
  color: var(--ink-700);
  opacity: .72;
}
.floor-account-card .key-values {
  grid-template-columns: minmax(90px, .65fr) minmax(0, 1.35fr);
}
.floor-offline-subtitle {
  color: var(--ink-600);
}
.floor-offline-count {
  color: var(--amber-800);
  font-size: 18px;
}
.floor-reconnect-timeline {
  position: relative;
  display: grid;
  gap: 10px;
  padding-inline-start: 31px;
}
.floor-reconnect-timeline::before {
  position: absolute;
  top: 0;
  bottom: 0;
  inset-inline-start: 13px;
  width: 1px;
  background: var(--ink-300);
  content: "";
}
.floor-reconnect-timeline > .panel {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  box-shadow: none;
}
.floor-reconnect-timeline > .panel > svg {
  color: var(--brand-800);
}
.floor-reconnect-timeline > .panel.panel--danger > svg {
  color: var(--red-700);
}
.floor-reconnect-timeline > .panel > div {
  min-width: 0;
}
.floor-reconnect-timeline h2 {
  margin: 0 0 5px;
  font-size: 17px;
}
.floor-reconnect-timeline p {
  margin: 0;
}
.floor-timeline-icon {
  position: absolute;
  z-index: 1;
  top: 21px;
  inset-inline-start: -48px;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--brand-800);
  color: white;
}
.floor-reconnect-timeline .panel--danger .floor-timeline-icon {
  background: var(--red-700);
}
.floor-reconnect-timeline .is-success .floor-timeline-icon {
  background: var(--green-700);
}
.floor-reconnect-timeline .is-danger .floor-timeline-icon {
  background: var(--red-700);
}

@media (max-width: 600px) {
  .operator-header {
    min-height: 92px;
    padding: 13px 16px;
  }
  .operator-header__identity {
    gap: 7px !important;
  }
  .operator-header__brand-block .brand {
    font-size: 22px;
  }
  .operator-header__brand-block > span {
    font-size: 12px;
  }
  .operator-header__brand-block > small {
    max-width: 190px;
    font-size: 9px;
  }
  .operator-header__tools {
    gap: 1px;
  }
  .operator-header__tools .icon-button {
    width: 39px;
    height: 39px;
  }
  .operator-header__workshop {
    display: none;
  }
  .operator-header__path {
    display: none;
  }
  .operator-content {
    min-height: calc(100vh - 170px);
  }
  .operator-screen {
    gap: 16px;
    padding: 24px 17px;
  }
  .operator-screen h1 {
    font-size: 31px;
  }
  .floor-screen-title {
    align-items: flex-end;
  }
  .floor-count {
    font-size: 16px;
  }
  .operator-task {
    padding: 17px;
  }
  .operator-task h2 {
    font-size: 22px;
  }
  .floor-task-heading h1 {
    font-size: 27px;
  }
  .floor-task-heading > p {
    font-size: 15px;
  }
  .floor-task-actions {
    grid-template-columns: 1fr;
  }
  .floor-context-list > div {
    grid-template-columns: 27px minmax(0, 1fr);
    padding-inline: 16px;
  }
  .floor-context-list > div strong {
    grid-column: 2;
    max-width: none;
    text-align: start;
  }
  .floor-execution-card .stepper {
    padding-inline: 7px;
  }
  .floor-execution-card .stepper li {
    gap: 6px;
    font-size: 10px;
  }
  .floor-execution-card .stepper li:not(:last-child)::after {
    inset-inline-start: 65%;
    width: 70%;
  }
  .floor-task-tools {
    grid-template-columns: 1fr;
  }
  .floor-task-tools .panel__header {
    grid-column: 1;
  }
  .camera-surface {
    min-height: 245px;
  }
  .floor-scan-result .scan-result {
    align-items: flex-start;
    flex-direction: column;
  }
  .floor-step-label {
    font-size: 15px;
  }
  .floor-measurement-grid {
    grid-template-columns: 1fr;
  }
  .floor-material-card {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 16px;
  }
  .floor-card-icon {
    width: 44px;
    height: 44px;
  }
  .floor-offcut-size {
    min-height: 96px;
    gap: 13px;
  }
  .floor-offcut-size > svg {
    width: 54px;
  }
  .floor-alert {
    grid-template-columns: 8px 50px minmax(0, 1fr);
    gap: 8px;
  }
  .floor-alert__icon {
    width: 48px;
    height: 48px;
  }
  .floor-alert__icon svg {
    width: 30px;
  }
  .floor-alert__heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .floor-alert__heading h2 {
    font-size: 16px;
  }
  .floor-alert__body .button {
    font-size: 12px;
  }
  .floor-account-screen .pin-dots input {
    height: 48px;
  }
  .floor-account-screen .pin-pad button {
    min-height: 57px;
  }
  .floor-offline-screen h1 {
    font-size: 29px;
  }
  .floor-reconnect-timeline {
    padding-inline-start: 26px;
  }
  .floor-reconnect-timeline > .panel {
    padding: 15px;
  }
  .floor-timeline-icon {
    inset-inline-start: -43px;
  }
  .operator-app > .bottom-nav,
  .operator-stage .bottom-nav {
    min-height: 74px;
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media (max-width: 600px) {
  :root { --page-gutter: 14px; }
  .button { min-height: 42px; }
  .workspace-topbar__brand span { display: none; }
  .workspace-topbar { min-height: 68px; align-items: center; padding: 8px 14px; border-top: 3px solid var(--brand-800); background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(242,246,249,.98)); box-shadow: 0 8px 24px rgba(7,20,47,.055); }
  .workspace-topbar__mobile-brand { display: flex; align-items: center; gap: 0; padding-inline-end: 8px; }
  .workspace-topbar__mobile-brand .brand { margin: 0; }
  .workspace-topbar__mobile-brand .brand img { width: 118px; height: 28px; }
  .workspace-topbar__mobile-brand > strong, .workspace-topbar__mobile-brand > span { display: none; }
  .workspace-topbar__actions { gap: 6px; }
  .workspace-topbar__actions .icon-button:first-child { display: none; }
  .workspace-topbar__tools { min-width: 0; margin-inline-start: auto; }
  .workspace-topbar__tools > .status--compact { position: static; width: 30px; min-width: 30px; height: 30px; min-height: 30px; justify-content: center; padding: 0; overflow: visible; border-color: #90cdb0; background: rgba(220,243,230,.82); }
  .workspace-topbar__tools > .status--compact > span:not(.status__dot) { display: none; }
  .workspace-topbar__tools > .button { display: inline-flex; width: 40px; min-width: 40px; padding-inline: 0; }
  .workspace-topbar__tools > .button > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .workspace--manager .screen { width: 100%; gap: 16px; overflow-x: clip; padding-bottom: 34px; }
  .workspace--manager .screen-header > div:first-child { flex: 1 1 210px; }
  .workspace--manager .screen-header h1 { font-size: 29px; line-height: 1.02; overflow-wrap: anywhere; }
  .workspace--manager .job-header { padding-top: 12px; }
  .workspace--manager .job-header__title { gap: 8px; }
  .workspace--manager .job-header__title > div { display: grid; width: 100%; gap: 5px; }
  .workspace--manager .job-header__title .eyebrow { margin: 0; font-size: 9px; }
  .workspace--manager .job-header__title > .button,
  .workspace--manager .job-header__title > .status { align-self: flex-start; }
  .workspace--manager .job-header h1 { font-size: 22px; line-height: 1.12; overflow-wrap: anywhere; }
  .workspace--manager .job-header .muted { margin: 0; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .workspace--manager .job-header__mobile-context > .title-with-status { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .workspace--manager .job-header__mobile-context > .title-with-status .status { justify-self: start; }
  .workspace--manager .job-header__mobile-action > .button, .workspace--manager .job-header__mobile-action > .status { max-width: 100%; }
  .workspace--manager .job-workflow-tabs { margin-top: 8px; }
  .workspace--manager .tabs--job button { min-height: 48px; padding-inline: 11px; }
  .workspace--manager .job-workflow-tabs__steps .workflow-step { min-width: 38px; }
  .workspace--manager .job-workflow-tabs__utilities { gap: 0; padding-inline-start: 5px; }
  .workspace--manager .job-workflow-tabs__utilities > button { width: 34px; }
  .manager-finance-progress { border-color: var(--ink-200); }
  .manager-finance-grid { gap: 10px; }
  .manager-finance .manager-finance-progress, .manager-finance .manager-finance-invoice { padding: 13px 16px; }
  .manager-finance-progress .money { margin: 9px 0 3px; font-size: 25px; }
  .manager-finance-progress > p:not(.eyebrow) { margin-bottom: 0; font-size: 13px; }
  .manager-finance-progress .progress { margin: 10px 0 6px; }
  .manager-finance-progress .metric-row { padding: 8px 0; }
  .manager-finance-progress > small { margin-top: 6px; font-size: 9px; }
  .manager-finance-invoice .panel__header { align-items: center; flex-direction: row; gap: 8px; margin-bottom: 8px; }
  .manager-finance-invoice .panel__header-action { font-size: 11px; }
  .manager-finance-invoice .metric-row { padding: 7px 0; font-size: 11px; }
  .manager-finance-invoice .metric-row--strong { margin-top: 3px; }
  .manager-finance-invoice .metric-row--strong strong { font-size: 17px; }
  .manager-finance-invoice-body { gap: 10px; }
  .manager-finance-invoice-body > .info-strip,
  .manager-finance-authority .info-strip { gap: 8px; padding: 9px 11px; }
  .manager-finance-invoice-body > .info-strip svg,
  .manager-finance-authority .info-strip svg { width: 18px; height: 18px; }
  .manager-finance-invoice-body > .info-strip strong,
  .manager-finance-authority .info-strip strong { font-size: 12px; }
  .manager-finance-invoice-body > .info-strip span,
  .manager-finance-authority .info-strip span { font-size: 10px; line-height: 1.4; }
  .manager-finance-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .manager-finance-actions .button:first-child { grid-column: 1 / -1; }
  .manager-finance-actions .button { width: 100%; min-height: 42px; padding: 8px; font-size: 12px; white-space: normal; }
  .manager-finance-ledger { position: relative; margin: 0 calc(var(--page-gutter) * -1); padding: 18px var(--page-gutter) max(22px, env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; box-shadow: 0 -12px 34px rgba(14, 36, 61, .13); }
  .manager-finance-ledger::before { position: absolute; top: 9px; left: calc(50% - 22px); width: 44px; height: 5px; border-radius: 999px; background: var(--ink-200); content: ""; }
  .manager-finance-ledger > .panel__header { padding: 8px 0 10px; }
  .manager-finance-ledger > .panel__header h2 { font-size: 18px; }
  .manager-finance-ledger .panel__header-action { color: var(--ink-600); font-size: 10px; text-align: end; }
  .manager-payment-ledger article { grid-template-columns: minmax(105px, .72fr) minmax(0, 1fr) auto; gap: 9px; padding: 11px 6px; }
  .manager-payment-ledger article strong { font-size: 11px; }
  .manager-payment-ledger article span { font-size: 8px; line-height: 1.35; }
  .manager-payment-ledger article > strong { grid-column: 3; justify-self: end; white-space: nowrap; text-align: end; }
  .manager-finance-boundary { display: none; }
  .workspace--manager .job-header .title-with-status { align-items: flex-start; }
  .workspace--manager .job-header .title-with-status .status { max-width: 100%; white-space: normal; }
  .workspace--manager .tabs--job { margin-top: 8px; }
  .workspace--manager .tabs:not(.job-workflow-tabs) button { min-height: 50px; padding-inline: 13px; }
  .workspace--manager > .bottom-nav button { min-height: 68px; }
  .workspace--manager .key-values { grid-template-columns: minmax(105px, .78fr) minmax(0, 1.22fr); }
  .workspace--manager .key-values dd,
  .workspace--manager .metric-row > * { min-width: 0; overflow-wrap: anywhere; }
  .workspace--manager .card-grid--two,
  .workspace--manager .revision-pair,
  .workspace--manager .record-compare { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .revision-card { min-height: auto; }
  .workspace--manager .section-toolbar { align-items: stretch; flex-direction: column; gap: 12px; }
  .workspace--manager .section-toolbar > div:first-child { align-items: flex-start; flex-direction: column; gap: 4px; }
  .workspace--manager .section-toolbar .button-row { width: 100%; }
  .workspace--manager .section-toolbar .button { flex: 1; }
  .workspace--manager .manager-parts-heading { align-items: flex-end; flex-direction: row; }
  .workspace--manager .manager-parts-heading > div:first-child { flex: 1 1 auto; }
  .workspace--manager .manager-parts-heading__actions { flex: 0 0 auto; }
  .workspace--manager .manager-parts-heading__actions > .button { width: auto; min-width: 142px; }
  .workspace--manager .manager-parts-heading__secondary { display: none; }
  .manager-parts-phone-layers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .manager-parts-phone-layers > button { display: grid; min-width: 0; min-height: 116px; grid-template-columns: minmax(0, 1fr); align-content: center; justify-items: start; gap: 7px; padding: 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink-900); text-align: start; cursor: pointer; }
  .manager-parts-phone-layers > button.is-active { border-color: var(--brand-700); background: var(--brand-050); }
  .manager-parts-phone-layers > button > span { display: grid; min-width: 0; gap: 3px; }
  .manager-parts-phone-layers > button > span:last-child { display: none; }
  .manager-parts-phone-layers strong { font-size: 12px; line-height: 1.2; }
  .manager-parts-phone-layers small { display: -webkit-box; overflow: hidden; color: var(--ink-500); font-size: 9px; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .workspace--manager .source-choice-grid { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .optimizer-command { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .workspace--manager .optimizer-command > div:first-child { align-items: flex-start; flex-direction: column; }
  .workspace--manager .optimizer-command > .button { width: 100%; }
  .workspace--manager .optimizer-summary { grid-column: auto; grid-row: auto; }
  .workspace--manager .optimizer-summary .stat { padding: 9px; }
  .workspace--manager .optimizer-run-id { white-space: normal; }
  .workspace--manager .optimizer-command--spacious { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .workspace--manager .optimizer-command--spacious .optimizer-summary { justify-self: stretch; width: 100%; }
  .workspace--manager .optimizer-profile-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .workspace--manager .optimizer-profile-strip__icon { display: none; }
  .workspace--manager .optimizer-profile-strip > div { padding: 10px; border-bottom: 1px solid var(--ink-200); }
  .workspace--manager .optimizer-profile-strip > div:nth-of-type(3),
  .workspace--manager .optimizer-profile-strip > div:nth-of-type(4) { display: none; }
  .workspace--manager .optimizer-quick-row,
  .workspace--manager .optimizer-strategy-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .workspace--manager .optimizer-quick-row .quick-trim { grid-column: auto; }
  .workspace--manager .optimizer-control-group { margin-top: 28px; }
  .workspace--manager .optimizer-advanced-toggle { margin-top: 28px; }
  .workspace--manager .optimizer-advanced-panel { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .workspace--manager .optimizer-advanced-panel .info-strip { grid-column: auto; }
  .workspace--manager .optimizer-ready-panel { min-height: 0; }
  .workspace--manager .board-preview { min-height: 0; }
  .workspace--manager .edge-board-editor { min-height: 290px; }
  .workspace--manager .dimension-board { min-height: 160px; }
  .workspace--manager .manager-parts--approved .parts-workspace { display: flex; flex-direction: column; gap: 14px; }
  .workspace--manager .manager-parts--approved .parts-list { order: 1; }
  .workspace--manager .manager-parts--approved .quick-input { order: 2; }
  .workspace--manager .manager-parts--approved .board-preview { display: none; order: 1; }
  .workspace--manager .manager-parts--approved.manager-parts--preview .parts-list { display: none; }
  .workspace--manager .manager-parts--approved.manager-parts--preview .board-preview { display: block; }
  .workspace--manager .manager-parts-list { max-height: 158px; overflow: hidden; padding: 0; }
  .workspace--manager .manager-parts-list > .panel__header { display: none; }
  .workspace--manager .manager-parts-table__head { display: none; }
  .workspace--manager .manager-parts-table__row { min-width: 0; grid-template-columns: minmax(0, 1fr) 42px minmax(96px, auto) 26px; }
  .workspace--manager .manager-parts-table__row > span { padding: 12px 8px; font-size: 10px; }
  .workspace--manager .manager-parts-table__row > span:nth-child(4),
  .workspace--manager .manager-parts-table__row > span:nth-child(5) { display: none; }
  .workspace--manager .manager-parts-table__row > span:nth-child(6) { grid-column: 4; }
  .workspace--manager .manager-quick-input { position: relative; margin-inline: -14px; padding: 30px 16px max(20px, env(safe-area-inset-bottom)); border-radius: 26px 26px 0 0 !important; box-shadow: 0 -14px 36px rgba(14, 36, 61, .13); }
  .workspace--manager .manager-quick-input::before { position: absolute; top: 10px; left: calc(50% - 22px); width: 44px; height: 5px; border-radius: 999px; background: var(--ink-200); content: ""; }
  .workspace--manager .manager-quick-input > header { align-items: flex-start; }
  .workspace--manager .manager-quick-input > header .eyebrow { display: none; }
  .workspace--manager .manager-quick-input > header h2 { font-size: 20px; }
  .workspace--manager .manager-quick-input > ol { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; margin-block: 22px; }
  .workspace--manager .manager-quick-input > ol li:not(:last-child)::after { top: 13px; bottom: auto; inset-inline-start: calc(50% + 15px); width: calc(100% - 26px); border: 0; border-top: 1px dashed var(--ink-200); }
  .workspace--manager .manager-quick-input > ol button { min-height: 62px; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 7px; text-align: center; }
  .workspace--manager .manager-quick-input > ol button span { font-size: 8px; line-height: 1.2; }
  .workspace--manager .manager-quick-input > ol i { width: 28px; height: 28px; }
  .workspace--manager .manager-quick-field > div:not(.select-field__control),
  .workspace--manager .manager-quick-field > .select-field { min-height: 72px; }
  .workspace--manager .manager-quick-field input { font-size: 30px; }
  .workspace--manager .manager-quick-input > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 18px; }
  .workspace--manager .manager-quick-input > footer .button { width: 100%; padding-inline: 8px; }
  .workspace--manager .manager-board-diagram { min-height: 270px; }
  .workspace--manager .sheet-review,
  .workspace--manager .sheet-list,
  .workspace--manager .cut-steps { padding: 16px; }
  .workspace--manager .cut-board { min-height: 300px; }
  .workspace--manager .production-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 17px 16px; }
  .workspace--manager .production-row > .status { justify-self: start; }
  .workspace--manager .offcut-grid { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--manager .stat-grid .stat { padding: 12px; border-inline-end: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); }
  .workspace--manager .stat-grid .stat:nth-child(2n) { border-inline-end: 0; }
  .workspace--manager .stat-grid .stat:nth-last-child(-n+2) { border-bottom: 0; }
  .workspace--manager .stat-grid .stat:first-child { padding-inline-start: 12px; }
  .manager-inventory .manager-desktop-table,
  .manager-records .manager-desktop-table { display: none; }
  .manager-inventory .inventory-desktop-actions { display: none; }
  .manager-inventory .inventory-phone-filter { display: flex; }
  .manager-inventory .inventory-mobile-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
  .manager-inventory .inventory-mobile-summary .stat { min-width: 0; padding: 14px 8px; border-inline-end: 1px solid var(--ink-200); text-align: center; }
  .manager-inventory .inventory-mobile-summary .stat:last-child { border-inline-end: 0; }
  .manager-inventory .inventory-mobile-summary .stat > span,
  .manager-inventory .inventory-mobile-summary .stat > small { font-size: 9px; }
  .manager-inventory .inventory-mobile-summary .stat > strong { font-size: 18px; }
  .manager-inventory .inventory-mobile-links { display: grid; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
  .manager-inventory .inventory-mobile-links button { display: grid; min-height: 52px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--ink-900); text-align: start; }
  .manager-inventory .inventory-mobile-links button:last-child { border-bottom: 0; }
  .manager-inventory .inventory-mobile-links button.is-warning svg { color: var(--amber-700); }
  .manager-inventory .inventory-mobile-links button strong { color: var(--ink-600); font-size: 11px; font-weight: 520; }
  .manager-inventory .inventory-mobile-adjust { display: inline-flex; width: 100%; min-height: 54px; }
  .manager-inventory .inventory-detail { position: relative; margin: 4px calc(var(--page-gutter) * -1) 0; padding: 32px var(--page-gutter) max(24px, env(safe-area-inset-bottom)); border-radius: 26px 26px 0 0; box-shadow: 0 -14px 36px rgba(14, 36, 61, .13); }
  .manager-inventory .inventory-detail::before { position: absolute; top: 10px; left: calc(50% - 22px); width: 44px; height: 5px; border-radius: 999px; background: var(--ink-200); content: ""; }
  .manager-inventory .inventory-detail .inventory-ledger { overflow: hidden; }
  .manager-inventory .inventory-layout > aside { padding-top: 4px; }
  .manager-mobile-list { display: block; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
  .manager-mobile-list__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 15px; border-bottom: 1px solid var(--ink-200); }
  .manager-mobile-list__header span { color: var(--ink-600); font-size: 12px; }
  .manager-mobile-list > button { display: grid; width: 100%; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--ink-900); text-align: start; cursor: pointer; }
  .manager-mobile-list > button:last-child { border-bottom: 0; }
  .manager-mobile-list > button.is-selected { background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
  .manager-mobile-list > button > span { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
  .manager-mobile-list > button small { color: var(--ink-600); font-size: 11px; overflow-wrap: anywhere; }
  .manager-mobile-list__value { align-items: flex-end; max-width: 112px; text-align: end; }
  .manager-mobile-list__value strong { overflow-wrap: anywhere; font-size: 12px; }
  .manager-mobile-list--records > button { grid-template-columns: auto minmax(0, 1fr); }
  .manager-mobile-list--records .manager-mobile-list__value { grid-column: 2; align-items: flex-start; max-width: none; text-align: start; }
  .workspace--manager .notification-list .segmented { width: 100%; overflow-x: auto; }
  .workspace--manager .notification-list .segmented button { flex: 1 0 auto; }
  .workspace--manager .handoff-identities { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .handoff-identities .metric-row { padding-inline: 0; }
  .workspace--manager .handoff-layout .button,
  .workspace--manager .offline-layout .button { width: 100%; }
  .manager-jobs .job-row { grid-template-columns: minmax(0, 1fr) auto; gap: 11px 8px; }
  .manager-jobs .job-row__main,
  .manager-jobs .job-row__action { grid-column: 1 / -1; }
  .manager-jobs .job-row > .status { justify-self: end; max-width: 148px; white-space: normal; }
  .manager-jobs .job-row > span { min-width: 0; }
  .manager-request-review .screen-header > div:first-child { flex-basis: 100%; }
  .manager-request-review .screen-header > .status { order: -1; }
  .manager-request-decisions { grid-template-columns: minmax(0, 1fr); }
  .manager-request-decisions > button { min-height: 64px; }
  .manager-route--manager-job-finance .content-grid--aside > aside { order: -1; }
  .manager-route--manager-job-finance .content-grid--aside > aside .panel { border-color: var(--brand-200); }
  .manager-route--manager-job-finance .content-grid--aside > section > .button-row .button { flex: 1 1 100%; }
  .manager-route--manager-job-output .action-row { align-items: stretch; flex-direction: column; }
  .manager-route--manager-job-output .action-row > .button { width: 100%; }
  .drawer__header, .drawer__body { padding-inline: 16px; }
  .drawer__footer { padding: 12px 16px; }
  .drawer-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .drawer-actions .button { width: 100%; padding-inline: 10px; }
  .drawer .form-grid--two { grid-template-columns: minmax(0, 1fr); }
  .quick-part-form .form-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--manager .trim-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace--manager .setting-toggle { grid-template-columns: minmax(0, 1fr) auto; }
  .workspace--manager .setting-toggle > .status { grid-column: 1; grid-row: 2; }
  .workspace--manager .setting-toggle > button { grid-column: 2; grid-row: 1 / span 2; }
  .workspace--producer .screen { width: 100%; min-width: 0; max-width: 100%; grid-template-columns: minmax(0, 1fr); gap: 16px; overflow-x: clip; padding-bottom: 34px; }
  .workspace--producer .screen-header { flex-wrap: wrap; gap: 12px; }
  .workspace--producer .screen-header > div { min-width: 0; max-width: 100%; }
  .workspace--producer .screen-header > .status { max-width: 100%; white-space: normal; }
  .workspace--producer .stepper li { min-width: 58px; gap: 6px; font-size: 10px; }
  .workspace--producer .stepper li:not(:last-child)::after { inset-inline-start: 58%; width: 84%; }
  .workspace--producer .stepper li > span { width: 30px; height: 30px; }
  .workspace--producer .data-table { overscroll-behavior-inline: contain; }
  .workspace--producer .data-table__row { min-width: 640px; }
  .workspace--producer .key-values { grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr); }
  .workspace--producer .key-values dd { min-width: 0; }
  .workspace--producer > .bottom-nav button { min-height: 68px; }
  .attention-row { align-items: stretch; flex-direction: column; }
  .attention-row > div { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .attention-row > .button { width: 100%; }
  .project-list > [role="button"] { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 16px; }
  .project-list > [role="button"] > div:first-child { min-width: 0; }
  .project-list__step, .project-list > [role="button"] > .button { grid-column: 1 / -1; }
  .project-list > [role="button"] > .button { width: 100%; }
  .project-hero { gap: 18px; padding: 20px; }
  .project-hero > .stat { padding-top: 18px; border-top: 1px solid var(--ink-200); }
  .finance-mobile-back { margin-bottom: -2px; }
  .finance-mobile-back .back-link { min-height: 44px; }
  .finance-header { align-items: flex-end; }
  .finance-header > div { min-width: 0; }
  .finance-total-hero { align-items: flex-start; flex-direction: column; gap: 12px; }
  .finance-total-hero .money { font-size: 27px; }
  .finance-total-hero > span { align-self: flex-start; }
  .finance-invoice-card .panel__header { align-items: flex-start; flex-direction: column; gap: 5px; }
  .finance-invoice-card .panel__header-action { color: var(--ink-600); font-size: 12px; }
  .finance-invoice-actions .button { min-height: 48px; }
  .finance-line-items-mobile article { grid-template-columns: minmax(0, 1fr) minmax(110px, .65fr); gap: 12px; padding: 14px 12px; }
  .finance-stat-grid .stat > strong { font-size: 16px; }
  .finance-document-selection { grid-template-columns: minmax(0, 1fr) auto; }
  .producer-offline .offline-hero { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; padding: 20px; }
  .producer-offline .offline-hero > div { min-width: 0; }
  .producer-offline .offline-hero h1 { font-size: 27px; }
  .producer-offline .offline-hero .status { grid-column: 1 / -1; max-width: 100%; white-space: normal; }
  .page-header { padding-top: 22px; }
  .page-header__eyebrow { font-size: 9px; }
  .page-header h1 { font-size: 30px; }
  .metric-grid, .summary-grid, .material-grid { grid-template-columns: 1fr; }
  .panel, .card { padding: 16px; }
  .public-topbar__actions .button--ghost { display: none; }
  .public-hero { padding-inline: 18px; }
  .public-hero h1 { font-size: clamp(42px, 13vw, 66px); }
  .public-hero__visual { min-height: 300px; }
  .public-section { padding: 62px 18px; }
  .public-cta { margin: 18px; padding: 34px 20px; }
  .modal { width: calc(100vw - 24px); max-height: calc(100vh - 24px); padding: 20px; }
  .job-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .job-row__main { grid-column: 1 / -1; }
  .job-row__action { grid-column: 1 / -1; }
  .project-context { padding-top: 18px; }
  .project-context h1 { font-size: 28px; }
  .operator-stage { padding: 0; background: var(--paper); }
  .operator-app { width: 100%; min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
  .operator-header { min-height: 84px; padding: 14px 18px; }
  .operator-route-label { padding-inline: 18px; }
  .operator-screen { padding: 22px 18px; }
  .operator-screen h1 { font-size: 30px; }
  .operator-screen__header { flex-direction: column; }
  .operator-app > .bottom-nav, .operator-stage .bottom-nav { position: fixed; }
  .pin-pad button { min-height: 58px; }
  .offcut-outcome { grid-template-columns: 72px 1fr; }
  .scan-result { align-items: flex-start; flex-direction: column; }
}

/* Approved Manager Records & Export · ART-031 */
.manager-records { gap: 14px; }
.records-header .status { gap: 6px; }
.records-filterbar { display: grid; grid-template-columns: minmax(210px, 1.35fr) repeat(4, minmax(118px, .72fr)) auto; align-items: end; gap: 8px; padding: 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.records-filterbar .search { min-width: 0; }
.records-filterbar .select-field { gap: 4px; font-size: 10px; }
.records-filterbar .select-field select { min-height: 42px; padding-block: 9px; font-size: 12px; }
.records-filterbar > .button { min-height: 42px; }
.records-layout--bound { grid-template-columns: minmax(430px, 1.18fr) minmax(285px, .68fr) minmax(330px, .78fr); gap: 12px; align-items: start; }
.records-layout--bound .data-table { border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.records-layout--bound .data-table__row { --columns: 6; min-width: 0; grid-template-columns: minmax(112px, .92fr) minmax(126px, .96fr) minmax(128px, 1.05fr) minmax(148px, 1.2fr) minmax(76px, .6fr) minmax(68px, .52fr); }
.records-layout--bound .data-table__row:not(.data-table__header):hover { background: var(--brand-050); }
.records-layout--bound .data-table__row > span:nth-child(2) { font-family: var(--font-mono); font-size: 10px; overflow-wrap: anywhere; }
.records-result-count { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink-600); font-size: 11px; }
.records-detail { display: grid; align-content: start; gap: 12px; box-shadow: none; }
.records-detail > p { margin: 0; color: var(--ink-700); font-size: 13px; line-height: 1.5; }
.records-detail-tabs { display: flex; gap: 22px; border-bottom: 1px solid var(--ink-200); color: var(--ink-600); font-size: 12px; }
.records-detail-tabs > * { padding: 8px 0 10px; }
.records-detail-tabs strong { border-bottom: 2px solid var(--brand-700); color: var(--brand-900); }
.records-detail .key-values { grid-template-columns: minmax(112px, .8fr) minmax(0, 1.2fr); }
.records-detail .key-values dt,
.records-detail .key-values dd { padding-block: 8px; font-size: 11px; }
.records-export-layer { min-width: 0; }
.records-export-builder { display: grid; align-content: start; gap: 11px; padding: 16px; box-shadow: none; }
.records-export-builder > p { margin: 0; }
.records-export-close { display: grid; width: 32px; height: 32px; place-items: center; border: 0; background: transparent; color: var(--ink-700); font-size: 25px; line-height: 1; cursor: pointer; }
.records-export-scope { padding: 7px 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.records-export-scope .metric-row { padding-block: 7px; font-size: 11px; }
.records-package-option { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); cursor: pointer; }
.records-package-option input { width: 18px; height: 18px; accent-color: var(--brand-700); }
.records-package-option svg { color: var(--green-700); }
.records-package-option span { display: grid; gap: 2px; }
.records-package-option strong { font-size: 12px; }
.records-package-option small { color: var(--ink-600); font-size: 10px; }
.records-redaction-preview { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid var(--ink-400); border-radius: var(--radius-xs); }
.records-redaction-preview > div { display: grid; gap: 3px; }
.records-redaction-preview strong { font-size: 12px; }
.records-redaction-preview span { color: var(--ink-600); font-size: 10px; }
.records-export-boundaries { display: grid; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.records-export-boundaries span { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--ink-150); color: var(--ink-700); font-size: 10px; }
.records-export-boundaries span:last-child { border-bottom: 0; }
.records-export-boundaries svg { color: var(--brand-700); }
.records-create-export { width: 100%; min-height: 44px; }
.records-export-jobs { display: grid; gap: 0; margin-top: 2px; border-top: 1px solid var(--ink-200); }
.records-export-jobs .panel__header { padding-block: 11px 7px; }
.records-export-jobs article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--ink-150); }
.records-export-jobs article > div { display: grid; min-width: 0; gap: 2px; }
.records-export-jobs article strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.records-export-jobs article span,
.records-export-jobs article small { color: var(--ink-600); font-size: 9px; }
.records-export-jobs article .button { min-height: 34px; padding: 7px 9px; font-size: 10px; }
.records-export-receipt { display: grid; gap: 5px; padding-top: 8px; border-top: 1px solid var(--ink-200); }
.records-export-receipt .panel__header-title { overflow-wrap: anywhere; font-family: var(--font-mono); font-size: 12px; }
.records-export-receipt .key-values dt,
.records-export-receipt .key-values dd { padding-block: 7px; font-size: 10px; }
.records-export-tabs { display: none; }

/* ART-029 · authoritative Manager Production coordination */
.manager-production { gap: 16px; }
.production-run-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 0 16px; border-bottom: 1px solid var(--ink-200); }
.production-run-header__identity { min-width: 0; }
.production-run-header__identity h1 { margin: 3px 0 6px; font-size: clamp(25px, 2.4vw, 34px); }
.production-run-header__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 13px; margin: 0; color: var(--ink-700); font-size: 12px; }
.production-run-status { display: contents; }
.production-run-header__actions { display: flex; min-width: min(440px, 42%); align-items: flex-end; justify-content: flex-end; gap: 10px; }
.production-run-header__actions .select-field { min-width: 210px; }
.production-mobile-back, .production-mobile-summary, .production-mobile-layer, .production-manager-badge { display: none; }
.production-phase-strip.production-phase-strip--mobile { display: none; }
.production-section-tabs { display: none; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid var(--ink-200); }
.production-section-tabs button { display: grid; min-height: 54px; place-items: center; gap: 1px; padding: 6px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--ink-600); cursor: pointer; }
.production-section-tabs button.is-active { border-bottom-color: var(--brand-700); color: var(--brand-800); font-weight: 700; }
.production-section-tabs small { color: var(--red-700); font-size: 9px; }
.production-phase-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
.production-phase { display: flex; min-width: 0; align-items: flex-start; gap: 10px; padding: 15px 17px; border-inline-end: 1px solid var(--ink-200); }
.production-phase:last-child { border-inline-end: 0; }
.production-phase__marker { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; color: var(--ink-500); }
.production-phase > div { display: grid; min-width: 0; gap: 3px; }
.production-phase strong { color: var(--ink-950); font-size: 14px; }
.production-phase span, .production-phase small { color: var(--ink-600); font-size: 10px; overflow-wrap: anywhere; }
.production-phase--complete .production-phase__marker, .production-phase--complete > div > span { color: var(--green-700); }
.production-phase--in_progress { box-shadow: inset 0 -3px var(--brand-700); }
.production-phase--in_progress .production-phase__marker { color: var(--brand-800); }
.production-phase--at_risk .production-phase__marker, .production-phase--at_risk > div > span { color: var(--amber-700); }
.production-immutability { display: none; }
.manager-production-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(235px, .27fr); align-items: start; gap: 16px; }
.manager-production-main, .manager-production-aside { display: grid; min-width: 0; gap: 16px; }
.production-task-panel { padding: 0; overflow: hidden; }
.production-task-panel > .panel__header { margin: 0; padding: 17px 18px; border-bottom: 1px solid var(--ink-200); }
.production-task-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(132px, .4fr) auto 42px; align-items: end; gap: 9px; padding: 12px 16px; border-bottom: 1px solid var(--ink-200); }
.production-task-updated { align-self: center; justify-self: end; color: var(--ink-600); font-size: 10px; white-space: nowrap; }
.production-task-table { overflow-x: auto; }
.production-task-table__header, .production-task-row { display: grid; min-width: 760px; grid-template-columns: minmax(128px, 1fr) minmax(150px, 1.18fr) minmax(125px, .92fr) minmax(145px, 1.03fr) minmax(135px, .92fr); gap: 12px; align-items: start; }
.production-task-table__header { min-height: 44px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--ink-200); color: var(--ink-700); font-size: 10px; font-weight: 700; }
.production-task-row { min-height: 112px; align-items: center; padding: 15px 16px; border-bottom: 1px solid var(--ink-200); }
.production-task-row:last-child { border-bottom: 0; }
.production-task-row > div { min-width: 0; }
.production-task-identity, .production-task-readiness, .production-task-evidence { display: grid; gap: 5px; }
.production-task-identity strong, .production-task-assignee strong, .production-task-evidence strong { color: var(--ink-950); font-size: 12px; }
.production-task-identity span, .production-task-assignee span, .production-task-readiness > span, .production-task-progress > span, .production-task-evidence span { color: var(--ink-600); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.production-task-assignee { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; }
.production-task-assignee > div { display: grid; gap: 3px; }
.production-task-assignee button { justify-self: start; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--brand-800); font-size: 10px; cursor: pointer; }
.production-avatar { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--ink-100); color: var(--ink-800); font-size: 9px; font-weight: 750; }
.production-task-readiness .status { justify-self: start; }
.production-task-progress { display: grid; gap: 6px; }
.production-task-progress > div { display: flex; justify-content: space-between; gap: 8px; font-size: 10px; }
.production-task-progress .progress { gap: 0; }
.production-task-footer { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 16px; color: var(--ink-600); font-size: 9px; }
.production-review-list { display: grid; }
.production-review-list button { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 11px 0; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--amber-700); text-align: start; cursor: pointer; }
.production-review-list button:last-child { border-bottom: 0; }
.production-review-list button span { display: grid; gap: 4px; color: var(--ink-900); }
.production-review-list button small { color: var(--ink-600); font-size: 9px; }
.production-review-list .production-review-all { display: flex; min-height: 46px; justify-content: space-between; padding-inline: 2px; color: var(--brand-800); font-size: 10px; font-weight: 700; }
.production-handoff-panel .key-values { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
.production-handoff-panel .key-values dd { min-width: 0; }
.production-handoff-panel > .button { width: 100%; margin-top: 13px; }
.production-run-controls { display: grid; gap: 8px; margin-bottom: 12px; }
.production-run-controls .button { width: 100%; }
.production-history-panel .timeline { margin-top: 6px; }
.production-history-mobile { display: none; }
.production-history-table { margin: 0 -20px -20px; border-top: 1px solid var(--ink-200); }
.production-history-table__header,
.production-history-table__row { display: grid; grid-template-columns: .75fr .75fr 1fr 1fr .95fr 1.55fr; gap: 10px; align-items: center; min-height: 38px; padding: 7px 16px; border-bottom: 1px solid var(--ink-150); }
.production-history-table__header { min-height: 34px; color: var(--ink-700); font-size: 9px; font-weight: 700; }
.production-history-table__row:last-child { border-bottom: 0; }
.production-history-table__row strong,
.production-history-table__row span { min-width: 0; overflow-wrap: anywhere; color: var(--ink-700); font-size: 9px; }
.production-history-table__row strong { color: var(--ink-950); }

@media (min-width: 901px) {
  .workspace--manager-production { --context-rail: 220px; }
  .workspace--manager-production .context-rail--production { padding: 25px 18px; }
  .production-rail-card { display: grid; width: 100%; gap: 6px; padding: 18px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
  .production-rail-card strong { font-size: 15px; }
  .production-rail-card span { color: var(--ink-700); font-size: 12px; }
  .production-rail-card small { margin-top: 8px; padding-top: 13px; border-top: 1px solid var(--ink-200); color: var(--ink-700); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
  .workspace--manager-production .manager-production { padding-inline: 24px; }
  .workspace--manager-production .manager-production-layout { grid-template-columns: minmax(0, 1fr) 247px; gap: 27px; }
  .workspace--manager-production .production-phase { min-height: 118px; align-items: center; padding-block: 20px; }
  .workspace--manager-production .production-exception-panel { min-height: 356px; }
}

@media (max-width: 1500px) and (min-width: 901px) {
  .records-layout--bound { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .72fr); }
  .records-export-layer { grid-column: 1 / -1; }
  .records-export-builder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .records-export-builder > .panel__header,
  .records-export-builder > p,
  .records-export-builder > .eyebrow,
  .records-export-builder > .records-create-export,
  .records-export-builder > .records-export-jobs,
  .records-export-builder > .records-export-receipt { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .workspace--manager-records { padding-bottom: 0; }
  .workspace--manager-records > .bottom-nav { display: none; }
  .workspace--manager-records .workspace-content { min-height: calc(100vh - 68px); padding-bottom: 26px; }
  .manager-records { gap: 12px; }
  .manager-records > .info-strip--info { display: none; }
  .records-header { align-items: flex-end; }
  .records-header h1 { font-size: 32px; }
  .records-header > div:first-child p:last-child { display: none; }
  .records-header .button-row { width: auto; }
  .records-header .button-row .button { width: auto; }
  .records-filterbar { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-inline: -2px; padding: 0; border: 0; background: transparent; }
  .records-filterbar .search { grid-column: 1 / -1; min-height: 46px; }
  .records-filterbar .select-field { gap: 0; }
  .records-filterbar .select-field > span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .records-filterbar .select-field select { min-height: 46px; padding: 8px 24px 8px 9px; font-size: 10px; }
  .records-filterbar .select-field__control svg { inset-inline-end: 7px; width: 13px; }
  .records-filterbar > .button { grid-column: 4; min-height: 46px; padding-inline: 7px; font-size: 10px; }
  .records-filterbar > .select-field:nth-of-type(4) { display: none; }
  .records-layout--bound { display: block; }
  .records-layout--bound > section { gap: 8px; }
  .manager-records .manager-mobile-list--records { display: block; max-height: 480px; overflow-y: auto; }
  .manager-records .manager-mobile-list--records > button { grid-template-columns: auto minmax(0, 1fr) minmax(88px, auto); padding: 11px 10px; }
  .manager-records .manager-mobile-list--records > button > svg { color: var(--brand-700); }
  .manager-records .manager-mobile-list--records .manager-mobile-list__value { grid-column: 3; align-items: flex-end; max-width: 112px; text-align: end; }
  .manager-records .manager-mobile-list--records .manager-mobile-list__value strong { max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .manager-records .manager-mobile-list--records .manager-mobile-list__value small { display: flex; align-items: center; gap: 5px; }
  .manager-records .manager-mobile-list--records .dot { width: 7px; height: 7px; margin: 0; }
  .manager-records .records-result-count,
  .manager-records .records-detail { display: none; }
  .records-layout--bound > .records-export-layer { position: fixed; z-index: 70; inset: 0; display: flex; align-content: normal; align-items: flex-end; gap: 0; background: rgba(13, 32, 49, .12); }
  .records-export-builder { position: relative; width: 100%; max-height: min(62vh, 540px); overflow-y: auto; padding: 28px 20px max(10px, env(safe-area-inset-bottom)); border: 1px solid var(--ink-200); border-radius: 26px 26px 0 0; background: var(--paper); box-shadow: 0 -18px 44px rgba(14, 36, 61, .16); }
  .records-export-builder::before { position: absolute; top: 10px; left: calc(50% - 22px); width: 44px; height: 5px; border-radius: 999px; background: var(--ink-200); content: ""; }
  .records-export-builder .panel__header-title { font-size: 21px; }
  .records-builder-intro { display: none; }
  .records-export-scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .records-export-scope .metric-row:first-child { grid-column: 1 / -1; }
  .records-export-scope .metric-row { display: grid; gap: 3px; padding: 9px; border-bottom: 0; }
  .records-export-scope .metric-row strong { text-align: start; }
  .records-package-option { min-height: 54px; padding-block: 8px; }
  .records-redaction-preview { min-height: 54px; padding-block: 8px; }
  .records-export-boundaries span { padding-block: 6px; }
  .records-create-export { min-height: 48px; font-size: 15px; }
  .records-export-builder .records-export-jobs,
  .records-export-builder .records-export-receipt,
  .records-export-loading { display: none; }
  .records-export-builder--jobs > :not(.panel__header):not(.records-export-jobs):not(.records-export-tabs),
  .records-export-builder--receipt > :not(.panel__header):not(.records-export-receipt):not(.records-export-tabs) { display: none; }
  .records-export-builder--jobs .records-export-jobs,
  .records-export-builder--receipt .records-export-receipt { display: grid; margin-top: 5px; }
  .records-export-tabs { position: sticky; bottom: -10px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; margin: 5px -20px -10px; padding: 9px 8px 5px; border-top: 1px solid var(--ink-200); background: rgba(255,255,255,.98); }
  .records-export-tabs button { min-height: 42px; padding: 4px 2px; border: 0; background: transparent; color: var(--ink-700); font-size: 8px; line-height: 1.15; cursor: pointer; }
  .records-export-tabs button.is-active { color: var(--brand-800); font-weight: 750; }
  .records-export-tabs button:disabled { color: var(--ink-400); cursor: not-allowed; }
}

@media (max-width: 600px) {
  .workspace--manager-production { padding-bottom: 0; }
  .workspace--manager-production > .bottom-nav { display: none; }
  .workspace--manager-production .workspace__main { min-height: calc(100dvh - 68px); }
  .workspace--manager-production .workspace__content { padding: 0; }
  .workspace--manager-production .manager-production { min-height: calc(100dvh - 68px); gap: 12px; padding: 18px 14px 46vh; }
  .production-run-header { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; min-height: 132px; padding: 8px 0 13px; border: 0; }
  .production-mobile-back { display: grid; width: 30px; height: 36px; place-items: center; padding: 0; border: 0; background: transparent; color: var(--ink-950); cursor: pointer; }
  .production-run-header__identity { padding-inline-end: 132px; }
  .production-run-header__identity .eyebrow { display: none; }
  .production-run-header__identity h1 { margin: 1px 0 6px; font-size: 17px; line-height: 1.15; }
  .production-run-header__meta { gap: 3px 5px; font-size: 7.5px; }
  .production-run-status { display: block; flex: 0 0 100%; }
  .production-run-header__meta .status { min-height: 21px; margin-top: 2px; padding: 2px 7px; font-size: 8px; }
  .production-manager-badge { display: inline-flex; width: fit-content; align-items: center; gap: 5px; margin-top: 8px; padding: 6px 9px; border: 1px solid var(--amber-500); border-radius: var(--radius-xs); color: var(--amber-700); font-size: 9px; font-weight: 650; }
  .production-run-header__actions { position: absolute; top: 8px; inset-inline-end: 0; display: block; min-width: 0; width: 126px; }
  .production-run-header__actions .select-field { display: none; }
  .production-run-header__actions .button { width: 100%; min-height: 52px; padding: 8px; font-size: 10px; line-height: 1.25; }
  .production-section-tabs { display: grid; margin-inline: -14px; }
  .production-section-tabs button { min-height: 62px; gap: 2px; padding: 6px 2px; font-size: 9px; }
  .production-section-tabs small { font-size: 8px; }
  .production-phase-strip--desktop { display: none; }
  .production-phase-strip.production-phase-strip--mobile { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .production-phase { display: grid; justify-items: center; gap: 3px; padding: 11px 3px; text-align: center; }
  .production-phase__marker { width: 24px; height: 24px; flex-basis: 24px; }
  .production-phase strong { font-size: 10px; }
  .production-phase span { font-size: 8px; }
  .production-phase small { display: none; }
  .production-immutability { display: flex; }
  .manager-production > .info-strip { gap: 8px; padding: 10px 11px; }
  .manager-production > .info-strip strong { font-size: 11px; }
  .manager-production > .info-strip span { font-size: 9px; line-height: 1.45; }
  .production-mobile-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .production-mobile-summary button { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 62px; padding: 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-800); text-align: start; cursor: pointer; }
  .production-mobile-summary button > span { display: grid; gap: 3px; }
  .production-mobile-summary strong { color: var(--ink-950); font-size: 11px; }
  .production-mobile-summary small { color: var(--ink-600); font-size: 8px; }
  .manager-production-layout { display: none; }
  .production-mobile-layer { position: fixed; z-index: 75; inset-inline: 0; bottom: 0; display: none; max-height: 45dvh; overflow: hidden; border: 1px solid var(--ink-200); border-radius: 24px 24px 0 0; background: var(--paper); box-shadow: 0 -16px 40px rgba(14, 36, 61, .16); }
  .production-mobile-layer.is-open { display: flex; flex-direction: column; }
  .production-mobile-layer__handle { width: 44px; height: 5px; flex: 0 0 5px; margin: 9px auto 2px; border-radius: 999px; background: var(--ink-200); }
  .production-mobile-layer > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 16px; border-bottom: 1px solid var(--ink-150); }
  .production-mobile-layer > header > div { display: flex; min-width: 0; align-items: baseline; gap: 7px; }
  .production-mobile-layer > header strong { font-size: 15px; }
  .production-mobile-layer > header span { overflow: hidden; color: var(--ink-600); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
  .production-mobile-layer__body { overflow-y: auto; }
  .production-mobile-layer__body > .panel { border: 0; border-radius: 0; box-shadow: none; }
  .production-mobile-layer__body .production-task-panel > .panel__header { display: none; }
  .production-task-toolbar, .production-task-table__header { display: none; }
  .production-task-table { display: grid; gap: 6px; padding: 0 9px 10px; overflow: visible; }
  .production-task-row { min-width: 0; min-height: 108px; grid-template-columns: minmax(72px, 1.03fr) minmax(82px, 1.16fr) minmax(57px, .8fr) minmax(68px, .95fr) minmax(58px, .82fr); gap: 7px; padding: 12px 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
  .production-task-row:last-child { border-bottom: 1px solid var(--ink-200); }
  .production-task-identity strong, .production-task-assignee strong, .production-task-evidence strong { font-size: 8px; line-height: 1.3; }
  .production-task-identity span, .production-task-assignee span, .production-task-readiness > span, .production-task-progress > span, .production-task-evidence span { font-size: 6.8px; line-height: 1.35; }
  .production-task-assignee { display: block; }
  .production-avatar { display: none; }
  .production-task-assignee button { margin-top: 4px; font-size: 7px; }
  .production-task-readiness .status { padding: 3px 5px; font-size: 7px; }
  .production-task-progress { gap: 4px; }
  .production-task-progress > div { display: grid; gap: 2px; font-size: 7px; }
  .production-task-progress .progress__track { height: 4px; }
  .production-task-footer { display: none; }
  .production-exception-panel, .production-handoff-panel, .production-history-panel { padding: 14px 16px; }
  .production-review-list button { min-height: 54px; }
  .production-history-panel .timeline__item { min-height: 54px; }
  .production-history-panel .timeline__item > div span { font-size: 8px; }
  .production-history-table { display: none; }
  .production-history-mobile { display: block; }
}

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

[dir="rtl"] .mono,
[dir="rtl"] .money,
[dir="rtl"] code,
[dir="rtl"] time { direction: ltr; unicode-bidi: isolate; text-align: start; }
[dir="rtl"] .jobs-summary .stat__value,
[dir="rtl"] .job-row > :nth-child(4) { direction: ltr; unicode-bidi: isolate; }

/* Approved Manager Notifications · ART-032 */
.manager-notifications { align-content: start; gap: 0; padding: 0; }
.manager-notifications-header { display: flex; min-height: 122px; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 24px 26px 18px; border-bottom: 1px solid var(--ink-200); background: var(--paper); }
.manager-notifications-header > div:first-child { min-width: 0; }
.manager-notifications-header h1 { margin: 3px 0 4px; font-size: clamp(27px, 2.2vw, 34px); }
.manager-notifications-header p { margin: 0; color: var(--ink-600); font-size: 12px; }
.manager-notification-counters { display: flex; align-items: center; gap: 22px; }
.manager-notification-counters > span { display: grid; grid-template-columns: auto auto; align-items: center; gap: 5px 8px; color: var(--ink-800); font-size: 12px; }
.manager-notification-counters strong { grid-column: 2; color: var(--ink-950); font-size: 21px; line-height: 1; text-align: center; }
.manager-notice-dot { display: inline-block; width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: var(--ink-500); }
.manager-notice-dot--action_required { background: var(--red-700); }
.manager-notice-dot--unread { background: var(--brand-800); }
.manager-notice-dot--read { background: var(--ink-500); }
.manager-notification-state-tabs { display: flex; gap: 8px; padding: 13px 26px 7px; background: var(--paper); }
.manager-notification-state-tabs button { display: flex; min-height: 40px; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-800); font-size: 12px; cursor: pointer; }
.manager-notification-state-tabs button.is-active { border-color: var(--brand-800); background: var(--brand-800); color: white; }
.manager-notification-state-tabs strong { font-size: 11px; }
.manager-notification-category-tabs { display: flex; gap: 6px; padding: 5px 26px 14px; border-bottom: 1px solid var(--ink-200); background: var(--paper); }
.manager-notification-category-tabs button { display: flex; min-height: 34px; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-700); font-size: 10px; cursor: pointer; }
.manager-notification-category-tabs button.is-active { border-color: var(--brand-500); background: var(--brand-050); color: var(--brand-900); }
.manager-notification-category-tabs strong { color: inherit; }
.manager-notifications-layout { display: grid; min-height: calc(100vh - 262px); grid-template-columns: minmax(290px, .78fr) minmax(440px, 1.32fr) minmax(210px, .58fr); align-items: stretch; background: var(--paper); }
.manager-notification-inbox { display: flex; min-width: 0; flex-direction: column; border-inline-end: 1px solid var(--ink-200); }
.manager-notification-group > header { display: flex; min-height: 39px; align-items: center; justify-content: space-between; padding: 8px 18px; border-bottom: 1px solid var(--ink-150); background: var(--ink-050); font-size: 11px; }
.manager-notification-group > header span { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--ink-100); color: var(--ink-700); font-size: 9px; }
.manager-notice-row { position: relative; display: grid; min-height: 77px; grid-template-columns: 34px 9px minmax(0, 1fr) auto 16px; align-items: center; gap: 8px; padding: 11px 14px; border: 0; border-bottom: 1px solid var(--ink-150); background: var(--paper); color: var(--ink-900); text-align: start; cursor: pointer; }
.manager-notice-row::before { position: absolute; inset-block: 0; inset-inline-start: 0; width: 3px; background: transparent; content: ""; }
.manager-notice-row.is-selected { background: linear-gradient(90deg, var(--brand-050), var(--paper)); }
.manager-notice-row.is-selected::before { background: var(--brand-700); }
.manager-notice-row.is-read { opacity: .72; }
.manager-notice-row__icon { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); color: var(--brand-900); }
.manager-notice-row__copy { display: grid; min-width: 0; gap: 6px; }
.manager-notice-row__copy > span { display: flex; min-width: 0; align-items: center; gap: 8px; }
.manager-notice-row__copy strong { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.manager-notice-row__copy > small { overflow: hidden; color: var(--ink-600); font-size: 9px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.manager-notice-row time { color: var(--ink-700); font-size: 9px; white-space: nowrap; }
.manager-notice-row > svg { color: var(--ink-600); }
.manager-notice-tag { flex: 0 0 auto; padding: 3px 6px; border: 1px solid var(--ink-300); border-radius: 3px; color: var(--brand-800); font-size: 8px; font-weight: 650; }
.manager-notice-tag--required { border-color: var(--red-500); color: var(--red-700); }
.manager-notification-inbox__actions { display: flex; min-height: 51px; align-items: center; justify-content: space-between; gap: 4px; margin-top: auto; padding: 6px 10px; border-top: 1px solid var(--ink-200); }
.manager-notification-inbox__actions .button { min-height: 38px; padding-inline: 8px; color: var(--ink-700); font-size: 9px; }
.manager-notice-detail { display: grid; min-width: 0; align-content: start; border-inline-end: 1px solid var(--ink-200); background: var(--paper); }
.manager-notice-detail:not(.is-open) { display: none; }
.manager-notice-detail__handle { display: none; }
.manager-notice-detail__header { display: flex; min-height: 81px; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-bottom: 1px solid var(--ink-200); }
.manager-notice-detail__title { display: flex; min-width: 0; align-items: center; gap: 11px; }
.manager-notice-detail__icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border: 1px solid var(--brand-300); border-radius: var(--radius-xs); color: var(--brand-800); }
.manager-notice-detail__title > div { display: grid; min-width: 0; gap: 5px; }
.manager-notice-detail__title > div > div { display: flex; min-width: 0; align-items: center; gap: 8px; }
.manager-notice-detail__title h2 { min-width: 0; margin: 0; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.manager-notice-detail__title p { margin: 0; color: var(--ink-600); font-size: 9px; }
.manager-notice-detail > .info-strip { margin: 12px 16px 0; }
.manager-notice-detail__body { display: grid; gap: 0; }
.manager-notice-detail__body > section { padding: 15px 18px; border-bottom: 1px solid var(--ink-200); }
.manager-notice-detail__body h3 { margin: 0 0 8px; font-size: 12px; }
.manager-notice-summary p,
.manager-notice-current > p { margin: 0; color: var(--ink-800); font-size: 10px; line-height: 1.55; }
.manager-notice-comparison { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); align-items: center; gap: 0; padding: 13px 18px; border-bottom: 1px solid var(--ink-200); }
.manager-notice-comparison article { display: grid; min-width: 0; gap: 5px; padding: 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.manager-notice-comparison article span,
.manager-notice-comparison article small { overflow-wrap: anywhere; color: var(--ink-600); font-size: 8px; }
.manager-notice-comparison article strong { overflow-wrap: anywhere; font-family: var(--font-mono); font-size: 9px; }
.manager-notice-comparison__link { z-index: 1; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: var(--paper); color: var(--red-700); transform: translateX(-3px); }
.manager-notice-current > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 10px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.manager-notice-current > div span { display: grid; min-width: 0; gap: 4px; padding: 9px; border-inline-end: 1px solid var(--ink-150); }
.manager-notice-current > div span:last-child { border-inline-end: 0; }
.manager-notice-current small { color: var(--ink-600); font-size: 7px; }
.manager-notice-current strong { overflow-wrap: anywhere; font-size: 9px; }
.manager-notice-history ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.manager-notice-history li { position: relative; display: grid; min-height: 29px; grid-template-columns: 12px 43px minmax(0, 1fr) auto; align-items: center; gap: 7px; color: var(--ink-700); font-size: 9px; }
.manager-notice-history li > span { z-index: 1; width: 8px; height: 8px; border-radius: 50%; background: var(--ink-400); }
.manager-notice-history li:not(:last-child)::before { position: absolute; inset-block: 50% -50%; inset-inline-start: 3px; width: 1px; background: var(--ink-300); content: ""; }
.manager-notice-history li.is-created > span { background: var(--red-700); }
.manager-notice-history li.is-read > span { background: var(--green-700); }
.manager-notice-history li small { color: var(--ink-600); }
.manager-notice-source { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
.manager-notice-source > svg { color: var(--brand-800); }
.manager-notice-source dl { display: grid; gap: 5px; margin: 0; }
.manager-notice-source dl div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; font-size: 8px; }
.manager-notice-source dt { color: var(--ink-600); }
.manager-notice-source dd { margin: 0; overflow-wrap: anywhere; }
.manager-notice-detail__actions { display: grid; grid-template-columns: 1fr repeat(2, auto); gap: 8px; padding: 13px 18px 17px; }
.manager-notice-detail__actions .button { min-height: 40px; font-size: 10px; }
.manager-notice-detail-empty { border: 0; border-inline-end: 1px solid var(--ink-200); border-radius: 0; box-shadow: none; }
.manager-notification-aside { display: grid; min-width: 0; align-content: start; gap: 10px; padding: 15px 13px; background: var(--ink-050); }
.manager-notification-aside .panel { display: grid; gap: 0; padding: 13px; border-radius: var(--radius-xs); box-shadow: none; }
.manager-notification-aside .panel__header { margin-bottom: 5px; }
.manager-notification-aside .panel__header h2 { font-size: 12px; }
.manager-notification-aside .panel__header-action strong { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--ink-100); font-size: 9px; }
.manager-notification-aside .metric-row { min-height: 29px; padding-block: 6px; font-size: 9px; }
.manager-notification-aside .inline-link { display: flex; min-height: 36px; align-items: center; justify-content: space-between; margin-top: 5px; border: 0; background: transparent; color: var(--brand-800); font-size: 9px; cursor: pointer; }
.manager-notification-aside .info-strip { padding: 11px; font-size: 9px; }

@media (min-width: 901px) {
  .workspace--manager-notifications { --context-rail: 220px; }
  .workspace--manager-notifications .context-rail--notifications { padding: 24px 14px; }
  .workspace--manager-notifications .context-rail--notifications .context-rail__identity { margin: 0 2px 13px; padding: 15px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
  .workspace--manager-notifications .context-rail--notifications .context-rail__identity h2 { font-size: 14px; }
  .workspace--manager-notifications .context-rail--notifications .context-rail__identity .eyebrow { font-size: 8px; }
  .workspace--manager-notifications .context-rail--notifications .context-rail__scope { font-size: 10px; }
  .workspace--manager-notifications .workspace__content { padding: 0; }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .manager-notifications-layout { grid-template-columns: minmax(270px, .72fr) minmax(430px, 1.28fr); }
  .manager-notification-aside { display: none; }
}

@media (max-width: 900px) {
  .workspace--manager-notifications .workspace__content { min-height: calc(100vh - 68px); padding: 0 0 24px; }
  .workspace--manager .manager-notifications { min-height: calc(100vh - 68px); gap: 0; }
  .manager-notifications-header { min-height: 56px; align-items: flex-end; padding: 7px 16px; }
  .manager-notifications-header .eyebrow,
  .manager-notifications-header > div:first-child > p:last-child { display: none; }
  .manager-notifications-header h1 { margin: 0; font-size: 25px; }
  .manager-notification-counters { gap: 12px; }
  .manager-notification-counters > span { grid-template-columns: auto auto; gap: 4px 6px; font-size: 9px; }
  .manager-notification-counters > span + span { padding-inline-start: 12px; border-inline-start: 1px solid var(--ink-300); }
  .manager-notification-counters strong { font-size: 20px; }
  .manager-notification-state-tabs { gap: 8px; padding: 4px 16px; overflow-x: auto; }
  .manager-notification-state-tabs button { min-width: max-content; min-height: 40px; padding-inline: 14px; font-size: 10px; }
  .manager-notification-category-tabs { gap: 4px; padding: 4px 8px; overflow-x: auto; }
  .manager-notification-category-tabs button { min-width: max-content; min-height: 40px; gap: 5px; padding-inline: 8px; font-size: 8.5px; }
  .manager-notifications-layout { display: block; min-height: 0; }
  .manager-notification-inbox { border-inline-end: 0; }
  .manager-notification-group > header { display: none; }
  .manager-notice-row { min-height: 48px; grid-template-columns: 32px 8px minmax(0, 1fr) auto 15px; gap: 6px; padding: 5px 16px; }
  .manager-notice-row__icon { width: 32px; height: 32px; }
  .manager-notice-row__copy { gap: 3px; }
  .manager-notice-row__copy strong { font-size: 9px; }
  .manager-notice-row__copy > small { font-size: 6.5px; }
  .manager-notice-row time { font-size: 7px; }
  .manager-notice-tag { padding: 2px 4px; font-size: 6px; }
  .manager-notification-inbox__actions { display: none; }
  .manager-notification-aside { display: none; }
  .manager-notice-detail-empty { display: none; }
  .manager-notice-detail { position: fixed; z-index: 120; inset: 43vh 0 72px; display: block; overflow-y: auto; border: 1px solid var(--ink-200); border-bottom: 0; border-radius: 24px 24px 0 0; background: var(--paper); box-shadow: 0 -12px 34px rgba(9, 34, 43, .16); }
  .manager-notice-detail:not(.is-open) { display: none; }
  .manager-notice-detail__handle { display: block; width: 44px; height: 4px; margin: 8px auto 0; border-radius: 4px; background: var(--ink-300); }
  .manager-notice-detail__header { position: sticky; z-index: 2; top: 0; min-height: 55px; padding: 6px 16px; background: var(--paper); }
  .manager-notice-detail__icon { width: 34px; height: 34px; flex-basis: 34px; }
  .manager-notice-detail__title h2 { max-width: 45vw; font-size: 13px; }
  .manager-notice-detail__title p { font-size: 7px; }
  .manager-notice-detail__body > section { padding: 6px 16px; }
  .manager-notice-detail__body h3 { margin-bottom: 5px; font-size: 10px; }
  .manager-notice-summary p,
  .manager-notice-current > p { font-size: 7px; line-height: 1.35; }
  .manager-notice-comparison { grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr); padding: 8px 16px; }
  .manager-notice-comparison article { min-height: 70px; gap: 3px; padding: 7px; }
  .manager-notice-comparison article span,
  .manager-notice-comparison article small { font-size: 6.5px; }
  .manager-notice-comparison article strong { font-size: 7px; }
  .manager-notice-comparison__link { width: 27px; height: 27px; transform: translateX(-3px); }
  .manager-notice-current > div { display: none; }
  .manager-notice-history li { min-height: 16px; grid-template-columns: 10px 34px minmax(0, 1fr) auto; gap: 5px; font-size: 6.5px; }
  .manager-notice-history li > span { width: 7px; height: 7px; }
  .manager-notice-source { gap: 8px; }
  .manager-notice-source > svg { width: 30px; }
  .manager-notice-source dl { gap: 3px; }
  .manager-notice-source dl div { grid-template-columns: 72px minmax(0, 1fr); gap: 6px; font-size: 6.8px; }
  .manager-notice-detail__actions { position: sticky; z-index: 2; bottom: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 6px 16px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid var(--ink-200); background: var(--paper); }
  .manager-notice-detail__actions .button:first-child { grid-column: 1 / -1; min-height: 34px; }
  .manager-notice-detail__actions .button { min-height: 34px; padding-block: 5px; font-size: 8px; }
}

/* Floor fidelity pass · compact 390 px production viewport */
.operator-header {
  min-height: 84px;
  padding: 11px 18px;
}
.operator-header__brand-block {
  gap: 2px;
}
.operator-header__brand-block .brand {
  font-size: 21px;
}
.operator-header__brand-block > span {
  font-size: 12px;
}
.operator-header__brand-block > small {
  font-size: 8px;
}
.operator-header__tools .icon-button {
  width: 39px;
  height: 39px;
}
.operator-content {
  min-height: calc(100vh - 158px);
}
.operator-screen {
  gap: 10px;
  padding: 16px 18px;
}
.operator-screen h1 {
  font-size: 27px;
}
.operator-screen .button {
  min-height: 44px;
  padding-block: 8px;
  font-size: 13px;
}
.operator-screen .panel {
  border-radius: 8px;
}
.operator-screen .info-strip {
  gap: 9px;
  padding: 10px 12px;
}
.operator-screen .info-strip__body span {
  font-size: 11px;
  line-height: 1.35;
}
.floor-count {
  font-size: 14px;
}
.operator-task {
  gap: 8px;
  padding: 14px;
}
.operator-task h2 {
  font-size: 21px;
}
.operator-task > p {
  font-size: 13px;
}
.operator-task > .status {
  min-height: 24px;
  padding: 4px 8px;
  font-size: 10px;
}
.floor-task-state,
.floor-task-workshop {
  gap: 7px;
  font-size: 13px;
}
.floor-task-workshop {
  min-height: 38px;
  margin-top: 1px;
  padding-top: 8px;
}
.floor-waiting-boundary {
  display: flex;
  min-height: 34px;
  align-items: center;
  gap: 8px;
  color: var(--ink-700);
  font-size: 12px;
}
.floor-task-heading {
  gap: 5px;
}
.floor-task-heading h1 {
  font-size: 26px;
}
.floor-task-heading > p {
  font-size: 14px;
}
.floor-detail-card .panel__header {
  min-height: 39px;
  align-items: center;
  padding: 10px 16px;
}
.floor-detail-card .panel__header .eyebrow,
.floor-task-tools .eyebrow {
  font-size: 9px;
}
.floor-context-list > div {
  min-height: 42px;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  gap: 6px;
  padding: 8px 16px;
  font-size: 12px;
}
.floor-context-list > div:first-child span {
  grid-column: 2 / -1;
}
.floor-context-list strong {
  max-width: 145px;
  font-size: 9px;
  line-height: 1.3;
}
.floor-execution-card .stepper {
  padding: 15px 8px 12px;
}
.floor-execution-card .stepper li {
  min-width: 0;
  gap: 5px;
  font-size: 9px;
}
.floor-execution-card .stepper li > span {
  width: 28px;
  height: 28px;
}
.floor-execution-card .stepper li:not(:last-child)::after {
  top: 13px;
  inset-inline-start: 64%;
  width: 72%;
}
.floor-card-notes > div {
  min-height: 36px;
  gap: 9px;
  padding: 7px 16px;
  font-size: 11px;
}
.floor-authority-line {
  gap: 10px;
  padding: 10px 16px;
}
.floor-authority-line strong {
  font-size: 11px;
}
.floor-authority-line small {
  font-size: 9px;
}
.floor-task-tools {
  gap: 6px;
  padding: 12px;
}
.floor-exact-release {
  gap: 7px;
  font-size: 16px;
}
.floor-artifact-card {
  padding: 14px 16px;
}
.floor-artifact-name {
  gap: 12px;
  padding-bottom: 10px;
}
.floor-artifact-name h2 {
  font-size: 17px;
}
.floor-artifact-facts > div,
.floor-access-boundary > div,
.floor-safe-outcomes > div,
.floor-account-boundaries > div,
.floor-alert-boundary > div {
  min-height: 36px;
  gap: 10px;
  padding: 7px 2px;
  font-size: 12px;
}
.floor-access-boundary {
  padding: 14px 16px;
}
.floor-access-boundary .panel__header {
  margin-bottom: 3px;
  padding-bottom: 8px;
}
.floor-camera-status {
  font-size: 13px;
}
.camera-surface {
  min-height: 180px;
}
.camera-surface__prompt {
  gap: 10px;
  font-size: 13px;
}
.camera-surface__prompt svg {
  width: 52px;
  height: 52px;
}
.floor-manual-lookup {
  gap: 8px;
  padding: 12px;
}
.floor-scan-result {
  display: grid;
  width: 100%;
  gap: 7px;
  padding: 12px;
  color: var(--ink-950);
  text-align: start;
  cursor: pointer;
}
.floor-result-kicker {
  font-size: 12px;
}
.floor-scan-result .scan-result {
  gap: 11px;
  padding: 6px 0;
}
.floor-result-icon {
  width: 50px;
  height: 50px;
}
.floor-scan-result .scan-result h2 {
  font-size: 17px;
}
.floor-scan-result .scan-result p {
  margin: 3px 0;
  font-size: 11px;
}
.floor-scan-result .scan-result span {
  font-size: 10px;
}
.floor-safe-outcomes {
  padding: 12px 16px;
}
.floor-safe-outcomes .panel__header {
  margin-bottom: 0;
}
.floor-safe-outcomes .panel__header h2 {
  font-size: 16px;
}
.floor-task-identity {
  gap: 4px;
}
.floor-task-identity strong {
  font-size: 14px;
}
.floor-task-identity span {
  font-size: 13px;
}
.floor-exception-screen .floor-screen-title h1,
.floor-material-screen .floor-screen-title h1 {
  font-size: 26px;
}
.floor-screen-title .status {
  min-height: 24px;
  padding: 3px 8px;
  font-size: 9px;
}
.floor-evidence-step {
  grid-template-columns: 29px minmax(0, 1fr);
  gap: 7px;
}
.floor-step-number {
  width: 26px;
  height: 26px;
  font-size: 12px;
}
.floor-evidence-step > div {
  gap: 6px;
}
.floor-step-label {
  gap: 6px;
  font-size: 13px;
}
.floor-step-label em {
  padding: 3px 6px;
  font-size: 9px;
}
.floor-exception-screen .select-field select {
  min-height: 40px;
  padding-block: 8px;
  font-size: 12px;
}
.floor-exception-screen .field textarea {
  min-height: 78px;
  font-size: 12px;
}
.floor-photo-boundary {
  min-height: 60px;
  font-size: 12px;
}
.floor-measurement-grid {
  grid-template-columns: 1fr;
}
.floor-measurement-grid .field {
  font-size: 10px;
}
.floor-measurement-grid .field input {
  min-height: 40px;
}
.floor-evidence-outcomes > div {
  min-height: 31px;
  gap: 8px;
  padding: 5px 3px;
  font-size: 12px;
}
.floor-material-screen .operator-lede {
  font-size: 13px;
  line-height: 1.45;
}
.floor-material-card {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
}
.floor-card-icon {
  width: 40px;
  height: 40px;
}
.floor-material-card h2,
.floor-offcut-card h2 {
  margin-bottom: 5px;
  font-size: 17px;
}
.floor-material-facts > div {
  min-height: 34px;
  gap: 8px;
  font-size: 12px;
}
.floor-offcut-card {
  gap: 8px;
  padding: 12px 16px;
}
.floor-offcut-card > header {
  gap: 10px;
}
.floor-offcut-card > header .eyebrow {
  font-size: 8px;
}
.floor-offcut-size {
  min-height: 65px;
  gap: 12px;
}
.floor-offcut-size > svg {
  width: 48px;
  height: 48px;
}
.floor-offcut-size strong {
  font-size: 12px;
}
.floor-offcut-card .field,
.floor-offcut-card .select-field {
  gap: 4px;
  font-size: 10px;
}
.floor-offcut-card .field input,
.floor-offcut-card .select-field select {
  min-height: 38px;
  padding-block: 7px;
  font-size: 11px;
}
.floor-offcut-measurements {
  gap: 6px;
}
.floor-photo-boundary--compact {
  min-height: 38px;
}
.floor-mark-all {
  width: fit-content;
  justify-self: end;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink-700);
  font-size: 11px;
  font-weight: 680;
  cursor: pointer;
}
.floor-alert {
  grid-template-columns: 7px 48px minmax(0, 1fr);
  gap: 8px;
  padding: 12px 0;
}
.floor-alert__dot {
  width: 6px;
  height: 6px;
  margin-top: 22px;
}
.floor-alert__icon {
  width: 44px;
  height: 44px;
}
.floor-alert__icon svg {
  width: 27px;
  height: 27px;
}
.floor-alert__body {
  gap: 6px;
}
.floor-alert__body .eyebrow {
  font-size: 8px;
}
.floor-alert__heading h2 {
  font-size: 14px;
}
.floor-alert__heading .status {
  min-height: 22px;
  padding: 3px 7px;
  font-size: 8px;
}
.floor-alert__body > p:not(.eyebrow) {
  font-size: 12px;
  line-height: 1.4;
}
.floor-alert__body > .button {
  width: fit-content;
  min-width: 170px;
  min-height: 38px;
  font-size: 10px;
}
.floor-alert__body small {
  font-size: 10px;
}
.floor-alert-boundary {
  padding: 10px 14px;
}
.floor-locked-state {
  font-size: 14px;
}
.floor-account-screen {
  gap: 8px;
}
.floor-account-screen .operator-lede {
  font-size: 12px;
}
.floor-account-screen .pin-dots {
  gap: 7px;
}
.floor-account-screen .pin-dots input {
  height: 43px;
}
.floor-account-screen .pin-pad {
  gap: 7px;
}
.floor-account-screen .pin-pad button {
  min-height: 47px;
  font-size: 19px;
}
.floor-account-boundaries {
  padding: 10px 14px;
}
.floor-offline-screen h1 {
  font-size: 25px;
}
.floor-offline-subtitle,
.floor-offline-count {
  gap: 8px;
  font-size: 12px;
}
.floor-offline-count {
  font-size: 14px;
}
.floor-reconnect-timeline {
  gap: 7px;
  padding-inline-start: 25px;
}
.floor-reconnect-timeline > .panel {
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  padding: 10px 12px;
}
.floor-reconnect-timeline > .panel > svg {
  width: 27px;
  height: 27px;
}
.floor-reconnect-timeline h2 {
  margin-bottom: 3px;
  font-size: 13px;
}
.floor-reconnect-timeline p {
  font-size: 10px;
}
.floor-reconnect-timeline .metric-row {
  gap: 10px;
  padding: 7px 0;
  font-size: 9px;
}
.floor-timeline-icon {
  top: 16px;
  inset-inline-start: -39px;
  width: 28px;
  height: 28px;
}
.floor-timeline-icon svg {
  width: 17px;
  height: 17px;
}
.operator-app > .bottom-nav,
.operator-stage .bottom-nav {
  min-height: 68px;
}
.bottom-nav button {
  gap: 3px;
  font-size: 9px;
}
.bottom-nav button svg {
  width: 20px;
  height: 20px;
}

/* Floor fidelity pass · keep primary evidence above the fixed navigation */
.floor-task-screen {
  gap: 8px;
  padding-block: 12px;
}
.floor-task-screen .floor-task-heading {
  gap: 3px;
}
.floor-task-screen .floor-task-heading h1 {
  font-size: 25px;
}
.floor-task-screen .floor-detail-card .panel__header {
  min-height: 32px;
  padding: 6px 14px;
}
.floor-task-screen .floor-context-list > div {
  min-height: 35px;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 6px;
  padding: 5px 14px;
}
.floor-task-screen .floor-context-list > div > strong {
  grid-column: 3;
  max-width: 120px;
  text-align: end;
}
.floor-task-screen .floor-execution-card .stepper {
  padding: 9px 6px 7px;
}
.floor-task-screen .floor-execution-card .stepper li {
  gap: 3px;
  font-size: 8px;
}
.floor-task-screen .floor-execution-card .stepper li > span {
  width: 24px;
  height: 24px;
}
.floor-task-screen .floor-execution-card .stepper li:not(:last-child)::after {
  top: 11px;
}
.floor-task-screen .floor-card-notes > div {
  min-height: 30px;
  padding: 5px 14px;
  font-size: 10px;
}
.floor-task-screen .floor-authority-line {
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
}
.floor-task-screen .floor-authority-line > div {
  gap: 2px;
}
.floor-task-screen .floor-authority-line small {
  line-height: 1.3;
}

.floor-output-screen {
  gap: 8px;
  padding-block: 12px;
}
.floor-output-screen h1 {
  font-size: 25px;
}
.floor-output-screen .floor-artifact-card {
  padding-block: 11px;
}
.floor-output-screen .floor-artifact-facts > div,
.floor-output-screen .floor-access-boundary > div {
  min-height: 32px;
  padding-block: 5px;
}
.floor-output-screen .info-strip {
  padding-block: 8px;
}
.floor-output-screen .floor-access-boundary {
  padding-block: 11px;
}

.floor-scan-screen {
  gap: 8px;
  padding-block: 12px;
}
.floor-scan-screen h1 {
  font-size: 25px;
}
.floor-scan-screen .operator-lede {
  line-height: 1.35;
}
.floor-scan-screen .camera-surface {
  min-height: 170px;
}
.floor-scan-screen .floor-scan-result .scan-result {
  align-items: center;
  flex-direction: row;
}
.floor-scan-screen .floor-safe-outcomes {
  padding-block: 9px;
}
.floor-scan-screen .floor-safe-outcomes > div {
  min-height: 31px;
  padding-block: 5px;
}

.floor-material-screen {
  gap: 8px;
  padding-block: 12px;
}
.floor-material-screen .floor-task-identity {
  gap: 2px;
}
.floor-material-screen .operator-lede {
  line-height: 1.35;
}
.floor-material-screen .floor-material-card {
  padding-block: 10px;
}
.floor-material-screen .floor-offcut-card {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  padding-block: 10px;
}
.floor-material-screen .floor-offcut-card > header,
.floor-material-screen .floor-offcut-card > .floor-offcut-size,
.floor-material-screen .floor-offcut-card > .floor-offcut-measurements,
.floor-material-screen .floor-offcut-card > .floor-photo-boundary {
  grid-column: 1 / -1;
}
.floor-material-screen .floor-offcut-size {
  min-height: 58px;
}
.floor-material-screen .floor-offcut-card .field input,
.floor-material-screen .floor-offcut-card .select-field select {
  min-height: 36px;
}
.floor-material-screen .info-strip {
  padding-block: 8px;
}

/* Manager Parts v2 — approved responsive workbench */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.manager-parts-v2 {
  gap: 14px;
  padding-bottom: 104px;
}
.manager-parts-v2__heading {
  min-height: 54px;
}
.manager-parts-v2__heading > div:first-child {
  min-width: 0;
}
.manager-parts-v2__heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.manager-parts-v2__workbench {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(360px, .82fr) minmax(0, 1.72fr);
  align-items: start;
  gap: 14px;
}
.manager-parts-v2__main {
  display: grid;
  min-width: 0;
  gap: 14px;
}
.manager-parts-v2__inspector,
.manager-parts-v2__inline-quick,
.manager-parts-v2__list {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  box-shadow: none;
}
.manager-parts-v2__inspector {
  position: sticky;
  top: 14px;
}
.manager-parts-v2__inline-quick {
  padding: 16px;
}
.manager-color-swatch {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1px solid rgba(9, 27, 58, .22);
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);
}
.manager-color-swatch.is-empty {
  background: linear-gradient(135deg, var(--paper) 46%, var(--ink-300) 47%, var(--ink-300) 53%, var(--paper) 54%) !important;
}
.manager-part-picker {
  display: grid;
  gap: 7px;
  color: var(--ink-700);
  font-size: 12px;
  font-weight: 650;
}
.manager-part-picker__control {
  display: grid;
  min-height: 52px;
  grid-template-columns: 22px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  padding-inline: 13px;
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-xs);
  background: var(--paper);
}
.manager-part-picker__control:focus-within {
  border-color: var(--brand-700);
  box-shadow: 0 0 0 3px rgba(var(--brand-rgb), .14);
}
.manager-part-picker.is-invalid .manager-part-picker__control {
  border-color: var(--red-700);
  background: #fff9f9;
}
.manager-part-picker__control select {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 0;
  border: 0;
  outline: 0;
  appearance: none;
  background: transparent;
  color: var(--ink-900);
  font: inherit;
}
.manager-part-details-editor {
  display: grid;
  gap: 16px;
}
.manager-part-details-editor__fields {
  display: grid;
  gap: 16px;
  box-shadow: none;
}
.manager-part-details-editor__fields .panel__header {
  padding: 0 0 2px;
  border: 0;
}
.manager-part-details-editor__fields .panel__header h2 {
  font-size: 18px;
}
.manager-part-details-editor__hint {
  margin: 0;
  color: var(--ink-600);
  font-size: 12px;
  line-height: 1.55;
}
.manager-quick-workflow {
  display: grid;
  min-width: 0;
  gap: 12px;
}
.manager-quick-workflow__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.manager-quick-workflow__header h3,
.manager-edge-editor__header h3 {
  margin: 2px 0 0;
  font-size: 18px;
}
.manager-quick-workflow__header-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}
.manager-quick-workflow__header-actions .button {
  min-height: 38px;
  padding-inline: 11px;
  white-space: nowrap;
}
.manager-quick-steps {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(5, minmax(118px, 1fr));
  gap: 7px;
  margin: 0;
  padding: 0 0 3px;
  overflow-x: auto;
  list-style: none;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
.manager-quick-steps li {
  min-width: 0;
}
.manager-quick-steps li > button,
.manager-quick-step__active {
  display: grid;
  width: 100%;
  min-height: 92px;
  grid-template-columns: 26px minmax(0, 1fr);
  align-content: start;
  align-items: center;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-xs);
  background: var(--paper);
  color: var(--ink-800);
  text-align: start;
}
.manager-quick-steps li.has-error > button,
.manager-quick-steps li.has-error .manager-quick-step__active {
  border-color: var(--red-700);
  background: #fff9f9;
  box-shadow: 0 0 0 3px rgba(189, 27, 27, .08);
}
.manager-quick-steps li.has-error .manager-quick-step__number {
  background: var(--red-700);
  color: white;
}
.manager-quick-steps li > button {
  cursor: pointer;
}
.manager-quick-steps li > button:hover {
  border-color: var(--brand-500);
  background: var(--brand-050);
}
.manager-quick-steps li.is-complete > button {
  border-color: var(--brand-300);
  background: var(--brand-050);
}
.manager-quick-step__active {
  min-height: 108px;
  border: 2px solid var(--brand-800);
  padding: 10px;
  box-shadow: 0 4px 16px rgba(27, 76, 142, .08);
}
.manager-quick-step__number {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--ink-100);
  color: var(--ink-700);
  font-size: 10px;
  font-weight: 750;
}
.is-complete .manager-quick-step__number,
.is-active .manager-quick-step__number {
  background: var(--brand-700);
  color: white;
}
.manager-quick-step__copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.manager-quick-step__copy small {
  color: var(--ink-500);
  font-size: 10px;
}
.manager-quick-step__copy strong {
  overflow: hidden;
  color: var(--ink-900);
  font-size: 13px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.manager-quick-step__input {
  display: grid;
  min-height: 50px;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--ink-250);
  border-radius: 4px;
  background: var(--ink-050);
}
.manager-quick-step__input.is-invalid {
  border-color: var(--red-700);
  background: white;
}
.manager-quick-step__input input {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 8px 10px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink-950);
  font-family: var(--font-mono);
  font-size: 19px;
}
.manager-quick-step__input.has-unit input { padding-inline: 6px; }
.manager-quick-step__input > span:not(.visually-hidden) {
  padding-inline: 8px;
  color: var(--ink-500);
  font-family: var(--font-mono);
  font-size: 10px;
}
.manager-quick-step__input > span[data-manager-quick-unit] {
  box-sizing: border-box;
  width: 26px;
  min-width: 26px;
  padding-inline: 3px;
  direction: ltr;
  unicode-bidi: isolate;
  text-align: center;
  white-space: nowrap;
}
.manager-quick-step__copy [data-manager-quick-unit-summary] { direction: ltr; unicode-bidi: isolate; }
.manager-quick-workflow__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.manager-quick-workflow__hint {
  margin: 0;
  color: var(--ink-500);
  font-size: 10px;
  text-align: end;
}
.manager-field-error {
  color: var(--red-700) !important;
  font-size: 11px;
  font-weight: 550;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.manager-quick-workflow__validation {
  min-height: 16px;
  margin: -2px 0 0;
  text-align: start;
}
.manager-quick-workflow__prefix-status {
  min-height: 16px;
  margin: -2px 0 0;
  color: var(--brand-800);
  font-size: 10px;
  font-weight: 650;
  text-align: start;
}
.manager-edge-editor {
  display: grid;
  min-width: 0;
  gap: 14px;
  padding: 18px;
}
.manager-edge-editor__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.manager-edge-editor__header > span {
  max-width: 44%;
  overflow: hidden;
  color: var(--ink-500);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.manager-edge-editor__instruction {
  margin: -5px 0 0;
  color: var(--ink-600);
  font-size: 12px;
  line-height: 1.5;
}
.manager-edge-editor.is-entry-draft {
  background: linear-gradient(180deg, rgba(233, 237, 241, .42), transparent 180px);
}
.manager-edge-editor__entry-note {
  margin: 0;
  padding: 10px 11px;
  border: 1px solid var(--brand-200);
  border-radius: var(--radius-xs);
  background: var(--brand-050);
  color: var(--brand-900);
  font-size: 10px;
  line-height: 1.5;
}
.manager-edge-editor__compact-entry {
  min-width: 0;
}
.manager-edge-operations {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--ink-250);
  border-radius: var(--radius-xs);
}
.manager-edge-operations button {
  display: flex;
  min-width: 0;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 6px;
  border: 0;
  border-inline-end: 1px solid var(--ink-200);
  background: var(--paper);
  color: var(--ink-700);
  font-size: 11px;
  cursor: pointer;
}
.manager-edge-operations button:last-child {
  border-inline-end: 0;
}
.manager-edge-operations button.is-active {
  background: var(--brand-800);
  color: white;
}
.manager-edge-operations button:focus-visible,
.manager-edge-templates button:focus-visible {
  position: relative;
  z-index: 2;
  outline: 3px solid rgba(27, 76, 142, .38);
  outline-offset: -3px;
}
.manager-edge-canvas {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 390px;
  place-items: center;
  padding: 72px 50px 74px;
  overflow: hidden;
  border: 1px solid var(--ink-150);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, var(--paper), var(--ink-050));
}
.manager-edge-canvas__dimensions,
.manager-edge-canvas__action {
  position: absolute;
  right: 14px;
  left: 14px;
}
.manager-edge-canvas__dimensions {
  top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--ink-500);
  font-size: 10px;
}
.manager-edge-canvas__dimensions b {
  font-weight: 600;
}
.manager-edge-canvas__dimensions strong {
  color: var(--ink-800);
  font-family: var(--font-mono);
  font-size: 11px;
}
.manager-edge-canvas__action {
  bottom: 13px;
  display: grid;
  justify-items: center;
  gap: 2px;
  color: var(--ink-500);
  text-align: center;
}
.manager-edge-canvas__action strong {
  color: var(--brand-800);
  font-size: 11px;
}
.manager-edge-canvas__action small {
  font-size: 9px;
}
.manager-edge-board {
  position: relative;
  width: min(100%, var(--board-max-width));
  aspect-ratio: var(--board-ratio);
  border: 1px solid var(--ink-700);
  background: linear-gradient(rgba(255, 255, 255, .78), rgba(255, 255, 255, .78)), var(--panel-color);
  box-shadow: 0 8px 24px rgba(14, 36, 61, .08);
}
.manager-edge-canvas.is-waiting .manager-edge-board {
  border-style: dashed;
  background: repeating-linear-gradient(135deg, var(--paper) 0 10px, var(--ink-050) 10px 20px);
  box-shadow: none;
  opacity: .76;
}
.manager-edge-canvas.is-waiting .manager-edge-target {
  opacity: .62;
}
.manager-edge-board__center {
  position: absolute;
  inset: 36px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 4px;
  color: var(--ink-500);
  text-align: center;
  pointer-events: none;
}
.manager-edge-board__center .manager-color-swatch {
  width: 22px;
  height: 22px;
  margin-bottom: 2px;
}
.manager-edge-board__center strong {
  max-width: 150px;
  overflow: hidden;
  color: var(--ink-800);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.manager-edge-board__center span {
  font-size: 9px;
}
.manager-edge-target {
  position: absolute;
  z-index: 2;
  display: flex;
  min-width: 48px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink-600);
  font-size: 10px;
  cursor: pointer;
}
.manager-edge-target:hover,
.manager-edge-target.is-selected {
  background: rgba(var(--brand-rgb), .07);
}
.manager-edge-target:focus-visible {
  z-index: 5;
  outline: 3px solid rgba(27, 76, 142, .48);
  outline-offset: -3px;
}
.manager-edge-target--top,
.manager-edge-target--bottom {
  left: 0;
  width: 100%;
  height: 48px;
}
.manager-edge-target--top { top: -48px; }
.manager-edge-target--bottom { bottom: -48px; }
.manager-edge-target--left,
.manager-edge-target--right {
  top: 0;
  width: 48px;
  height: 100%;
  writing-mode: vertical-rl;
}
.manager-edge-target--left { left: -48px; }
.manager-edge-target--right { right: -48px; }
.manager-edge-target--left .manager-edge-target__label { transform: rotate(180deg); }
.manager-edge-target__label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border-radius: 999px;
}
.manager-edge-target__label b {
  color: currentColor;
  font-size: 8px;
  font-weight: 750;
  opacity: .72;
}
.manager-edge-target.is-selected .manager-edge-target__label {
  background: var(--brand-800);
  color: white;
  font-weight: 700;
}
.manager-edge-mark {
  position: absolute;
  pointer-events: none;
}
.manager-edge-target--top .manager-edge-mark,
.manager-edge-target--bottom .manager-edge-mark {
  left: 0;
  width: 100%;
}
.manager-edge-target--left .manager-edge-mark,
.manager-edge-target--right .manager-edge-mark {
  top: 0;
  height: 100%;
}
.manager-edge-mark--tape {
  background: var(--edge-color);
  box-shadow: 0 0 0 1px rgba(9, 27, 58, .12);
}
.manager-edge-target--top .manager-edge-mark--tape { bottom: 0; height: 6px; }
.manager-edge-target--bottom .manager-edge-mark--tape { top: 0; height: 6px; }
.manager-edge-target--left .manager-edge-mark--tape { right: 0; width: 6px; }
.manager-edge-target--right .manager-edge-mark--tape { left: 0; width: 6px; }
.manager-edge-mark--miter {
  background: repeating-linear-gradient(45deg, #e89a20 0 3px, transparent 3px 6px);
  outline: 1px solid rgba(177, 103, 8, .38);
}
.manager-edge-target--top .manager-edge-mark--miter { bottom: -9px; height: 6px; }
.manager-edge-target--bottom .manager-edge-mark--miter { top: -9px; height: 6px; }
.manager-edge-target--left .manager-edge-mark--miter { right: -9px; width: 6px; }
.manager-edge-target--right .manager-edge-mark--miter { left: -9px; width: 6px; }
.manager-edge-mark--groove {
  z-index: 1;
  border-color: var(--brand-800);
  opacity: .92;
}
.manager-edge-target--top .manager-edge-mark--groove { top: calc(48px + var(--groove-offset)); border-top: 2px dashed; }
.manager-edge-target--bottom .manager-edge-mark--groove { bottom: calc(48px + var(--groove-offset)); border-top: 2px dashed; }
.manager-edge-target--left .manager-edge-mark--groove { left: calc(48px + var(--groove-offset)); border-left: 2px dashed; }
.manager-edge-target--right .manager-edge-mark--groove { right: calc(48px + var(--groove-offset)); border-left: 2px dashed; }
.manager-edge-selection {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid var(--brand-200);
  border-radius: var(--radius-xs);
  background: var(--brand-050);
  color: var(--ink-600);
  font-size: 10px;
}
.manager-edge-selection > span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.manager-edge-selection > span small {
  color: var(--ink-500);
}
.manager-edge-selection > span strong {
  color: var(--brand-900);
  font-size: 12px;
}
.manager-edge-selection__states {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.manager-edge-selection__states > span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  gap: 4px;
  padding: 5px 7px;
  border: 1px solid var(--ink-200);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink-500);
  font-size: 9px;
}
.manager-edge-selection__states > span.is-on {
  border-color: var(--brand-300);
  color: var(--brand-900);
  font-weight: 650;
}
.manager-edge-pickers {
  display: grid;
  gap: 10px;
}
.manager-groove-offset {
  display: grid;
  gap: 7px;
  color: var(--ink-700);
  font-size: 11px;
  font-weight: 650;
}
.manager-groove-offset > span:last-child {
  display: grid;
  min-height: 48px;
  grid-template-columns: minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-xs);
}
.manager-groove-offset.is-invalid > span:last-child {
  border-color: var(--red-700);
  background: #fff9f9;
}
.manager-groove-offset.is-invalid > span:last-child:focus-within {
  box-shadow: 0 0 0 3px rgba(189, 27, 27, .12);
}
.manager-groove-offset input {
  min-width: 0;
  padding-inline: 12px;
  border: 0;
  outline: 0;
  font-family: var(--font-mono);
  font-size: 17px;
}
.manager-groove-offset i {
  display: grid;
  min-width: 48px;
  place-items: center;
  border-inline-start: 1px solid var(--ink-200);
  color: var(--ink-500);
  font-style: normal;
}
.manager-edge-templates {
  display: grid;
  gap: 7px;
  color: var(--ink-600);
  font-size: 10px;
}
.manager-edge-templates > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
.manager-edge-templates button {
  min-height: 38px;
  padding: 5px;
  border: 1px solid var(--ink-200);
  border-radius: 4px;
  background: var(--paper);
  color: var(--ink-700);
  font-size: 9px;
  cursor: pointer;
}
.manager-edge-editor__apply {
  width: 100%;
}
.manager-prefix-editor {
  display: grid;
  min-width: 0;
  gap: 16px;
}
.manager-prefix-editor__recovery {
  position: sticky;
  z-index: 10;
  top: 0;
  box-shadow: var(--shadow-sm);
}
.manager-prefix-library {
  display: grid;
  gap: 8px;
}
.manager-prefix-library > span {
  color: var(--ink-600);
  font-size: 11px;
  font-weight: 650;
}
.manager-prefix-library > div {
  display: flex;
  gap: 7px;
  padding-bottom: 3px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.manager-prefix-library button {
  display: grid;
  min-width: 104px;
  min-height: 54px;
  align-content: center;
  gap: 2px;
  padding: 8px 10px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-xs);
  background: var(--paper);
  color: var(--ink-800);
  text-align: start;
  cursor: pointer;
}
.manager-prefix-library button:hover,
.manager-prefix-library button.is-active {
  border-color: var(--brand-500);
  background: var(--brand-050);
}
.manager-prefix-library button strong {
  color: var(--brand-900);
  font-family: var(--font-mono);
  font-size: 13px;
}
.manager-prefix-library button small {
  max-width: 130px;
  overflow: hidden;
  color: var(--ink-500);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.manager-prefix-editor__identity {
  display: grid;
  grid-template-columns: minmax(120px, .55fr) minmax(0, 1.45fr);
  gap: 10px;
}
.manager-prefix-editor > .manager-edge-editor {
  padding: 0;
  background: transparent;
}
.manager-prefix-editor__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 2px;
}
.manager-prefix-editor__actions > div {
  display: flex;
  gap: 8px;
}
.manager-prefix-editor__actions > div .button:last-child {
  min-width: 156px;
}
.manager-parts-v2__list > .panel__header {
  margin: 0;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--ink-150);
}
.manager-parts-v2__list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--ink-150);
}
.manager-parts-v2__list-toolbar .search {
  width: min(320px, 100%);
}
.manager-parts-v2__list-toolbar > span {
  color: var(--ink-500);
  font-size: 10px;
}
.manager-parts-v2__bulk-toolbar {
  display: flex;
  flex-wrap: wrap;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 18px;
  border-bottom: 1px solid var(--ink-150);
  background: var(--ink-050);
}
.manager-parts-bulk-selection {
  color: var(--ink-600);
  font-size: 10px;
  font-weight: 650;
}
.manager-parts-v2__bulk-toolbar > div {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.manager-parts-v2__bulk-toolbar .button {
  min-height: 44px;
  padding: 7px 10px;
  font-size: 10px;
}
.manager-parts-select-all { display: none; }
.manager-parts-selection-hint { color: var(--ink-600); font-size: 10px; }
.manager-parts-clear-selection {
  min-height: 44px;
  padding: 4px 8px;
  border: 0;
  border-radius: var(--radius-xs);
  background: transparent;
  color: var(--brand-800);
  font-size: 10px;
  cursor: pointer;
}
.manager-parts-v2__table-wrap {
  width: 100%;
  overflow-x: auto;
}
.manager-parts-v2__table {
  width: 100%;
  border-collapse: collapse;
  color: var(--ink-800);
  font-size: 11px;
  text-align: start;
}
.manager-parts-v2__table th {
  padding: 10px 9px;
  border-bottom: 1px solid var(--ink-200);
  color: var(--ink-500);
  font-size: 9px;
  font-weight: 700;
  text-align: start;
  white-space: nowrap;
}
.manager-parts-v2__table td {
  min-width: 72px;
  padding: 9px;
  border-bottom: 1px solid var(--ink-150);
  vertical-align: middle;
}
.manager-parts-v2__table { table-layout: fixed; min-width: 640px; }
.manager-parts-v2__table th, .manager-parts-v2__table td { min-width: 0; padding: 8px 4px; }
.manager-parts-v2__table th:first-child { width: 23%; }
.manager-parts-v2__table th:nth-child(2), .manager-parts-v2__table th:nth-child(3) { width: 9%; }
.manager-parts-v2__table th:nth-child(4) { width: 9%; }
.manager-parts-v2__table th:nth-child(5) { width: 23%; }
.manager-parts-v2__table th:nth-child(6) { width: 18%; }
.manager-parts-v2__table th:last-child { width: 9%; }
.manager-parts-v2__table th small { display: block; color: var(--ink-500); font-weight: 400; }
.manager-part-inline-field { display: grid; min-width: 0; align-content: start; gap: 4px; }
.manager-part-inline-field input, .manager-part-inline-field select {
  width: 100%; min-width: 0; min-height: 44px; padding: 6px;
  border: 1px solid var(--ink-200); border-radius: var(--radius-xs);
  background: var(--paper); color: var(--ink-900); font: inherit; font-size: 11px;
}
.manager-part-inline-field input[inputmode] { text-align: center; }
.manager-part-inline-field input:hover, .manager-part-inline-field select:hover { border-color: var(--brand-700); }
.manager-part-inline-field input:focus-visible, .manager-part-inline-field select:focus-visible { outline: 2px solid var(--brand-700); outline-offset: 1px; }
.manager-part-inline-field :disabled { opacity: .6; cursor: not-allowed; }
.manager-part-inline-field.is-invalid input, .manager-part-inline-field.is-invalid select { border-color: var(--red-700); }
.manager-part-inline-field__label { display: flex; align-items: center; gap: 4px; color: var(--ink-600); font-size: 10px; }
.manager-part-inline-field__error { display: grid; color: var(--red-700); font-size: 10px; overflow-wrap: anywhere; }
.manager-part-inline-field__error button { min-height: 44px; padding: 4px; border: 0; background: transparent; color: var(--brand-800); font: inherit; cursor: pointer; }
.manager-parts-v2__table tr:focus-within td { background: var(--brand-050); }
.manager-parts-v2__table .manager-part-name { padding: 0; border: 0; cursor: default; }

.manager-parts-v2__table tr.is-selected td {
  background: var(--brand-050);
}
.manager-parts-v2__table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 var(--brand-700);
}
.manager-parts-v2__table tr.is-bulk-selected td { background: var(--brand-100); }
.manager-part-value {
  display: grid;
  width: 100%;
  min-width: 44px;
  min-height: 44px;
  align-content: center;
  gap: 3px;
  padding: 6px;
  border: 1px solid transparent;
  border-radius: var(--radius-xs);
  background: transparent;
  color: var(--ink-900);
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.manager-part-value:not(:disabled):hover,
.manager-parts-clear-selection:not(:disabled):hover {
  border-color: var(--ink-200);
  background: var(--brand-100);
}
.manager-part-value:focus-visible,
.manager-parts-clear-selection:focus-visible {
  outline: 2px solid var(--brand-700);
  outline-offset: 2px;
}
.manager-part-value:disabled { cursor: not-allowed; opacity: .6; }
.manager-part-selection-target {
  display: inline-flex;
  width: 32px;
  min-width: 32px;
  height: 44px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.manager-parts-v2__table td > strong,
.manager-parts-v2__table td > small,
.manager-operation-summary,
.manager-part-name {
  display: grid;
  gap: 3px;
}
.manager-parts-v2__table td small,
.manager-operation-summary small,
.manager-part-name small {
  color: var(--ink-500);
  font-size: 9px;
}
.manager-part-name {
  width: 100%;
  min-height: 44px;
  align-content: center;
  padding: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink-900);
  text-align: start;
  cursor: pointer;
}
.manager-part-heading,
.manager-part-cell {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
}
.manager-part-cell .manager-part-name {
  min-width: 0;
}
.manager-part-selection {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin: 0;
  accent-color: var(--brand-800);
  cursor: pointer;
}
.manager-part-selection:disabled {
  cursor: not-allowed;
}
.manager-part-name__dirty {
  color: var(--amber-700);
}
.manager-part-name__description {
  color: var(--ink-500) !important;
  font-weight: 500;
}
.manager-table-material {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}
.manager-table-material > span:last-child {
  display: grid;
  min-width: 0;
  gap: 3px;
  overflow-wrap: anywhere;
}
.manager-row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 3px;
}
.manager-row-actions .icon-button {
  width: 44px;
  height: 44px;
}
.manager-row-actions [data-manager-delete] {
  color: var(--red-700);
}
.manager-parts-v2__cards {
  display: none;
}
.manager-parts-v2__savebar {
  position: sticky;
  z-index: 18;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(168px, auto);
  align-items: center;
  gap: 12px;
  margin-top: 2px;
  padding: 12px 14px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 -8px 28px rgba(13, 38, 60, .08);
  backdrop-filter: blur(14px);
}
.producer-parts-v2 .manager-parts-v2__savebar {
  grid-template-columns: minmax(220px, 1fr) minmax(168px, auto);
}
.manager-parts-v2__save-copy {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}
.manager-parts-v2__save-copy > span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--brand-600);
}
.manager-parts-v2__save-copy > span.is-dirty {
  background: var(--amber-500);
  box-shadow: 0 0 0 5px var(--amber-050);
}
.manager-parts-v2__save-copy > span.is-saving {
  background: var(--brand-800);
  box-shadow: 0 0 0 5px var(--brand-100);
}
.manager-parts-v2__save-copy > div {
  display: grid;
  gap: 2px;
}
.manager-parts-v2__save-copy strong {
  color: var(--ink-900);
  font-size: 12px;
}
.manager-parts-v2__save-copy small {
  color: var(--ink-500);
  font-size: 9px;
}
.manager-parts-v2__optimize > span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.manager-parts-v2__optimize-label {
  white-space: nowrap;
}
.manager-optimization-budget {
  display: inline-grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: var(--brand-050);
  color: var(--brand-900);
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 760;
  line-height: 1;
}
.manager-parts-v2__optimize:disabled .manager-optimization-budget {
  background: var(--ink-050);
  color: var(--ink-500);
}
.manager-autosave-error small {
  display: block;
  margin-top: 4px;
  color: var(--red-700);
  font-size: 10px;
  overflow-wrap: anywhere;
}
.manager-more-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.manager-more-actions .button {
  width: 100%;
}
.manager-board-entry-drawer {
  display: grid;
  gap: 18px;
}
.manager-board-entry-drawer > .manager-edge-editor {
  border-bottom: 1px solid var(--ink-200);
  padding-bottom: 18px;
}
.manager-part-bulk-editor {
  display: grid;
  gap: 16px;
}
.manager-part-bulk-editor__fields {
  display: grid;
  gap: 14px;
  padding: 16px;
  box-shadow: none;
}

@media (min-width: 901px) {
  .manager-parts-v2__heading-actions {
    display: flex;
  }
  .manager-parts-v2__inspector {
    max-height: calc(100dvh - 116px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scroll-padding-block: 16px;
    scrollbar-gutter: stable;
  }
}

@media (max-width: 1500px) and (min-width: 901px) {
  .manager-parts-v2__workbench {
    grid-template-columns: minmax(340px, .74fr) minmax(0, 1.55fr);
  }
  .manager-parts-v2__heading-actions .button {
    padding-inline: 12px;
  }
  .manager-quick-steps {
    grid-template-columns: repeat(5, minmax(110px, 1fr));
  }
}

@media (max-width: 900px) and (min-width: 601px) {
  .workspace--manager .manager-parts-v2,
  .workspace--producer .manager-parts-v2 {
    gap: 14px;
    padding-bottom: 112px;
  }
  .manager-parts-v2__heading {
    align-items: center !important;
    flex-direction: row !important;
  }
  .manager-parts-v2__heading-actions {
    flex-wrap: wrap;
  }
  .manager-parts-v2__workbench {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr) !important;
    align-items: start;
    gap: 12px !important;
  }
  .manager-parts-v2__main {
    display: contents;
  }
  .manager-parts-v2__inline-quick {
    display: block;
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .manager-parts-v2__list {
    grid-column: 1;
    grid-row: 2;
  }
  .manager-parts-v2__inspector {
    position: static;
    display: block;
    grid-column: 2;
    grid-row: 2;
  }
  .manager-quick-steps {
    grid-template-columns: repeat(5, minmax(128px, 1fr));
  }
  .manager-edge-canvas {
    min-height: 390px;
    padding-inline: 50px;
  }
  .manager-parts-v2__savebar {
    bottom: 76px;
  }
}

@media (max-width: 600px) {
  .workspace--manager .manager-parts-v2,
  .workspace--producer .manager-parts-v2 {
    gap: 12px;
    padding-bottom: 108px;
    overflow-x: clip;
  }
  .manager-parts-v2__heading {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .manager-parts-v2__heading > div:first-child {
    display: grid !important;
    gap: 3px !important;
  }
  .manager-parts-v2__heading-actions {
    display: grid;
    width: 100%;
    grid-template-columns: 46px minmax(0, 1fr);
  }
  .manager-parts-v2__heading-actions .button {
    width: 100%;
    min-width: 0;
    padding-inline: 7px;
    font-size: 11px;
  }
  .manager-parts-v2__heading-actions > .button:nth-child(2) {
    display: none;
  }
  .manager-parts-v2__add-trigger {
    width: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    border-color: var(--brand-800);
    background: var(--brand-800);
    color: white;
  }
  .manager-parts-v2__add-trigger:hover:not(:disabled) {
    border-color: #054b9f;
    background: #054b9f;
    color: white;
  }
  .manager-parts-v2__add-trigger > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .workspace--manager .manager-parts-v2__workbench,
  .workspace--producer .manager-parts-v2__workbench {
    display: block !important;
    width: 100%;
    max-width: 100%;
  }
  .manager-parts-v2__main {
    display: block;
  }
  .manager-parts-v2__inspector,
  .manager-parts-v2__inline-quick,
  .manager-parts-v2__table-wrap {
    display: none;
  }
  .manager-parts-v2__inspector.is-selected { display: block; }
  .manager-parts-v2__list {
    width: 100%;
    border-radius: var(--radius-sm);
  }
  .manager-parts-v2__list > .panel__header {
    padding: 15px 14px 10px;
  }
  .manager-parts-v2__list-toolbar {
    display: grid;
    gap: 7px;
    padding: 10px 14px 13px;
  }
  .manager-parts-v2__list-toolbar .search {
    width: 100%;
  }
  .manager-parts-v2__cards {
    display: grid;
    gap: 10px;
    padding: 12px;
  }
  .manager-parts-v2__bulk-toolbar { padding: 8px 12px; gap: 6px; }
  .manager-parts-v2__bulk-toolbar > div { width: 100%; }
  .manager-parts-bulk-selection { justify-content: space-between; }
  .manager-parts-bulk-selection > [role="status"] { flex: 1; text-align: end; }
  .manager-parts-select-all { display: inline-flex; align-items: center; }
  .manager-parts-bulk-actions .button { flex: 1; }
  .manager-part-selection-target { width: 44px; min-width: 44px; }
  .manager-parts-v2__cards article {
    display: grid;
    min-width: 0;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-xs);
    background: var(--paper);
  }
  .manager-parts-v2__cards article.is-selected { border-color: var(--brand-700); }
  .manager-parts-v2__cards article.is-bulk-selected { border-color: var(--brand-700); background: var(--brand-050); }
  .manager-parts-v2__cards article > header {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 4px;
  }
  .manager-parts-v2__cards article > header strong { font-size: 13px; }
  .manager-parts-v2__cards [data-manager-delete] { color: var(--red-700); width: 44px; height: 44px; }
  .manager-parts-v2__cards .manager-part-name { overflow-wrap: anywhere; padding: 0; border: 0; cursor: default; }
  .manager-parts-v2__cards .manager-part-inline-field input, .manager-parts-v2__cards .manager-part-inline-field select { font-size: 16px; }
  .manager-parts-v2__cards .manager-part-value { min-width: 0; }
  .manager-part-card__dimensions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }
  .manager-part-card__dimensions .manager-part-value,
  .manager-part-card__materials .manager-part-value {
    padding: 8px;
    border-color: var(--ink-150);
    background: var(--ink-050);
  }
  .manager-part-card__dimensions .manager-part-value { text-align: center; }
  .manager-part-card__dimensions strong { font-size: 13px; }
  .manager-part-card__materials {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }
  .manager-part-card__materials .manager-part-value {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .manager-part-card__materials .manager-part-value > span:last-child { display: grid; min-width: 0; gap: 3px; }
  .manager-part-card__materials svg { flex-shrink: 0; color: var(--brand-700); }
  .manager-part-card__materials strong { font-size: 10px; overflow-wrap: anywhere; }
  .manager-part-card__materials small,
  .manager-part-card__dimensions small { color: var(--ink-600); font-size: 10px; }
  .manager-parts-v2__savebar {
    z-index: 38;
    bottom: 72px;
    grid-template-columns: minmax(0, 1fr) minmax(124px, auto);
    gap: 8px;
    margin-inline: -6px;
    padding: 9px;
    border-radius: 12px 12px 0 0;
  }
  .manager-parts-v2__savebar > .button:nth-of-type(1) {
    display: none;
  }
  .producer-parts-v2 .manager-parts-v2__savebar > .button:nth-of-type(1) {
    display: inline-flex;
  }
  .manager-parts-v2__savebar > .button:last-child {
    width: 100%;
    min-width: 0;
    padding-inline: 10px;
  }
  .manager-parts-v2__save-copy small {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .manager-parts-v2 .overlay {
    align-items: flex-end;
  }
  .manager-parts-v2 .drawer {
    width: 100%;
    max-height: min(92dvh, 900px);
    border: 0;
    border-radius: 22px 22px 0 0;
    animation: slide-up 180ms ease-out;
  }
  .manager-parts-v2 .drawer__handle {
    display: block;
  }
  .manager-parts-v2 .drawer__header {
    padding-block: 10px;
  }
  .manager-parts-v2 .drawer__body {
    padding-top: 14px;
    padding-bottom: max(18px, env(safe-area-inset-bottom));
  }
  .manager-parts-v2 .manager-quick-workflow {
    gap: 14px;
  }
  .manager-parts-v2 .manager-quick-workflow__header-actions > span {
    display: none;
  }
  .manager-parts-v2 .manager-quick-steps {
    grid-template-columns: repeat(5, minmax(126px, 1fr));
    scroll-snap-type: x proximity;
  }
  .manager-parts-v2 .manager-quick-steps li {
    scroll-snap-align: center;
  }
  .manager-parts-v2 .manager-quick-step__active {
    min-height: 124px;
  }
  .manager-parts-v2 .manager-quick-step__input,
  .manager-parts-v2 .manager-quick-step__input input {
    min-height: 58px;
  }
  .manager-parts-v2 .manager-quick-step__input input {
    font-size: 24px;
  }
  .manager-parts-v2 .manager-quick-workflow__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .manager-parts-v2 .manager-quick-workflow__actions .button {
    width: 100%;
  }
  .manager-parts-v2 .manager-edge-editor {
    padding: 0;
  }
  .manager-parts-v2 .manager-edge-canvas {
    min-height: 410px;
    padding-inline: 52px;
  }
  .manager-parts-v2 .manager-edge-editor.is-compact .manager-edge-canvas {
    position: sticky;
    z-index: 8;
    top: 0;
    min-height: 290px;
    padding-block: 68px 66px;
    background: linear-gradient(180deg, var(--paper), var(--ink-050));
    box-shadow: 0 8px 22px rgba(14, 36, 61, .1);
  }
  .manager-parts-v2 .manager-edge-editor.is-compact > .manager-edge-editor__header,
  .manager-parts-v2 .manager-edge-editor.is-compact > .manager-edge-editor__instruction {
    display: none;
  }
  .manager-parts-v2 .manager-edge-editor__compact-entry input {
    scroll-margin-top: 302px;
    scroll-margin-bottom: 18px;
  }
  .manager-prefix-editor__identity {
    grid-template-columns: 1fr;
  }
  .manager-prefix-editor__recovery {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .manager-prefix-editor__recovery .info-strip__body {
    grid-column: 2;
  }
  .manager-prefix-editor__recovery .info-strip__action {
    width: 100%;
    grid-column: 1 / -1;
    margin-inline-start: 0;
  }
  .manager-prefix-editor__recovery .info-strip__action .button {
    width: 100%;
  }
  .manager-prefix-editor__actions {
    position: sticky;
    z-index: 9;
    bottom: 0;
    flex-wrap: wrap;
    padding: 10px 0 max(2px, env(safe-area-inset-bottom));
    background: var(--paper);
  }
  .manager-prefix-editor__actions > div {
    width: 100%;
  }
  .manager-prefix-editor__actions > div .button {
    width: 100%;
    min-width: 0 !important;
  }
}

@keyframes slide-up {
  from { transform: translateY(24px); opacity: .7; }
  to { transform: translateY(0); opacity: 1; }
}

/* Authoritative optimizer review studio */
[data-optimization-stage="review"] { display: grid; min-width: 0; gap: 18px; }
[data-optimization-stage="configure"] { display: grid; min-width: 0; gap: 18px; }
.optimizer-review-studio { display: grid; min-width: 0; gap: 15px; }
.optimizer-review-results { display: grid; min-width: 0; gap: 15px; }
.optimizer-review-command { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(410px, .7fr); align-items: center; gap: 24px; padding: 14px 16px; border: 1px solid var(--glass-border); border-radius: var(--radius-sm); background: var(--brand-glass); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); }
.optimizer-review-view-tabs { display: flex; min-width: 0; align-items: center; gap: 20px; }
.optimizer-review-view-tabs > button { align-self: stretch; min-height: 45px; padding: 7px 4px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--ink-500); font-size: 13px; font-weight: 680; cursor: pointer; }
.optimizer-review-view-tabs > button:hover { color: var(--ink-950); }
.optimizer-review-view-tabs > button.is-active { border-bottom-color: var(--brand-700); color: var(--brand-900); }
.optimizer-review-view-tabs > button:disabled { color: var(--ink-300); cursor: not-allowed; }
.optimizer-review-view-tabs > button:disabled:hover { color: var(--ink-300); }
.optimizer-review-view-tabs > span { display: inline-flex; min-width: 0; align-items: center; gap: 7px; margin-inline-start: 2px; color: var(--ink-500); font-size: 10px; overflow-wrap: anywhere; }
.optimizer-review-view-tabs code { font-size: inherit; }
.optimizer-live-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--green-700); box-shadow: 0 0 0 4px var(--green-100); }
.optimizer-review-summary { display: grid; grid-template-columns: repeat(4, minmax(70px, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: rgba(255,255,255,.94); box-shadow: 0 4px 14px rgba(7,20,47,.04); }
.optimizer-review-summary > div { display: grid; min-width: 0; gap: 4px; padding: 10px 13px; border-inline-end: 1px solid var(--ink-200); }
.optimizer-review-summary > div:last-child { border-inline-end: 0; }
.optimizer-review-summary span { color: var(--ink-500); font-size: 9px; font-weight: 690; letter-spacing: .04em; text-transform: uppercase; }
.optimizer-review-summary strong { overflow: hidden; color: var(--ink-950); font-size: 18px; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-review-studio > .info-strip, .optimizer-review-results > .info-strip { padding-block: 11px; }
.optimizer-mobile-mode, .optimizer-mobile-review-action { display: none; }

.optimizer-inline-settings { display: grid; min-width: 0; gap: 16px; padding: 22px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: linear-gradient(135deg, #fff 0%, #f5faf9 100%); box-shadow: 0 10px 28px rgba(7,20,47,.065); }
.optimizer-inline-settings:focus { outline: 2px solid rgba(var(--brand-rgb),.2); outline-offset: 2px; }
.optimizer-inline-settings > header { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.optimizer-inline-settings > header h2 { margin: 2px 0 5px; color: var(--ink-950); font-size: 20px; }
.optimizer-inline-settings > header p:last-child { max-width: 720px; margin: 0; color: var(--ink-600); font-size: 11px; line-height: 1.55; }
.optimizer-inline-settings__icon { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--brand-200); border-radius: 10px; background: var(--brand-050); color: var(--brand-800); }
.optimizer-inline-settings__contract { display: grid; min-width: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
.optimizer-inline-settings__contract > div { display: grid; min-width: 0; gap: 6px; padding: 14px; border-inline-end: 1px solid var(--ink-200); }
.optimizer-inline-settings__contract > div:last-child { border-inline-end: 0; }
.optimizer-inline-settings__contract span { color: var(--ink-500); font-size: 9px; font-weight: 680; }
.optimizer-inline-settings__contract strong { color: var(--ink-900); font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }

.optimizer-quick-settings { display: grid; min-width: 0; grid-template-columns: minmax(265px, .9fr) minmax(0, 3.1fr); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: 0 7px 22px rgba(7,20,47,.065); }
.optimizer-quick-settings > header { display: flex; min-width: 0; flex-wrap: wrap; align-content: center; align-items: center; gap: 8px 10px; padding: 12px 14px; border-inline-end: 1px solid var(--ink-200); background: linear-gradient(135deg, var(--ink-050), var(--brand-050)); }
.optimizer-quick-settings > header > div:not(.optimizer-quick-settings__actions) { min-width: 0; flex: 1 1 150px; }
.optimizer-quick-settings > header h2 { margin: 0 0 2px; color: var(--ink-900); font-size: 12px; }
.optimizer-quick-settings > header p { margin: 0; color: var(--ink-500); font-size: 8px; line-height: 1.35; }
.optimizer-quick-settings > header .status { min-height: 23px; padding: 3px 7px; font-size: 8px; }
.optimizer-quick-settings__actions { display: flex; width: 100%; min-width: 0; align-items: center; gap: 5px; }
.optimizer-quick-settings__actions .status { margin-inline-end: auto; }
.optimizer-quick-settings__actions > button, .optimizer-quick-settings__notice > button { min-height: 27px; padding: 4px 7px; border: 1px solid var(--ink-300); border-radius: 5px; background: #fff; color: var(--ink-700); font: inherit; font-size: 8px; font-weight: 720; cursor: pointer; }
.optimizer-quick-settings__actions > button.is-primary { border-color: var(--brand-800); background: var(--brand-800); color: #fff; }
.optimizer-quick-settings__actions > button:disabled, .optimizer-quick-settings__notice > button:disabled { cursor: not-allowed; opacity: .45; }
.optimizer-quick-settings__heading-icon, .optimizer-quick-settings__icon { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border: 1px solid var(--ink-200); border-radius: 8px; background: #fff; color: var(--brand-800); }
.optimizer-quick-settings__heading-icon { border-color: var(--ink-200); color: var(--ink-800); }
.optimizer-quick-settings__notice { grid-column: 1 / -1; grid-row: 2; display: flex; min-height: 37px; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 11px; border-top: 1px solid #f1c47b; background: #fff8ea; color: #7c4a00; font-size: 9px; }
.optimizer-quick-settings__notice.is-error { border-color: #efb2b2; background: #fff1f1; color: #8e2626; }
.optimizer-quick-settings__grid { display: grid; min-width: 0; grid-column: 2; grid-row: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.optimizer-quick-settings__item { display: grid; min-width: 0; min-height: 96px; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 10px 11px; border: 0; border-inline-end: 1px solid var(--ink-150); background: #fff; color: var(--ink-800); font: inherit; text-align: start; }
.optimizer-quick-settings__item:last-child { border-inline-end: 0; }
.optimizer-quick-settings__item > label, .optimizer-quick-settings__item > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }
.optimizer-quick-settings__item small { overflow: hidden; color: var(--ink-500); font-size: 8px; font-style: normal; font-weight: 680; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-quick-settings__item strong { min-width: 0; color: var(--ink-950); font-size: 10px; font-weight: 740; line-height: 1.35; overflow-wrap: anywhere; }
.optimizer-quick-settings__item em { color: var(--ink-500); font-size: 7px; font-style: normal; line-height: 1.35; }
.optimizer-quick-settings__item > svg { flex: 0 0 auto; color: var(--ink-400, #8795a8); }
.optimizer-quick-settings__item--edge { background: #fbfcfc; }
.optimizer-quick-settings__input { display: flex; min-width: 0; align-items: center; }
.optimizer-quick-settings__input input { width: 100%; min-width: 0; height: 29px; padding: 4px 7px; border: 1px solid var(--ink-300); border-radius: 5px; background: #fff; color: var(--ink-950); font-family: var(--font-mono); font-size: 10px; font-weight: 720; }
.optimizer-quick-settings__input input:focus { border-color: var(--brand-700); outline: 2px solid rgba(var(--brand-rgb),.13); }
.optimizer-quick-settings__inherit { max-width: 62px; padding: 3px 5px; border: 1px solid var(--ink-200); border-radius: 999px; background: var(--ink-050); color: var(--ink-500); font: inherit; font-size: 7px; line-height: 1.2; cursor: pointer; }
.optimizer-quick-settings__inherit:disabled { cursor: default; opacity: .72; }
.optimizer-quick-settings__switch { position: relative; width: 36px; height: 21px; padding: 0; border: 0; border-radius: 999px; background: var(--ink-300); opacity: 1; cursor: pointer; }
.optimizer-quick-settings__switch:disabled { cursor: not-allowed; opacity: .5; }
.optimizer-quick-settings__switch[aria-checked="true"] { background: var(--brand-700); }
.optimizer-quick-settings__switch > span { position: absolute; top: 3px; inset-inline-start: 3px; width: 15px; height: 15px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(7,20,47,.25); }
.optimizer-quick-settings__switch[aria-checked="true"] > span { inset-inline-start: 18px; }

/* First-run setup keeps saved parts beside the primary run surface. */
.optimizer-review-workspace.optimizer-review-workspace--setup { grid-template-columns: 210px minmax(0, 1fr); min-height: 670px; }
.optimizer-setup-parts > header { align-items: center; }
.optimizer-setup-parts > header > svg { color: var(--brand-800); }
.optimizer-setup-parts__scroll { display: grid; min-height: 0; flex: 1 1 auto; align-content: start; overflow-y: auto; scrollbar-gutter: stable; scrollbar-width: thin; }
.optimizer-setup-parts__scroll > article { display: grid; min-width: 0; grid-template-columns: 31px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 11px 9px; border-bottom: 1px solid var(--ink-150); background: var(--paper); }
.optimizer-setup-part__icon { display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid var(--ink-200); border-radius: 7px; background: var(--ink-050); color: var(--brand-800); }
.optimizer-setup-parts__scroll article > div { display: grid; min-width: 0; gap: 3px; }
.optimizer-setup-parts__scroll article strong { overflow: hidden; color: var(--ink-900); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-setup-parts__scroll article small { overflow: hidden; color: var(--ink-500); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-setup-part__quantity { display: grid; min-width: 30px; gap: 2px; text-align: center; }
.optimizer-setup-part__quantity strong { font-family: var(--font-mono); font-size: 13px !important; }
.optimizer-setup-parts > .button { width: calc(100% - 18px); min-height: 36px; margin: 9px; padding-inline: 8px; font-size: 9px; }
.optimizer-review-board-column.optimizer-setup-board { grid-template-rows: minmax(0, 1fr); }
.optimizer-setup-board__frame { display: grid; min-width: 0; min-height: 0; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; padding: 18px; background: radial-gradient(circle at 50% 10%, #f9fbfb, #eef2f2 76%); }
.optimizer-setup-board__frame > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.optimizer-setup-board__frame > header h2 { margin: 3px 0 0; font-size: 17px; }
.optimizer-setup-board__canvas { display: grid; min-height: 430px; align-content: center; justify-items: center; gap: 10px; padding: 34px; border: 1px dashed #91aaae; border-radius: 7px; background-color: #dfe6e7; background-image: radial-gradient(circle at 21% 32%, rgba(14,80,91,.08) 0 1px, transparent 1.4px), radial-gradient(circle at 74% 67%, rgba(14,80,91,.055) 0 1px, transparent 1.4px), linear-gradient(rgba(255,255,255,.45), rgba(255,255,255,.16)); background-size: 37px 31px, 53px 47px, 100% 100%; text-align: center; box-shadow: inset 0 0 0 1px rgba(255,255,255,.65); }
.optimizer-setup-board__icon { display: grid; width: 62px; height: 62px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: rgba(255,255,255,.88); color: var(--brand-800); box-shadow: 0 8px 22px rgba(7,20,47,.08); }
.optimizer-setup-board__canvas h3 { margin: 2px 0 0; color: var(--ink-950); font-size: 18px; }
.optimizer-setup-board__canvas p { max-width: 470px; margin: 0 0 6px; color: var(--ink-600); font-size: 11px; line-height: 1.7; }
.optimizer-setup-board__frame > p { margin: 0; color: var(--ink-500); font-size: 9px; line-height: 1.55; text-align: center; }

.optimizer-review-workspace { --optimizer-sheet-rail-max: clamp(500px, 72dvh, 720px); display: grid; min-width: 0; min-height: 670px; grid-template-columns: 180px minmax(420px, 1fr) 310px; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: 0 12px 34px rgba(7,20,47,.08); }
.optimizer-review-sheets { display: flex; min-width: 0; min-height: 0; max-block-size: var(--optimizer-sheet-rail-max); align-self: start; flex-direction: column; overflow: hidden; border-inline-end: 1px solid var(--ink-200); background: #fbfcfc; }
.optimizer-review-sheets > header { display: flex; min-height: 68px; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 13px 11px 10px; border-bottom: 1px solid var(--ink-150); }
.optimizer-review-sheets > header .eyebrow { margin-bottom: 4px; }
.optimizer-review-sheets > header h2 { margin: 0; color: var(--ink-700); font-size: 11px; font-weight: 620; letter-spacing: 0; }
.optimizer-review-sheets > header > svg { flex: 0 0 auto; color: var(--green-700); }
.optimizer-sheet-scroll { display: grid; min-height: 0; flex: 1 1 auto; align-content: start; overflow-y: auto; scrollbar-gutter: stable; scrollbar-width: thin; overscroll-behavior: contain; }
.optimizer-sheet-scroll > button { position: relative; display: grid; width: 100%; min-width: 0; min-height: 84px; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 7px; padding: 9px 8px; border: 0; border-bottom: 1px solid var(--ink-150); background: transparent; color: var(--ink-800); text-align: start; cursor: pointer; }
.optimizer-sheet-scroll > button:hover { background: var(--brand-050); }
.optimizer-sheet-scroll > button.is-active { z-index: 1; background: var(--brand-050); box-shadow: inset 3px 0 0 var(--brand-700); }
html[dir="rtl"] .optimizer-sheet-scroll > button.is-active { box-shadow: inset -3px 0 0 var(--brand-700); }
.optimizer-sheet-scroll > button > span:nth-child(2) { display: grid; min-width: 0; align-self: start; gap: 3px; padding-top: 1px; }
.optimizer-sheet-scroll strong { overflow: hidden; color: var(--ink-900); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-sheet-scroll small { color: var(--ink-500); font-size: 9px; line-height: 1.3; }
.optimizer-sheet-state { display: inline-flex; min-width: 0; grid-column: 2; align-items: center; gap: 4px; color: var(--amber-800); font-size: 10px; font-weight: 680; }
.optimizer-sheet-state svg { flex: 0 0 auto; }
.optimizer-sheet-scroll > button.is-reviewed .optimizer-sheet-state { color: var(--green-700); }
.optimizer-sheet-mini { display: block; width: 44px; height: 34px; align-self: start; border: 1px solid var(--ink-300); background: var(--paper); }
.optimizer-sheet-mini--empty { background: repeating-linear-gradient(135deg, var(--ink-050), var(--ink-050) 4px, var(--ink-100) 4px, var(--ink-100) 5px); }
.optimizer-sheet-mini__stock { fill: #f2f5f5; }
.optimizer-sheet-mini__part { fill: #fff; stroke: var(--brand-700); stroke-width: 10px; vector-effect: non-scaling-stroke; }

.optimizer-review-board-column { display: grid; min-width: 0; grid-template-rows: minmax(0, 1fr) auto; background: var(--paper); }
.optimizer-review-board-column > .info-strip { align-self: start; margin: 18px; width: auto; }
.optimizer-board-frame { display: grid; min-width: 0; min-height: 0; grid-template-rows: auto auto minmax(0, 1fr); grid-auto-rows: auto; padding: 17px 18px 11px; background: var(--paper); }
.optimizer-board-frame:fullscreen { padding: 24px; background: var(--paper); }
.optimizer-board-frame:fullscreen .optimizer-board-viewport { min-height: 0; }
.optimizer-board-toolbar { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 14px; padding-bottom: 11px; }
.optimizer-board-toolbar > div:first-child { min-width: 0; }
.optimizer-board-toolbar h2 { margin: 0 0 5px; font-size: 16px; overflow-wrap: anywhere; }
.optimizer-board-toolbar p { margin: 0; color: var(--ink-500); font-size: 11px; overflow-wrap: anywhere; }
.optimizer-board-cut-summary { display: grid; min-width: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; margin-bottom: 14px; border-block: 1px solid var(--ink-150); }
.optimizer-board-cut-summary > div { display: grid; min-width: 0; gap: 3px; padding: 8px 10px; border-inline-end: 1px solid var(--ink-150); }
.optimizer-board-cut-summary > div:last-child { border-inline-end: 0; }
.optimizer-board-cut-summary span { overflow: hidden; color: var(--ink-600); font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-board-cut-summary strong { overflow: hidden; color: var(--ink-900); font-family: var(--font-mono); font-size: 13px; font-weight: 760; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-board-tools { display: inline-flex; flex: 0 0 auto; align-items: center; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); }
.optimizer-board-tools > button { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; gap: 6px; padding: 6px 10px; border: 0; border-inline-end: 1px solid var(--ink-150); background: transparent; color: var(--ink-700); cursor: pointer; }
.optimizer-board-tools > button:first-child { border-start-start-radius: inherit; border-end-start-radius: inherit; }
.optimizer-board-tools > button:last-child { border-start-end-radius: inherit; border-end-end-radius: inherit; }
.optimizer-board-tools > button:last-child { border-inline-end: 0; }
.optimizer-board-tools > button:hover:not(:disabled) { background: var(--brand-050); color: var(--brand-900); }
.optimizer-board-tools > button:active:not(:disabled) { background: var(--brand-100); }
.optimizer-board-tools > button:focus-visible { position: relative; z-index: 1; }
.optimizer-board-tools > button:disabled { cursor: not-allowed; color: var(--ink-300); }
.optimizer-board-tools span { min-width: 4ch; font-family: var(--font-mono); font-size: 10px; font-variant-numeric: tabular-nums; }
.optimizer-board-viewport { position: relative; min-width: 0; min-height: 420px; overflow: hidden; contain: paint; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--ink-050); direction: ltr; touch-action: none; cursor: grab; transition: border-color 160ms ease, background-color 180ms ease; }
.optimizer-board-viewport,
.optimizer-board-viewport * { user-select: none; -webkit-user-select: none; }
.optimizer-board-viewport:hover { border-color: var(--ink-300); }
.optimizer-board-viewport:focus-visible { border-color: var(--brand-700); outline: 2px solid var(--brand-700); outline-offset: 2px; }
.optimizer-board-viewport:active,
.optimizer-board-viewport[data-board-interaction="panning"],
.optimizer-board-viewport[data-board-interaction="pinching"] { border-color: var(--brand-700); cursor: grabbing; background: var(--ink-100); }
.optimizer-board-viewport[data-board-interaction="zooming"] { border-color: var(--brand-700); }
.optimizer-board-viewport[data-board-interaction="panning"] .optimizer-board-placement,
.optimizer-board-viewport[data-board-interaction="pinching"] .optimizer-board-placement { cursor: grabbing; }
.optimizer-board-svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.optimizer-board-stock { fill: var(--paper); stroke: var(--ink-700); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.optimizer-board-waste-field { opacity: .27; }
.optimizer-board-pattern-line { stroke: #84939e; stroke-width: 1.3px; }
.optimizer-board-reusable-pattern { fill: none; stroke: #16999c; stroke-width: 1.4px; }
.optimizer-board-trim-zone { fill: rgba(239,149,0,.18); pointer-events: none; }
.optimizer-board-trim { fill: none; stroke: var(--amber-500); stroke-width: 1px; stroke-dasharray: 7 5; }
.optimizer-board-offcut rect { stroke-width: 1.5px; opacity: .64; }
.optimizer-board-offcut.is-reusable rect { fill: rgba(18, 157, 159, .12); stroke: #068789; stroke-dasharray: 6 4; }
.optimizer-board-offcut.is-waste rect { fill: rgba(87, 102, 113, .12); stroke: #7b8995; stroke-dasharray: 4 4; }
.optimizer-board-offcut text { fill: var(--brand-900); font-family: var(--font-ui); font-weight: 700; }
.optimizer-offcut-dimension { fill: var(--ink-800); font-family: var(--font-mono); font-weight: 600; pointer-events: none; paint-order: stroke fill; stroke: var(--paper); stroke-width: 3px; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.optimizer-offcut-sizes { min-width: 0; }
.optimizer-board-legend.optimizer-offcut-sizes > summary { min-height: 44px; font-size: 11px; }
.optimizer-offcut-sizes ul { max-height: 180px; overflow: auto; margin: 8px 0 0; padding: 0; list-style: none; }
.optimizer-offcut-sizes li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--ink-150); color: var(--ink-600); font-size: 11px; }
.optimizer-offcut-sizes li bdi { flex: 0 0 auto; color: var(--ink-800); font-family: var(--font-mono); }
.optimizer-board-placement { cursor: pointer; outline: none; }
.optimizer-board-placement rect { fill: var(--paper); stroke: var(--ink-500); stroke-width: .85px; transition: fill 150ms ease, stroke 150ms ease, stroke-width 150ms ease; }
.optimizer-board-placement:hover rect, .optimizer-board-placement:focus-visible rect { fill: var(--brand-050); stroke: var(--brand-800); stroke-width: 2px; }
.optimizer-board-placement.is-selected rect { fill: var(--brand-100); stroke: var(--brand-800); stroke-width: 2px; }
.optimizer-board-placement[data-placement-step-state="pending"] rect { fill: var(--paper); stroke: var(--ink-500); }
.optimizer-board-placement[data-placement-step-state="pending"] .optimizer-board-part-label { fill: var(--ink-600); }
.optimizer-board-placement[data-placement-step-state="complete"] rect { fill: var(--brand-050); stroke: var(--ink-500); }
.optimizer-board-placement.is-active-step rect { fill: var(--green-100); stroke: var(--green-700); stroke-width: 2px; }
.optimizer-board-placement[data-placement-step-state="pending"]:hover rect,
.optimizer-board-placement[data-placement-step-state="pending"]:focus-visible rect,
.optimizer-board-placement.is-selected:not(.is-active-step) rect { fill: var(--brand-100); stroke: var(--brand-800); stroke-width: 2px; }
.optimizer-board-placement.is-selected.is-active-step rect { fill: var(--green-100); stroke: var(--brand-800); stroke-width: 2.5px; }
.optimizer-board-placement:focus-visible rect { stroke: var(--brand-800); stroke-width: 3px; }
.optimizer-board-part-label { fill: var(--ink-900); font-family: var(--font-ui); font-weight: 720; pointer-events: none; }
.optimizer-board-part-size { fill: var(--ink-600); font-family: var(--font-mono); pointer-events: none; transition: opacity 140ms ease; }
.optimizer-board-active-source-wash { fill: rgba(var(--brand-rgb),.045); pointer-events: none; }
.optimizer-board-active-source-outline { fill: none; stroke: var(--brand-700); stroke-width: 1.25px; stroke-dasharray: 8 5; pointer-events: none; }
.optimizer-board-active-result { fill: rgba(31,143,82,.17); stroke: #147447; stroke-width: 3px; pointer-events: none; filter: drop-shadow(0 0 2px rgba(20,116,71,.22)); }
.optimizer-board-active-result.is-matched { fill: none; stroke: none; filter: none; }
.optimizer-board-active-remainder { pointer-events: none; }
.optimizer-board-active-remainder__base { stroke-width: 3px; }
.optimizer-board-active-remainder.is-reusable .optimizer-board-active-remainder__base { fill: rgba(18,157,159,.2); stroke: #007d80; stroke-dasharray: 7 4; }
.optimizer-board-active-remainder.is-waste .optimizer-board-active-remainder__base { fill: rgba(87,102,113,.22); stroke: #566671; stroke-dasharray: 5 4; }
.optimizer-board-active-remainder__pattern { stroke: none; opacity: .72; }
.optimizer-board-leading-trim { fill: rgba(239,149,0,.5); stroke: #c96500; stroke-width: 1px; pointer-events: none; }
.optimizer-board-second-trim-region { fill: rgba(80,79,184,.34); stroke: #514fb8; stroke-width: 1.25px; pointer-events: none; }
.optimizer-board-second-trim-region.is-active { fill: rgba(80,79,184,.44); stroke-width: 2px; filter: drop-shadow(0 0 2px rgba(80,79,184,.28)); }
.optimizer-board-kerf { fill: rgba(73,86,97,.38); pointer-events: none; }
.optimizer-board-kerf.is-done { fill: rgba(var(--brand-rgb),.48); }
.optimizer-board-kerf.is-active { fill: rgba(213,111,0,.76); filter: drop-shadow(0 0 2px rgba(213,111,0,.35)); }
.optimizer-board-cut { pointer-events: none; }
.optimizer-board-cut line { stroke: var(--ink-500); stroke-width: .75px; stroke-dasharray: 6 5; }
.optimizer-board-cut circle { fill: #fff; stroke: #7a8794; stroke-width: 1.2px; transition: opacity 140ms ease; }
.optimizer-board-cut text { fill: var(--ink-700); font-family: var(--font-mono); font-weight: 800; transition: opacity 140ms ease; }
.optimizer-board-cut.is-done line { stroke: var(--brand-700); }
.optimizer-board-cut.is-done circle { fill: var(--brand-700); stroke: var(--brand-700); }
.optimizer-board-cut.is-done text { fill: #fff; }
.optimizer-board-cut.is-active line { stroke: #d56f00; stroke-width: 2.5px; stroke-dasharray: none; }
.optimizer-board-cut.is-active circle { fill: var(--amber-500); stroke: #fff; stroke-width: 2px; }
.optimizer-board-cut.is-active text { fill: #fff; }
.optimizer-board-active-result, .optimizer-board-active-remainder, .optimizer-board-kerf.is-active, .optimizer-board-cut.is-active { animation: optimizer-board-focus-arrive 220ms cubic-bezier(.16, 1, .3, 1); }
@keyframes optimizer-board-focus-arrive { from { opacity: .52; } to { opacity: 1; } }
.optimizer-board-trim-dimension { pointer-events: none; transition: opacity 140ms ease; }
.optimizer-board-trim-dimension__measure, .optimizer-board-trim-dimension__cap { stroke: #c96500; stroke-width: 1.6px; }
.optimizer-board-trim-dimension__leader { stroke: #c96500; stroke-width: 1.1px; stroke-dasharray: 3 3; }
.optimizer-board-trim-dimension__badge { fill: rgba(255,255,255,.96); stroke: #d78100; stroke-width: 1.25px; }
.optimizer-board-trim-dimension text { fill: #9a4f00; font-family: var(--font-ui); font-weight: 780; paint-order: stroke fill; stroke: rgba(255,255,255,.94); stroke-width: 3px; stroke-linejoin: round; }
[data-board-detail="overview"] .optimizer-board-part-size,
[data-board-detail="overview"] .optimizer-board-offcut text,
[data-board-detail="overview"] .optimizer-board-cut:not(.is-active) circle,
[data-board-detail="overview"] .optimizer-board-cut:not(.is-active) text,
[data-board-detail="overview"] .optimizer-board-trim-dimension,
[data-board-detail="standard"] .optimizer-board-trim-dimension { opacity: 0; }
.optimizer-board-material-balance { display: grid; min-width: 0; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 8px 13px; padding-top: 10px; }
.optimizer-board-material-balance > header { display: grid; min-width: 0; gap: 2px; }
.optimizer-board-material-balance > header span { color: var(--ink-800); font-size: 10px; font-weight: 740; }
.optimizer-board-material-balance > header small { color: var(--ink-500); font-size: 8px; }
.optimizer-board-material-balance.is-unavailable > header { grid-column: 1 / -1; }
.optimizer-material-balance-bar { display: flex; min-width: 0; height: 11px; overflow: hidden; border: 1px solid var(--ink-300); border-radius: 999px; background: #fff; box-shadow: inset 0 1px 2px rgba(7,20,47,.08); }
.optimizer-material-balance-bar > i { display: block; min-width: 0; height: 100%; }
.optimizer-material-balance-bar > i.is-placed { background: var(--brand-700); }
.optimizer-material-balance-bar > i.is-reusable { background: #79c9c2; }
.optimizer-material-balance-bar > i.is-waste { background: repeating-linear-gradient(135deg, #d8dfe2, #d8dfe2 4px, #bcc7cc 4px, #bcc7cc 5px); }
.optimizer-board-material-balance dl { display: grid; min-width: 0; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; margin: 0; border: 1px solid rgba(132,147,158,.34); border-radius: var(--radius-xs); background: rgba(255,255,255,.76); }
.optimizer-board-material-balance dl > div { display: grid; min-width: 0; gap: 3px; padding: 7px 9px; border-inline-end: 1px solid var(--ink-150); }
.optimizer-board-material-balance dl > div:last-child { border-inline-end: 0; }
.optimizer-board-material-balance dt { display: flex; min-width: 0; align-items: center; gap: 5px; overflow: hidden; color: var(--ink-500); font-size: 8px; font-weight: 690; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-board-material-balance dt > i { display: inline-block; width: 8px; height: 8px; flex: 0 0 auto; border-radius: 2px; }
.optimizer-board-material-balance dt > i.is-placed { background: var(--brand-700); }
.optimizer-board-material-balance dt > i.is-reusable { background: #79c9c2; }
.optimizer-board-material-balance dt > i.is-waste { border: 1px solid #9caaaf; background: repeating-linear-gradient(135deg, #e3e8ea, #e3e8ea 2px, #b7c1c6 2px, #b7c1c6 3px); }
.optimizer-board-material-balance dd { min-width: 0; margin: 0; overflow: hidden; color: var(--ink-900); font-family: var(--font-mono); font-size: 10px; font-weight: 730; text-overflow: ellipsis; white-space: nowrap; }
html[lang="fa"] :is(.optimizer-board-cut-summary strong, .optimizer-board-tools span, .optimizer-board-material-balance dd) { font-family: var(--font-fa); font-variant-numeric: tabular-nums; letter-spacing: normal; }
.optimizer-board-legend { min-width: 0; padding-top: 10px; color: var(--ink-600); font-size: 9px; }
.optimizer-board-legend > summary { display: flex; width: fit-content; min-height: 31px; align-items: center; gap: 6px; margin-inline-start: auto; padding: 5px 9px; border: 1px solid var(--ink-200); border-radius: 999px; background: rgba(255,255,255,.78); color: var(--ink-700); font-size: 9px; font-weight: 720; list-style: none; cursor: pointer; }
.optimizer-board-legend > summary::-webkit-details-marker { display: none; }
.optimizer-board-legend > summary svg { transition: transform 150ms ease; }
.optimizer-board-legend[open] > summary svg { transform: rotate(180deg); }
.optimizer-board-legend__content { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 7px 13px; padding-top: 9px; }
.optimizer-board-legend__content > span { display: inline-flex; align-items: center; gap: 5px; }
.optimizer-board-legend i { display: inline-block; width: 13px; height: 9px; border: 1px solid; background: #fff; }
.optimizer-board-legend i.is-part { border-color: var(--brand-700); }
.optimizer-board-legend i.is-source { border-color: var(--brand-800); border-style: dashed; background: rgba(var(--brand-rgb),.08); }
.optimizer-board-legend i.is-cut { height: 2px; border: 0; background: #d56f00; }
.optimizer-board-legend i.is-result { border-color: #147447; background: rgba(31,143,82,.22); }
.optimizer-board-legend i.is-kerf { width: 4px; border-color: #56636d; background: rgba(73,86,97,.5); }
.optimizer-board-legend i.is-trim { border-color: var(--amber-500); border-style: dashed; background: rgba(239,149,0,.18); }
.optimizer-board-legend i.is-second-trim { border-color: #514fb8; background: rgba(80,79,184,.36); }
.optimizer-board-legend i.is-reusable { border-color: #068789; border-style: dashed; background: var(--brand-100); }
.optimizer-board-legend i.is-waste { border-color: #7b8995; background: repeating-linear-gradient(135deg, transparent, transparent 2px, #aeb7be 2px, #aeb7be 3px); }
.optimizer-board-legend__trim { margin-inline-start: auto; }

.optimizer-playback { display: grid; min-width: 0; grid-template-columns: auto minmax(120px, 1fr); align-items: center; gap: 9px 12px; padding: 10px 16px 13px; border-top: 1px solid var(--ink-200); background: var(--paper); }
.optimizer-playback-controls { display: flex; align-items: center; gap: 5px; }
.optimizer-playback-controls > button { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid var(--ink-300); border-radius: 50%; background: var(--paper); color: var(--ink-700); cursor: pointer; }
.optimizer-playback-controls > button:hover:not(:disabled) { border-color: var(--brand-700); color: var(--brand-900); }
.optimizer-playback-controls > button:disabled { cursor: not-allowed; color: var(--ink-300); }
.optimizer-playback-controls > .optimizer-playback__play { width: 48px; height: 48px; border-color: var(--brand-800); background: var(--brand-800); color: #fff; box-shadow: 0 5px 13px rgba(var(--brand-rgb),.22); }
.optimizer-playback-controls > .optimizer-playback__play:hover:not(:disabled) { background: var(--brand-900); color: #fff; }
.optimizer-playback-controls label { display: inline-flex; min-height: 44px; align-items: center; gap: 5px; margin-inline-start: 3px; color: var(--ink-500); font-size: 9px; }
.optimizer-playback-controls select { min-height: 44px; padding: 4px 7px; border: 1px solid var(--ink-300); border-radius: 4px; background: var(--paper); color: var(--ink-800); font-size: 9px; }
.optimizer-step-card { display: grid; width: 100%; min-width: 0; min-height: 58px; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 7px; padding: 7px 8px; border: 1px solid var(--ink-200); border-radius: 6px; background: #fff; color: var(--ink-600); text-align: start; cursor: pointer; }
.optimizer-step-card:hover { border-color: var(--ink-300); background: var(--brand-050); color: var(--brand-900); }
.optimizer-step-card:focus-visible { outline: 2px solid var(--brand-800); outline-offset: 2px; }
.optimizer-step-card.is-past { border-color: var(--ink-200); background: var(--brand-050); color: var(--brand-800); }
.optimizer-step-card.is-active { border-color: var(--amber-500); background: #fff8e7; color: var(--ink-900); box-shadow: 0 0 0 2px rgba(239,149,0,.12); }
.optimizer-step-card__number { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid var(--ink-300); border-radius: 50%; background: #fff; color: var(--ink-600); font-family: var(--font-mono); font-size: 9px; font-weight: 800; }
.optimizer-step-card.is-past .optimizer-step-card__number { border-color: var(--brand-700); background: var(--brand-100); color: var(--brand-900); }
.optimizer-step-card.is-active .optimizer-step-card__number { border-color: var(--amber-500); background: var(--amber-100); color: var(--amber-800); }
.optimizer-step-card__body { display: grid; min-width: 0; gap: 4px; }
.optimizer-step-card__heading { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 5px; }
.optimizer-step-card__heading strong { min-width: 0; overflow: hidden; font-size: 9px; font-weight: 730; text-overflow: ellipsis; white-space: nowrap; }
.optimizer-step-card__heading > bdi { flex: 0 0 auto; padding: 2px 4px; border-radius: 3px; background: rgba(255,255,255,.78); color: var(--ink-500); font-family: var(--font-mono); font-size: 7px; font-weight: 720; }
.optimizer-step-card__body > small { min-width: 0; overflow: hidden; color: inherit; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

.optimizer-review-inspector { display: flex; min-width: 0; min-height: 0; flex-direction: column; border-inline-start: 1px solid var(--ink-200); background: var(--paper); }
.optimizer-inspector-tabs { display: grid; min-height: 50px; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--ink-200); }
.optimizer-inspector-tabs > button { padding: 8px 5px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--ink-500); font-size: 10px; font-weight: 680; cursor: pointer; }
.optimizer-inspector-tabs > button:hover { color: var(--ink-900); }
.optimizer-inspector-tabs > button.is-active { border-bottom-color: var(--brand-700); color: var(--brand-900); }
.optimizer-inspector-panel { display: grid; min-height: 0; align-content: start; gap: 13px; padding: 18px 16px; overflow-y: auto; }
.optimizer-inspector-panel > header { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 10px; }
.optimizer-inspector-panel > header > div { min-width: 0; }
.optimizer-inspector-panel > header .eyebrow { margin-bottom: 4px; }
.optimizer-inspector-panel > header h2 { margin: 0; font-size: 17px; overflow-wrap: anywhere; }
.optimizer-inspector-panel > header > svg { flex: 0 0 auto; color: var(--brand-700); }
.optimizer-cut-focus { display: grid; width: min(100%, 520px); margin: 0; overflow: hidden; border: 1px solid var(--ink-200); border-radius: 7px; background: var(--paper); box-shadow: 0 7px 18px rgba(7,20,47,.07); }
.optimizer-cut-focus figcaption { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--ink-200); background: linear-gradient(135deg, #fbfdfd, var(--brand-050)); }
.optimizer-cut-focus figcaption > span { display: grid; min-width: 0; gap: 2px; }
.optimizer-cut-focus figcaption small { color: var(--brand-800); font-size: 8px; font-weight: 780; letter-spacing: .045em; text-transform: uppercase; }
.optimizer-cut-focus figcaption strong { color: var(--ink-700); font-size: 9px; font-weight: 620; overflow-wrap: anywhere; }
.optimizer-cut-focus figcaption > bdi { flex: 0 0 auto; padding: 4px 7px; border: 1px solid var(--ink-200); border-radius: 999px; background: #fff; color: var(--brand-900); font-family: var(--font-mono); font-size: 9px; font-weight: 800; }
.optimizer-cut-focus__svg { display: block; width: 100%; height: clamp(145px, 18vw, 210px); border-bottom: 1px solid var(--ink-200); background: radial-gradient(circle at 50% 12%, #f7fafa, #dce5e6 78%); }
.optimizer-cut-focus__source { fill: #f4f7f7; }
.optimizer-cut-focus__outline { fill: none; stroke: var(--brand-800); stroke-width: 2px; stroke-dasharray: 7 4; }
.optimizer-cut-focus__trim { stroke-width: 1.5px; }
.optimizer-cut-focus__trim.is-leading { fill: rgba(239,149,0,.46); stroke: #bd6500; }
.optimizer-cut-focus__trim.is-second-level { fill: rgba(80,79,184,.42); stroke: #514fb8; }
.optimizer-cut-focus__result { fill: rgba(31,143,82,.24); stroke: #147447; stroke-width: 2.5px; }
.optimizer-cut-focus__remainder { stroke-width: 2px; stroke-dasharray: 6 4; }
.optimizer-cut-focus__remainder.is-reusable { fill: rgba(18,157,159,.22); stroke: #007d80; }
.optimizer-cut-focus__remainder.is-waste { fill: rgba(87,102,113,.24); stroke: #566671; }
.optimizer-cut-focus__kerf { fill: rgba(73,86,97,.56); }
.optimizer-cut-focus__cut { stroke: #d56f00; stroke-width: 4px; filter: drop-shadow(0 0 2px rgba(213,111,0,.32)); }
.optimizer-inspector-facts { display: grid; min-width: 0; margin: 0; }
.optimizer-inspector-facts > div { display: grid; min-width: 0; grid-template-columns: minmax(90px, .82fr) minmax(0, 1.18fr); align-items: start; gap: 9px; padding: 8px 0; border-bottom: 1px solid var(--ink-150); }
.optimizer-inspector-facts dt { color: var(--ink-500); font-size: 10px; line-height: 1.4; }
.optimizer-inspector-facts dd { min-width: 0; margin: 0; color: var(--ink-800); font-size: 10px; font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; text-align: end; }
.optimizer-inspector-facts code { color: var(--ink-700); font-family: var(--font-mono); font-size: 8px; font-weight: 500; }
.optimizer-inspector-step-list { display: grid; max-height: 230px; gap: 4px; margin: 0; padding: 4px; overflow-y: auto; border: 1px solid var(--ink-150); border-radius: 5px; background: var(--ink-050); list-style: none; scrollbar-width: thin; scroll-padding-block: 4px; scroll-snap-type: block proximity; }
.optimizer-inspector-step-list > .optimizer-playback-step { min-width: 0; scroll-snap-align: start; }
.optimizer-inspector-step-list .optimizer-step-card { min-height: 54px; padding: 7px; border-color: transparent; border-radius: 4px; background: transparent; box-shadow: none; }
.optimizer-inspector-step-list .optimizer-step-card:hover { background: #fff; }
.optimizer-inspector-step-list .optimizer-step-card.is-past { background: var(--brand-050); }
.optimizer-inspector-step-list .optimizer-step-card.is-active { border-color: var(--amber-500); background: #fff8e7; }
.optimizer-inspector-step-list .optimizer-step-card__number { width: 25px; height: 25px; }
.optimizer-inspector-empty { display: grid; min-height: 210px; place-items: center; align-content: center; gap: 10px; padding: 24px; color: var(--ink-400); text-align: center; }
.optimizer-inspector-empty p { margin: 0; font-size: 11px; }
.optimizer-technical-identity { margin: auto 16px 0; padding: 12px 0 5px; border-top: 1px solid var(--ink-200); }
.optimizer-technical-identity summary { color: var(--ink-600); font-size: 9px; font-weight: 680; cursor: pointer; }
.optimizer-technical-identity[open] summary { margin-bottom: 7px; }
.optimizer-technical-identity .optimizer-inspector-facts > div { grid-template-columns: minmax(90px, .7fr) minmax(0, 1.3fr); }
.optimizer-inspector-review-action { position: sticky; bottom: 0; display: grid; gap: 9px; margin-top: 10px; padding: 13px 16px 16px; border-top: 1px solid var(--ink-200); background: rgba(255,255,255,.97); box-shadow: 0 -8px 18px rgba(7,20,47,.05); }
.optimizer-inspector-review-action p { margin: 0; color: var(--ink-500); font-size: 8px; line-height: 1.45; }
.optimizer-inspector-review-action .button { width: 100%; min-height: 41px; padding-inline: 9px; font-size: 11px; }

.manager-review-completion { margin-top: 4px; }
.manager-review-completion__action { display: flex; align-items: center; justify-content: space-between; gap: 24px; box-shadow: none; }
.manager-review-completion__action > div { min-width: 0; }
.manager-review-completion__action h2 { margin: 0 0 4px; font-size: 18px; }
.manager-review-completion__action p:last-child { max-width: 760px; margin: 0; font-size: 11px; }
.manager-review-completion__action > .button { flex: 0 0 auto; }

/* Proposal contract workspace — extends the existing NeoWood tokens. */
.proposal-contract-workspace { display: grid; min-width: 0; gap: 18px; padding-bottom: 42px; }
.proposal-pricing-profile { display: grid; gap: 14px; margin: 22px 0 4px; box-shadow: none; }
.proposal-pricing-profile > .select-field { max-width: 540px; }
.proposal-cost-basis { display: grid; gap: 11px; min-width: 0; padding-top: 4px; }
.proposal-cost-basis h3 { margin: 0; font-size: 13px; }
.proposal-contract-heading { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 30px 0 4px; }
.proposal-contract-heading__title { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 12px; }
.proposal-contract-heading h1 { margin: 0; font-size: 31px; }
.proposal-contract-heading p { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; font-size: 12px; }
.proposal-contract-heading__sample { color: var(--ink-500); font-size: 11px; font-weight: 700; }
.proposal-contract-heading__immutable { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-600); font-size: 11px; font-weight: 680; }
.proposal-contract-layout { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(270px, 306px); align-items: start; gap: 24px; }
.proposal-contract-document { min-width: 0; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-sm); }
.proposal-document-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 24px 18px; border-bottom: 1px solid var(--ink-150); }
.proposal-document-header__title { display: flex; min-width: 0; align-items: center; gap: 12px; }
.proposal-document-header__title > div { min-width: 0; }
.proposal-document-header__title p { margin: 0 0 3px; color: var(--brand-800); font-size: 10px; font-weight: 780; letter-spacing: .08em; }
.proposal-document-header__title h2 { margin: 0; font-size: 23px; }
.proposal-document-mark { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; border-radius: var(--radius-xs); background: var(--ink-950); color: var(--paper); }
.proposal-parties { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr); align-items: center; gap: 14px; padding: 18px 24px; border-bottom: 1px solid var(--ink-150); }
.proposal-party { position: relative; display: grid; min-width: 0; gap: 4px; padding: 13px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--canvas-warm); }
.proposal-party > span:first-child { color: var(--ink-600); font-size: 10px; font-weight: 680; }
.proposal-party > strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-party > small { font-size: 10px; }
.proposal-party__signed { position: absolute; inset-block-start: 10px; inset-inline-end: 10px; display: inline-flex; align-items: center; gap: 4px; color: var(--green-700) !important; font-size: 9px !important; }
.proposal-party-link { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--ink-200); border-radius: 50%; color: var(--brand-800); }
.proposal-metadata { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 24px; border-bottom: 1px solid var(--ink-150); }
.proposal-metadata > div { display: grid; min-width: 0; align-content: center; gap: 5px; min-height: 76px; padding: 12px 15px; border-inline-end: 1px solid var(--ink-150); }
.proposal-metadata > div:first-child { padding-inline-start: 0; }
.proposal-metadata > div:last-child { padding-inline-end: 0; border-inline-end: 0; }
.proposal-metadata span, .proposal-metadata .field > span { color: var(--ink-600); font-size: 9px; font-weight: 680; }
.proposal-metadata strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-metadata .field { gap: 4px; }
.proposal-metadata .field input { min-height: 34px; padding: 6px 7px; font-size: 10px; }
.proposal-contract-section { padding: 18px 24px; border-bottom: 1px solid var(--ink-150); }
.proposal-contract-section:last-child { border-bottom: 0; }
.proposal-contract-section > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.proposal-contract-section > header h3 { margin: 0; font-size: 14px; }
.proposal-contract-section > header > span, .proposal-pricing-section > header > div > span { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-500); font-size: 9px; font-weight: 650; }
.proposal-contract-scope p { margin: 0; color: var(--ink-800); font-size: 12px; }
.proposal-contract-scope .field textarea { min-height: 64px; }
.proposal-pricing-section > header > div { display: grid; gap: 5px; }
.proposal-pricing-section > header .button { min-height: 36px; padding: 7px 10px; font-size: 10px; }
.proposal-price-table-wrap { min-width: 0; overflow-x: auto; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.proposal-price-table { width: 100%; min-width: 620px; border-collapse: collapse; table-layout: fixed; }
.proposal-price-table th { padding: 9px 10px; border-bottom: 1px solid var(--ink-200); background: var(--ink-050); color: var(--ink-600); font-size: 9px; font-weight: 690; text-align: start; }
.proposal-price-table th:first-child { width: 37%; }
.proposal-price-table th:nth-child(2) { width: 9%; }
.proposal-price-table th:nth-child(3) { width: 10%; }
.proposal-price-table th:nth-child(4), .proposal-price-table th:nth-child(5) { width: 22%; }
.proposal-price-table td { position: relative; padding: 10px; border-bottom: 1px solid var(--ink-150); color: var(--ink-800); font-size: 10px; vertical-align: middle; }
.proposal-price-table tbody tr:last-child td { border-bottom: 0; }
.proposal-price-table tbody tr[data-line-kind="custom"] { background: var(--brand-050); }
.proposal-line-description { display: grid; min-width: 0; gap: 3px; }
.proposal-line-description strong { overflow: hidden; color: var(--ink-900); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-line-description small { display: inline-flex; align-items: center; gap: 4px; color: var(--ink-500); font-size: 8px; }
.proposal-number { font-family: var(--font-mono); font-size: 9px !important; white-space: nowrap; }
.proposal-line-remove { position: absolute; inset-block-start: 50%; inset-inline-end: 5px; display: grid; width: 26px; height: 26px; translate: 0 -50%; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--red-700); cursor: pointer; }
.proposal-line-remove:hover { background: var(--red-100); }
.proposal-add-line-mobile { display: none; }
.proposal-pricing-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr); align-items: start; gap: 14px; margin-top: 13px; }
.proposal-technical-attachment { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 64px; padding: 10px 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.proposal-technical-attachment__icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: var(--radius-xs); background: var(--brand-050); color: var(--brand-800); }
.proposal-technical-attachment > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.proposal-technical-attachment small { font-size: 9px; }
.proposal-technical-attachment strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-technical-attachment code { overflow: hidden; color: var(--ink-500); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-technical-attachment > svg { color: var(--green-700); }
.proposal-totals { overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.proposal-totals > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; padding: 8px 11px; border-bottom: 1px solid var(--ink-150); font-size: 10px; }
.proposal-totals > div:last-child { border-bottom: 0; }
.proposal-totals span { display: grid; gap: 2px; }
.proposal-totals small { font-size: 7px; font-weight: 450; }
.proposal-totals strong { font-family: var(--font-mono); font-size: 9px; white-space: nowrap; }
.proposal-totals__grand { background: var(--ink-950); color: var(--paper); }
.proposal-totals__grand span { font-weight: 680; }
.proposal-totals__grand strong { color: var(--paper); font-size: 15px; }
.proposal-terms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.proposal-payment-requirement { display: grid; grid-template-columns: minmax(0, 1fr) 92px; align-items: end; gap: 8px; }
.proposal-payment-requirement > .field:only-child { grid-column: 1 / -1; }
.proposal-term { display: grid; min-height: 63px; align-content: start; gap: 7px; padding: 11px 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--canvas-warm); }
.proposal-term span { color: var(--ink-600); font-size: 9px; font-weight: 680; }
.proposal-term strong { color: var(--ink-800); font-size: 10px; line-height: 1.5; white-space: pre-line; }
.proposal-terms-grid .field { padding: 10px 11px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--canvas-warm); }
.proposal-terms-grid .field textarea { min-height: 58px; padding: 7px 8px; font-size: 10px; }
.proposal-signature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.proposal-signature-grid > div { display: grid; min-height: 108px; align-content: start; gap: 8px; padding: 12px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
.proposal-signature-grid > div > span { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-600); font-size: 10px; }
.proposal-signature-grid > div > strong { font-size: 11px; }
.proposal-signature-grid > div > i { display: block; margin-top: 8px; border-bottom: 1px dashed var(--ink-300); }
.proposal-signature-grid > div > small { font-size: 9px; }
.proposal-signature-grid > div.is-signed { border-color: #99ceb3; background: var(--green-100); }
.proposal-signature-grid > div.is-signed > span, .proposal-signature-grid > div.is-signed > strong { color: var(--green-700); }
.proposal-readiness-panel { position: sticky; top: 88px; display: grid; min-width: 0; gap: 17px; padding: 20px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-md); }
.proposal-readiness-panel > header { display: flex; align-items: flex-start; gap: 11px; }
.proposal-readiness-panel__mark { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: var(--radius-xs); background: var(--brand-050); color: var(--brand-800); }
.proposal-readiness-panel > header h2 { margin: 1px 0 5px; font-size: 18px; }
.proposal-readiness-panel > header p { margin: 0; font-size: 10px; line-height: 1.5; }
.proposal-readiness-panel ul { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.proposal-readiness-panel li { display: flex; align-items: flex-start; gap: 10px; min-height: 42px; padding: 8px 0; border-bottom: 1px solid var(--ink-150); }
.proposal-readiness-panel li:last-child { border-bottom: 0; }
.proposal-readiness__icon { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; border-radius: 50%; }
.proposal-readiness-panel li.is-ready .proposal-readiness__icon { background: var(--green-100); color: var(--green-700); }
.proposal-readiness-panel li.is-blocked .proposal-readiness__icon { background: var(--amber-100); color: var(--amber-800); }
.proposal-readiness-panel li > span:last-child { display: grid; gap: 3px; }
.proposal-readiness-panel li strong { font-size: 10px; line-height: 1.35; }
.proposal-readiness-panel li small { font-size: 8px; }
.proposal-readiness-progress { display: grid; gap: 7px; }
.proposal-readiness-progress > div { display: flex; justify-content: space-between; color: var(--ink-600); font-size: 9px; }
.proposal-readiness-progress > div strong { color: var(--ink-900); }
.proposal-readiness-progress > span { height: 5px; overflow: hidden; border-radius: 999px; background: var(--ink-100); }
.proposal-readiness-progress i { display: block; height: 100%; border-radius: inherit; background: var(--green-700); }
.proposal-readiness-actions { display: grid; gap: 9px; }
.proposal-readiness-actions .button { width: 100%; min-height: 42px; font-size: 11px; }
.proposal-readiness-panel > .info-strip { padding: 11px; }
.proposal-readiness-panel > .info-strip svg { width: 18px; height: 18px; }
.proposal-readiness-panel > .info-strip strong { font-size: 10px; }
.proposal-readiness-panel > .info-strip span { font-size: 8px; line-height: 1.45; }
.proposal-preview-overlay { position: fixed; z-index: 150; inset: 0; display: grid; padding: 24px; place-items: center; overflow-y: auto; background: rgba(7, 20, 47, .62); }
.proposal-preview-dialog { width: min(900px, 100%); max-height: calc(100dvh - 48px); overflow: hidden; border-radius: var(--radius-md); background: var(--canvas); box-shadow: var(--shadow-md); }
.proposal-preview-dialog > header { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px; border-bottom: 1px solid var(--ink-200); background: var(--paper); }
.proposal-preview-dialog > header > div { display: flex; align-items: center; gap: 10px; }
.proposal-preview-dialog > header span { display: grid; gap: 2px; }
.proposal-preview-dialog > header small { font-size: 9px; }
.proposal-preview-close { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-700); font-size: 24px; cursor: pointer; }
.proposal-preview-close:hover { background: var(--ink-100); }
.proposal-preview-paper { width: min(720px, calc(100% - 36px)); min-height: 960px; margin: 18px auto 40px; padding: 54px; overflow: hidden; background: var(--paper); box-shadow: var(--shadow-md); color: var(--ink-950); }
.proposal-preview-dialog { overflow-y: auto; }
.proposal-preview-pdf { display: block; width: 100%; height: calc(100dvh - 114px); min-height: 620px; border: 0; background: var(--ink-100); }
.proposal-preview-brand { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 3px solid var(--ink-950); }
.proposal-preview-brand span { color: var(--brand-800); font-size: 18px; font-weight: 800; }
.proposal-preview-brand strong { font-size: 21px; }
.proposal-preview-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.proposal-preview-parties > div { display: grid; gap: 7px; padding: 14px; border: 1px solid var(--ink-200); }
.proposal-preview-meta { display: flex; justify-content: space-between; gap: 18px; margin: 18px 0 28px; color: var(--ink-600); font-size: 10px; }
.proposal-preview-paper h3 { margin: 22px 0 10px; font-size: 13px; }
.proposal-preview-paper p { color: var(--ink-800); font-size: 10px; white-space: pre-line; }
.proposal-preview-paper table { width: 100%; border-collapse: collapse; font-size: 9px; }
.proposal-preview-paper th, .proposal-preview-paper td { padding: 8px; border: 1px solid var(--ink-200); text-align: start; }
.proposal-preview-paper th { background: var(--ink-050); }
.proposal-preview-total { display: flex; justify-content: space-between; gap: 18px; margin-top: 12px; padding: 12px; background: var(--ink-950); color: var(--paper); }
.proposal-preview-total strong { font-family: var(--font-mono); }
.proposal-preview-signatures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; margin-top: 60px; }
.proposal-preview-signatures span { display: grid; gap: 26px; color: var(--ink-700); font-size: 10px; }
.proposal-preview-signatures i { border-bottom: 1px solid var(--ink-400, var(--ink-300)); }
.proposal-sign-consent { display: flex; align-items: flex-start; gap: 10px; padding: 13px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--canvas-warm); color: var(--ink-800); font-size: 11px; line-height: 1.65; cursor: pointer; }
.proposal-sign-consent input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px; accent-color: var(--brand-800); }
.proposal-sign-consent span { min-width: 0; }

@media (max-width: 1180px) {
  .proposal-contract-layout { grid-template-columns: minmax(0, 1fr); }
  .proposal-readiness-panel { position: static; grid-template-columns: minmax(0, 1fr) minmax(250px, .65fr); align-items: start; }
  .proposal-readiness-panel > header, .proposal-readiness-panel > ul, .proposal-readiness-progress { grid-column: 1; }
  .proposal-readiness-actions, .proposal-readiness-panel > .info-strip { grid-column: 2; }
  .proposal-readiness-actions { grid-row: 1 / span 3; }
  .proposal-readiness-panel > .info-strip { grid-row: 4; }
}

@media (max-width: 700px) {
  .proposal-contract-heading { padding-top: 20px; }
  .proposal-contract-heading h1 { font-size: 27px; }
  .proposal-contract-heading__sample, .proposal-contract-heading__immutable { display: none; }
  .proposal-document-header { align-items: flex-start; padding: 17px 16px 14px; }
  .proposal-document-header .status { max-width: 132px; white-space: normal; }
  .proposal-document-header__title h2 { font-size: 18px; }
  .proposal-parties { grid-template-columns: minmax(0, 1fr); padding: 14px 16px; }
  .proposal-party-link { width: 32px; height: 32px; justify-self: center; transform: rotate(90deg); }
  .proposal-metadata { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 16px; }
  .proposal-metadata > div:nth-child(2) { border-inline-end: 0; }
  .proposal-metadata > div:nth-child(-n+2) { border-bottom: 1px solid var(--ink-150); }
  .proposal-metadata > div:nth-child(3) { padding-inline-start: 0; }
  .proposal-contract-section { padding: 16px; }
  .proposal-pricing-section > header > .button { display: none; }
  .proposal-price-table-wrap { overflow: visible; border: 0; }
  .proposal-price-table { display: block; min-width: 0; }
  .proposal-price-table thead { display: none; }
  .proposal-price-table tbody { display: grid; gap: 9px; }
  .proposal-price-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 12px; padding: 11px 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); }
  .proposal-price-table td { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 3px 0; border: 0; font-size: 9px; }
  .proposal-price-table td::before { color: var(--ink-500); font-family: var(--font-ui); font-size: 8px; content: attr(data-label); }
  .proposal-price-table td:first-child { grid-column: 1 / -1; display: block; padding-bottom: 8px; border-bottom: 1px solid var(--ink-150); }
  .proposal-price-table td:first-child::before { display: none; }
  .proposal-price-table td:last-child { grid-column: 1 / -1; }
  .proposal-line-remove { position: static; width: 25px; height: 25px; margin-inline-start: 6px; translate: 0; }
  .proposal-add-line-mobile { display: inline-flex; width: 100%; margin-top: 10px; }
  .proposal-pricing-foot { grid-template-columns: minmax(0, 1fr); }
  .proposal-totals { order: -1; }
  .proposal-terms-grid, .proposal-signature-grid { grid-template-columns: minmax(0, 1fr); }
  .proposal-readiness-panel { grid-template-columns: minmax(0, 1fr); padding: 16px; box-shadow: var(--shadow-sm); }
  .proposal-readiness-panel > header, .proposal-readiness-panel > ul, .proposal-readiness-progress, .proposal-readiness-actions, .proposal-readiness-panel > .info-strip { grid-column: 1; grid-row: auto; }
  .proposal-readiness-actions { position: sticky; z-index: 12; bottom: calc(74px + env(safe-area-inset-bottom)); margin: 0 -8px; padding: 8px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: rgba(255,255,255,.97); box-shadow: var(--shadow-md); }
  .proposal-preview-overlay { padding: 0; place-items: stretch; }
  .proposal-preview-dialog { width: 100%; max-height: 100dvh; border-radius: 0; }
  .proposal-preview-dialog > header { position: sticky; z-index: 2; top: 0; }
  .proposal-preview-dialog > header .button { width: 40px; padding: 0; }
  .proposal-preview-dialog > header .button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .proposal-preview-pdf { height: calc(100dvh - 66px); min-height: 0; }
  .proposal-preview-paper { width: calc(100% - 24px); min-height: 0; margin: 12px; padding: 28px 20px 50px; }
  .proposal-preview-brand { align-items: flex-start; flex-direction: column; }
  .proposal-preview-parties { grid-template-columns: minmax(0, 1fr); }
  .proposal-preview-meta { flex-direction: column; }
}

@media (min-width: 901px) {
  .optimizer-board-viewport { height: clamp(300px, 36dvh, 360px); min-height: 300px; }
  .optimizer-board-frame:fullscreen .optimizer-board-viewport { height: auto; min-height: 0; }
}

@media (max-width: 1240px) and (min-width: 901px) {
  .optimizer-review-command { grid-template-columns: minmax(0, 1fr); }
  .optimizer-review-summary { width: min(560px, 100%); }
  .optimizer-quick-settings { grid-template-columns: minmax(0, 1fr); }
  .optimizer-quick-settings > header { grid-column: 1; grid-row: 1; border-bottom: 1px solid var(--ink-200); border-inline-end: 0; }
  .optimizer-quick-settings__notice { grid-column: 1; grid-row: 2; }
  .optimizer-quick-settings__grid { grid-column: 1; grid-row: 3; }
  .optimizer-review-workspace { grid-template-columns: 160px minmax(0, 1fr); }
  .optimizer-review-workspace.optimizer-review-workspace--setup { grid-template-columns: 190px minmax(0, 1fr); }
  .optimizer-review-inspector { min-height: 430px; grid-column: 1 / -1; border-top: 1px solid var(--ink-200); border-inline-start: 0; }
  .optimizer-inspector-panel { max-height: 360px; }
  .optimizer-technical-identity { margin-top: 0; }
}

@media (max-width: 900px) {
  [data-optimization-stage="review"] { gap: 14px; }
  .optimizer-review-command { grid-template-columns: minmax(0, 1fr); gap: 11px; padding-top: 0; }
  .optimizer-review-view-tabs { justify-content: space-between; gap: 12px; }
  .optimizer-review-view-tabs > span { margin-inline-start: auto; }
  .optimizer-review-summary { width: 100%; }
  .optimizer-review-summary > div { padding: 9px; text-align: center; }
  .optimizer-review-summary span { font-size: 8px; }
  .optimizer-review-summary strong { font-size: 17px; }
  .optimizer-inline-settings { padding: 16px; }
  .optimizer-inline-settings__contract { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-inline-settings__contract > div:nth-child(2) { border-inline-end: 0; }
  .optimizer-inline-settings__contract > div:nth-child(-n+2) { border-bottom: 1px solid var(--ink-200); }
  .optimizer-quick-settings { grid-template-columns: minmax(0, 1fr); }
  .optimizer-quick-settings > header { grid-column: 1; grid-row: 1; border-bottom: 1px solid var(--ink-200); border-inline-end: 0; }
  .optimizer-quick-settings__notice { grid-column: 1; grid-row: 2; }
  .optimizer-quick-settings__grid { grid-column: 1; grid-row: 3; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-quick-settings__item:nth-child(2) { border-inline-end: 0; }
  .optimizer-quick-settings__item:nth-child(-n+2) { border-bottom: 1px solid var(--ink-150); }
  .optimizer-mobile-mode { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
  .optimizer-mobile-mode > button { display: flex; min-width: 0; min-height: 48px; align-items: center; justify-content: center; gap: 7px; padding: 7px; border: 0; border-inline-end: 1px solid var(--ink-200); background: transparent; color: var(--ink-600); font-size: 10px; font-weight: 680; cursor: pointer; }
  .optimizer-mobile-mode > button:last-child { border-inline-end: 0; }
  .optimizer-mobile-mode > button.is-active { background: var(--brand-050); color: var(--brand-900); box-shadow: inset 0 -3px 0 var(--brand-700); }
  .optimizer-review-workspace { display: block; min-height: 0; overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .optimizer-review-workspace > * { display: none; }
  .optimizer-review-workspace.optimizer-review-workspace--setup { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .optimizer-review-workspace--setup > * { display: flex; min-height: 0; max-block-size: none; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
  .optimizer-review-workspace--setup > .optimizer-setup-board { display: grid; order: -1; overflow: hidden; }
  .optimizer-review-workspace--setup .optimizer-setup-board__canvas { min-height: 330px; }
  .optimizer-review-workspace--mobile-board > .optimizer-review-board-column { display: grid; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
  .optimizer-review-workspace--mobile-sheets > .optimizer-review-sheets { display: flex; min-height: min(430px, var(--optimizer-sheet-rail-max)); overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
  .optimizer-review-workspace--mobile-steps > .optimizer-review-inspector { display: flex; min-height: 540px; overflow: hidden; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); }
  .optimizer-review-sheets { border-inline-end: 0; }
  .optimizer-sheet-scroll { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-sheet-scroll > button { min-height: 84px; border-inline-end: 1px solid var(--ink-150); }
  .optimizer-review-inspector { border-inline-start: 0; }
  .optimizer-inspector-panel { max-height: 420px; }
  .optimizer-board-viewport { min-height: 390px; }
  .optimizer-inspector-review-action { display: none; }
  .optimizer-mobile-review-action { position: sticky; z-index: 31; bottom: 73px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 10px max(10px, var(--page-gutter)) max(10px, env(safe-area-inset-bottom)); border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: rgba(255,255,255,.97); box-shadow: 0 -8px 24px rgba(7,20,47,.1); backdrop-filter: blur(14px); }
  .optimizer-mobile-review-action > span { color: var(--ink-600); font-size: 10px; font-weight: 680; }
  .optimizer-mobile-review-action .button { min-height: 41px; padding-inline: 11px; font-size: 10px; }
  .manager-review-completion { padding-bottom: 64px; }
  .manager-review-completion__action { align-items: stretch; flex-direction: column; gap: 13px; }
  .manager-review-completion__action > .button { width: 100%; }
}

@media (max-width: 600px) {
  .manager-settings-hub { gap: 12px; }
  .manager-settings-hub__nav { margin-inline: calc(-1 * var(--page-gutter)); padding-inline: var(--page-gutter); border-inline: 0; border-radius: 0; }
  .manager-settings-hub__nav button { min-width: 96px; }
  .manager-settings-hub__content > .panel { min-height: 0; margin-inline: calc(-1 * var(--page-gutter)); padding: 14px var(--page-gutter) 22px; border-inline: 0; border-radius: 0; }
  .manager-settings-form fieldset { padding: 13px; }
  .manager-settings-check-grid, .manager-measurement-grid, .manager-machine-grid dl { grid-template-columns: minmax(0, 1fr); }
  .pricing-profile-list, .pricing-adjustment-add, .pricing-adjustment-list article { grid-template-columns: minmax(0, 1fr); }
  .pricing-profile-editor__heading { align-items: stretch; flex-direction: column; }
  .manager-machine-grid dl > div { padding: 8px 0; border-inline-end: 0; border-bottom: 1px solid var(--ink-150); }
  .manager-machine-grid dl > div:last-child { border-bottom: 0; }
  .manager-machine-grid article > header { grid-template-columns: auto minmax(0, 1fr); }
  .manager-machine-grid article > header > .status { grid-column: 2; justify-self: start; }
  .manager-settings-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manager-settings-actions .button { width: 100%; }
  .manager-inventory .inventory-kind-tabs > button { min-height: 58px; padding-inline: 10px; }
  .manager-inventory .inventory-kind-tabs > button strong { font-size: 11px; }
  .optimizer-review-command { padding: 11px; }
  .optimizer-review-view-tabs > span { max-width: 150px; justify-content: flex-end; text-align: end; }
  .optimizer-review-view-tabs > button { min-height: 41px; font-size: 11px; }
  .optimizer-review-studio > .info-strip, .optimizer-review-results > .info-strip { padding: 10px 11px; }
  .optimizer-review-studio > .info-strip span, .optimizer-review-results > .info-strip span { font-size: 10px; }
  .optimizer-inline-settings { padding: 13px; }
  .optimizer-inline-settings > header { grid-template-columns: auto minmax(0, 1fr); }
  .optimizer-inline-settings > header > .status { grid-column: 1 / -1; justify-self: start; }
  .optimizer-quick-settings > header { padding: 11px; }
  .optimizer-quick-settings__actions { flex-wrap: wrap; }
  .optimizer-quick-settings__actions .status { width: 100%; margin-inline-end: 0; }
  .optimizer-quick-settings__item { min-height: 104px; grid-template-columns: 29px minmax(0, 1fr) auto; gap: 7px; padding: 10px; }
  .optimizer-quick-settings__icon { width: 29px; height: 29px; }
  .optimizer-quick-settings__item strong { font-size: 9px; }
  .optimizer-quick-settings__switch { width: 32px; }
  .optimizer-quick-settings__switch[aria-checked="true"] > span { inset-inline-start: 14px; }
  .optimizer-sheet-scroll { grid-template-columns: minmax(0, 1fr); }
  .optimizer-board-frame { padding: 12px 10px 9px; }
  .optimizer-board-toolbar { align-items: stretch; flex-direction: column; }
  .optimizer-board-tools { align-self: flex-end; }
  .optimizer-board-cut-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-board-cut-summary > div:nth-child(2) { border-inline-end: 0; }
  .optimizer-board-cut-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--ink-150); }
  .optimizer-board-viewport { min-height: 305px; }
  .optimizer-board-material-balance { grid-template-columns: minmax(0, 1fr); }
  .optimizer-material-balance-bar { grid-row: 2; }
  .optimizer-board-material-balance dl { grid-row: 3; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .optimizer-board-material-balance dl > div:nth-child(2) { border-inline-end: 0; }
  .optimizer-board-material-balance dl > div:nth-child(-n+2) { border-bottom: 1px solid var(--ink-150); }
  .optimizer-board-legend__content { gap: 6px 10px; }
  .optimizer-board-legend__trim { width: 100%; margin-inline-start: 0; }
  .optimizer-playback { grid-template-columns: minmax(0, 1fr); padding-inline: 10px; }
  .optimizer-playback-controls { justify-content: center; }
  .optimizer-mobile-review-action { align-items: stretch; flex-direction: column; }
  .optimizer-mobile-review-action > span { display: none; }
  .optimizer-mobile-review-action .button { width: 100%; }
  .optimizer-inspector-panel { padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .optimizer-board-viewport, .optimizer-board-placement rect, .optimizer-board-part-size, .optimizer-board-offcut text, .optimizer-board-cut circle, .optimizer-board-cut text, .optimizer-board-trim-dimension { transition: none; }
  .optimizer-board-active-result, .optimizer-board-active-remainder, .optimizer-board-kerf.is-active, .optimizer-board-cut.is-active { animation: none; }
  .optimizer-inspector-step-list { scroll-behavior: auto; }
}

/* Centered create/edit dialogs share the Drawer interaction contract. */
.search input { min-width: 0; flex: 1 1 auto; }
.search > svg,
.search > .icon-button { flex: 0 0 auto; }
.search > .icon-button { width: 36px; height: 40px; margin-inline-end: -8px; }

.overlay.overlay--center {
  align-items: center;
  justify-content: center;
  padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  overscroll-behavior: contain;
}
.overlay--center > .modal {
  width: min(560px, 100%);
  min-width: 0;
  max-height: min(840px, calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  padding: 0;
  overflow: hidden;
}
.overlay--center > .modal--lg { width: min(860px, 100%); }
.modal > .drawer__header,
.modal > .drawer__footer { flex: 0 0 auto; }
.modal > .drawer__header h2 { min-width: 0; overflow-wrap: anywhere; }
.modal > .drawer__header .icon-button { flex: 0 0 auto; }
.modal > .drawer__body { min-height: 0; min-width: 0; overscroll-behavior: contain; }
.modal > .drawer__footer { flex-wrap: wrap; }

@media (max-width: 600px), (max-height: 500px) {
  .overlay.overlay--center {
    padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  }
  .overlay--center > .modal {
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}

@media (max-width: 600px) {
  .modal .form-grid--two { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .overlay--center > .modal { animation: none; }
}

.manager-jobs .job-row--managed {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  padding: 16px 18px;
  align-items: center;
  cursor: default;
}
.job-row__open {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  gap: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink-950);
  text-align: start;
  cursor: pointer;
}
.job-row__open .job-row__main { display: grid; min-width: 0; gap: 6px; }
.job-row__open .job-row__main > strong { overflow-wrap: anywhere; }
.job-row__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.job-row__details > span { display: grid; align-content: start; gap: 5px; font-size: 12px; }
.job-row__details > span > span { color: var(--ink-600); }
.job-row__details time, .job-row__details strong { font-size: 13px; font-weight: 550; overflow-wrap: anywhere; }
.job-row__details time[dir] { direction: inherit; text-align: start; unicode-bidi: isolate; }
.job-row--managed > .job-row__controls { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.job-row__controls .button { min-height: 44px; padding-inline: 10px; font-size: 12px; }
.job-row__controls .job-row__delete:not(:disabled) { color: var(--red-700); }
.order-dialog__identity { margin-top: 0; overflow-wrap: anywhere; }
.order-dialog__field-error { display: block; margin-top: 6px; color: var(--red-700); }

@media (max-width: 600px) {
  .manager-jobs .job-row--managed { grid-template-columns: minmax(0, 1fr); }
  .job-row--managed > .job-row__controls { flex-direction: row; flex-wrap: wrap; border-top: 1px solid var(--ink-150); padding-top: 8px; }
  .job-row__details { gap: 12px; }
  .job-row__controls .button { flex: 1 1 auto; }
}

/* Order creation keeps navigation and source selection compact. */
.drawer__heading { display: flex; align-items: center; gap: 12px; min-width: 0; }
.drawer__heading h2 { min-width: 0; overflow-wrap: anywhere; }
.drawer__back { flex-shrink: 0; padding-inline: 8px; }
[dir="rtl"] .drawer__back svg { transform: rotate(180deg); }
.source-choice-grid--order .choice-card { min-height: 72px; display: flex; align-items: center; gap: 12px; }
.source-choice-grid--order .choice-card__check { position: static; flex-shrink: 0; }
.source-choice-grid--order .choice-card strong { margin: 0; }
@media (max-width: 1239px) {
  .job-row__open { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .drawer__heading { gap: 6px; }
  .drawer__heading h2 { font-size: 16px; }
  .drawer__back { padding-inline: 4px; }
}

.manager-overview-description p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.8; color: var(--ink-900); }

.workspace-topbar__tools > .status--connection { border: 0; background: transparent; padding: 0 4px; font-size: 12px; white-space: nowrap; }
@media (max-width: 900px) {
  .workspace-topbar__tools > .status--connection { width: auto; min-width: 0; height: 30px; }
  .workspace-topbar__tools > .status--connection > span:not(.status__dot) { display: inline; }
}

/* Board-entry materials share the entry form; machining keeps its own canvas. */
.manager-quick-workflow > .manager-edge-pickers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.manager-quick-workflow > .button { justify-self: start; }
.language-button { white-space: nowrap; flex-shrink: 0; font-family: var(--font-fa); direction: ltr; }
@media (max-width: 600px) {
  .manager-quick-workflow > .manager-edge-pickers { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .public-topbar { gap: 8px; padding-inline: 12px; }
  .public-topbar .language-button { padding-inline: 8px; font-size: 12px; }
}

/* Focused board entry and automatic persistence. */
.workspace--manager .manager-parts-v2__savebar { grid-template-columns: minmax(0, 1fr) auto; }
.workspace--manager .manager-parts-v2__savebar > .manager-parts-v2__optimize { display: inline-flex; }
.manager-edge-editor.is-entry-draft > .manager-edge-canvas { border: 0; border-radius: 0; background: transparent; }
.manager-quick-workflow > .manager-edge-pickers { grid-template-columns: minmax(0, 1fr); }
.manager-quick-workflow__actions { flex-wrap: wrap; }
.manager-quick-workflow__actions > .button--quiet { margin-inline-end: auto; }
.manager-cutlist-pod { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 18px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink-800); cursor: pointer; font: inherit; }
.manager-cutlist-pod:hover:not(:disabled) { border-color: var(--brand-700); background: var(--brand-050); }
.manager-cutlist-pod:focus-visible { outline: 3px solid var(--brand-700); outline-offset: 3px; }
.manager-cutlist-pod:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 600px) {
  .workspace--manager .manager-parts-v2__inspector.is-entry,
  .workspace--manager .manager-parts-v2__inline-quick { display: grid; margin-bottom: 12px; }
  .workspace--manager .manager-parts-v2__inspector.is-entry { position: static; }
  .workspace--manager .manager-parts-v2__inspector.is-selected { display: block; }
  .workspace--manager .manager-cutlist-pod { width: 100%; }
  .workspace--manager .manager-quick-workflow__actions { display: flex; flex-wrap: wrap; }
  .workspace--manager .manager-quick-workflow__actions > .button { flex: 1; }
}

/* Parts entry and list share one compact working card. */
.workspace--manager .manager-parts-v2__main { display: grid; gap: 0; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); overflow: hidden; }
.workspace--manager .manager-parts-v2__main > .panel { border: 0; border-radius: 0; margin: 0; }
.workspace--manager .manager-parts-v2__inline-quick { padding: 12px; border-bottom: 1px solid var(--ink-200) !important; }
.workspace--manager .manager-quick-workflow { gap: 10px; }
.workspace--manager .manager-cutlist-pod { min-height: 40px; padding: 8px 14px; gap: 8px; }
.workspace--manager .manager-quick-workflow__actions { direction: rtl; }
.workspace--manager .manager-quick-workflow__actions > .button--quiet { margin-inline: 0; margin-right: auto; flex: 0 0 auto; width: auto; }
.workspace--manager .manager-parts-v2__list > .manager-parts-list-header { padding: 10px 12px; gap: 12px; }
.manager-parts-list-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
.manager-parts-list-title > span { color: var(--ink-500); font-size: 11px; white-space: nowrap; }
.workspace--manager .manager-parts-list-header .manager-parts-v2__list-toolbar { padding: 0; border: 0; min-width: 0; }
.workspace--manager .manager-parts-list-header .search { width: min(260px, 100%); }
.workspace--manager .manager-parts-v2__bulk-toolbar { min-height: 40px; padding: 5px 12px; }
.workspace--manager .manager-parts-v2__list > .empty-state { border: 0; border-radius: 0; padding: 20px 16px; }
.workspace--manager .manager-parts-v2__list > .empty-state h3 { margin-top: 0; }
@media (min-width: 601px) {
  .workspace--manager .manager-parts-v2 .manager-quick-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .workspace--manager .manager-quick-steps li > button { min-height: 72px; padding: 8px; }
  .workspace--manager .manager-quick-step__active { min-height: 90px; padding: 7px; gap: 4px; }
  .workspace--manager .manager-quick-step__input { margin-top: 0; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .workspace--manager .manager-parts-v2__workbench { grid-template-columns: minmax(0, 1fr) !important; }
  .workspace--manager .manager-parts-v2__main { grid-column: 1; grid-row: 1; }
  .workspace--manager .manager-parts-v2__inspector { position: static; grid-column: 1; grid-row: 2; width: min(440px, 100%); justify-self: center; }
}
@media (max-width: 600px) {
  .workspace--manager .manager-parts-v2__main { margin-bottom: 12px; }
  .workspace--manager .manager-parts-list-header { flex-wrap: wrap; }
  .workspace--manager .manager-parts-list-header .manager-parts-v2__list-toolbar { width: 100%; }
  .workspace--manager .manager-parts-list-header .search { width: 100%; }
  .workspace--manager .manager-quick-workflow__actions > .button { flex: 0 0 auto; width: auto; }
}

.workspace--manager .manager-parts-v2 .overlay--center { align-items: center; }

.manager-parts-mobile-title { display: none; }
@media (min-width: 601px) {
  .workspace--manager .manager-parts-v2__inline-quick .manager-part-picker__control { min-height: 44px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-part-picker__control select { min-height: 42px; }
  .workspace--manager .manager-quick-step__active .manager-quick-step__copy strong { display: none; }
  .workspace--manager .manager-quick-step__input,
  .workspace--manager .manager-quick-step__input input { min-height: 40px; }
}
@media (max-width: 900px) { .manager-parts-mobile-title { display: block; margin: 0; } }

/* Phone board entry keeps the complete form visible and groups machining tools. */
@media (max-width: 600px) {
  .workspace--manager .manager-parts-v2__main > .manager-parts-v2__inspector { border-bottom: 1px solid var(--ink-200); }
  .workspace--manager .manager-parts-v2__inspector.is-entry > .manager-edge-editor {
    grid-template-columns: minmax(0, 1fr) 104px;
    gap: 10px;
    padding: 12px;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-pickers {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-canvas {
    grid-column: 1;
    grid-row: 2;
    min-height: 228px;
    padding: 48px;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-board {
    width: min(100%, calc(132px * var(--board-ratio)));
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-board__center {
    inset: 6px;
    gap: 0;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-board__center strong {
    max-width: 100%;
    font-size: 10px;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-board__center > .manager-color-swatch,
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-board__center > span,
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-canvas__action { display: none; }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-operations {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    overflow: visible;
    border: 0;
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-operations button {
    min-height: 44px;
    justify-content: flex-start;
    padding: 8px;
    border: 1px solid var(--ink-200);
    border-radius: var(--radius-xs);
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-groove-offset,
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-templates { grid-column: 1 / -1; }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-templates {
    padding-top: 10px;
    border-top: 1px solid var(--ink-150);
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-templates button { min-height: 44px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-part-picker__control,
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-part-picker__control { min-height: 44px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-part-picker__control select,
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-part-picker__control select { min-height: 42px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-steps {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    scroll-snap-type: none;
  }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-steps li { grid-column: span 2; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-steps li:last-child { grid-column: span 4; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-steps li > button,
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__active {
    min-height: 98px;
    height: 100%;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 6px;
    padding: 8px;
  }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__number { width: 20px; height: 20px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__copy { display: contents; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__copy small { grid-column: 2; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__copy strong { grid-column: 1 / -1; white-space: normal; overflow-wrap: anywhere; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__active .manager-quick-step__copy strong { display: none; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__input,
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__input input { min-height: 44px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__input input { padding: 6px 3px; font-size: 16px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__input > span[data-manager-quick-unit] { width: 20px; min-width: 20px; padding-inline: 1px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-step__input:focus-within {
    outline: 2px solid var(--brand-700);
    outline-offset: 1px;
  }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-workflow__actions { gap: 8px; }
  .workspace--manager .manager-parts-v2__inline-quick .manager-quick-workflow__actions > .button { min-height: 44px; padding-inline: 12px; }
}
@media (max-width: 380px) {
  .workspace--manager .manager-parts-v2__inspector.is-entry > .manager-edge-editor { grid-template-columns: minmax(0, 1fr); }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-operations {
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-operations button { justify-content: center; padding-inline: 4px; font-size: 10px; }
  .workspace--manager .manager-parts-v2__inspector.is-entry .manager-edge-canvas { grid-row: 3; }
}

/* Frosted slate glass: translucent fill, backdrop blur, and a soft shade. */
.button.button--primary:not(:disabled),
.global-rail__nav button.is-active:not(:disabled) {
  background: rgba(var(--brand-rgb), .12);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  backdrop-filter: blur(16px) saturate(125%);
  border-color: rgba(var(--brand-rgb), .16);
  color: var(--brand-900);
  box-shadow: 0 4px 14px rgba(var(--brand-rgb), .14);
  text-shadow: none;
}
.button.button--primary:hover:not(:disabled),
.global-rail__nav button.is-active:hover:not(:disabled) {
  background: rgba(var(--brand-rgb), .18);
  border-color: rgba(var(--brand-rgb), .22);
  box-shadow: 0 6px 18px rgba(var(--brand-rgb), .18);
}
.button.button--primary:active:not(:disabled),
.global-rail__nav button.is-active:active:not(:disabled) {
  background: rgba(var(--brand-rgb), .22);
  box-shadow: 0 2px 7px rgba(var(--brand-rgb), .12);
}
.workspace-topbar__tools > .language-button > span { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }

/* Separate order cards without a second enclosing panel border. */
.manager-jobs .jobs-list { display: grid; align-content: start; gap: 16px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.manager-jobs .jobs-list > .panel__header { padding: 0 2px 2px; border: 0; }
.manager-jobs .jobs-list > .job-row--managed { padding: 20px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); }
.manager-jobs .jobs-list > .job-row--managed:hover { background: var(--brand-050); }
@media (max-width: 600px) {
  .manager-jobs .jobs-list { gap: 18px; }
  .manager-jobs .jobs-list > .job-row--managed { gap: 18px; }
  .manager-jobs .job-row__open { gap: 18px; }
  .manager-jobs .job-row__open .job-row__main { gap: 8px; }
  .manager-jobs .job-row__details > span { gap: 7px; }
  .manager-jobs .job-row--managed > .job-row__controls { gap: 12px; padding-top: 12px; }
}

/* Phone utilities retain their own touch targets and visible logout. */
@media (max-width: 600px) {
  .workspace-topbar { gap: 10px; }
  .workspace-topbar__mobile-brand { flex: 0 0 auto; padding-inline-end: 0; }
  .workspace-topbar__tools { flex: 0 0 auto; gap: 8px; align-items: center; }
  .workspace-topbar__tools > .language-button { width: auto; min-width: 64px; min-height: 44px; gap: 6px; padding: 6px; }
  .workspace-topbar__tools .user-tools { padding-inline-start: 8px; border-inline-start: 1px solid var(--ink-200); }
  .workspace-topbar__tools .user-tools > .icon-button { display: inline-grid; width: 44px; height: 44px; border-radius: var(--radius-xs); }
  .workspace-topbar__tools > .status--connection { padding: 0; font-size: 11px; }
}
@media (max-width: 360px) {
  .workspace-topbar__mobile-brand .brand img { width: 100px; }
  .workspace-topbar__tools { gap: 4px; }
  .workspace-topbar__tools .user-tools { padding-inline-start: 4px; }
}

/* Shared phone chrome: floating, tinted frost with a soft shade. */
.bottom-nav__action { display: none; }
@media (max-width: 600px) {
  :root {
    --phone-glass: var(--brand-glass);
    --phone-glass-border: rgba(var(--brand-rgb), .22);
    --phone-glass-shadow: 0 8px 26px rgba(var(--brand-shadow-rgb), .14);
    --phone-glass-blur: blur(22px) saturate(135%);
  }
  html { scroll-padding-top: 90px; scroll-padding-bottom: 112px; }
  .workspace { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  .workspace > .workspace-topbar {
    top: calc(10px + env(safe-area-inset-top));
    margin: calc(10px + env(safe-area-inset-top)) 10px 0;
    min-height: 64px;
    padding: 8px;
    gap: 8px;
    border: 1px solid var(--phone-glass-border);
    border-radius: 20px;
    background: var(--phone-glass);
    box-shadow: var(--phone-glass-shadow);
    -webkit-backdrop-filter: var(--phone-glass-blur);
    backdrop-filter: var(--phone-glass-blur);
  }
  .workspace > .bottom-nav {
    inset-inline: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    min-height: 72px;
    padding: 6px;
    gap: 3px;
    border: 1px solid var(--phone-glass-border);
    border-radius: 24px;
    background: var(--phone-glass);
    box-shadow: var(--phone-glass-shadow);
    -webkit-backdrop-filter: var(--phone-glass-blur);
    backdrop-filter: var(--phone-glass-blur);
  }
  .workspace > .bottom-nav > button {
    min-width: 0;
    min-height: 58px;
    padding: 6px 2px;
    border-radius: 16px;
    line-height: 1.5;
    font-size: 9px;
  }
  .workspace > .bottom-nav > button.is-active { background: rgba(var(--brand-rgb), .09); color: var(--brand-900); }
  .workspace > .bottom-nav > button:hover { background: rgba(var(--brand-rgb), .13); }
  .workspace > .bottom-nav > button:active { background: rgba(var(--brand-rgb), .19); }
  .workspace > .bottom-nav.bottom-nav--with-action { grid-template-columns: 1fr 1fr 64px 1fr 1fr; }
  .bottom-nav__action { display: flex; align-items: center; justify-content: center; }
  .workspace .bottom-nav__action > .manager-add-order-mobile {
    width: 56px;
    height: 56px;
    min-height: 56px;
    padding: 0;
    border: 1px solid rgba(var(--brand-rgb), .22);
    border-radius: 50%;
    background: rgba(var(--brand-rgb), .16);
    color: var(--brand-900);
    box-shadow: 0 4px 12px rgba(var(--brand-rgb), .16);
  }
  .workspace .bottom-nav__action > .manager-add-order-mobile:hover:not(:disabled) { background: rgba(var(--brand-rgb), .24); }
  .workspace .bottom-nav__action > .manager-add-order-mobile:active:not(:disabled) { background: rgba(var(--brand-rgb), .3); }
  .workspace .bottom-nav__action > .manager-add-order-mobile:disabled { background: var(--ink-100); color: var(--ink-500); box-shadow: none; }
  .bottom-nav__action .manager-add-order-mobile svg { width: 28px; height: 28px; }
  .manager-add-order-desktop { display: none; }
}
@media (max-width: 360px) {
  .workspace-topbar__mobile-brand .brand img { width: 84px; }
  .workspace-topbar__tools > .language-button { min-width: 58px; padding-inline: 3px; }
  .workspace-topbar__tools > .language-button > svg { display: none; }
}
@media (max-width: 600px) {
  .workspace .manager-parts-v2__savebar,
  .workspace .proposal-readiness-actions,
  .workspace .optimizer-mobile-review-action,
  .workspace .manager-settings-actions { bottom: calc(96px + env(safe-area-inset-bottom)); }
}

.manager-overview-focus__card { border: 0; box-shadow: none; }
.manager-overview-history-heading > button { display: none; }
@media (max-width: 600px) {
  .workspace--manager .job-header {
    margin: 12px 0 4px;
    padding: 16px 12px 10px;
    border: 1px solid rgba(var(--brand-rgb), .18);
    border-radius: 28px;
    background: var(--brand-glass);
    box-shadow: 0 6px 22px rgba(var(--brand-shadow-rgb), .08);
    -webkit-backdrop-filter: blur(22px) saturate(110%);
    backdrop-filter: blur(22px) saturate(110%);
    overflow: visible;
  }
  .workspace--manager .job-header__mobile-context > .eyebrow,
  .workspace--manager .job-header__mobile-context > .title-with-status > .status { display: none; }
  .workspace--manager .job-header__mobile-context > .job-header__meta { border: 0; padding-top: 0; font-size: 11px; line-height: 1.8; }
  .workspace--manager .job-header__mobile-action { justify-content: flex-end; }
  .workspace--manager .job-header .button--primary:not(:disabled) { color: var(--ink-800); background: rgba(var(--brand-rgb), .11); border-color: rgba(var(--brand-rgb), .2); box-shadow: 0 3px 10px rgba(var(--brand-shadow-rgb), .1); }
  .workspace--manager .job-header .button--primary:hover:not(:disabled) { background: rgba(var(--brand-rgb), .18); }
  .workspace--manager .job-header .job-next-step { display: grid; grid-template-columns: 22px 1fr 22px; gap: 4px; width: 144px; min-height: 44px; padding: 8px; line-height: 1.5; }
  .job-next-step > svg { grid-column: 1; grid-row: 1; }
  .job-next-step > span { grid-column: 2; grid-row: 1; text-align: center; white-space: nowrap; }
  .workspace--manager .job-workflow-tabs { padding: 10px 0 2px; }
  .workspace--manager .job-workflow-tabs .workflow-step { min-height: 48px; }
  .workspace--manager .job-workflow-tabs .workflow-step__icon { width: 34px; height: 34px; background: rgba(255,255,255,.6); border-color: rgba(var(--brand-rgb),.3); color: var(--ink-500); box-shadow: 0 2px 6px rgba(var(--brand-shadow-rgb),.08); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .workspace--manager .job-workflow-tabs .workflow-step--complete .workflow-step__icon { color: var(--ink-800); background: rgba(var(--brand-rgb),.22); border-color: var(--ink-600); border-width: 2px; }
  .workspace--manager .job-workflow-tabs .workflow-step--current .workflow-step__icon { color: var(--ink-800); border-color: var(--ink-600); }
  .workspace--manager .job-workflow-tabs .workflow-step--error .workflow-step__icon { color: var(--red-700); border-color: var(--red-700); background: var(--red-100); }
  .workspace--manager .job-workflow-tabs .workflow-step.is-active .workflow-step__icon { box-shadow: 0 0 0 3px rgba(255,255,255,.9), 0 0 0 5px var(--ink-700); }
  .workspace--manager .job-workflow-tabs .workflow-step--complete:not(:last-child)::after { background: var(--ink-600); }
  .workspace--manager .job-workflow-tabs__utilities > button { min-width: 34px; min-height: 44px; border-radius: 14px; color: var(--ink-600); background: rgba(255,255,255,.5); }
  .workspace--manager .job-workflow-tabs__utilities > button:hover,
  .workspace--manager .job-workflow-tabs__utilities > button.is-active { color: var(--ink-800); background: rgba(var(--brand-rgb),.15); border-color: var(--ink-300); }
  .manager-overview-focus__card { padding: 12px 0; }
  .manager-overview-history-heading { margin: 0; }
  .manager-overview-history-heading > span { display: none; }
  .manager-overview-history-heading > button { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid rgba(var(--brand-rgb),.18); border-radius: 16px; background: var(--brand-glass); color: var(--ink-700); font: inherit; text-align: start; cursor: pointer; }
  .manager-overview-history-heading > button:hover { background: rgba(var(--brand-rgb),.1); }
  .manager-overview-history-heading > button:active { background: rgba(var(--brand-rgb),.16); }
  .manager-overview-lifecycle.is-expanded .manager-overview-history-heading svg { transform: rotate(180deg); }
  .manager-overview-history-heading svg { transition: transform 320ms cubic-bezier(.22, 1, .36, 1); }
  .manager-overview-history-body { display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: grid-template-rows 320ms cubic-bezier(.22, 1, .36, 1), opacity 200ms ease, transform 320ms ease, visibility 0s 320ms; }
  .manager-overview-history-content { min-height: 0; overflow: hidden; }
  .manager-overview-history-content > .timeline { margin-top: 18px; margin-bottom: 0; }
  .manager-overview-lifecycle.is-expanded .manager-overview-history-body { grid-template-rows: 1fr; opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
}

.workspace-topbar__tools > .connection-indicator {
  display: inline-flex;
  flex: 0 0 60px;
  width: 60px;
  min-width: 60px;
  height: 30px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink-600);
  font-size: 10px;
  line-height: 1.5;
  white-space: nowrap;
}
.workspace-topbar__tools > .connection-indicator.is-offline { color: var(--amber-800); }
.workspace-topbar__tools > .connection-indicator > svg { flex: 0 0 18px; }
.workspace-topbar__tools > .connection-indicator > .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* Shared feedback: distinct tone, icon and announcement, with readable recovery text. */
.info-strip { --feedback-color: var(--brand-800); color: var(--feedback-color); border: 1px solid color-mix(in srgb, var(--feedback-color) 16%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--feedback-color) 7%, var(--brand-glass)); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); padding: 14px; gap: 12px; }
.info-strip--danger { --feedback-color: var(--red-700); }
.info-strip--warning { --feedback-color: var(--amber-800); }
.info-strip--success { --feedback-color: var(--green-700); }
.info-strip > svg { box-sizing: content-box; width: 22px; height: 22px; padding: 6px; border-radius: 10px; background: color-mix(in srgb, var(--feedback-color) 9%, transparent); }
.info-strip__body { gap: 5px; padding-block: 2px; }
.info-strip__body > strong { line-height: 1.5; font-size: 14px; }
.info-strip__body > span { line-height: 1.75; overflow-wrap: anywhere; }
.field__password { position: relative; min-width: 0; }
.field__password > input { width: 100%; padding-inline-end: 52px; }
.field__password > .icon-button { position: absolute; inset-inline-end: 3px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 10px; }
.field__password > .icon-button:disabled { cursor: not-allowed; opacity: .55; }

/* A quiet private entrance, using the same floating frost as the workspace. */
.auth-page { position: relative; isolation: isolate; min-height: 100svh; background: #f2f5f8; }
.auth-page > .public-topbar { position: sticky; top: 12px; z-index: 30; display: flex; justify-content: space-between; width: calc(100% - 32px); max-width: 1280px; min-height: 64px; margin: 12px auto 0; padding: 10px 18px; border: 1px solid rgba(var(--brand-rgb),.2); border-radius: 22px; background: var(--brand-glass); box-shadow: 0 8px 26px rgba(var(--brand-shadow-rgb),.1); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
.auth-page .auth-layout { position: relative; display: grid; grid-template-columns: minmax(0,460px); align-content: center; justify-content: center; width: 100%; min-height: calc(100svh - 88px); padding: 48px 20px 64px; gap: 0; }
.auth-atmosphere { position: fixed; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; background: radial-gradient(ellipse at 20% 30%, rgba(var(--brand-rgb),.19), transparent 52%), radial-gradient(ellipse at 90% 85%, rgba(95,121,162,.18), transparent 50%); }
.auth-atmosphere i { position: absolute; width: 340px; height: 460px; border: 1px solid rgba(var(--brand-rgb),.12); border-radius: 40px; background: rgba(255,255,255,.16); transform: rotate(-24deg); }
.auth-atmosphere i:nth-child(1) { left: -110px; top: 15%; }
.auth-atmosphere i:nth-child(2) { right: -150px; bottom: -80px; transform: rotate(24deg); }
.auth-atmosphere i:nth-child(3) { right: -80px; bottom: -160px; transform: rotate(24deg); }
.auth-page .sign-in-panel { width: 100%; padding: 32px; border: 1px solid rgba(255,255,255,.85); border-radius: 30px; background: rgba(255,255,255,.7); box-shadow: 0 20px 60px rgba(var(--brand-shadow-rgb),.1); -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px); }
.auth-emblem { position: relative; display: grid; width: 92px; height: 92px; margin: 0 auto 28px; place-items: center; color: var(--brand-900); }
.auth-emblem > span { position: absolute; width: 66px; height: 66px; border: 1px solid rgba(var(--brand-rgb),.2); border-radius: 22px; background: rgba(var(--brand-rgb),.07); transform: translate(-9px,-7px) rotate(-14deg); }
.auth-emblem > span:nth-child(2) { transform: translate(9px,7px) rotate(14deg); background: rgba(255,255,255,.55); box-shadow: 0 8px 18px rgba(var(--brand-rgb),.08); backdrop-filter: blur(8px); }
.auth-emblem > svg { z-index: 1; }
.auth-feedback:empty { display: none; }
.auth-feedback { margin-bottom: 22px; }
.auth-page .sign-in-panel > form { width: 100%; max-width: none; margin: 0; gap: 20px; }
.auth-page .field { gap: 9px; }
.auth-page .field input { min-height: 52px; border-radius: 12px; border-color: rgba(var(--brand-rgb),.28); background: rgba(255,255,255,.78); }
.auth-page .field > span { font-size: 13px; }
.auth-page .auth-recover { justify-self: end; min-height: 32px; font-size: 13px; }
.auth-page .sign-in-panel > form > .button { min-height: 52px; margin-top: 0; border-radius: 14px; }
@media (max-width: 600px) {
  .auth-page > .public-topbar { width: calc(100% - 20px); top: calc(10px + env(safe-area-inset-top)); margin-top: calc(10px + env(safe-area-inset-top)); padding: 8px 14px; }
  .auth-page .auth-layout { min-height: calc(100svh - 84px); align-content: start; padding: 40px 16px calc(36px + env(safe-area-inset-bottom)); }
  .auth-page .sign-in-panel { padding: 28px 22px; border-radius: 26px; }
  .auth-page .auth-emblem { margin-bottom: 24px; }
}
@media (max-width: 360px) {
  .auth-page .sign-in-panel { padding-inline: 18px; }
  .auth-page .auth-layout { padding-inline: 12px; }
}

.auth-feedback.is-reserved:empty { display: block; }

@media (prefers-reduced-motion: reduce) {
  .manager-overview-history-body, .manager-overview-history-heading svg { transition: none; transform: none; }
}

/* Minimal optimizer settings: only grain and edge-band reduction are editable. */
.optimization-settings-screen--minimal { max-width: 860px; }
.optimization-settings-screen--minimal .settings-form { min-height: 0; margin-top: 18px; }
.manager-settings-hub__content > .panel:has(.optimization-settings-screen--minimal) { min-height: 0; }
.optimizer-fixed-settings { margin: 4px 0 0; color: var(--ink-500); font-size: 12px; }
.optimizer-applied-details { margin-block: 12px; }
.optimizer-applied-details > summary { padding-block: 10px; color: var(--ink-600); font-size: 12px; cursor: pointer; }
@media (max-width: 600px) {
  .optimizer-quick-settings__grid { grid-template-columns: minmax(0, 1fr); }
  .optimizer-quick-settings__item { border-inline-end: 0; border-block-end: 1px solid var(--ink-150); }
  .optimizer-quick-settings__item:last-child { border-block-end: 0; }
}
/* Manager Production — selected Quiet stage list, 19 September 2026. */
.workspace--manager-production .production-quiet {
  display: grid;
  gap: 24px;
  width: 100%;
  max-width: 1440px;
  min-height: 0;
  margin-inline: auto;
  padding: 32px clamp(24px, 3vw, 48px) 48px;
  color: var(--ink-950);
}
.production-quiet button, .production-quiet summary { -webkit-tap-highlight-color: transparent; }
.production-quiet button:focus-visible, .production-quiet summary:focus-visible {
  outline: 3px solid var(--ink-500);
  outline-offset: 3px;
}
.production-quiet__header { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.production-quiet__identity { min-width: 0; }
.production-quiet__identity .eyebrow { margin-bottom: 9px; font-size: 12px; letter-spacing: .075em; }
.production-quiet__identity h1 { margin: 0 0 14px; font-size: 32px; line-height: 1.2; overflow-wrap: anywhere; }
.production-quiet__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; }
.production-quiet__run-select { position: relative; display: flex; max-width: 100%; }
.production-quiet__run-select > svg { position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.production-quiet__run-select select { appearance: none; }
.production-quiet__run-select select { min-height: 42px; max-width: min(330px, 100%); padding: 9px 36px 9px 12px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); background: var(--paper); color: var(--ink-800); font-size: 13px; font-weight: 650; text-overflow: ellipsis; }
[dir="rtl"] .production-quiet__run-select select { padding: 9px 12px 9px 36px; }
.production-quiet__due { color: var(--ink-600); font-size: 13px; }
.production-quiet__header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }
.production-quiet__header-actions > .button { min-height: 44px; font-size: 13px; box-shadow: none; }
.production-quiet__actions-menu, .production-quiet__filters { position: relative; }
.production-quiet summary { list-style: none; cursor: pointer; }
.production-quiet summary::-webkit-details-marker { display: none; }
.production-quiet__actions-menu > summary, .production-quiet__filters > summary { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--ink-200); border-radius: var(--radius-xs); color: var(--ink-800); background: var(--paper); font-size: 13px; font-weight: 650; }
.production-quiet__actions-menu > summary:hover, .production-quiet__filters > summary:hover { background: var(--ink-050); }
.production-quiet__actions-popover, .production-quiet__filter-popover { position: absolute; z-index: 30; inset-inline-end: 0; top: calc(100% + 8px); width: 320px; max-width: calc(100vw - 40px); padding: 18px; border: 1px solid var(--ink-200); border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-md); }
.production-quiet__actions-popover { display: grid; gap: 10px; }
.production-quiet__actions-popover .button { width: 100%; justify-content: flex-start; text-align: start; font-size: 13px; }
.production-quiet__actions-popover p { margin: 0; font-size: 12px; }
.production-quiet__filter-popover { display: grid; gap: 16px; }
.production-quiet__filter-popover .search { width: 100%; min-width: 0; }
.production-quiet__filter-popover input, .production-quiet__filter-popover select { min-height: 44px; font-size: 14px; }
.production-quiet__alert { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid #f1d3a0; border-radius: var(--radius-xs); background: #fff8eb; }
.production-quiet__alert > svg { flex: 0 0 auto; color: var(--amber-800); }
.production-quiet__alert-copy { flex: 1; min-width: 0; }
.production-quiet__alert-copy strong { display: block; color: var(--amber-800); font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.production-quiet__alert-copy p { margin: 4px 0 0; color: var(--ink-600); font-size: 13px; }
.production-quiet__alert > .button { flex: 0 0 auto; min-width: 126px; background: var(--ink-800); font-size: 13px; box-shadow: none; }
.production-quiet .production-quiet__alert > .button.button--primary:not(:disabled) { color: var(--paper); background: var(--ink-800); border-color: var(--ink-800); box-shadow: none; backdrop-filter: none; }
.production-quiet .production-quiet__alert > .button.button--primary:hover:not(:disabled) { color: var(--paper); background: var(--ink-950); border-color: var(--ink-950); }
.production-quiet > .info-strip .info-strip__body span { font-size: 13px; }
.production-quiet__stages { min-width: 0; }
.production-quiet__toolbar { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.production-quiet__toolbar h2 { margin: 0; font-size: 23px; }
.production-quiet__toolbar-actions { display: flex; align-items: center; gap: 14px; }
.production-quiet__updated { max-width: 235px; color: var(--ink-600); font-size: 11px; }
.production-quiet__toolbar-actions > .icon-button { width: 44px; height: 44px; border-radius: var(--radius-xs); }
.production-quiet__stage-list { border-top: 1px solid var(--ink-200); }
.production-quiet__stage { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .95fr) 140px 24px; gap: 0 16px; min-height: 92px; border-bottom: 1px solid var(--ink-200); }
.production-quiet__stage-open { grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(180px, .95fr) 140px 24px; align-items: center; gap: 16px; width: 100%; min-height: 92px; padding: 14px 12px; border: 0; background: transparent; text-align: start; cursor: pointer; }
.production-quiet__stage-open:hover { background: var(--ink-050); }
.production-quiet__status-icon { grid-column: 1; display: flex; color: var(--ink-600); }
.production-quiet__status-icon > span { width: 16px; height: 16px; margin-inline-start: 3px; border-radius: 50%; background: currentColor; }
.production-quiet__stage-identity { grid-column: 2; display: grid; min-width: 0; gap: 5px; }
.production-quiet__stage-identity > strong { font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.production-quiet__stage-status { color: var(--ink-600); font-size: 13px; line-height: 1.4; }
.production-quiet__stage--complete .production-quiet__status-icon, .production-quiet__stage--complete .production-quiet__stage-status { color: var(--green-700); }
.production-quiet__stage--at_risk .production-quiet__status-icon, .production-quiet__stage--at_risk .production-quiet__stage-status { color: var(--amber-800); }
.production-quiet__stage--in_progress .production-quiet__status-icon, .production-quiet__stage--in_progress .production-quiet__stage-status { color: var(--ink-800); }
.production-quiet__count { grid-column: 4; display: grid; justify-content: start; gap: 6px; color: var(--ink-800); font-size: 15px; font-variant-numeric: tabular-nums; }
.production-quiet__count > small { font-size: 12px; font-weight: 400; }
.production-quiet__skipped-note { display: none; }
.production-quiet__chevron { grid-column: 5; color: var(--ink-600); }
.production-quiet__assignee { grid-column: 2; grid-row: 1; z-index: 1; align-self: center; justify-self: start; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 5px 9px; width: fit-content; max-width: 100%; min-height: 52px; padding: 5px 10px; border: 0; border-radius: var(--radius-xs); background: transparent; text-align: start; color: var(--ink-800); }
button.production-quiet__assignee { cursor: pointer; }
button.production-quiet__assignee:hover { background: var(--ink-100); }
.production-quiet__assignee-label { grid-column: 1 / -1; font-size: 12px; font-weight: 400; }
.production-quiet__avatar { display: grid; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: var(--ink-100); color: var(--ink-700); font-size: 11px; font-weight: 650; }
.production-quiet__assignee-name { min-width: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.35; }
.production-quiet__history { margin-top: -24px; border-bottom: 1px solid var(--ink-200); }
.production-quiet__history > summary { display: flex; min-height: 68px; align-items: center; gap: 16px; padding: 16px 12px; color: var(--ink-800); font-size: 15px; font-weight: 650; }
.production-quiet__history > summary > svg:last-child { margin-inline-start: auto; transition: transform 150ms ease; }
.production-quiet__history[open] > summary > svg:last-child { transform: rotate(180deg); }
.production-quiet__history-list { display: grid; gap: 0; padding: 0 16px 20px; }
.production-quiet__history-list > * { padding-block: 14px; border-top: 1px solid var(--ink-150); font-size: 13px; }
.production-quiet__history-list p { margin: 5px 0 0; font-size: 13px; }
.production-quiet__history-list article > div { display: flex; justify-content: space-between; gap: 16px; }
.production-quiet__history-list article > div > span { color: var(--ink-600); }
.production-quiet__history-list dl { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 10px 0 0; }
.production-quiet__history-list dl > div { display: flex; flex-wrap: wrap; gap: 8px; }
.production-quiet__history-list dt { color: var(--ink-600); }
.production-quiet__history-list dd { margin: 0; }
.production-quiet__history-list small, .production-quiet__history-list time { color: var(--ink-600); font-size: 12px; }
.production-quiet__delivery { display: flex; align-items: center; gap: 18px; padding: 18px 20px; border-radius: var(--radius-xs); background: var(--ink-050); }
.production-quiet__delivery > svg { flex: 0 0 auto; color: var(--ink-800); }
.production-quiet__delivery h2 { flex: 0 0 auto; margin: 0; font-size: 15px; }
.production-quiet__delivery-status { color: var(--ink-600); font-size: 13px; }
.production-quiet__handoff-link { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin: -8px -8px -8px auto; margin-inline-start: auto; padding: 10px; border: 0; border-radius: var(--radius-xs); background: transparent; color: var(--ink-800); font-size: 13px; font-weight: 650; cursor: pointer; }
.production-quiet__handoff-link:hover { background: var(--ink-100); }
.production-quiet__detail-summary { display: grid; gap: 14px; }
.production-quiet__task-list { display: grid; gap: 0; }
.production-quiet__task { padding-block: 18px; border-bottom: 1px solid var(--ink-200); }
.production-quiet__task p { margin: 6px 0 0; font-size: 13px; }
.production-quiet__task header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.production-quiet__review-list { display: grid; }
.production-quiet__review-list > button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 16px 0; border: 0; border-bottom: 1px solid var(--ink-200); background: transparent; text-align: start; color: var(--ink-800); cursor: pointer; }
.production-quiet__review-list > button > span { display: grid; gap: 6px; }
.production-quiet .drawer__body { font-size: 14px; }
.production-quiet .drawer__body .key-values dd { overflow-wrap: anywhere; }
.production-quiet .drawer__body .info-strip { margin-block: 8px; }
[dir="rtl"] .production-quiet__chevron, [dir="rtl"] .production-quiet__handoff-link > svg { transform: scaleX(-1); }

@media (max-width: 1100px) {
  .production-quiet__header { align-items: flex-start; }
  .production-quiet__header-actions { flex-wrap: wrap; justify-content: end; max-width: 280px; }
  .production-quiet__stage { grid-template-columns: minmax(0, 1fr) minmax(140px, .8fr) 92px 20px; gap: 0 8px; }
  .production-quiet__stage-open { grid-template-columns: 25px minmax(0, 1fr) minmax(140px, .8fr) 92px 20px; gap: 8px; }
  .production-quiet__updated { display: none; }
  .production-quiet__delivery { flex-wrap: wrap; gap: 10px 16px; }
}

@media (max-width: 600px) {
  .workspace--manager-production:has(.production-quiet) { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .workspace--manager-production:has(.production-quiet) > .bottom-nav { display: grid; }
  .workspace--manager-production:has(.production-quiet) .workspace__main { min-height: 0; }
  .workspace--manager-production .production-quiet { gap: 20px; padding: 22px 18px 24px; }
  .production-quiet__header { display: block; }
  .production-quiet__identity .eyebrow { display: none; }
  .production-quiet__identity h1 { min-height: 44px; padding-inline-end: 88px; margin-bottom: 8px; font-size: 23px; line-height: 1.3; }
  .production-quiet__meta { gap: 8px 14px; }
  .production-quiet__run-select { max-width: 56%; }
  .production-quiet__run-select select { width: 100%; min-height: 44px; font-size: 12px; }
  .production-quiet__due { max-width: 44%; font-size: 12px; }
  .production-quiet__header-actions { position: absolute; top: -4px; inset-inline-end: -6px; display: flex; flex-wrap: nowrap; gap: 2px; max-width: none; }
  .production-quiet__header-actions > .button, .production-quiet__actions-menu > summary { width: 44px; height: 44px; min-height: 44px; padding: 8px; border-color: transparent; background: transparent; }
  .production-quiet__header-actions > .button > span, .production-quiet__actions-menu > summary > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .production-quiet__actions-menu > summary > svg:last-child:not(:first-child) { display: none; }
  .production-quiet__actions-popover { inset-inline-end: 6px; }
  .production-quiet__alert { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; padding: 14px; }
  .production-quiet__alert > svg { width: 24px; align-self: start; }
  .production-quiet__alert-copy strong { font-size: 14px; }
  .production-quiet__alert-copy p { font-size: 12px; line-height: 1.5; }
  .production-quiet__alert > .button { grid-column: 1 / -1; width: 100%; min-height: 44px; font-size: 13px; }
  .production-quiet__toolbar { gap: 8px; margin-bottom: 6px; min-height: 44px; }
  .production-quiet__toolbar h2 { font-size: 21px; }
  .production-quiet__toolbar-actions { gap: 4px; }
  .production-quiet__filters > summary { gap: 7px; padding-inline: 12px; font-size: 12px; }
  .production-quiet__filter-popover { inset-inline-end: -46px; }
  .production-quiet__stage { grid-template-columns: minmax(0, 1fr) 82px 18px; gap: 0; min-height: 96px; }
  .production-quiet__stage-open { grid-template-columns: 24px minmax(0, 1fr) 76px 16px; gap: 10px; min-height: 96px; padding: 13px 4px 41px; }
  .production-quiet__status-icon { align-self: start; padding-top: 1px; }
  .production-quiet__status-icon svg { width: 22px; height: 22px; }
  .production-quiet__stage-identity { gap: 3px; }
  .production-quiet__stage-identity > strong { font-size: 14px; }
  .production-quiet__stage-status { font-size: 12px; }
  .production-quiet__count { grid-column: 3; justify-content: end; align-self: center; font-size: 13px; }
  .production-quiet__count > small { display: none; }
  .production-quiet__skipped-note { display: block; color: var(--ink-600); font-size: 12px; font-weight: 400; }
  .production-quiet__chevron { grid-column: 4; width: 16px; }
  .production-quiet__assignee { grid-column: 1; grid-row: 1; align-self: end; margin: 0 0 5px; margin-inline-start: 28px; min-height: 40px; max-width: calc(100% - 28px); grid-template-columns: 24px minmax(0, 1fr); gap: 7px; padding: 4px 6px; }
  .production-quiet__assignee-label { display: none; }
  .production-quiet__avatar { width: 24px; height: 24px; font-size: 9px; }
  .production-quiet__assignee-name { font-size: 12px; }
  .production-quiet__history { margin-top: -20px; }
  .production-quiet__history > summary { min-height: 58px; padding-inline: 4px; gap: 12px; font-size: 14px; }
  .production-quiet__history-list { padding-inline: 4px; }
  .production-quiet__delivery { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 5px 10px; padding: 14px 10px; }
  .production-quiet__delivery h2 { font-size: 13px; }
  .production-quiet__delivery-status { grid-column: 2; font-size: 12px; line-height: 1.5; }
  .production-quiet__handoff-link { grid-column: 3; grid-row: 1 / 3; margin: 0; padding: 6px 0 6px 4px; font-size: 11px; }
  .production-quiet__handoff-link svg { width: 16px; }
}
/* The manager/producer header and expanding rail share one uninterrupted surface. */
.workspace-project-search {
  display: flex;
  align-items: center;
  gap: 10px;
  inline-size: min(100%, 580px);
  min-inline-size: 0;
  min-block-size: 42px;
  justify-self: center;
  padding: 0 12px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-xs);
  background: var(--paper);
  color: var(--ink-600);
}
.workspace-project-search:focus-within { border-color: var(--ink-600); outline: 2px solid rgba(var(--brand-rgb), .16); outline-offset: 2px; }
.workspace-project-search > svg { flex: 0 0 21px; }
.workspace-project-search input { flex: 1; min-inline-size: 0; inline-size: 100%; padding: 10px 0; border: 0; outline: 0; background: transparent; color: var(--ink-900); font-size: 14px; }
.workspace-project-search input::placeholder { color: var(--ink-500); }
.workspace-project-search input::-webkit-search-cancel-button { display: none; }
.workspace-project-search kbd { flex: 0 0 auto; padding: 3px 6px; border-radius: 4px; background: var(--ink-050); color: var(--ink-500); font: 11px var(--font-ui); white-space: nowrap; }
.workspace-project-search__clear { display: grid; flex: 0 0 32px; block-size: 38px; place-items: center; border: 0; border-radius: 4px; background: transparent; color: var(--ink-600); cursor: pointer; }
.workspace-project-search__clear:hover { background: var(--ink-050); }

@media (min-width: 901px) {
  .workspace.workspace--connected {
    --global-rail: 76px;
    --shell-surface: var(--ink-050);
    --shell-resize-duration: 360ms;
    --shell-resize-easing: cubic-bezier(.22, 1, .36, 1);
    background: var(--shell-surface);
    transition: grid-template-columns var(--shell-resize-duration) var(--shell-resize-easing);
  }
  .workspace.workspace--connected:has(> .global-rail:is(:hover, :focus-within)) { --global-rail: 236px; }
  .workspace.workspace--connected > .workspace-topbar {
    grid-template-columns: var(--global-rail) minmax(0, 1fr) auto;
    gap: 18px;
    padding-inline: 0 18px;
    border: 0;
    background: var(--shell-surface);
    box-shadow: none;
    backdrop-filter: none;
    transition: grid-template-columns var(--shell-resize-duration) var(--shell-resize-easing);
  }
  .workspace--connected .workspace-topbar__rail-space { block-size: 65px; }
  .workspace--connected > .workspace__main { margin-inline-end: 6px; margin-block-end: 6px; border: 1px solid var(--ink-200); border-start-start-radius: 12px; border-end-start-radius: 12px; background: var(--paper); }
  .workspace--connected:is(.workspace--job-context, .workspace--project-context) > .context-rail { margin-inline-end: 6px; border: 1px solid var(--ink-200); border-block-end: 0; border-start-start-radius: 12px; background: var(--paper); }
  .workspace--connected:is(.workspace--job-context, .workspace--project-context) > .workspace__main { border-block-start: 0; border-start-start-radius: 0; }
  .workspace--connected:is(.workspace--job-context, .workspace--project-context) .job-context-summary { min-inline-size: 0; flex-shrink: 1; }
  .workspace--connected:is(.workspace--job-context, .workspace--project-context) .context-nav--workflow { min-inline-size: min-content; }
  .workspace.workspace--connected > .global-rail {
    z-index: 40;
    top: 0;
    grid-row: 1 / -1;
    height: 100vh;
    block-size: 100dvh;
    padding: 0 12px 18px;
    border: 0;
    background: var(--shell-surface);
    box-shadow: none;
    align-items: stretch;
    /* Follow the animated grid track so the content and rail never overlap. */
    inline-size: 100%;
    min-inline-size: 0;
    transition: none;
  }
  .workspace.workspace--connected > .global-rail:is(:hover, :focus-within) { inline-size: 100%; box-shadow: none; }
  .workspace--connected .global-rail__brand {
    display: flex;
    flex: 0 0 65px;
    align-items: center;
    gap: 12px;
    inline-size: calc(100% + 24px);
    min-block-size: 65px;
    margin-inline: -12px;
    padding: 0 23px;
    overflow: hidden;
    border: 0;
    background: transparent;
    cursor: pointer;
  }
  .global-rail__brand-mark { display: block; flex: 0 0 30px; inline-size: 30px; block-size: 38px; object-fit: contain; mix-blend-mode: multiply; }
  /* Crop only the supplied lockup's wordmark; the original N stays anchored. */
  .global-rail__brand-wordmark { position: relative; flex: 0 0 auto; inline-size: 0; block-size: 36px; overflow: hidden; opacity: 0; transition: inline-size var(--shell-resize-duration) var(--shell-resize-easing), opacity 180ms ease; }
  .global-rail__brand-wordmark img { position: absolute; top: 0; right: 0; inline-size: 128.35px; max-inline-size: none; block-size: 36px; mix-blend-mode: multiply; }
  .global-rail:is(:hover, :focus-within) .global-rail__brand-wordmark { inline-size: 95px; opacity: 1; }
  .workspace--connected .global-rail__create {
    display: flex;
    flex: 0 0 48px;
    align-items: center;
    gap: 14px;
    inline-size: 100%;
    min-block-size: 48px;
    margin-block: 12px 24px;
    padding: 0 13px;
    overflow: hidden;
    border: 1px solid rgba(var(--brand-rgb), .25);
    border-radius: var(--radius-xs);
    background: rgba(var(--brand-rgb), .09);
    color: var(--ink-800);
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
  }
  .global-rail__create > svg { flex: 0 0 24px; }
  .workspace--connected .global-rail__create:hover { border-color: var(--ink-500); background: rgba(var(--brand-rgb), .14); }
  .workspace--connected .global-rail__nav { flex: 0 1 auto; justify-items: stretch; gap: 8px; }
  .workspace--connected .global-rail__nav button { inline-size: 100%; min-block-size: 48px; block-size: 48px; font-size: 14px; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; }
  .workspace--connected .global-rail__nav button.is-active:not(:disabled) { border-color: transparent; box-shadow: none; }
  .workspace--connected .global-rail__footer { inline-size: 100%; min-block-size: 44px; margin-top: 18px; padding-inline: 14px; }
  .workspace--connected .global-rail__online-dot { inset-inline-start: 35px; inset-inline-end: auto; bottom: 7px; border-color: var(--shell-surface); }
  .workspace--connected .global-rail__label { font-size: 14px; transition: max-width var(--shell-resize-duration) var(--shell-resize-easing), opacity 180ms ease; }
  .workspace--connected .global-rail__brand:focus-visible { outline-offset: -5px; }
}

/* Preserve phone utilities and bottom navigation; search takes its own row. */
@media (max-width: 900px) {
  .workspace--connected .workspace-topbar__rail-space { display: none; }
  .workspace.workspace--connected > .workspace-topbar { display: flex; flex-wrap: wrap; }
  .workspace--connected .workspace-topbar__mobile-brand { flex: 0 1 auto; min-inline-size: 0; }
  .workspace--connected .workspace-topbar__tools { margin-inline-start: auto; }
  .workspace--connected .workspace-project-search { order: 3; flex: 0 0 100%; inline-size: 100%; min-block-size: 44px; }
  .workspace--connected .workspace-project-search__clear { min-inline-size: 44px; min-block-size: 44px; }
  .workspace--connected .workspace-project-search kbd { display: none; }
  .workspace--producer.workspace--connected > .bottom-nav.bottom-nav--with-action { grid-template-columns: 1fr 1fr 64px 1fr 1fr; }
  .workspace--producer.workspace--connected .bottom-nav__action { display: flex; align-items: center; justify-content: center; }
  .workspace--producer.workspace--connected .bottom-nav__action > .producer-add-project-mobile { display: grid; place-items: center; inline-size: 52px; block-size: 52px; min-block-size: 52px; padding: 0; border: 1px solid var(--ink-200); border-radius: 50%; background: rgba(var(--brand-rgb), .12); color: var(--ink-800); }
  .workspace--producer.workspace--connected .bottom-nav__action > .producer-add-project-mobile:disabled { background: var(--ink-100); color: var(--ink-500); }
  .workspace--producer.workspace--connected .bottom-nav__action > .producer-add-project-mobile svg { inline-size: 25px; block-size: 25px; }
  .workspace--connected { grid-template-rows: auto minmax(0, 1fr); }
  html:has(.workspace--connected) { scroll-padding-top: 145px; }
}

@media (min-width: 601px) and (max-width: 900px) {
  .workspace--connected > .bottom-nav.bottom-nav--with-action { grid-template-columns: 1fr 1fr 64px 1fr 1fr; }
  .workspace--connected .bottom-nav__action { display: flex; align-items: center; justify-content: center; }
  .workspace--connected .bottom-nav__action > .manager-add-order-mobile { inline-size: 52px; block-size: 52px; min-block-size: 52px; padding: 0; border: 1px solid var(--ink-200); border-radius: 50%; background: rgba(var(--brand-rgb), .12); color: var(--ink-800); }
  .workspace--connected .bottom-nav__action > .manager-add-order-mobile svg { inline-size: 25px; block-size: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  .workspace.workspace--connected,
  .workspace.workspace--connected > .workspace-topbar,
  .workspace.workspace--connected > .global-rail,
  .workspace--connected .global-rail__brand-wordmark,
  .workspace--connected .global-rail__label,
  .workspace--connected .global-rail__nav button { transition: none; }
}
/* Only the focused design workspace changes. Product routes/rails stay owned
   by the verified NovinCut application. */
.workspace.workspace--connected.workspace--focused {
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
/* Keep the design viewport fixed while the rail opens over it. Other product
   routes retain the connected shell's expanding grid layout. */
@media (min-width: 901px) {
  .workspace.workspace--connected.workspace--focused,
  .workspace.workspace--connected.workspace--focused:has(> .global-rail:is(:hover, :focus-within)) {
    --global-rail: 76px;
    position: relative;
    transition: none;
  }
  .workspace.workspace--connected.workspace--focused > .workspace-topbar {
    transition: none;
  }
  .workspace.workspace--connected.workspace--focused > .global-rail {
    position: absolute;
    inset-inline-start: 0;
    inline-size: var(--global-rail);
    height: 100%;
    block-size: 100%;
    transition:
      inline-size var(--shell-resize-duration) var(--shell-resize-easing),
      box-shadow 180ms ease;
  }
  .workspace.workspace--connected.workspace--focused > .global-rail:is(:hover, :focus-within) {
    inline-size: 236px;
    box-shadow: 12px 0 28px rgba(7, 20, 47, 0.12);
  }
  [dir='rtl']
    .workspace.workspace--connected.workspace--focused
    > .global-rail:is(:hover, :focus-within) {
    box-shadow: -12px 0 28px rgba(7, 20, 47, 0.12);
  }
}
@media (prefers-reduced-motion: reduce) {
  .workspace.workspace--connected.workspace--focused > .global-rail {
    transition: none;
  }
}
.workspace--focused > .workspace__main {
  min-height: 0;
  overflow: hidden;
}
.workspace--focused > .workspace__main > .workspace__content {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
/* Explicit columns keep account/language controls in the top bar. The normal
   connected shell keeps its original rail and product margins. */
.workspace.workspace--connected.workspace--focused > .workspace-topbar {
  display: grid;
  grid-template-columns: var(--global-rail) minmax(130px, 210px) minmax(140px, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  min-width: 0;
  min-height: 65px;
  padding-inline: 0 18px;
}
.workspace--focused .workspace-topbar__mobile-brand {
  display: none;
}
.workspace--focused .workspace-topbar > .workspace-focused-header__identity {
  width: 100%;
  min-inline-size: 0;
  padding: 0;
  border: 0;
}
.workspace--focused .workspace-topbar .workspace-focused-header__identity-copy > span {
  display: none;
}
.workspace--focused .workspace-topbar > .workspace-project-search {
  width: 100%;
  inline-size: 100%;
  min-inline-size: 0;
  min-block-size: 38px;
  margin: 0;
  order: 0;
}
.workspace--focused .workspace-topbar .workspace-project-search input {
  padding-block: 8px;
  font-size: 13px;
}
.workspace--focused .desk-top-actions {
  min-inline-size: 0;
  margin: 0;
}
.workspace--focused .workspace-topbar > .workspace-topbar__tools {
  display: flex;
  flex-wrap: nowrap;
  min-inline-size: 0;
  margin-inline-start: 0;
  gap: 5px;
}
.workspace.workspace--focused > .desk-workspace-navigation {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 10px 20px;
  border-radius: 0;
}
.workspace--focused .desk-workspace-navigation > .workspace-focused-header__portal {
  min-width: 0;
  flex-basis: auto;
}
.workspace--focused .desk-workspace-navigation .uw-header-tools {
  display: flex;
  flex-wrap: nowrap;
  width: auto;
  gap: 8px;
}
.workspace--focused .desk-workspace-navigation .uw-tool-strip {
  flex-wrap: nowrap;
  flex-shrink: 0;
  max-width: none;
}
.workspace--focused .uw-tool-opening-side {
  gap: 6px;
  white-space: nowrap;
}
.workspace--focused .uw-opening-side-edge {
  padding-inline-start: 6px;
  border-inline-start: 1px solid var(--line, #dbe3ed);
  color: var(--slate, #536583);
  font-size: 11px;
}
@media (max-width: 1350px) {
  .workspace--focused .uw-opening-side-edge {
    display: none;
  }
}
.workspace--focused .desk-workspace-tasks {
  min-width: 0;
}
.workspace--focused .desk-workspace-tasks:empty {
  display: none;
}
.workspace--focused .desk-room-workflow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  color: var(--ink-900);
  white-space: nowrap;
}
.workspace--focused .desk-room-workflow :is(button, summary) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 12px;
  line-height: 1.2;
  cursor: pointer;
}
.workspace--focused .desk-room-workflow button.active {
  border-color: #bfd0ff;
  color: #153d8a;
  background: #edf3ff;
}
.workspace--focused .desk-room-workflow > .desk-room-lock {
  flex-shrink: 0;
  border-color: var(--ink-200);
  background: #fff;
}
.workspace--focused .desk-room-workflow > .desk-room-lock.is-locked {
  color: #294b71;
  border-color: #cbd8e8;
  background: #edf2f8;
}
.workspace--focused .desk-room-lock svg {
  flex-shrink: 0;
}
.workspace--focused .desk-room-workflow :is(button, summary):hover:not(:disabled) {
  background: #f0f4fa;
}
.workspace--focused .desk-room-workflow button:disabled {
  cursor: default;
  opacity: 0.45;
}
.workspace--focused .desk-room-workflow :is(button, summary, select):focus-visible {
  outline: 2px solid #2468ff;
  outline-offset: 2px;
}
.workspace--focused .desk-room-actions {
  position: relative;
  padding-inline-start: 6px;
  border-inline-start: 1px solid var(--ink-200);
}
.workspace--focused .desk-room-actions summary {
  list-style: none;
}
.workspace--focused .desk-room-actions summary::-webkit-details-marker {
  display: none;
}
.workspace--focused .desk-room-actions__menu {
  position: absolute;
  z-index: 40;
  inset-block-start: calc(100% + 8px);
  inset-inline-end: 0;
  width: max-content;
  min-width: 210px;
  max-width: calc(100vw - 32px);
  display: grid;
  gap: 4px;
  padding: 6px;
  border: 1px solid var(--ink-200);
  border-radius: 7px;
  background: var(--paper);
  box-shadow: 0 8px 26px #10254c1a;
}
.workspace--focused .desk-room-actions__menu button {
  width: 100%;
  justify-content: flex-start;
  font-size: 12px;
  text-align: start;
}
.workspace--focused .uw-mounted-view[hidden],
.workspace--focused [hidden] {
  display: none !important;
}
.workspace--focused .uw-mounted-view {
  min-height: 0;
  height: 100%;
  flex: 1;
  overflow: auto;
  overscroll-behavior: contain;
}
.workspace--focused .workspace__content > .unified-workspace {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  min-width: 0;
}
.workspace--focused .uw-mounted-panels {
  overflow: auto;
  overscroll-behavior: contain;
}
.workspace--focused .unified-workspace .p-floating-workspace {
  --uw-floating-height: 100%;
  height: 100%;
  min-height: 0;
}
.novincut-drawing-desk.drawing-desk {
  display: block;
  height: 100%;
  min-height: 0;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  border: 0;
}
.novincut-drawing-desk > .workspace {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  grid-area: auto;
  overflow: hidden;
  background: #fff;
}
.novincut-drawing-desk .view-row {
  top: 20px;
}
.novincut-drawing-desk .scene {
  top: 0;
}
.novincut-drawing-desk .desk-context-editor {
  width: 100%;
}
.novincut-drawing-desk .desk-context-editor .context-editor {
  position: relative;
  inset: auto;
}
.novincut-drawing-desk .desk-world-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.novincut-drawing-desk .desk-edit-error {
  color: #b73838;
  font-size: 13px;
  margin-block: 12px;
}
.novincut-drawing-desk .desk-retained-status {
  position: absolute;
  inset-inline-start: 22px;
  bottom: 112px;
  max-width: 390px;
  background: #fff;
  color: #536583;
  padding: 8px 12px;
  border: 1px solid #dbe3ed;
  border-radius: 5px;
  font-size: 12px;
}
.desk-empty-room {
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 18px;
  height: 100%;
  min-height: 0;
  overflow: auto;
  background: #fff;
  color: #10254c;
  padding: 30px;
}
.desk-empty-room button {
  min-height: 40px;
  padding: 10px 18px;
  border: 1px solid #10254c;
  border-radius: 5px;
  background: #10254c;
  color: #fff;
  cursor: pointer;
}
@media (max-width: 1150px) {
  .workspace--focused .desk-room-workflow {
    flex-wrap: wrap;
  }
  .workspace--focused .workspace-topbar .workspace-project-search kbd {
    display: none;
  }
}
@media (max-width: 900px) {
  .workspace.workspace--connected.workspace--focused {
    padding-block-end: calc(72px + env(safe-area-inset-bottom, 0px));
  }
  .workspace.workspace--connected.workspace--focused > .workspace-topbar {
    grid-template-columns: minmax(100px, 180px) minmax(100px, 1fr) auto auto;
    gap: 8px;
    padding: 8px 12px;
  }
  .workspace--focused .workspace-topbar__rail-space {
    display: none;
  }
  .workspace.workspace--focused > .desk-workspace-navigation {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 8px 12px;
  }
  .workspace--focused .desk-workspace-navigation .uw-header-tools {
    flex-wrap: wrap;
    gap: 3px;
  }
  .workspace--focused .desk-room-workflow {
    justify-content: space-between;
  }
}
@media (max-width: 700px) {
  .workspace.workspace--connected.workspace--focused > .workspace-topbar {
    grid-template-columns: minmax(90px, 1fr) auto auto;
    grid-template-areas: 'identity actions account' 'search search search';
  }
  .workspace--focused .workspace-topbar > .workspace-focused-header__identity {
    grid-area: identity;
  }
  .workspace--focused .workspace-topbar > .workspace-project-search {
    grid-area: search;
  }
  .workspace--focused .desk-top-actions {
    grid-area: actions;
  }
  .workspace--focused .workspace-topbar > .workspace-topbar__tools {
    grid-area: account;
  }
  .workspace--focused .desk-room-actions summary > span,
  .workspace--focused .uw-unit-tools .uw-tool-add-unit > span {
    display: none;
  }
  .workspace--focused .desk-room-actions {
    padding-inline-start: 0;
    border: 0;
  }
}

.novincut-drawing-desk.desk-door-overlay {
  position: fixed;
  inset: 0;
  z-index: 70;
  height: 100dvh;
  width: 100vw;
  background: #10254c33;
}
.novincut-drawing-desk.desk-door-overlay .floating-panel {
  position: absolute;
  inset: 6vh auto 6vh 50%;
  transform: translateX(-50%);
  max-height: 88dvh;
  overflow: auto;
  width: min(390px, calc(100vw - 30px));
}

/* The Add catalogue needs room for actual recovered recipe names. Units keeps
   its existing compact schedule; this variant changes only catalogue browsing. */
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add.p-modal {
  width: min(760px, calc(100vw - 40px));
  max-height: min(820px, calc(100dvh - 40px));
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-head {
  min-height: 62px;
  padding: 12px 18px 12px 22px;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-head h2 {
  font-size: 16px;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add > .p-modal-body {
  display: flex;
  flex-direction: column;
  padding: 18px 20px 20px;
  overflow: hidden;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-body > .p-help,
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-body > .p-error-text,
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-body > .uw-unit-dialog__notice {
  flex: none;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-body > .p-help {
  margin: 0 0 14px;
  font-size: 12px;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue > button {
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: auto auto;
  gap: 4px 12px;
  min-height: 68px;
  padding: 12px 14px;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue > button > strong {
  grid-column: 1;
  grid-row: 1;
  font-size: 13px;
  line-height: 1.45;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue > button > small {
  grid-column: 1;
  grid-row: 2;
  font-size: 11px;
  line-height: 1.45;
}
.producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue > button > svg {
  grid-column: 2;
  grid-row: 1 / 3;
  width: 17px;
  height: 17px;
  color: var(--p-blue);
}
@media (max-width: 600px) {
  .producer-app.uw-unit-dialog-scope .uw-unit-dialog--add.p-modal {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 24px);
  }
  .producer-app.uw-unit-dialog-scope .uw-unit-dialog--add > .p-modal-body {
    padding: 14px;
  }
  .producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-modal-head {
    padding-inline: 16px 12px;
  }
  .producer-app.uw-unit-dialog-scope .uw-unit-dialog--add .p-catalogue {
    grid-template-columns: minmax(0, 1fr);
  }
}
