
.canvas-stage[data-v-76a3380b] {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
.ruler-shell[data-v-76a3380b] {
  --ruler-size: 24px;
  --canvas-width: 800px;
  --canvas-height: 800px;

  display: grid;
  position: relative;
  grid-template-columns: var(--ruler-size) var(--canvas-width);
  grid-template-rows: var(--ruler-size) var(--canvas-height);
  width: calc(var(--ruler-size) + var(--canvas-width));
  margin: 0;
  transform: scale(var(--canvas-scale));
  transform-origin: top center;
}
.canvas-toolbar[data-v-76a3380b] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid #d1d5db;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  background: #f8fafc;
}
.canvas-toolbar-bottom[data-v-76a3380b] {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 1;
  justify-content: flex-start;
  border-top: none;
  border-bottom: 1px solid #d1d5db;
  border-radius: 0 0 8px 8px;
}
.canvas-toolbar-bottom-text[data-v-76a3380b] {
  color: #475569;
  font-size: 13px;
  font-weight: 600;
  white-space: pre;
}
.canvas-location-toggle[data-v-76a3380b] {
  margin-left: 36px;
}
.canvas-annotations-toggle[data-v-76a3380b] {
  margin-left: 36px;
}
.canvas-toolbar-title[data-v-76a3380b] {
  font-size: 15px;
  font-weight: 600;
  color: #475569;
  letter-spacing: 0.01em;
  -webkit-user-select: none;
          user-select: none;
}
.canvas-toolbar-actions[data-v-76a3380b] {
  display: flex;
  align-items: center;
  width: 100%;
}
.canvas-toolbar-spacer[data-v-76a3380b] {
  flex: 1;
}
.canvas-rotation-select[data-v-76a3380b] {
  width: 105px;
}
.canvas-clear-btn[data-v-76a3380b] {
  margin-left: 0;
}
.canvas-toolbar-actions[data-v-76a3380b] .q-btn {
  min-height: 30px;
  font-size: 14px;
}
.canvas-toolbar-actions[data-v-76a3380b] .q-btn .q-icon {
  font-size: 18px;
}
.canvas-toolbar-actions[data-v-76a3380b] .q-btn--round {
  min-width: 30px;
  width: 30px;
  padding: 0;
}
.canvas-align-menu[data-v-76a3380b] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.canvas-zoom-floating[data-v-76a3380b] {
  position: absolute;
  right: 10px;
  top: 68px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.95);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
  z-index: 2;
}
.canvas-zoom-control[data-v-76a3380b] {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
}
.canvas-zoom-readout[data-v-76a3380b] {
  min-width: 42px;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: #334155;
}
.canvas-context-menu[data-v-76a3380b] {
  position: absolute;
  min-width: 140px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 16px rgba(15, 23, 42, 0.16);
  z-index: 5;
  overflow: hidden;
}
.opacity-control[data-v-76a3380b] {
  width: 190px;
  overflow-x: hidden;
}
.canvas-zoom-floating[data-v-76a3380b] .q-btn {
  min-height: 24px;
  font-size: 12px;
}
.canvas-zoom-floating[data-v-76a3380b] .q-btn--round {
  min-width: 24px;
  width: 24px;
  height: 24px;
}
.canvas-toolbar-divider[data-v-76a3380b] {
  align-self: center;
  height: 22px;
  margin: 0 6px;
  background: #cbd5e1;
}
.ruler-corner[data-v-76a3380b] {
  grid-column: 1;
  grid-row: 1;
  background: #f1f5f9;
  border: 1px solid #d1d5db;
  border-right: none;
  border-bottom: none;
}
.ruler[data-v-76a3380b] {
  position: relative;
  background: #f1f5f9;
  border: 1px solid #d1d5db;
  overflow: hidden;
}
.ruler-top[data-v-76a3380b] {
  grid-column: 2;
  grid-row: 1;
  border-left: none;
  border-bottom: none;
}
.ruler-left[data-v-76a3380b] {
  grid-column: 1;
  grid-row: 2;
  border-top: none;
  border-right: none;
}
.ruler-top .ruler-tick[data-v-76a3380b] {
  position: absolute;
  bottom: 0;
  width: 1px;
  background: #334155;
}
.ruler-left .ruler-tick[data-v-76a3380b] {
  position: absolute;
  right: 0;
  height: 1px;
  background: #334155;
}
.ruler-top .tick-inch[data-v-76a3380b] {
  height: 14px;
}
.ruler-top .tick-half[data-v-76a3380b] {
  height: 10px;
}
.ruler-top .tick-tenth[data-v-76a3380b] {
  height: 7px;
}
.ruler-left .tick-inch[data-v-76a3380b] {
  width: 14px;
}
.ruler-left .tick-half[data-v-76a3380b] {
  width: 10px;
}
.ruler-left .tick-tenth[data-v-76a3380b] {
  width: 7px;
}
.ruler-label-top[data-v-76a3380b] {
  position: absolute;
  bottom: 9px;
  left: 2px;
  font-size: 10px;
  color: #475569;
  -webkit-user-select: none;
          user-select: none;
}
.ruler-label-left[data-v-76a3380b] {
  position: absolute;
  right: 14px;
  top: -5px;
  font-size: 10px;
  color: #475569;
  -webkit-user-select: none;
          user-select: none;
}
.canvas-wrap[data-v-76a3380b] {
  grid-column: 2;
  grid-row: 2;
  position: relative;
  width: var(--canvas-width);
  height: var(--canvas-height);
  border: 1px solid #d1d5db;
  border-radius: 0 0 8px 0;
  overflow: hidden;
  background: #f8fafc;
}
.canvas-wrap canvas[data-v-76a3380b] {
  display: block;
}
.text-refresh-overlay[data-v-76a3380b] {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid #dbe3ef;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 3;
}
.canvas-loading-overlay[data-v-76a3380b] {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(248, 250, 252, 0.72);
  backdrop-filter: blur(2px);
}
.canvas-loading-card[data-v-76a3380b] {
  width: min(280px, calc(100% - 32px));
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.canvas-loading-text[data-v-76a3380b] {
  font-size: 13px;
  font-weight: 600;
  color: #334155;
}
.canvas-loading-progress[data-v-76a3380b] {
  width: 100%;
  border-radius: 999px;
}
.flip-vertical-btn[data-v-76a3380b] .q-icon {
  transform: rotate(90deg);
}

.designer-color-picker-dialog[data-v-9985ca0a] {
  width: min(760px, 92vw);
  max-width: 760px;
}
.color-picker-controls[data-v-9985ca0a] {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}
.selected-color-summary[data-v-9985ca0a] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.selected-color-swatch[data-v-9985ca0a] {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 1px solid #94a3b8;
  border-radius: 4px;
}
.selected-color-name[data-v-9985ca0a] {
  overflow: hidden;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.color-picker-used-colors[data-v-9985ca0a] {
  max-height: min(28vh, 220px);
  overflow-y: auto;
}
.color-picker-body[data-v-9985ca0a] {
  max-height: min(62vh, 540px);
  overflow-y: auto;
}
.color-swatch-grid[data-v-9985ca0a] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 10px;
}
.color-swatch-button[data-v-9985ca0a] {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  color: #334155;
  cursor: pointer;
}
.color-swatch-button-active[data-v-9985ca0a] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937;
}
.color-swatch[data-v-9985ca0a] {
  width: 100%;
  aspect-ratio: 1 / 0.72;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
}
.color-swatch-name[data-v-9985ca0a] {
  width: 100%;
  overflow: hidden;
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 520px) {
.color-picker-controls[data-v-9985ca0a] {
    grid-template-columns: 1fr;
}
.color-swatch-grid[data-v-9985ca0a] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
}

