.xyz3d-app {
  --xyz-bg: #07101d;
  --xyz-panel: #0b1625;
  --xyz-panel-2: #101d2d;
  --xyz-border: rgba(160, 197, 223, 0.16);
  --xyz-border-strong: rgba(83, 205, 246, 0.42);
  --xyz-text: #eef8ff;
  --xyz-muted: #8ca2b6;
  --xyz-cyan: #54d6ff;
  --xyz-blue: #2b81ff;
  --xyz-green: #55e0b4;
  --xyz-orange: #ffb454;
  --xyz-red: #ff6672;
  --xyz-shadow: 0 28px 80px rgba(2, 8, 18, 0.34);
  color: var(--xyz-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  isolation: isolate;
  margin: 30px auto;
  max-width: 1460px;
}

.xyz3d-app *,
.xyz3d-app *::before,
.xyz3d-app *::after {
  box-sizing: border-box;
}

.xyz3d-app button,
.xyz3d-app input,
.xyz3d-app select,
.xyz3d-app textarea {
  font: inherit;
}

.xyz3d-app button {
  cursor: pointer;
}

.xyz3d-app button:focus-visible,
.xyz3d-app input:focus-visible,
.xyz3d-app select:focus-visible,
.xyz3d-app textarea:focus-visible,
.xyz3d-dropzone:focus-visible {
  outline: 2px solid var(--xyz-cyan);
  outline-offset: 2px;
}

.xyz3d-shell {
  background:
    radial-gradient(circle at 82% -10%, rgba(36, 130, 255, 0.24), transparent 33%),
    radial-gradient(circle at 5% 25%, rgba(61, 216, 255, 0.09), transparent 25%),
    var(--xyz-bg);
  border: 1px solid rgba(151, 195, 225, 0.2);
  border-radius: 26px;
  box-shadow: var(--xyz-shadow);
  min-height: 820px;
  overflow: hidden;
}

.xyz3d-header {
  align-items: center;
  border-bottom: 1px solid var(--xyz-border);
  display: flex;
  justify-content: space-between;
  min-height: 78px;
  padding: 0 30px;
}

.xyz3d-brand {
  align-items: center;
  display: flex;
  gap: 12px;
}

.xyz3d-brandmark {
  display: grid;
  gap: 3px;
  grid-template-columns: repeat(2, 8px);
  height: 23px;
  transform: rotate(45deg);
  width: 23px;
}

.xyz3d-brandmark i {
  background: linear-gradient(135deg, var(--xyz-cyan), var(--xyz-blue));
  border-radius: 2px;
  box-shadow: 0 0 18px rgba(84, 214, 255, 0.38);
  display: block;
}

.xyz3d-brandmark i:nth-child(3) {
  grid-column: 2;
}

.xyz3d-brand strong,
.xyz3d-brand small {
  display: block;
}

.xyz3d-brand strong {
  font-size: 18px;
  letter-spacing: 0.01em;
}

.xyz3d-brand small {
  color: var(--xyz-muted);
  font-size: 13px;
  letter-spacing: 0.08em;
  margin-top: 1px;
  text-transform: uppercase;
}

.xyz3d-secure {
  align-items: center;
  color: #a5b8c9;
  display: flex;
  font-size: 14px;
  gap: 8px;
}

.xyz3d-secure span {
  background: var(--xyz-green);
  border-radius: 100%;
  box-shadow: 0 0 0 5px rgba(85, 224, 180, 0.1);
  height: 7px;
  width: 7px;
}

.xyz3d-services {
  border-bottom: 1px solid var(--xyz-border);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  padding: 0 30px;
}

.xyz3d-services button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--xyz-muted);
  display: flex;
  flex-direction: column;
  min-height: 74px;
  padding: 18px 18px 14px;
  text-align: left;
  transition: 160ms ease;
}

.xyz3d-services button:hover {
  background: rgba(82, 201, 248, 0.04);
  color: var(--xyz-text);
}

.xyz3d-services button.active {
  background: linear-gradient(180deg, transparent, rgba(84, 214, 255, 0.08));
  border-bottom-color: var(--xyz-cyan);
  color: var(--xyz-text);
}

.xyz3d-services span {
  font-size: 16px;
  font-weight: 720;
}

.xyz3d-services small {
  color: var(--xyz-muted);
  font-size: 13px;
  margin-top: 2px;
}

.xyz3d-intro {
  align-items: flex-start;
  display: flex;
  gap: 40px;
  justify-content: space-between;
  padding: 30px;
}

.xyz3d-eyebrow {
  color: var(--xyz-cyan);
  display: block;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0.14em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.xyz3d-intro h2 {
  color: var(--xyz-text);
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 720;
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin: 0;
  max-width: 790px;
}

.xyz3d-intro p {
  color: var(--xyz-muted);
  font-size: 16px;
  margin: 10px 0 0;
  max-width: 760px;
}

.xyz3d-format-badge {
  background: linear-gradient(135deg, rgba(84, 214, 255, 0.14), rgba(43, 129, 255, 0.08));
  border: 1px solid rgba(84, 214, 255, 0.25);
  border-radius: 11px;
  color: var(--xyz-cyan);
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  padding: 9px 12px;
}

.xyz3d-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(420px, 0.82fr);
  min-height: var(--xyz-viewer-height-desktop, 720px);
  overflow: visible;
}

.xyz3d-stage {
  background:
    linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px),
    rgba(3, 10, 19, 0.24);
  background-size: 32px 32px;
  border-right: 1px solid var(--xyz-border);
  height: var(--xyz-viewer-height-desktop, 720px);
  min-height: var(--xyz-viewer-height-desktop, 720px);
  overflow: hidden;
  position: relative;
}

.xyz3d-upload-view {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  min-height: 0;
  padding: 40px;
}

.xyz3d-dropzone {
  align-items: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(84, 214, 255, 0.1), transparent 52%),
    rgba(10, 25, 40, 0.66);
  border: 1px dashed rgba(95, 202, 243, 0.46);
  border-radius: 22px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 640px;
  min-height: 350px;
  padding: 50px;
  text-align: center;
  transition: 180ms ease;
  width: 100%;
}

.xyz3d-dropzone:hover,
.xyz3d-dropzone.is-dragging {
  background:
    radial-gradient(circle at 50% 0%, rgba(84, 214, 255, 0.18), transparent 60%),
    rgba(12, 30, 48, 0.9);
  border-color: var(--xyz-cyan);
  box-shadow: inset 0 0 0 1px rgba(84, 214, 255, 0.08), 0 20px 50px rgba(0, 0, 0, 0.18);
  transform: translateY(-2px);
}

.xyz3d-dropzone input {
  height: 1px;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.xyz3d-upload-icon {
  align-items: center;
  background: linear-gradient(145deg, rgba(84, 214, 255, 0.18), rgba(43, 129, 255, 0.08));
  border: 1px solid rgba(84, 214, 255, 0.34);
  border-radius: 18px;
  display: flex;
  height: 68px;
  justify-content: center;
  margin-bottom: 24px;
  width: 68px;
}

.xyz3d-upload-icon svg {
  fill: none;
  height: 30px;
  stroke: var(--xyz-cyan);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  width: 30px;
}

.xyz3d-dropzone strong {
  font-size: 20px;
  letter-spacing: -0.02em;
}

.xyz3d-dropzone > span:not(.xyz3d-upload-icon) {
  color: var(--xyz-muted);
  font-size: 13px;
  margin-top: 4px;
}

.xyz3d-dropzone small {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--xyz-border);
  border-radius: 999px;
  color: #a8bdcf;
  font-size: 11px;
  margin-top: 24px;
  padding: 7px 12px;
}

.xyz3d-scan-start {
  background: linear-gradient(135deg, var(--xyz-cyan), #368bff);
  border: 0;
  border-radius: 13px;
  box-shadow: 0 12px 30px rgba(43, 129, 255, 0.2);
  color: #02101c;
  font-weight: 800;
  min-width: 260px;
  padding: 15px 22px;
}

.xyz3d-viewer-wrap {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.xyz3d-viewer {
  grid-row: 1;
  height: auto;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.xyz3d-viewer canvas {
  display: block;
  height: 100%;
  width: 100%;
}

.xyz3d-viewer canvas.xyz3d-selecting-face {
  cursor: crosshair;
}

.xyz3d-viewer-info {
  background: rgba(5, 14, 25, 0.98);
  border-top: 1px solid var(--xyz-border);
  display: flex;
  flex-direction: column;
  gap: 5px;
  grid-row: 2;
  padding: 7px 10px 9px;
  position: static;
  z-index: 4;
}

.xyz3d-viewer-toolbar {
  display: flex;
  gap: 4px;
  left: 10px;
  max-width: calc(100% - 20px);
  overflow-x: auto;
  position: absolute;
  scrollbar-width: none;
  top: 10px;
  width: min(560px, calc(100% - 20px));
  z-index: 4;
}

.xyz3d-viewer-toolbar::-webkit-scrollbar {
  display: none;
}

.xyz3d-viewer-toolbar button {
  align-items: center;
  background: rgba(7, 17, 29, 0.84);
  border: 1px solid var(--xyz-border);
  border-radius: 8px;
  color: var(--xyz-text);
  display: flex;
  height: 34px;
  justify-content: center;
  flex: 1 0 42px;
  max-width: 58px;
  min-width: 42px;
  padding: 0;
  transition: 150ms ease;
  width: auto;
}

.xyz3d-viewer-toolbar button:hover,
.xyz3d-viewer-toolbar button[aria-pressed="true"] {
  background: rgba(64, 183, 233, 0.17);
  border-color: var(--xyz-border-strong);
}

.xyz3d-viewer-toolbar .xyz3d-remove-model {
  border-color: rgba(255, 105, 120, 0.34);
  color: #ff9ca7;
}

.xyz3d-viewer-toolbar svg {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 16px;
}

.xyz3d-light-panel {
  background: rgba(7, 17, 29, 0.97);
  border: 1px solid var(--xyz-border-strong);
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.42);
  box-sizing: border-box;
  color: var(--xyz-text);
  left: 10px;
  padding: 12px;
  position: absolute;
  top: 52px;
  width: min(320px, calc(100% - 20px));
  z-index: 7;
}

.xyz3d-light-panel[hidden] {
  display: none !important;
}

.xyz3d-light-panel-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}

.xyz3d-light-panel-header strong {
  font-size: 13px;
}

.xyz3d-light-close {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--xyz-muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 22px;
  height: 28px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  width: 28px;
}

.xyz3d-light-close:hover {
  background: rgba(255, 255, 255, 0.07);
  color: var(--xyz-text);
}

.xyz3d-light-panel label {
  color: #b8c8d4;
  display: block;
  font-size: 12px;
  margin-bottom: 12px;
}

.xyz3d-light-panel label span {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.xyz3d-light-panel label b {
  color: var(--xyz-cyan);
  font-variant-numeric: tabular-nums;
}

.xyz3d-light-panel input[type="range"] {
  accent-color: var(--xyz-cyan);
  cursor: ew-resize;
  margin: 0;
  width: 100%;
}

.xyz3d-light-reset {
  background: rgba(85, 214, 255, 0.08);
  border: 1px solid rgba(85, 214, 255, 0.22);
  border-radius: 8px;
  color: #bcecff;
  cursor: pointer;
  font-size: 11px;
  padding: 7px 10px;
  width: 100%;
}

.xyz3d-light-reset:hover {
  background: rgba(85, 214, 255, 0.14);
}

.xyz3d-viewer-legend {
  background: rgba(6, 15, 26, 0.82);
  border: 1px solid var(--xyz-border);
  border-radius: 10px;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 9px;
  justify-content: center;
  padding: 5px 7px;
  position: static;
  width: 100%;
}

.xyz3d-viewer-legend span {
  align-items: center;
  color: #b7c7d4;
  display: flex;
  font-size: 10px;
  gap: 5px;
}

.xyz3d-viewer-legend i {
  border-radius: 100%;
  height: 7px;
  width: 7px;
}

.xyz3d-viewer-legend .safe { background: #55c7f3; }
.xyz3d-viewer-legend .transition { background: var(--xyz-orange); }
.xyz3d-viewer-legend .support { background: #65deb9; }

.xyz3d-support-summary {
  background: rgba(6, 15, 26, 0.88);
  border: 1px solid rgba(85, 224, 180, 0.3);
  border-radius: 10px;
  color: #9ff0d4;
  box-sizing: border-box;
  font-size: 11px;
  font-weight: 650;
  max-width: none;
  padding: 6px 8px;
  position: static;
  text-align: center;
  width: 100%;
}

.xyz3d-support-summary.ok {
  background: rgba(85, 224, 180, 0.09);
}

.xyz3d-model-chip {
  align-items: center;
  background: rgba(6, 15, 26, 0.86);
  border: 1px solid var(--xyz-border);
  border-radius: 10px;
  box-sizing: border-box;
  display: grid;
  gap: 8px;
  grid-template-columns: auto minmax(0, 1fr);
  max-width: none;
  padding: 6px 8px;
  position: static;
  width: 100%;
}

.xyz3d-file-icon {
  align-items: center;
  background: linear-gradient(135deg, rgba(84, 214, 255, 0.18), rgba(43, 129, 255, 0.12));
  border: 1px solid rgba(84, 214, 255, 0.24);
  border-radius: 9px;
  color: var(--xyz-cyan);
  display: flex;
  font-size: 12px;
  font-weight: 850;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.xyz3d-model-chip strong,
.xyz3d-model-chip small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xyz3d-model-chip strong {
  font-size: 13px;
}

.xyz3d-model-chip small {
  color: var(--xyz-muted);
  font-size: 11px;
  margin-top: 1px;
}

.xyz3d-replace,
.xyz3d-place-bed,
.xyz3d-remove-model {
  background: transparent;
  border: 1px solid var(--xyz-border);
  border-radius: 9px;
  color: #c6d9e8;
  font-size: 13px;
  padding: 8px 11px;
}

.xyz3d-viewer-toolbar .xyz3d-replace,
.xyz3d-viewer-toolbar .xyz3d-place-bed,
.xyz3d-viewer-toolbar .xyz3d-remove-model {
  font-size: inherit;
  height: 34px;
  min-width: 0;
  padding: 0;
  width: 100%;
}

.xyz3d-remove-model {
  border-color: rgba(255, 105, 120, 0.28);
  color: #ff9ca7;
}

.xyz3d-replace:hover,
.xyz3d-place-bed:hover,
.xyz3d-remove-model:hover {
  border-color: var(--xyz-border-strong);
  color: #fff;
}

.xyz3d-progress {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  min-height: 0;
  padding: 40px;
  text-align: center;
}

.xyz3d-progress > span {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  height: 5px;
  margin-bottom: 22px;
  max-width: 360px;
  overflow: hidden;
  width: 70%;
}

.xyz3d-progress i {
  background: linear-gradient(90deg, var(--xyz-cyan), var(--xyz-blue));
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width 220ms ease;
  width: 10%;
}

.xyz3d-progress strong {
  font-size: 18px;
}

.xyz3d-progress small {
  color: var(--xyz-muted);
  margin-top: 6px;
}

.xyz3d-panel {
  background: linear-gradient(180deg, rgba(14, 28, 44, 0.92), rgba(8, 18, 31, 0.96));
  display: flex;
  flex-direction: column;
  min-height: var(--xyz-viewer-height-desktop, 720px);
  overflow: visible;
}

.xyz3d-panel-tabs {
  border-bottom: 1px solid var(--xyz-border);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.xyz3d-panel-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--xyz-muted);
  font-size: 14px;
  font-weight: 720;
  padding: 15px 12px 13px;
}

.xyz3d-panel-tabs button.active {
  border-color: var(--xyz-cyan);
  color: var(--xyz-text);
}

.xyz3d-panel-body {
  flex: 0 0 auto;
  overflow: visible;
  padding: 6px 22px 20px;
}

.xyz3d-setting-section {
  border-bottom: 1px solid var(--xyz-border);
  padding: 18px 0;
}

.xyz3d-setting-section:last-child {
  border-bottom: 0;
}

.xyz3d-section-title {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 13px;
}

.xyz3d-section-title span {
  font-size: 14px;
  font-weight: 750;
}

.xyz3d-section-title small {
  color: var(--xyz-muted);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.xyz3d-field-grid {
  display: grid;
  gap: 11px;
  grid-template-columns: 1fr 1fr;
}

.xyz3d-field-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.xyz3d-field-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.xyz3d-field {
  display: block;
  min-width: 0;
}

.xyz3d-field > span:first-child,
.xyz3d-textarea > span {
  color: #9fb2c2;
  display: block;
  font-size: 13px;
  margin-bottom: 5px;
}

.xyz3d-field select,
.xyz3d-input-wrap,
.xyz3d-textarea textarea {
  background: rgba(2, 9, 17, 0.42);
  border: 1px solid var(--xyz-border);
  border-radius: 9px;
  color: var(--xyz-text);
  min-height: 44px;
  width: 100%;
}

.xyz3d-field select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #7e95a8 50%),
    linear-gradient(135deg, #7e95a8 50%, transparent 50%);
  background-position:
    calc(100% - 15px) 16px,
    calc(100% - 11px) 16px;
  background-repeat: no-repeat;
  background-size: 4px 4px, 4px 4px;
  padding: 0 26px 0 10px;
}

.xyz3d-field select option {
  background: #0d1927;
}

.xyz3d-input-wrap {
  align-items: center;
  display: flex;
  overflow: hidden;
}

.xyz3d-input-wrap input {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--xyz-text);
  min-width: 0;
  outline: 0;
  padding: 8px 4px 8px 10px;
  width: 100%;
}

.xyz3d-input-wrap input::-webkit-inner-spin-button,
.xyz3d-input-wrap input::-webkit-outer-spin-button {
  margin: 0;
  opacity: 0.3;
}

.xyz3d-input-wrap i {
  color: var(--xyz-muted);
  font-size: 11px;
  font-style: normal;
  padding-right: 8px;
}

.xyz3d-range {
  display: block;
  margin-top: 14px;
}

.xyz3d-range > span {
  align-items: center;
  display: flex;
  font-size: 13px;
  justify-content: space-between;
}

.xyz3d-range b {
  font-weight: 600;
}

.xyz3d-range output {
  color: var(--xyz-cyan);
  font-size: 13px;
}

.xyz3d-range input {
  accent-color: var(--xyz-cyan);
  cursor: pointer;
  margin: 7px 0 0;
  width: 100%;
}

.xyz3d-toggle-row {
  align-items: end;
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr 120px;
  margin-top: 14px;
}

.xyz3d-switch {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 9px;
  min-height: 38px;
}

.xyz3d-switch input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.xyz3d-switch > i {
  background: #26384a;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  flex: 0 0 auto;
  height: 21px;
  position: relative;
  transition: 160ms ease;
  width: 36px;
}

.xyz3d-switch > i::after {
  background: white;
  border-radius: 50%;
  content: "";
  height: 15px;
  left: 2px;
  position: absolute;
  top: 2px;
  transition: 160ms ease;
  width: 15px;
}

.xyz3d-switch input:checked + i {
  background: linear-gradient(90deg, var(--xyz-cyan), var(--xyz-blue));
}

.xyz3d-switch input:checked + i::after {
  transform: translateX(15px);
}

.xyz3d-switch > span {
  font-size: 13px;
}

.xyz3d-switch > span b,
.xyz3d-switch > span small {
  display: block;
}

.xyz3d-switch > span small {
  color: var(--xyz-muted);
  font-size: 11px;
  margin-top: 1px;
}

.xyz3d-switch-line {
  margin-top: 15px;
}

.xyz3d-segmented {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 13px;
}

.xyz3d-segmented button {
  background: rgba(3, 11, 20, 0.38);
  border: 1px solid var(--xyz-border);
  border-radius: 10px;
  color: #b8c9d7;
  padding: 10px;
  text-align: left;
}

.xyz3d-segmented button.active {
  background: rgba(67, 188, 238, 0.1);
  border-color: var(--xyz-border-strong);
  color: var(--xyz-text);
}

.xyz3d-segmented b,
.xyz3d-segmented small {
  display: block;
}

.xyz3d-segmented b {
  font-size: 13px;
}

.xyz3d-segmented small {
  color: var(--xyz-muted);
  font-size: 11px;
  margin-top: 2px;
}

.xyz3d-info-card {
  background: rgba(84, 214, 255, 0.055);
  border: 1px solid rgba(84, 214, 255, 0.14);
  border-radius: 10px;
  color: #98afc1;
  font-size: 11px;
  line-height: 1.55;
  margin-top: 14px;
  padding: 10px;
}

.xyz3d-support-explainer {
  display: grid;
  gap: 6px;
  padding: 12px;
}

.xyz3d-support-explainer b {
  color: var(--xyz-text);
  font-size: 13px;
}

.xyz3d-support-explainer span,
.xyz3d-support-explainer small {
  display: block;
}

.xyz3d-support-explainer small {
  color: #7fcff0;
  font-size: 11px;
}

.xyz3d-support-controls {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.xyz3d-support-controls .xyz3d-field > span:first-child {
  color: #b9d1e1;
}

.xyz3d-overhang-map {
  background: rgba(3, 11, 20, 0.42);
  border: 1px solid var(--xyz-border-strong);
  border-radius: 9px;
  color: #c8e5f2;
  min-height: 44px;
  padding: 0 13px;
  white-space: nowrap;
}

.xyz3d-overhang-map:hover,
.xyz3d-overhang-map.active {
  background: rgba(84, 214, 255, 0.12);
  border-color: var(--xyz-cyan);
  color: var(--xyz-text);
}

.xyz3d-textarea {
  display: block;
  margin-top: 14px;
}

.xyz3d-check-grid {
  display: grid;
  gap: 7px;
  grid-template-columns: 1fr 1fr;
  margin-top: 13px;
}

.xyz3d-check-grid label {
  align-items: center;
  color: #a4b6c6;
  display: flex;
  font-size: 12px;
  gap: 6px;
}

.xyz3d-check-grid input {
  accent-color: var(--xyz-cyan);
  margin: 0;
}

.xyz3d-textarea textarea {
  display: block;
  min-height: 92px;
  padding: 9px 10px;
  resize: vertical;
}

.xyz3d-quantity-line {
  display: grid;
  gap: 12px;
}

.xyz3d-quantity-control {
  align-items: end;
  display: flex;
  justify-content: space-between;
}

.xyz3d-quantity-control > span b,
.xyz3d-quantity-control > span small {
  display: block;
}

.xyz3d-quantity-control > span b {
  font-size: 14px;
}

.xyz3d-quantity-control > span small {
  color: var(--xyz-muted);
  font-size: 11px;
}

.xyz3d-quantity-line .xyz3d-field {
  width: 90px;
}

.xyz3d-production-estimate {
  background: rgba(84, 214, 255, 0.07);
  border: 1px solid rgba(84, 214, 255, 0.22);
  border-radius: 10px;
  display: grid;
  gap: 3px;
  padding: 10px 11px;
}

.xyz3d-production-estimate span {
  color: var(--xyz-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.xyz3d-production-estimate strong {
  color: #dcefff;
  font-size: 13px;
}

.xyz3d-production-estimate.ready strong {
  color: #8fe8ca;
}

.xyz3d-production-estimate small {
  color: #8fa5b7;
  font-size: 10px;
  line-height: 1.45;
}

.xyz3d-analysis-status {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--xyz-border);
  border-radius: 11px;
  margin: 15px 0;
  padding: 11px;
}

.xyz3d-analysis-status span {
  align-items: center;
  display: flex;
  font-size: 13px;
  font-weight: 650;
  gap: 7px;
}

.xyz3d-analysis-status i {
  background: #687f92;
  border-radius: 50%;
  height: 7px;
  width: 7px;
}

.xyz3d-analysis-status.ok i { background: var(--xyz-green); }
.xyz3d-analysis-status.warn i { background: var(--xyz-red); }

.xyz3d-analysis-status small {
  color: var(--xyz-muted);
  display: block;
  font-size: 11px;
  margin: 4px 0 0 14px;
}

.xyz3d-metrics {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, 1fr);
}

.xyz3d-metrics > div {
  background: rgba(3, 10, 18, 0.3);
  border: 1px solid var(--xyz-border);
  border-radius: 9px;
  min-width: 0;
  padding: 9px;
}

.xyz3d-metrics span,
.xyz3d-metrics strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xyz3d-metrics span {
  color: var(--xyz-muted);
  font-size: 11px;
  text-transform: uppercase;
}

.xyz3d-metrics strong {
  font-size: 13px;
  margin-top: 3px;
}

.xyz3d-analysis-list {
  border-top: 1px solid var(--xyz-border);
  margin-top: 15px;
}

.xyz3d-analysis-list > div {
  align-items: center;
  border-bottom: 1px solid var(--xyz-border);
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  padding: 10px 1px;
}

.xyz3d-analysis-list span {
  color: var(--xyz-muted);
}

.xyz3d-analysis-list b {
  color: #c8d9e6;
  font-weight: 620;
  text-transform: capitalize;
}

.xyz3d-analysis-note {
  color: #778fa2;
  font-size: 11px;
  line-height: 1.55;
  margin: 14px 0 0;
}

.xyz3d-quote {
  background: rgba(3, 10, 18, 0.55);
  border-top: 1px solid var(--xyz-border);
  padding: 17px 22px 20px;
}

.xyz3d-customer-contact {
  display: grid;
  gap: 9px;
  margin-bottom: 11px;
}

.xyz3d-customer-contact label > span,
.xyz3d-account-contact > span {
  color: #91a7ba;
  display: block;
  font-size: 11px;
  margin-bottom: 4px;
}

.xyz3d-customer-contact input,
.xyz3d-customer-contact textarea {
  background: rgba(4, 13, 23, 0.68);
  border: 1px solid var(--xyz-border);
  border-radius: 8px;
  color: var(--xyz-text);
  font-size: 13px;
  outline: 0;
  padding: 8px 10px;
  resize: vertical;
  width: 100%;
}

.xyz3d-customer-contact input:focus,
.xyz3d-customer-contact textarea:focus {
  border-color: var(--xyz-cyan);
}

.xyz3d-account-contact {
  background: rgba(85, 224, 180, 0.06);
  border: 1px solid rgba(85, 224, 180, 0.14);
  border-radius: 8px;
  padding: 7px 9px;
}

.xyz3d-account-contact strong {
  color: #a8ecd5;
  display: block;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.xyz3d-cart-reservation-note {
  background: rgba(85, 214, 255, 0.07);
  border: 1px solid rgba(85, 214, 255, 0.18);
  border-radius: 8px;
  color: #a8dff3;
  font-size: 12px;
  line-height: 1.45;
  margin: 0 0 10px;
  padding: 8px 10px;
}

.xyz3d-custom-goods-notice {
  background: rgba(255, 184, 92, 0.07);
  border: 1px solid rgba(255, 184, 92, 0.22);
  border-radius: 8px;
  color: #e8cda7;
  font-size: 12px;
  line-height: 1.45;
  margin: 0 0 10px;
  overflow: hidden;
}

.xyz3d-custom-goods-notice[hidden] {
  display: none !important;
}

.xyz3d-custom-goods-notice summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
  padding: 9px 11px;
  user-select: none;
}

.xyz3d-custom-goods-notice summary::-webkit-details-marker {
  display: none;
}

.xyz3d-custom-goods-notice summary::after {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  height: 7px;
  margin-left: 12px;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 150ms ease;
  width: 7px;
}

.xyz3d-custom-goods-notice[open] summary::after {
  transform: rotate(225deg) translate(-2px, -2px);
}

.xyz3d-custom-goods-notice summary span {
  display: grid;
  gap: 1px;
}

.xyz3d-custom-goods-notice summary strong {
  color: #ffd59b;
  font-size: 12px;
}

.xyz3d-custom-goods-notice summary small {
  color: #c8aa84;
  font-size: 10px;
}

.xyz3d-custom-goods-content {
  border-top: 1px solid rgba(255, 184, 92, 0.16);
  padding: 9px 11px 10px;
}

.xyz3d-custom-goods-content p {
  margin: 0 0 9px;
}

.xyz3d-custom-goods-consent,
.xyz3d-terms-consent,
.xyz3d-service-start-consent {
  align-items: flex-start;
  color: #b8c8d4;
  display: flex;
  font-size: 12px;
  gap: 9px;
  line-height: 1.45;
  margin: 0 0 11px;
}

.xyz3d-custom-goods-consent input,
.xyz3d-terms-consent input,
.xyz3d-service-start-consent input {
  accent-color: var(--xyz-cyan);
  flex: 0 0 auto;
  height: 28px;
  margin: 1px 0 0;
  width: 17px;
}

.xyz3d-custom-goods-consent {
  align-items: flex-start;
  color: #efd6b3;
  display: flex;
  font-size: 12px;
  gap: 9px;
  line-height: 1.45;
  margin: 0;
}

.xyz3d-terms-consent a {
  color: var(--xyz-cyan);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.xyz3d-recaptcha {
  margin: 0 0 11px;
  min-height: 78px;
  overflow: hidden;
}

.xyz3d-quote > div:first-child {
  align-items: end;
  display: grid;
  gap: 1px 14px;
  grid-template-columns: 1fr auto;
  margin-bottom: 13px;
}

.xyz3d-quote span {
  color: var(--xyz-muted);
  font-size: 12px;
  grid-column: 1;
}

.xyz3d-price {
  font-size: 27px;
  font-weight: 760;
  grid-column: 2;
  grid-row: 1 / span 2;
  letter-spacing: -0.04em;
}

.xyz3d-price-note {
  color: #788fa2;
  font-size: 11px;
  grid-column: 1;
}

.xyz3d-primary,
.xyz3d-secondary {
  border-radius: 10px;
  font-size: 14px;
  font-weight: 780;
  min-height: 42px;
  padding: 9px 13px;
  transition: 150ms ease;
  width: 100%;
}

.xyz3d-primary {
  background: linear-gradient(135deg, var(--xyz-cyan), #3d88ff);
  border: 0;
  box-shadow: 0 10px 26px rgba(43, 129, 255, 0.16);
  color: #02111d;
}

.xyz3d-primary:hover:not(:disabled) {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.xyz3d-primary:disabled {
  cursor: not-allowed;
  filter: grayscale(0.4);
  opacity: 0.38;
}

.xyz3d-secondary {
  background: transparent;
  border: 1px solid var(--xyz-border-strong);
  color: var(--xyz-cyan);
  margin-top: 0;
}

.xyz3d-message {
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.45;
  margin-top: 9px;
  padding: 8px 9px;
}

.xyz3d-message.info {
  background: rgba(84, 214, 255, 0.07);
  color: #9dccde;
}

.xyz3d-message.success {
  background: rgba(85, 224, 180, 0.08);
  color: #8de7ca;
}

.xyz3d-message.error {
  background: rgba(255, 102, 114, 0.09);
  color: #ff9ca4;
}

@media (max-width: 1100px) {
  .xyz3d-workspace {
    grid-template-columns: minmax(0, 1fr) 400px;
  }

  .xyz3d-field-grid-4 {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 860px) {
  .xyz3d-shell {
    border-radius: 18px;
  }

  .xyz3d-workspace {
    display: block;
    height: auto;
    overflow: visible;
  }

  .xyz3d-stage {
    border-bottom: 1px solid var(--xyz-border);
    border-right: 0;
    height: var(--xyz-viewer-height-tablet, 520px);
    min-height: var(--xyz-viewer-height-tablet, 520px);
  }

  .xyz3d-upload-view,
  .xyz3d-viewer-wrap,
  .xyz3d-viewer,
  .xyz3d-progress {
    min-height: 0;
  }

  .xyz3d-panel {
    height: auto;
    min-height: 0;
  }

  .xyz3d-panel-body {
    max-height: none;
  }
}

@media (max-width: 620px) {
  .xyz3d-app {
    margin: 14px auto;
  }

  .xyz3d-header {
    min-height: 66px;
    padding: 0 16px;
  }

  .xyz3d-secure {
    display: none;
  }

  .xyz3d-services {
    overflow-x: auto;
    padding: 0 8px;
  }

  .xyz3d-services button {
    min-width: 112px;
    padding: 14px 12px 11px;
  }

  .xyz3d-intro {
    gap: 14px;
    padding: 22px 16px;
  }

  .xyz3d-intro h2 {
    font-size: 27px;
  }

  .xyz3d-format-badge {
    display: none;
  }

  .xyz3d-stage {
    height: var(--xyz-viewer-height-mobile, 500px);
    min-height: var(--xyz-viewer-height-mobile, 500px);
  }

  .xyz3d-panel {
    height: auto;
  }

  .xyz3d-upload-view {
    padding: 18px;
  }

  .xyz3d-dropzone {
    min-height: 310px;
    padding: 28px 18px;
  }

  .xyz3d-panel-body,
  .xyz3d-quote {
    padding-left: 16px;
    padding-right: 16px;
  }

  .xyz3d-field-grid,
  .xyz3d-field-grid-4,
  .xyz3d-field-grid-3 {
    grid-template-columns: 1fr 1fr;
  }

  .xyz3d-segmented {
    grid-template-columns: 1fr;
  }

  .xyz3d-metrics {
    grid-template-columns: 1fr 1fr;
  }

}

@media (max-width: 360px) {
  .xyz3d-recaptcha > div {
    transform: scale(0.88);
    transform-origin: left top;
  }

  .xyz3d-recaptcha {
    min-height: 69px;
  }
}

.xyz3d-app [hidden] {
  display: none !important;
}


.xyz3d-service-unavailable {
  box-sizing: border-box;
  padding: 18px 20px;
  border: 1px solid rgba(85, 214, 255, 0.28);
  border-radius: 10px;
  background: #071523;
  color: #eef7ff;
  font: 600 15px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Photo 3D / photogrammetry request */
.xyz3d-photo-upload {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.88fr);
  max-width: 940px;
  width: 100%;
}

.xyz3d-photo-guide,
.xyz3d-photo-dropzone,
.xyz3d-photo-selection {
  background: linear-gradient(155deg, rgba(15, 35, 54, 0.96), rgba(7, 18, 31, 0.94));
  border: 1px solid var(--xyz-border);
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.16);
}

.xyz3d-photo-guide {
  min-height: 390px;
  overflow: hidden;
  position: relative;
}

.xyz3d-photo-guide::before {
  background:
    radial-gradient(circle at center, rgba(84, 214, 255, 0.12), transparent 48%),
    linear-gradient(rgba(84, 214, 255, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(84, 214, 255, 0.055) 1px, transparent 1px);
  background-size: auto, 28px 28px, 28px 28px;
  content: "";
  inset: 0;
  position: absolute;
}

.xyz3d-photo-object {
  align-items: center;
  background: linear-gradient(180deg, rgba(198, 208, 232, 0.86), rgba(98, 110, 142, 0.82));
  border: 1px solid rgba(220, 230, 255, 0.82);
  border-radius: 12px 12px 18px 18px / 12px 12px 20px 20px;
  box-shadow:
    0 28px 70px rgba(20, 137, 220, 0.18),
    inset 8px 8px 18px rgba(255, 255, 255, 0.16),
    inset -10px -12px 18px rgba(2, 28, 62, 0.22);
  display: flex;
  height: 108px;
  justify-content: center;
  left: 50%;
  position: absolute;
  top: 48%;
  transform: translate(-50%, -50%);
  width: 82px;
  z-index: 3;
}

.xyz3d-photo-object strong {
  color: #d68b27;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.12em;
  line-height: 1;
  text-shadow: 0 0 0 #000, 1px 1px 0 #231100;
  z-index: 2;
}

.xyz3d-photo-object .xyz3d-body-head {
  background: linear-gradient(180deg, rgba(132, 140, 162, 0.96), rgba(72, 82, 108, 0.95));
  border: 1px solid rgba(214, 225, 255, 0.62);
  border-radius: 8px;
  height: 34px;
  left: 50%;
  position: absolute;
  top: -34px;
  transform: translateX(-50%);
  width: 32px;
}

.xyz3d-photo-object i,
.xyz3d-photo-object b,
.xyz3d-photo-object u,
.xyz3d-photo-object em {
  position: absolute;
}

.xyz3d-photo-object i,
.xyz3d-photo-object b {
  background: linear-gradient(180deg, rgba(154, 164, 190, 0.92), rgba(88, 98, 126, 0.92));
  border: 1px solid rgba(215, 226, 255, 0.6);
  height: 14px;
  top: 28px;
  width: 54px;
}

.xyz3d-photo-object i {
  border-radius: 10px 4px 10px 10px;
  left: -35px;
  transform: rotate(22deg);
  transform-origin: right center;
}

.xyz3d-photo-object b {
  border-radius: 4px 10px 10px 10px;
  right: -35px;
  transform: rotate(-22deg);
  transform-origin: left center;
}

.xyz3d-photo-object u,
.xyz3d-photo-object em {
  background: linear-gradient(180deg, rgba(132, 140, 162, 0.98), rgba(83, 90, 114, 0.98));
  border: 1px solid rgba(214, 225, 255, 0.62);
  bottom: -64px;
  height: 72px;
  text-decoration: none;
  width: 18px;
}

.xyz3d-photo-object u {
  border-radius: 0 0 6px 6px;
  left: 20px;
  transform: rotate(28deg);
  transform-origin: top center;
}

.xyz3d-photo-object em {
  border-radius: 0 0 6px 6px;
  right: 20px;
  transform: rotate(-28deg);
  transform-origin: top center;
}

.xyz3d-camera-ring {
  height: 1px;
  left: 50%;
  position: absolute;
  top: 45%;
  transform: translate(-50%, -50%);
  width: 1px;
  z-index: 4;
}

.xyz3d-camera-ring::after {
  border: 1px solid rgba(84, 214, 255, 0.19);
  border-radius: 50%;
  content: "";
  height: 112px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) rotateX(68deg);
  width: 330px;
}

.xyz3d-camera-ring.upper {
  top: 30%;
}

.xyz3d-camera-ring.lower {
  top: 60%;
}

.xyz3d-camera-ring.upper::after,
.xyz3d-camera-ring.lower::after {
  width: 282px;
}

.xyz3d-camera-ring button {
  --photo-radius: 164px;
  align-items: center;
  animation: none;
  appearance: none;
  background: rgba(4, 17, 29, 0.88);
  border: 1.5px solid rgba(84, 214, 255, 0.78);
  border-radius: 3px;
  box-shadow: 0 0 16px rgba(84, 214, 255, 0.24);
  cursor: pointer;
  display: flex;
  height: 17px;
  justify-content: center;
  left: -8px;
  padding: 0;
  position: absolute;
  top: -14px;
  transform: rotate(var(--photo-angle)) translateX(var(--photo-radius)) rotate(calc(-1 * var(--photo-angle)));
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease, opacity 150ms ease;
  width: 16px;

  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;}

.xyz3d-camera-ring button::before {
  border: 1px solid rgba(84, 214, 255, 0.5);
  border-radius: 2px;
  content: "";
  height: 18px;
  width: 8px;
}

.xyz3d-camera-ring button:hover,
.xyz3d-camera-ring button.is-active {
  background: rgba(84, 214, 255, 0.25);
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(84, 214, 255, 0.14), 0 0 24px rgba(84, 214, 255, 0.7);
  z-index: 5;
}

.xyz3d-camera-ring button.is-complete {
  background: rgba(46, 214, 132, 0.28);
  border-color: #62efaa;
  box-shadow: 0 0 18px rgba(46, 214, 132, 0.45);
}

.xyz3d-camera-ring button.is-complete::before {
  border-color: #b8ffdd;
}

@keyframes xyz3d-photo-frame-float {
  0%, 100% { margin-top: -2px; }
  50% { margin-top: 3px; }
}

.xyz3d-camera-ring.upper button,
.xyz3d-camera-ring.lower button {
  --photo-radius: 140px;
}

.xyz3d-photo-guide-copy {
  bottom: 19px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  left: 22px;
  position: absolute;
  right: 22px;
  z-index: 5;
}

.xyz3d-photo-guide-copy strong {
  color: var(--xyz-text);
  font-size: 14px;
}

.xyz3d-photo-guide-copy span {
  color: var(--xyz-muted);
  font-size: 12px;
  line-height: 1.45;
}

.xyz3d-photo-dropzone {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 390px;
  padding: 28px 24px;
  text-align: center;
  transition: 170ms ease;
}

.xyz3d-photo-dropzone:hover,
.xyz3d-photo-dropzone.is-dragging {
  border-color: var(--xyz-cyan);
  box-shadow: inset 0 0 0 1px rgba(84, 214, 255, 0.08), 0 22px 54px rgba(0, 0, 0, 0.2);
  transform: translateY(-2px);
}

.xyz3d-photo-dropzone input {
  height: 1px;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.xyz3d-photo-dropzone strong {
  font-size: 18px;
  margin-top: 2px;
}

.xyz3d-photo-dropzone > span:not(.xyz3d-upload-icon) {
  color: var(--xyz-muted);
  font-size: 13px;
  margin-top: 5px;
}

.xyz3d-photo-dropzone small {
  color: #a9bfd1;
  font-size: 11px;
  line-height: 1.5;
  margin-top: 18px;
}

.xyz3d-photo-selection {
  grid-column: 1 / -1;
  padding: 16px;
}

.xyz3d-photo-selection > div:first-child {
  align-items: center;
  display: flex;
  gap: 10px;
}

.xyz3d-photo-selection > div:first-child span {
  color: var(--xyz-muted);
  font-size: 12px;
}

.xyz3d-photo-clear {
  background: transparent;
  border: 1px solid rgba(255, 102, 114, 0.36);
  border-radius: 8px;
  color: #ff9aa4;
  float: right;
  font-size: 12px;
  margin-top: -27px;
  padding: 6px 10px;
}

.xyz3d-photo-previews {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(12, minmax(42px, 1fr));
  margin-top: 14px;
}

.xyz3d-photo-previews figure {
  aspect-ratio: 1;
  border: 1px solid var(--xyz-border);
  border-radius: 8px;
  margin: 0;
  overflow: hidden;
  position: relative;
}

.xyz3d-photo-previews img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.xyz3d-photo-previews figcaption {
  background: rgba(1, 9, 17, 0.76);
  border-radius: 4px;
  bottom: 3px;
  color: #dff7ff;
  font-size: 9px;
  line-height: 1;
  padding: 3px 4px;
  position: absolute;
  right: 3px;
}

.xyz3d-photo-more {
  align-items: center;
  aspect-ratio: 1;
  background: rgba(84, 214, 255, 0.08);
  border: 1px solid rgba(84, 214, 255, 0.25);
  border-radius: 8px;
  color: var(--xyz-cyan);
  display: flex;
  font-size: 11px;
  font-weight: 700;
  justify-content: center;
  padding: 4px;
  text-align: center;
}

.xyz3d-photo-rights-consent {
  align-items: flex-start;
  background: rgba(84, 214, 255, 0.06);
  border: 1px solid rgba(84, 214, 255, 0.2);
  border-radius: 11px;
  color: #c4d8e8;
  display: flex;
  font-size: 12px;
  gap: 10px;
  line-height: 1.48;
  padding: 12px 13px;
}

.xyz3d-photo-rights-consent input {
  flex: 0 0 auto;
  margin-top: 3px;
}

@media (max-width: 1180px) {
  .xyz3d-photo-upload {
    grid-template-columns: 1fr;
    max-width: 650px;
  }

  .xyz3d-photo-guide,
  .xyz3d-photo-dropzone {
    min-height: 300px;
  }

  .xyz3d-photo-guide-copy {
    bottom: 14px;
  }

  .xyz3d-photo-previews {
    grid-template-columns: repeat(8, minmax(42px, 1fr));
  }
}

@media (max-width: 620px) {
  .xyz3d-photo-upload {
    gap: 12px;
  }

  .xyz3d-photo-guide {
    min-height: 280px;
  }

  .xyz3d-photo-dropzone {
    min-height: 230px;
    padding: 22px 16px;
  }

  .xyz3d-photo-object {
    height: 92px;
    width: 72px;
  }

  .xyz3d-photo-object strong { font-size: 12px; }
  .xyz3d-photo-object .xyz3d-body-head { height: 28px; top: -28px; width: 28px; }
  .xyz3d-photo-object i,
  .xyz3d-photo-object b { width: 46px; }
  .xyz3d-photo-object u,
  .xyz3d-photo-object em { bottom: -54px; height: 62px; }

  .xyz3d-camera-ring button {
    --photo-radius: 118px;
  }

  .xyz3d-camera-ring.upper button,
  .xyz3d-camera-ring.lower button {
    --photo-radius: 101px;
  }

  .xyz3d-camera-ring::after {
    width: 238px;
  }

  .xyz3d-camera-ring.upper::after,
  .xyz3d-camera-ring.lower::after {
    width: 204px;
  }

  .xyz3d-photo-previews {
    grid-template-columns: repeat(4, minmax(42px, 1fr));
  }
}

.xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-stage {
  overflow: auto;
}

.xyz3d-photo-service-shell .xyz3d-upload-view {
  align-items: flex-start;
  min-height: 100%;
}

.xyz3d-photo-service-shell .xyz3d-panel-tabs button:last-child {
  cursor: default;
  opacity: 0.45;
}

.xyz3d-photo-service-shell .xyz3d-field > input,
.xyz3d-photo-service-shell .xyz3d-input-suffix {
  background: rgba(2, 9, 17, 0.42);
  border: 1px solid var(--xyz-border);
  border-radius: 9px;
  color: var(--xyz-text);
  min-height: 44px;
  width: 100%;
}

.xyz3d-photo-service-shell .xyz3d-field > input {
  padding: 0 10px;
}

.xyz3d-photo-service-shell .xyz3d-input-suffix {
  align-items: center;
  display: flex;
  overflow: hidden;
}

.xyz3d-photo-service-shell .xyz3d-input-suffix input {
  background: transparent;
  border: 0;
  color: var(--xyz-text);
  min-width: 0;
  outline: 0;
  padding: 0 10px;
  width: 100%;
}

.xyz3d-photo-service-shell .xyz3d-input-suffix small {
  color: var(--xyz-muted);
  padding-right: 10px;
}

.xyz3d-photo-quality-note {
  background: rgba(255, 180, 84, 0.06);
  border: 1px solid rgba(255, 180, 84, 0.18);
  border-radius: 10px;
  color: #d8c09e;
  margin: 0 22px 16px;
  padding: 12px 13px;
}

.xyz3d-photo-quality-note strong {
  color: #ffd196;
  display: block;
  font-size: 12px;
  margin-bottom: 4px;
}

.xyz3d-photo-quality-note p {
  font-size: 11px;
  line-height: 1.5;
  margin: 0;
}

.xyz3d-photo-service-shell [data-photo-price] {
  font-size: 27px;
  font-weight: 760;
  grid-column: 2;
  grid-row: 1 / span 2;
  letter-spacing: -0.04em;
}

.xyz3d-photo-service-shell [data-photo-price-note] {
  color: #788fa2;
  font-size: 11px;
  grid-column: 1;
}

.xyz3d-photo-progress {
  margin-top: 11px;
}

.xyz3d-photo-progress > span {
  background: rgba(255, 255, 255, 0.07);
  border-radius: 999px;
  display: block;
  height: 7px;
  overflow: hidden;
}

.xyz3d-photo-progress i {
  background: linear-gradient(90deg, var(--xyz-cyan), var(--xyz-blue));
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width 160ms linear;
  width: 0;
}

.xyz3d-photo-progress small {
  color: var(--xyz-muted);
  display: block;
  font-size: 11px;
  margin-top: 7px;
}

.xyz3d-photo-service-nav button[data-photo-back] {
  border-right: 1px solid var(--xyz-border);
}

@media (max-width: 760px) {
  .xyz3d-photo-service-shell .xyz3d-upload-view {
    padding: 18px;
  }

  .xyz3d-photo-quality-note {
    margin-left: 16px;
    margin-right: 16px;
  }
}


/* Guided mobile photo capture route */
.xyz3d-photo-route-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  left: 18px;
  position: absolute;
  right: 18px;
  top: 16px;
  z-index: 7;
}

.xyz3d-photo-route-head span {
  color: var(--xyz-cyan);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.xyz3d-photo-route-head strong {
  background: rgba(1, 10, 18, 0.7);
  border: 1px solid rgba(84, 214, 255, 0.22);
  border-radius: 999px;
  color: #dff8ff;
  font-size: 10px;
  padding: 5px 9px;
}

.xyz3d-photo-guide.is-disabled {
  opacity: 0.5;
}

.xyz3d-photo-guide.is-disabled [data-photo-slot] {
  pointer-events: none;
}

.xyz3d-photo-object {
  animation: xyz3d-photo-object-float 5.8s ease-in-out infinite;
  isolation: isolate;
  transform-style: preserve-3d;
}

.xyz3d-photo-object::before,
.xyz3d-photo-object::after,
.xyz3d-photo-object i,
.xyz3d-photo-object b {
  content: "";
  position: absolute;
}

.xyz3d-photo-object::before {
  background: linear-gradient(140deg, rgba(214, 250, 255, 0.9), rgba(42, 138, 220, 0.72));
  border-radius: 48% 52% 42% 42%;
  height: 46px;
  left: 33px;
  top: -23px;
  width: 46px;
  z-index: -1;
}

.xyz3d-photo-object::after {
  background: linear-gradient(90deg, rgba(9, 55, 96, 0.72), rgba(125, 226, 255, 0.5));
  border-radius: 50%;
  bottom: -13px;
  filter: blur(7px);
  height: 18px;
  left: 10px;
  opacity: 0.62;
  width: 92px;
  z-index: -2;
}

.xyz3d-photo-object i {
  background: linear-gradient(160deg, rgba(168, 239, 255, 0.75), rgba(23, 93, 170, 0.5));
  border-radius: 55% 20% 55% 20%;
  height: 78px;
  left: -17px;
  top: 25px;
  transform: rotate(20deg);
  width: 36px;
}

.xyz3d-photo-object b {
  background: linear-gradient(200deg, rgba(168, 239, 255, 0.7), rgba(23, 93, 170, 0.45));
  border-radius: 20% 55% 20% 55%;
  height: 76px;
  right: -15px;
  top: 25px;
  transform: rotate(-18deg);
  width: 34px;
}

@keyframes xyz3d-photo-object-float {
  0%, 100% { margin-top: -2px; }
  50% { margin-top: 5px; }
}

.xyz3d-photo-guide-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  margin-top: 9px;
}

.xyz3d-photo-guide-actions button {
  background: linear-gradient(135deg, var(--xyz-cyan), #2e7cff);
  border: 0;
  border-radius: 9px;
  color: #02111e;
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  padding: 9px 12px;

  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;}

.xyz3d-photo-guide-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.xyz3d-photo-guide-actions small {
  color: #8ea8bc;
  font-size: 9px;
}

html.xyz3d-camera-open,
html.xyz3d-camera-open body {
  height: 100%;
  overflow: hidden !important;
}

.xyz3d-camera-capture[hidden] {
  display: none !important;
}

.xyz3d-camera-capture {
  background: #000;
  height: 100dvh;
  inset: 0;
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 2147483000;
}

.xyz3d-camera-capture video {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.xyz3d-camera-vignette {
  background: radial-gradient(ellipse at center, transparent 35%, rgba(0, 0, 0, 0.18) 70%, rgba(0, 0, 0, 0.62) 100%);
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.xyz3d-camera-close {
  align-items: center;
  appearance: none;
  background: rgba(0, 0, 0, 0.46);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 28px;
  height: 42px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: max(16px, env(safe-area-inset-right));
  top: max(16px, env(safe-area-inset-top));
  width: 42px;
  z-index: 6;
}

.xyz3d-camera-topbar {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.72), transparent);
  color: #fff;
  left: 0;
  padding: max(20px, env(safe-area-inset-top)) 74px 50px 20px;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 4;
}

.xyz3d-camera-topbar span,
.xyz3d-camera-topbar strong {
  display: block;
}

.xyz3d-camera-topbar span {
  color: #9cecff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.xyz3d-camera-topbar strong {
  font-size: clamp(16px, 4vw, 22px);
  margin-top: 4px;
}

.xyz3d-camera-target {
  border: 1px dashed rgba(255, 255, 255, 0.62);
  border-radius: 20% 20% 14% 14%;
  height: min(56vh, 540px);
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 48%;
  transform: translate(-50%, -50%);
  width: min(62vw, 410px);
  z-index: 3;
}

.xyz3d-camera-target.upper {
  top: 54%;
  transform: translate(-50%, -50%) perspective(700px) rotateX(-8deg);
}

.xyz3d-camera-target.lower {
  top: 43%;
  transform: translate(-50%, -50%) perspective(700px) rotateX(8deg);
}

.xyz3d-camera-target > i {
  border-left: 1px solid rgba(255, 255, 255, 0.24);
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  height: 50%;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 50%;
}

.xyz3d-camera-target .corner {
  border-color: #67e6ff;
  border-style: solid;
  height: 28px;
  position: absolute;
  width: 28px;
}

.xyz3d-camera-target .tl { border-width: 3px 0 0 3px; left: -1px; top: -2px; }
.xyz3d-camera-target .tr { border-width: 3px 3px 0 0; right: -2px; top: -2px; }
.xyz3d-camera-target .bl { border-width: 0 0 3px 3px; bottom: -2px; left: -1px; }
.xyz3d-camera-target .br { border-width: 0 3px 3px 0; bottom: -2px; right: -2px; }


.xyz3d-camera-ghost-object {
  align-items: center;
  background: linear-gradient(150deg, rgba(141, 224, 255, 0.28), rgba(58, 128, 255, 0.18));
  border: 1px solid rgba(172, 236, 255, 0.5);
  border-radius: 12px 12px 18px 18px / 12px 12px 20px 20px;
  box-shadow: inset 10px 14px 26px rgba(255, 255, 255, 0.12), inset -12px -16px 26px rgba(5, 22, 48, 0.2), 0 0 30px rgba(84, 214, 255, 0.12);
  display: flex;
  height: 42%;
  justify-content: center;
  left: 50%;
  opacity: 0.55;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-6deg);
  width: 30%;
}

.xyz3d-camera-ghost-object .xyz3d-body-head,
.xyz3d-camera-ghost-object::after,
.xyz3d-camera-ghost-object i,
.xyz3d-camera-ghost-object b,
.xyz3d-camera-ghost-object u,
.xyz3d-camera-ghost-object em {
  content: "";
  position: absolute;
}

.xyz3d-camera-ghost-object .xyz3d-body-head {
  background: linear-gradient(180deg, rgba(219, 248, 255, 0.26), rgba(75, 145, 255, 0.18));
  border: 1px solid rgba(214, 240, 255, 0.28);
  border-radius: 8px;
  height: 20%;
  left: 34%;
  top: -15%;
  width: 32%;
}

.xyz3d-camera-ghost-object::after {
  background: linear-gradient(90deg, rgba(8, 49, 95, 0.3), rgba(125, 226, 255, 0.24));
  border-radius: 50%;
  bottom: -6%;
  filter: blur(6px);
  height: 10%;
  left: 8%;
  opacity: 0.55;
  width: 84%;
}

.xyz3d-camera-ghost-object i {
  background: linear-gradient(165deg, rgba(180, 239, 255, 0.28), rgba(23, 93, 170, 0.18));
  border: 1px solid rgba(214, 240, 255, 0.18);
  border-radius: 10px 4px 10px 10px;
  height: 10%;
  left: -28%;
  top: 30%;
  transform: rotate(22deg);
  width: 42%;
}

.xyz3d-camera-ghost-object b {
  background: linear-gradient(200deg, rgba(180, 239, 255, 0.28), rgba(23, 93, 170, 0.18));
  border: 1px solid rgba(214, 240, 255, 0.18);
  border-radius: 4px 10px 10px 10px;
  height: 10%;
  right: -28%;
  top: 30%;
  transform: rotate(-22deg);
  width: 42%;
}

.xyz3d-camera-ghost-object u {
  background: linear-gradient(180deg, rgba(160, 237, 255, 0.18), rgba(23, 93, 170, 0.06));
  border: 1px solid rgba(214, 240, 255, 0.18);
  border-radius: 0 0 6px 6px;
  bottom: -30%;
  height: 38%;
  left: 25%;
  transform: rotate(26deg);
  width: 14%;
}

.xyz3d-camera-ghost-object em {
  background: linear-gradient(180deg, rgba(160, 237, 255, 0.18), rgba(23, 93, 170, 0.06));
  border: 1px solid rgba(214, 240, 255, 0.18);
  border-radius: 0 0 6px 6px;
  bottom: -30%;
  height: 38%;
  right: 25%;
  transform: rotate(-26deg);
  width: 14%;
}

.xyz3d-camera-ghost-object strong {
  color: rgba(214, 151, 57, 0.96);
  font-size: clamp(12px, 2.2vw, 18px);
  font-weight: 900;
  letter-spacing: 0.16em;
  text-align: center;
  text-shadow: 0 0 18px rgba(84, 214, 255, 0.32);
}


.xyz3d-camera-mini {
  display: grid;
  gap: 8px;
  left: 14px;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 58px);
  width: min(168px, 32vw);
  z-index: 9;
}

.xyz3d-camera-mini-viewer {
  background: rgba(6, 19, 33, 0.72);
  border: 1px solid rgba(118, 211, 255, 0.22);
  border-radius: 14px;
  height: 132px;
  overflow: hidden;
}

.xyz3d-route-viewer.is-camera-mini {
  border-radius: 14px;
  height: 132px !important;
  min-height: 132px;
}

.xyz3d-camera-mini-shot {
  background: rgba(0, 0, 0, 0.46);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 6px;
}

.xyz3d-camera-mini-shot span {
  color: rgba(255,255,255,0.82);
  display: block;
  font-size: 10px;
  margin-bottom: 5px;
}

.xyz3d-camera-mini-shot img {
  border-radius: 8px;
  display: block;
  height: 74px;
  object-fit: cover;
  width: 100%;
}

.xyz3d-camera-position-map {
  --capture-angle: 0deg;
  background: rgba(0, 0, 0, 0.48);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  height: 86px;
  left: max(16px, env(safe-area-inset-left));
  position: absolute;
  top: max(86px, calc(env(safe-area-inset-top) + 72px));
  width: 86px;
  z-index: 5;
}

.xyz3d-camera-position-map::before {
  border: 1px solid rgba(103, 230, 255, 0.44);
  border-radius: 50%;
  content: "";
  inset: 13px;
  position: absolute;
}

.xyz3d-camera-position-map .object {
  background: #dffbff;
  border-radius: 35%;
  height: 18px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 14px;
}

.xyz3d-camera-position-map i {
  background: #67e6ff;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 12px #67e6ff;
  height: 11px;
  left: calc(50% - 5.5px);
  position: absolute;
  top: calc(50% - 5.5px);
  transform: rotate(var(--capture-angle)) translateX(32px);
  width: 11px;
}

.xyz3d-camera-position-map[data-ring="upper"] i { box-shadow: 0 0 12px #ffd16a; background: #ffd16a; }
.xyz3d-camera-position-map[data-ring="lower"] i { box-shadow: 0 0 12px #bb8cff; background: #bb8cff; }

.xyz3d-camera-guidance {
  align-items: center;
  bottom: calc(max(110px, env(safe-area-inset-bottom) + 96px));
  color: #fff;
  display: flex;
  flex-direction: column;
  left: 18px;
  position: absolute;
  right: 18px;
  text-align: center;
  z-index: 5;
}

.xyz3d-camera-guidance strong {
  background: rgba(0, 0, 0, 0.52);
  border-radius: 9px;
  font-size: 12px;
  line-height: 1.45;
  max-width: 520px;
  padding: 7px 11px;
}

.xyz3d-camera-guidance > span {
  --level-offset: 0%;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  height: 8px;
  margin-top: 9px;
  overflow: hidden;
  position: relative;
  width: 120px;
}

.xyz3d-camera-guidance > span::after {
  background: rgba(255, 255, 255, 0.24);
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  width: 1px;
}

.xyz3d-camera-guidance > span i {
  background: #67e6ff;
  border-radius: 50%;
  height: 8px;
  left: calc(50% + var(--level-offset));
  position: absolute;
  transform: translateX(-50%);
  transition: left 100ms linear;
  width: 8px;
}

.xyz3d-camera-guidance small {
  color: rgba(255, 255, 255, 0.78);
  font-size: 10px;
  margin-top: 4px;
}


.xyz3d-camera-guidance .xyz3d-camera-pitch {
  --pitch-offset: 0%;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  display: block;
  height: 92px;
  margin-top: 0;
  overflow: visible;
  position: relative;
  width: 8px;
}

.xyz3d-camera-guidance .xyz3d-camera-pitch::after {
  background: rgba(255, 255, 255, 0.24);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 50%;
  width: 100%;
}

.xyz3d-camera-guidance .xyz3d-camera-pitch i {
  background: #ffd16a;
  border: 1px solid rgba(255, 255, 255, 0.86);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(255, 209, 106, 0.72);
  height: 10px;
  left: -1px;
  position: absolute;
  top: calc(50% + var(--pitch-offset));
  transform: translateY(-50%);
  transition: top 100ms linear;
  width: 10px;
  z-index: 2;
}

.xyz3d-camera-controls {
  align-items: center;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), transparent);
  bottom: 0;
  display: grid;
  grid-template-columns: 1fr 96px 1fr;
  left: 0;
  padding: 28px max(18px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
  position: absolute;
  right: 0;
  z-index: 6;
}

.xyz3d-camera-controls button {
  appearance: none;
  cursor: pointer;

  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;}

.xyz3d-camera-skip,
.xyz3d-camera-finish {
  background: rgba(0, 0, 0, 0.36);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 9px;
  color: #fff;
  font-size: 12px;
  justify-self: center;
  padding: 9px 14px;
}

.xyz3d-camera-shutter {
  align-items: center;
  background: transparent;
  border: 4px solid #fff;
  border-radius: 50%;
  display: flex;
  height: 76px;
  justify-content: center;
  justify-self: center;
  padding: 0;
  width: 76px;
}

.xyz3d-camera-shutter i {
  background: #fff;
  border-radius: 50%;
  display: block;
  height: 58px;
  transition: transform 90ms ease;
  width: 58px;
}

.xyz3d-camera-shutter:active i { transform: scale(0.88); }

.xyz3d-camera-flash {
  background: #fff;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  z-index: 20;
}

.xyz3d-camera-flash.is-active {
  animation: xyz3d-camera-flash 280ms ease-out;
}

@keyframes xyz3d-camera-flash {
  0% { opacity: 0.9; }
  100% { opacity: 0; }
}

@media (max-width: 620px) {
  .xyz3d-photo-route-head { left: 12px; right: 12px; top: 12px; }
  .xyz3d-photo-guide-actions { align-items: flex-start; flex-direction: column; gap: 5px; }
  .xyz3d-camera-target { height: min(54vh, 470px); width: 76vw; }
  .xyz3d-camera-guidance { bottom: calc(max(108px, env(safe-area-inset-bottom) + 94px)); }
  
.xyz3d-camera-mini {
  display: grid;
  gap: 8px;
  left: 14px;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 58px);
  width: min(168px, 32vw);
  z-index: 9;
}

.xyz3d-camera-mini-viewer {
  background: rgba(6, 19, 33, 0.72);
  border: 1px solid rgba(118, 211, 255, 0.22);
  border-radius: 14px;
  height: 132px;
  overflow: hidden;
}

.xyz3d-route-viewer.is-camera-mini {
  border-radius: 14px;
  height: 132px !important;
  min-height: 132px;
}

.xyz3d-camera-mini-shot {
  background: rgba(0, 0, 0, 0.46);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 6px;
}

.xyz3d-camera-mini-shot span {
  color: rgba(255,255,255,0.82);
  display: block;
  font-size: 10px;
  margin-bottom: 5px;
}

.xyz3d-camera-mini-shot img {
  border-radius: 8px;
  display: block;
  height: 74px;
  object-fit: cover;
  width: 100%;
}

.xyz3d-camera-position-map { height: 72px; width: 72px; }
  .xyz3d-camera-position-map i { transform: rotate(var(--capture-angle)) translateX(26px); }
}

/* Real STEP guide and spatial photo-position cloud */
.xyz3d-photo-route-viewer,
.xyz3d-photo-route-fallback {
  inset: 0;
  position: absolute;
}

.xyz3d-photo-route-viewer {
  cursor: grab;
  z-index: 1;
}

.xyz3d-photo-route-viewer:active {
  cursor: grabbing;
}

.xyz3d-photo-route-viewer canvas {
  display: block;
  height: 100% !important;
  outline: 0;
  touch-action: none;
  width: 100% !important;
}

.xyz3d-photo-route-viewer::after {
  background: linear-gradient(180deg, rgba(4, 14, 25, 0.1), transparent 35%, rgba(4, 14, 25, 0.76) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.xyz3d-photo-route-status {
  background: rgba(1, 10, 18, 0.78);
  border: 1px solid rgba(84, 214, 255, 0.28);
  border-radius: 999px;
  color: #c9f6ff;
  font-size: 11px;
  left: 50%;
  padding: 7px 12px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 6;
}

.xyz3d-photo-route-fallback {
  z-index: 2;
}

.xyz3d-photo-guide.is-disabled .xyz3d-photo-route-viewer {
  opacity: 0.48;
  pointer-events: none;
}

@media (max-width: 620px) {
  .xyz3d-photo-route-viewer::after {
    background: linear-gradient(180deg, rgba(4, 14, 25, 0.05), transparent 28%, rgba(4, 14, 25, 0.82) 100%);
  }
}

.xyz3d-camera-ghost-object { display:none !important; }

.xyz3d-camera-controls button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

.xyz3d-camera-close,
.xyz3d-camera-controls,
.xyz3d-camera-controls button {
  pointer-events: auto !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.xyz3d-camera-controls { z-index: 30; }
.xyz3d-camera-close { z-index: 31; }

@media (max-width: 640px) {
  .xyz3d-camera-mini { width: min(136px, 34vw); }
  .xyz3d-camera-mini-viewer,
  .xyz3d-route-viewer.is-camera-mini { height: 108px !important; min-height: 108px; }
  .xyz3d-camera-mini-shot img { height: 56px; }
}

.xyz3d-camera-mini-pins {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 6;
}

.xyz3d-camera-mini-pin {
  background: rgba(0,0,0,0.45);
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: 6px;
  display: block;
  height: 20px;
  overflow: hidden;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 14px;
}

.xyz3d-camera-mini-pin.is-active {
  box-shadow: 0 0 0 1px rgba(255,241,138,0.65), 0 0 14px rgba(255,241,138,0.55);
}

.xyz3d-camera-mini-pin img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.xyz3d-camera-guidance > span + small {
  top: -136px;
}

.xyz3d-camera-guidance .xyz3d-camera-pitch + small {
  top: -28px;
}

.xyz3d-route-viewer.is-camera-mini { background: transparent !important; }


/* 0.17.4 photogrammetry UI refinements */
.xyz3d-photo-route-viewer { background: transparent !important; overflow: hidden; }
.xyz3d-photo-route-viewer::after { background: linear-gradient(180deg, rgba(4,14,25,0.02), transparent 42%, rgba(4,14,25,0.18) 100%); }
.xyz3d-photo-route-overlay {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 5;
}
.xyz3d-photo-route-ringlabels {
  color: rgba(214,241,255,0.82);
  font-size: 11px;
  font-weight: 800;
  inset: 0;
  letter-spacing: .04em;
  pointer-events: none;
  position: absolute;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
  z-index: 4;
}
.xyz3d-photo-route-ringlabels span { left: 16px; position: absolute; }
.xyz3d-photo-route-ringlabels .upper { top: 58px; }
.xyz3d-photo-route-ringlabels .middle { top: calc(50% - 8px); }
.xyz3d-photo-route-ringlabels .lower { bottom: 44px; }
.xyz3d-route-pin {
  align-items: center;
  background: rgba(6,20,34,.28);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 6px;
  color: #fff;
  display: flex;
  height: 18px;
  justify-content: center;
  overflow: hidden;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 14px;
}
.xyz3d-route-pin b { font-size: 9px; font-weight: 800; line-height: 1; }
.xyz3d-route-pin.is-active { box-shadow: 0 0 0 1px rgba(255,241,138,.72), 0 0 14px rgba(255,241,138,.45); }
.xyz3d-route-pin.is-complete { background: rgba(0,0,0,.18); border-color: rgba(255,255,255,.32); width: 16px; }
.xyz3d-route-pin img { display:block; height:100%; object-fit:cover; width:100%; }
.xyz3d-photo-quicksetup {
  background: rgba(4,18,31,.55);
  border: 1px solid rgba(116,211,255,.18);
  border-radius: 14px;
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
}
.xyz3d-photo-quicksetup-head { align-items: baseline; display:flex; justify-content:space-between; gap:12px; }
.xyz3d-photo-quicksetup-head strong { color:#fff; font-size:13px; }
.xyz3d-photo-quicksetup-head small { color:rgba(214,241,255,.72); font-size:11px; }
.xyz3d-photo-quicksetup-grid { display:grid; gap:8px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.xyz3d-photo-quicksetup-grid label,
.xyz3d-photo-quicksetup-row label { display:grid; gap:5px; }
.xyz3d-photo-quicksetup-grid span,
.xyz3d-photo-quicksetup-row span { color:rgba(214,241,255,.8); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.xyz3d-photo-quicksetup input[type="number"] {
  background: rgba(2,10,18,.72);
  border: 1px solid rgba(118,211,255,.16);
  border-radius: 10px;
  color: #fff;
  min-width: 0;
  padding: 9px 10px;
}
.xyz3d-photo-quicksetup-row { align-items:end; display:grid; gap:10px; grid-template-columns: 1fr 1fr; }
.xyz3d-photo-quickcheck { align-items:center; display:flex !important; gap:8px; }
.xyz3d-photo-quickcheck span { font-size:12px; letter-spacing:0; text-transform:none; }
.xyz3d-photo-quickref { grid-template-columns: 1fr auto; }
.xyz3d-photo-quickref small { align-self:center; color:rgba(214,241,255,.72); font-size:11px; padding-bottom:10px; }
.xyz3d-photo-calcard {
  color:#7ed7ff; display:inline-flex; font-size:12px; font-weight:700; text-decoration:none;
}
.xyz3d-camera-guidance {
  bottom: calc(max(116px, env(safe-area-inset-bottom) + 102px));
  left: 0; right: 0; pointer-events:none; z-index:7;
}
.xyz3d-camera-guidance strong {
  margin: 0 auto; max-width: min(78vw, 420px);
}
.xyz3d-camera-guidance > span {
  left: 50%; position:absolute; top: -348px; transform: translateX(-50%); width: min(58vw, 330px);
}
.xyz3d-camera-guidance > span + small {
  left: 50%; position:absolute; top: -332px; transform: translateX(-50%); width: min(60vw, 340px);
}
.xyz3d-camera-guidance .xyz3d-camera-pitch {
  height: min(44vh, 280px); position:absolute; right: calc(50% - min(31vw,205px) + 12px); top: -304px; transform:none;
}
.xyz3d-camera-guidance .xyz3d-camera-pitch + small {
  position:absolute; right: calc(50% - min(31vw,205px) + 22px); top: -22px; transform: translateX(50%) rotate(0deg); width: 160px;
}
.xyz3d-camera-mini { top: calc(env(safe-area-inset-top) + 56px); z-index: 9; }
.xyz3d-camera-mini-viewer, .xyz3d-route-viewer.is-camera-mini { background: transparent !important; }
.xyz3d-camera-position-map { display:none; }
@media (max-width: 640px) {
  .xyz3d-photo-quicksetup-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .xyz3d-photo-quicksetup-row { grid-template-columns: 1fr; }
  .xyz3d-camera-guidance > span { top: -336px; width: min(66vw, 350px); }
  .xyz3d-camera-guidance > span + small { top: -320px; }
  .xyz3d-camera-guidance .xyz3d-camera-pitch { height: min(42vh, 250px); right: calc(50% - min(38vw,235px) + 14px); top: -296px; }
  .xyz3d-camera-guidance .xyz3d-camera-pitch + small { right: calc(50% - min(38vw,235px) + 24px); }
}


/* 0.17.4 guided capture alignment */
.xyz3d-photo-route-viewer,
.xyz3d-photo-route-viewer canvas,
.xyz3d-camera-mini-viewer,
.xyz3d-camera-mini-viewer canvas,
.xyz3d-route-viewer.is-camera-mini,
.xyz3d-route-viewer.is-camera-mini canvas {
  background: transparent !important;
}

.xyz3d-route-pin {
  height: 22px;
  width: 18px;
}
.xyz3d-route-pin b {
  font-size: 10px;
}
.xyz3d-route-pin.is-complete {
  width: 22px;
}

.xyz3d-camera-mini {
  background: transparent;
  left: 14px;
  top: calc(env(safe-area-inset-top) + 58px);
  width: min(172px, 34vw);
  z-index: 9;
}

.xyz3d-camera-mini-viewer,
.xyz3d-route-viewer.is-camera-mini {
  background: transparent !important;
  border: 0;
  box-shadow: none;
  min-height: 148px;
}

.xyz3d-camera-mini-shot {
  background: rgba(0,0,0,.32);
  border-color: rgba(255,255,255,.16);
}

.xyz3d-camera-topbar {
  left: 18px;
  right: 74px;
  top: calc(env(safe-area-inset-top) + 10px);
}

.xyz3d-camera-topbar strong {
  max-width: calc(100vw - 110px);
}

.xyz3d-camera-guidance {
  bottom: calc(max(104px, env(safe-area-inset-bottom) + 88px));
  left: 0;
  pointer-events: none;
  right: 0;
  z-index: 8;
}

.xyz3d-camera-guidance strong {
  background: rgba(0,0,0,.54);
  border-radius: 10px;
  display: block;
  margin: 0 auto;
  max-width: min(84vw, 520px);
  padding: 8px 12px;
}

/* horizontal level bar inside top of capture frame */
.xyz3d-camera-guidance > span {
  left: 50%;
  position: absolute;
  top: -350px;
  transform: translateX(-50%);
  width: min(72vw, 420px);
}
.xyz3d-camera-guidance > span + small {
  left: 50%;
  position: absolute;
  text-align: center;
  top: -334px;
  transform: translateX(-50%);
  width: min(72vw, 420px);
}

/* vertical aim bar inside right side of capture frame */
.xyz3d-camera-guidance .xyz3d-camera-pitch {
  height: min(50vh, 390px);
  position: absolute;
  right: calc(50% - min(36vw, 250px) + 12px);
  top: -304px;
  transform: none;
}
.xyz3d-camera-guidance .xyz3d-camera-pitch + small {
  position: absolute;
  right: calc(50% - min(36vw, 250px) + 26px);
  text-align: left;
  top: -6px;
  transform: none;
  width: 170px;
}

/* instruction between frame and shutter */
.xyz3d-camera-guidance strong {
  margin-top: 96px;
}

.xyz3d-camera-position-map {
  display: none;
}

.xyz3d-camera-vignette {
  background:
    radial-gradient(ellipse at center, rgba(0,0,0,0) 0 38%, rgba(0,0,0,0.08) 56%, rgba(0,0,0,0.22) 76%, rgba(0,0,0,0.38) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.02) 18%, rgba(0,0,0,0.16) 100%);
  pointer-events: none;
}

@media (max-width: 640px) {
  .xyz3d-camera-mini { width: min(150px, 36vw); }
  .xyz3d-camera-mini-viewer,
  .xyz3d-route-viewer.is-camera-mini { min-height: 122px; }
  .xyz3d-camera-guidance > span {
    top: -332px;
    width: min(78vw, 400px);
  }
  .xyz3d-camera-guidance > span + small {
    top: -316px;
    width: min(78vw, 400px);
  }
  .xyz3d-camera-guidance .xyz3d-camera-pitch {
    height: min(47vh, 338px);
    right: calc(50% - min(38vw, 230px) + 10px);
    top: -292px;
  }
  .xyz3d-camera-guidance .xyz3d-camera-pitch + small {
    right: calc(50% - min(38vw, 230px) + 22px);
  }
}

/* 0.17.6 photogrammetry workspace and guided capture */
.xyz3d-photo-service-shell .xyz3d-photo-upload {
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: 1fr !important;
  max-width: none !important;
  width: 100% !important;
}

.xyz3d-photo-service-shell .xyz3d-photo-guide {
  display: grid;
  grid-template-rows: auto minmax(300px, 1fr) auto;
  min-height: clamp(460px, 56vh, 690px) !important;
  overflow: hidden;
}

.xyz3d-photo-service-shell .xyz3d-photo-route-head {
  align-items: center;
  background: rgba(4, 17, 29, 0.88);
  border-bottom: 1px solid rgba(84, 214, 255, 0.14);
  display: flex;
  inset: auto !important;
  justify-content: space-between;
  padding: 14px 18px;
  position: relative !important;
  z-index: 10;
}

.xyz3d-photo-route-head > div {
  display: grid;
  gap: 4px;
}

.xyz3d-photo-route-head small {
  color: rgba(214, 241, 255, 0.72);
  font-size: 10px;
  letter-spacing: 0.02em;
}

.xyz3d-photo-service-shell .xyz3d-photo-route-viewer {
  background: transparent !important;
  inset: auto !important;
  min-height: 300px;
  overflow: hidden;
  position: relative !important;
}

.xyz3d-photo-service-shell .xyz3d-photo-route-viewer::after {
  background: radial-gradient(circle at center, transparent 40%, rgba(4, 14, 25, 0.12) 100%);
}

.xyz3d-photo-service-shell .xyz3d-photo-guide-copy {
  background: rgba(4, 17, 29, 0.9);
  border-top: 1px solid rgba(84, 214, 255, 0.14);
  bottom: auto !important;
  gap: 5px;
  inset: auto !important;
  padding: 13px 18px 15px;
  position: relative !important;
  z-index: 10;
}

.xyz3d-photo-service-shell .xyz3d-photo-dropzone {
  min-height: 150px !important;
  padding: 20px 24px !important;
}

.xyz3d-photo-service-shell .xyz3d-photo-dropzone small {
  margin-top: 8px;
}

.xyz3d-photo-route-overlay {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 8;
}

.xyz3d-route-pin {
  align-items: center;
  background: rgba(4, 17, 29, 0.42);
  border: 1px solid rgba(220, 245, 255, 0.42);
  border-radius: 4px;
  color: #fff;
  display: flex;
  justify-content: center;
  min-height: 14px;
  min-width: 10px;
  overflow: hidden;
  position: absolute;
  transform-origin: center;
}

.xyz3d-route-pin b {
  font-size: clamp(7px, 0.8vw, 10px);
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85);
}

.xyz3d-route-pin.is-active {
  border-color: #fff49a;
  box-shadow: 0 0 0 2px rgba(255, 244, 154, 0.26), 0 0 18px rgba(255, 230, 92, 0.52);
  z-index: 4;
}

.xyz3d-route-pin.is-complete {
  background: #07131f;
  border-color: rgba(111, 238, 172, 0.72);
}

.xyz3d-route-pin img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.xyz3d-scale-reference {
  background: rgba(4, 18, 31, 0.48);
  border: 1px solid rgba(84, 214, 255, 0.16);
  border-radius: 12px;
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 12px;
}

.xyz3d-scale-reference-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.xyz3d-scale-reference-head span {
  color: var(--xyz-cyan);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xyz3d-scale-marker-check {
  align-items: center;
  display: flex;
  gap: 8px;
}

.xyz3d-calibration-open {
  background: rgba(84, 214, 255, 0.1);
  border: 1px solid rgba(84, 214, 255, 0.32);
  border-radius: 9px;
  color: #89e2ff;
  cursor: pointer;
  font-weight: 750;
  min-height: 40px;
  padding: 9px 12px;
}

html.xyz3d-calibration-open,
html.xyz3d-calibration-open body {
  overflow: hidden !important;
}

.xyz3d-calibration-modal {
  align-items: center;
  background: rgba(0, 0, 0, 0.72);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 20px;
  position: fixed;
  z-index: 2147483500;
}

.xyz3d-calibration-dialog {
  background: #071523;
  border: 1px solid rgba(84, 214, 255, 0.28);
  border-radius: 16px;
  color: #eef8ff;
  max-height: calc(100dvh - 40px);
  max-width: 620px;
  overflow: auto;
  padding: 22px;
  position: relative;
  width: 100%;
}

.xyz3d-calibration-dialog h3 {
  margin: 0 44px 8px 0;
}

.xyz3d-calibration-dialog p {
  color: #a9bfd1;
  line-height: 1.5;
}

.xyz3d-calibration-close {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  font-size: 24px;
  height: 40px;
  position: absolute;
  right: 14px;
  top: 14px;
  width: 40px;
}

.xyz3d-calibration-preview {
  background: #e6e6e6;
  border-radius: 12px;
  display: grid;
  margin: 16px 0;
  min-height: 300px;
  place-items: center;
  padding: 18px;
}

.xyz3d-calibration-preview img {
  background: #fff;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
  display: block;
  height: min(68vw, 360px);
  max-height: 360px;
  max-width: 360px;
  width: min(68vw, 360px);
}

.xyz3d-calibration-dialog label {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
}

.xyz3d-calibration-dialog select {
  background: #020a12;
  border: 1px solid rgba(84, 214, 255, 0.22);
  border-radius: 9px;
  color: #fff;
  min-height: 42px;
  padding: 8px 10px;
}

.xyz3d-camera-route-toggle {
  background: rgba(2, 10, 18, 0.72);
  border: 1px solid rgba(84, 214, 255, 0.35);
  border-radius: 999px;
  color: #aeefff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  left: 18px;
  min-height: 38px;
  padding: 8px 13px;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 64px);
  z-index: 34;
}

.xyz3d-camera-route-panel {
  background: rgba(1, 8, 14, 0.48);
  inset: 0;
  position: absolute;
  z-index: 40;
}

.xyz3d-camera-route-toolbar {
  align-items: center;
  background: rgba(1, 10, 18, 0.82);
  border-bottom: 1px solid rgba(84, 214, 255, 0.2);
  display: flex;
  justify-content: space-between;
  left: 0;
  padding: calc(env(safe-area-inset-top) + 12px) 18px 12px;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 5;
}

.xyz3d-camera-route-toolbar strong {
  color: #eaf8ff;
}

.xyz3d-camera-route-toolbar button {
  background: rgba(84, 214, 255, 0.12);
  border: 1px solid rgba(84, 214, 255, 0.34);
  border-radius: 999px;
  color: #aeefff;
  cursor: pointer;
  min-height: 38px;
  padding: 8px 13px;
}

.xyz3d-camera-route-viewer,
.xyz3d-camera-route-viewer .xyz3d-photo-route-viewer,
.xyz3d-camera-route-viewer canvas {
  background: transparent !important;
  height: 100% !important;
  min-height: 100% !important;
  width: 100% !important;
}

.xyz3d-camera-capture.is-route-open .xyz3d-camera-target,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-guidance,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-controls,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-topbar,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-route-toggle {
  visibility: hidden;
}

.xyz3d-camera-target {
  bottom: calc(max(218px, env(safe-area-inset-bottom) + 205px)) !important;
  height: auto !important;
  left: 50%;
  max-height: none !important;
  top: calc(env(safe-area-inset-top) + 126px) !important;
  transform: translateX(-50%);
  width: min(78vw, 540px) !important;
}

.xyz3d-level-horizontal {
  left: 2mm;
  position: absolute;
  right: 2mm;
  top: 2mm;
}

.xyz3d-level-horizontal > span {
  --level-offset: 0%;
  background: rgba(255, 80, 80, 0.34);
  border: 1px solid rgba(255, 99, 99, 0.9);
  border-radius: 999px;
  box-shadow: 0 0 10px rgba(255, 65, 65, 0.32);
  display: block;
  height: 9px;
  overflow: hidden;
  position: relative;
  transition: background 120ms linear, border-color 120ms linear, box-shadow 120ms linear;
  width: 100%;
}

.xyz3d-level-horizontal > span::after {
  background: rgba(255, 255, 255, 0.45);
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  width: 1px;
}

.xyz3d-level-horizontal > span i {
  background: #ff5d5d;
  border: 1px solid #fff;
  border-radius: 50%;
  height: 11px;
  left: calc(50% + var(--level-offset));
  position: absolute;
  top: -2px;
  transform: translateX(-50%);
  transition: left 80ms linear, background 120ms linear;
  width: 11px;
  z-index: 2;
}

.xyz3d-level-horizontal small {
  color: #ff8e8e;
  display: block;
  font-size: 11px;
  font-weight: 700;
  margin-top: 4px;
  text-align: center;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.xyz3d-level-vertical {
  bottom: 2mm;
  position: absolute;
  right: 2mm;
  top: 2mm;
  width: 34px;
}

.xyz3d-level-vertical > span {
  --pitch-offset: 0%;
  background: rgba(255, 80, 80, 0.34);
  border: 1px solid rgba(255, 99, 99, 0.9);
  border-radius: 999px;
  bottom: 0;
  box-shadow: 0 0 10px rgba(255, 65, 65, 0.32);
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  transition: background 120ms linear, border-color 120ms linear, box-shadow 120ms linear;
  width: 9px;
}

.xyz3d-level-vertical > span::after {
  background: rgba(255, 255, 255, 0.45);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 50%;
  width: 100%;
}

.xyz3d-level-vertical > span i {
  background: #ff5d5d;
  border: 1px solid #fff;
  border-radius: 50%;
  height: 11px;
  left: -2px;
  position: absolute;
  top: calc(50% + var(--pitch-offset));
  transform: translateY(-50%);
  transition: top 80ms linear, background 120ms linear;
  width: 11px;
  z-index: 2;
}

.xyz3d-level-vertical small {
  color: #ff8e8e;
  font-size: 11px;
  font-weight: 700;
  left: 50%;
  position: absolute;
  text-align: center;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  white-space: nowrap;
}

.xyz3d-level-horizontal > span.is-good,
.xyz3d-level-vertical > span.is-good {
  background: rgba(33, 220, 117, 0.42);
  border-color: #52f1a3;
  box-shadow: 0 0 14px rgba(55, 235, 142, 0.55);
}

.xyz3d-level-horizontal > span.is-good i,
.xyz3d-level-vertical > span.is-good i {
  background: #49ee9b;
}

.xyz3d-level-horizontal small.is-good,
.xyz3d-level-vertical small.is-good {
  color: #70ffb5;
}

.xyz3d-level-horizontal > span.is-bad,
.xyz3d-level-vertical > span.is-bad {
  background: rgba(255, 72, 72, 0.36);
  border-color: #ff6868;
}

.xyz3d-level-horizontal small.is-bad,
.xyz3d-level-vertical small.is-bad {
  color: #ff9b9b;
}

.xyz3d-camera-guidance {
  bottom: calc(max(114px, env(safe-area-inset-bottom) + 101px)) !important;
  left: 18px !important;
  pointer-events: none;
  position: absolute;
  right: 18px !important;
  text-align: center;
  z-index: 12;
}

.xyz3d-camera-guidance strong {
  background: rgba(0, 0, 0, 0.58);
  border-radius: 10px;
  display: inline-block;
  font-size: 13px;
  line-height: 1.45;
  margin: 0 !important;
  max-width: min(88vw, 600px);
  padding: 8px 12px;
}

.xyz3d-camera-vignette {
  backdrop-filter: blur(2px);
  background: rgba(0, 0, 0, 0.14);
  -webkit-mask-image: radial-gradient(ellipse at center, transparent 0 43%, rgba(0,0,0,.25) 60%, #000 84%);
  mask-image: radial-gradient(ellipse at center, transparent 0 43%, rgba(0,0,0,.25) 60%, #000 84%);
}

@media (max-width: 720px) {
  .xyz3d-photo-service-shell .xyz3d-photo-guide {
    min-height: 500px !important;
  }

  .xyz3d-photo-service-shell .xyz3d-photo-route-viewer {
    min-height: 330px;
  }

  .xyz3d-camera-target {
    bottom: calc(max(222px, env(safe-area-inset-bottom) + 210px)) !important;
    top: calc(env(safe-area-inset-top) + 118px) !important;
    width: 82vw !important;
  }

  .xyz3d-camera-route-toggle {
    font-size: 11px;
    top: calc(env(safe-area-inset-top) + 70px);
  }

  .xyz3d-level-horizontal small,
  .xyz3d-level-vertical small {
    font-size: 10px;
  }
}

.xyz3d-calibration-modal[hidden],
.xyz3d-camera-route-panel[hidden] {
  display: none !important;
}

/* 0.17.7 guided-camera workflow */
.xyz3d-photo-service-shell .xyz3d-photo-upload {
  display: block !important;
  max-width: none !important;
  width: 100% !important;
}

.xyz3d-photo-service-shell .xyz3d-photo-guide {
  min-height: 690px !important;
  width: 100% !important;
}

.xyz3d-panel-photo-files {
  display: grid;
  gap: 12px;
}

.xyz3d-photo-dropzone-panel {
  border-radius: 12px !important;
  min-height: 150px !important;
  padding: 18px 14px !important;
}

.xyz3d-photo-dropzone-panel .xyz3d-upload-icon {
  height: 40px;
  width: 40px;
}

.xyz3d-photo-dropzone-panel strong {
  font-size: 14px !important;
}

.xyz3d-photo-dropzone-panel > span:not(.xyz3d-upload-icon) {
  font-size: 11px !important;
}

.xyz3d-photo-dropzone-panel small {
  font-size: 9px !important;
  margin-top: 8px !important;
}

.xyz3d-photo-selection-panel {
  border-radius: 12px !important;
  grid-column: auto !important;
  padding: 12px !important;
}

.xyz3d-photo-selection-panel .xyz3d-photo-previews {
  grid-template-columns: repeat(4, minmax(42px, 1fr));
}

.xyz3d-route-number {
  align-items: center;
  background: rgba(2, 12, 22, 0.86);
  border: 1px solid rgba(220, 245, 255, 0.58);
  border-radius: 999px;
  color: #fff;
  display: flex;
  height: 20px;
  justify-content: center;
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 20px;
  z-index: 9;
}

.xyz3d-route-number b {
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
}

.xyz3d-route-number.is-active {
  background: #fff1a2;
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255, 241, 162, 0.22), 0 0 18px rgba(255, 225, 93, 0.62);
  color: #101820;
}

.xyz3d-camera-menu-toggle {
  align-items: center;
  background: rgba(0, 0, 0, 0.52);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 46px;
  justify-content: center;
  left: 16px;
  padding: 0;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 14px);
  width: 46px;
  z-index: 64;
}

.xyz3d-camera-menu-toggle span {
  background: #fff;
  border-radius: 2px;
  display: block;
  height: 2px;
  width: 21px;
}

.xyz3d-camera-settings[hidden] {
  display: none !important;
}

.xyz3d-camera-settings {
  background: rgba(3, 13, 23, 0.94);
  border: 1px solid rgba(84, 214, 255, 0.32);
  border-radius: 14px;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.42);
  color: #eaf8ff;
  display: grid;
  gap: 12px;
  left: 16px;
  max-height: calc(100dvh - 92px);
  overflow: auto;
  padding: 16px;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 68px);
  width: min(340px, calc(100vw - 32px));
  z-index: 63;
}

.xyz3d-camera-settings > strong {
  color: #fff;
  font-size: 15px;
}

.xyz3d-camera-settings label {
  align-items: flex-start;
  color: #c8dce9;
  display: flex;
  font-size: 12px;
  gap: 9px;
  line-height: 1.4;
}

.xyz3d-camera-settings input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 2px;
}

.xyz3d-camera-delay {
  align-items: center !important;
  display: grid !important;
  grid-template-columns: 1fr 72px auto;
}

.xyz3d-camera-delay input {
  background: #020a12;
  border: 1px solid rgba(84, 214, 255, 0.24);
  border-radius: 8px;
  color: #fff;
  min-height: 36px;
  padding: 6px 8px;
  width: 100%;
}

.xyz3d-camera-delay small,
.xyz3d-auto-status {
  color: #8fb1c5;
  font-size: 10px;
}

.xyz3d-auto-status {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 10px;
}

.xyz3d-camera-route-toggle {
  align-items: center !important;
  border-radius: 12px !important;
  display: flex !important;
  font-size: 13px !important;
  height: 42px !important;
  justify-content: center !important;
  left: auto !important;
  min-height: 42px !important;
  padding: 0 !important;
  right: 18px !important;
  top: calc(env(safe-area-inset-top) + 70px) !important;
  width: 48px !important;
  z-index: 64 !important;
}

.xyz3d-camera-route-toggle[aria-pressed="true"] {
  background: rgba(84, 214, 255, 0.28);
  border-color: #83e4ff;
  color: #fff;
}

.xyz3d-camera-close {
  z-index: 65 !important;
}

.xyz3d-camera-route-panel {
  background: transparent !important;
  z-index: 40 !important;
}

.xyz3d-camera-route-toolbar {
  display: none !important;
}

.xyz3d-camera-capture.is-route-open .xyz3d-camera-route-toggle,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-close,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-menu-toggle,
.xyz3d-camera-capture.is-route-open .xyz3d-camera-settings {
  visibility: visible !important;
}

.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-target,
.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-guidance,
.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-controls,
.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-topbar {
  visibility: visible !important;
  z-index: 54 !important;
}

.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-target,
.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-guidance,
.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-controls,
.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-topbar {
  visibility: hidden !important;
}

.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-controls {
  z-index: 58 !important;
}

.xyz3d-level-horizontal,
.xyz3d-level-vertical {
  border-radius: 12px;
  transition: background 120ms linear, box-shadow 120ms linear;
}

.xyz3d-level-horizontal.is-good,
.xyz3d-level-vertical.is-good {
  background: rgba(38, 232, 133, 0.08);
  box-shadow: 0 0 18px rgba(60, 243, 153, 0.36);
}

.xyz3d-level-horizontal.is-bad,
.xyz3d-level-vertical.is-bad {
  background: rgba(255, 72, 72, 0.045);
  box-shadow: 0 0 14px rgba(255, 72, 72, 0.2);
}

.xyz3d-camera-capture.is-level-ready .xyz3d-camera-target {
  border-color: rgba(88, 255, 171, 0.9);
  box-shadow: 0 0 0 1px rgba(88, 255, 171, 0.18), inset 0 0 32px rgba(45, 230, 139, 0.06);
}

.xyz3d-camera-capture.is-auto-ready .xyz3d-camera-shutter {
  box-shadow: 0 0 0 5px rgba(67, 238, 151, 0.22), 0 0 28px rgba(67, 238, 151, 0.5);
}

@media (max-width: 720px) {
  .xyz3d-photo-service-shell .xyz3d-photo-guide {
    min-height: 520px !important;
  }

  .xyz3d-photo-selection-panel .xyz3d-photo-previews {
    grid-template-columns: repeat(3, minmax(42px, 1fr));
  }

  .xyz3d-camera-menu-toggle {
    height: 42px;
    width: 42px;
  }

  .xyz3d-camera-route-toggle {
    right: 16px !important;
    top: calc(env(safe-area-inset-top) + 66px) !important;
  }
}

.xyz3d-camera-topbar {
  left: 76px !important;
  right: 82px !important;
}

@media (max-width: 520px) {
  .xyz3d-camera-topbar {
    left: 68px !important;
    right: 76px !important;
  }
}


/* 0.17.8 layout and guided camera corrections */
.xyz3d-panel-photo-files {
  box-sizing: border-box;
  margin-bottom: 0 !important;
  padding-bottom: 20px !important;
  position: relative;
}

.xyz3d-panel-photo-files .xyz3d-section-heading {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  justify-content: space-between;
}

.xyz3d-panel-photo-files .xyz3d-section-heading strong,
.xyz3d-panel-photo-files .xyz3d-section-heading span {
  line-height: 1.3;
}

.xyz3d-panel-section.xyz3d-photo-quality-note {
  clear: both;
  display: block;
  margin: 18px 0 20px !important;
  padding: 13px 14px !important;
  position: relative;
  z-index: 1;
}

.xyz3d-photo-dropzone-panel {
  margin-bottom: 0 !important;
}

.xyz3d-route-button-settings {
  border: 1px solid rgba(126, 215, 255, 0.16);
  border-radius: 10px;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 2px 0 0;
  padding: 11px 10px 10px;
}

.xyz3d-route-button-settings legend {
  color: #9fe6ff;
  font-size: 11px;
  font-weight: 800;
  padding: 0 5px;
}

.xyz3d-route-button-settings label {
  align-items: center !important;
  font-size: 11px !important;
  gap: 7px !important;
}

.xyz3d-camera-menu-toggle[hidden],
.xyz3d-camera-close[hidden],
.xyz3d-camera-route-toggle[hidden],
.xyz3d-camera-skip[hidden],
.xyz3d-camera-shutter[hidden],
.xyz3d-camera-finish[hidden] {
  display: none !important;
}

/* The capture frame remains centered for every ring. */
.xyz3d-camera-target,
.xyz3d-camera-target.upper,
.xyz3d-camera-target.lower {
  border-radius: 26px !important;
  bottom: auto !important;
  height: min(58dvh, 640px) !important;
  left: 50% !important;
  max-height: calc(100dvh - 300px) !important;
  top: 50dvh !important;
  transform: translate(-50%, -50%) !important;
  width: min(82vw, 540px) !important;
  z-index: 54 !important;
}

.xyz3d-camera-target .corner {
  border-radius: 3px;
}

/* Horizontal level: full width, two millimetres below the frame edge. */
.xyz3d-level-horizontal {
  left: 2mm !important;
  right: 2mm !important;
  top: 2mm !important;
  z-index: 24 !important;
}

.xyz3d-level-horizontal > span {
  display: block !important;
  height: 10px !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 100% !important;
}

.xyz3d-level-horizontal small {
  display: block !important;
  font-size: 10px !important;
  margin-top: 4px !important;
  text-align: center !important;
  visibility: visible !important;
}

/* Vertical level: full height, two millimetres inside the right edge. */
.xyz3d-level-vertical {
  bottom: 2mm !important;
  right: 2mm !important;
  top: 2mm !important;
  width: 34px !important;
  z-index: 24 !important;
}

.xyz3d-level-vertical > span {
  bottom: 0 !important;
  display: block !important;
  top: 0 !important;
  visibility: visible !important;
}

/* Compact position card at the top. */
.xyz3d-camera-topbar {
  background: rgba(2, 10, 18, 0.72) !important;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  left: 76px !important;
  padding: 8px 12px !important;
  right: 82px !important;
  top: calc(env(safe-area-inset-top) + 14px) !important;
  width: auto !important;
  z-index: 60 !important;
}

.xyz3d-camera-topbar span {
  font-size: 9px !important;
  letter-spacing: 0.07em !important;
  line-height: 1.2 !important;
}

.xyz3d-camera-topbar strong {
  font-size: clamp(13px, 3.3vw, 17px) !important;
  line-height: 1.25 !important;
  margin-top: 2px !important;
}

.xyz3d-camera-guidance {
  bottom: calc(max(112px, env(safe-area-inset-bottom) + 98px)) !important;
  z-index: 56 !important;
}

.xyz3d-camera-guidance strong {
  border-radius: 12px !important;
  font-size: 12px !important;
  max-width: min(88vw, 560px) !important;
  padding: 7px 11px !important;
}

@media (max-width: 720px) {
  .xyz3d-route-button-settings {
    grid-template-columns: 1fr 1fr;
  }

  .xyz3d-camera-target,
  .xyz3d-camera-target.upper,
  .xyz3d-camera-target.lower {
    height: min(55dvh, 610px) !important;
    max-height: calc(100dvh - 292px) !important;
    top: 50dvh !important;
    width: 82vw !important;
  }

  .xyz3d-camera-topbar {
    left: 68px !important;
    right: 76px !important;
  }
}

@media (max-height: 760px) {
  .xyz3d-camera-target,
  .xyz3d-camera-target.upper,
  .xyz3d-camera-target.lower {
    height: min(50dvh, 430px) !important;
    max-height: calc(100dvh - 250px) !important;
  }
}

/* 0.17.8: 3D mode guide visibility is independent from individual buttons. */
.xyz3d-camera-capture.is-route-open .xyz3d-camera-controls {
  visibility: visible !important;
  z-index: 58 !important;
}

.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-target,
.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-guidance,
.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-topbar {
  visibility: hidden !important;
}

.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-target,
.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-guidance,
.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-topbar {
  visibility: visible !important;
}


/* 0.17.9 photo list header and route-frame correction */
.xyz3d-photo-selection-panel {
  align-items: start;
  display: grid !important;
  gap: 10px 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.xyz3d-photo-selection-panel > div:first-child {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  grid-column: 1;
  min-width: 0;
}

.xyz3d-photo-selection-panel > div:first-child strong,
.xyz3d-photo-selection-panel > div:first-child span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.xyz3d-photo-selection-panel .xyz3d-photo-clear {
  align-self: start;
  float: none !important;
  grid-column: 2;
  margin: 0 !important;
  max-width: 150px;
  white-space: normal;
}

.xyz3d-photo-selection-panel .xyz3d-photo-previews {
  grid-column: 1 / -1;
  width: 100%;
}

@media (max-width: 520px) {
  .xyz3d-photo-selection-panel {
    grid-template-columns: 1fr;
  }
  .xyz3d-photo-selection-panel .xyz3d-photo-clear {
    grid-column: 1;
    justify-self: start;
  }
}

/* 0.18.0 captured-photo review, deletion and on-device quality check */
html.xyz3d-photo-review-open,
html.xyz3d-photo-review-open body {
  overflow: hidden !important;
}

.xyz3d-photo-review-modal[hidden] {
  display: none !important;
}

.xyz3d-photo-review-modal {
  align-items: center;
  background: rgba(0, 4, 9, 0.88);
  display: flex;
  inset: 0;
  justify-content: 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));
  position: fixed;
  z-index: 2147483600;
}

.xyz3d-photo-review-dialog {
  background: #06131f;
  border: 1px solid rgba(84, 214, 255, 0.3);
  border-radius: 18px;
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.58);
  color: #eef9ff;
  display: grid;
  grid-template-rows: auto minmax(200px, 1fr) auto auto;
  max-height: calc(100dvh - 24px);
  max-width: 980px;
  overflow: hidden;
  width: 100%;
}

.xyz3d-photo-review-dialog > header {
  align-items: center;
  border-bottom: 1px solid rgba(84, 214, 255, 0.15);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 13px 15px 13px 18px;
}

.xyz3d-photo-review-dialog > header > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.xyz3d-photo-review-dialog > header span {
  color: #71dcff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.xyz3d-photo-review-dialog > header strong {
  font-size: 15px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xyz3d-photo-review-close {
  align-items: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  flex: 0 0 auto;
  font-size: 24px;
  height: 40px;
  justify-content: center;
  padding: 0;
  width: 40px;
}

.xyz3d-photo-review-stage {
  align-items: center;
  background: #01070c;
  display: flex;
  justify-content: center;
  min-height: 260px;
  overflow: hidden;
  position: relative;
}

.xyz3d-photo-review-stage img {
  display: block;
  height: 100%;
  max-height: min(62dvh, 700px);
  object-fit: contain;
  width: 100%;
}

.xyz3d-photo-review-status {
  background: rgba(5, 20, 31, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  bottom: 12px;
  font-size: 11px;
  font-weight: 800;
  left: 12px;
  padding: 7px 11px;
  position: absolute;
}

.xyz3d-photo-review-status.is-good { border-color: rgba(84, 233, 154, 0.7); color: #7ff0b0; }
.xyz3d-photo-review-status.is-warning { border-color: rgba(255, 182, 92, 0.75); color: #ffc477; }
.xyz3d-photo-review-status.is-unchecked,
.xyz3d-photo-review-status.is-checking { color: #afe9ff; }

.xyz3d-photo-review-details {
  display: grid;
  gap: 12px;
  max-height: 240px;
  overflow: auto;
  padding: 14px 18px;
}

.xyz3d-photo-review-details > div:first-child {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.xyz3d-photo-review-details > div:first-child span,
.xyz3d-photo-review-quality > div span {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  color: #bfd0dd;
  display: grid;
  font-size: 11px;
  gap: 3px;
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 9px 10px;
}

.xyz3d-photo-review-details span strong,
.xyz3d-photo-review-quality span strong {
  color: #fff;
  font-size: 9px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.xyz3d-photo-review-quality {
  display: grid;
  gap: 9px;
}

.xyz3d-photo-review-quality > div {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.xyz3d-photo-review-quality > div span.is-good { border-color: rgba(84, 233, 154, 0.34); color: #87efb5; }
.xyz3d-photo-review-quality > div span.is-warning { border-color: rgba(255, 182, 92, 0.45); color: #ffc783; }
.xyz3d-photo-review-quality p { color: #afc3d2; font-size: 12px; line-height: 1.45; margin: 0; }
.xyz3d-photo-review-quality p.is-good-message { color: #83e9ad; }
.xyz3d-photo-review-quality ul { color: #ffd094; display: grid; font-size: 12px; gap: 4px; margin: 0; padding-left: 18px; }

.xyz3d-photo-review-dialog > footer {
  align-items: center;
  border-top: 1px solid rgba(84, 214, 255, 0.15);
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr auto auto 1fr;
  padding: 12px 14px;
}

.xyz3d-photo-review-dialog > footer button {
  border-radius: 10px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  min-height: 40px;
  padding: 8px 13px;
}

.xyz3d-photo-review-nav {
  background: rgba(84, 214, 255, 0.08);
  border: 1px solid rgba(84, 214, 255, 0.24);
  color: #9ae6ff;
}

.xyz3d-photo-review-nav:last-child { justify-self: end; }
.xyz3d-photo-review-nav:disabled { cursor: default; opacity: 0.35; }

.xyz3d-photo-review-retake {
  background: rgba(84, 214, 255, 0.16);
  border: 1px solid rgba(84, 214, 255, 0.45);
  color: #d6f7ff;
}

.xyz3d-photo-review-delete {
  background: rgba(255, 92, 107, 0.08);
  border: 1px solid rgba(255, 92, 107, 0.42);
  color: #ffabb3;
}

.xyz3d-photo-review-delete.is-armed {
  background: #a91f31;
  border-color: #ff8491;
  color: #fff;
}

.xyz3d-photo-route-metrics {
  align-items: flex-end;
  display: grid;
  gap: 3px;
  text-align: right;
}

.xyz3d-photo-route-metrics small {
  color: #7decae;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0;
}

.xyz3d-photo-route-metrics small.has-warning { color: #ffc273; }

.xyz3d-route-pin,
.xyz3d-route-number {
  appearance: none;
  cursor: pointer;
  margin: 0;
  padding: 0;
  pointer-events: auto;
}

.xyz3d-route-pin > i {
  align-items: center;
  background: rgba(7, 19, 31, 0.92);
  border-radius: 999px;
  bottom: 2px;
  color: #69efaa;
  display: flex;
  font-size: 7px;
  font-style: normal;
  font-weight: 900;
  height: 12px;
  justify-content: center;
  position: absolute;
  right: 2px;
  transform: rotate(var(--xyz-route-counter-rotation, 0deg));
  width: 12px;
}

.xyz3d-route-pin.has-warning {
  border-color: #ffb45d !important;
  box-shadow: 0 0 0 1px rgba(255, 180, 93, 0.2), 0 0 14px rgba(255, 147, 46, 0.38);
}

.xyz3d-route-pin.has-warning > i { color: #ffc06d; }

.xyz3d-photo-previews .xyz3d-photo-preview-button {
  appearance: none;
  aspect-ratio: 1;
  background: #07131f;
  border: 1px solid var(--xyz-border);
  border-radius: 8px;
  cursor: pointer;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
}

.xyz3d-photo-previews .xyz3d-photo-preview-button:hover,
.xyz3d-photo-previews .xyz3d-photo-preview-button:focus-visible {
  border-color: rgba(84, 214, 255, 0.72);
  outline: none;
}

.xyz3d-photo-preview-button img { display: block; height: 100%; object-fit: cover; width: 100%; }
.xyz3d-photo-preview-button span {
  background: rgba(1, 9, 17, 0.82);
  bottom: 3px;
  color: #e5f7ff;
  font-size: 8px;
  left: 3px;
  max-width: calc(100% - 6px);
  overflow: hidden;
  padding: 3px 4px;
  position: absolute;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.xyz3d-photo-preview-button > i {
  align-items: center;
  background: #b95a17;
  border-radius: 999px;
  color: #fff;
  display: flex;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  height: 17px;
  justify-content: center;
  position: absolute;
  right: 3px;
  top: 3px;
  width: 17px;
}
.xyz3d-photo-preview-button.has-warning { border-color: rgba(255, 178, 89, 0.72); }

@media (max-width: 720px) {
  .xyz3d-photo-review-modal { padding: 0; }
  .xyz3d-photo-review-dialog { border-radius: 0; height: 100dvh; max-height: 100dvh; }
  .xyz3d-photo-review-details > div:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xyz3d-photo-review-dialog > footer { grid-template-columns: 1fr 1fr; }
  .xyz3d-photo-review-nav:last-child { justify-self: stretch; }
  .xyz3d-photo-review-dialog > footer button { width: 100%; }
}

@media (max-height: 700px) {
  .xyz3d-photo-review-stage { min-height: 180px; }
  .xyz3d-photo-review-stage img { max-height: 48dvh; }
  .xyz3d-photo-review-details { max-height: 170px; }
}

/* 0.18.1 visual-viewport centring and panorama-style orbit tracking */
.xyz3d-camera-target,
.xyz3d-camera-target.upper,
.xyz3d-camera-target.lower {
  bottom: auto !important;
  height: var(--xyz3d-camera-frame-height, min(54%, 640px)) !important;
  max-height: calc(var(--xyz3d-camera-visible-height, 100dvh) - 300px) !important;
  top: var(--xyz3d-camera-center-y, 50%) !important;
  transform: translate(-50%, -50%) !important;
}

.xyz3d-camera-orbit {
  background: rgba(2, 10, 18, 0.76);
  border: 1px solid rgba(117, 218, 255, 0.24);
  border-radius: 13px;
  box-sizing: border-box;
  color: #fff;
  left: 50%;
  max-width: min(78vw, 430px);
  padding: 8px 10px 9px;
  pointer-events: none;
  position: absolute;
  top: calc(env(safe-area-inset-top) + 94px);
  transform: translateX(-50%);
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
  width: min(78vw, 430px);
  z-index: 59;
}

.xyz3d-camera-orbit > div:first-child {
  align-items: baseline;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-width: 0;
}

.xyz3d-camera-orbit > div:first-child span {
  color: #8fdff9;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.xyz3d-camera-orbit > div:first-child strong {
  color: #fff;
  font-size: 11px;
  line-height: 1.2;
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xyz3d-camera-orbit-track {
  --orbit-progress: 0%;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  height: 8px;
  margin-top: 6px;
  overflow: hidden;
  position: relative;
}

.xyz3d-camera-orbit-track > i {
  background: linear-gradient(90deg, #4ecfff, #6bffa7);
  border-radius: inherit;
  bottom: 0;
  left: 0;
  position: absolute;
  top: 0;
  transition: width 100ms linear, background 150ms ease;
  width: var(--orbit-progress);
}

.xyz3d-camera-orbit-track > b {
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 0 7px rgba(255,255,255,.65);
  height: 12px;
  position: absolute;
  right: -1px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
}

.xyz3d-camera-orbit > small {
  color: rgba(220, 241, 250, .78);
  display: block;
  font-size: 8px;
  line-height: 1.3;
  margin-top: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xyz3d-camera-orbit.is-good {
  background: rgba(5, 39, 27, .78);
  border-color: rgba(83, 245, 157, .75);
  box-shadow: 0 0 18px rgba(53, 225, 137, .22);
}

.xyz3d-camera-orbit.is-good > div:first-child span,
.xyz3d-camera-orbit.is-good > small { color: #91f5bd; }

.xyz3d-camera-orbit.is-wrong {
  background: rgba(49, 12, 15, .8);
  border-color: rgba(255, 99, 106, .72);
}

.xyz3d-camera-orbit.is-wrong .xyz3d-camera-orbit-track > i {
  background: linear-gradient(90deg, #ff6969, #ffb45e);
}

.xyz3d-camera-orbit.is-disabled { opacity: .68; }

.xyz3d-camera-capture.is-capture-ready .xyz3d-camera-target {
  border-color: rgba(86, 255, 172, .96) !important;
  box-shadow: 0 0 0 1px rgba(86,255,172,.2), inset 0 0 34px rgba(50,230,140,.08), 0 0 22px rgba(50,230,140,.16);
}

.xyz3d-camera-capture.is-route-open:not(.route-show-overlay) .xyz3d-camera-orbit {
  visibility: hidden !important;
}

.xyz3d-camera-capture.is-route-open.route-show-overlay .xyz3d-camera-orbit {
  visibility: visible !important;
  z-index: 57 !important;
}

.xyz3d-camera-settings select {
  background: rgba(2, 10, 18, .86);
  border: 1px solid rgba(118,211,255,.22);
  border-radius: 8px;
  color: #fff;
  min-height: 34px;
  padding: 6px 8px;
}

@media (max-width: 720px) {
  .xyz3d-camera-orbit {
    max-width: calc(100vw - 132px);
    top: calc(env(safe-area-inset-top) + 92px);
    width: calc(100vw - 132px);
  }

  .xyz3d-camera-orbit > div:first-child {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .xyz3d-camera-orbit > div:first-child strong {
    font-size: 10px;
    text-align: left;
    width: 100%;
  }
}

@media (max-height: 760px) {
  .xyz3d-camera-orbit {
    padding-bottom: 7px;
    padding-top: 7px;
    top: calc(env(safe-area-inset-top) + 82px);
  }
  .xyz3d-camera-orbit > small { display: none; }
}

/* 0.18.3 local capture project, reconstruction and true 3D photo planes */
.xyz3d-photo-local-status {
  color: #8fb6ca !important;
  font-size: 8px !important;
  font-weight: 650 !important;
}

.xyz3d-photo-local-status.is-saving { color: #ffd37a !important; }
.xyz3d-photo-local-status.is-saved { color: #78efad !important; }
.xyz3d-photo-local-status.is-error { color: #ff8e9a !important; }

.xyz3d-route-number.is-complete {
  background: rgba(11, 65, 48, 0.94);
  border-color: rgba(103, 244, 172, 0.95);
  box-shadow: 0 0 0 2px rgba(84, 233, 154, 0.18), 0 0 12px rgba(84, 233, 154, 0.38);
  color: #baffd7;
  pointer-events: auto;
}

.xyz3d-route-number.is-complete.has-warning {
  background: rgba(83, 48, 12, 0.96);
  border-color: #ffc06d;
  box-shadow: 0 0 0 2px rgba(255, 180, 93, 0.18), 0 0 13px rgba(255, 147, 46, 0.42);
  color: #ffe0ad;
}

.xyz3d-photo-route-overlay .xyz3d-route-pin.is-perspective {
  backface-visibility: hidden;
  border-radius: 3px;
  min-height: 0;
  min-width: 0;
  transform-origin: 0 0;
  will-change: transform;
  z-index: 7;
}

.xyz3d-photo-route-overlay .xyz3d-route-pin.is-perspective img {
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  width: 100%;
}

.xyz3d-photo-route-overlay .xyz3d-route-pin.is-perspective.is-active {
  border-width: 2px;
  z-index: 8;
}


/* 0.18.3 Local Project Manager and sparse reconstruction */
.xyz3d-local-project,
.xyz3d-reconstruction-panel {
  margin-top: 18px;
  border: 1px solid rgba(122, 160, 220, .24);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(20, 28, 43, .96), rgba(11, 17, 28, .96));
  padding: 18px;
  color: #eaf2ff;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
}
.xyz3d-local-project-head,
.xyz3d-reconstruction-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.xyz3d-local-project-head div,
.xyz3d-reconstruction-head div { display: grid; gap: 4px; }
.xyz3d-local-project-head span,
.xyz3d-reconstruction-head span { color: #75d7ff; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.xyz3d-local-project-head strong,
.xyz3d-reconstruction-head strong { font-size: 18px; }
.xyz3d-local-project-head small,
.xyz3d-reconstruction-head small { max-width: 420px; color: #9eabc1; text-align: right; line-height: 1.45; }
.xyz3d-local-project-metrics,
.xyz3d-reconstruction-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.xyz3d-reconstruction-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.xyz3d-local-project-metrics div,
.xyz3d-reconstruction-metrics div {
  min-width: 0;
  padding: 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(255, 255, 255, .07);
  display: grid;
  gap: 5px;
}
.xyz3d-local-project-metrics span,
.xyz3d-reconstruction-metrics span { color: #93a2ba; font-size: 11px; }
.xyz3d-local-project-metrics strong,
.xyz3d-reconstruction-metrics strong { overflow-wrap: anywhere; font-size: 16px; color: #fff; }
.xyz3d-local-project-settings,
.xyz3d-reconstruction-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 12px 0; }
.xyz3d-local-project-settings label,
.xyz3d-reconstruction-controls label { display: grid; gap: 7px; color: #cbd7e9; font-size: 12px; }
.xyz3d-local-project-settings input[type="number"] { width: 100%; border: 1px solid rgba(255,255,255,.14); background: #101827; color: #fff; border-radius: 10px; padding: 10px 12px; }
.xyz3d-local-project-settings small { color: #8492a8; }
.xyz3d-local-project-check { grid-template-columns: auto 1fr; align-content: center; align-items: center; }
.xyz3d-local-project-check input { width: 18px; height: 18px; }
.xyz3d-local-project-actions,
.xyz3d-reconstruction-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.xyz3d-local-project-actions button,
.xyz3d-reconstruction-actions button {
  border: 1px solid rgba(100, 205, 255, .28);
  background: rgba(54, 131, 178, .15);
  color: #dff5ff;
  border-radius: 10px;
  padding: 10px 13px;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.xyz3d-local-project-actions button:hover,
.xyz3d-reconstruction-actions button:hover { background: rgba(71, 167, 222, .24); }
.xyz3d-local-project-actions button:disabled,
.xyz3d-reconstruction-actions button:disabled { opacity: .42; cursor: not-allowed; }
.xyz3d-local-project-actions .is-danger { border-color: rgba(255, 110, 110, .35); background: rgba(155, 45, 55, .18); color: #ffd5d8; }
.xyz3d-reconstruction-status { margin-top: 13px; padding: 11px 12px; border-radius: 10px; background: rgba(255,255,255,.045); color: #c3d0e2; line-height: 1.45; }
.xyz3d-reconstruction-status[data-state="complete"] { color: #7ff0b4; }
.xyz3d-reconstruction-status[data-state="error"] { color: #ff9b9b; }
.xyz3d-reconstruction-status[data-state="paused"] { color: #ffd27f; }
.xyz3d-reconstruction-progress { margin-top: 10px; }
.xyz3d-reconstruction-progress span { display: block; height: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.08); }
.xyz3d-reconstruction-progress i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #4ac8ff, #67e4a4); transition: width .2s ease; }
.xyz3d-reconstruction-warnings { margin: 12px 0 0; padding-left: 20px; color: #aebbd0; font-size: 12px; line-height: 1.5; }
.xyz3d-photo-route-overlay .xyz3d-route-pin.is-perspective { display: none !important; }
@media (max-width: 780px) {
  .xyz3d-local-project-head,
  .xyz3d-reconstruction-head { display: grid; }
  .xyz3d-local-project-head small,
  .xyz3d-reconstruction-head small { text-align: left; }
  .xyz3d-local-project-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xyz3d-reconstruction-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xyz3d-local-project-settings,
  .xyz3d-reconstruction-controls { grid-template-columns: 1fr; }
}

/* 0.18.5: the photo viewer keeps its own configured height, while the
   Photograph the object content area grows naturally for Local Project and
   Sparse Reconstruction controls. No nested scrollbar is used. */
.xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-stage {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.xyz3d-photo-service-shell .xyz3d-upload-view {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.xyz3d-photo-service-shell .xyz3d-photo-upload {
  overflow: visible !important;
}

@media (min-width: 1181px) {
  .xyz3d-photo-service-shell .xyz3d-photo-guide {
    height: var(--xyz-photo-viewer-height-desktop, 690px) !important;
    min-height: var(--xyz-photo-viewer-height-desktop, 690px) !important;
  }

  .xyz3d-photo-service-shell .xyz3d-photo-workspace {
    min-height: calc(var(--xyz-photo-viewer-height-desktop, 690px) + 80px);
  }
}

/* 0.18.8 capture modes, Dome Full Object Pass A/B workflow */
.xyz3d-capture-mode-panel {
  margin-bottom: 18px;
  border: 1px solid rgba(84, 214, 255, .2);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(8, 25, 40, .96), rgba(7, 17, 29, .96));
  padding: 17px;
  color: #eaf7ff;
}

.xyz3d-capture-mode-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.xyz3d-capture-mode-head > div {
  display: grid;
  gap: 4px;
}

.xyz3d-capture-mode-head span {
  color: #55d6ff;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .13em;
}

.xyz3d-capture-mode-head strong {
  font-size: 17px;
  line-height: 1.3;
}

.xyz3d-capture-mode-head small {
  max-width: 350px;
  color: #90a9bb;
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

.xyz3d-capture-mode-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.xyz3d-capture-mode-grid button {
  min-width: 0;
  min-height: 94px;
  display: grid;
  align-content: start;
  gap: 5px;
  padding: 13px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 13px;
  background: rgba(255,255,255,.035);
  color: #dcebf5;
  text-align: left;
  cursor: pointer;
}

.xyz3d-capture-mode-grid button strong {
  font-size: 14px;
  color: #fff;
}

.xyz3d-capture-mode-grid button span {
  min-height: 30px;
  color: #94a9b9;
  font-size: 11px;
  line-height: 1.35;
}

.xyz3d-capture-mode-grid button small {
  color: #6f8a9d;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .1em;
}

.xyz3d-capture-mode-grid button.is-active {
  border-color: rgba(84, 214, 255, .72);
  background: rgba(33, 145, 202, .16);
  box-shadow: inset 0 0 0 1px rgba(84,214,255,.12), 0 0 22px rgba(52,181,236,.09);
}

.xyz3d-capture-mode-grid button.is-active small {
  color: #75e6ff;
}

.xyz3d-capture-mode-grid button[aria-disabled="true"] {
  opacity: .62;
  cursor: not-allowed;
}

.xyz3d-around-route-options,
.xyz3d-dome-route-options {
  display: grid;
  grid-template-columns: minmax(230px, .75fr) minmax(280px, 1.25fr);
  gap: 12px;
  margin-top: 13px;
  padding-top: 13px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.xyz3d-around-route-options[hidden],
.xyz3d-dome-route-options[hidden] {
  display: none !important;
}

.xyz3d-around-route-options label,
.xyz3d-dome-route-options label,
.xyz3d-route-preset-summary {
  display: grid;
  gap: 6px;
}

.xyz3d-around-route-options label > span,
.xyz3d-dome-route-options label > span {
  color: #a8bdcb;
  font-size: 11px;
  font-weight: 750;
}

.xyz3d-around-route-options select,
.xyz3d-dome-route-options select {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(84,214,255,.22);
  border-radius: 10px;
  background: #071522;
  color: #fff;
  padding: 9px 11px;
}

.xyz3d-route-preset-summary {
  align-content: center;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 11px;
  background: rgba(255,255,255,.025);
}

.xyz3d-route-preset-summary strong {
  font-size: 13px;
}

.xyz3d-route-preset-summary span {
  color: #90a9bb;
  font-size: 11px;
  line-height: 1.4;
}

.xyz3d-route-preset-warning {
  grid-column: 1 / -1;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(255, 189, 91, .28);
  border-radius: 10px;
  background: rgba(145, 87, 14, .14);
  color: #ffdca1;
  font-size: 11px;
  line-height: 1.45;
}

.xyz3d-route-preset-warning[hidden] {
  display: none !important;
}

.xyz3d-camera-rings {
  position: absolute;
  inset: 0;
}

.xyz3d-camera-ring.is-dynamic {
  top: var(--route-ring-top, 45%);
  transform: translate(-50%, -50%) scale(var(--route-ring-scale, 1));
}

.xyz3d-camera-ring.is-dynamic::after {
  width: 300px;
}

.xyz3d-camera-ring.is-dynamic button {
  --photo-radius: var(--route-ring-radius, 150px);
}

@media (max-width: 900px) {
  .xyz3d-capture-mode-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xyz3d-around-route-options,
.xyz3d-dome-route-options {
    grid-template-columns: 1fr;
  }
  .xyz3d-route-preset-warning {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .xyz3d-capture-mode-head {
    display: grid;
  }
  .xyz3d-capture-mode-head small {
    text-align: left;
  }
  .xyz3d-capture-mode-grid {
    grid-template-columns: 1fr;
  }
  .xyz3d-capture-mode-grid button {
    min-height: 78px;
  }
}


/* 0.18.8 Dome Full Object two-pass workflow */
.xyz3d-dome-pass-panel {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(104, 200, 255, 0.28);
  border-radius: 14px;
  background: rgba(6, 17, 31, 0.72);
}
.xyz3d-dome-pass-panel[hidden] { display: none !important; }
.xyz3d-dome-pass-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.xyz3d-dome-pass-head > div { display: grid; gap: 3px; }
.xyz3d-dome-pass-head span { font-size: 10px; letter-spacing: .13em; color: #78cfff; }
.xyz3d-dome-pass-head strong { font-size: 15px; color: #fff; }
.xyz3d-dome-pass-head small {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(84, 233, 154, .12);
  color: #8ff0bd;
  font-weight: 700;
}
.xyz3d-dome-pass-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.xyz3d-dome-pass-grid button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 11px;
  background: rgba(255,255,255,.035);
  color: #dce9f7;
  text-align: left;
}
.xyz3d-dome-pass-grid button strong { color: #fff; }
.xyz3d-dome-pass-grid button span { font-size: 12px; color: #9bb0c7; }
.xyz3d-dome-pass-grid button small { font-size: 11px; color: #75d8ff; }
.xyz3d-dome-pass-grid button.is-active { border-color: #57c8ff; box-shadow: 0 0 0 1px rgba(87,200,255,.25) inset; background: rgba(87,200,255,.10); }
.xyz3d-dome-pass-grid button.is-complete small { color: #70e7a8; }
.xyz3d-dome-pass-grid button:disabled { opacity: .45; cursor: not-allowed; }
.xyz3d-dome-flip-instruction {
  display: grid;
  gap: 9px;
  padding: 13px;
  border: 1px solid rgba(255, 202, 99, .38);
  border-radius: 12px;
  background: rgba(255, 190, 70, .08);
}
.xyz3d-dome-flip-instruction[hidden] { display: none !important; }
.xyz3d-dome-flip-instruction strong { color: #ffd27a; }
.xyz3d-dome-flip-instruction ol { margin: 0; padding-left: 20px; color: #d8e2ed; font-size: 12px; line-height: 1.55; }
.xyz3d-dome-flip-instruction button {
  justify-self: start;
  padding: 9px 13px;
  border: 0;
  border-radius: 9px;
  background: #66d69b;
  color: #07150e;
  font-weight: 800;
}
.xyz3d-dome-pass-note { margin: 0; color: #899fb5; font-size: 11px; line-height: 1.45; }
@media (max-width: 680px) {
  .xyz3d-dome-pass-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .xyz3d-dome-pass-grid { grid-template-columns: 1fr; }
}

/* 0.18.11 Dome Full Object manual 3D control-point alignment */
.xyz3d-manual-alignment {
  margin-top: 16px;
  padding: 15px;
  border: 1px solid rgba(98, 212, 255, .28);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(15, 37, 55, .9), rgba(12, 23, 38, .96));
}
.xyz3d-manual-alignment[hidden] { display: none !important; }
.xyz3d-manual-alignment-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 10px;
}
.xyz3d-manual-alignment-head div { display: grid; gap: 4px; }
.xyz3d-manual-alignment-head span {
  color: #72ddff;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .13em;
}
.xyz3d-manual-alignment-head strong { color: #f1f7ff; font-size: 15px; }
.xyz3d-manual-alignment-head small { color: #a8b8cc; text-align: right; line-height: 1.4; }
.xyz3d-manual-alignment > p {
  margin: 0 0 12px;
  color: #b8c5d8;
  font-size: 12px;
  line-height: 1.55;
}
.xyz3d-manual-alignment-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 12px;
}
.xyz3d-manual-alignment-metrics div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  background: rgba(255,255,255,.045);
}
.xyz3d-manual-alignment-metrics span { color: #8fa1ba; font-size: 10px; }
.xyz3d-manual-alignment-metrics strong { color: #fff; font-size: 13px; overflow-wrap: anywhere; }
.xyz3d-manual-pair-list {
  display: grid;
  gap: 7px;
  max-height: 190px;
  margin: 0 0 12px;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.xyz3d-manual-pair-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.045);
  color: #c9d6e7;
  font-size: 11px;
}
.xyz3d-manual-pair-list li.is-pending { border: 1px dashed rgba(255, 185, 72, .5); color: #ffe2aa; }
.xyz3d-manual-pair-list li span { color: #7fdfff; font-weight: 800; }
.xyz3d-manual-pair-list li strong { overflow-wrap: anywhere; }
.xyz3d-manual-pair-list li small { color: #91a1b8; text-align: right; }
.xyz3d-manual-alignment-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.xyz3d-manual-alignment-actions button {
  border: 1px solid rgba(100, 205, 255, .28);
  background: rgba(54, 131, 178, .16);
  color: #e3f7ff;
  border-radius: 10px;
  padding: 9px 11px;
  font: inherit;
  font-size: 11px;
  font-weight: 780;
  cursor: pointer;
}
.xyz3d-manual-alignment-actions button:hover { background: rgba(71, 167, 222, .26); }
.xyz3d-manual-alignment-actions button:disabled { opacity: .4; cursor: not-allowed; }
.xyz3d-manual-alignment-note {
  display: block;
  margin-top: 10px;
  color: #8798af;
  font-size: 10px;
  line-height: 1.5;
}
.xyz3d-photo-service-shell.is-manual-aligning .xyz3d-photo-route-viewer canvas { touch-action: none; cursor: crosshair; }
@media (max-width: 780px) {
  .xyz3d-manual-alignment-head { display: grid; }
  .xyz3d-manual-alignment-head small { text-align: left; }
  .xyz3d-manual-alignment-metrics { grid-template-columns: 1fr; }
  .xyz3d-manual-pair-list li { grid-template-columns: 1fr; }
  .xyz3d-manual-pair-list li small { text-align: left; }
}

/* 0.18.11 Dome walk-around / turntable capture foundation */
.xyz3d-dome-motion-options {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(84,214,255,.16);
  border-radius: 12px;
  background: rgba(4,20,33,.68);
}
.xyz3d-dome-motion-options > span {
  color: #a8bdcb;
  font-size: 11px;
  font-weight: 800;
}
.xyz3d-dome-motion-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.xyz3d-dome-motion-grid button {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 11px;
  background: rgba(255,255,255,.03);
  color: #fff;
  text-align: left;
  cursor: pointer;
}
.xyz3d-dome-motion-grid button strong { font-size: 13px; }
.xyz3d-dome-motion-grid button small { color: #91a7b8; font-size: 10px; line-height: 1.4; }
.xyz3d-dome-motion-grid button.is-active {
  border-color: rgba(84,214,255,.7);
  background: rgba(33,145,202,.14);
  box-shadow: inset 0 0 0 1px rgba(84,214,255,.12);
}
.xyz3d-dome-marker-setting {
  display: grid;
  grid-template-columns: minmax(150px,.45fr) minmax(220px,1fr);
  align-items: center;
  gap: 10px;
}
.xyz3d-dome-marker-setting select:disabled { opacity: .5; cursor: not-allowed; }
.xyz3d-dome-motion-note {
  margin: 0;
  color: #8fa8bb;
  font-size: 11px;
  line-height: 1.5;
}
@media (max-width: 720px) {
  .xyz3d-dome-motion-grid { grid-template-columns: 1fr; }
  .xyz3d-dome-marker-setting { grid-template-columns: 1fr; }
}

/* 0.18.16 exact-size vector PDF print workflow, tracker status and capture overlays */
.xyz3d-turntable-tracking-options {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(160px, .7fr) minmax(240px, 1.3fr) auto;
  align-items: end;
  gap: 10px;
  padding: 11px;
  border: 1px solid rgba(98, 209, 255, .2);
  border-radius: 12px;
  background: rgba(6, 20, 34, .46);
}
.xyz3d-turntable-tracking-options[hidden] { display: none !important; }
.xyz3d-turntable-tracking-options label { display: grid; gap: 5px; margin: 0; }
.xyz3d-turntable-tracking-options label > span { color: #a9c7dc; font-size: 10px; font-weight: 750; }
.xyz3d-turntable-tracking-options label:first-child { grid-template-columns: 1fr auto auto; align-items: center; }
.xyz3d-turntable-tracking-options label:first-child > span { grid-column: 1 / -1; }
.xyz3d-turntable-tracking-options input[type="number"] {
  min-width: 0;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid rgba(107, 216, 255, .23);
  border-radius: 9px;
  background: #020a12;
  color: #fff;
}
.xyz3d-turntable-tracking-options small { color: #829bb0; font-size: 10px; }
.xyz3d-turntable-lock-check {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 38px;
}
.xyz3d-turntable-lock-check span { font-size: 11px !important; color: #d6e6f3 !important; }
.xyz3d-turntable-tracking-options button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(98, 209, 255, .36);
  border-radius: 9px;
  background: rgba(54, 168, 224, .13);
  color: #9ee7ff;
  font-weight: 800;
  cursor: pointer;
}
.xyz3d-turntable-tracking-options button:hover { background: rgba(54, 168, 224, .22); color: #fff; }

.xyz3d-calibration-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 48px 16px 0;
}
.xyz3d-calibration-tabs button {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(112, 214, 255, .22);
  border-radius: 9px;
  background: rgba(255,255,255,.04);
  color: #a8bed1;
  font-weight: 800;
  cursor: pointer;
}
.xyz3d-calibration-tabs button.is-active {
  border-color: #66d9ff;
  background: rgba(70, 192, 241, .16);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(102,217,255,.18) inset;
}
.xyz3d-calibration-modal[data-card-type="turntable"] .xyz3d-calibration-preview img {
  width: min(68vw, 360px);
  height: min(68vw, 360px);
  object-fit: contain;
}
.xyz3d-turntable-print-note {
  display: grid;
  gap: 4px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 205, 104, .28);
  border-radius: 10px;
  background: rgba(255, 188, 74, .07);
}
.xyz3d-turntable-print-note[hidden] { display: none !important; }
.xyz3d-turntable-print-note strong { color: #ffd990; font-size: 12px; }
.xyz3d-turntable-print-note span { color: #bdcad6; font-size: 11px; line-height: 1.45; }
.xyz3d-calibration-dialog .xyz3d-calibration-print-button,
.xyz3d-calibration-dialog .xyz3d-calibration-print-button:visited,
.xyz3d-calibration-dialog .xyz3d-calibration-print-button:hover,
.xyz3d-calibration-dialog .xyz3d-calibration-print-button:focus {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: linear-gradient(135deg, #55dafb, #377dff) !important;
  border: 0 !important;
  color: #02111d !important;
  -webkit-text-fill-color: #02111d !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-shadow: none !important;
  cursor: pointer !important;
}

.xyz3d-camera-overlay-settings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 9px;
  margin: 3px 0;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
}
.xyz3d-camera-overlay-settings legend {
  padding: 0 5px;
  color: #8fcfe9;
  font-size: 10px;
  font-weight: 850;
}
.xyz3d-camera-overlay-settings label { align-items: center !important; gap: 7px !important; font-size: 11px !important; }

/* The instruction has its own visibility switch and always sits below the actual capture frame. */
.xyz3d-camera-guidance {
  top: var(--xyz3d-camera-instruction-top, calc(50% + 250px)) !important;
  bottom: auto !important;
  left: 18px !important;
  right: 18px !important;
  transform: none !important;
  z-index: 56 !important;
}
.xyz3d-camera-guidance strong {
  margin: 0 auto !important;
  max-height: 86px;
  overflow: auto;
}
.xyz3d-camera-guidance[hidden],
.xyz3d-camera-orbit[hidden],
.xyz3d-turntable-marker-lock[hidden],
.xyz3d-turntable-marker-lock.is-user-hidden { display: none !important; }

.xyz3d-camera-capture.hide-capture-frame .xyz3d-camera-target {
  border-color: transparent !important;
  box-shadow: none !important;
}
.xyz3d-camera-capture.hide-capture-frame .xyz3d-camera-target > i,
.xyz3d-camera-capture.hide-capture-frame .xyz3d-camera-target .corner { display: none !important; }
.xyz3d-camera-capture.hide-horizontal-level .xyz3d-level-horizontal { display: none !important; }
.xyz3d-camera-capture.hide-vertical-level .xyz3d-level-vertical { display: none !important; }

.xyz3d-turntable-marker-lock {
  position: absolute;
  top: calc(env(safe-area-inset-top) + 164px);
  left: 50%;
  transform: translateX(-50%);
  width: min(78vw, 430px);
  padding: 8px 10px;
  border: 1px solid rgba(255, 191, 83, .45);
  border-radius: 12px;
  background: rgba(38, 25, 7, .82);
  color: #fff;
  pointer-events: none;
  z-index: 59;
}
.xyz3d-turntable-marker-lock > div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.xyz3d-turntable-marker-lock span { color: #ffd27c; font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.xyz3d-turntable-marker-lock strong { font-size: 10px; text-align: right; }
.xyz3d-turntable-marker-lock small { display: block; margin-top: 4px; color: #d2c2a7; font-size: 8px; }
.xyz3d-turntable-marker-lock.is-locked {
  border-color: rgba(83, 245, 157, .78);
  background: rgba(5, 43, 28, .86);
  box-shadow: 0 0 18px rgba(53,225,137,.2);
}
.xyz3d-turntable-marker-lock.is-locked span,
.xyz3d-turntable-marker-lock.is-locked small { color: #91f5bd; }

@media (max-width: 760px) {
  .xyz3d-turntable-tracking-options { grid-template-columns: 1fr; }
  .xyz3d-calibration-tabs { margin-right: 42px; }
  .xyz3d-camera-overlay-settings { grid-template-columns: 1fr 1fr; }
  .xyz3d-turntable-marker-lock { top: calc(env(safe-area-inset-top) + 158px); width: calc(100vw - 36px); }
}

.xyz3d-vector-pdf-note {
  display: block;
  color: #9fc1d8;
  font-size: 12px;
  line-height: 1.45;
}
.xyz3d-calibration-pdf-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}
.xyz3d-calibration-download-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid rgba(68, 194, 255, .5);
  border-radius: 10px;
  background: rgba(16, 45, 67, .9);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none !important;
}
.xyz3d-calibration-download-button:hover,
.xyz3d-calibration-download-button:focus {
  background: rgba(35, 112, 159, .95);
  color: #fff !important;
}
.xyz3d-calibration-download-button[aria-disabled="true"] {
  opacity: .45;
  pointer-events: none;
}
@media (max-width: 620px) {
  .xyz3d-calibration-pdf-actions { grid-template-columns: 1fr; }
}

/* 0.18.16 single-disc Hybrid ArUco tracker */
.xyz3d-turntable-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.xyz3d-turntable-card-actions > button {
  flex: 1 1 220px;
}
.xyz3d-marker-zero-camera {
  margin-top: 7px;
  width: 100%;
  min-height: 30px;
  border: 1px solid rgba(145,245,189,.52);
  border-radius: 8px;
  background: rgba(4,30,22,.88);
  color: #dfffee;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .02em;
}
.xyz3d-marker-zero-camera:disabled {
  opacity: .45;
  cursor: not-allowed;
}


/* 0.18.20 global photo controls, route-display semantics and under-frame ArUco tracker */
.xyz3d-camera-route-toggle {
  width: 60px !important;
  padding: 0 5px !important;
  font-size: 10px !important;
  line-height: 1 !important;
}
.xyz3d-camera-capture.is-aruco-tracking .xyz3d-camera-orbit { display: none !important; }
.xyz3d-turntable-marker-lock {
  top: var(--xyz3d-camera-tracker-top, calc(50% + 250px)) !important;
  bottom: auto !important;
  width: min(88vw, 480px) !important;
  max-height: 88px;
  box-sizing: border-box;
  overflow: hidden;
  padding: 8px 11px 9px !important;
  transform: translateX(-50%) !important;
  pointer-events: auto !important;
  z-index: 57 !important;
}
.xyz3d-turntable-marker-lock > div { align-items: center; }
.xyz3d-turntable-marker-lock strong { font-size: 10px; line-height: 1.25; }
.xyz3d-turntable-marker-lock small { font-size: 8px; line-height: 1.3; white-space: normal; }
.xyz3d-marker-zero-camera {
  margin-top: 5px !important;
  min-height: 27px !important;
  pointer-events: auto !important;
}
.xyz3d-camera-guidance { z-index: 56 !important; }
.xyz3d-route-button-settings legend,
.xyz3d-camera-overlay-settings legend { text-transform: none; }
@media (max-height: 760px) {
  .xyz3d-turntable-marker-lock { max-height: 74px; padding: 6px 9px !important; }
  .xyz3d-turntable-marker-lock small { display: none; }
  .xyz3d-marker-zero-camera { min-height: 24px !important; margin-top: 3px !important; }
}


/* 0.18.43 reconstruction diagnostics: six compact pipeline counters. */
.xyz3d-reconstruction-metrics strong { font-variant-numeric: tabular-nums; }


/* 0.18.43 metric ArUco camera guidance. */
.xyz3d-metric-perimeter{position:absolute;inset:max(3px,env(safe-area-inset-top,3px)) max(3px,env(safe-area-inset-right,3px)) max(3px,env(safe-area-inset-bottom,3px)) max(3px,env(safe-area-inset-left,3px));z-index:24;pointer-events:none;border:3px solid rgba(255,70,70,.72);border-radius:22px;box-shadow:inset 0 0 22px rgba(255,50,50,.18),0 0 16px rgba(255,50,50,.35);transition:border-color .18s,box-shadow .18s}
.xyz3d-metric-perimeter.is-yellow{border-color:#ffc83d;box-shadow:inset 0 0 24px rgba(255,190,40,.16),0 0 18px rgba(255,190,40,.4)}
.xyz3d-metric-perimeter.is-green{border-color:#39f28b;box-shadow:inset 0 0 28px rgba(35,240,125,.18),0 0 22px rgba(35,240,125,.48)}
.xyz3d-metric-perimeter i{position:absolute;background:currentColor;opacity:.95}.xyz3d-metric-perimeter .top,.xyz3d-metric-perimeter .bottom{left:8%;right:8%;height:2px}.xyz3d-metric-perimeter .top{top:0}.xyz3d-metric-perimeter .bottom{bottom:0}.xyz3d-metric-perimeter .left,.xyz3d-metric-perimeter .right{top:8%;bottom:8%;width:2px}.xyz3d-metric-perimeter .left{left:0}.xyz3d-metric-perimeter .right{right:0}
.xyz3d-object-scan-target{position:absolute;z-index:23;pointer-events:none;border:2px dashed rgba(255,203,64,.9);border-radius:50%;transform:translateZ(0);box-shadow:0 0 18px rgba(255,195,50,.28),inset 0 0 18px rgba(255,195,50,.1)}
.xyz3d-object-scan-target.is-good{border-color:#41f197;box-shadow:0 0 18px rgba(45,240,140,.42),inset 0 0 18px rgba(45,240,140,.12)}
.xyz3d-object-scan-target span{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);border:1px solid currentColor;border-radius:50%}.xyz3d-object-scan-target span:before,.xyz3d-object-scan-target span:after{content:"";position:absolute;background:currentColor}.xyz3d-object-scan-target span:before{width:36px;height:1px;left:-5px;top:12px}.xyz3d-object-scan-target span:after{width:1px;height:36px;left:12px;top:-5px}
.xyz3d-object-scan-target strong{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);white-space:nowrap;padding:3px 8px;border-radius:999px;background:rgba(5,12,18,.78);font-size:10px;letter-spacing:.08em;color:#fff}
.xyz3d-metric-pose-readout{margin-top:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(0,0,0,.2);font-size:11px;color:#d9efff}
.xyz3d-turntable-metric-tolerances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.xyz3d-turntable-metric-tolerances label{display:grid;grid-template-columns:1fr auto;gap:3px}.xyz3d-turntable-metric-tolerances label span{grid-column:1/-1}.xyz3d-turntable-metric-tolerances input{min-width:0;width:100%}
@media(max-width:680px){.xyz3d-turntable-metric-tolerances{grid-template-columns:1fr}.xyz3d-metric-perimeter{border-radius:14px}.xyz3d-metric-pose-readout{font-size:10px}}

.xyz3d-marker-camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:6px}.xyz3d-marker-camera-actions button{min-height:36px}.xyz3d-marker-pose-reset{border:1px solid rgba(255,200,75,.45);background:rgba(80,50,5,.25);color:#ffe7a2;border-radius:9px;font-weight:700}
.xyz3d-turntable-board-size{display:grid;grid-template-columns:1fr;gap:4px}.xyz3d-turntable-board-size select{width:100%}


/* 0.18.43 consolidated turntable guidance. */
.xyz3d-turntable-card-actions{display:block}
.xyz3d-turntable-card-actions>button{width:auto;min-width:220px;max-width:100%;display:inline-flex;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(84,214,255,.28);background:rgba(8,26,42,.92);color:#d9f4ff;font-weight:800;border-radius:10px;padding:12px 14px;min-height:46px}
.xyz3d-turntable-card-actions>button:hover,.xyz3d-turntable-card-actions>button:focus{background:rgba(14,40,62,.98)}
.xyz3d-turntable-marker-lock{top:auto!important;bottom:calc(max(118px,env(safe-area-inset-bottom) + 106px))!important;width:min(92vw,520px)!important;max-height:none!important;overflow:visible!important;padding:8px 12px 9px!important;z-index:58!important}
.xyz3d-turntable-marker-lock>div{align-items:flex-start;gap:10px}
.xyz3d-turntable-marker-lock strong{font-size:11px;line-height:1.3}
.xyz3d-turntable-marker-lock small{font-size:9px;line-height:1.45;display:block!important}
.xyz3d-turntable-marker-lock .xyz3d-marker-camera-actions{display:none!important}
.xyz3d-camera-capture.is-aruco-tracking .xyz3d-camera-guidance{top:auto!important;bottom:calc(max(54px,env(safe-area-inset-bottom) + 42px))!important}
.xyz3d-metric-pose-readout{line-height:1.4}
.xyz3d-object-scan-target strong{display:none}
@media(max-height:760px){.xyz3d-turntable-marker-lock{bottom:calc(max(108px,env(safe-area-inset-bottom) + 96px))!important}.xyz3d-camera-capture.is-aruco-tracking .xyz3d-camera-guidance{bottom:calc(max(48px,env(safe-area-inset-bottom) + 36px))!important}}

/* 0.18.43 consolidated customer order options. */
.xyz3d-customer-options-section{display:block;visibility:visible;opacity:1;background:linear-gradient(145deg,rgba(19,55,77,.48),rgba(9,28,43,.42));border:1px solid rgba(84,214,255,.22);border-radius:12px;margin-top:14px;padding:14px}
.xyz3d-customer-options-grid{display:grid;gap:14px}
.xyz3d-priority-control{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(180px,1fr) minmax(180px,260px);background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:11px 12px}
.xyz3d-priority-control>span{display:grid;gap:3px}.xyz3d-priority-control>span small{color:var(--xyz-muted);font-size:11px}.xyz3d-priority-control .xyz3d-field{margin:0}.xyz3d-priority-control select{min-height:44px;font-weight:800}
.xyz3d-postprocess-card{background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:11px 12px}
.xyz3d-postprocess-grid{display:grid;gap:9px;grid-template-columns:1fr}
.xyz3d-postprocess-option{align-items:center;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:10px;box-sizing:border-box;min-height:58px;padding:9px 10px}
.xyz3d-postprocess-option span{display:grid;gap:2px;font-weight:750}.xyz3d-postprocess-option small{color:var(--xyz-muted);font-size:10px}.xyz3d-postprocess-card>small{color:var(--xyz-muted);display:block;font-size:10px;line-height:1.45;margin-top:9px}
.xyz3d-support-explainer{display:none!important}
.xyz3d-viewer-toolbar button[aria-pressed="false"]{background:rgba(3,16,29,.72);border-color:rgba(125,202,235,.22);color:#c7deea;box-shadow:none}
@media(max-width:680px){.xyz3d-customer-options-section{padding:11px}.xyz3d-priority-control{grid-template-columns:1fr}}

/* 0.18.87 Silicone Mould tooling controls */
.xyz3d-mould-tooling-card{margin-top:16px;padding:13px;border:1px solid rgba(84,214,255,.16);border-radius:11px;background:rgba(84,214,255,.04)}
.xyz3d-mould-pick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.xyz3d-mould-pick-actions button{min-height:39px;border:1px solid rgba(84,214,255,.25);border-radius:9px;background:rgba(5,20,34,.86);color:#dff7ff;font-weight:700;padding:8px 10px}
.xyz3d-mould-pick-actions button:hover,.xyz3d-mould-pick-actions button:focus{background:rgba(36,126,170,.22);border-color:rgba(84,214,255,.48)}
.xyz3d-mould-pick-actions button.active{background:rgba(255,52,52,.16);border-color:rgba(255,80,80,.78);box-shadow:0 0 0 1px rgba(255,62,62,.16) inset}
.xyz3d-mould-pick-status{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;color:#8fb4c8;font-size:11px}
.xyz3d-mould-range-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.xyz3d-selecting-face{cursor:crosshair!important}
@media(max-width:760px){.xyz3d-mould-pick-actions,.xyz3d-mould-range-grid{grid-template-columns:1fr}}

/* 0.18.96.8 project request layer */
.xyz3d-mould-request-section .xyz3d-subsection-title{margin-top:18px}
.xyz3d-mould-disclaimer{display:grid;gap:6px}
.xyz3d-mould-disclaimer b{color:#eaf8ff;font-size:13px}
.xyz3d-mould-disclaimer span{color:#9fc0d4;line-height:1.45}
.xyz3d-project-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.xyz3d-project-upload-card{background:#0a1929;border:1px solid #24445a;border-radius:11px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:5px;min-height:134px;padding:12px;color:#dff6ff}
.xyz3d-project-upload-card:hover{border-color:#43c8f3}
.xyz3d-project-upload-card>b{font-size:13px}.xyz3d-project-upload-card>span{color:#83a9bf;font-size:11px;line-height:1.35}.xyz3d-project-upload-card>input{display:none}
.xyz3d-project-upload-card>button,.xyz3d-project-upload-card>em{background:#10283a;border:1px solid #2b5872;border-radius:8px;color:#cceeff;font-style:normal;font-weight:700;margin-top:4px;padding:8px 10px;text-align:center}
.xyz3d-project-file-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.xyz3d-project-file-chip{background:#102536;border:1px solid #294b60;border-radius:7px;display:flex;flex-direction:column;max-width:100%;padding:5px 7px}.xyz3d-project-file-chip b{font-size:10px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xyz3d-project-file-chip small,.xyz3d-project-file-empty{color:#7497aa;font-size:9px}
.xyz3d-project-file-actions{align-items:center;display:flex;justify-content:space-between;gap:10px;margin:8px 0 16px;color:#87aabd;font-size:10px}.xyz3d-project-file-actions button{background:transparent;border:0;color:#55c8ee;cursor:pointer;font-size:10px;padding:0}
.xyz3d-project-brief,.xyz3d-project-contact-details{margin-top:12px}
.xyz3d-project-needs label{min-height:46px}
.xyz3d-help-inline{display:inline-flex;align-items:center}.xyz3d-help-dot{appearance:none;background:rgba(19,46,66,.95);border:1px solid rgba(84,214,255,.26);border-radius:999px;color:#cfeeff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;height:18px;line-height:1;margin-left:6px;padding:0;vertical-align:middle;width:18px}.xyz3d-help-dot:hover,.xyz3d-help-dot:focus-visible{border-color:rgba(84,214,255,.62);background:rgba(34,82,117,.96);outline:none}.xyz3d-help-panel{box-sizing:border-box;display:block;width:100%;margin-top:7px;padding:9px 10px;border-radius:9px;background:rgba(8,21,33,.88);border:1px solid rgba(84,214,255,.22);color:#bcdbea;font-size:11px;line-height:1.45;white-space:normal}.xyz3d-help-panel[hidden]{display:none!important}
@media(max-width:760px){.xyz3d-project-upload-grid{grid-template-columns:1fr}}

/* 0.18.96.28 — Engineering & Product Development */
.xyz3d-engineering-section .xyz3d-engineering-intro{display:flex;flex-direction:column;gap:5px}
.xyz3d-engineering-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 16px}
.xyz3d-engineering-service-grid button{appearance:none;border:1px solid rgba(91,156,194,.28);background:rgba(7,23,38,.36);border-radius:10px;color:inherit;cursor:pointer;padding:13px 14px;text-align:left;min-height:76px;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.xyz3d-engineering-service-grid button:last-child{grid-column:1/-1}
.xyz3d-engineering-service-grid button:hover{border-color:rgba(80,211,255,.55);transform:translateY(-1px)}
.xyz3d-engineering-service-grid button.active{border-color:#48cfff;background:rgba(31,112,151,.23);box-shadow:inset 0 0 0 1px rgba(72,207,255,.08)}
.xyz3d-engineering-service-grid b{display:block;font-size:13px;margin-bottom:4px}
.xyz3d-engineering-service-grid small{display:block;line-height:1.35;color:#8fb4cc}
.xyz3d-engineering-physical[hidden],.xyz3d-engineering-custom-accuracy[hidden]{display:none!important}
.xyz3d-engineering-pipeline{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:15px 0;padding:12px;border:1px solid rgba(72,207,255,.18);border-radius:10px;background:rgba(7,23,38,.28)}
.xyz3d-engineering-pipeline span{font-size:10px;font-weight:800;letter-spacing:.08em;color:#c9efff}
.xyz3d-engineering-pipeline i{font-style:normal;color:#47cdfb;opacity:.72}
.xyz3d-engineering-section .xyz3d-help-dot{appearance:none;width:18px;height:18px;border-radius:50%;border:1px solid rgba(74,203,250,.35);background:rgba(18,59,84,.75);color:#bfefff;font-size:10px;font-weight:800;line-height:16px;padding:0;cursor:pointer;vertical-align:middle;margin-left:5px}
.xyz3d-engineering-section .xyz3d-help-panel{display:block;margin-top:7px;padding:9px 10px;border-radius:9px;border:1px solid rgba(72,207,255,.18);background:rgba(8,25,39,.8);color:#a9cce0;font-size:11px;line-height:1.45}
.xyz3d-engineering-section .xyz3d-help-panel[hidden]{display:none!important}
.xyz3d-engineering-estimate-note{margin-top:14px;display:flex;flex-direction:column;gap:4px}
@media(max-width:760px){.xyz3d-engineering-service-grid{grid-template-columns:1fr}.xyz3d-engineering-service-grid button:last-child{grid-column:auto}.xyz3d-engineering-pipeline{justify-content:flex-start}}


/* 0.18.96.28 — Engineering service visual explainers */
.xyz3d-upload-view.xyz3d-engineering-upload-active{align-items:stretch;justify-content:flex-start;padding:0;overflow:hidden;flex-direction:column}
.xyz3d-engineering-upload-active>.xyz3d-scan-start{align-self:center;margin:0 24px 22px;flex:0 0 auto;min-width:280px}
.xyz3d-engineering-overview{box-sizing:border-box;flex:1 1 auto;min-height:0;overflow:auto;padding:24px 26px 18px;scrollbar-width:thin;scrollbar-color:rgba(70,190,230,.35) transparent}
.xyz3d-engineering-overview-inner{max-width:900px;margin:0 auto;padding-bottom:4px}
.xyz3d-engineering-overview-head{display:grid;gap:7px;margin-bottom:14px}
.xyz3d-engineering-overview-kicker{color:#55d5ff;font-size:10px;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.xyz3d-engineering-overview-head h3{color:#f4fbff;font-size:25px;line-height:1.08;letter-spacing:-.025em;margin:0}
.xyz3d-engineering-overview-head p{color:#97bdd2;font-size:13px;line-height:1.58;margin:0;max-width:780px}
.xyz3d-engineering-visual{background:radial-gradient(circle at 50% 30%,rgba(60,196,240,.12),transparent 62%),rgba(5,18,30,.48);border:1px solid rgba(73,189,228,.18);border-radius:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);height:245px;overflow:hidden;margin:15px 0}
.xyz3d-engineering-visual-svg{display:block;height:100%;width:100%}
.xyz3d-engineering-visual-image{display:block;height:100%;object-fit:cover;width:100%}
.xyz3d-engineering-visual-svg path,.xyz3d-engineering-visual-svg rect,.xyz3d-engineering-visual-svg circle{vector-effect:non-scaling-stroke}
.xyz3d-engineering-visual-svg .v-grid path{fill:none;stroke:#233d50;stroke-width:1}
.xyz3d-engineering-visual-svg .v-scanner rect,.xyz3d-engineering-visual-svg .v-scanner circle,.xyz3d-engineering-visual-svg .v-scanner path{fill:#0a2234;stroke:#70dbff;stroke-width:2}
.xyz3d-engineering-visual-svg .v-object path,.xyz3d-engineering-visual-svg .v-part path,.xyz3d-engineering-visual-svg .v-part circle,.xyz3d-engineering-visual-svg .v-solid path,.xyz3d-engineering-visual-svg .v-solid circle{fill:rgba(78,180,222,.12);stroke:#a5eaff;stroke-width:2}
.xyz3d-engineering-visual-svg .v-beam path{stroke:#42d6ff;stroke-width:1.4}
.xyz3d-engineering-visual-svg .v-points circle{fill:#66dcff;opacity:.72}
.xyz3d-engineering-visual-svg .v-mesh path,.xyz3d-engineering-visual-svg .v-mesh circle,.xyz3d-engineering-visual-svg .v-wire path,.xyz3d-engineering-visual-svg .v-wire circle,.xyz3d-engineering-visual-svg .v-sections path,.xyz3d-engineering-visual-svg .v-sections circle{fill:none;stroke:#72d7f7;stroke-width:1.6}
.xyz3d-engineering-visual-svg .v-paper rect,.xyz3d-engineering-visual-svg .v-paper path{fill:rgba(92,151,181,.06);stroke:#91cee6;stroke-width:1.5}
.xyz3d-engineering-visual-svg .v-arrow path,.xyz3d-engineering-visual-svg .v-arrows path,.xyz3d-engineering-visual-svg .v-product-line path{fill:none;stroke:#45cfff;stroke-width:2}
.xyz3d-engineering-visual-svg .v-mark circle{fill:rgba(255,185,69,.06);stroke:#ffbf57;stroke-width:2}.xyz3d-engineering-visual-svg .v-mark path{fill:none;stroke:#ffbf57;stroke-width:2}.xyz3d-engineering-visual-svg .v-mark text{fill:#ffd48b;font-size:9px;font-weight:800;letter-spacing:.08em}
.xyz3d-engineering-visual-svg .v-product-node circle{fill:rgba(49,130,166,.13);stroke:#6fd9fb;stroke-width:2}.xyz3d-engineering-visual-svg .v-product-node path,.xyz3d-engineering-visual-svg .v-product-node rect{fill:none;stroke:#c4f2ff;stroke-width:1.8}
.xyz3d-engineering-visual-svg .v-caption text,.xyz3d-engineering-visual-svg .v-product-node text{fill:#82b7ce;font-size:10px;font-weight:800;letter-spacing:.11em}
.xyz3d-engineering-overview-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}
.xyz3d-engineering-mini-panel{border:1px solid rgba(79,174,213,.17);border-radius:11px;background:rgba(8,24,37,.44);padding:11px 12px}.xyz3d-engineering-mini-panel>b{color:#dff7ff;display:block;font-size:11px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}.xyz3d-engineering-mini-panel>div{display:flex;gap:6px;flex-wrap:wrap}.xyz3d-engineering-mini-panel span{background:rgba(52,142,179,.12);border:1px solid rgba(69,190,232,.16);border-radius:999px;color:#9fcde1;font-size:10px;padding:5px 8px}
.xyz3d-engineering-workflow-title{align-items:flex-end;display:flex;justify-content:space-between;gap:12px;margin:13px 0 8px}.xyz3d-engineering-workflow-title span{color:#effaff;font-size:13px;font-weight:800}.xyz3d-engineering-workflow-title small{color:#6f99ad;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.xyz3d-engineering-workflow-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.xyz3d-engineering-workflow-steps article{display:grid;grid-template-columns:34px 1fr;gap:9px;border:1px solid rgba(74,174,212,.14);border-radius:10px;background:rgba(7,21,34,.4);padding:10px}.xyz3d-engineering-workflow-steps .num{align-items:center;background:rgba(55,174,219,.12);border:1px solid rgba(71,203,246,.22);border-radius:8px;color:#5edcff;display:flex;font-size:9px;font-weight:850;height:28px;justify-content:center;width:28px}.xyz3d-engineering-workflow-steps b{color:#e3f7ff;font-size:11px}.xyz3d-engineering-workflow-steps p{color:#82aabd;font-size:10px;line-height:1.45;margin:3px 0 0}
.xyz3d-engineering-overview-note{align-items:flex-start;background:rgba(49,154,197,.07);border:1px solid rgba(62,183,227,.16);border-radius:10px;display:grid;grid-template-columns:22px 1fr;gap:8px;margin-top:10px;padding:9px 10px}.xyz3d-engineering-overview-note>span{align-items:center;border:1px solid rgba(77,199,239,.3);border-radius:50%;color:#70ddff;display:flex;font-size:10px;font-weight:800;height:18px;justify-content:center;width:18px}.xyz3d-engineering-overview-note p{color:#91b8ca;font-size:10px;line-height:1.5;margin:0}
@media(max-width:1100px){.xyz3d-engineering-overview{padding:18px}.xyz3d-engineering-visual{height:210px}.xyz3d-engineering-workflow-steps{grid-template-columns:1fr}.xyz3d-engineering-overview-head h3{font-size:22px}}
@media(max-width:760px){.xyz3d-engineering-overview-columns{grid-template-columns:1fr}.xyz3d-engineering-workflow-title{align-items:flex-start;flex-direction:column}.xyz3d-engineering-overview{padding:14px}.xyz3d-engineering-visual{height:180px}.xyz3d-engineering-upload-active>.xyz3d-scan-start{margin-bottom:14px;min-width:0;width:calc(100% - 28px)}}

/* 0.18.96.28 — keep Engineering explainer stage visible; legacy scan controls stay out of the visual panel */
.xyz3d-upload-view.xyz3d-engineering-upload-active>.xyz3d-dropzone,
.xyz3d-upload-view.xyz3d-engineering-upload-active>.xyz3d-scan-start{display:none!important}
.xyz3d-upload-view.xyz3d-engineering-upload-active .xyz3d-engineering-overview{display:block!important;visibility:visible!important;width:100%;height:100%}

.xyz3d-geometry-core{margin-top:14px;padding-top:12px;border-top:1px solid rgba(127,127,127,.22)}
.xyz3d-geometry-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.xyz3d-workzone{display:grid;gap:7px;margin-top:10px}
.xyz3d-workzone>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 10px;border:1px solid rgba(127,127,127,.2);border-radius:8px}
.xyz3d-workzone>div span{margin-right:auto;opacity:.78}
.xyz3d-workzone button{padding:4px 8px}

/* 0.18.96.64 — guided MOULD steps stay opposite the 3D model on desktop. */
.xyz3d-mould-stepper{
  position:sticky;
  top:-6px;
  z-index:20;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin:-6px 0 10px;
  padding:8px 0 7px;
  background:linear-gradient(180deg,rgba(11,26,42,.99),rgba(11,26,42,.94));
  backdrop-filter:blur(8px);
}
.xyz3d-mould-stepper button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
  padding:8px 7px;
  border:1px solid rgba(84,214,255,.18);
  border-radius:9px;
  background:rgba(8,23,38,.72);
  color:#87a9ba;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.xyz3d-mould-stepper button b{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  border:1px solid rgba(84,214,255,.28);
  color:#77dfff;
  font-size:10px;
}
.xyz3d-mould-stepper button.active{
  border-color:rgba(84,214,255,.58);
  background:rgba(45,145,188,.16);
  color:#e8f9ff;
  box-shadow:inset 0 0 0 1px rgba(84,214,255,.08);
}
.xyz3d-mould-stepper button:disabled{opacity:.38;cursor:not-allowed}

@media (min-width:1101px){
  .xyz3d-panel.xyz3d-guided-mould-panel{
    height:var(--xyz-viewer-height-desktop,720px);
    max-height:var(--xyz-viewer-height-desktop,720px);
    min-height:var(--xyz-viewer-height-desktop,720px);
    overflow:hidden;
  }
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs{flex:0 0 auto}
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}

/* 0.18.96.64 — Moldboxer-style guided drawers; no forced scroll-to-step. */
.xyz3d-mould-drawers{display:grid;gap:7px;margin-top:9px}
.xyz3d-mould-drawer{border:1px solid rgba(84,214,255,.16);border-radius:10px;background:rgba(7,21,35,.54);overflow:hidden}
.xyz3d-mould-drawer.open{border-color:rgba(84,214,255,.4);box-shadow:inset 0 0 0 1px rgba(84,214,255,.05)}
.xyz3d-mould-drawer-head{appearance:none;width:100%;border:0;background:rgba(14,31,47,.82);color:#9ab7c5;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;text-align:left;cursor:pointer}
.xyz3d-mould-drawer-head>span{display:flex;align-items:center;gap:8px;min-width:0}
.xyz3d-mould-drawer-head b{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:1px solid rgba(84,214,255,.28);color:#66ddff;font-size:10px}
.xyz3d-mould-drawer-head strong{font-size:10px;letter-spacing:.055em;color:#d8f2fb;white-space:normal}
.xyz3d-mould-drawer-head em{font-style:normal;font-size:8px;letter-spacing:.09em;color:#7292a2}
.xyz3d-mould-drawer.open>.xyz3d-mould-drawer-head{background:rgba(43,139,180,.15)}
.xyz3d-mould-drawer.open>.xyz3d-mould-drawer-head em{color:#63dcff}
.xyz3d-mould-drawer-head:disabled{opacity:.43;cursor:not-allowed}
.xyz3d-mould-drawer-body{padding:9px 10px 10px}
.xyz3d-mould-drawer-body[hidden]{display:none!important}
.xyz3d-master-health{margin-bottom:6px}
.xyz3d-master-actions{margin:5px 0 7px}
.xyz3d-rib-compact{display:grid;gap:7px;margin:7px 0}
.xyz3d-rib-editor{margin:0!important}
.xyz3d-rib-summary{color:#78a5b8;font-size:9px;line-height:1.4;margin:4px 0 7px}
.xyz3d-check-field{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 9px;border:1px solid rgba(127,127,127,.18);border-radius:8px;background:rgba(5,18,30,.28);color:#bdd9e4;font-size:10px;font-weight:700}
.xyz3d-check-field input{margin:0;accent-color:#52d7ff}
.xyz3d-funnel-grid{margin-top:6px}
.xyz3d-guided-mould-panel .xyz3d-geometry-actions{margin:7px 0;gap:6px}
.xyz3d-guided-mould-panel .xyz3d-info-card{padding:8px 9px}
.xyz3d-guided-mould-panel .xyz3d-field-grid{gap:7px}

@media (min-width:1101px){
  .xyz3d-panel.xyz3d-guided-mould-panel{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body{overflow:visible!important;max-height:none!important;min-height:0!important;scrollbar-gutter:auto!important}
}

/* 0.18.96.64 — compact Moldboxer-style top/tool accordions for MOULD. */
.xyz3d-top-drawer{border:1px solid rgba(84,214,255,.12);border-radius:10px;overflow:hidden;background:rgba(6,20,32,.3);margin-bottom:8px}
.xyz3d-top-drawer>.xyz3d-section-title.xyz3d-top-drawer-head{position:relative;cursor:pointer;margin:0!important;padding:10px 34px 10px 12px!important;border:0!important;background:rgba(14,31,47,.82);user-select:none}
.xyz3d-top-drawer>.xyz3d-section-title.xyz3d-top-drawer-head:after{content:'▾';position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(-90deg);color:#69dfff;font-size:12px;transition:transform .16s ease}
.xyz3d-top-drawer.open>.xyz3d-section-title.xyz3d-top-drawer-head:after{transform:translateY(-50%) rotate(0deg)}
.xyz3d-top-drawer>.xyz3d-top-drawer-body{padding:10px 10px 11px}
.xyz3d-top-drawer>.xyz3d-top-drawer-body[hidden]{display:none!important}
.xyz3d-top-drawer.open>.xyz3d-section-title.xyz3d-top-drawer-head{background:rgba(43,139,180,.14)}

.xyz3d-tool-drawer{border:1px solid rgba(84,214,255,.14);border-radius:9px;background:rgba(5,18,30,.28);overflow:hidden;margin:0 0 7px}
.xyz3d-tool-drawer>summary{list-style:none;cursor:pointer;position:relative;padding:9px 34px 9px 10px;color:#d8f2fb;font-size:10px;font-weight:850;letter-spacing:.07em;background:rgba(12,29,44,.7);user-select:none}
.xyz3d-tool-drawer>summary::-webkit-details-marker{display:none}
.xyz3d-tool-drawer>summary:after{content:'▾';position:absolute;right:11px;top:50%;transform:translateY(-50%) rotate(-90deg);color:#65dcff;transition:transform .15s ease}
.xyz3d-tool-drawer[open]>summary:after{transform:translateY(-50%) rotate(0deg)}
.xyz3d-tool-drawer[open]>summary{background:rgba(44,142,183,.14)}
.xyz3d-tool-drawer-content{padding:9px}
.xyz3d-tool-drawer-content>.xyz3d-info-card:first-child{margin-top:0}

/* Keep the configure column clean: the browser page itself scrolls, not a nested control pane. */
@media (min-width:1101px){
  .xyz3d-panel.xyz3d-guided-mould-panel,.xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important;scrollbar-gutter:auto!important}
}

/* 0.18.96.90 — full-width manufacturing workspace.
   Desktop follows the reference workflow: compact service tabs directly above
   the workspace, independently scrolling settings on the left, and a 3D stage
   that uses all remaining viewport width. Geometry/runtime behaviour is unchanged. */
@media (min-width: 861px) {
  .xyz3d-app {
    box-sizing: border-box;
    max-width: none;
    width: calc(100vw - 16px);
    margin-top: 8px;
    margin-right: 0;
    margin-bottom: 8px;
    margin-left: calc(50% - 50vw + 8px);
  }

  .xyz3d-shell {
    border-radius: 16px;
    min-height: 0;
  }

  .xyz3d-header {
    min-height: 58px;
    padding: 0 18px;
  }

  /* Service modes now sit immediately above the working field. */
  .xyz3d-intro {
    display: none;
  }

  .xyz3d-services {
    display: flex;
    gap: 0;
    grid-template-columns: none;
    min-height: 50px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 10px;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    white-space: nowrap;
  }

  .xyz3d-services::-webkit-scrollbar {
    height: 5px;
  }

  .xyz3d-services::-webkit-scrollbar-thumb {
    background: rgba(84, 214, 255, 0.22);
    border-radius: 999px;
  }

  .xyz3d-services button {
    align-items: flex-start;
    flex: 0 0 auto;
    justify-content: center;
    min-height: 50px;
    min-width: 138px;
    padding: 8px 14px 7px;
  }

  .xyz3d-services span {
    font-size: 13px;
    line-height: 1.25;
  }

  .xyz3d-services small {
    font-size: 10px;
    line-height: 1.2;
    margin-top: 1px;
  }

  .xyz3d-workspace {
    height: max(var(--xyz-viewer-height-desktop, 720px), calc(100vh - 124px));
    min-height: max(var(--xyz-viewer-height-desktop, 720px), calc(100vh - 124px));
    grid-template-columns: clamp(300px, 19vw, 360px) minmax(0, 1fr);
    grid-template-areas: "settings stage";
    overflow: hidden;
  }

  .xyz3d-stage {
    grid-area: stage;
    border-left: 1px solid var(--xyz-border);
    border-right: 0;
    height: 100%;
    min-height: 0;
  }

  /* The settings rail begins at the top of the workspace and scrolls by itself. */
  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    grid-area: settings;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }

  .xyz3d-panel::-webkit-scrollbar,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar {
    width: 8px;
  }

  .xyz3d-panel::-webkit-scrollbar-thumb,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar-thumb {
    background: rgba(84, 214, 255, 0.2);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
  }

  .xyz3d-panel-tabs,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    flex: 0 0 auto;
    position: static;
  }

  .xyz3d-panel-body,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    flex: 0 0 auto;
    max-height: none;
    min-height: 0;
    overflow: visible;
    padding-left: 14px;
    padding-right: 14px;
  }

  /* The whole settings rail is the scroller, so nested sticky/scroll regions are removed. */
  .xyz3d-mould-stepper {
    position: static;
    top: auto;
  }

  .xyz3d-quote {
    padding-left: 14px;
    padding-right: 14px;
  }

  .xyz3d-viewer-wrap,
  .xyz3d-viewer,
  .xyz3d-upload-view,
  .xyz3d-progress {
    min-height: 0;
  }
}

/* Tablet/mobile keeps the established stacked layout and avoids a full-bleed overflow. */
@media (max-width: 860px) {
  .xyz3d-app {
    max-width: 100%;
    width: auto;
  }
}

/* 0.18.96.91 — scrollable settings rail + compact mobile studio chrome.
   UI-only correction: keep the 3D stage stationary while Configure/Analysis
   scroll inside the settings column; on phones remove the oversized internal
   header/intro and render service modes as one compact horizontal tab strip. */
@media (min-width: 861px) {
  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    scrollbar-gutter: auto !important;
  }

  .xyz3d-panel-tabs,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    flex: 0 0 auto !important;
  }

  .xyz3d-panel-body,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    flex: 1 1 auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(151, 195, 225, .58) rgba(4, 13, 23, .3);
  }

  .xyz3d-panel-body::-webkit-scrollbar,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar {
    width: 9px;
  }

  .xyz3d-panel-body::-webkit-scrollbar-track,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar-track {
    background: rgba(4, 13, 23, .32);
  }

  .xyz3d-panel-body::-webkit-scrollbar-thumb,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar-thumb {
    background: rgba(151, 195, 225, .52);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
  }

  .xyz3d-panel-body::-webkit-scrollbar-thumb:hover,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar-thumb:hover {
    background: rgba(151, 195, 225, .72);
    border: 2px solid transparent;
    background-clip: padding-box;
  }

  .xyz3d-quote {
    flex: 0 0 auto;
  }
}

/* Phone: the website already has its own branding/header. Keep only a thin
   service switcher inside the studio and put the 3D field immediately below it. */
@media (max-width: 620px) {
  .xyz3d-app {
    margin-top: 4px;
    margin-bottom: 8px;
  }

  .xyz3d-shell {
    border-radius: 12px;
    min-height: 0;
  }

  .xyz3d-header {
    display: none;
  }

  .xyz3d-intro {
    display: none !important;
  }

  .xyz3d-services {
    display: flex !important;
    align-items: stretch;
    gap: 2px;
    grid-template-columns: none !important;
    min-height: 38px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 4px;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .xyz3d-services::-webkit-scrollbar {
    display: none;
  }

  .xyz3d-services button {
    align-items: center;
    flex: 0 0 auto;
    justify-content: center;
    min-height: 38px;
    min-width: auto;
    padding: 6px 10px 5px;
    text-align: center;
  }

  .xyz3d-services span {
    font-size: 11px;
    font-weight: 760;
    line-height: 1.05;
  }

  .xyz3d-services small {
    display: none;
  }

  .xyz3d-workspace {
    margin-top: 0;
  }

  .xyz3d-stage {
    height: var(--xyz-viewer-height-mobile, 500px);
    min-height: var(--xyz-viewer-height-mobile, 500px);
  }

  .xyz3d-panel-tabs button {
    font-size: 12px;
    padding: 10px 8px 9px;
  }
}

/* Very narrow phones: keep mode names readable without letting the strip grow. */
@media (max-width: 390px) {
  .xyz3d-services button {
    padding-left: 8px;
    padding-right: 8px;
  }

  .xyz3d-services span {
    font-size: 10.5px;
  }
}


/* 0.18.96.92 — narrow/mobile full-bleed workspace + isolated settings scroll.
   In a narrow viewport the studio breaks out of the theme content column to the
   exact browser client width (up to, not underneath, the vertical page scrollbar).
   The 3D stage is a fixed workspace region; only Configure/Analysis scrolls. */
@media (max-width: 620px) {
  .xyz3d-app {
    box-sizing: border-box;
    width: var(--xyz3d-client-width, 100vw) !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: calc((100% - var(--xyz3d-client-width, 100vw)) / 2) !important;
    margin-right: calc((100% - var(--xyz3d-client-width, 100vw)) / 2) !important;
  }

  .xyz3d-shell {
    width: 100%;
    max-width: none;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
  }

  .xyz3d-services {
    flex: 0 0 38px;
    min-height: 38px;
    width: 100%;
  }

  .xyz3d-workspace {
    display: flex !important;
    flex-direction: column !important;
    height: calc(100dvh - 38px) !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 38px) !important;
    overflow: hidden !important;
  }

  .xyz3d-stage {
    flex: 0 0 clamp(300px, 48dvh, var(--xyz-viewer-height-mobile, 500px));
    height: clamp(300px, 48dvh, var(--xyz-viewer-height-mobile, 500px)) !important;
    min-height: 300px !important;
    max-height: var(--xyz-viewer-height-mobile, 500px);
    overflow: hidden !important;
  }

  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: hidden !important;
    scrollbar-gutter: auto !important;
  }

  .xyz3d-panel-tabs,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    flex: 0 0 auto !important;
    position: static !important;
  }

  .xyz3d-panel-body,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    flex: 1 1 auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(151, 195, 225, .60) rgba(4, 13, 23, .34);
  }

  .xyz3d-panel-body::-webkit-scrollbar,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar {
    width: 9px;
  }

  .xyz3d-panel-body::-webkit-scrollbar-track,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar-track {
    background: rgba(4, 13, 23, .34);
  }

  .xyz3d-panel-body::-webkit-scrollbar-thumb,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body::-webkit-scrollbar-thumb {
    background: rgba(151, 195, 225, .58);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
  }

  .xyz3d-quote {
    flex: 0 0 auto;
  }
}

/* Short phones need a smaller stage so the settings scroller remains useful. */
@media (max-width: 620px) and (max-height: 760px) {
  .xyz3d-stage {
    flex-basis: clamp(260px, 43dvh, 360px);
    height: clamp(260px, 43dvh, 360px) !important;
    min-height: 260px !important;
  }
}

/* 0.18.96.93 — unified settings/quote scroll + viewport-height desktop workbench.
   The complete left rail (Configure/Analysis + estimate/review/request controls)
   is one scroller. The 3D stage never participates in that scroll. On desktop
   the studio consumes the exact remaining viewport height from its current top
   edge, so the stage reaches the bottom of the browser. */
@media (min-width: 861px) {
  .xyz3d-app {
    height: var(--xyz3d-available-height, calc(100dvh - 8px));
    min-height: 520px;
    margin-top: 0;
    margin-bottom: 0;
  }

  .xyz3d-shell {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0 !important;
    overflow: hidden;
  }

  .xyz3d-header {
    flex: 0 0 58px;
    min-height: 58px;
    position: sticky;
    top: 0;
    z-index: 40;
    background:
      radial-gradient(circle at 82% -10%, rgba(36, 130, 255, 0.24), transparent 33%),
      var(--xyz-bg);
  }

  .xyz3d-services {
    flex: 0 0 50px;
    min-height: 50px;
    position: sticky;
    top: 58px;
    z-index: 39;
    background: rgba(7, 16, 29, 0.98);
  }

  .xyz3d-workspace {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .xyz3d-stage {
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  /* One continuous settings scroller, including the complete quote/request area. */
  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    display: block !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(151, 195, 225, .60) rgba(4, 13, 23, .34);
  }

  .xyz3d-panel-tabs,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    position: sticky !important;
    top: 0 !important;
    z-index: 24;
    background: rgba(10, 23, 38, .985);
    backdrop-filter: blur(10px);
  }

  .xyz3d-panel-body,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    display: block;
    flex: none !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    overscroll-behavior: auto;
    scrollbar-gutter: auto !important;
  }

  .xyz3d-quote {
    display: block;
    flex: none !important;
    position: static !important;
  }

  .xyz3d-panel::-webkit-scrollbar,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar {
    width: 9px;
  }

  .xyz3d-panel::-webkit-scrollbar-track,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar-track {
    background: rgba(4, 13, 23, .34);
  }

  .xyz3d-panel::-webkit-scrollbar-thumb,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar-thumb {
    background: rgba(151, 195, 225, .58);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
  }
}

/* Narrow/mobile: keep the fixed 3D region from .92, but make the entire lower
   settings rail one scroll surface so estimate/review/terms/send travel with it. */
@media (max-width: 620px) {
  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    display: block !important;
    flex: 1 1 auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(151, 195, 225, .60) rgba(4, 13, 23, .34);
  }

  .xyz3d-panel-tabs,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    position: sticky !important;
    top: 0 !important;
    z-index: 24;
    background: rgba(10, 23, 38, .985);
    backdrop-filter: blur(10px);
  }

  .xyz3d-panel-body,
  .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    display: block;
    flex: none !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    overscroll-behavior: auto;
    scrollbar-gutter: auto !important;
  }

  .xyz3d-quote {
    display: block;
    flex: none !important;
    position: static !important;
  }

  .xyz3d-panel::-webkit-scrollbar,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar {
    width: 9px;
  }

  .xyz3d-panel::-webkit-scrollbar-track,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar-track {
    background: rgba(4, 13, 23, .34);
  }

  .xyz3d-panel::-webkit-scrollbar-thumb,
  .xyz3d-panel.xyz3d-guided-mould-panel::-webkit-scrollbar-thumb {
    background: rgba(151, 195, 225, .58);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
  }
}


/* 0.18.96.94 — viewer file badge overlay + complete settings-scroll bottom.
   The uploaded model identity no longer consumes a dedicated row below the 3D
   viewport. It is a compact overlay inside the stage, returning that height to
   the model. The unified settings/order scroller gets a real end spacer so the
   final consent/request controls can always be brought fully into view. */
.xyz3d-viewer-wrap {
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  position: relative !important;
}

.xyz3d-viewer {
  inset: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  position: absolute !important;
  width: 100% !important;
}

.xyz3d-viewer-info {
  background: transparent !important;
  border: 0 !important;
  bottom: 9px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  left: 9px !important;
  padding: 0 !important;
  pointer-events: none;
  position: absolute !important;
  right: auto !important;
  top: auto !important;
  width: min(340px, calc(100% - 18px)) !important;
  z-index: 6 !important;
}

.xyz3d-model-chip {
  background: rgba(5, 14, 25, 0.90) !important;
  border-color: rgba(120, 191, 226, 0.26) !important;
  border-radius: 8px !important;
  gap: 6px !important;
  grid-template-columns: 26px minmax(0, 1fr) !important;
  max-width: 100% !important;
  padding: 4px 7px !important;
  width: min(320px, 100%) !important;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
  backdrop-filter: blur(7px);
}

.xyz3d-file-icon {
  border-radius: 7px !important;
  font-size: 10px !important;
  height: 26px !important;
  width: 26px !important;
}

.xyz3d-model-chip strong {
  font-size: 11.5px !important;
  line-height: 1.15 !important;
}

.xyz3d-model-chip small {
  font-size: 9.5px !important;
  line-height: 1.1 !important;
  margin-top: 1px !important;
}

.xyz3d-viewer-info .xyz3d-support-summary,
.xyz3d-viewer-info .xyz3d-viewer-legend {
  max-width: 340px !important;
  width: fit-content !important;
}

/* Keep the complete quote/request tail inside the same settings scroller and
   guarantee enough scroll-end breathing room for browser chrome/safe areas. */
.xyz3d-panel,
.xyz3d-panel.xyz3d-guided-mould-panel {
  scroll-padding-bottom: 40px;
}

.xyz3d-quote {
  padding-bottom: 28px !important;
}

@media (max-width: 620px) {
  .xyz3d-viewer-info {
    bottom: 7px !important;
    left: 7px !important;
    width: min(300px, calc(100% - 14px)) !important;
  }

  .xyz3d-model-chip {
    width: min(285px, 100%) !important;
  }

  .xyz3d-panel,
  .xyz3d-panel.xyz3d-guided-mould-panel {
    overflow-y: scroll !important;
    scroll-padding-bottom: max(88px, env(safe-area-inset-bottom)) !important;
    touch-action: pan-y;
  }

  .xyz3d-panel::after,
  .xyz3d-panel.xyz3d-guided-mould-panel::after {
    content: "";
    display: block;
    height: max(72px, env(safe-area-inset-bottom));
    width: 1px;
  }

  .xyz3d-quote {
    padding-bottom: 30px !important;
  }

  .xyz3d-message:last-child {
    margin-bottom: 0;
  }
}

/* 0.18.96.96 — SHELL-ISOLATED LOCKED WORKBENCH LAYOUT.
   Final UI layer. The runtime adds .xyz3d-layout-v96 to each studio root so
   WordPress theme/optimizer rules cannot restore the legacy intro layout. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-intro {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}


.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell[hidden],
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-photo-service-shell[hidden] {
  display: none !important;
}

@media (min-width: 861px) {
  .xyz3d-app.xyz3d-layout-v96 {
    box-sizing: border-box !important;
    width: calc(100vw - 16px) !important;
    max-width: none !important;
    height: var(--xyz3d-available-height, calc(100dvh - 8px)) !important;
    min-height: 520px !important;
    margin: 0 0 0 calc(50% - 50vw + 8px) !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: 16px !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-header {
    display: flex !important;
    flex: 0 0 52px !important;
    min-height: 52px !important;
    padding: 0 18px !important;
    position: relative !important;
    top: auto !important;
    z-index: 40 !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-brand strong { font-size: 16px !important; }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-brand small { font-size: 10px !important; }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-secure { font-size: 11px !important; }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services {
    display: flex !important;
    flex: 0 0 46px !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    min-height: 46px !important;
    padding: 0 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    position: relative !important;
    top: auto !important;
    z-index: 39 !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services button {
    align-items: flex-start !important;
    flex: 0 0 auto !important;
    justify-content: center !important;
    min-width: 126px !important;
    min-height: 46px !important;
    padding: 6px 12px 5px !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services span {
    font-size: 12px !important;
    line-height: 1.15 !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services small {
    font-size: 9px !important;
    line-height: 1.1 !important;
    margin-top: 1px !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-workspace {
    display: grid !important;
    flex: 1 1 auto !important;
    grid-template-columns: clamp(300px, 19vw, 360px) minmax(0, 1fr) !important;
    grid-template-areas: "settings stage" !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-stage {
    grid-area: stage !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    border-left: 1px solid var(--xyz-border) !important;
    border-right: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel {
    grid-area: settings !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scroll-padding-bottom: 72px !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-tabs,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
    background: rgba(10, 23, 38, .985) !important;
    backdrop-filter: blur(10px);
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body {
    display: block !important;
    flex: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-quote {
    display: block !important;
    flex: none !important;
    position: static !important;
    padding-bottom: 44px !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel::after,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel::after {
    content: "" !important;
    display: block !important;
    width: 1px !important;
    height: 36px !important;
  }
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 {
    box-sizing: border-box !important;
    width: var(--xyz3d-client-width, 100vw) !important;
    max-width: none !important;
    margin: 0 calc((100% - var(--xyz3d-client-width, 100vw)) / 2) !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-header,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-intro {
    display: none !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services {
    display: flex !important;
    flex: 0 0 38px !important;
    grid-template-columns: none !important;
    gap: 2px !important;
    width: 100% !important;
    min-height: 38px !important;
    padding: 0 4px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services::-webkit-scrollbar { display: none !important; }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services button {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 38px !important;
    padding: 6px 9px 5px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services span { font-size: 10.5px !important; }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-services small { display: none !important; }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-workspace {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: calc(100dvh - 38px) !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 38px) !important;
    overflow: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-stage {
    order: 1 !important;
    flex: 0 0 clamp(300px, 48dvh, var(--xyz-viewer-height-mobile, 500px)) !important;
    width: 100% !important;
    height: clamp(300px, 48dvh, var(--xyz-viewer-height-mobile, 500px)) !important;
    min-height: 300px !important;
    max-height: var(--xyz-viewer-height-mobile, 500px) !important;
    overflow: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel,
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel {
    order: 2 !important;
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable !important;
    scroll-padding-bottom: max(96px, env(safe-area-inset-bottom)) !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-tabs {
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
    background: rgba(10, 23, 38, .985) !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body {
    display: block !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-quote {
    display: block !important;
    position: static !important;
    padding-bottom: max(38px, env(safe-area-inset-bottom)) !important;
  }

  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel::after {
    content: "" !important;
    display: block !important;
    width: 1px !important;
    height: max(80px, env(safe-area-inset-bottom)) !important;
  }
}

/* 0.18.96.97 — compact narrow MOULD controls / generated-object cards.
   UI-only: no geometry, pricing or export behaviour changes. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel * {
  box-sizing: border-box;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-panel-body {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-setting-section {
  padding-top: 13px;
  padding-bottom: 13px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-section-title {
  margin-bottom: 9px;
  gap: 7px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-section-title span {
  font-size: 13px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-section-title small {
  min-width: 0;
  font-size: 9px;
  letter-spacing: .07em;
  text-align: right;
  overflow-wrap: anywhere;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field-grid {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px 7px !important;
  min-width: 0;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field > span,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-input-wrap,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel select,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel input {
  min-width: 0 !important;
  max-width: 100%;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field > span:first-child {
  font-size: 11.5px;
  line-height: 1.2;
  margin-bottom: 4px;
  overflow-wrap: anywhere;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field select,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-input-wrap {
  min-height: 38px;
  height: 38px;
  border-radius: 8px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field select {
  font-size: 13px;
  padding-left: 9px;
  padding-right: 22px;
  background-position: calc(100% - 13px) 14px, calc(100% - 9px) 14px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-input-wrap input {
  font-size: 13px;
  padding: 6px 2px 6px 9px;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-input-wrap i {
  flex: 0 0 auto;
  max-width: 54px;
  padding-right: 6px;
  font-size: 9.5px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-check-field {
  min-width: 0;
  min-height: 34px;
  padding: 6px 7px;
  gap: 6px;
  font-size: 9.5px;
  line-height: 1.2;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-info-card {
  margin-top: 9px;
  padding: 7px 8px !important;
  font-size: 10px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

/* Generated parts: text uses full row; actions always fit the narrow rail. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone {
  gap: 6px;
  min-width: 0;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: stretch;
  gap: 5px !important;
  min-width: 0;
  width: 100%;
  padding: 7px !important;
  overflow: hidden;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div > b,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div > span {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
  margin: 0 !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div > b {
  font-size: 12.5px;
  line-height: 1.22;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div > span {
  font-size: 10px;
  line-height: 1.35;
  opacity: .74;
}

.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone button {
  width: 100%;
  min-width: 0 !important;
  min-height: 30px;
  padding: 4px 2px !important;
  border-radius: 6px;
  font-size: 10.5px;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 360px) {
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-panel-body {
    padding-left: 9px !important;
    padding-right: 9px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field-grid {
    gap: 7px 5px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone > div {
    gap: 4px !important;
    padding: 6px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-workzone button {
    font-size: 10px;
    min-height: 29px;
  }
}



/* 0.18.96.98 — ensure the unified narrow settings/request rail reaches its real end. */
@media (max-width: 860px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    scroll-padding-bottom: 180px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-quote {
    padding-bottom: max(180px, env(safe-area-inset-bottom)) !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel::after {
    height: max(140px, env(safe-area-inset-bottom)) !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body[hidden] {
    display: none !important;
  }
}

/* 2-Part Matrix mode selector spans the narrow mould rail cleanly. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-two-part-output {
  grid-column: 1 / -1;
}

/* 0.18.96.99 — unified compact professional settings grid.
   UI-only. Standardises label/input baselines across FDM, Resin, Engineering
   and Mould; reduces oversized project-file cards; and lets Mould top drawers
   use the useful rail width right up to the settings scrollbar. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel * {
  box-sizing: border-box;
}

/* Tighter common rail — FDM / Resin / Engineering / ordinary settings. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body {
  padding-left: 12px !important;
  padding-right: 12px !important;
  padding-top: 5px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-setting-section {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-section-title {
  gap: 8px;
  margin-bottom: 9px;
  min-width: 0;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-section-title > span {
  font-size: 12.5px;
  line-height: 1.16;
  min-width: 0;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-section-title > small {
  font-size: 8.5px;
  line-height: 1.15;
  letter-spacing: .085em;
  min-width: 0;
  text-align: right;
  overflow-wrap: anywhere;
}

/* Every grid row uses the same label zone and exactly the same control height.
   This fixes mixed one/two-line labels such as Decimation vs DynaMesh. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid {
  gap: 8px 7px !important;
  min-width: 0;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid > .xyz3d-field {
  align-content: start;
  min-width: 0;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid > .xyz3d-field > span:first-child {
  align-items: flex-end;
  display: flex;
  font-size: 11px !important;
  height: 30px;
  line-height: 1.15 !important;
  margin: 0 0 4px !important;
  min-height: 30px;
  overflow-wrap: anywhere;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid > .xyz3d-field > select,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid > .xyz3d-field > .xyz3d-input-wrap {
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  border-radius: 8px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid > .xyz3d-field > select {
  font-size: 12.5px !important;
  padding-left: 9px !important;
  padding-right: 23px !important;
  background-position: calc(100% - 13px) 14px, calc(100% - 9px) 14px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid .xyz3d-input-wrap input {
  font-size: 12.5px !important;
  line-height: 1 !important;
  padding: 6px 3px 6px 9px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-field-grid .xyz3d-input-wrap i {
  flex: 0 0 auto;
  font-size: 9px !important;
  line-height: 1.05;
  max-width: 54px;
  padding-right: 6px !important;
  overflow-wrap: anywhere;
}

/* Model gets the same deliberate card/header language used by Mould. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-model-section {
  background: rgba(6,20,32,.30);
  border: 1px solid rgba(84,214,255,.13) !important;
  border-radius: 10px;
  margin: 8px 0 9px;
  overflow: hidden;
  padding: 0 9px 10px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-model-section > .xyz3d-section-title {
  background: rgba(14,31,47,.82);
  margin: 0 -9px 9px !important;
  min-height: 42px;
  padding: 8px 10px !important;
}

/* FDM / Resin supporting controls should match the tighter field rhythm. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-range {
  margin-top: 10px;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-range > span {
  font-size: 11px;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-range output {
  font-size: 11px;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-toggle-row {
  gap: 9px;
  margin-top: 10px;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel .xyz3d-switch {
  font-size: 11px;
  min-height: 34px;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section {
  margin-top: 10px;
  padding: 10px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-grid {
  gap: 9px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-quantity-line {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* Engineering cards no longer dominate the rail. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-service-grid {
  gap: 7px !important;
  margin: 8px 0 11px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-service-grid button {
  min-height: 60px !important;
  padding: 9px 10px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-service-grid b {
  font-size: 11.5px !important;
  margin-bottom: 2px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-service-grid small {
  font-size: 10px !important;
  line-height: 1.28 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section .xyz3d-info-card,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section .xyz3d-info-card {
  padding: 8px 9px !important;
  font-size: 10px !important;
  line-height: 1.38 !important;
}

/* Project files: preserve functionality but use substantially less vertical space. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-grid {
  gap: 6px !important;
  margin-top: 7px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card {
  border-radius: 8px !important;
  gap: 3px !important;
  min-height: 94px !important;
  padding: 8px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card > b {
  font-size: 11.5px !important;
  line-height: 1.18 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card > span {
  font-size: 9.5px !important;
  line-height: 1.24 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card > button,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card > em {
  border-radius: 7px !important;
  font-size: 10.5px !important;
  line-height: 1.1 !important;
  margin-top: 2px !important;
  min-height: 30px;
  padding: 5px 6px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-list {
  gap: 3px !important;
  margin-top: 1px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-chip {
  border-radius: 6px !important;
  padding: 3px 5px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-chip b {
  font-size: 9px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-chip small,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-empty {
  font-size: 8px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-actions {
  font-size: 9px !important;
  margin: 5px 0 10px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-file-actions button {
  font-size: 9px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section .xyz3d-subsection-title,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section .xyz3d-subsection-title {
  margin-top: 12px !important;
  margin-bottom: 7px !important;
}

/* Full-bleed top Mould drawers: no wasted double gutter strips. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer {
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  margin-left: -12px !important;
  margin-right: -12px !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-section-title.xyz3d-top-drawer-head {
  padding-left: 12px !important;
  padding-right: 34px !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

/* Mould safe-mesh row: exact common baseline for mixed label lengths. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field-grid > .xyz3d-field > span:first-child {
  height: 30px !important;
  min-height: 30px !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field-grid > .xyz3d-field > select,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-field-grid > .xyz3d-field > .xyz3d-input-wrap {
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body {
    padding-left: 9px !important;
    padding-right: 9px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer {
    margin-left: -9px !important;
    margin-right: -9px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-card {
    min-height: 88px !important;
  }
}

@media (max-width: 350px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-project-upload-grid {
    grid-template-columns: 1fr !important;
  }
}

/* 0.18.96.100 — full-width settings rail + compact Order Priority.
   UI-only. Keeps geometry/pricing behaviour intact while reclaiming the
   horizontal rail space up to the settings scrollbar. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Direct settings modules use the whole rail; content keeps only one small
   internal gutter instead of the old panel gutter + card gutter combination. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body > .xyz3d-setting-section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

/* Model remains a deliberate card, but its outside edge now reaches the rail
   and its header aligns with all other full-width modules. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body > .xyz3d-model-section {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body > .xyz3d-model-section > .xyz3d-section-title {
  margin-left: -10px !important;
  margin-right: -10px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* Full-width expandable Mould headers must stop exactly at the scrollbar,
   never leave decorative dead strips or overshoot after the common rail change. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer {
  width: auto !important;
  max-width: none !important;
  margin-left: -10px !important;
  margin-right: -10px !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-section-title.xyz3d-top-drawer-head {
  padding-left: 10px !important;
  padding-right: 30px !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* ORDER OPTIONS: the old two-column priority block was wider than the narrow
   rail and visually oversized. Put the selector below the title, remove the
   redundant inner card, and use the same 34px control rhythm as compact UI. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section {
  margin-top: 8px !important;
  padding-top: 9px !important;
  padding-bottom: 9px !important;
  background: rgba(10, 31, 47, .62) !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-grid {
  gap: 7px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: start !important;
  gap: 5px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control > span {
  display: grid !important;
  gap: 1px !important;
  min-width: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control > span b {
  font-size: 11.5px !important;
  line-height: 1.15 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control > span small {
  font-size: 9px !important;
  line-height: 1.25 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control .xyz3d-field {
  width: min(100%, 205px) !important;
  max-width: 205px !important;
  margin: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control .xyz3d-field > span:first-child {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control select {
  width: 100% !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  border-radius: 7px !important;
  font-size: 11px !important;
  font-weight: 760 !important;
  padding-left: 8px !important;
  padding-right: 22px !important;
  background-position: calc(100% - 12px) 12px, calc(100% - 8px) 12px !important;
}

/* Post-process choices, when enabled, follow the same compact module rhythm. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-card {
  padding: 7px 8px !important;
  border-radius: 8px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-grid {
  gap: 5px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-option {
  min-height: 40px !important;
  padding: 6px 7px !important;
  border-radius: 7px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-option span {
  font-size: 10.5px !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-option small,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-postprocess-card > small {
  font-size: 8.5px !important;
  line-height: 1.3 !important;
}

/* Engineering/request subsections use the same rail edges rather than nested
   margins that made the useful content noticeably narrower than Mould. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section {
  max-width: none !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section .xyz3d-subsection-title,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section .xyz3d-subsection-title {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body > .xyz3d-setting-section {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-body > .xyz3d-model-section > .xyz3d-section-title {
    margin-left: -8px !important;
    margin-right: -8px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer {
    margin-left: -8px !important;
    margin-right: -8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-priority-control .xyz3d-field {
    width: min(100%, 190px) !important;
    max-width: 190px !important;
  }
}

/* 0.18.96.104 — true full-width settings modules + Vinyl/main-workspace isolation.
   UI/layout only: geometry, pricing and request logic remain unchanged. */

/* Every ordinary Configure module now uses the same rail edges as Model.
   One small content gutter remains inside; the module/header itself spans from
   the left rail edge to the settings scrollbar. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section > .xyz3d-section-title {
  box-sizing: border-box !important;
  width: calc(100% + 20px) !important;
  min-height: 40px !important;
  margin: 0 -10px 10px !important;
  padding: 8px 10px !important;
  background: rgba(14,31,47,.82) !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section > .xyz3d-section-title > span,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section > .xyz3d-section-title > small {
  min-width: 0 !important;
}

/* Model no longer needs a second outer card width different from its siblings. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-model-section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

/* Order options / quantity / Engineering: no extra nested horizontal shrink. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-quantity-line,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section {
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

/* Mould request is generated inside the guided rail; let its outside box use
   the same full rail width while keeping a compact content gutter. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-mould-request-section {
  box-sizing: border-box !important;
  width: calc(100% + 20px) !important;
  max-width: none !important;
  margin-left: -10px !important;
  margin-right: -10px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

/* Vinyl is an exclusive service screen. The fixed 3D workspace must never be
   revived by the desktop/mobile layout rules while Vinyl is open. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-vinyl-open > .xyz3d-main-shell > .xyz3d-workspace,
.xyz3d-app.xyz3d-layout-v96.xyz3d-vinyl-open > .xyz3d-main-shell > .xyz3d-intro {
  display: none !important;
}
.xyz3d-app.xyz3d-layout-v96:not(.xyz3d-vinyl-open) > .xyz3d-main-shell > .xyzst-combined-panel,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell > .xyzst-combined-panel[hidden] {
  display: none !important;
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section > .xyz3d-section-title {
    width: calc(100% + 16px) !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-mould-request-section {
    width: calc(100% + 16px) !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

/* Final rail-gutter override for 0.18.96.104. 0.18.96.99 used a more
   specific selector that kept a 12px panel-body inset; remove that inset so
   the module border/header itself really reaches the rail edges. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 0.18.96.104 — Mould drawer body full-rail alignment.
   The Mould system header already spans the complete settings rail. Remove the
   second horizontal gutter from its body so every primary workflow block uses
   exactly the same left/right edges up to the settings scrollbar. */
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body > .xyz3d-geometry-core {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-info-card,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-tool-drawer,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-mould-drawers,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-mould-drawers > .xyz3d-mould-drawer {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* 0.18.96.104 — TRUE full-bleed Mould workflow.
   The Mould setting-section is also the top drawer itself. Previous releases
   removed padding from its body but left 10px horizontal padding on the parent
   setting-section, so every visible workflow frame still stopped short of the
   rail edges. Remove that parent inset entirely; text keeps padding inside each
   individual card/drawer. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-guided-mould-panel .xyz3d-panel-body > .xyz3d-setting-section.xyz3d-top-drawer {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-section-title.xyz3d-top-drawer-head,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-top-drawer > .xyz3d-top-drawer-body > .xyz3d-geometry-core,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-info-card,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-tool-drawer,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-geometry-core > .xyz3d-mould-drawers,
.xyz3d-app.xyz3d-layout-v96 .xyz3d-guided-mould-panel .xyz3d-mould-drawers > .xyz3d-mould-drawer {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-guided-mould-panel .xyz3d-panel-body > .xyz3d-setting-section.xyz3d-top-drawer {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* 0.18.96.104 — Configure / Analysis belongs to the settings scroller.
   It must move with the Mould/FDM/Resin/Engineering settings instead of
   remaining sticky and covering the controls underneath. The 3D stage remains
   stationary because only the settings rail itself scrolls. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel-tabs,
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-tabs {
  position: static !important;
  top: auto !important;
  inset-block-start: auto !important;
  z-index: auto !important;
  flex: 0 0 auto !important;
}

/* 0.18.96.106 — compact viewport app mode.
   On a genuinely narrow viewport/container XYZ 3D Studio becomes the visible
   app surface immediately below the WordPress admin bar. The site masthead is
   left in the page underneath instead of consuming the limited mobile height. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace {
  position: fixed !important;
  top: var(--xyz3d-mobile-top, 0px) !important;
  right: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  width: var(--xyz3d-client-width, 100%) !important;
  height: var(--xyz3d-mobile-height, 100dvh) !important;
  max-width: none !important;
  margin: 0 !important;
  z-index: 99990 !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell .xyz3d-header {
  display: none !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell .xyz3d-services {
  position: relative !important;
  top: auto !important;
  flex: 0 0 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell .xyz3d-workspace {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell .xyz3d-panel {
  min-height: 0 !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace > .xyz3d-main-shell > .xyzst-combined-panel:not([hidden]) {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}


/* 0.18.96.106 — true viewport portal for compact mode.
   The app root is moved directly under <body> while compact so transformed /
   contained WordPress theme ancestors cannot redefine the fixed containing block. */
html.xyz3d-compact-active,
body.xyz3d-compact-active {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
body > .xyz3d-app.xyz3d-layout-v96.xyz3d-compact-workspace {
  position: fixed !important;
  inset: var(--xyz3d-mobile-top, 0px) 0 auto 0 !important;
  width: var(--xyz3d-client-width, 100%) !important;
  height: var(--xyz3d-mobile-height, 100dvh) !important;
  margin: 0 !important;
  transform: none !important;
  translate: none !important;
  contain: layout paint !important;
  z-index: 2147483000 !important;
}


/* 0.18.96.108 — compact MOULD build-bed selector in the viewport toolbar. */
.xyz3d-mould-bed-control{display:flex;flex:0 0 auto;height:34px;min-width:128px;max-width:190px;margin:0;padding:0}
.xyz3d-mould-bed-control[hidden]{display:none!important}
.xyz3d-mould-bed-control select{height:34px;min-width:128px;max-width:190px;width:auto;border:1px solid var(--xyz-border);border-radius:8px;background:rgba(7,17,29,.9);color:var(--xyz-text);font:600 11px/1.1 inherit;padding:0 26px 0 10px;outline:none;cursor:pointer}
.xyz3d-mould-bed-control select:hover,.xyz3d-mould-bed-control select:focus{border-color:var(--xyz-border-strong);background:rgba(64,183,233,.12)}
@media(max-width:620px){.xyz3d-mould-bed-control{min-width:112px;max-width:142px}.xyz3d-mould-bed-control select{min-width:112px;max-width:142px;font-size:10px;padding-left:7px}}


/* 0.18.96.112 — smaller MOULD bed selector. */
.xyz3d-mould-bed-control{height:30px!important;min-width:104px!important;max-width:126px!important}
.xyz3d-mould-bed-control select{height:30px!important;min-width:104px!important;max-width:126px!important;font-size:10px!important;line-height:1!important;padding:0 22px 0 8px!important;border-radius:7px!important}
@media(max-width:620px){
  .xyz3d-mould-bed-control{height:28px!important;min-width:98px!important;max-width:116px!important}
  .xyz3d-mould-bed-control select{height:28px!important;min-width:98px!important;max-width:116px!important;font-size:9px!important;padding-left:6px!important;padding-right:18px!important}
}


/* 0.18.96.113 — Engineering/3D Scanning overview uses the full stage width. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview {
  width: 100%;
  max-width: none;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview-head p {
  max-width: none;
}
@media (min-width: 1400px) {
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview {
    padding-left: 30px;
    padding-right: 30px;
  }
  .xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual {
    height: clamp(260px, 25vh, 360px);
  }
}


/* 0.18.96.114 — wider engineering hero image for Part Modification / Tuning and scan overview. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:20px 18px 18px;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{height:300px;margin:12px 0 14px;border-radius:18px;}
@media (min-width:1200px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:18px 12px 16px;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{height:340px;}}
@media (min-width:1500px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{height:380px;}}
@media (max-width:1100px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{height:250px;}}
@media (max-width:760px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:14px;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{height:190px;}}


/* 0.18.96.115 — engineering hero image gets a much wider/taller presentation, less cropped on wide screens. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:16px 10px 16px!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview-inner{width:100%!important;max-width:none!important;margin:0!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:100%!important;margin:10px 0 12px!important;border-radius:18px!important;overflow:hidden!important;height:auto!important;aspect-ratio:4.15 / 1;min-height:320px;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-svg{width:100%!important;height:100%!important;display:block!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image{object-fit:cover!important;object-position:center center!important;}
@media (min-width:1600px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding-left:8px!important;padding-right:8px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{aspect-ratio:4.35 / 1;min-height:400px;}}
@media (max-width:1200px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:16px 14px 16px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{aspect-ratio:3.4 / 1;min-height:250px;}}
@media (max-width:760px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:14px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{aspect-ratio:2.4 / 1;min-height:180px;}}


/* 0.18.96.116 — engineering/scanning hero image full-width panoramic presentation. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:8px 0 16px!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview > *:not(.xyz3d-engineering-visual):not(.xyz3d-engineering-mini-panels):not(.xyz3d-engineering-workflow):not(.xyz3d-engineering-note){padding-left:14px;padding-right:14px;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview-inner{width:100%!important;max-width:none!important;margin:0!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:calc(100% + 28px)!important;max-width:none!important;margin:10px -14px 12px!important;border-radius:18px!important;overflow:hidden!important;height:auto!important;aspect-ratio:4.9 / 1;min-height:300px;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-svg{width:100%!important;height:100%!important;display:block!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image{object-fit:cover!important;object-position:center center!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-mini-panels,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-workflow,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-note{padding-left:14px;padding-right:14px;}
@media (min-width:1600px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding-top:6px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:calc(100% + 36px)!important;margin:10px -18px 12px!important;aspect-ratio:5.25 / 1;min-height:320px;}}
@media (max-width:1200px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:14px 8px 16px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview > *:not(.xyz3d-engineering-visual):not(.xyz3d-engineering-mini-panels):not(.xyz3d-engineering-workflow):not(.xyz3d-engineering-note),.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-mini-panels,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-workflow,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-note{padding-left:8px;padding-right:8px;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:calc(100% + 16px)!important;margin:10px -8px 12px!important;aspect-ratio:4.1 / 1;min-height:250px;}}
@media (max-width:760px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:12px 10px 14px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview > *:not(.xyz3d-engineering-visual):not(.xyz3d-engineering-mini-panels):not(.xyz3d-engineering-workflow):not(.xyz3d-engineering-note),.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-mini-panels,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-workflow,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-note{padding-left:0;padding-right:0;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:100%!important;margin:10px 0 12px!important;aspect-ratio:2.4 / 1;min-height:180px;}}


/* 0.18.96.117 — engineering hero images responsive without cropping; same 3:1 ratio on big and small screens. */
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:12px 12px 18px!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview-inner{width:100%!important;max-width:none!important;margin:0!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{width:100%!important;max-width:none!important;margin:10px 0 14px!important;border-radius:18px!important;overflow:hidden!important;aspect-ratio:3 / 1!important;min-height:0!important;height:auto!important;background:linear-gradient(180deg,rgba(4,18,40,.96),rgba(5,22,47,.96));}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-svg{display:block!important;width:100%!important;height:100%!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual-image{object-fit:cover!important;object-position:center center!important;}
.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-mini-panels,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-workflow,.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-note{padding-left:0!important;padding-right:0!important;}
@media (min-width:1500px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding-left:8px!important;padding-right:8px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{margin-top:8px!important;}}
@media (max-width:980px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:12px 10px 16px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{margin:10px 0 12px!important;}}
@media (max-width:760px){.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-overview{padding:10px 8px 14px!important;}.xyz3d-app.xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-visual{border-radius:16px!important;aspect-ratio:3 / 1!important;}}


/* 0.18.96.118 — 3D Scan / Engineering gets a wider settings rail on desktop. */
@media (min-width: 900px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-workspace {
    grid-template-columns: clamp(430px, 31vw, 520px) minmax(0, 1fr) !important;
    grid-template-areas: "settings stage" !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-panel {
    min-width: 0 !important;
    width: auto !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-engineering-service-grid {
    gap: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-engineering-service-grid button {
    min-height: 68px !important;
    padding: 11px 12px !important;
  }
}
@media (min-width: 1400px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-workspace {
    grid-template-columns: clamp(460px, 30vw, 540px) minmax(0, 1fr) !important;
  }
}


/* 0.18.96.119 — fallback 30/70 split for 3D Scan / Engineering; runtime sets the same ratio inline. */
@media (min-width:900px){.xyz3d-app.xyz3d-layout-v96.xyz3d-service-scan-wide > .xyz3d-main-shell .xyz3d-workspace{grid-template-columns:minmax(380px,3fr) minmax(0,7fr)!important;}}


/* 0.18.96.120 — 3D FROM PHOTOS launcher, Single Photo entry, and routed Create from Photo button. */
.xyz3d-create-photo-entry{margin-top:12px;padding-top:12px;border-top:1px solid rgba(91,198,238,.16)}
.xyz3d-create-photo-entry>button{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;border:1px solid rgba(82,205,245,.32);background:linear-gradient(135deg,rgba(9,52,74,.94),rgba(8,29,49,.96));color:#eefbff;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.xyz3d-create-photo-entry>button:hover{border-color:rgba(89,222,255,.62);background:linear-gradient(135deg,rgba(10,67,91,.98),rgba(8,34,57,.98))}
.xyz3d-create-photo-entry b{display:block;font-size:13px;line-height:1.15}.xyz3d-create-photo-entry small{display:block;margin-top:3px;color:#8faec1;font-size:10px}.xyz3d-create-photo-entry>button>i{font-style:normal;color:#64dfff;font-size:17px;text-align:right}.xyz3d-create-photo-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid rgba(91,213,250,.35);background:rgba(5,18,32,.62);color:#78e3ff;font-size:17px}
.xyz3d-photo-studio-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 14px 0;background:#07121e}
.xyz3d-photo-studio-modes button{min-width:0;padding:13px 14px;border:1px solid rgba(95,142,175,.25);border-radius:13px;background:linear-gradient(180deg,rgba(12,28,45,.96),rgba(7,20,34,.96));color:#dcecf5;text-align:left;cursor:pointer}
.xyz3d-photo-studio-modes button strong{display:block;font-size:13px;color:#f3fbff}.xyz3d-photo-studio-modes button span{display:block;margin-top:4px;font-size:10px;color:#829bad;white-space:normal}.xyz3d-photo-studio-modes button.is-active{border-color:rgba(50,205,252,.72);box-shadow:0 0 0 1px rgba(33,188,237,.12) inset;background:linear-gradient(180deg,rgba(10,55,78,.98),rgba(7,27,45,.98))}
.xyz3d-photo-single-workspace,.xyz3d-photo-video-workspace{margin:12px 14px 16px;padding:16px;border:1px solid rgba(91,170,209,.2);border-radius:16px;background:linear-gradient(180deg,rgba(7,19,32,.98),rgba(6,16,27,.98));color:#dcecf5}
.xyz3d-photo-single-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.xyz3d-photo-single-head span,.xyz3d-photo-video-workspace>div>span{font-size:10px;letter-spacing:.13em;color:#60d7fb;font-weight:800}.xyz3d-photo-single-head h3,.xyz3d-photo-video-workspace h3{margin:3px 0 5px;font-size:20px;color:#f3fbff}.xyz3d-photo-single-head p,.xyz3d-photo-video-workspace p{margin:0;color:#8fa7b8;font-size:12px;line-height:1.45;max-width:720px}.xyz3d-photo-return-target{flex:0 0 auto;border:1px solid rgba(81,219,255,.3);border-radius:999px;padding:6px 10px;background:rgba(6,52,70,.65);color:#92e9ff;font-size:10px;font-weight:800}
.xyz3d-photo-single-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);gap:14px}.xyz3d-single-photo-dropzone{position:relative;min-height:260px;display:grid;place-items:center;overflow:hidden;border:1px dashed rgba(87,190,229,.4);border-radius:14px;background:radial-gradient(circle at 50% 40%,rgba(25,70,97,.22),rgba(6,17,29,.75));cursor:pointer}.xyz3d-single-photo-dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.xyz3d-single-photo-dropzone>span{text-align:center}.xyz3d-single-photo-dropzone b{display:block;color:#f2fbff;font-size:15px}.xyz3d-single-photo-dropzone small{display:block;margin-top:5px;color:#7492a6}.xyz3d-single-photo-dropzone img{width:100%;height:100%;min-height:260px;object-fit:contain;background:#030a12}
.xyz3d-single-photo-options{display:grid;gap:9px}.xyz3d-single-photo-options button{padding:13px 14px;border:1px solid rgba(89,136,167,.24);border-radius:12px;background:rgba(10,25,41,.9);color:#dcecf5;text-align:left;cursor:pointer}.xyz3d-single-photo-options button strong{display:block;color:#f4fbff;font-size:13px}.xyz3d-single-photo-options button span{display:block;margin-top:4px;color:#8ba5b7;font-size:11px;line-height:1.35}.xyz3d-single-photo-options button small{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:rgba(73,129,158,.15);color:#70cfea;font-size:9px}.xyz3d-single-photo-options button.is-active{border-color:rgba(62,210,253,.62);background:linear-gradient(135deg,rgba(8,54,77,.95),rgba(8,27,45,.95))}
.xyz3d-single-photo-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(95,144,176,.18)}.xyz3d-single-photo-footer span{color:#89a3b6;font-size:11px}.xyz3d-single-photo-footer button{padding:9px 13px;border:1px solid rgba(67,211,251,.45);border-radius:10px;background:#0c6683;color:#fff;font-weight:750;cursor:pointer}.xyz3d-single-photo-footer button:disabled{opacity:.42;cursor:not-allowed}
.xyz3d-photo-video-workspace{min-height:240px;display:grid;place-items:center;text-align:center}.xyz3d-photo-video-workspace>div{max-width:720px}
@media(max-width:760px){.xyz3d-photo-studio-modes{grid-template-columns:1fr;padding:8px}.xyz3d-photo-single-workspace,.xyz3d-photo-video-workspace{margin:8px;padding:12px}.xyz3d-photo-single-layout{grid-template-columns:1fr}.xyz3d-photo-single-head{display:block}.xyz3d-photo-return-target{display:inline-block;margin-top:10px}.xyz3d-single-photo-dropzone,.xyz3d-single-photo-dropzone img{min-height:220px}.xyz3d-single-photo-footer{align-items:stretch;flex-direction:column}.xyz3d-single-photo-footer button{width:100%}}

/* 0.18.96.121 — Photogrammetry Studio viewport ownership.
   The photo shell is a sibling of the normal main shell, so it must own the
   available app height itself. Desktop gets independent stage/settings scroll;
   compact mode gets one continuous photo-studio scroller. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-header {
  flex: 0 0 52px !important;
  min-height: 52px !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav {
  flex: 0 0 46px !important;
  min-height: 46px !important;
  position: relative !important;
  top: auto !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-intro {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes {
  flex: 0 0 auto !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
  display: grid !important;
  flex: 1 1 auto !important;
  grid-template-columns: clamp(300px, 19vw, 360px) minmax(0, 1fr) !important;
  grid-template-areas: "settings stage" !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
  grid-area: stage !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
  border-left: 1px solid var(--xyz-border) !important;
  border-right: 0 !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
  grid-area: settings !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
  scroll-padding-bottom: 140px !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
  height: auto !important;
  min-height: min-content !important;
  overflow: visible !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
  height: auto !important;
  min-height: min(690px, calc(100dvh - 190px)) !important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-main-shell [data-photo-open] {
  position: relative !important;
  z-index: 5 !important;
  pointer-events: auto !important;
}

@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
    height: 100% !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-header {
    display: none !important;
    flex-basis: 0 !important;
    min-height: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav {
    position: sticky !important;
    top: 0 !important;
    z-index: 60 !important;
    flex: 0 0 38px !important;
    min-height: 38px !important;
    padding: 0 4px !important;
    background: rgba(7,16,29,.985) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav button {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 38px !important;
    padding: 6px 9px 5px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav small,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav span {
    display: none !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 6px !important;
    padding: 7px 7px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes::-webkit-scrollbar { display: none !important; }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes button {
    flex: 0 0 min(72vw, 230px) !important;
    min-width: 170px !important;
    padding: 10px 11px !important;
    white-space: normal !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    order: 1 !important;
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid var(--xyz-border) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    order: 2 !important;
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    scrollbar-gutter: auto !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    min-height: clamp(430px, 66dvh, 620px) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-single-workspace,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-video-workspace {
    flex: none !important;
    min-height: 0 !important;
  }
}


/* 0.18.96.122 — Photogrammetry workstation layout.
   Keep the live 3D capture guide visible while capture/project/reconstruction
   controls scroll in a separate lower dock. The left settings rail keeps its
   own independent scroll. */
@media (min-width: 761px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    overflow: hidden !important;
    padding: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-rows: minmax(300px, 56%) minmax(180px, 44%) !important;
    gap: 10px !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 10px !important;
    overflow: hidden !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    position: relative !important;
    display: grid !important;
    grid-template-rows: auto minmax(0,1fr) auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 14px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer {
    min-height: 0 !important;
    height: 100% !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head {
    padding: 9px 13px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy {
    padding: 9px 13px 10px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-stage-tools {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
    align-content: start !important;
    gap: 10px !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 4px 8px 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-stage-tools > .xyz3d-capture-mode-panel {
    grid-column: 1 / -1 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-stage-tools > .xyz3d-local-project,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-stage-tools > .xyz3d-reconstruction-panel {
    margin: 0 !important;
    min-width: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-stage-tools .xyz3d-capture-mode-grid {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  }
}

@media (min-width: 761px) and (max-height: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    grid-template-rows: minmax(260px, 52%) minmax(170px, 48%) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
}

@media (max-width: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-stage-tools {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin-top: 10px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    min-height: clamp(360px, 58dvh, 520px) !important;
    max-height: none !important;
  }
}


/* 0.18.96.123 — Photogrammetry 30/70 workstation.
   Capture / Project / Reconstruction live in the left settings rail; the
   right side is permanently reserved for the guided 3D preview. */
@media (min-width: 761px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace:not([hidden]) {
    grid-template-columns: minmax(360px, 3fr) minmax(0, 7fr) !important;
    grid-template-areas: "settings stage" !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    grid-area: settings !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scroll-padding-bottom: 180px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    grid-area: stage !important;
    overflow: hidden !important;
    min-width: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    display: block !important;
    padding: 10px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    margin: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 8px 28px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools > section {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-capture-mode-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-around-route-options,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-dome-route-options {
    min-width: 0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-local-project-metrics,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-reconstruction-metrics {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (min-width: 621px) and (max-width: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace:not([hidden]) {
    grid-template-columns: minmax(260px, 3fr) minmax(0, 7fr) !important;
    grid-template-areas: "settings stage" !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools {
    display: grid !important;
    gap: 8px !important;
    padding: 0 6px 24px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-capture-mode-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 620px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-main-shell {
    display: none !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
    display: flex !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 8px 28px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools .xyz3d-capture-mode-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}


/* 0.18.96.124 — compact/fixed Photogrammetry workstation in narrow layouts.
   Same interaction model as FDM / Resin / Mould: the visual workspace stays
   visible while its settings rail scrolls independently. */
@media (max-width: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    height:100dvh !important;
    min-height:0 !important;
    max-height:100dvh !important;
    overflow:hidden !important;
  }

  /* Compact input-mode switcher. Keep all three choices immediately reachable. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes {
    flex:0 0 42px !important;
    min-height:42px !important;
    height:42px !important;
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:5px !important;
    padding:4px 6px !important;
    overflow:hidden !important;
    background:#07121e !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes button {
    min-width:0 !important;
    width:100% !important;
    height:34px !important;
    padding:5px 7px !important;
    border-radius:9px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes button strong {
    display:block !important;
    font-size:10px !important;
    line-height:1.05 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes button span {
    display:none !important;
  }

  /* The multiphoto workspace owns only the remaining viewport. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    flex:1 1 auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:minmax(260px,46%) minmax(0,54%) !important;
    grid-template-areas:"stage" "settings" !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
  }

  /* Fixed visual area — never scrolls away while changing settings. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    grid-area:stage !important;
    order:unset !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
    border:0 !important;
    border-bottom:1px solid var(--xyz-border) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    padding:4px !important;
    overflow:hidden !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    display:grid !important;
    grid-template-rows:auto minmax(0,1fr) auto !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    margin:0 !important;
    overflow:hidden !important;
    border-radius:12px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head {
    padding:6px 9px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer {
    height:100% !important;
    min-height:0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy {
    padding:7px 9px 8px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy > span {
    display:none !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions {
    margin-top:4px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions button {
    min-height:30px !important;
    padding:6px 9px !important;
    font-size:10px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions small {
    display:none !important;
  }

  /* Settings are the only scrolling surface, like the other studio modes. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    grid-area:settings !important;
    order:unset !important;
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
    scrollbar-gutter:auto !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-tabs {
    flex:0 0 36px !important;
    min-height:36px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-body {
    flex:1 1 auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-gutter:stable !important;
    padding-bottom:90px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-left-tools {
    padding-bottom:40px !important;
  }
}

/* Very short windows: preserve usable settings space instead of allowing the
   capture preview to consume the whole viewport. */
@media (max-width:760px) and (max-height:700px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    grid-template-rows:minmax(220px,42%) minmax(0,58%) !important;
  }
}


/* 0.18.96.125 — Single Photo workstation: same 30/70 interaction model as
   Photogrammetry, FDM and Mould. Settings scroll independently; the image /
   future mask-depth-3D preview remains fixed and visible. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-single-workspace:not([hidden]){
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:0!important;
}
.xyz3d-photo-single-shell{
  display:grid;
  grid-template-columns:minmax(360px,3fr) minmax(0,7fr);
  grid-template-areas:"single-settings single-stage";
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.xyz3d-photo-single-settings{
  grid-area:single-settings;
  box-sizing:border-box;
  min-width:0;
  min-height:0;
  height:100%;
  padding:12px 10px 90px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  border-right:1px solid rgba(91,170,209,.2);
  background:linear-gradient(180deg,rgba(7,19,32,.99),rgba(6,16,27,.99));
}
.xyz3d-photo-single-settings .xyz3d-photo-single-head{
  display:block;
  margin:0 0 10px;
}
.xyz3d-photo-single-settings .xyz3d-photo-single-head h3{
  margin:3px 0 4px;
  font-size:16px;
  line-height:1.2;
}
.xyz3d-photo-single-settings .xyz3d-photo-single-head p{
  max-width:none;
  font-size:10px;
  line-height:1.35;
}
.xyz3d-photo-single-settings .xyz3d-photo-return-target{
  display:inline-block;
  margin-top:8px;
}
.xyz3d-photo-single-settings .xyz3d-single-photo-options{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
}
.xyz3d-photo-single-settings .xyz3d-single-photo-options button{
  padding:10px 11px;
  border-radius:10px;
}
.xyz3d-photo-single-settings .xyz3d-single-photo-options button strong{font-size:12px}
.xyz3d-photo-single-settings .xyz3d-single-photo-options button span{font-size:10px}
.xyz3d-photo-single-settings .xyz3d-single-photo-options button small{margin-top:5px}
.xyz3d-photo-single-settings .xyz3d-single-photo-footer{
  position:sticky;
  bottom:-90px;
  z-index:2;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:12px;
  padding:10px 0 0;
  background:linear-gradient(180deg,rgba(6,16,27,0),rgba(6,16,27,.98) 18%);
}
.xyz3d-photo-single-settings .xyz3d-single-photo-footer button{width:100%}
.xyz3d-photo-single-stage{
  grid-area:single-stage;
  box-sizing:border-box;
  min-width:0;
  min-height:0;
  height:100%;
  padding:10px;
  overflow:hidden;
  background:linear-gradient(180deg,#071524,#06111c);
}
.xyz3d-photo-single-stage .xyz3d-single-photo-dropzone{
  width:100%;
  height:100%;
  min-height:0;
  box-sizing:border-box;
  border-radius:14px;
}
.xyz3d-photo-single-stage .xyz3d-single-photo-dropzone img{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
}
@media (max-width:760px){
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-single-workspace:not([hidden]){
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .xyz3d-photo-single-shell{
    grid-template-columns:1fr;
    grid-template-rows:minmax(220px,46%) minmax(0,54%);
    grid-template-areas:"single-stage" "single-settings";
  }
  .xyz3d-photo-single-stage{
    padding:5px;
    border-bottom:1px solid rgba(91,170,209,.2);
  }
  .xyz3d-photo-single-settings{
    padding:9px 8px 80px;
    border-right:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .xyz3d-photo-single-stage .xyz3d-single-photo-dropzone,
  .xyz3d-photo-single-stage .xyz3d-single-photo-dropzone img{
    min-height:0!important;
    height:100%!important;
  }
  .xyz3d-photo-single-settings .xyz3d-photo-single-head h3{font-size:14px}
  .xyz3d-photo-single-settings .xyz3d-photo-single-head p{display:none}
}
@media (max-width:760px) and (max-height:700px){
  .xyz3d-photo-single-shell{
    grid-template-rows:minmax(180px,42%) minmax(0,58%);
  }
}


/* 0.18.96.126 — Photogrammetry narrow-layout usability pass.
   1) Make the guided capture stage stretch edge-to-edge inside the workspace.
   2) Make the entire Configure column the independent scroller, including tabs.
   3) Remove extra inner side padding that narrows the live capture area. */
@media (max-width: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    grid-template-rows: minmax(300px, 50%) minmax(0, 50%) !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    padding: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    padding: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    width: 100% !important;
    border-radius: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-tabs {
    flex: 0 0 auto !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-body {
    flex: 0 0 auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 90px !important;
  }
}


/* 0.18.96.127 — hard fix for compact Photogrammetry layout.
   The capture stage is truly full-bleed; Configure/Review is not sticky and
   scrolls away together with the settings content. */
@media (max-width: 760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: minmax(300px, 50%) minmax(0, 50%) !important;
    overflow: hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    border-left: 0 !important;
    border-right: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
  }

  /* One scroll owner for the entire settings half. The tabs are ordinary
     content and therefore disappear naturally when the user scrolls down. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: auto !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-tabs {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    inset: auto !important;
    inset-block-start: auto !important;
    z-index: auto !important;
    transform: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-body {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 110px !important;
  }
}


/* 0.18.96.128 — mobile Photogrammetry fullscreen + compact fixed preview.
   The preview no longer consumes multiple screens; settings own the remaining
   height. A user-gesture Full Screen button can hide browser chrome on Android. */
.xyz3d-photo-fullscreen-btn { display:none !important; }

@media (max-width:760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell:not([hidden]) {
    position:fixed !important;
    inset:0 !important;
    z-index:2147483000 !important;
    width:100dvw !important;
    max-width:100dvw !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#06111c !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav {
    flex:0 0 42px !important;
    min-height:42px !important;
    height:42px !important;
    position:relative !important;
    top:auto !important;
    z-index:5 !important;
    display:flex !important;
    align-items:stretch !important;
    width:100% !important;
    overflow:hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav > button {
    min-width:0 !important;
    min-height:42px !important;
    height:42px !important;
    padding:6px 10px !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav > button:not(.xyz3d-photo-fullscreen-btn) {
    flex:1 1 auto !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav .xyz3d-photo-fullscreen-btn {
    display:flex !important;
    flex:0 0 48px !important;
    width:48px !important;
    min-width:48px !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    border-left:1px solid rgba(91,170,209,.18) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav .xyz3d-photo-fullscreen-btn strong {
    font-size:20px !important;
    line-height:1 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-service-nav .xyz3d-photo-fullscreen-btn span {
    display:none !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-studio-modes {
    flex:0 0 42px !important;
    min-height:42px !important;
    height:42px !important;
  }

  /* Fixed compact visual track + independently scrollable Configure track. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    flex:1 1 auto !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:clamp(280px,38dvh,380px) minmax(0,1fr) !important;
    grid-template-areas:"stage" "settings" !important;
    overflow:hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-stage {
    grid-area:stage !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    padding:0 !important;
    overflow:hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-upload-view,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-upload {
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    display:grid !important;
    grid-template-rows:auto minmax(0,1fr) auto !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border-radius:0 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer {
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer canvas {
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head {
    padding:6px 10px !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy {
    padding:7px 10px 8px !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel {
    grid-area:settings !important;
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-tabs {
    position:static !important;
    inset:auto !important;
    top:auto !important;
    z-index:auto !important;
    transform:none !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace > .xyz3d-panel > .xyz3d-panel-body {
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    padding-bottom:96px !important;
  }
}

/* Very short mobile screens get an even smaller preview. */
@media (max-width:760px) and (max-height:700px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    grid-template-rows:clamp(230px,34dvh,300px) minmax(0,1fr) !important;
  }
}

/* Keep shell pinned correctly once the Fullscreen API activates. */
.xyz3d-photo-service-shell:fullscreen,
.xyz3d-photo-service-shell:-webkit-full-screen {
  width:100vw !important;
  height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  background:#06111c !important;
}


/* 0.18.96.129 — mobile Guided Capture: controls overlay the preview instead
   of consuming its height. The viewer owns the whole fixed stage. */
@media (max-width:760px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    grid-template-rows:clamp(330px,44dvh,430px) minmax(0,1fr) !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide {
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
    background:#071726 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-viewer {
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head {
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    z-index:4 !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:8px !important;
    margin:0 !important;
    padding:8px 10px 16px !important;
    pointer-events:none !important;
    background:linear-gradient(180deg,rgba(4,16,28,.96) 0%,rgba(4,16,28,.78) 62%,rgba(4,16,28,0) 100%) !important;
    border:0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head > div:first-child {
    max-width:68% !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head span {
    font-size:10px !important;
    line-height:1.1 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-head small {
    display:block !important;
    margin-top:3px !important;
    font-size:8.5px !important;
    line-height:1.2 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-metrics {
    flex:0 0 auto !important;
    min-width:104px !important;
    padding:5px 7px !important;
    border:1px solid rgba(91,170,209,.28) !important;
    border-radius:12px !important;
    background:rgba(5,20,33,.78) !important;
    backdrop-filter:blur(5px) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-metrics strong {
    font-size:10px !important;
    line-height:1.1 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-metrics small {
    font-size:8px !important;
    line-height:1.15 !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy {
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:4 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;
    margin:0 !important;
    padding:22px 10px 9px !important;
    background:linear-gradient(0deg,rgba(4,16,28,.98) 0%,rgba(4,16,28,.82) 62%,rgba(4,16,28,0) 100%) !important;
    border:0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy > strong {
    flex:1 1 auto !important;
    min-width:0 !important;
    font-size:11px !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-copy > span {
    display:none !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions {
    flex:0 0 auto !important;
    margin:0 !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions button {
    min-height:30px !important;
    padding:6px 9px !important;
    font-size:9px !important;
    border-radius:9px !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-actions small {
    display:none !important;
  }

  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-status,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-route-fallback {
    position:absolute !important;
    inset:0 !important;
  }
}

@media (max-width:760px) and (max-height:700px) {
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]) {
    grid-template-rows:clamp(280px,40dvh,340px) minmax(0,1fr) !important;
  }
}


/* 0.18.96.131 — rollback Guided Capture to the clean 0.18.96.129 layout.
   Expanded state stays visually unchanged; only the informational chrome can
   be collapsed to leave the 3D route unobstructed. */
.xyz3d-photo-guide-toggle{display:none;}
@media (max-width:760px){
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide-toggle{
    display:flex!important;
    position:absolute!important;
    top:7px!important;
    left:7px!important;
    z-index:8!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:26px!important;
    width:26px!important;
    height:26px!important;
    padding:0!important;
    border:1px solid rgba(77,199,255,.34)!important;
    border-radius:9px!important;
    background:rgba(5,20,33,.64)!important;
    backdrop-filter:blur(5px)!important;
    color:#bfefff!important;
    font-size:13px!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  /* Keep the expanded view identical to .129 / the reference screenshot. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide:not(.is-ui-collapsed) .xyz3d-photo-route-head{
    padding-left:42px!important;
  }

  /* Collapsed: only a small GUIDE handle remains; 3D viewer keeps the same
     full stage and no element is moved to the side. */
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide.is-ui-collapsed .xyz3d-photo-guide-toggle{
    width:auto!important;
    min-width:70px!important;
    padding:0 9px!important;
    font-size:9px!important;
    font-weight:800!important;
    letter-spacing:.06em!important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide.is-ui-collapsed .xyz3d-photo-route-head,
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell .xyz3d-photo-workspace .xyz3d-photo-guide.is-ui-collapsed .xyz3d-photo-guide-copy{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* 0.18.96.132 — Single Photo Vector / Stamp workstation step 1. */
.xyz3d-photo-single-shell{
  display:grid;
  grid-template-columns:minmax(280px,340px) minmax(0,1fr);
  gap:14px;
  align-items:stretch;
}
.xyz3d-photo-single-settings,
.xyz3d-photo-single-stage{
  min-width:0;
}
.xyz3d-single-panel-section{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(99,151,185,.14);
}
.xyz3d-single-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.xyz3d-single-panel-head strong{
  display:block;
  color:#f0f9ff;
  font-size:13px;
}
.xyz3d-single-panel-head small{
  color:#78a0b7;
  font-size:10px;
}
.xyz3d-single-field-grid{
  display:grid;
  gap:10px;
}
.xyz3d-single-field-grid label{
  display:grid;
  gap:5px;
  color:#d4e7f1;
  font-size:12px;
}
.xyz3d-single-field-grid label>span{font-weight:700;color:#f1fbff}
.xyz3d-single-field-grid input[type="number"],
.xyz3d-single-field-grid input[type="text"],
.xyz3d-single-field-grid select{
  min-height:38px;
  padding:9px 10px;
  border:1px solid rgba(94,145,176,.22);
  border-radius:10px;
  background:rgba(4,16,28,.82);
  color:#ecf8ff;
}
.xyz3d-single-field-grid input[type="range"]{width:100%}
.xyz3d-single-field-grid small{color:#7695a8;font-size:10px}
.xyz3d-single-check{
  display:flex !important;
  align-items:flex-start;
  gap:8px;
}
.xyz3d-single-check input{margin-top:3px}
.xyz3d-single-check span{font-weight:600 !important;color:#dfedf5 !important}
.xyz3d-single-stage-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.xyz3d-single-preview-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.xyz3d-single-preview-tabs button{
  min-height:34px;
  padding:8px 12px;
  border:1px solid rgba(84,142,174,.26);
  border-radius:999px;
  background:rgba(7,19,32,.84);
  color:#bdd9e9;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.xyz3d-single-preview-tabs button.is-active{
  border-color:rgba(90,221,255,.64);
  background:linear-gradient(135deg,rgba(8,54,77,.95),rgba(8,27,45,.95));
  color:#fff;
}
.xyz3d-single-stage-meta{
  color:#84a7bb;
  font-size:11px;
  text-align:right;
}
.xyz3d-single-photo-dropzone-stage{
  min-height:420px;
  background:
    linear-gradient(rgba(75,129,157,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75,129,157,.08) 1px, transparent 1px),
    radial-gradient(circle at 50% 35%,rgba(18,56,79,.22),rgba(5,17,28,.95));
  background-size:22px 22px,22px 22px,auto;
}
.xyz3d-single-stage-empty{
  display:grid;
  gap:6px;
  text-align:center;
  max-width:340px;
}
.xyz3d-single-stage-empty i{
  color:#6e94a8;
  font-style:normal;
  font-size:11px;
  line-height:1.45;
}
.xyz3d-single-photo-dropzone-stage canvas{
  display:block;
  max-width:100%;
  width:auto;
  height:auto;
  min-height:260px;
  object-fit:contain;
  image-rendering:auto;
}
.xyz3d-single-photo-dropzone-stage.is-loaded{
  align-items:center;
}
@media (max-width: 920px){
  .xyz3d-photo-single-shell{grid-template-columns:1fr}
  .xyz3d-single-stage-toolbar{align-items:flex-start;flex-direction:column}
  .xyz3d-single-stage-meta{text-align:left}
}
@media (max-width: 760px){
  .xyz3d-photo-single-stage .xyz3d-single-photo-dropzone-stage{min-height:300px}
}

/* 0.18.96.133 — Single Photo Vector / Stamp Step 2. */
.xyz3d-single-vector-step2[hidden],
.xyz3d-single-extrusion-panel[hidden]{display:none!important}
.xyz3d-single-vector-step2-active .xyz3d-photo-single-settings > :not(.xyz3d-single-vector-step2){display:none!important}
.xyz3d-single-vector-step2-active .xyz3d-photo-single-stage > :not(.xyz3d-single-extrusion-panel){display:none!important}
.xyz3d-single-vector-step2{
  display:block;
  min-height:100%;
}
.xyz3d-single-step2-head{
  display:grid;
  gap:10px;
}
.xyz3d-single-step2-head>button{
  width:max-content;
  min-height:32px;
  padding:6px 10px;
  border:1px solid rgba(83,167,203,.28);
  border-radius:9px;
  background:rgba(7,24,39,.9);
  color:#9bdcf2;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}
.xyz3d-single-step2-head span{
  color:#62d9fb;
  font-size:10px;
  letter-spacing:.13em;
  font-weight:800;
}
.xyz3d-single-step2-head h3{
  margin:3px 0 5px;
  color:#f4fbff;
  font-size:18px;
}
.xyz3d-single-step2-head p{
  margin:0;
  color:#8fa7b8;
  font-size:11px;
  line-height:1.45;
}
.xyz3d-single-step2-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:12px;
}
.xyz3d-single-step2-summary>div{
  padding:9px 10px;
  border:1px solid rgba(87,143,173,.18);
  border-radius:10px;
  background:rgba(8,23,38,.72);
}
.xyz3d-single-step2-summary span,
.xyz3d-single-step2-summary strong{display:block}
.xyz3d-single-step2-summary span{color:#7797aa;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.xyz3d-single-step2-summary strong{margin-top:3px;color:#e8f7ff;font-size:11px;word-break:break-word}
.xyz3d-single-output-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
}
.xyz3d-single-output-grid button{
  padding:10px 11px;
  border:1px solid rgba(85,139,169,.22);
  border-radius:10px;
  background:rgba(8,24,40,.84);
  color:#d8eaf3;
  text-align:left;
  cursor:pointer;
}
.xyz3d-single-output-grid button strong,
.xyz3d-single-output-grid button span{display:block}
.xyz3d-single-output-grid button strong{font-size:11px;color:#f3fbff}
.xyz3d-single-output-grid button span{margin-top:3px;color:#819fb2;font-size:9px;line-height:1.35}
.xyz3d-single-output-grid button.is-active{
  border-color:rgba(74,213,253,.58);
  background:linear-gradient(135deg,rgba(8,55,77,.96),rgba(7,29,48,.96));
}
.xyz3d-single-step2-fields{grid-template-columns:1fr 1fr}
.xyz3d-single-step2-fields .xyz3d-single-check{grid-column:1/-1}
.xyz3d-single-mm-input{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:7px;
}
.xyz3d-single-mm-input small{font-size:10px;color:#7da1b5}
.xyz3d-single-step2-next p{
  margin:0 0 10px;
  color:#819eaf;
  font-size:10px;
  line-height:1.45;
}
.xyz3d-single-step2-next>button{
  width:100%;
  min-height:38px;
  padding:8px 12px;
  border:1px solid rgba(66,210,250,.46);
  border-radius:10px;
  background:#0c6683;
  color:#fff;
  font-weight:760;
  cursor:pointer;
}
.xyz3d-single-step2-next>small{
  display:block;
  margin-top:7px;
  color:#7392a5;
  font-size:9px;
}
.xyz3d-single-extrusion-panel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:100%;
  height:100%;
  min-height:0;
}
.xyz3d-single-extrusion-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:8px 10px;
  border-bottom:1px solid rgba(86,143,173,.16);
}
.xyz3d-single-extrusion-toolbar span,
.xyz3d-single-extrusion-toolbar strong{display:block}
.xyz3d-single-extrusion-toolbar span{color:#5cd8fb;font-size:9px;letter-spacing:.12em;font-weight:800}
.xyz3d-single-extrusion-toolbar strong{margin-top:2px;color:#f1fbff;font-size:13px}
.xyz3d-single-extrusion-toolbar small{color:#7fa1b5;font-size:10px;text-align:right}
.xyz3d-single-extrusion-stage{
  min-height:0;
  overflow:hidden;
  background:#03101a;
}
.xyz3d-single-extrusion-stage canvas{
  display:block;
  width:100%;
  height:100%;
}
.xyz3d-single-extrusion-note{
  padding:8px 10px;
  border-top:1px solid rgba(86,143,173,.16);
  color:#7898ab;
  font-size:10px;
  line-height:1.4;
}
@media(max-width:760px){
  .xyz3d-single-step2-summary{grid-template-columns:1fr}
  .xyz3d-single-step2-fields{grid-template-columns:1fr}
  .xyz3d-single-step2-fields .xyz3d-single-check{grid-column:auto}
  .xyz3d-single-extrusion-toolbar{align-items:flex-start;flex-direction:column}
  .xyz3d-single-extrusion-toolbar small{text-align:left}
}

/* 0.18.96.135 — refined Vector / Stamp solid workstation. */
.xyz3d-single-quality-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.xyz3d-single-quality-grid button{
  min-height:48px;
  padding:8px 7px;
  border:1px solid rgba(84,142,174,.26);
  border-radius:10px;
  background:rgba(7,20,33,.86);
  color:#d7e9f3;
  cursor:pointer;
  text-align:left;
}
.xyz3d-single-quality-grid button strong,
.xyz3d-single-quality-grid button span{display:block}
.xyz3d-single-quality-grid button strong{font-size:11px;color:#f4fbff}
.xyz3d-single-quality-grid button span{margin-top:3px;font-size:9px;color:#7898ab}
.xyz3d-single-quality-grid button.is-active{
  border-color:rgba(66,213,255,.65);
  background:linear-gradient(135deg,rgba(8,58,80,.98),rgba(7,30,48,.98));
}
.xyz3d-single-live-check{margin-top:10px}
.xyz3d-single-build-solid{
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border:1px solid rgba(77,217,255,.58);
  border-radius:10px;
  background:linear-gradient(135deg,#0c7799,#11658d);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.xyz3d-single-solid-toolbar{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:9px 12px;
  border-bottom:1px solid rgba(93,155,187,.16);
  background:rgba(5,17,29,.94);
}
.xyz3d-single-solid-toolbar>div:first-child span,
.xyz3d-single-solid-toolbar>div:first-child strong,
.xyz3d-single-solid-toolbar>div:first-child small{display:block}
.xyz3d-single-solid-toolbar>div:first-child span{font-size:9px;letter-spacing:.12em;color:#57d7fa;font-weight:800}
.xyz3d-single-solid-toolbar>div:first-child strong{margin-top:2px;font-size:13px;color:#f4fbff}
.xyz3d-single-solid-toolbar>div:first-child small{margin-top:2px;font-size:9px;color:#7b99aa}
.xyz3d-single-view-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.xyz3d-single-view-buttons button{
  min-height:30px;
  padding:6px 9px;
  border:1px solid rgba(88,147,180,.28);
  border-radius:8px;
  background:rgba(7,24,39,.88);
  color:#bddbe9;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}
.xyz3d-single-view-buttons button:hover{border-color:rgba(81,215,255,.62);color:#fff}
.xyz3d-single-solid-stage-wrap{position:relative;min-height:520px;height:clamp(430px,66vh,820px)}
.xyz3d-single-solid-stage-toolbar{
  position:absolute;
  top:10px;
  left:10px;
  z-index:4;
  display:flex;
  gap:4px;
  width:min(520px,calc(100% - 20px));
  max-width:calc(100% - 20px);
  overflow-x:auto;
  scrollbar-width:none;
}
.xyz3d-single-solid-stage-toolbar::-webkit-scrollbar{display:none}
.xyz3d-single-solid-stage-toolbar button{
  align-items:center;
  background:rgba(7,17,29,.84);
  border:1px solid rgba(125,202,235,.22);
  border-radius:8px;
  color:#c7deea;
  display:flex;
  justify-content:center;
  height:34px;
  flex:0 0 42px;
  min-width:42px;
  max-width:58px;
  padding:0;
  cursor:pointer;
  transition:150ms ease;
}
.xyz3d-single-solid-stage-toolbar button:hover,.xyz3d-single-solid-stage-toolbar button[aria-pressed="true"]{background:rgba(64,183,233,.17);border-color:rgba(132,217,246,.72);color:#fff}
.xyz3d-single-solid-stage-toolbar svg{fill:none;height:16px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;width:16px}
.xyz3d-single-solid-stage{
  position:relative;
  min-height:520px;
  height:100%;
  overflow:hidden;
  background:radial-gradient(circle at 50% 30%, rgba(14,42,66,.42), rgba(6,18,32,.96) 58%, rgba(3,11,19,.99));
}
.xyz3d-single-solid-stage::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(136,201,230,.04),rgba(0,0,0,0) 22%)}
.xyz3d-single-solid-stage>canvas{
  position:absolute!important;
  inset:0;
  width:100%!important;
  height:100%!important;
  touch-action:none;
}
.xyz3d-single-solid-loading{
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  place-content:center;
  gap:7px;
  text-align:center;
  pointer-events:none;
  background:radial-gradient(circle at 50% 45%,rgba(10,42,61,.55),rgba(3,13,23,.94));
}
.xyz3d-single-solid-loading[hidden]{display:none!important}
.xyz3d-single-solid-loading strong{color:#ecfaff;font-size:16px}
.xyz3d-single-solid-loading span{color:#7ca0b5;font-size:11px}
.xyz3d-single-solid-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:48px;
  padding:8px 10px;
  border-top:1px solid rgba(93,155,187,.16);
  background:rgba(5,17,29,.96);
}
.xyz3d-single-solid-metrics{min-width:0;color:#83a8bb;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xyz3d-single-solid-actions{display:flex;gap:7px;flex:0 0 auto}
.xyz3d-single-solid-actions button{
  min-height:34px;
  padding:7px 11px;
  border:1px solid rgba(78,195,229,.42);
  border-radius:8px;
  background:#0b536e;
  color:#eefbff;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.xyz3d-single-solid-actions button:disabled{opacity:.38;cursor:not-allowed}
.xyz3d-single-solid-actions .xyz3d-single-use-model{background:#0d7990;border-color:rgba(72,220,255,.62)}
.xyz3d-single-vector-step2-active .xyz3d-photo-single-stage{
  padding:0!important;
}
.xyz3d-single-vector-step2-active .xyz3d-single-extrusion-panel{
  display:flex!important;
  flex-direction:column;
  height:100%;
  min-height:0;
}
.xyz3d-single-vector-step2-active .xyz3d-single-solid-stage{flex:1 1 auto;min-height:0}
@media (max-width:900px){
  .xyz3d-single-solid-toolbar{align-items:flex-start;flex-direction:column}
  .xyz3d-single-view-buttons{justify-content:flex-start}
  .xyz3d-single-solid-footer{align-items:stretch;flex-direction:column}
  .xyz3d-single-solid-actions{width:100%}
  .xyz3d-single-solid-actions button{flex:1 1 0}
}
@media (max-width:760px){
  .xyz3d-single-solid-stage-wrap{height:clamp(300px,48dvh,500px);min-height:300px}
  .xyz3d-single-solid-stage{min-height:300px}
  .xyz3d-single-solid-toolbar{min-height:48px;padding:7px 8px}
  .xyz3d-single-solid-toolbar>div:first-child small{display:none}
  .xyz3d-single-solid-stage-toolbar{top:8px;left:8px;width:calc(100% - 16px)}
  .xyz3d-single-quality-grid{grid-template-columns:1fr 1fr 1fr}
}

/* 0.18.96.137 — Vector/Stamp artwork editor + unified 3D workbench. */
.xyz3d-stamp-artwork-launch>button{
  width:100%;min-height:42px;border:1px solid rgba(74,218,255,.52);border-radius:10px;
  background:linear-gradient(135deg,rgba(10,83,112,.96),rgba(10,55,83,.96));color:#fff;font-weight:800;cursor:pointer;
}
.xyz3d-stamp-artwork-launch>small{display:block;margin-top:7px;color:#7798aa;font-size:10px;line-height:1.45}
.xyz3d-stamp-editor-overlay{
  position:fixed!important;inset:0!important;z-index:2147483400!important;display:grid!important;
  grid-template-rows:auto minmax(0,1fr);background:#06111c;overflow:hidden;
}
.xyz3d-stamp-editor-overlay[hidden]{display:none!important}
.xyz3d-stamp-editor-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 12px;
  border-bottom:1px solid rgba(92,157,190,.2);background:rgba(4,14,25,.98);min-height:54px;
}
.xyz3d-stamp-editor-head>div:first-child span,.xyz3d-stamp-editor-head>div:first-child strong,.xyz3d-stamp-editor-head>div:first-child small{display:block}
.xyz3d-stamp-editor-head>div:first-child span{font-size:9px;letter-spacing:.13em;color:#58dcff;font-weight:900}
.xyz3d-stamp-editor-head>div:first-child strong{font-size:15px;color:#f4fbff;margin-top:2px}
.xyz3d-stamp-editor-head>div:first-child small{font-size:10px;color:#7c9aad;margin-top:2px}
.xyz3d-stamp-editor-head>div:last-child{display:flex;gap:8px;align-items:center}
.xyz3d-stamp-editor-head button{min-height:36px;padding:8px 12px;border-radius:8px;border:1px solid rgba(93,173,208,.28);background:rgba(7,22,36,.94);color:#d9eff9;font-weight:800;cursor:pointer}
.xyz3d-stamp-editor-head [data-stamp-editor-use]{border-color:rgba(78,220,255,.58);background:linear-gradient(135deg,#0c789a,#12668d);color:#fff}
.xyz3d-stamp-editor-host{min-height:0;overflow:auto;background:#07131f}
.xyz3d-stamp-editor-host .xyzst-shell{min-height:100%;border:0!important;border-radius:0!important}
.xyz3d-stamp-editor-host .xyzst-head{display:none!important}
/* Stamp editor reuses the Vinyl vector/text core but not its vinyl order/price sidebar. */
.xyz3d-stamp-editor-host .xyzst-panel{display:none!important}
.xyz3d-stamp-editor-host .xyzst-workspace{grid-template-columns:minmax(0,1fr)!important}.xyz3d-stamp-editor-host .xyzst-stagecol{border-right:0!important}
.xyz3d-stamp-editor-host .xyzst-toolbar [data-open-mockup-tools],
.xyz3d-stamp-editor-host .xyzst-toolbar .xyzst-mockup-camera{display:none!important}

/* Match the main 3D workspaces: viewer owns the stage, branded bed stays visible. */
.xyz3d-single-vector-step2-active .xyz3d-photo-single-stage{background:#06111c!important}
.xyz3d-single-solid-stage-wrap{background:#06111c!important}
.xyz3d-single-solid-stage{background:#06111c!important}
.xyz3d-single-solid-stage-toolbar{top:10px;left:10px}
.xyz3d-single-solid-stage-toolbar button{backdrop-filter:blur(5px)}
.xyz3d-single-solid-metrics{font-variant-numeric:tabular-nums}

@media (max-width:760px){
  .xyz3d-stamp-editor-head{align-items:flex-start;flex-direction:column;padding:7px 8px}
  .xyz3d-stamp-editor-head>div:last-child{width:100%}
  .xyz3d-stamp-editor-head button{flex:1 1 0}
  .xyz3d-stamp-editor-head>div:first-child small{display:none}
}

/* 0.18.96.137 — Single Photo internal 3D-only SVG/text artwork editor. */
.xyz3d-single-artwork137{display:grid;gap:10px}
.xyz3d-artwork137-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:7px}
.xyz3d-artwork137-actions button,.xyz3d-artwork137-apply{
  min-height:38px;padding:8px 10px;border-radius:9px;border:1px solid rgba(84,207,244,.42);
  background:rgba(8,35,52,.92);color:#effbff;font-size:10px;font-weight:850;cursor:pointer
}
.xyz3d-artwork137-actions button:hover,.xyz3d-artwork137-apply:hover{border-color:rgba(87,220,255,.76);background:rgba(10,56,78,.96)}
.xyz3d-artwork137-actions button:disabled{opacity:.38;cursor:not-allowed}
.xyz3d-artwork137-details{border:1px solid rgba(91,151,184,.18);border-radius:10px;background:rgba(6,19,31,.58);overflow:hidden}
.xyz3d-artwork137-details>summary{padding:9px 10px;color:#dff5ff;font-size:11px;font-weight:800;cursor:pointer;user-select:none}
.xyz3d-artwork137-details[open]>summary{border-bottom:1px solid rgba(91,151,184,.14)}
.xyz3d-artwork137-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:9px}
.xyz3d-artwork137-grid label,.xyz3d-artwork137-vector-quality label{display:grid;gap:4px;min-width:0;color:#e7f5fb;font-size:10px;font-weight:750}
.xyz3d-artwork137-grid label>span,.xyz3d-artwork137-vector-quality label>span{color:#dceff8}
.xyz3d-artwork137-grid select,.xyz3d-artwork137-grid textarea{
  width:100%;box-sizing:border-box;border:1px solid rgba(102,161,194,.24);border-radius:8px;background:#061420;color:#eefaff;padding:8px 9px;font:inherit
}
.xyz3d-artwork137-grid textarea{resize:vertical;min-height:58px;line-height:1.35}
.xyz3d-artwork137-grid input[type="range"],.xyz3d-artwork137-vector-quality input[type="range"]{width:100%;min-width:0}
.xyz3d-artwork137-grid small,.xyz3d-artwork137-vector-quality small{color:#74a1b8;font-size:9px;font-weight:600}
.xyz3d-artwork137-full{grid-column:1/-1}
.xyz3d-artwork137-vector-quality{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:9px;border:1px solid rgba(91,151,184,.14);border-radius:9px;background:rgba(5,17,28,.45)}
.xyz3d-artwork137-apply{width:100%;background:linear-gradient(135deg,#0c789a,#12678e);border-color:rgba(75,220,255,.64)}
.xyz3d-single-artwork137>[data-art137-status]{display:block;color:#79a1b7;font-size:9px;line-height:1.45}
.xyz3d-single-svg-preview137{
  position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:#04111d;pointer-events:none;overflow:hidden
}
.xyz3d-single-svg-preview137[hidden]{display:none!important}
.xyz3d-single-svg-preview137 svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%}
.xyz3d-single-svg-preview137>span{
  position:absolute;right:10px;bottom:9px;padding:4px 7px;border:1px solid rgba(92,218,251,.34);border-radius:999px;background:rgba(4,18,30,.78);color:#8eeaff;font-size:9px;font-weight:850;letter-spacing:.05em
}
.xyz3d-single-photo-dropzone-stage{position:relative}

@media (max-width:760px){
  .xyz3d-artwork137-grid,.xyz3d-artwork137-vector-quality{grid-template-columns:1fr}
  .xyz3d-artwork137-actions{grid-template-columns:1fr 1fr}
  .xyz3d-artwork137-details>summary{padding:8px}
  .xyz3d-artwork137-grid{padding:8px}
}

/* 0.18.96.138 — Single Photo editor UX/performance pass. */
.xyz3d-single-photo-dropzone-stage input[data-single-photo-input]{display:none!important}
.xyz3d-single-stage-toolbar{flex-wrap:wrap}
.xyz3d-art138-toolbar{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-left:auto
}
.xyz3d-art138-toolbar button{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:6px 9px;
  border:1px solid rgba(86,160,196,.28);border-radius:8px;background:rgba(6,22,36,.9);color:#d7edf7;
  font-size:9px;font-weight:800;cursor:pointer;transition:120ms ease
}
.xyz3d-art138-toolbar button:hover{border-color:rgba(90,220,255,.7);background:rgba(10,52,72,.92);color:#fff}
.xyz3d-art138-toolbar button b{font-size:13px;line-height:1;color:#76ddfb}
.xyz3d-art138-toolbar button span{white-space:nowrap}
.xyz3d-single-svg-preview137{pointer-events:auto!important;touch-action:none;cursor:default}
.xyz3d-single-svg-preview137 .xyz3d-art138-object{cursor:move;pointer-events:all}
.xyz3d-single-svg-preview137 .xyz3d-art138-object.is-selected path,
.xyz3d-single-svg-preview137 .xyz3d-art138-object.is-selected text{filter:drop-shadow(0 0 3px rgba(87,220,255,.6))}
.xyz3d-single-svg-preview137 .xyz3d-art138-text{fill:#7ce6ff;stroke:rgba(10,40,56,.5);stroke-width:.35;paint-order:stroke;cursor:move;user-select:none}
.xyz3d-single-svg-preview137 .xyz3d-art138-selection{fill:none;stroke:#70dcfa;stroke-width:1.2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}
.xyz3d-single-svg-preview137 .xyz3d-art138-bg{pointer-events:none}
.xyz3d-art138-help{display:block;padding:0 9px 9px;color:#74a1b8;font-size:9px;line-height:1.45}
.xyz3d-single-photo-dropzone-stage.is-dragging{outline:2px solid rgba(84,222,255,.75);outline-offset:-2px}
.xyz3d-single-photo-dropzone-stage{cursor:default!important}

@media(max-width:760px){
  .xyz3d-art138-toolbar{width:100%;margin-left:0;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .xyz3d-art138-toolbar::-webkit-scrollbar{display:none}
  .xyz3d-art138-toolbar button{flex:0 0 auto}
  .xyz3d-art138-toolbar button span{display:none}
  .xyz3d-art138-toolbar button b{font-size:15px}
}

/* 0.18.96.139 — reset buttons for artwork sliders */
.xyz3d-art138-range-line{display:flex;align-items:center;gap:8px}
.xyz3d-art138-range-line input[type=range]{flex:1 1 auto;min-width:0}
.xyz3d-art138-range-reset{flex:0 0 auto;min-width:30px;height:30px;padding:0 8px;border:1px solid rgba(86,160,196,.28);border-radius:8px;background:rgba(6,22,36,.92);color:#79e5ff;font-size:15px;font-weight:800;line-height:1;cursor:pointer;transition:120ms ease}
.xyz3d-art138-range-reset:hover{border-color:rgba(90,220,255,.7);background:rgba(10,52,72,.92);color:#fff}


/* 0.18.96.140 — compact Single Photo settings + deterministic preview. */
.xyz3d-photo-single-settings .xyz3d-single-panel-head{position:relative;padding-right:30px}
.xyz3d-single-section-toggle140{position:absolute;right:0;top:50%;transform:translateY(-50%);width:26px;height:26px;padding:0;border:1px solid rgba(90,172,205,.22);border-radius:7px;background:rgba(5,20,32,.88);color:#7ce6ff;font-size:14px;line-height:1;cursor:pointer}
.xyz3d-single-section-toggle140:hover{border-color:rgba(93,221,255,.65);color:#fff}
.xyz3d-single-panel-section.is-collapsed140>:not(.xyz3d-single-panel-head){display:none!important}
.xyz3d-single-panel-section.is-collapsed140{padding-bottom:0;margin-bottom:0}
.xyz3d-photo-single-settings .xyz3d-art138-range-line{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:6px;align-items:center}
.xyz3d-photo-single-settings .xyz3d-art138-range-reset{width:28px;min-width:28px;height:28px;padding:0;border-radius:7px}
.xyz3d-single-preview-tabs button.is-active{box-shadow:0 0 0 1px rgba(89,223,255,.18),0 0 12px rgba(54,190,235,.13)}
.xyz3d-single-photo-dropzone-stage canvas{position:relative;z-index:1}
.xyz3d-single-svg-preview137{z-index:4}


/* 0.18.96.141 — Single Photo artwork settings stacked like mobile + final SVG preview polish. */
.xyz3d-single-artwork137 .xyz3d-artwork137-grid,
.xyz3d-single-artwork137 .xyz3d-artwork137-vector-quality{
  grid-template-columns:1fr!important;
}
.xyz3d-single-artwork137 .xyz3d-artwork137-grid{
  gap:10px;
}
.xyz3d-single-artwork137 .xyz3d-artwork137-vector-quality{
  gap:10px;
}
.xyz3d-single-artwork137 .xyz3d-artwork137-grid label,
.xyz3d-single-artwork137 .xyz3d-artwork137-vector-quality label{
  width:100%;
}
.xyz3d-single-artwork137 .xyz3d-art141-final-svg path{
  shape-rendering:geometricPrecision;
}


/* 0.18.96.143 — Single Photo multilayer editor. */
.xyz3d-layer142-hide-legacy{display:none!important}
.xyz3d-single-artwork137[hidden]{display:none!important}
.xyz3d-art138-toolbar[hidden]{display:none!important}
.xyz3d-layer-editor142{display:grid;gap:10px}
.xyz3d-layer142-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.xyz3d-layer142-actions button,.xyz3d-layer142-final button,.xyz3d-layer142-group>button{min-height:34px;border:1px solid rgba(86,170,207,.3);border-radius:8px;background:rgba(6,24,39,.92);color:#dff5ff;font-weight:800;font-size:10px;cursor:pointer}
.xyz3d-layer142-actions button:hover,.xyz3d-layer142-final button:hover,.xyz3d-layer142-group>button:hover{border-color:rgba(87,220,255,.72);background:rgba(9,52,72,.96)}
.xyz3d-layer142-list{display:grid;gap:6px}
.xyz3d-layer142-empty{padding:10px;border:1px dashed rgba(96,163,196,.24);border-radius:8px;color:#7195aa;font-size:10px}
.xyz3d-layer142-row{display:grid;grid-template-columns:minmax(0,1fr) 88px 30px 30px;gap:5px;align-items:center;padding:5px;border:1px solid rgba(93,154,185,.16);border-radius:8px;background:rgba(5,17,29,.56)}
.xyz3d-layer142-row.is-selected{border-color:rgba(83,220,255,.68);box-shadow:0 0 0 1px rgba(83,220,255,.11)}
.xyz3d-layer142-row button,.xyz3d-layer142-row select{min-height:31px;border:1px solid rgba(91,153,186,.22);border-radius:7px;background:#061420;color:#dff4fc;font-size:9px}
.xyz3d-layer142-select{display:flex;align-items:center;gap:7px;min-width:0;text-align:left;padding:5px 7px;cursor:pointer}
.xyz3d-layer142-select b{color:#6fe0ff;font-size:12px}.xyz3d-layer142-select span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xyz3d-layer142-selected{display:grid;gap:8px}
.xyz3d-layer142-group{display:grid;gap:9px;padding:9px;border:1px solid rgba(91,151,184,.17);border-radius:9px;background:rgba(5,17,28,.45)}
.xyz3d-layer142-group>strong{color:#e8f8ff;font-size:11px}
.xyz3d-layer142-field{display:grid;gap:5px;color:#dceff8;font-size:10px;font-weight:750}
.xyz3d-layer142-field select,.xyz3d-layer142-field textarea{width:100%;box-sizing:border-box;border:1px solid rgba(102,161,194,.24);border-radius:8px;background:#061420;color:#eefaff;padding:8px 9px;font:inherit}
.xyz3d-layer142-field textarea{resize:vertical;min-height:54px}
.xyz3d-layer142-range{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:7px;align-items:center}
.xyz3d-layer142-range input[type=range]{width:100%;min-width:0}
.xyz3d-layer142-range button{width:30px;height:30px;padding:0;border:1px solid rgba(86,160,196,.28);border-radius:7px;background:rgba(6,22,36,.92);color:#79e5ff;font-size:14px;font-weight:850;cursor:pointer}
.xyz3d-layer142-field small{color:#71a0b7;font-size:9px}
.xyz3d-layer142-check{display:flex;gap:7px;align-items:center;color:#dceff8;font-size:10px}
.xyz3d-layer142-file{padding:7px 8px;border:1px solid rgba(91,151,184,.14);border-radius:7px;color:#8fb5c7;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xyz3d-layer142-reset-selected{width:100%}
.xyz3d-layer142-final{display:grid;grid-template-columns:1fr .72fr;gap:7px}.xyz3d-layer142-final button:first-child{background:linear-gradient(135deg,#0c789a,#12678e);border-color:rgba(75,220,255,.64)}
.xyz3d-layer-editor142>[data-layer142-status]{display:block;color:#79a1b7;font-size:9px;line-height:1.45}
.xyz3d-layer142-toolbar{display:flex;align-items:center;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}.xyz3d-layer142-toolbar::-webkit-scrollbar{display:none}
.xyz3d-layer142-toolbar button{flex:0 0 36px;height:32px;padding:0;border:1px solid rgba(86,160,196,.28);border-radius:8px;background:rgba(6,22,36,.9);color:#d7edf7;font-size:12px;font-weight:850;cursor:pointer}
.xyz3d-layer142-toolbar button:hover{border-color:rgba(90,220,255,.7);background:rgba(10,52,72,.92);color:#fff}
.xyz3d-single-svg-preview137 .xyz3d-layer142-object{pointer-events:all;cursor:move}.xyz3d-single-svg-preview137 .xyz3d-layer142-object.is-selected path{filter:drop-shadow(0 0 3px rgba(91,225,255,.7))}.xyz3d-single-svg-preview137 .xyz3d-layer142-object.is-subtract.is-selected path{filter:drop-shadow(0 0 3px rgba(255,137,118,.7))}
.xyz3d-layer142-final-path{pointer-events:none}.xyz3d-layer142-svg{shape-rendering:geometricPrecision}
.xyz3d-layer-editor142 .xyz3d-art138-range-reset{display:none!important}.xyz3d-layer-editor142 .xyz3d-art138-range-line{display:contents!important}
@media(max-width:760px){.xyz3d-layer142-row{grid-template-columns:minmax(0,1fr) 82px 28px 28px}.xyz3d-layer142-final{grid-template-columns:1fr}.xyz3d-layer142-toolbar{width:100%;margin-left:0}}

/* 0.18.96.143 — physical size + stronger layer toolbar + contour operations. */
.xyz3d-physical143{display:grid;gap:8px;padding:10px;border:1px solid rgba(81,208,248,.28);border-radius:10px;background:linear-gradient(180deg,rgba(8,38,56,.78),rgba(5,20,32,.82));box-shadow:0 0 0 1px rgba(73,210,255,.04) inset}
.xyz3d-physical143-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.xyz3d-physical143-head strong{color:#effbff;font-size:11px}.xyz3d-physical143-head select{min-height:30px;border:1px solid rgba(89,204,239,.34);border-radius:7px;background:#061420;color:#eaf9ff;padding:4px 8px;font-weight:800}
.xyz3d-physical143-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.xyz3d-physical143-grid label{display:grid;gap:5px;color:#dceff8;font-size:10px;font-weight:800}.xyz3d-physical143-grid input{width:100%;box-sizing:border-box;min-height:36px;border:1px solid rgba(91,174,207,.28);border-radius:8px;background:#061420;color:#fff;padding:7px 9px;font:inherit;font-variant-numeric:tabular-nums}.xyz3d-physical143>small{color:#77a7bd;font-size:9px;line-height:1.35}
.xyz3d-layer142-row{grid-template-columns:minmax(0,1fr) 124px 30px 30px}
.xyz3d-layer142-row select{font-size:8px;font-weight:850;padding:0 4px}
.xyz3d-layer143-operation select{min-height:38px}
.xyz3d-layer142-toolbar{gap:6px!important;padding:4px 6px!important;border:1px solid rgba(69,201,246,.28);border-radius:10px;background:rgba(3,14,24,.72);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.xyz3d-layer142-toolbar button{flex:0 0 auto!important;min-width:58px!important;width:auto!important;height:36px!important;padding:0 9px!important;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-color:rgba(101,199,232,.38)!important;background:linear-gradient(180deg,rgba(13,48,68,.98),rgba(7,27,43,.98))!important;color:#edfaff!important;box-shadow:0 0 0 1px rgba(255,255,255,.02) inset,0 3px 10px rgba(0,0,0,.18);transition:120ms ease}
.xyz3d-layer142-toolbar button b{font-size:13px;color:#87eaff;line-height:1}.xyz3d-layer142-toolbar button span{font-size:9px;font-weight:900;white-space:nowrap}.xyz3d-layer142-toolbar button:hover{transform:translateY(-1px);border-color:#6ee4ff!important;background:linear-gradient(180deg,rgba(16,87,114,.98),rgba(8,43,62,.98))!important}.xyz3d-layer142-toolbar button.is-primary143{border-color:rgba(72,223,255,.72)!important;background:linear-gradient(135deg,#0d789b,#116289)!important;box-shadow:0 0 14px rgba(54,202,244,.16)}.xyz3d-layer142-toolbar button.is-danger143{border-color:rgba(255,104,104,.45)!important;color:#ffdede!important}.xyz3d-layer142-toolbar button.is-danger143 b{color:#ff9a9a}
.xyz3d-layer142-object.has-contour143 path{filter:drop-shadow(0 0 2px rgba(190,143,255,.28))}
@media(max-width:760px){.xyz3d-physical143-grid{grid-template-columns:1fr}.xyz3d-layer142-row{grid-template-columns:minmax(0,1fr) 112px 28px 28px}.xyz3d-layer142-toolbar{width:100%;margin-left:0}.xyz3d-layer142-toolbar button{min-width:44px!important;padding:0 7px!important}.xyz3d-layer142-toolbar button span{display:none}}

/* 0.18.96.145 — deterministic Single Photo stage preview. */
.xyz3d-single-preview-tabs button{position:relative}
.xyz3d-single-preview-tabs button.is-active{background:linear-gradient(135deg,#0c789a,#105e85)!important;border-color:#68defb!important;color:#fff!important;box-shadow:0 0 0 1px rgba(106,229,255,.25),0 0 16px rgba(45,192,235,.2)!important}
.xyz3d-stage145-vector-svg{width:100%;height:100%;display:block;shape-rendering:geometricPrecision}

/* 0.18.96.146 — transparent image / alpha silhouette status. */
.xyz3d-alpha146-note{display:grid;gap:4px;padding:9px 10px;border:1px solid rgba(74,218,255,.34);border-radius:9px;background:rgba(5,45,62,.38)}
.xyz3d-alpha146-note b{font-size:9px;letter-spacing:.12em;color:#67e5ff}
.xyz3d-alpha146-note span{font-size:9px;line-height:1.45;color:#9bc1d2}


/* 0.18.96.148 CAD-clean viewport */
.xyz3d-light-panel{width:min(352px,calc(100vw - 28px));max-height:min(76vh,680px);overflow:auto;}
.xyz3d-light-panel label>span{display:flex;justify-content:space-between;gap:12px;align-items:center;}
.xyz3d-light-panel label>span b{color:#59dcff;font-variant-numeric:tabular-nums;}
.xyz3d-cad-divider148{height:1px;background:rgba(98,199,230,.18);margin:11px 0 9px;}
.xyz3d-cad-display148{display:grid;gap:9px;}
.xyz3d-cad-display148 label{margin:0;}
.xyz3d-cad-check148{display:flex!important;align-items:center;gap:9px;padding:7px 9px;border:1px solid rgba(100,185,214,.18);border-radius:9px;background:rgba(8,31,44,.44);}
.xyz3d-cad-check148 input{width:16px!important;height:16px;accent-color:#49d8ff;flex:0 0 auto;}
.xyz3d-cad-check148 span{display:block!important;color:#d7edf5;font-weight:650;}
.xyz3d-viewer-toolbar .xyz3d-cad-edge-button[aria-pressed="true"]{border-color:rgba(73,216,255,.68);background:rgba(38,148,183,.24);box-shadow:0 0 0 1px rgba(73,216,255,.08) inset;color:#bcefff;}
.xyz3d-viewer-toolbar .xyz3d-cad-edge-button[aria-pressed="true"] svg{stroke:#89e8ff;}
.xyz3d-light-panel input[type="range"]{accent-color:#47d8ff;}

/* 0.18.96.149 — Single Photo Vector / Stamp CAD viewer controls */
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-displaybtn,
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-edgebtn{
  min-width:76px;max-width:none;padding:0 9px;gap:6px;font-size:9px;font-weight:800;
}
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-displaybtn{border-color:rgba(73,216,255,.58);background:rgba(26,126,160,.22);color:#dff8ff}
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-displaybtn[aria-pressed="true"],
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-edgebtn[aria-pressed="true"]{background:rgba(47,171,210,.28);border-color:#55dafc;color:#fff;box-shadow:0 0 0 1px rgba(85,218,252,.10) inset}
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-displaybtn span,
.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-edgebtn span{display:inline}
.xyz3d-single-cad149-panel{
  position:absolute;z-index:12;top:54px;left:10px;width:min(340px,calc(100% - 20px));max-height:calc(100% - 70px);overflow:auto;
  padding:12px;border:1px solid rgba(88,208,243,.42);border-radius:12px;background:rgba(5,20,32,.97);box-shadow:0 18px 44px rgba(0,0,0,.46),0 0 0 1px rgba(98,219,250,.05) inset;backdrop-filter:blur(12px)
}
.xyz3d-single-cad149-panel[hidden]{display:none!important}
.xyz3d-single-cad149-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.xyz3d-single-cad149-head strong,.xyz3d-single-cad149-head small{display:block}.xyz3d-single-cad149-head strong{color:#f4fbff;font-size:13px}.xyz3d-single-cad149-head small{margin-top:2px;color:#82a8ba;font-size:9px}
.xyz3d-single-cad149-head>button{width:28px;height:28px;border:1px solid rgba(119,195,225,.22);border-radius:8px;background:#091b2a;color:#cbe7f2;font-size:20px;line-height:1;cursor:pointer}
.xyz3d-single-cad149-panel>label{display:grid;gap:5px;margin:8px 0;color:#cbe3ed;font-size:10px}
.xyz3d-single-cad149-panel>label>span{display:flex;align-items:center;justify-content:space-between;gap:12px}.xyz3d-single-cad149-panel b{color:#5edfff;font-variant-numeric:tabular-nums}
.xyz3d-single-cad149-panel input[type="range"]{width:100%;accent-color:#4ddaff}.xyz3d-single-cad149-panel select{width:100%;min-height:34px;padding:6px 9px;border:1px solid rgba(113,187,217,.25);border-radius:8px;background:#071a29;color:#e4f6fc}
.xyz3d-single-cad149-check{grid-template-columns:auto 1fr!important;align-items:center!important;padding:7px 9px;border:1px solid rgba(95,184,216,.18);border-radius:8px;background:rgba(12,40,55,.44)}
.xyz3d-single-cad149-check input{width:16px;height:16px;accent-color:#4ddaff}.xyz3d-single-cad149-check span{display:block!important;color:#d8edf5}
.xyz3d-single-cad149-sep{height:1px;margin:10px 0;background:rgba(95,193,226,.16)}
.xyz3d-single-cad149-reset{width:100%;min-height:36px;margin-top:9px;border:1px solid rgba(77,211,249,.38);border-radius:9px;background:rgba(17,91,116,.26);color:#dff8ff;font-weight:800;cursor:pointer}
@media(max-width:760px){.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-displaybtn,.xyz3d-single-solid-stage-toolbar .xyz3d-single-cad149-edgebtn{min-width:66px;padding:0 7px}.xyz3d-single-cad149-panel{top:50px;width:min(320px,calc(100% - 16px));left:8px;max-height:calc(100% - 60px)}}

/* 0.18.96.157 — Vector/Stamp 3D viewport containment + complete workbench. */
.xyz3d-photo-single-shell,
.xyz3d-photo-single-stage,
.xyz3d-single-extrusion-panel,
.xyz3d-single-solid-stage-wrap,
.xyz3d-single-solid-stage,
.xyz3d-single-solid-footer{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
}
.xyz3d-single-vector-step2-active .xyz3d-single-extrusion-panel{
  overflow:hidden;
}
.xyz3d-single-vector-step2-active .xyz3d-single-solid-stage-wrap{
  flex:1 1 auto;
  width:100%;
  height:auto;
  min-height:0;
  overflow:hidden;
}
.xyz3d-single-vector-step2-active .xyz3d-single-solid-stage{
  width:100%;
  height:100%;
  min-height:0;
}
.xyz3d-single-solid-footer{
  width:100%;
  flex:0 0 auto;
  flex-wrap:wrap;
}
.xyz3d-single-solid-actions{
  min-width:0;
  max-width:100%;
  flex-wrap:wrap;
}
.xyz3d-server-trial-status{
  display:block;
  flex:1 0 100%;
  width:100%;
  color:inherit;
  font-size:12px;
  font-weight:600;
  line-height:1.4;
}
@media (min-width:921px){
  .xyz3d-photo-single-shell{
    grid-template-columns:minmax(260px,300px) minmax(0,1fr);
    gap:0;
  }
}
@media (max-width:920px){
  .xyz3d-single-vector-step2-active .xyz3d-single-solid-stage-wrap{min-height:300px;}
}


/* 0.18.96.261 — Single Photo compact continuation action + display colour controls. */
@media (min-width:901px){
  .xyz3d-photo-single-settings .xyz3d-single-photo-footer{box-sizing:border-box!important;padding-left:12px!important;padding-right:12px!important;text-align:center!important;}
  .xyz3d-photo-single-settings .xyz3d-single-photo-footer [data-single-photo-continue]{
    box-sizing:border-box!important;width:calc(100% - 24px)!important;max-width:214px!important;min-width:0!important;
    margin-left:auto!important;margin-right:auto!important;justify-self:center!important;align-self:center!important;
    padding:8px 10px!important;font-size:12px!important;white-space:nowrap!important;display:flex!important;justify-content:center!important;
  }
}
.xyz3d-single-cad261-colours{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.xyz3d-single-cad261-colours label{display:grid;gap:5px;color:#cbe3ed;font-size:10px}
.xyz3d-single-cad261-colours input[type="color"]{box-sizing:border-box;width:100%;height:32px;padding:2px;border:1px solid rgba(113,187,217,.25);border-radius:8px;background:#071a29;cursor:pointer}


/* 0.18.96.280 — user theme layer.
   IMPORTANT: dark mode deliberately has no palette overrides: it is the exact
   0.18.96.278 visual baseline. Only [data-ui-theme="light"] is reskinned. */

/* Fixed 400px desktop settings rail across the shared workstation layouts.
   3D Scan / Engineering keeps its dedicated wide rail unchanged. */
@media (min-width:861px){
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-workspace{
    grid-template-columns:400px minmax(0,1fr) !important;
  }
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open > .xyz3d-photo-service-shell > .xyz3d-photo-workspace:not([hidden]){
    grid-template-columns:400px minmax(0,1fr) !important;
  }
  .xyz3d-app .xyz3d-photo-single-shell{
    grid-template-columns:400px minmax(0,1fr) !important;
  }
  .xyz3d-app .xyz3d-photo-single-settings{
    width:400px !important;
    min-width:400px !important;
    max-width:400px !important;
  }
}

/* Theme selector itself. This is intentionally neutral in dark mode. */
.xyz3d-theme280{
  display:inline-flex;
  align-items:center;
  gap:3px;
  margin-left:auto;
  margin-right:12px;
  padding:3px;
  border:1px solid rgba(160,197,223,.18);
  border-radius:999px;
  background:rgba(8,18,31,.72);
  box-shadow:0 6px 18px rgba(2,8,18,.16);
  flex:0 0 auto;
}
.xyz3d-theme280 button{
  min-width:58px;
  height:28px;
  padding:0 10px;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:#8ca2b6;
  font-size:10px;
  font-weight:800;
  line-height:1;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.xyz3d-theme280 button:hover{color:#eef8ff;border-color:rgba(83,205,246,.24)}
.xyz3d-theme280 button[aria-pressed="true"]{
  border-color:rgba(83,205,246,.42);
  background:rgba(84,214,255,.13);
  color:#eef8ff;
}
@media(max-width:620px){.xyz3d-theme280{display:none!important}}

/* LIGHT ONLY — 0.18.96.281 professional silver / orange system.
   Dark mode remains untouched and therefore stays identical to 0.18.96.278. */
.xyz3d-app[data-ui-theme="light"]{
  --xyz-bg:#d2d8dd;
  --xyz-panel:#eef1f3;
  --xyz-panel-2:#e1e6e9;
  --xyz-panel-3:#cbd2d7;
  --xyz-control:#c7ced3;
  --xyz-control-hover:#d1d7db;
  --xyz-line:#9da8b0;
  --xyz-line-soft:#bcc5cb;
  --xyz-text:#18232c;
  --xyz-muted:#65737e;
  --xyz-title:#12344f;
  --xyz-orange:#f47a22;
  --xyz-orange-hi:#ff923f;
  --xyz-orange-low:#de5e12;
  --xyz-orange-border:#c9520d;
  --xyz-shadow:0 16px 38px rgba(40,49,57,.14);
  --xyz-shadow-soft:0 5px 14px rgba(49,58,65,.10);
  color-scheme:light;
  color:var(--xyz-text)!important;
}
.xyz3d-app[data-ui-theme="light"],
.xyz3d-app[data-ui-theme="light"] .xyz3d-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-main-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-photo-service-shell{
  background:linear-gradient(145deg,#edf0f2 0%,#d7dde1 48%,#c9d0d5 100%)!important;
  color:var(--xyz-text)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-shell{
  border-color:#9faab2!important;
  box-shadow:var(--xyz-shadow)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-header{
  background:linear-gradient(180deg,#fbfcfd 0%,#e5e9ec 56%,#d5dbe0 100%)!important;
  border-color:#a8b2b9!important;
  color:var(--xyz-text)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-brandmark i{
  background:linear-gradient(135deg,var(--xyz-orange-hi),var(--xyz-orange-low))!important;
  box-shadow:0 0 12px rgba(226,98,20,.22)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-brand strong,.xyz3d-photo-single-head h3,.xyz3d-single-step2-head h3,.xyz3d-photo-route-head strong,.xyz3d-photo-guide-copy strong,.xyz3d-single-solid-toolbar strong,.xyz3d-single-extrusion-toolbar strong){
  color:#17232c!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-brand small,.xyz3d-secure,.xyz3d-photo-single-head p,.xyz3d-single-field-grid small,.xyz3d-single-solid-metrics,.xyz3d-single-stage-meta,.xyz3d-photo-route-head small,.xyz3d-photo-guide-copy span,.xyz3d-photo-guide-actions small,.xyz3d-single-step2-summary span){
  color:var(--xyz-muted)!important;
}

/* Navigation and top mode bars: silver chrome with orange active edge. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-services,.xyz3d-photo-service-nav,.xyz3d-photo-studio-modes,.xyz3d-panel-tabs){
  background:linear-gradient(180deg,#f3f5f6,#d2d9de)!important;
  border-color:#a5b0b7!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92)!important;
}

/* Shared page/panel surfaces. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-panel,.xyz3d-guided-mould-panel,.xyz3d-photo-single-settings){
  background:linear-gradient(180deg,#f3f5f6 0%,#e7ebed 100%)!important;
  color:var(--xyz-text)!important;
  border-color:#aeb8bf!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-stage,.xyz3d-photo-single-stage,.xyz3d-single-solid-stage-wrap,.xyz3d-single-solid-stage,.xyz3d-single-extrusion-stage,.xyz3d-photo-route-viewer){
  background:linear-gradient(145deg,#d8dde1 0%,#c8cfd4 52%,#bcc4ca 100%)!important;
  border-color:#9ea9b1!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-setting-section,.xyz3d-single-panel-section,.xyz3d-photo-quicksetup,.xyz3d-photo-quality-note,.xyz3d-photo-selection,.xyz3d-single-step2-summary>div,.xyz3d-relief-channel257,.xyz3d-single-cad149-panel){
  background:linear-gradient(180deg,#f5f7f8 0%,#e1e5e8 100%)!important;
  border:1px solid #b4bec5!important;
  color:var(--xyz-text)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.94),var(--xyz-shadow-soft)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-setting-section{box-shadow:none!important}

/* Section names: navy text and a visible silver separator, never old cyan. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-section-title,.xyz3d-single-panel-head){
  color:var(--xyz-title)!important;
  border-bottom:1px solid #b1bbc2!important;
  box-shadow:inset 4px 0 0 var(--xyz-orange)!important;
  background:linear-gradient(90deg,#d4dade 0%,#e8ebed 56%,rgba(232,235,237,0) 100%)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-section-title span,.xyz3d-single-panel-head strong,.xyz3d-photo-single-settings .xyz3d-photo-single-head h3,.xyz3d-single-step2-head span,.xyz3d-eyebrow,[class*="eyebrow"],[class*="kicker"]){
  color:var(--xyz-title)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-section-title small,.xyz3d-single-panel-head small){color:#697985!important}

/* Controls deliberately darker than the panel behind them. */
.xyz3d-app[data-ui-theme="light"] :is(input[type="text"],input[type="number"],input[type="email"],input[type="search"],input[type="url"],textarea,select,.xyz3d-input-suffix){
  background:linear-gradient(180deg,#d4dade,#c4cbd0)!important;
  border:1px solid #929ea7!important;
  color:#17232c!important;
  box-shadow:inset 0 1px 3px rgba(44,53,60,.10),0 1px 0 rgba(255,255,255,.66)!important;
}
.xyz3d-app[data-ui-theme="light"] select{background-color:#c6cdd2!important}
.xyz3d-app[data-ui-theme="light"] :is(input,textarea)::placeholder{color:#66747e!important;opacity:1!important}
.xyz3d-app[data-ui-theme="light"] :is(input,textarea,select):focus{
  border-color:var(--xyz-orange)!important;
  box-shadow:0 0 0 3px rgba(244,122,34,.17),inset 0 1px 2px rgba(44,53,60,.08)!important;
  outline:none!important;
}
.xyz3d-app[data-ui-theme="light"] input[type="checkbox"]{accent-color:var(--xyz-orange)!important}
.xyz3d-app[data-ui-theme="light"] input[type="range"]{accent-color:var(--xyz-orange)!important}
.xyz3d-app[data-ui-theme="light"] input[type="range"]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:#9ca7ae!important}
.xyz3d-app[data-ui-theme="light"] input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-5px;border:2px solid #f6f7f8;border-radius:50%;background:var(--xyz-orange)!important;box-shadow:0 2px 6px rgba(78,56,40,.24)}
.xyz3d-app[data-ui-theme="light"] input[type="range"]::-moz-range-track{height:6px;border-radius:999px;background:#9ca7ae!important}
.xyz3d-app[data-ui-theme="light"] input[type="range"]::-moz-range-thumb{width:16px;height:16px;border:2px solid #f6f7f8;border-radius:50%;background:var(--xyz-orange)!important;box-shadow:0 2px 6px rgba(78,56,40,.24)}

/* All normal UI buttons are orange in Light mode. Text stays dark navy. */
.xyz3d-app[data-ui-theme="light"] button,
.xyz3d-app[data-ui-theme="light"] .button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn{
  background:linear-gradient(180deg,var(--xyz-orange-hi) 0%,var(--xyz-orange) 48%,#e56818 100%)!important;
  border:1px solid var(--xyz-orange-border)!important;
  color:#10283b!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 3px 8px rgba(164,72,18,.16)!important;
  text-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"] button :is(strong,b,span,small),
.xyz3d-app[data-ui-theme="light"] .button :is(strong,b,span,small){color:#10283b!important}
.xyz3d-app[data-ui-theme="light"] button:hover:not(:disabled),
.xyz3d-app[data-ui-theme="light"] .button:hover:not(:disabled){
  background:linear-gradient(180deg,#ffa054 0%,#f7832d 50%,#e15f12 100%)!important;
  border-color:#b94708!important;
  color:#071d2f!important;
  transform:translateY(-1px);
}
.xyz3d-app[data-ui-theme="light"] button:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 2px 4px rgba(92,40,9,.20)!important}
.xyz3d-app[data-ui-theme="light"] button:disabled{opacity:.48!important;filter:saturate(.55)!important;cursor:not-allowed!important}
.xyz3d-app[data-ui-theme="light"] :is(button.active,button.is-active,button[aria-pressed="true"]){
  background:linear-gradient(180deg,#f07822 0%,#dc5b0f 100%)!important;
  border-color:#a83b05!important;
  color:#071d2f!important;
  box-shadow:inset 0 2px 4px rgba(95,38,4,.16),0 0 0 2px rgba(244,122,34,.14)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(button.active,button.is-active,button[aria-pressed="true"]) :is(strong,b,span,small){color:#071d2f!important}

/* Upload/drop areas are clearly separate from the silver panel. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-dropzone,.xyz3d-photo-dropzone,.xyz3d-single-photo-dropzone,.xyz3d-single-photo-dropzone-stage,.xyz3d-relief-empty){
  background:linear-gradient(145deg,#e3e7e9,#cdd4d8)!important;
  border-color:#98a5ae!important;
  color:#1b2832!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-dropzone strong,.xyz3d-photo-dropzone strong,.xyz3d-single-photo-dropzone b,.xyz3d-relief-empty strong){color:#17232c!important}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-dropzone span,.xyz3d-dropzone small,.xyz3d-photo-dropzone span,.xyz3d-photo-dropzone small,.xyz3d-single-photo-dropzone small,.xyz3d-relief-empty span,.xyz3d-relief-empty small){color:#60717d!important}

.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-photo-route-head,.xyz3d-photo-guide-copy,.xyz3d-single-stage-toolbar,.xyz3d-single-solid-toolbar,.xyz3d-single-extrusion-toolbar,.xyz3d-single-solid-stage-toolbar){
  background:rgba(226,231,234,.96)!important;
  border-color:#aab5bc!important;
  color:var(--xyz-text)!important;
  backdrop-filter:blur(10px);
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-progress>span{background:#aab3b9!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-progress i{background:linear-gradient(90deg,var(--xyz-orange-hi),var(--xyz-orange-low))!important}

/* Theme selector follows the same silver/orange system. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-theme280{
  background:linear-gradient(180deg,#eef1f3,#cdd4d9)!important;
  border-color:#9ca7ae!important;
  box-shadow:0 5px 14px rgba(55,63,70,.13),inset 0 1px 0 #fff!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-theme280 button{min-width:58px!important}

/* Better light scrollbars. */
.xyz3d-app[data-ui-theme="light"] *{scrollbar-color:#9ca7ae #dde2e5}
.xyz3d-app[data-ui-theme="light"] *::-webkit-scrollbar-thumb{background:#9ca7ae;border-radius:999px;border:2px solid #dde2e5}
.xyz3d-app[data-ui-theme="light"] *::-webkit-scrollbar-track{background:#dde2e5}


/* 0.18.96.282 — Light-mode coherence / state hierarchy pass.
   DARK IS INTENTIONALLY UNTOUCHED. Every rule below is light-scoped. */
.xyz3d-app[data-ui-theme="light"]{
  --xyz282-silver-0:#f8fafb;
  --xyz282-silver-1:#edf1f3;
  --xyz282-silver-2:#dce3e7;
  --xyz282-silver-3:#c8d1d7;
  --xyz282-silver-4:#aeb9c0;
  --xyz282-ink:#17232d;
  --xyz282-navy:#103a5a;
  --xyz282-muted:#596b78;
  --xyz282-orange-idle-top:#f8b27b;
  --xyz282-orange-idle-bottom:#e98a46;
  --xyz282-orange-active-top:#ff9b48;
  --xyz282-orange-active-mid:#f5771f;
  --xyz282-orange-active-bottom:#d95308;
  --xyz282-orange-edge:#b94406;
}

/* Typography: remove the washed-out cyan/white text left by dark components. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-field>span:first-child,.xyz3d-textarea>span,.xyz3d-field label,
  .xyz3d-analysis-note,.xyz3d-analysis-list,.xyz3d-analysis-list b,
  .xyz3d-production-estimate,.xyz3d-production-estimate small,
  .xyz3d-customer-contact label>span,.xyz3d-account-contact>span,
  .xyz3d-local-project-head small,.xyz3d-reconstruction-head small,
  .xyz3d-local-project-settings label,.xyz3d-reconstruction-controls label,
  .xyz3d-local-project-settings small,.xyz3d-reconstruction-status,
  .xyz3d-reconstruction-warnings,.xyz3d-capture-mode-head small,
  .xyz3d-capture-mode-grid button span,.xyz3d-capture-mode-grid button small,
  .xyz3d-rib-summary,.xyz3d-mould-pick-status,.xyz3d-mould-disclaimer span,
  .xyz3d-check-field,.xyz3d-info-card,.xyz3d-info-card p,
  .xyz3d-photo-quality-note,.xyz3d-photo-rights-consent,
  .xyz3d-custom-goods-content,.xyz3d-terms-consent,.xyz3d-service-start-consent,
  .xyz3d-photo-route-status,.xyz3d-photo-route-fallback
){color:var(--xyz282-muted)!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-section-title span,.xyz3d-subsection-title,.xyz3d-panel-head,
  .xyz3d-capture-mode-head span,.xyz3d-local-project-head span,.xyz3d-reconstruction-head span,
  .xyz3d-mould-drawer-head strong,.xyz3d-tool-drawer>summary,
  .xyz3d-photo-route-head span,.xyz3d-photo-quicksetup-head strong,
  .xyz3d-single-panel-head strong,.xyz3d-eyebrow,[class*="eyebrow"],[class*="kicker"]
){color:var(--xyz282-navy)!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-capture-mode-head strong,.xyz3d-local-project-head strong,.xyz3d-reconstruction-head strong,
  .xyz3d-local-project-metrics strong,.xyz3d-reconstruction-metrics strong,
  .xyz3d-mould-disclaimer b,.xyz3d-price,.xyz3d-account-contact strong
){color:var(--xyz282-ink)!important}
.xyz3d-app[data-ui-theme="light"] a{color:#0c5b87!important}

/* Every non-colour-choice UI button: idle is a MUTED orange metal, not the same as active. */
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]),
.xyz3d-app[data-ui-theme="light"] .button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn{
  background:linear-gradient(180deg,var(--xyz282-orange-idle-top) 0%,#f1a064 48%,var(--xyz282-orange-idle-bottom) 100%)!important;
  border:1px solid #c96b2b!important;
  color:#132a3b!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.64),inset 0 -1px 0 rgba(132,58,17,.14),0 2px 5px rgba(88,61,43,.16)!important;
  text-shadow:none!important;
  filter:saturate(.82)!important;
}
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]) :is(span,strong,b,small),
.xyz3d-app[data-ui-theme="light"] .button :is(span,strong,b,small){color:#132a3b!important}
.xyz3d-app[data-ui-theme="light"] button:not(:disabled):not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]):hover,
.xyz3d-app[data-ui-theme="light"] .button:not(:disabled):hover{
  background:linear-gradient(180deg,#ffc08e 0%,#f69a55 46%,#e77731 100%)!important;
  border-color:#b95318!important;
  filter:saturate(.95)!important;
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 4px 9px rgba(120,65,25,.22)!important;
}
/* ON / selected / active: deliberately brighter, more saturated and visibly 3D. */
.xyz3d-app[data-ui-theme="light"] :is(
  button.active,button.is-active,button.is-selected,button[aria-pressed="true"],button[aria-selected="true"],
  .xyz3d-services button.active,.xyz3d-panel-tabs button.active,.xyz3d-photo-studio-modes button.is-active,
  .xyz3d-capture-mode-grid button.is-active,.xyz3d-mould-stepper button.active
):not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]){
  background:linear-gradient(180deg,#ffd0a7 0%,var(--xyz282-orange-active-top) 13%,var(--xyz282-orange-active-mid) 52%,var(--xyz282-orange-active-bottom) 100%)!important;
  border-color:var(--xyz282-orange-edge)!important;
  color:#071f31!important;
  filter:saturate(1.16) contrast(1.03)!important;
  transform:translateY(-1px);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.72),inset 0 -3px 0 rgba(137,48,3,.24),0 3px 0 #9d3905,0 7px 14px rgba(130,59,13,.26)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  button.active,button.is-active,button.is-selected,button[aria-pressed="true"],button[aria-selected="true"]
) :is(span,strong,b,small){color:#071f31!important}
.xyz3d-app[data-ui-theme="light"] button:disabled,
.xyz3d-app[data-ui-theme="light"] button[aria-disabled="true"]{
  background:linear-gradient(180deg,#e0c6b5,#cbb4a5)!important;
  border-color:#ad9a8e!important;
  color:#6a625d!important;
  filter:saturate(.35)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48)!important;
  transform:none!important;
  opacity:.72!important;
}

/* Top service/mode/navigation bars — inactive tabs are separate from active tabs. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-services,.xyz3d-photo-service-nav,.xyz3d-photo-studio-modes,.xyz3d-panel-tabs){
  background:linear-gradient(180deg,#f7f9fa,#dfe5e9)!important;
  border-color:#9eabb4!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-services,.xyz3d-photo-service-nav,.xyz3d-photo-studio-modes,.xyz3d-panel-tabs) button{
  border-radius:0!important;
  border-top-color:#d8874e!important;
  border-left-color:#c8753b!important;
  border-right-color:#b96328!important;
  border-bottom-color:#ad541d!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-services,.xyz3d-photo-service-nav,.xyz3d-photo-studio-modes,.xyz3d-panel-tabs) button.active,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-studio-modes button.is-active{
  box-shadow:inset 0 2px 0 rgba(255,255,255,.72),inset 0 -3px 0 rgba(137,48,3,.27),0 3px 0 #9d3905!important;
}

/* CAD / 3D toolbar: clear OFF vs ON state. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-toolbar button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-solid-stage-toolbar button{
  background:linear-gradient(180deg,#f5ad76,#df7d3a)!important;
  border-color:#bd5d22!important;
  color:#102d42!important;
  filter:saturate(.72)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 2px 4px rgba(86,57,38,.16)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-toolbar button[aria-pressed="true"],
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-solid-stage-toolbar button[aria-pressed="true"]{
  background:linear-gradient(180deg,#ffd1aa 0%,#ff9946 14%,#f46f18 55%,#ce4c05 100%)!important;
  border-color:#a93b03!important;
  color:#061f31!important;
  filter:saturate(1.25)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.74),inset 0 -3px 0 rgba(128,42,0,.24),0 3px 0 #8f3202,0 6px 12px rgba(119,52,8,.30)!important;
  transform:translateY(-1px)!important;
}

/* Controls/dropdowns: a distinct darker silver level, including native option rows. */
.xyz3d-app[data-ui-theme="light"] :is(
  input[type="text"],input[type="number"],input[type="email"],input[type="search"],input[type="url"],textarea,select,
  .xyz3d-input-wrap,.xyz3d-input-suffix
){
  background:linear-gradient(180deg,#d6dde1,#c1cbd1)!important;
  border-color:#8998a3!important;
  color:#172733!important;
  box-shadow:inset 0 2px 4px rgba(52,63,72,.10),0 1px 0 rgba(255,255,255,.75)!important;
}
.xyz3d-app[data-ui-theme="light"] select option{
  background:#cbd3d8!important;
  color:#142735!important;
}
.xyz3d-app[data-ui-theme="light"] select option:checked{background:#ee8b49!important;color:#10283b!important}

/* General cards that were still using dark-mode rgba backgrounds. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-info-card,.xyz3d-production-estimate,.xyz3d-analysis-status,.xyz3d-metrics>div,
  .xyz3d-quote,.xyz3d-account-contact,.xyz3d-cart-reservation-note,.xyz3d-custom-goods-notice,
  .xyz3d-message,.xyz3d-viewer-info,.xyz3d-viewer-legend,.xyz3d-support-summary,.xyz3d-model-chip,
  .xyz3d-light-panel,.xyz3d-cad-check148,.xyz3d-single-cad149-check
){
  background:linear-gradient(180deg,#e2e7ea,#cbd3d8)!important;
  border-color:#a0adb5!important;
  color:var(--xyz282-ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.70),0 3px 9px rgba(55,67,76,.09)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-quote{border-top:1px solid #98a6af!important}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-account-contact strong,.xyz3d-viewer-info strong,.xyz3d-model-chip strong,.xyz3d-support-summary strong){color:var(--xyz282-navy)!important}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-account-contact span,.xyz3d-viewer-info span,.xyz3d-model-chip span,.xyz3d-support-summary span){color:var(--xyz282-muted)!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-custom-goods-notice summary strong{color:#75411d!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-custom-goods-notice summary small{color:#79685c!important}

/* Photogrammetry: remove the large leftover navy cards in Light mode. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-capture-mode-panel,.xyz3d-local-project,.xyz3d-reconstruction-panel){
  background:linear-gradient(145deg,#f4f6f7 0%,#dbe2e6 100%)!important;
  border-color:#9eabb4!important;
  color:var(--xyz282-ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.84),0 8px 20px rgba(43,55,64,.10)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-local-project-metrics div,.xyz3d-reconstruction-metrics div,.xyz3d-reconstruction-status){
  background:linear-gradient(180deg,#d7dee2,#c5cfd5)!important;
  border-color:#98a6af!important;
  color:var(--xyz282-ink)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-local-project-metrics span,.xyz3d-reconstruction-metrics span){color:#5d6f7c!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-reconstruction-progress span{background:#adb8bf!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-reconstruction-progress i{background:linear-gradient(90deg,#ff9e52,#e45d0f)!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-capture-mode-grid button{
  background:linear-gradient(180deg,#f2ae78,#de7d3b)!important;
  border-color:#bf6127!important;
  color:#14293a!important;
  filter:saturate(.70)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-capture-mode-grid button strong{color:#102a3d!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-capture-mode-grid button.is-active{
  background:linear-gradient(180deg,#ffd0a6,#ff9742 14%,#f16b13 56%,#ca4803)!important;
  border-color:#9f3500!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.72),inset 0 -3px 0 rgba(122,38,0,.25),0 3px 0 #8f3000,0 7px 14px rgba(124,53,7,.27)!important;
  filter:saturate(1.18)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-guide{
  background:linear-gradient(145deg,#e9edef,#cbd3d8)!important;
  border-color:#94a3ad!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-route-viewer{background:linear-gradient(145deg,#d7dee3,#bfc9cf)!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-route-head,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-guide-copy{background:rgba(235,239,241,.96)!important;color:var(--xyz282-ink)!important}

/* Mould: all nested dark drawers/cards become silver; only the 3D canvas may remain dark. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-stepper{
  background:linear-gradient(180deg,#e7ecef,#cfd7dc)!important;
  border-bottom:1px solid #a2afb7!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-mould-tooling-card,.xyz3d-mould-drawer,.xyz3d-top-drawer,.xyz3d-tool-drawer,.xyz3d-check-field,.xyz3d-workzone>div){
  background:linear-gradient(180deg,#e3e8eb,#cbd4d9)!important;
  border-color:#9ba9b2!important;
  color:var(--xyz282-ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-drawer-body,
.xyz3d-app[data-ui-theme="light"] .xyz3d-top-drawer-body,
.xyz3d-app[data-ui-theme="light"] .xyz3d-tool-drawer-content{background:linear-gradient(180deg,#eef2f4,#dbe2e6)!important;color:var(--xyz282-ink)!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-drawer-head,
.xyz3d-app[data-ui-theme="light"] .xyz3d-top-drawer>.xyz3d-section-title.xyz3d-top-drawer-head,
.xyz3d-app[data-ui-theme="light"] .xyz3d-tool-drawer>summary{
  background:linear-gradient(180deg,#f3ad76,#df7a37)!important;
  border-color:#bd5a20!important;
  color:#10344d!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.60)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-drawer.open>.xyz3d-mould-drawer-head,
.xyz3d-app[data-ui-theme="light"] .xyz3d-top-drawer.open>.xyz3d-section-title.xyz3d-top-drawer-head,
.xyz3d-app[data-ui-theme="light"] .xyz3d-tool-drawer[open]>summary{
  background:linear-gradient(180deg,#ffd0a5,#ff9540 15%,#ef6710 58%,#cc4803)!important;
  border-color:#9f3500!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.70),0 3px 0 #8d3000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-mould-drawer-head strong,.xyz3d-mould-drawer-head em,.xyz3d-mould-drawer-head b,.xyz3d-tool-drawer>summary){color:#102f46!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-drawer-head:after,
.xyz3d-app[data-ui-theme="light"] .xyz3d-top-drawer-head:after,
.xyz3d-app[data-ui-theme="light"] .xyz3d-tool-drawer>summary:after{color:#163a54!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-stepper button{filter:saturate(.68)!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-stepper button.active{filter:saturate(1.18)!important}

/* Analysis/quote zones: stop the grey fog and preserve readable separation. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-analysis-status,
.xyz3d-app[data-ui-theme="light"] .xyz3d-production-estimate{
  background:linear-gradient(180deg,#e9eef0,#d6dfe3)!important;
  border:1px solid #a9b5bd!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-metrics>div{
  background:linear-gradient(180deg,#c9d2d7,#b6c0c7)!important;
  border:1px solid #9aa7b0!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-quote{
  background:linear-gradient(180deg,#e4eaed,#cbd4d9)!important;
  color:var(--xyz282-ink)!important;
}

/* Silver dropdown/button popovers and CAD display panel. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-panel{
  background:linear-gradient(180deg,#eef2f4,#d5dde2)!important;
  border-color:#98a7b0!important;
  color:var(--xyz282-ink)!important;
  box-shadow:0 14px 32px rgba(48,58,67,.18),inset 0 1px 0 #fff!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-head strong,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-panel label,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-check span{color:#17364e!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-panel b{color:#b64b09!important}

/* Theme selector is a switch, not part of the orange action-button family. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-theme280 button{
  background:linear-gradient(180deg,#dce3e7,#c3cdd3)!important;
  border:1px solid #98a5ae!important;
  color:#294254!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important;
  filter:none!important;
  transform:none!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-theme280 button[aria-pressed="true"]{
  background:linear-gradient(180deg,#ffd1a7,#ff9845 18%,#f16e17 60%,#d44e06)!important;
  border-color:#a63a03!important;
  color:#0b2739!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.72),0 2px 0 #913100,0 5px 10px rgba(121,54,9,.22)!important;
}


/* 0.18.96.283 — Light-mode contrast pass. Dark theme intentionally untouched. */
.xyz3d-app[data-ui-theme="light"]{
  --xyz283-ink:#101820;
  --xyz283-navy:#0b3552;
  --xyz283-muted:#526675;
  --xyz283-orange:#f47a22;
  --xyz283-orange-deep:#d95508;
  --xyz283-orange-active:#ff6500;
  --xyz283-orange-active-deep:#c83d00;
}
/* Customer-facing text must never inherit pale cyan/white from dark components. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel,.xyz3d-panel-body,.xyz3d-photo-single-settings,.xyz3d-photo-single-workspace,
  .xyz3d-photo-workspace,.xyz3d-photo-service-shell,.xyz3d-guided-mould-panel,
  .xyz3d-capture-mode-panel,.xyz3d-local-project,.xyz3d-reconstruction-panel,
  .xyz3d-single-panel-section,.xyz3d-light-panel,.xyz3d-quote,.xyz3d-analysis-status,
  .xyz3d-production-estimate,.xyz3d-mould-tooling-card,.xyz3d-mould-drawer-body,
  .xyz3d-top-drawer-body,.xyz3d-tool-drawer-content
){color:var(--xyz283-ink)!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel label,.xyz3d-panel p,.xyz3d-panel small,.xyz3d-panel span,
  .xyz3d-photo-single-settings label,.xyz3d-photo-single-settings p,.xyz3d-photo-single-settings small,.xyz3d-photo-single-settings span,
  .xyz3d-light-panel label,.xyz3d-light-panel span,.xyz3d-light-panel small,
  .xyz3d-capture-mode-panel label,.xyz3d-capture-mode-panel p,.xyz3d-capture-mode-panel small,.xyz3d-capture-mode-panel span,
  .xyz3d-local-project label,.xyz3d-local-project p,.xyz3d-local-project small,.xyz3d-local-project span,
  .xyz3d-reconstruction-panel label,.xyz3d-reconstruction-panel p,.xyz3d-reconstruction-panel small,.xyz3d-reconstruction-panel span,
  .xyz3d-quote label,.xyz3d-quote p,.xyz3d-quote small,.xyz3d-quote span
){color:var(--xyz283-muted)!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-section-title,.xyz3d-section-title span,.xyz3d-panel-head,.xyz3d-panel-head strong,
  .xyz3d-subsection-title,.xyz3d-eyebrow,.xyz3d-single-panel-head strong,
  .xyz3d-photo-single-head h3,.xyz3d-photo-route-head span,.xyz3d-photo-quicksetup-head strong,
  .xyz3d-capture-mode-head span,.xyz3d-local-project-head span,.xyz3d-reconstruction-head span,
  .xyz3d-mould-drawer-head strong,.xyz3d-top-drawer-head strong,.xyz3d-tool-drawer>summary
){color:var(--xyz283-navy)!important;font-weight:800!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-capture-mode-head strong,.xyz3d-local-project-head strong,.xyz3d-reconstruction-head strong,
  .xyz3d-local-project-metrics strong,.xyz3d-reconstruction-metrics strong,
  .xyz3d-price,.xyz3d-account-contact strong,.xyz3d-quote strong,.xyz3d-production-estimate strong,
  .xyz3d-analysis-status strong,.xyz3d-light-panel b
){color:var(--xyz283-ink)!important}

/* Fields remain darker than the surrounding silver so controls are clearly separate. */
.xyz3d-app[data-ui-theme="light"] :is(
  input[type="text"],input[type="number"],input[type="email"],input[type="search"],input[type="url"],textarea,select,
  .xyz3d-input-wrap,.xyz3d-input-suffix
){
  background:linear-gradient(180deg,#d2d9de 0%,#bac5cc 100%)!important;
  border-color:#7f909c!important;
  color:#07131d!important;
  box-shadow:inset 0 2px 4px rgba(34,48,58,.14),0 1px 0 rgba(255,255,255,.90)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(input,textarea,select)::placeholder{color:#536674!important;opacity:1!important}
.xyz3d-app[data-ui-theme="light"] select option{background:#c1cbd1!important;color:#08151e!important}
.xyz3d-app[data-ui-theme="light"] select option:checked{background:#f47a22!important;color:#07131d!important}

/* Buttons: stronger orange even when idle; active is visibly brighter/deeper/3D. */
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]):not(:disabled),
.xyz3d-app[data-ui-theme="light"] .button:not(:disabled),
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn:not(:disabled){
  background:linear-gradient(180deg,#ffac6c 0%,#f47a22 50%,#dc5d0d 100%)!important;
  border-color:#b94b09!important;
  color:#09151e!important;
  filter:saturate(1.04)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.25)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.62),inset 0 -2px 0 rgba(120,39,0,.18),0 2px 0 #a84207,0 4px 8px rgba(91,47,18,.22)!important;
}
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]) :is(span,strong,b,small),
.xyz3d-app[data-ui-theme="light"] .button :is(span,strong,b,small){color:#09151e!important}
.xyz3d-app[data-ui-theme="light"] :is(
  button.active,button.is-active,button.is-selected,button[aria-pressed="true"],button[aria-selected="true"],
  .xyz3d-services button.active,.xyz3d-panel-tabs button.active,.xyz3d-photo-studio-modes button.is-active,
  .xyz3d-capture-mode-grid button.is-active,.xyz3d-mould-stepper button.active
):not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]):not(:disabled){
  background:linear-gradient(180deg,#ffd09f 0%,#ff8b2b 14%,var(--xyz283-orange-active) 50%,var(--xyz283-orange-active-deep) 100%)!important;
  border-color:#a93400!important;
  color:#050b0f!important;
  filter:saturate(1.25) contrast(1.06)!important;
  transform:translateY(-1px)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.82),inset 0 -4px 0 rgba(111,30,0,.28),0 3px 0 #8d2b00,0 7px 14px rgba(125,49,5,.35)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  button.active,button.is-active,button.is-selected,button[aria-pressed="true"],button[aria-selected="true"]
) :is(span,strong,b,small){color:#050b0f!important}
.xyz3d-app[data-ui-theme="light"] button:disabled,
.xyz3d-app[data-ui-theme="light"] button[aria-disabled="true"]{
  background:linear-gradient(180deg,#dcc6b7,#c7b3a6)!important;
  border-color:#a99283!important;
  color:#66594f!important;
  filter:saturate(.30)!important;
  opacity:.68!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.46)!important;
}

/* Header/service cards: clear inactive vs selected state, black readable titles. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-studio-modes button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-services button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-service-nav>button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-panel-tabs button{
  background:linear-gradient(180deg,#f8b681 0%,#e88643 100%)!important;
  border-color:#b95a20!important;
  color:#0b1116!important;
  filter:saturate(.90)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.64),0 1px 0 rgba(133,58,18,.32)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-studio-modes button :is(strong,span,small),
.xyz3d-app[data-ui-theme="light"] .xyz3d-services button :is(strong,span,small),
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-service-nav>button :is(strong,span,small),
.xyz3d-app[data-ui-theme="light"] .xyz3d-panel-tabs button :is(strong,span,small){color:#0b1116!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-studio-modes button.is-active,
.xyz3d-app[data-ui-theme="light"] .xyz3d-services button.active,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-service-nav>button.active,
.xyz3d-app[data-ui-theme="light"] .xyz3d-panel-tabs button.active{
  background:linear-gradient(180deg,#ffc082 0%,#ff8020 18%,#f35b00 62%,#ce3d00 100%)!important;
  border-color:#9d2e00!important;
  filter:saturate(1.18)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.78),inset 0 -3px 0 rgba(107,28,0,.26),0 3px 0 #862800,0 6px 12px rgba(110,43,6,.28)!important;
}

/* 3D/CAD toolbar: OFF remains orange but subdued; ON gets a strong pressed/illuminated form. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-toolbar button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-solid-stage-toolbar button{
  background:linear-gradient(180deg,#f6a15f,#df6d20)!important;
  border-color:#b84d10!important;
  color:#07131c!important;
  filter:saturate(.88)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 2px 0 #a9430c,0 4px 7px rgba(76,46,27,.18)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-toolbar button[aria-pressed="true"],
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-solid-stage-toolbar button[aria-pressed="true"]{
  background:linear-gradient(180deg,#ffd08e 0%,#ff8a1d 14%,#ff5a00 52%,#c93800 100%)!important;
  border-color:#902700!important;
  color:#03090d!important;
  filter:saturate(1.34) contrast(1.08)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.86),inset 0 -4px 0 rgba(101,22,0,.30),0 3px 0 #761f00,0 7px 14px rgba(118,40,0,.38),0 0 0 2px rgba(255,114,20,.16)!important;
}

/* Light settings popovers/lighting panel use silver headers rather than old navy blocks. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-light-panel,.xyz3d-single-cad149-panel){
  background:linear-gradient(180deg,#edf1f3,#d3dbe0)!important;
  border-color:#8d9ca7!important;
  color:#111820!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-light-panel,.xyz3d-single-cad149-panel) :is(label,span,strong,b,small){color:#152431!important}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-light-panel,.xyz3d-single-cad149-panel) b{color:#0b3552!important}

/* Preserve the dark 3D canvas itself in Light mode; only its surrounding UI is light. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-viewer,.xyz3d-single-solid-stage,.xyz3d-single-solid-stage-wrap,.xyz3d-single-extrusion-stage) canvas{color-scheme:dark}


/* 0.18.96.284 — Light-mode neutral grey workspace requested from reference sample.
   Sample dominant RGB = 142,142,142 (#8e8e8e). Dark theme remains untouched. */
.xyz3d-app[data-ui-theme="light"]{
  --xyz-bg:#8e8e8e;
  --xyz284-bg:#8e8e8e;
  --xyz284-bg-soft:#989898;
  --xyz284-bg-deep:#828282;
}
.xyz3d-app[data-ui-theme="light"],
.xyz3d-app[data-ui-theme="light"] .xyz3d-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-main-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-photo-service-shell,
.xyz3d-app[data-ui-theme="light"] .xyz3d-workspace,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-workspace,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-workspace,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-video-workspace{
  background:#8e8e8e!important;
}
/* Large empty/customer workspace areas use the same neutral grey instead of blue-grey. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-stage,
  .xyz3d-photo-single-stage,
  .xyz3d-photo-route-viewer,
  .xyz3d-upload-view,
  .xyz3d-photo-upload,
  .xyz3d-single-photo-dropzone-stage
){
  background:#8e8e8e!important;
}
/* Keep actual 3D canvases/viewers dark; only their surrounding light-mode chrome changes. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-viewer,
  .xyz3d-single-solid-stage,
  .xyz3d-single-solid-stage-wrap,
  .xyz3d-single-extrusion-stage
){
  background:#06111c!important;
}
/* A subtle darker edge gives the grey workspace definition without reintroducing blue tint. */
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-stage,.xyz3d-photo-single-stage,.xyz3d-photo-route-viewer){
  border-color:#747474!important;
}


/* 0.18.96.285 — final light-theme cleanup: remove remaining dark cards/heads and force black text in light mode. */
.xyz3d-app[data-ui-theme="light"]{
  --xyz285-bg:#8e8e8e;
  --xyz285-panel:#d9dde1;
  --xyz285-panel-2:#cfd5da;
  --xyz285-card:#e4e8eb;
  --xyz285-card-2:#bcc4cb;
  --xyz285-line:#8a98a4;
  --xyz285-ink:#000000;
  --xyz285-orange-1:#ef8d3f;
  --xyz285-orange-2:#d86b12;
  --xyz285-orange-3:#ff7e12;
  background:var(--xyz285-bg)!important;
  color:var(--xyz285-ink)!important;
}
.xyz3d-app[data-ui-theme="light"] *,
.xyz3d-app[data-ui-theme="light"] *::before,
.xyz3d-app[data-ui-theme="light"] *::after{border-color:var(--xyz285-line)}
.xyz3d-app[data-ui-theme="light"],
.xyz3d-app[data-ui-theme="light"] .xyz3d-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-main-shell,
.xyz3d-app[data-ui-theme="light"] > .xyz3d-photo-service-shell,
.xyz3d-app[data-ui-theme="light"] .xyz3d-panel,
.xyz3d-app[data-ui-theme="light"] .xyz3d-guided-mould-panel,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings,
.xyz3d-app[data-ui-theme="light"] .xyz3d-setting-section,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-panel-section,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-quicksetup,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-quality-note,
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-selection,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-step2-summary>div,
.xyz3d-app[data-ui-theme="light"] .xyz3d-relief-channel257,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-cad149-panel,
.xyz3d-app[data-ui-theme="light"] .xyz3d-capture-mode-panel,
.xyz3d-app[data-ui-theme="light"] .xyz3d-local-project,
.xyz3d-app[data-ui-theme="light"] .xyz3d-reconstruction-panel,
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-tooling-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-drawer,
.xyz3d-app[data-ui-theme="light"] .xyz3d-top-drawer,
.xyz3d-app[data-ui-theme="light"] .xyz3d-tool-drawer,
.xyz3d-app[data-ui-theme="light"] .xyz3d-check-field,
.xyz3d-app[data-ui-theme="light"] .xyz3d-workzone>div,
.xyz3d-app[data-ui-theme="light"] .xyz3d-quote,
.xyz3d-app[data-ui-theme="light"] .xyz3d-account-contact,
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-info,
.xyz3d-app[data-ui-theme="light"] .xyz3d-model-chip,
.xyz3d-app[data-ui-theme="light"] .xyz3d-support-summary{
  background:var(--xyz285-panel)!important;
  color:var(--xyz285-ink)!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-section-title,.xyz3d-single-panel-head,.xyz3d-mould-drawer-head,.xyz3d-top-drawer>.xyz3d-section-title.xyz3d-top-drawer-head,.xyz3d-tool-drawer>summary,.xyz3d-panel-tabs,.xyz3d-photo-service-nav,.xyz3d-photo-studio-modes,.xyz3d-photo-route-head,.xyz3d-photo-guide-copy,.xyz3d-single-stage-toolbar,.xyz3d-single-solid-toolbar,.xyz3d-single-extrusion-toolbar,.xyz3d-single-solid-stage-toolbar){
  background:linear-gradient(180deg,#e6eaee,#c6ced5)!important;
  color:#000!important;
  box-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-mould-drawer-body,.xyz3d-top-drawer-body,.xyz3d-tool-drawer-content,.xyz3d-local-project-metrics div,.xyz3d-reconstruction-metrics div,.xyz3d-reconstruction-status,.xyz3d-photo-route-viewer,.xyz3d-relief-empty,.xyz3d-dropzone,.xyz3d-photo-dropzone,.xyz3d-single-photo-dropzone,.xyz3d-single-photo-dropzone-stage){
  background:linear-gradient(180deg,#e5e9ec,#cdd4d9)!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(h1,h2,h3,h4,h5,h6,p,span,label,small,strong,b,em,li,div,a,summary){
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-section-title small,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-panel-head small,
.xyz3d-app[data-ui-theme="light"] .xyz3d-account-contact span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-info span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-model-chip span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-support-summary span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-local-project-metrics span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-reconstruction-metrics span{color:#101010!important}
.xyz3d-app[data-ui-theme="light"] input,
.xyz3d-app[data-ui-theme="light"] textarea,
.xyz3d-app[data-ui-theme="light"] select,
.xyz3d-app[data-ui-theme="light"] .xyz3d-input-suffix{
  background:#d6dce1!important;
  color:#000!important;
  border:1px solid #8c98a4!important;
}
.xyz3d-app[data-ui-theme="light"] select option{background:#cfd5da!important;color:#000!important}
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]),
.xyz3d-app[data-ui-theme="light"] .button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn{
  background:linear-gradient(180deg,var(--xyz285-orange-1),var(--xyz285-orange-2))!important;
  color:#000!important;
  border:1px solid #b8570f!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 1px 4px rgba(96,49,17,.26)!important;
  filter:saturate(1.08)!important;
}
.xyz3d-app[data-ui-theme="light"] button:not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]) :is(span,strong,b,small,em,i),
.xyz3d-app[data-ui-theme="light"] .button :is(span,strong,b,small,em,i),
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn :is(span,strong,b,small,em,i){color:#000!important}
.xyz3d-app[data-ui-theme="light"] button:not(:disabled):not(.xyzst-swatch):not([data-swatch]):not([data-colour]):not([data-color]):hover,
.xyz3d-app[data-ui-theme="light"] .button:not(:disabled):hover,
.xyz3d-app[data-ui-theme="light"] .xyz3d-filebtn:not(:disabled):hover{
  background:linear-gradient(180deg,#ffac5d,#de7016)!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(button.active,button.is-active,button[aria-pressed="true"],.xyz3d-panel-tabs button.active,.xyz3d-panel-tabs button[aria-pressed="true"],.xyz3d-photo-studio-modes button.active,.xyz3d-photo-studio-modes button.is-active,.xyz3d-services button.active,.xyz3d-services button[aria-pressed="true"],.xyz3d-viewer-toolbar button[aria-pressed="true"],.xyz3d-single-solid-stage-toolbar button[aria-pressed="true"]){
  background:linear-gradient(180deg,#ffa24c 0%,#ff7d12 52%,#cf5800 100%)!important;
  color:#000!important;
  border-color:#9c4500!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.38),inset 0 -3px 0 rgba(121,45,0,.26),0 5px 10px rgba(104,47,11,.26)!important;
  filter:saturate(1.15)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-viewer-toolbar,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-solid-stage-toolbar{background:rgba(217,221,225,.92)!important;border-color:#8a98a4!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-custom-goods-notice,
.xyz3d-app[data-ui-theme="light"] .xyz3d-service-start-consent,
.xyz3d-app[data-ui-theme="light"] details,
.xyz3d-app[data-ui-theme="light"] .xyz3d-upload-files,
.xyz3d-app[data-ui-theme="light"] .xyz3d-order-note,
.xyz3d-app[data-ui-theme="light"] .xyz3d-order-options,
.xyz3d-app[data-ui-theme="light"] .xyz3d-analysis-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-metrics-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-engineering-card{background:var(--xyz285-panel-2)!important;color:#000!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-setting-section .xyz3d-legend,
.xyz3d-app[data-ui-theme="light"] .xyz3d-setting-section legend,
.xyz3d-app[data-ui-theme="light"] .xyz3d-section-title span,
.xyz3d-app[data-ui-theme="light"] .xyz3d-single-panel-head strong{color:#000!important}


/* 0.18.96.286 — residual dark-theme leak cleanup for Light mode only. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel .xyz3d-section-title,
  .xyz3d-guided-mould-panel .xyz3d-section-title,
  .xyz3d-panel-body>.xyz3d-model-section>.xyz3d-section-title,
  .xyz3d-panel-body>.xyz3d-setting-section>.xyz3d-section-title,
  .xyz3d-mould-request-section .xyz3d-subsection-title,
  .xyz3d-engineering-section .xyz3d-subsection-title,
  .xyz3d-top-drawer>.xyz3d-section-title.xyz3d-top-drawer-head
){
  background:linear-gradient(180deg,#dfe4e8,#c0c8cf)!important;
  color:#000!important;
  border-color:#8e9ba6!important;
  box-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel .xyz3d-section-title>span,
  .xyz3d-panel .xyz3d-section-title>small,
  .xyz3d-guided-mould-panel .xyz3d-section-title span,
  .xyz3d-guided-mould-panel .xyz3d-section-title small,
  .xyz3d-subsection-title span,
  .xyz3d-subsection-title small
){color:#000!important}

.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-project-upload-card,
  .xyz3d-project-file-chip,
  .xyz3d-upload-files,
  .xyz3d-order-note,
  .xyz3d-order-options,
  .xyz3d-analysis-card,
  .xyz3d-metrics-card,
  .xyz3d-engineering-card,
  .xyz3d-physical143,
  .xyz3d-layer142-selected,
  .xyz3d-layer142-list,
  .xyz3d-layer142-row,
  .xyz3d-layer142-final,
  .xyz3d-alpha146-note,
  .xyz3d-vc219-actions,
  .xyz3d-vector-curve219,
  .xyz3d-cutter224-fields
){
  background:linear-gradient(180deg,#e9edf0,#d4dbe0)!important;
  color:#000!important;
  border-color:#94a0aa!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-project-upload-card:hover{border-color:#d86b12!important}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-project-upload-card>b,.xyz3d-project-upload-card>span,.xyz3d-project-upload-card>em,.xyz3d-project-file-chip b,.xyz3d-project-file-chip small,.xyz3d-project-file-empty){color:#000!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-project-upload-card>em{
  background:linear-gradient(180deg,#ffb16b,#e57e28)!important;
  border-color:#b55a17!important;
  color:#000!important;
}

.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-engineering-overview,
  .xyz3d-engineering-mini-panel,
  .xyz3d-engineering-workflow-steps article,
  .xyz3d-engineering-overview-note,
  .xyz3d-engineering-service-grid button
){
  background:linear-gradient(180deg,#e7ebee,#d3dade)!important;
  color:#000!important;
  border-color:#95a1ab!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-engineering-overview-head h3,
  .xyz3d-engineering-overview-head p,
  .xyz3d-engineering-overview-kicker,
  .xyz3d-engineering-mini-panel>b,
  .xyz3d-engineering-mini-panel span,
  .xyz3d-engineering-workflow-title span,
  .xyz3d-engineering-workflow-title small,
  .xyz3d-engineering-workflow-steps .num,
  .xyz3d-engineering-workflow-steps b,
  .xyz3d-engineering-workflow-steps p,
  .xyz3d-engineering-overview-note>span,
  .xyz3d-engineering-overview-note p,
  .xyz3d-engineering-service-grid b,
  .xyz3d-engineering-service-grid small
){color:#000!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-engineering-mini-panel span{background:#d0d7dc!important;border-color:#a0acb6!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-engineering-workflow-steps .num{background:#d0d8dd!important;border-color:#a1adb7!important}

.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-single-stage-toolbar,
  .xyz3d-single-solid-toolbar,
  .xyz3d-single-extrusion-toolbar,
  .xyz3d-single-solid-stage-toolbar,
  .xyz3d-layer142-toolbar,
  .xyz3d-photo-route-head,
  .xyz3d-photo-guide-copy
){
  background:linear-gradient(180deg,#e7ecef,#d1d8dd)!important;
  color:#000!important;
  border-color:#93a0aa!important;
  box-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-layer142-toolbar button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-layer142-final button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-layer142-actions button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-vc219-actions button,
.xyz3d-app[data-ui-theme="light"] .xyz3d-cutter224-fields button{
  background:linear-gradient(180deg,#ffb16b,#ef8a35 52%,#d56a12)!important;
  border-color:#b75810!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(.xyz3d-layer142-toolbar button,.xyz3d-layer142-final button,.xyz3d-layer142-actions button,.xyz3d-vc219-actions button,.xyz3d-cutter224-fields button) :is(span,b,strong,small){color:#000!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-photo-route-head span,
  .xyz3d-photo-route-head strong,
  .xyz3d-photo-route-head small,
  .xyz3d-photo-guide-copy strong,
  .xyz3d-photo-guide-copy span,
  .xyz3d-single-solid-toolbar>div:first-child span,
  .xyz3d-single-solid-toolbar>div:first-child strong,
  .xyz3d-single-solid-toolbar>div:first-child small,
  .xyz3d-single-extrusion-toolbar span,
  .xyz3d-single-extrusion-toolbar strong,
  .xyz3d-single-extrusion-toolbar small,
  .xyz3d-single-step2-summary strong,
  .xyz3d-single-step2-summary span,
  .xyz3d-physical143-head strong,
  .xyz3d-physical143 small,
  .xyz3d-layer142-status,
  .xyz3d-alpha146-note b,
  .xyz3d-alpha146-note span,
  .xyz3d-vc219-help,
  .xyz3d-vc219-actions+small
){color:#000!important}


/* 0.18.96.287 — stronger light-theme text contrast + final residual dark cleanup. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel-body,
  .xyz3d-panel-body>.xyz3d-setting-section,
  .xyz3d-panel-body>.xyz3d-model-section,
  .xyz3d-mould-request-section,
  .xyz3d-engineering-section,
  .xyz3d-quote,
  .xyz3d-info-card,
  .xyz3d-physical143,
  .xyz3d-alpha146-note,
  .xyz3d-layer142-selected,
  .xyz3d-photo-guide,
  .xyz3d-photo-guide-copy,
  .xyz3d-photo-route-head,
  .xyz3d-photo-route-viewer,
  .xyz3d-photo-route-status,
  .xyz3d-photo-route-metrics,
  .xyz3d-engineering-overview,
  .xyz3d-project-upload-card,
  .xyz3d-project-file-chip,
  .xyz3d-upload-files,
  .xyz3d-order-note,
  .xyz3d-order-options
) :is(label,span,small,strong,b,p,em,li,legend){
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel-body,
  .xyz3d-mould-request-section,
  .xyz3d-engineering-section,
  .xyz3d-quote,
  .xyz3d-photo-guide,
  .xyz3d-engineering-overview,
  .xyz3d-project-upload-card,
  .xyz3d-upload-files,
  .xyz3d-order-note,
  .xyz3d-order-options,
  .xyz3d-info-card,
  .xyz3d-analysis-card,
  .xyz3d-metrics-card,
  .xyz3d-engineering-card,
  .xyz3d-custom-goods-notice,
  .xyz3d-service-start-consent,
  .xyz3d-customer-contact
){
  background:linear-gradient(180deg,#edf1f3,#d7dee3)!important;
  border-color:#97a4ae!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-info-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-guided-mould-panel .xyz3d-info-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-engineering-section .xyz3d-info-card,
.xyz3d-app[data-ui-theme="light"] .xyz3d-mould-request-section .xyz3d-info-card{
  background:linear-gradient(180deg,#edf1f3,#d6dde2)!important;
  border-color:#97a4ae!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-help-panel,
  .xyz3d-engineering-section .xyz3d-help-panel,
  .xyz3d-photo-route-metrics small,
  .xyz3d-photo-route-head > div,
  .xyz3d-photo-route-head > div small
){
  background:linear-gradient(180deg,#dde4e9,#c5ced5)!important;
  border-color:#94a1ab!important;
  color:#000!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-route-metrics small.has-warning{color:#6b3f00!important}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-textarea>span,
  .xyz3d-field>span:first-child,
  .xyz3d-field label,
  .xyz3d-check-field,
  .xyz3d-quote label,
  .xyz3d-quote p,
  .xyz3d-quote small,
  .xyz3d-quote span,
  .xyz3d-customer-contact label,
  .xyz3d-customer-contact p,
  .xyz3d-customer-contact small,
  .xyz3d-customer-contact span
){color:#000!important}
.xyz3d-app[data-ui-theme="light"] :is(input,textarea,select)::placeholder{color:#4d5b65!important;opacity:1!important}


/* 0.18.96.288 — light mode ultra-contrast text pass. */
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-panel,
  .xyz3d-panel-body,
  .xyz3d-panel-body *,
  .xyz3d-setting-section,
  .xyz3d-model-section,
  .xyz3d-mould-request-section,
  .xyz3d-mould-request-section *,
  .xyz3d-engineering-section,
  .xyz3d-engineering-section *,
  .xyz3d-quote,
  .xyz3d-quote *,
  .xyz3d-info-card,
  .xyz3d-info-card *,
  .xyz3d-check-field,
  .xyz3d-check-field *,
  .xyz3d-field,
  .xyz3d-field *,
  .xyz3d-textarea,
  .xyz3d-textarea *,
  .xyz3d-photo-guide,
  .xyz3d-photo-guide *,
  .xyz3d-photo-route-head,
  .xyz3d-photo-route-head *,
  .xyz3d-photo-route-status,
  .xyz3d-photo-route-status *,
  .xyz3d-photo-route-metrics,
  .xyz3d-photo-route-metrics *,
  .xyz3d-upload-files,
  .xyz3d-upload-files *,
  .xyz3d-order-options,
  .xyz3d-order-options *,
  .xyz3d-order-note,
  .xyz3d-order-note *,
  .xyz3d-analysis-card,
  .xyz3d-analysis-card *,
  .xyz3d-metrics-card,
  .xyz3d-metrics-card *,
  .xyz3d-engineering-card,
  .xyz3d-engineering-card *
){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  text-shadow:none!important;
  opacity:1!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-section-title,
  .xyz3d-subsection-title,
  .xyz3d-single-panel-head,
  .xyz3d-panel-tabs button,
  .xyz3d-photo-service-nav button,
  .xyz3d-photo-studio-modes button,
  .xyz3d-services button,
  .xyz3d-photo-route-head,
  .xyz3d-photo-guide-copy
){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  font-weight:700!important;
}
.xyz3d-app[data-ui-theme="light"] :is(
  .xyz3d-field>span:first-child,
  .xyz3d-textarea>span,
  .xyz3d-check-field,
  .xyz3d-check-field label,
  .xyz3d-engineering-section label,
  .xyz3d-mould-request-section label,
  .xyz3d-quote label,
  .xyz3d-quote strong,
  .xyz3d-quote b,
  .xyz3d-price,
  .xyz3d-price strong,
  .xyz3d-account-contact strong,
  .xyz3d-subsection-title,
  .xyz3d-section-title
){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  font-weight:600!important;
}
.xyz3d-app[data-ui-theme="light"] input:disabled,
.xyz3d-app[data-ui-theme="light"] textarea:disabled,
.xyz3d-app[data-ui-theme="light"] select:disabled,
.xyz3d-app[data-ui-theme="light"] button:disabled{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  opacity:1!important;
}


/* 0.18.96.289 — exact Light-mode header cleanup requested from screenshots. Dark mode untouched. */
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section > .xyz3d-section-title,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-model-section > .xyz3d-section-title,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section > .xyz3d-section-title,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section .xyz3d-subsection-title,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section > .xyz3d-section-title,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-mould-request-section .xyz3d-subsection-title{
  background:linear-gradient(180deg,#dfe4e8 0%,#c4ccd2 100%)!important;
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  border-top:1px solid #9aa6af!important;
  border-bottom:1px solid #8c99a3!important;
  border-left:4px solid #f36f16!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65)!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell :is(
  .xyz3d-section-title>span,.xyz3d-section-title>small,
  .xyz3d-subsection-title>span,.xyz3d-subsection-title>small
){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
}

/* Order options / priority must be a Light card, not a leftover dark block. */
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section{
  background:linear-gradient(180deg,#d3d9de 0%,#c1c9cf 100%)!important;
  color:#000!important;
  border-top:1px solid #929fa9!important;
  border-bottom:1px solid #929fa9!important;
  box-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-customer-options-section :is(span,b,small,label,div){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
}

/* Engineering section bands named in the screenshots. */
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-section :is(.xyz3d-section-title,.xyz3d-subsection-title){
  background:linear-gradient(180deg,#dfe4e8,#c4ccd2)!important;
  color:#000!important;
  border-left:4px solid #f36f16!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-pipeline{
  background:#b9c1c8!important;
  border-color:#8e9aa4!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96 > .xyz3d-main-shell .xyz3d-engineering-pipeline :is(span,i){color:#000!important;-webkit-text-fill-color:#000!important;opacity:1!important}


/* 0.18.96.290 — compact capture rail + Single Photo accordion/UI polish. Dark mode untouched. */
/* Photogrammetry: fit the whole capture selector cleanly inside the 380 px rail. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-panel{
  padding:12px!important;
  border-radius:14px!important;
  margin-bottom:0!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(92px,122px)!important;
  align-items:start!important;
  gap:8px!important;
  margin-bottom:9px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-head>div{gap:2px!important;min-width:0!important}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-head span{font-size:8px!important;letter-spacing:.11em!important}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-head strong{
  font-size:15px!important;
  line-height:1.12!important;
  max-width:190px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-head small{
  max-width:none!important;
  font-size:9px!important;
  line-height:1.25!important;
  text-align:right!important;
  overflow-wrap:anywhere!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-grid button{
  min-height:82px!important;
  padding:10px!important;
  gap:3px!important;
  border-radius:11px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-grid button strong{font-size:12px!important;line-height:1.15!important}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-grid button span{
  min-height:0!important;
  font-size:9px!important;
  line-height:1.25!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-capture-mode-grid button small{font-size:7px!important;letter-spacing:.07em!important}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools :is(.xyz3d-around-route-options,.xyz3d-dome-route-options){
  grid-template-columns:minmax(0,1fr)!important;
  gap:7px!important;
  margin-top:9px!important;
  padding-top:9px!important;
  width:100%!important;
  min-width:0!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools :is(.xyz3d-around-route-options,.xyz3d-dome-route-options)>*{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-route-preset-summary{
  padding:8px 10px!important;
  min-width:0!important;
  overflow:hidden!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-route-preset-summary strong,
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-route-preset-summary span{
  display:block!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-route-preset-summary strong{font-size:11px!important}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-route-preset-summary span{font-size:9px!important;line-height:1.25!important}

/* Scale reference was still inheriting the original dark photo CSS. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-scale-reference{
  background:linear-gradient(180deg,#d0d6da 0%,#b7c0c7 100%)!important;
  border:1px solid #87949e!important;
  color:#000!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-scale-reference :is(strong,span,label,small){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-scale-reference-head span{font-size:8px!important;font-weight:800!important;letter-spacing:.06em!important}
.xyz3d-app[data-ui-theme="light"] .xyz3d-scale-marker-check{color:#000!important}

/* Single Photo: denser, darker silver headers and high-contrast setting copy. */
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-section{
  border-top-color:#8f9ba5!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-head{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:6px!important;
  min-height:32px!important;
  margin:0 0 7px!important;
  padding:5px 34px 5px 7px!important;
  box-sizing:border-box!important;
  background:linear-gradient(180deg,#d0d6db 0%,#b7c0c7 100%)!important;
  border:1px solid #8c99a3!important;
  border-radius:5px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-head strong{
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.15!important;
  min-width:0!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-head small{
  color:#101010!important;
  -webkit-text-fill-color:#101010!important;
  font-size:8.5px!important;
  font-weight:600!important;
  line-height:1.15!important;
  text-align:right!important;
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-section :is(
  label,span,small,p,li,em,.xyz3d-ve264-help,.xyz3d-vc219-help,[data-vc219-status],[data-vs221-status],[data-layer142-status]
){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
  text-shadow:none!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-panel-section :is(label>span,strong,b){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
}

/* One predictable accordion toggle everywhere in Single Photo. */
.xyz3d-photo-single-settings .xyz3d-single-panel-head .xyz3d-single-section-toggle140{
  position:absolute!important;
  top:50%!important;
  right:5px!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;
  min-width:22px!important;
  max-width:22px!important;
  height:22px!important;
  min-height:22px!important;
  max-height:22px!important;
  margin:0!important;
  padding:0!important;
  border-radius:6px!important;
  box-sizing:border-box!important;
  font-size:12px!important;
  line-height:1!important;
  z-index:2!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-section-toggle140{
  background:linear-gradient(180deg,#ff9d52,#e66f18)!important;
  border:1px solid #b6530f!important;
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 1px 2px rgba(0,0,0,.16)!important;
}
.xyz3d-app[data-ui-theme="light"] .xyz3d-photo-single-settings .xyz3d-single-section-toggle140:hover{
  background:linear-gradient(180deg,#ffb16b,#ef7c21)!important;
  border-color:#954109!important;
  color:#000!important;
}
.xyz3d-photo-single-settings .xyz3d-single-panel-section.is-collapsed140{
  padding-bottom:0!important;
  margin-bottom:0!important;
}


/* 0.18.96.292 — correct 400px rail geometry + Dome azimuth panel cleanup.
   No artificial left margin is added: all rails keep the native Single Photo alignment. */
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-options{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-grid{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-grid button{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  white-space:normal!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-grid button :is(strong,small){
  min-width:0!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-marker-setting{
  grid-template-columns:1fr!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  gap:6px!important;
}
.xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-marker-setting select{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-options,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-turntable-tracking-options{
  background:linear-gradient(180deg,#d5dbe0 0%,#c1c9cf 100%)!important;
  border-color:#8d99a3!important;
  color:#000!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important;
}
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-options>span,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-note,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-marker-setting>span,
.xyz3d-app[data-ui-theme="light"].xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-turntable-tracking-options :is(label,span,small){
  color:#000!important;
  -webkit-text-fill-color:#000!important;
  opacity:1!important;
}
@media (max-width:430px){
  .xyz3d-app.xyz3d-layout-v96.xyz3d-photo-open .xyz3d-photo-left-tools .xyz3d-dome-motion-grid{
    grid-template-columns:1fr!important;
  }
}


/* 0.18.96.293 — exact 400px shared desktop rail for FDM / Resin / Mould.
   3D Scan / Engineering deliberately keeps the existing wide split. */
@media (min-width:861px){
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-workspace{
    grid-template-columns:400px minmax(0,1fr)!important;
  }
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel,
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel{
    width:400px!important;
    min-width:400px!important;
    max-width:400px!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* 0.18.96.294 — FDM / Resin / Mould use the same inner rail gutter as Single Photo.
   Rail stays exactly 400px. 3D Scan / Engineering remains unchanged. */
@media (min-width:861px){
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel-body,
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel.xyz3d-guided-mould-panel .xyz3d-panel-body{
    box-sizing:border-box!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }

  /* Ordinary FDM / Resin cards now stop at the same 10px inner edges as Single Photo. */
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-setting-section,
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) .xyz3d-panel-body > .xyz3d-model-section{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Mould had legacy full-bleed/negative margins. Neutralise only those margins so
     the guided mould rail follows the same 10px inset without changing its workflow. */
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-guided-mould-panel .xyz3d-top-drawer,
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-guided-mould-panel .xyz3d-panel-body > .xyz3d-setting-section.xyz3d-top-drawer{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-guided-mould-panel .xyz3d-mould-request-section{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* 0.18.96.295 — FDM / Resin Analysis rail gets the same visible inner gutter as Configure/Single Photo.
   Directly targets the dynamic analysis panel because its generated metric/list content otherwise reads full-bleed. */
@media (min-width:861px){
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) > .xyz3d-panel-body[data-panel="analysis"]{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .xyz3d-app.xyz3d-layout-v96:not(.xyz3d-service-scan-wide) > .xyz3d-main-shell .xyz3d-panel:not(.xyz3d-guided-mould-panel) > .xyz3d-panel-body[data-panel="analysis"] > :is(
    .xyz3d-analysis-status,
    .xyz3d-metrics,
    .xyz3d-analysis-list,
    .xyz3d-analysis-note
  ){
    box-sizing:border-box!important;
    max-width:100%!important;
  }
}

/* 0.18.96.363 — Single Photo text guide shapes (editor helper only). */
.xyz3d-textguide363-panel{border-color:rgba(90,220,255,.30)!important;background:rgba(5,25,38,.62)!important}
.xyz3d-textguide363-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.xyz3d-textguide363-presets button{min-height:30px;border:1px solid rgba(86,170,207,.3);border-radius:7px;background:rgba(6,24,39,.92);color:#dff5ff;font-size:9px;font-weight:800;cursor:pointer}
.xyz3d-textguide363-presets button:hover{border-color:rgba(87,220,255,.72)}
.xyz3d-textguide363{color:#ffd95c;pointer-events:none}
.xyz3d-textguide363 path,.xyz3d-textguide363 line{fill:none;stroke:#ffd95c;stroke-width:1.4;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;opacity:.95;pointer-events:none}
.xyz3d-textguide363 circle{fill:#04111d;stroke:#ffd95c;stroke-width:1.8;vector-effect:non-scaling-stroke;pointer-events:all;cursor:nwse-resize}
.xyz3d-textguide363 circle[data-textguide363-handle="move"]{fill:#ffd95c;stroke:#04111d;cursor:move}
@media(max-width:700px){.xyz3d-textguide363-presets{grid-template-columns:repeat(3,minmax(0,1fr))}}