.quick-color-row[data-v-cfd70dc5] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.quick-color-replacement[data-v-cfd70dc5] {
  padding: 0;
}
.quick-color-name[data-v-cfd70dc5] {
  flex: 1;
  min-width: 0;
  text-align: left;
}
.quick-color-swatch[data-v-cfd70dc5] {
  display: inline-block;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border: 1px solid #bbb;
  border-radius: 4px;
}

.designer-fill-copy-dialog[data-v-4798e553] {
  width: min(680px, 92vw);
}
.fill-copy-actions[data-v-4798e553] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fill-copy-piece-grid[data-v-4798e553] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 10px;
  max-height: min(55vh, 430px);
  overflow-y: auto;
}
.fill-copy-piece[data-v-4798e553] {
  position: relative;
  display: grid;
  min-width: 0;
  justify-items: center;
  gap: 6px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  color: #334155;
  cursor: pointer;
}
.fill-copy-piece-active[data-v-4798e553] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937;
}
.fill-copy-piece[data-v-4798e553] .q-checkbox {
  position: absolute;
  top: 2px;
  left: 2px;
  z-index: 1;
}
.fill-copy-piece-thumbnail[data-v-4798e553],
.fill-copy-piece-placeholder[data-v-4798e553] {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  background: #f8fafc;
  object-fit: contain;
}
.fill-copy-piece-placeholder[data-v-4798e553] {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  font-weight: 600;
}
.fill-copy-piece-name[data-v-4798e553] {
  width: 100%;
  overflow: hidden;
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.designer-fill-dialog[data-v-9f8d3e81] {
  width: min(440px, 92vw);
}
.fill-dialog-header-actions[data-v-9f8d3e81] {
  display: flex;
  align-items: center;
  gap: 2px;
}
.fill-type-row[data-v-9f8d3e81] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fill-type-select[data-v-9f8d3e81] {
  flex: 1;
}
.fill-color-slots[data-v-9f8d3e81] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.fill-color-slot[data-v-9f8d3e81] {
  display: grid;
  min-width: 0;
  justify-items: center;
  gap: 6px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
  color: #334155;
  cursor: pointer;
}
.fill-color-slot[data-v-9f8d3e81]:hover {
  border-color: var(--q-primary);
}
.fill-color-swatch[data-v-9f8d3e81] {
  width: 100%;
  aspect-ratio: 1 / 0.72;
  border: 1px solid #94a3b8;
  border-radius: 6px;
}
.fill-color-label[data-v-9f8d3e81] {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
.fill-color-name[data-v-9f8d3e81] {
  width: 100%;
  overflow: hidden;
  color: #475569;
  font-size: 11px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fill-gradient-editor[data-v-9f8d3e81] {
  padding: 12px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
}
.fill-gradient-preview[data-v-9f8d3e81] {
  height: 36px;
  margin-right: 10px;
  margin-left: 10px;
  border: 1px solid #94a3b8;
  border-radius: 6px;
}
.fill-breakpoint-label[data-v-9f8d3e81] {
  margin-bottom: 8px;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}
.fill-angle-row[data-v-9f8d3e81] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.fill-angle-label[data-v-9f8d3e81] {
  margin-top: 10px;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}
.fill-angle-slider[data-v-9f8d3e81] {
  flex: 1;
}
.fill-angle-input[data-v-9f8d3e81] {
  width: 108px;
}
.fill-angle-presets[data-v-9f8d3e81] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.fill-angle-presets[data-v-9f8d3e81] .q-btn {
  min-height: 26px;
  padding: 0 7px;
  font-size: 11px;
}
.fill-angle-preset-active[data-v-9f8d3e81] {
  background: color-mix(in srgb, var(--q-primary) 12%, transparent);
}
.fill-breakpoint-values[data-v-9f8d3e81] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}
.fill-breakpoint-values strong[data-v-9f8d3e81] {
  color: #0f172a;
}

.designer-stroke-dialog[data-v-3611b2b0] {
  width: min(760px, calc(100vw - 32px));
  max-width: 760px;
}
.stroke-dialog-body[data-v-3611b2b0] {
  min-width: 0;
}
.stroke-color-grid[data-v-3611b2b0],
.stroke-size-grid[data-v-3611b2b0] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.stroke-color-card[data-v-3611b2b0] {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
  padding: 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #f8fafc;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.stroke-color-card[data-v-3611b2b0]:hover {
  border-color: var(--q-primary);
  background: #eff6ff;
}
.stroke-color-swatch[data-v-3611b2b0] {
  width: 28px;
  height: 28px;
  border: 1px solid #9ca3af;
  border-radius: 4px;
  grid-row: span 2;
}
.stroke-color-label[data-v-3611b2b0],
.stroke-size-heading[data-v-3611b2b0] {
  font-weight: 600;
}
.stroke-color-name[data-v-3611b2b0] {
  overflow: hidden;
  color: #6b7280;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stroke-size-control[data-v-3611b2b0] {
  min-width: 0;
}
.stroke-size-heading[data-v-3611b2b0] {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
}
@media (max-width: 600px) {
.stroke-color-grid[data-v-3611b2b0],
  .stroke-size-grid[data-v-3611b2b0] {
    grid-template-columns: 1fr;
}
}

.text-layer-row[data-v-b9a2256a],
.text-layer-effect-row[data-v-b9a2256a] {
  min-height: 44px;
}
.text-layer-effect-drag-section[data-v-b9a2256a] {
  padding-right: 4px;
}
.text-layer-effect-drag-handle[data-v-b9a2256a] {
  cursor: grab;
}
.text-layer-effect-drag-handle[data-v-b9a2256a]:active {
  cursor: grabbing;
}
.text-layer-effect-row--dragging[data-v-b9a2256a] {
  opacity: 0.5;
}
.text-layer-effect-list[data-v-b9a2256a] {
  margin-left: 20px;
  border-left: 1px solid #e2e8f0;
}
.text-layer-effect-thumb[data-v-b9a2256a] {
  width: 32px;
  height: 32px;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  object-fit: contain;
}
.text-layer-effect-actions[data-v-b9a2256a] {
  display: flex;
  align-items: center;
}
.destructive-action-btn[data-v-b9a2256a]:hover,
.destructive-action-btn[data-v-b9a2256a]:focus-visible {
  color: var(--q-negative) !important;
}

.piece-picker[data-v-020bb9db] {
  display: flex;
  flex-wrap: nowrap;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  gap: 8px;
  padding-bottom: 4px;
}
.piece-thumb[data-v-020bb9db] {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 72px;
  min-width: 72px;
  border: 2px solid transparent;
  border-radius: 8px;
  background: #ffffff;
  padding: 0;
  cursor: pointer;
}
.piece-thumb-active[data-v-020bb9db] {
  border-color: var(--q-primary);
  box-shadow: 0 0 0 1px var(--q-primary);
  background: linear-gradient(180deg, color-mix(in srgb, var(--q-primary) 8%, #ffffff) 0%, #ffffff 100%);
}
.piece-thumb[data-v-020bb9db]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--q-primary) 55%, #ffffff);
  outline-offset: 2px;
}
.piece-thumb-check[data-v-020bb9db] {
  position: absolute;
  z-index: 1;
  top: 3px;
  right: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  background: var(--q-primary);
  color: #ffffff;
  box-shadow: 0 1px 3px rgb(15 23 42 / 28%);
}
.piece-thumb-active .piece-thumb-label[data-v-020bb9db] { color: #0f172a;
}
.piece-thumb-img[data-v-020bb9db],
.piece-thumb-placeholder[data-v-020bb9db] {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  background: #9ca3af;
  padding: 5px;
  box-sizing: border-box;
}
.piece-thumb-img[data-v-020bb9db] { object-fit: contain; display: block;
}
.piece-thumb-placeholder[data-v-020bb9db] { display: flex; align-items: center; justify-content: center; color: #64748b;
}
.piece-thumb-label[data-v-020bb9db] {
  width: 100%;
  font-size: 11px;
  font-weight: 600;
  color: #475569;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.piece-header[data-v-123718e6] {
  min-width: 0;
  font-size: 18px;
  font-weight: 700;
  color: #334155;
}
.artwork-actions[data-v-123718e6] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.artwork-location[data-v-123718e6] {
  flex: 1 1 150px;
  min-width: 0;
}
.branding-actions[data-v-123718e6] {
  display: flex;
  gap: 8px;
}
.branding-action-btn[data-v-123718e6] {
  flex: 1 1 0;
  min-width: 0;
}
.item-thumb-wrap[data-v-123718e6] {
  width: 44px;
  height: 44px;
  padding: 3px;
  box-sizing: border-box;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #d1d5db;
  background: #f8fafc;
}
.item-thumb[data-v-123718e6] {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.item-thumb-fallback[data-v-123718e6] {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e2e8f0;
}
.layer-item-actions[data-v-123718e6] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.layer-item-actions-left[data-v-123718e6] {
  margin-right: 4px;
}
.layer-item-actions[data-v-123718e6] .q-btn {
  min-width: 26px;
  width: 26px;
  height: 26px;
}
.logo-layer-expand-btn[data-v-123718e6] {
  padding-left: 0;
}
.opacity-control[data-v-123718e6] {
  width: 190px;
  overflow-x: hidden;
}
.artwork-drag-section[data-v-123718e6] {
  padding-right: 2px;
}
.artwork-drag-handle[data-v-123718e6] {
  cursor: grab;
}
.artwork-drag-handle[data-v-123718e6]:active {
  cursor: grabbing;
}
.group-parent-row[data-v-123718e6] {
  background: #f8fafc;
}
.artwork-update-row[data-v-123718e6] {
  padding-left: 0;
  padding-right: 0;
}
.group-child-row[data-v-123718e6] {
  padding-left: 34px;
  background: #eef2f7;
  border-left: 3px solid #cbd5e1;
}
.group-child-row[data-v-123718e6]:hover {
  background: #e2e8f0;
}
.text-artwork-expanded-row[data-v-123718e6] {
  margin: 0 0 4px;
  min-height: 36px;
  padding: 6px 10px;
  background: #f8fafc;
}
@media (max-width: 1100px) {
.artwork-actions[data-v-123718e6] {
    flex-direction: column;
}
.artwork-actions .q-btn[data-v-123718e6] {
    width: 100%;
}
}

.material-filters[data-v-ac955eff] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.material-filters-single[data-v-ac955eff] {
  grid-template-columns: 1fr;
}
.material-grid[data-v-ac955eff] {
  display: grid;
  grid-template-columns: repeat(auto-fit, 140px);
  justify-content: start;
  gap: 10px;
}
.material-tile[data-v-ac955eff] {
  width: 100%;
  max-width: 140px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  cursor: pointer;
}
.material-tile-active[data-v-ac955eff] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937;
}
.material-thumb-wrap[data-v-ac955eff] {
  width: 100%;
  max-width: 140px;
  border-radius: 6px;
  background: transparent;
  overflow: hidden;
  margin: 0 auto;
}
.material-thumb[data-v-ac955eff] {
  width: 100%;
  height: auto;
  display: block;
}
.material-thumb-none[data-v-ac955eff] {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  font-size: 11px;
  font-weight: 600;
}
.material-name[data-v-ac955eff] {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #334155;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.style-overlay-actions[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.style-overlay-actions[data-v-9a08f41e] .q-btn {
  flex: 1 1 0;
  min-width: 120px;
}
.product-action-toolbar[data-v-9a08f41e] {
  flex-wrap: nowrap;
}
.product-action-toolbar[data-v-9a08f41e] .q-btn {
  min-width: 0;
  padding-right: 6px;
  padding-left: 6px;
}
.style-library-dialog[data-v-9a08f41e] {
  width: min(780px, 92vw);
  max-width: 780px;
}
.style-layer-row[data-v-9a08f41e] {
  cursor: grab;
}
.style-layer-row[data-v-9a08f41e]:active {
  cursor: grabbing;
}
.effect-row[data-v-9a08f41e],
.effect-row[data-v-9a08f41e]:active {
  cursor: pointer;
}
.effect-drag-section[data-v-9a08f41e] {
  padding-right: 2px;
}
.effect-drag-handle[data-v-9a08f41e] {
  cursor: grab;
}
.effect-drag-handle[data-v-9a08f41e]:active {
  cursor: grabbing;
}
.effect-row-badges[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 3px;
}
.effect-row-badges[data-v-9a08f41e] .q-badge {
  font-size: 10px;
  line-height: 1;
}
.style-layer-actions[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.style-layer-actions[data-v-9a08f41e] .q-btn {
  min-width: 26px;
  width: 26px;
  height: 26px;
}
.destructive-action-btn[data-v-9a08f41e]:hover,
.destructive-action-btn[data-v-9a08f41e]:focus,
.destructive-action-btn[data-v-9a08f41e]:focus-visible,
.destructive-action-btn[data-v-9a08f41e]:active {
  color: var(--q-negative) !important;
}
.style-layer-expand-btn[data-v-9a08f41e] {
  padding-left: 0;
}
.style-sub-layer-list[data-v-9a08f41e] {
  background: #f8fafc;
}
.style-layer-effects-list[data-v-9a08f41e] {
  margin: 0 0 6px 42px;
  border-left: 2px solid color-mix(in srgb, var(--q-primary) 24%, #dbe3ef);
  background: #ffffff;
}
.style-layer-effect-row[data-v-9a08f41e] {
  min-height: 48px;
  padding-left: 12px;
}
.style-layer-effect-row--dragging[data-v-9a08f41e] {
  opacity: 0.5;
}
.style-layer-effect-thumb[data-v-9a08f41e] {
  display: block;
  width: 32px;
  height: 32px;
  border: 1px solid #dbe3ef;
  border-radius: 4px;
  background: #f8fafc;
  object-fit: contain;
}
.effect-target-context[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border-left: 3px solid var(--q-primary);
  background: #f8fafc;
}
.effect-target-copy[data-v-9a08f41e] {
  flex: 1 1 auto;
  min-width: 0;
}
.effect-target-breadcrumb[data-v-9a08f41e] {
  overflow: hidden;
  color: #64748b;
  font-size: 11px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.effect-target-copy .text-body2[data-v-9a08f41e] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.effect-empty-state[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.style-layer-effect-copy-dialog[data-v-9a08f41e] {
  width: min(560px, 92vw);
}
.effect-expanded-panel[data-v-9a08f41e] {
  background: #f8fafc;
}
.effect-settings-panel[data-v-9a08f41e] {
  box-sizing: border-box;
  max-width: 100%;
  padding: 12px 8px 8px;
  overflow-x: hidden;
}
.effect-powerclip-settings[data-v-9a08f41e] {
  display: grid;
  gap: 16px;
  margin-top: 16px;
  min-width: 0;
}
.effect-overlay-settings[data-v-9a08f41e] {
  display: grid;
  gap: 16px;
  margin-top: 16px;
  min-width: 0;
}
.effect-settings-section[data-v-9a08f41e] {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
}
.effect-settings-section[data-v-9a08f41e] .q-item {
  min-height: 40px;
  padding: 8px 12px;
  font-weight: 600;
}
.effect-settings-section[data-v-9a08f41e] .q-item__section--main {
  min-width: 0;
}
.effect-settings-section[data-v-9a08f41e] .q-item__label {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.3;
}
.effect-settings-section-content[data-v-9a08f41e] {
  display: grid;
  gap: 16px;
  min-width: 0;
  padding: 8px 12px 16px;
}
.effect-fade-control-row[data-v-9a08f41e] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
  gap: 12px;
  align-items: end;
}
.effect-fade-control-row > div[data-v-9a08f41e],
.effect-fade-slider-row[data-v-9a08f41e] {
  min-width: 0;
}
.effect-tile-settings[data-v-9a08f41e] {
  display: grid;
  gap: 16px;
  margin-top: 16px;
  min-width: 0;
}

/* PowerclipSettings' q-gutter-md root pulls its first section up 16px; neutralize it so
   Tile/Seamless/Overlay sections get the same 16px gap below the tabs as the PowerClip sections. */
.effect-shared-settings-sections[data-v-9a08f41e] {
  margin-top: 0;
}
.effect-tile-mode-row[data-v-9a08f41e] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}
.effect-padding-controls[data-v-9a08f41e] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.effect-padding-controls > div[data-v-9a08f41e],
.effect-tile-mode-row > div[data-v-9a08f41e] {
  min-width: 0;
}
.effect-tile-size-control[data-v-9a08f41e] {
  min-width: 0;
  padding-bottom: 4px;
}
.effect-tile-size-control[data-v-9a08f41e] .effect-tile-size-marker {
  font-size: 10px;
}
.effect-tile-size-control[data-v-9a08f41e] .effect-tile-size-marker::before {
  display: block;
  width: 1px;
  height: 4px;
  margin: 0 auto 2px;
  background: currentColor;
  content: '';
}
.effect-settings-panel[data-v-9a08f41e] .effect-percentage-marker {
  font-size: 9px;
}
.effect-settings-panel[data-v-9a08f41e] .effect-percentage-marker::before {
  display: block;
  width: 1px;
  height: 4px;
  margin: 0 auto 2px;
  background: currentColor;
  content: '';
}
.effect-settings-panel[data-v-9a08f41e] .effect-angle-marker {
  font-size: 9px;
}
.effect-settings-panel[data-v-9a08f41e] .effect-angle-marker::before {
  display: block;
  width: 1px;
  height: 4px;
  margin: 0 auto 2px;
  background: currentColor;
  content: '';
}
.effect-alignment-grid[data-v-9a08f41e] {
  display: grid;
  grid-template-columns: repeat(3, 40px);
  gap: 4px;
}
.effect-alignment-grid[data-v-9a08f41e] .q-btn {
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
}
.section-tab-panel[data-v-9a08f41e] {
  padding: 8px 0 0;
}
.style-sub-layer-row[data-v-9a08f41e] {
  min-height: 36px;
}
.style-opacity-control[data-v-9a08f41e] {
  width: 190px;
  overflow-x: hidden;
}
.style-color-control[data-v-9a08f41e] {
  width: 240px;
  overflow-x: hidden;
}
.style-color-swatch-btn[data-v-9a08f41e] {
  border: 1px solid #d1d5db;
  width: 30px;
  height: 30px;
  min-width: 30px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.style-layer-thumb-wrap[data-v-9a08f41e] {
  width: 38px;
  height: 38px;
  padding: 3px;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  overflow: hidden;
  background: #f8fafc;
}
.style-layer-thumb[data-v-9a08f41e] {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.style-layer-thumb-fallback[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.style-library-dialog-body[data-v-9a08f41e] {
  min-height: 180px;
  max-height: min(70vh, 620px);
  overflow-y: auto;
}
.style-grid[data-v-9a08f41e] {
  display: grid;
  grid-template-columns: repeat(auto-fit, 140px);
  justify-content: start;
  gap: 10px;
}
.style-tile[data-v-9a08f41e] {
  width: 100%;
  max-width: 140px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  cursor: pointer;
}
.style-tile-active[data-v-9a08f41e] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937;
}
.style-thumb-wrap[data-v-9a08f41e] {
  width: 100%;
  max-width: 140px;
  border-radius: 6px;
  background: transparent;
  overflow: hidden;
  margin: 0 auto;
}
.style-thumb[data-v-9a08f41e] {
  width: 100%;
  height: auto;
  display: block;
}
.style-thumb-none[data-v-9a08f41e] {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  font-size: 11px;
  font-weight: 600;
}
.style-name[data-v-9a08f41e] {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #334155;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.color-grid[data-v-f86a3340] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: 10px;
}
.color-tile[data-v-f86a3340] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  cursor: pointer;
}
.color-tile-active[data-v-f86a3340] {
  border-color: var(--q-primary);
  box-shadow: 0 0 0 1px var(--q-primary);
}
.color-thumb-wrap[data-v-f86a3340] {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  background: #f8fafc;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.color-thumb[data-v-f86a3340] {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
  box-sizing: border-box;
}
.color-thumb-none[data-v-f86a3340] {
  color: #64748b;
  font-size: 11px;
  font-weight: 600;
}
.color-name[data-v-f86a3340] {
  width: 100%;
  font-size: 11px;
  font-weight: 600;
  color: #334155;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.product-panel-content[data-v-bde43f28] {
  min-height: 100%;
}
.pattern-piece-update-footer[data-v-bde43f28] {
  position: sticky;
  z-index: 2;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin: 16px -2px -1px;
  padding: 10px 2px 2px;
  border-top: 1px solid #e2e8f0;
  background: #ffffff;
}
.duplicate-effects-btn[data-v-bde43f28] {
  margin-left: auto;
}
.product-header-row[data-v-bde43f28] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.piece-header[data-v-bde43f28] {
  min-width: 0;
  font-size: 18px;
  font-weight: 700;
  color: #334155;
}
.change-product-btn[data-v-bde43f28] {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 0 10px;
}
.product-description[data-v-bde43f28] {
  color: #475569;
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-line;
}
.product-bullet-list[data-v-bde43f28] {
  margin-top: 0;
  padding-left: 22px;
  color: #475569;
  font-size: 14px;
  line-height: 1.5;
}
.product-pricing-table[data-v-bde43f28] {
  width: 100%;
  border-collapse: collapse;
  color: #475569;
  font-size: 14px;
}
.product-pricing-table-wrap[data-v-bde43f28] {
  width: 100%;
  overflow-x: auto;
}
.product-pricing-table th[data-v-bde43f28],
.product-pricing-table td[data-v-bde43f28] {
  border-bottom: 1px solid #d1d5db;
  padding: 6px 10px;
  text-align: left;
}
.product-pricing-table th[data-v-bde43f28] {
  border-top: 1px solid #d1d5db;
  background: #f8fafc;
  color: #334155;
  font-weight: 600;
}
.product-pricing-table th[data-v-bde43f28]:nth-child(n + 2),
.product-pricing-table td[data-v-bde43f28]:nth-child(n + 2) {
  text-align: right;
}
.product-dialog-card[data-v-bde43f28] {
  width: min(760px, 92vw);
  max-width: 760px;
}
.product-dialog-body[data-v-bde43f28] {
  position: relative;
  min-height: 180px;
  max-height: min(70vh, 620px);
  overflow-y: auto;
}
.product-grid[data-v-bde43f28] {
  display: grid;
  grid-template-columns: repeat(auto-fit, 140px);
  grid-auto-rows: auto;
  align-items: stretch;
  justify-content: start;
  gap: 10px;
}
.product-picker-tile[data-v-bde43f28] {
  position: relative;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  height: auto;
  min-height: 0;
  width: 100%;
  max-width: 140px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  cursor: default;
}
.product-picker-tile-custom[data-v-bde43f28] {
  align-items: center;
  justify-content: center;
  border-color: var(--q-primary);
  background: linear-gradient(180deg, color-mix(in srgb, var(--q-primary) 10%, #ffffff) 0%, #ffffff 100%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--q-primary) 10%, transparent);
  min-height: 140px;
}
.product-picker-tile-badge[data-v-bde43f28] {
  position: relative;
  z-index: 1;
  border-radius: 999px;
  background: var(--q-primary);
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  padding: 8px 12px;
  text-transform: uppercase;
}
.product-picker-tile[data-v-bde43f28]:not(:disabled) {
  cursor: pointer;
}
.product-picker-tile[data-v-bde43f28]:disabled {
  opacity: 0.65;
}
.product-picker-tile-active[data-v-bde43f28] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937;
}
.product-picker-tile-custom.product-picker-tile-active[data-v-bde43f28] {
  border-color: #1f2937;
  box-shadow: 0 0 0 1px #1f2937, inset 0 0 0 1px color-mix(in srgb, var(--q-primary) 10%, transparent);
}
.product-thumb-wrap[data-v-bde43f28] {
  width: 100%;
  max-width: 140px;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  background: #f8fafc;
  overflow: hidden;
  margin: 0 auto;
}
.product-thumb[data-v-bde43f28] {
  display: block;
  width: 100%;
  height: 100%;
  padding: 5px;
  box-sizing: border-box;
  object-fit: contain;
}
.product-thumb-none[data-v-bde43f28] {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  font-size: 11px;
  font-weight: 600;
}
.product-name[data-v-bde43f28] {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #334155;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.style-layers-wrap[data-v-bde43f28] {
  margin-top: 8px;
}
.style-layer-row[data-v-bde43f28] {
  padding-left: 0;
  padding-right: 0;
}
.style-layer-actions[data-v-bde43f28] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.style-layer-actions[data-v-bde43f28] .q-btn {
  min-width: 26px;
  width: 26px;
  height: 26px;
}
.style-opacity-control[data-v-bde43f28] {
  width: 190px;
  overflow-x: hidden;
}
.style-layer-thumb-wrap[data-v-bde43f28] {
  width: 38px;
  height: 38px;
  padding: 3px;
  box-sizing: border-box;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #d1d5db;
  background: #f8fafc;
}
.style-layer-thumb[data-v-bde43f28] {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.style-layer-thumb-fallback[data-v-bde43f28] {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e2e8f0;
}


.roster-actions[data-v-77be1bfc] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.roster-total-quantity[data-v-77be1bfc] {
  font-weight: 600;
  white-space: nowrap;
}
.roster-grid-wrap[data-v-77be1bfc] {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.roster-grid-wrap[data-v-77be1bfc]::-webkit-scrollbar {
  display: none;
}
.roster-grid-dynamic[data-v-77be1bfc] .q-field__bottom {
  padding-left: 0;
  padding-right: 0;
}
.roster-grid[data-v-77be1bfc] {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.roster-grid th[data-v-77be1bfc],
.roster-grid td[data-v-77be1bfc] {
  padding: 2px;
  text-align: left;
  vertical-align: middle;
}
.roster-grid th[data-v-77be1bfc] {
  font-size: 12px;
  font-weight: 600;
}
.roster-number-cell[data-v-77be1bfc] {
  width: 56px;
}
.roster-name-cell[data-v-77be1bfc] {
  min-width: 0;
}
.roster-select-column[data-v-77be1bfc],
.roster-select-cell[data-v-77be1bfc] {
  width: 34px;
}
.roster-name-column[data-v-77be1bfc] {
  width: 185px;
}

/* Lets the Name column absorb width lost to a vertical scrollbar so the delete column stays visible. */
.roster-name-column-fluid[data-v-77be1bfc] {
  width: auto;
}
.roster-number-column[data-v-77be1bfc] {
  width: 56px;
}
.roster-size-column[data-v-77be1bfc] {
  width: 98px;
}
.roster-quantity-column[data-v-77be1bfc] {
  width: 64px;
}
.roster-delete-column[data-v-77be1bfc] {
  width: 40px;
}
.roster-size-cell[data-v-77be1bfc] {
  width: 98px;
}
.roster-quantity-cell[data-v-77be1bfc] {
  width: 64px;
}
.roster-delete-cell[data-v-77be1bfc] {
  width: 40px;
}
.roster-grid[data-v-77be1bfc] .q-field__control {
  min-height: 32px;
}
.roster-name-cell[data-v-77be1bfc] .q-field {
  min-width: 0;
  width: 100%;
}
.sr-only[data-v-77be1bfc] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.info-panel[data-v-98fdfb06] {
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
  min-height: 220px;
  overflow: auto;
}
.panel-tabs-shell[data-v-98fdfb06] {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.panel-tabs[data-v-98fdfb06] {
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  padding: 2px;
}
.panel-tab-panels[data-v-98fdfb06] {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: transparent;
}
.panel-tab-content[data-v-98fdfb06] {
  padding: 8px 2px 0;
}
.right-panel-toolbar[data-v-98fdfb06] {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.right-panel-toolbar-left[data-v-98fdfb06],
.right-panel-toolbar-right[data-v-98fdfb06] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.right-panel-auth-prompt[data-v-98fdfb06] {
  margin-top: 8px;
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4b5563;
  font-size: 13px;
}
.auth-link-btn[data-v-98fdfb06] {
  padding: 0 4px;
  min-height: 24px;
  color: var(--q-primary);
  text-decoration: underline;
}
.right-panel-toolbar-btn[data-v-98fdfb06] {
  min-height: 40px;
  padding-left: 14px;
  padding-right: 14px;
  font-size: 13px;
}
.add-to-cart-dialog[data-v-98fdfb06] {
  width: min(480px, 92vw);
}
.add-to-cart-dialog-personalized[data-v-98fdfb06] {
  width: max-content;
  max-width: 92vw;
}
.add-to-cart-size-grid[data-v-98fdfb06] {
  display: grid;
  gap: 10px;
}
.add-to-cart-size-row[data-v-98fdfb06] {
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: 10px;
  align-items: center;
}
.add-to-cart-qty[data-v-98fdfb06] .q-field__control {
  min-height: 38px;
}
.add-to-cart-total[data-v-98fdfb06] {
  width: 120px;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #111827;
  font-size: 14px;
  font-weight: 600;
}


.artwork-picker[data-v-fa163f7d] { width: 780px; max-width: 94vw;
}
.artwork-picker-grid[data-v-fa163f7d] { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 14px;
}
.artwork-picker-item[data-v-fa163f7d] { padding: 8px; border: 1px solid #cbd5e1; border-radius: 6px; background: #f8fafc; cursor: pointer;
}
.artwork-picker-item[data-v-fa163f7d]:hover { border-color: var(--q-primary);
}

.stock-picker[data-v-ff3cbcca] { width: 1100px; max-width: 96vw;
}
.stock-picker-body[data-v-ff3cbcca] { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px;
}
.stock-picker-grid[data-v-ff3cbcca] { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 14px;
}
.stock-picker-item[data-v-ff3cbcca] { border: 1px solid #dce1e7; border-radius: 6px; background: #f8fafc; padding: 8px; cursor: pointer;
}
.stock-picker-item[data-v-ff3cbcca]:disabled { cursor: default;
}
@media (max-width: 767px) {
.stock-picker-body[data-v-ff3cbcca] { grid-template-columns: minmax(0, 1fr);
}
}

.picker[data-v-6ab1dc07] { width: 1100px; max-width: 96vw;
}

.canvas-layout[data-v-1c884c4f] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 500px;
  gap: 16px;
  align-items: start;
}
.image-library-dialog[data-v-1c884c4f] {
  width: min(860px, 92vw);
  height: min(78vh, 760px);
  max-height: 78vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.image-library-body[data-v-1c884c4f] {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.image-library-grid[data-v-1c884c4f] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 10px;
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 2px;
}
.image-library-thumb-btn[data-v-1c884c4f] {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #f8fafc;
  padding: 4px;
  cursor: pointer;
}
.image-library-thumb-btn[data-v-1c884c4f]:hover {
  border-color: #93c5fd;
  background: #eff6ff;
}
.image-library-thumb[data-v-1c884c4f] {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  display: block;
  border-radius: 6px;
}
.image-library-thumb-loading[data-v-1c884c4f] {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
}
.image-library-controls[data-v-1c884c4f] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.image-library-controls-left[data-v-1c884c4f],
.image-library-controls-right[data-v-1c884c4f] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.image-library-controls-left[data-v-1c884c4f] {
  flex: 1;
  min-width: 320px;
}
.image-library-filter-row[data-v-1c884c4f] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}
.image-library-filter-select[data-v-1c884c4f] {
  flex: 1;
}
.image-upload-form[data-v-1c884c4f] {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  padding: 12px;
  background: #f8fafc;
}
.image-upload-form-actions[data-v-1c884c4f] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.upload-artwork-dialog[data-v-1c884c4f] {
  min-width: 500px;
  max-width: 600px;
}
.add-text-dialog[data-v-1c884c4f] {
  width: min(560px, 92vw);
}
.tenant-design-dialog[data-v-1c884c4f] {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
}
.tenant-design-dialog-body[data-v-1c884c4f] {
  flex: 1 1 auto;
  overflow: auto;
}
.dialog-loading-shell[data-v-1c884c4f] {
  position: relative;
  overflow: hidden;
}
.dialog-loading-overlay[data-v-1c884c4f] {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(248, 250, 252, 0.72);
  backdrop-filter: blur(2px);
}
.dialog-loading-card[data-v-1c884c4f] {
  width: min(260px, calc(100% - 32px));
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.dialog-loading-text[data-v-1c884c4f] {
  font-size: 13px;
  font-weight: 600;
  color: #334155;
}
.dialog-loading-progress[data-v-1c884c4f] {
  width: 100%;
}
.add-folder-dialog-actions[data-v-1c884c4f] {
  min-height: 32px;
  gap: 8px;
}
.add-folder-dialog-error[data-v-1c884c4f] {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  max-width: 70%;
  text-align: left;
}
.add-text-grid[data-v-1c884c4f] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.add-text-grid-field[data-v-1c884c4f] {
  width: 100%;
}
.font-style-toggle-row[data-v-1c884c4f] {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 12px;
}
.font-style-toggle-row-left[data-v-1c884c4f] {
  justify-content: flex-start;
  grid-column: 1;
}
.text-shape-panel[data-v-1c884c4f] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 10px;
}
.text-shape-grid[data-v-1c884c4f] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.text-shape-card[data-v-1c884c4f] {
  border: 1px solid #d1d5db;
  background: rgba(0, 0, 0, 0.04);
  border-radius: 8px;
  width: 100%;
  aspect-ratio: 1.25 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 6px;
  transition: all 0.2s ease;
}
.text-shape-card[data-v-1c884c4f]:hover {
  border-color: #93c5fd;
  background: #f8fafc;
}
.text-shape-card-active[data-v-1c884c4f] {
  border-color: #3b82f6;
  background: #eff6ff;
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.2);
}
.text-shape-card img[data-v-1c884c4f] {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.text-shape-setting[data-v-1c884c4f] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
  padding-top: 4px;
}
.text-shape-setting-label[data-v-1c884c4f] {
  font-size: 12px;
  font-weight: 600;
  color: #475569;
}
.font-style-toggle-spacer[data-v-1c884c4f] {
  grid-column: 2;
}
.font-style-toggle-item[data-v-1c884c4f] {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.font-style-toggle-label[data-v-1c884c4f] {
  font-size: 11px;
  color: #64748b;
  line-height: 1;
  margin-top: -4px;
}
.upload-artwork-form[data-v-1c884c4f] {
  width: 100%;
}
.upload-drop-zone[data-v-1c884c4f] {
  border: 2px dashed #cbd5e1;
  border-radius: 8px;
  background-color: #f8fafc;
  transition: all 0.3s ease;
}
.upload-drop-zone[data-v-1c884c4f]:hover {
  border-color: #3b82f6;
  background-color: #eff6ff;
}
.upload-file-input[data-v-1c884c4f] {
  width: 100%;
}
.upload-file-input[data-v-1c884c4f] .q-field__control {
  min-height: 200px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.upload-file-input[data-v-1c884c4f] .q-field__native {
  display: none;
}
.upload-drop-content[data-v-1c884c4f] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  text-align: center;
  min-height: 180px;
  width: 100%;
}
.selected-files[data-v-1c884c4f] {
  padding: 16px;
  background-color: #f8fafc;
  border-radius: 8px;
}
.selected-files .q-chip[data-v-1c884c4f] {
  margin: 4px;
  max-width: 100%;
}
.composite-preview-dialog[data-v-1c884c4f] {
  width: min(900px, 92vw);
  max-width: 900px;
}
.composite-preview-body[data-v-1c884c4f] {
  display: flex;
  justify-content: center;
  max-height: 78vh;
  overflow: auto;
}
.composite-preview-image[data-v-1c884c4f] {
  display: block;
  max-width: 100%;
  max-height: calc(78vh - 72px);
  object-fit: contain;
}
.model-viewer-dialog[data-v-1c884c4f] {
  width: 100vw;
  height: 100vh;
}
@media (max-width: 1100px) {
.canvas-layout[data-v-1c884c4f] {
    grid-template-columns: 1fr;
}
.upload-artwork-dialog[data-v-1c884c4f] {
    min-width: 90vw;
}
.add-text-grid[data-v-1c884c4f] {
    grid-template-columns: 1fr;
}
.font-style-toggle-row-left[data-v-1c884c4f] {
    grid-column: auto;
}
.font-style-toggle-spacer[data-v-1c884c4f] {
    display: none;
}
}
