.main-content:has(.designer-section) {
  max-width: none;
  padding-inline: var(--page-gutter);
}

.designer-page.site-shell,
.catalog-page.site-shell {
  width: min(1380px, 100%);
  margin-inline: auto;
  min-width: 0;
}

.designer-page,
.designer-section,
.designer-layout,
.preview-column,
.settings-column {
  min-width: 0;
  max-width: 100%;
}

.designer-application-context,
.designer-generic-context {
  width: min(1380px, 100%);
  margin-inline: auto;
  padding-top: clamp(.85rem, 2vw, 1.35rem);
}

[data-designer-entry="application"] .designer-layout {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(1rem, 1.6vw, 1.5rem);
}

.designer-application-heading {
  display: grid;
  grid-template-columns: minmax(0, 850px) auto;
  align-items: start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}

.designer-application-copy { min-width: 0; max-width: 850px; }
.designer-application-heading h1 { margin: 0 0 .35rem; font-size: var(--font-size-workflow-title); }
.designer-generic-context h1 { margin: .3rem 0 .6rem; font-size: var(--font-size-workflow-title); }
.designer-application-heading .lead,
.designer-generic-context .lead { margin-bottom: 0; }

.designer-application-tools {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
}

.designer-application-tools > .badge { flex: 0 0 auto; }

.designer-application-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
}

.designer-application-actions [data-designer-reset-slot] { display: contents; }

.designer-application-actions .button,
.designer-application-actions .clear-design {
  min-height: 44px;
  white-space: nowrap;
}

.designer-application-actions .button {
  padding: .55rem .8rem;
  font-size: var(--font-size-caption);
}

.designer-application-actions .clear-design {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d5b4a8;
  border-radius: var(--radius-control);
  padding: .55rem .8rem;
  color: var(--brand-terra);
  background: var(--surface);
  font: inherit;
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
}

.designer-application-actions .clear-design:hover {
  border-color: var(--brand-terra);
  background: var(--danger-soft);
}

.designer-application-actions .clear-design:focus-visible {
  outline: 3px solid var(--focus-ring-soft);
  outline-offset: 2px;
}

.designer-application-assurance {
  display: flex;
  align-items: center;
  gap: .6rem .85rem;
  margin-top: .55rem;
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-bold);
}

.designer-application-status {
  border-radius: var(--radius-pill);
  padding: .42rem .65rem;
  color: var(--success-text);
  background: var(--success-soft);
}

.designer-supporting-details {
  width: min(1380px, 100%);
  margin: clamp(1.5rem, 3vw, 2.5rem) auto 0;
  padding-bottom: 1rem;
}

.designer-supporting-details > .section-heading { margin-bottom: .85rem; }
.designer-noscript { margin-top: 1rem; }

.custom-template-merchandising {
  padding-bottom: clamp(1.5rem, 4vw, 3rem);
}

.custom-template-related,
.custom-template-companions {
  width: min(1380px, 100%);
  margin-inline: auto;
}

.custom-template-related-heading {
  gap: 1rem;
}

.custom-template-related-heading > div {
  max-width: 760px;
}

.custom-template-related-heading h2 {
  margin-block: .2rem .35rem;
}

.custom-template-related-heading p:last-child {
  margin: 0;
  color: var(--muted);
}

.custom-template-design-preservation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid #c8d6ce;
  border-radius: var(--radius-group);
  padding: .8rem 1rem;
  background: var(--selected-surface);
}

.custom-template-design-preservation p {
  margin: 0;
  color: var(--muted);
  font-size: var(--font-size-meta);
  line-height: 1.5;
}

.custom-template-design-preservation p strong {
  color: var(--ink);
}

.custom-template-design-preservation > div {
  display: grid;
  justify-items: end;
  gap: .3rem;
}

.custom-template-design-preservation .button {
  min-height: 44px;
  padding: .55rem .8rem;
  font-size: var(--font-size-caption);
}

[data-related-share-status] {
  min-height: 1em;
  color: var(--brand-green-dark);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-bold);
}

.custom-template-related-grid,
.custom-template-companion-grid {
  align-items: stretch;
}

.custom-template-companions {
  margin-top: clamp(2rem, 4vw, 3rem);
}

.custom-template-companion-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.custom-template-specialty-opportunity {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  align-items: end;
  gap: 1.25rem 2rem;
  width: min(1380px, 100%);
  margin: clamp(2rem, 4vw, 3rem) auto 0;
  border: 1px solid #9ab1a4;
  border-radius: var(--radius-card);
  padding: clamp(1rem, 2.5vw, 1.5rem);
  background: linear-gradient(135deg, #e9f1ec, #f8f6ee);
  box-shadow: var(--small-shadow);
}

.custom-template-specialty-opportunity h2 {
  margin-block: .2rem .4rem;
}

.custom-template-specialty-opportunity p:last-child {
  max-width: 800px;
  margin: 0;
  color: var(--muted);
}

.custom-template-specialty-opportunity .button-row {
  justify-content: flex-end;
  margin: 0;
}

.designer-page .prototype-notice,
.catalog-page .prototype-notice {
  border-color: #d7a843;
  background: #fff4dc;
}

[data-designer-entry="application"] {
  --designer-control-border: var(--control-border);
  --designer-group-surface: var(--group-surface);
  --designer-selected-surface: var(--selected-surface);
  --designer-focus-ring: var(--focus-ring-soft);
  --designer-module-radius: var(--radius-card);
  --designer-group-radius: var(--radius-group);
  --designer-control-radius: var(--radius-control);
}

.authored-module-list {
  display: grid;
  gap: 1rem;
}

.authored-designer-module {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--designer-module-radius);
  background: var(--surface);
  box-shadow: var(--small-shadow);
}

.authored-module-header {
  position: relative;
  display: grid;
  min-height: 76px;
  grid-template-columns: max-content 32px minmax(0, 1fr) auto 32px;
  align-items: center;
  gap: .45rem .75rem;
  padding: .9rem 1.05rem;
  background: var(--surface);
  transition: background-color .16s ease;
}

.authored-module-toggle {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.authored-module-header:has(.authored-module-toggle:hover) { background: #fafbf9; }
.authored-designer-module[data-open="true"] > .authored-module-header { border-bottom: 1px solid var(--line); background: #f8faf7; }

.authored-module-toggle:focus-visible {
  outline: 3px solid var(--designer-focus-ring);
  outline-offset: -3px;
}

.authored-module-title {
  z-index: 2;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .55rem;
  pointer-events: none;
}

.authored-module-help-slot {
  z-index: 3;
  display: grid;
  place-items: center;
}

.authored-module-step {
  display: grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  place-items: center;
  border: 1px solid #d8c5b9;
  border-radius: 50%;
  color: var(--brand-terra);
  background: #f7f0eb;
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-extrabold);
}

.authored-module-title strong { color: var(--ink); font-size: var(--font-size-module-title); line-height: 1.25; }
.authored-module-current {
  z-index: 2;
  overflow: hidden;
  color: var(--muted);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-bold);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}

.authored-module-current[hidden] { display: none; }

.authored-module-status {
  z-index: 2;
  grid-column: 4;
  grid-row: 1;
  border-radius: 999px;
  padding: .34rem .55rem;
  color: var(--muted);
  background: var(--soft);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-extrabold);
  white-space: nowrap;
  pointer-events: none;
}

.authored-module-status[data-state="ready"] { color: var(--success-text); background: var(--success-soft); }
.authored-module-status[data-state="error"] { color: var(--danger-text); background: var(--danger-soft); }

.authored-module-chevron {
  z-index: 2;
  display: grid;
  width: 32px;
  height: 32px;
  grid-column: 5;
  grid-row: 1;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--brand-green);
  box-shadow: 0 1px 4px rgba(32,35,31,.16);
  font-size: .96rem;
  font-weight: var(--font-weight-extrabold);
  pointer-events: none;
}

.authored-module-chevron::after { content: "+"; }
.authored-designer-module[data-open="true"] .authored-module-chevron::after { content: "−"; }

.authored-module-body {
  min-width: 0;
  padding: 1.05rem;
}

.authored-module-help {
  margin: 0 0 .85rem;
  color: var(--muted);
  font-size: var(--font-size-caption);
  line-height: 1.45;
}

[data-designer-entry="application"] .authored-module-body > .settings-card:not(.authored-option-group) {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

[data-designer-entry="application"] .authored-module-body > .settings-card > legend {
  float: none;
  width: auto;
  border: 0;
}

[data-designer-entry="application"] .authored-module-body .step-body {
  clear: both;
  padding: 0;
}

[data-designer-entry="application"] .content-options-panel {
  margin-bottom: .8rem;
  border-radius: var(--designer-group-radius);
  padding: .8rem;
  background: var(--paper);
  box-shadow: none;
}

[data-designer-entry="application"] .content-options-panel .content-step-number { display: none; }
[data-designer-entry="application"] .content-options-panel h2 { font-size: .9rem; }
[data-designer-entry="application"] .content-options-panel > p { margin-bottom: .6rem; font-size: var(--font-size-meta); }

[data-designer-entry="application"] .text-line-card {
  container-type: inline-size;
  overflow: hidden !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--designer-group-radius) !important;
  background: var(--surface) !important;
}

[data-designer-entry="application"] .text-line-card.is-font-picker-open {
  position: relative;
  z-index: 5;
  overflow: visible !important;
}

[data-designer-entry="application"] .text-line-card + .text-line-card { margin-top: .65rem; }

.authored-text-line-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .76rem .9rem;
  background: var(--designer-group-surface);
}

.authored-text-line-heading > span:first-child { display: flex; align-items: center; gap: .45rem; }
.authored-text-line-heading strong { font-size: .84rem; }
.authored-text-line-heading small { border-radius: 999px; padding: .18rem .4rem; color: var(--muted); background: var(--soft); font-size: var(--font-size-caption); font-weight: var(--font-weight-extrabold); text-transform: uppercase; }
.authored-text-line-heading .step-summary { max-width: 45%; padding: 0; font-size: var(--font-size-caption); text-align: right; }
[data-designer-entry="application"] .text-line-card .step-body { border-top: 1px solid var(--line); padding: .9rem; background: var(--surface); }
[data-designer-entry="application"] .text-line-card .row-appearance-grid {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "font"
    "height"
    "finish"
    "color";
  align-items: start;
}

[data-designer-entry="application"] .font-parameter-field { grid-area: font; }
[data-designer-entry="application"] .character-height-tools { grid-area: height; }
[data-designer-entry="application"] .text-finish-field { grid-area: finish; }
[data-designer-entry="application"] .text-line-card .text-color-field { grid-area: color; }

[data-designer-entry="application"] .compact-parameter-field {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: .4rem;
}

[data-designer-entry="application"] .compact-parameter-field > .field-label-row {
  flex-wrap: nowrap;
}

[data-designer-entry="application"] .compact-parameter-field > .field-label-row > .field-label {
  white-space: nowrap;
}

[data-designer-entry="application"] .character-height-tools {
  width: 100%;
  max-width: 230px;
}

[data-designer-entry="application"] .character-height-tools > .field-label-row,
[data-designer-entry="application"] .character-height-stepper {
  display: grid;
  grid-template-columns: 44px minmax(70px, 1fr) 44px;
  width: 100%;
  align-items: center;
  gap: .4rem;
}

[data-designer-entry="application"] .character-height-tools > .field-label-row > .field-label {
  grid-column: 2;
  justify-self: center;
  text-align: center;
}

[data-designer-entry="application"] .character-height-tools > .field-label-row > .designer-context-help {
  grid-column: 3;
  justify-self: center;
}

[data-designer-entry="application"] .character-height-stepper output {
  min-width: 0;
}

[data-designer-entry="application"] .character-height-availability {
  display: block;
  min-height: 1.4em;
  font-size: var(--font-size-meta);
  line-height: 1.4;
  text-align: center;
}

[data-designer-entry="application"] .text-line-card,
[data-designer-entry="application"] .sign-text-editor-shell,
[data-designer-entry="application"] .row-validation {
  scroll-margin-block-end: calc(142px + env(safe-area-inset-bottom));
}

@container (min-width: 340px) {
  [data-designer-entry="application"] .text-line-card .row-appearance-grid {
    grid-template-columns: minmax(0, 1fr) minmax(100px, .45fr);
    grid-template-areas:
      "font finish"
      "height height"
      "color color";
    column-gap: 1rem;
  }

  [data-designer-entry="application"] .text-finish-field {
    width: 100%;
  }
}

@container (min-width: 500px) {
  [data-designer-entry="application"] .text-line-card .row-appearance-grid {
    grid-template-columns: minmax(0, 1fr) minmax(110px, .45fr);
    grid-template-areas:
      "font finish"
      "height height"
      "color color";
    column-gap: 1rem;
  }

  [data-designer-entry="application"] .character-height-tools {
    width: 100%;
    justify-self: stretch;
  }

  [data-designer-entry="application"] .text-finish-field {
    width: 100%;
  }
}

@container (min-width: 540px) {
  [data-designer-entry="application"] .text-line-card .row-appearance-grid {
    grid-template-columns: minmax(150px, 1fr) minmax(200px, 230px) minmax(110px, .65fr);
    grid-template-areas:
      "font height finish"
      "color color color";
  }

  [data-designer-entry="application"] .text-finish-field {
    width: 100%;
  }
}

.authored-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 1rem;
}

.authored-panel-grid.is-fixed-size { grid-template-columns: 1fr; }

.authored-panel-grid > .authored-option-group { height: 100%; }

.authored-panel-grid > .authored-option-group > legend {
  display: flex;
  min-height: 44px;
  align-items: center;
  margin-bottom: .8rem;
}

.authored-appearance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: .75rem;
}

.authored-option-group {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--designer-group-radius);
  padding: .9rem;
  background: #fbfaf7;
}

[data-designer-entry="application"] .authored-option-group > legend {
  float: none;
  width: auto;
  max-width: 100%;
  margin: 0 0 .8rem;
  border: 0;
  padding: 0;
}

.authored-option-legend {
  color: var(--ink);
  font-size: .88rem;
  font-weight: var(--font-weight-extrabold);
  line-height: 1.3;
}

.authored-option-legend-with-help {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}

.authored-text-colors { display: grid; gap: .7rem; }

.authored-text-color-group {
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}

.authored-text-color-group + .authored-text-color-group { border-top: 1px solid var(--line); padding-top: .7rem; }
.authored-text-color-group > legend { display: flex; width: 100%; justify-content: space-between; gap: .5rem; margin-bottom: .45rem; padding: 0; font-size: var(--font-size-caption); }
.authored-text-color-group > legend strong { color: var(--muted); }
.authored-design-details {
  container-type: inline-size;
  margin: 0;
}

[data-designer-entry="application"] .authored-design-details .edge-border-group {
  grid-template-columns: minmax(0, 1fr);
  gap: .5rem;
}

[data-designer-entry="application"] .authored-design-details .ada-fixed-construction {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-designer-entry="application"] .ada-fixed-construction > div {
  display: grid;
  gap: .2rem;
  border: 1px solid var(--designer-control-border);
  border-radius: var(--designer-control-radius);
  padding: .65rem;
  background: var(--soft);
}

[data-designer-entry="application"] .ada-fixed-construction span {
  color: var(--muted);
  font-size: var(--font-size-caption);
  font-weight: var(--font-weight-bold);
}

[data-designer-entry="application"] .ada-fixed-construction strong {
  font-size: var(--font-size-meta);
}

[data-designer-entry="application"] .authored-design-details [data-profile-edge-controls] {
  display: grid;
  grid-template-columns: minmax(78px, auto) minmax(0, 1fr);
  align-items: center;
  gap: .5rem;
}

[data-designer-entry="application"] .authored-design-details [data-profile-edge-controls] > .field-label {
  white-space: nowrap;
}

[data-designer-entry="application"] .authored-design-details [data-profile-edge-controls] > select {
  min-width: 0;
}

@container (max-width: 170px) {
  [data-designer-entry="application"] .authored-design-details [data-profile-edge-controls] {
    grid-template-columns: minmax(0, 1fr);
  }
}

.authored-panel-materials {
  margin-top: 1rem;
}

[data-designer-entry="application"] .authored-panel-materials .step-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  gap: .75rem;
}

[data-designer-entry="application"] .authored-panel-materials .material-use-finish-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-designer-entry="application"] .authored-panel-materials .material-tier-description {
  margin: 0;
  color: var(--muted);
  font-size: var(--font-size-caption);
  line-height: 1.45;
}

[data-designer-entry="application"] .authored-panel-materials .material-color-picker {
  align-self: end;
  margin-top: 0;
}

[data-designer-entry="application"] .material-color-picker.is-static .material-color-picker-header {
  grid-template-columns: minmax(88px, auto) minmax(0, 1fr);
}

[data-designer-entry="application"] .text-color-picker.is-static .material-color-picker-header {
  grid-template-columns: minmax(0, 1fr);
}

[data-designer-entry="application"] .authored-panel-materials .material-swatch-disclosure {
  grid-column: 1 / -1;
  margin: 0;
}

[data-designer-entry="application"] select,
[data-designer-entry="application"] textarea,
[data-designer-entry="application"] input[type="text"],
[data-designer-entry="application"] .font-family-picker-trigger,
[data-designer-entry="application"] .material-color-picker,
[data-designer-entry="application"] .sign-text-editor-shell {
  border-color: var(--designer-control-border);
  border-radius: var(--designer-control-radius);
}

[data-designer-entry="application"] select:hover:not(:disabled),
[data-designer-entry="application"] textarea:hover:not(:disabled),
[data-designer-entry="application"] input[type="text"]:hover:not(:disabled),
[data-designer-entry="application"] .font-family-picker-trigger:hover,
[data-designer-entry="application"] .material-color-picker:not(.is-static):hover {
  border-color: #7a9687;
}

[data-designer-entry="application"] select:focus-visible,
[data-designer-entry="application"] textarea:focus-visible,
[data-designer-entry="application"] input[type="text"]:focus-visible {
  border-color: var(--brand-green);
  outline: 3px solid var(--designer-focus-ring);
  outline-offset: 2px;
}

[data-designer-entry="application"] .text-color-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: .55rem;
}

[data-designer-entry="application"] .text-color-field > .text-color-picker {
  width: 100%;
  grid-column: 1;
  grid-row: 2;
}

[data-designer-entry="application"] .text-color-field-label { white-space: nowrap; }

[data-designer-entry="application"] .secondary-text-color-control {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

[data-designer-entry="application"] .secondary-text-color-control > .text-color-field-label {
  grid-column: 1;
  grid-row: 1;
}

[data-designer-entry="application"] .secondary-text-color-control > .additional-text-color-toggle {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
}

[data-designer-entry="application"] .secondary-text-color-control > .text-color-picker {
  grid-column: 1 / -1;
  grid-row: 2;
}

[data-designer-entry="application"] .text-color-field .row-color-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@container (min-width: 440px) {
  [data-designer-entry="application"] .text-color-field .row-color-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

[data-designer-entry="application"] .ada-shared-color-summary .locked-option-value {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
}

[data-designer-entry="application"] .ada-shared-color-summary small {
  align-self: center;
  color: var(--muted);
  font-weight: var(--font-weight-regular);
}

[data-designer-entry="application"] .field-group {
  gap: .4rem;
}

[data-designer-entry="application"] .field-label {
  font-size: .78rem;
  line-height: 1.35;
}

[data-designer-entry="application"] .text-row {
  gap: .8rem;
}

[data-designer-entry="application"] .material-swatch-disclosure {
  border-top: 1px solid var(--line);
  padding-top: .7rem;
  color: var(--muted);
  font-size: var(--font-size-caption);
  line-height: 1.5;
}

[data-designer-entry="application"] .designer-dimension-steppers button,
[data-designer-entry="application"] .character-height-stepper button {
  border-color: var(--designer-control-border);
  border-radius: var(--designer-control-radius);
}

[data-designer-entry="application"] .designer-dimension-steppers button:hover:not(:disabled),
[data-designer-entry="application"] .character-height-stepper button:hover:not(:disabled) {
  border-color: var(--brand-green);
  background: var(--designer-selected-surface);
}

html:has(body.custom-template-designer-page) {
  scroll-padding-bottom: calc(142px + env(safe-area-inset-bottom));
}

@media (min-width: 900px) and (min-height: 700px) {
  [data-designer-entry="application"] .preview-column {
    position: sticky;
    z-index: 10;
    top: calc(var(--header-height, 72px) + 1rem);
  }

  [data-designer-entry="application"] .preview-card {
    max-height: calc(100dvh - var(--header-height, 72px) - 112px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  [data-designer-entry="application"] .designer-scale-frame {
    width: min(100%, clamp(180px, calc(100dvh - var(--header-height, 72px) - 457px), 680px));
  }

  [data-designer-entry="application"] .designer-context-stage {
    width: auto;
    max-width: 100%;
    height: clamp(180px, calc(100dvh - var(--header-height, 72px) - 410px), 520px);
    margin-inline: auto;
  }
}

.designer-cart-panel {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.designer-cart-surface {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 1px solid var(--purchase-dock-border);
  border-radius: var(--radius-card);
  background: rgba(255,255,255,.985);
  box-shadow: var(--purchase-dock-shadow);
}

.designer-cart-body {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: .85rem;
  padding: .9rem;
}

.designer-cart-bar {
  display: grid;
  grid-template-columns: minmax(44px, 1fr) auto auto auto minmax(150px, auto);
  align-items: center;
  gap: .65rem;
  border-top: 1px solid var(--line);
  padding: .65rem;
}

.designer-cart-toggle {
  display: flex;
  min-width: 44px;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-control);
  padding: .35rem .55rem;
  color: var(--ink);
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.designer-cart-toggle:hover { background: var(--soft); }
.designer-cart-toggle:focus-visible { outline: 3px solid var(--focus-ring-soft); outline-offset: 1px; }

.designer-cart-product {
  display: grid;
  min-width: 0;
  gap: .16rem;
}

.designer-cart-product > strong,
.designer-cart-product > small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.designer-cart-product > strong { font-size: .88rem; }
.designer-cart-product > small { color: var(--muted); font-size: var(--font-size-caption); font-weight: var(--font-weight-bold); }
.designer-cart-review { display: inline-flex; align-items: center; gap: .35rem; color: var(--brand-green-dark); font-size: var(--font-size-caption); font-weight: var(--font-weight-extrabold); white-space: nowrap; }
.designer-cart-review > span { display: inline-block; font-size: .95rem; transition: transform .16s ease; }
.designer-cart-panel.is-expanded .designer-cart-review > span { transform: rotate(180deg); }

.designer-cart-readiness {
  border-radius: 999px;
  padding: .42rem .65rem;
  color: var(--muted);
  background: var(--soft);
  font-size: var(--font-size-caption);
  font-weight: 800;
  white-space: nowrap;
}

.designer-cart-readiness[data-state="review"] { color: var(--warning-text); background: var(--warning-soft); }
.designer-cart-readiness[data-state="error"] { color: var(--danger-text); background: var(--danger-soft); }
.designer-cart-readiness[data-state="ready"] { color: var(--success-text); background: var(--success-soft); }
.designer-cart-quantity { display: inline-flex; min-height: 44px; align-items: center; gap: .25rem; border-left: 1px solid var(--line); padding-left: .7rem; color: var(--muted); font-size: var(--font-size-caption); white-space: nowrap; }
.designer-cart-quantity strong { color: var(--ink); font-size: .78rem; }
.designer-cart-total { display: grid; min-width: 98px; gap: .08rem; text-align: right; }
.designer-cart-total small { color: var(--muted); font-size: var(--font-size-caption); font-weight: var(--font-weight-bold); }
.designer-cart-total strong { font-size: var(--font-size-dock-total); white-space: nowrap; }
.designer-cart-submit { min-height: 48px; justify-content: center; padding-inline: 1rem; white-space: nowrap; }
.designer-cart-submit [data-designer-submit-compact],
.designer-cart-total [data-designer-price-compact] { display: none; }

.js .designer-cart-body { display: none; max-height: min(55dvh, 520px); overflow-y: auto; overscroll-behavior: contain; }
.js .designer-cart-panel.is-expanded .designer-cart-body { display: grid; }

.designer-cart-panel h2,
.designer-cart-panel p {
  margin-bottom: .35rem;
}

.designer-cart-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.designer-cart-intro h2 { font-size: var(--font-size-sheet-title); }
.designer-cart-close { display: inline-flex; min-height: 44px; align-items: center; gap: .35rem; border: 1px solid var(--control-border); border-radius: var(--radius-pill); padding: .45rem .75rem; color: var(--brand-green-dark); background: var(--soft); font: inherit; font-size: var(--font-size-caption); font-weight: var(--font-weight-extrabold); cursor: pointer; }
.designer-cart-close:hover { border-color: var(--brand-green); }
.designer-cart-close:focus-visible { outline: 3px solid var(--focus-ring-soft); outline-offset: 2px; }
.designer-cart-close span { font-size: 1rem; line-height: .7; }
.designer-cart-scrim { display: none; }

.designer-review-validation {
  display: grid;
  gap: .35rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-group);
  padding: .65rem .75rem;
  background: var(--soft);
  font-size: var(--font-size-caption);
}

.designer-review-validation[data-state="ready"] {
  border-color: #b8d5c5;
  color: var(--success-text);
  background: var(--success-soft);
}

.designer-review-validation[data-state="error"] {
  border-color: #d8a698;
  color: var(--danger-text);
  background: var(--danger-soft);
}

.designer-review-validation ul {
  display: grid;
  gap: .25rem;
  margin: 0;
  padding-left: 1.15rem;
}

.designer-review-validation ul[hidden] { display: none; }

.live-design-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-group);
  background: var(--group-surface);
}

.live-design-summary > div {
  display: grid;
  grid-template-columns: minmax(82px, .45fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: .45rem .75rem;
  min-height: 44px;
  padding: .45rem .65rem;
  border-bottom: 1px solid var(--line);
}

.live-design-summary > div:nth-child(odd) { border-right: 1px solid var(--line); }
.live-design-summary > div:nth-last-child(-n + 2) { border-bottom: 0; }
.live-design-summary dt { color: var(--muted); font-size: var(--font-size-meta); font-weight: var(--font-weight-bold); }
.live-design-summary dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: var(--font-weight-bold); }
.summary-edit { min-width: 44px; min-height: 44px; border: 0; border-radius: var(--radius-control); padding: .35rem .45rem; color: var(--brand-green-dark); background: transparent; font-size: var(--font-size-caption); font-weight: var(--font-weight-extrabold); cursor: pointer; }
.summary-edit:hover:not(:disabled) { background: var(--soft); text-decoration: underline; }
.summary-edit:disabled { cursor: default; opacity: .45; }

.designer-cart-action { display: grid; gap: .55rem; }
.designer-cart-action .button { width: 100%; }
.designer-cart-action .button-note { max-width: none; margin: 0; }
.designer-cart-panel .code-status {
  margin: 0;
}

.designer-review-tools:empty { display: none; }
.designer-review-tools > #download-png-proof { width: 100%; }

.js [data-designer-entry="application"] .designer-cart-panel {
  position: fixed;
  z-index: 65;
  right: auto;
  bottom: max(.75rem, env(safe-area-inset-bottom));
  left: calc(var(--site-nav-width) + ((100vw - var(--site-nav-width)) / 2));
  width: min(1380px, calc(100vw - var(--site-nav-width) - 2rem));
  pointer-events: none;
  transform: translateX(-50%);
}

.js [data-designer-entry="application"] .designer-cart-surface { pointer-events: auto; }
.js body.custom-template-designer-page .designer-page-shell { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
[data-designer-entry="application"] .designer-mobile-preview { display: none; }

@media (max-width: 1399px) {
  .js [data-designer-entry="application"] .designer-cart-panel {
    left: 50%;
    width: min(1380px, calc(100vw - 2rem));
  }
}

@media (max-width: 899px) {
  [data-designer-entry="application"] .designer-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  [data-designer-entry="application"] .preview-column {
    position: static;
  }

  [data-designer-entry="application"] .designer-scale-frame {
    width: min(100%, 520px);
  }

  [data-designer-entry="application"] .mobile-preview-toggle {
    display: none;
  }

  [data-designer-entry="application"] .designer-mobile-preview {
    position: sticky;
    z-index: 12;
    top: calc(var(--header-height, 72px) + .5rem);
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    min-height: 72px;
    border: 1px solid #abc4b6;
    border-radius: 15px;
    padding: .55rem .7rem;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 7px 18px rgba(21, 32, 27, .14);
    backdrop-filter: blur(7px);
  }

  [data-designer-entry="application"] .designer-mobile-preview-frame {
    display: grid;
    width: 72px;
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f3f1ea;
    place-items: center;
  }

  [data-designer-entry="application"] .designer-mobile-preview-artwork {
    display: grid;
    width: 60px;
    height: 60px;
    place-items: center;
  }

  [data-designer-entry="application"] .designer-mobile-preview-artwork svg {
    display: block;
    width: 100%;
    height: 100%;
    filter: drop-shadow(1px 2px 2px rgba(32, 35, 31, .2));
  }

  [data-designer-entry="application"] .designer-mobile-preview > p {
    display: grid;
    min-width: 0;
    gap: .08rem;
    margin: 0;
  }

  [data-designer-entry="application"] .designer-mobile-preview > p > strong {
    font-size: var(--font-size-meta);
  }

  [data-designer-entry="application"] .designer-mobile-preview > p > span,
  [data-designer-entry="application"] .designer-mobile-preview > p > small {
    overflow: hidden;
    font-size: var(--font-size-caption);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  [data-designer-entry="application"] .designer-mobile-preview > p > span {
    font-weight: var(--font-weight-bold);
  }

  [data-designer-entry="application"] .designer-mobile-preview > p > small {
    color: var(--muted);
  }
}

@media (max-width: 760px) {
  .main-content:has(.designer-section) { padding-inline: var(--page-gutter-mobile); }
  .designer-section { padding-top: .45rem; }
  .designer-application-context { margin-top: .25rem; padding-top: .35rem; }
  .designer-application-heading { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .designer-application-heading h1 { margin-block: 0 .25rem; font-size: var(--font-size-workflow-title); }
  .designer-application-heading .lead { font-size: .88rem; line-height: 1.45; }
  .designer-application-tools { width: 100%; align-items: stretch; justify-content: flex-end; flex-direction: column; }
  .designer-application-tools > .badge { align-self: flex-start; margin: 0; }
  .designer-application-actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .designer-application-actions .button,
  .designer-application-actions .clear-design { width: 100%; }
  .designer-application-assurance { flex-wrap: wrap; }
  .designer-application-status { padding: .42rem .65rem; }
  .custom-template-design-preservation,
  .custom-template-specialty-opportunity { grid-template-columns: 1fr; }
  .custom-template-design-preservation > div { justify-items: start; }
  .custom-template-related-heading { align-items: flex-start; }
  .custom-template-companion-grid { grid-template-columns: 1fr; }
  .custom-template-specialty-opportunity .button-row { justify-content: flex-start; }
  .designer-page h1 { overflow-wrap: anywhere; }
  .js .designer-page-shell,
  .js body.custom-template-designer-page .designer-page-shell { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .authored-module-header {
    min-height: 82px;
    grid-template-columns: minmax(0, 1fr) auto 44px 32px;
    gap: .35rem .5rem;
    padding: .8rem .85rem;
  }
  .authored-module-help-slot { grid-column: 3; }
  .authored-module-current { grid-column: 1 / 4; grid-row: 2; text-align: left; }
  .authored-module-status { grid-column: 2; }
  .authored-module-chevron { grid-column: 4; }
  .authored-module-body { padding: .85rem; }
  .authored-appearance-grid,
  .authored-panel-grid,
  [data-designer-entry="application"] .authored-design-details .edge-border-group,
  [data-designer-entry="application"] .authored-panel-materials .step-body { grid-template-columns: 1fr; }
  .js .designer-cart-panel,
  .js [data-designer-entry="application"] .designer-cart-panel {
    position: fixed;
    z-index: 65;
    right: .375rem;
    bottom: max(.375rem, env(safe-area-inset-bottom));
    left: .375rem;
    width: auto;
    pointer-events: none;
    transform: none;
  }
  .js .designer-cart-surface { pointer-events: auto; }
  .designer-cart-scrim[hidden] { display: none; }
  .designer-cart-panel.is-expanded .designer-cart-scrim {
    position: fixed;
    z-index: 0;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--purchase-sheet-scrim);
    backdrop-filter: blur(2px);
    pointer-events: auto;
  }
  .designer-cart-surface { border-radius: var(--purchase-dock-mobile-radius); }
  .designer-cart-panel.is-expanded .designer-cart-surface { max-height: calc(var(--purchase-sheet-max-height) - env(safe-area-inset-bottom)); }
  .designer-cart-body { grid-template-columns: 1fr; padding: .85rem; }
  .designer-cart-bar { grid-template-columns: minmax(0, 1fr) auto minmax(82px, auto); gap: .4rem; padding: .42rem; }
  .designer-cart-readiness { display: none; }
  .designer-cart-quantity { display: none; }
  .designer-cart-total { min-width: 68px; }
  .designer-cart-total small { display: none; }
  .designer-cart-total strong { font-size: var(--font-size-dock-total-mobile); }
  .designer-cart-total [data-designer-price-full],
  .designer-cart-submit [data-designer-submit-full] { display: none; }
  .designer-cart-total [data-designer-price-compact],
  .designer-cart-submit [data-designer-submit-compact] { display: inline; }
  .designer-cart-submit { min-width: 82px; padding-inline: .75rem; font-size: var(--font-size-caption); }
  .js .designer-cart-body { max-height: calc(var(--purchase-sheet-max-height) - 70px - env(safe-area-inset-bottom)); }
  .designer-cart-panel .designer-cart-action .button { width: 100%; }
  .live-design-summary { grid-template-columns: 1fr; }
  .live-design-summary > div { grid-template-columns: 72px minmax(0, 1fr) auto; }
  .live-design-summary > div:nth-child(odd) { border-right: 0; }
  .live-design-summary > div:nth-last-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .live-design-summary > div:last-child { border-bottom: 0; }
}

@media (max-width: 520px) {
  [data-designer-entry="application"] .text-line-card.is-font-picker-open { overflow: hidden !important; }
  [data-designer-entry="application"] .authored-text-line-heading { align-items: flex-start; flex-wrap: wrap; }
  [data-designer-entry="application"] .authored-text-line-heading .step-summary { width: 100%; max-width: none; text-align: left; text-overflow: clip; white-space: normal; }
  [data-designer-entry="application"] .authored-panel-materials .material-use-finish-grid { grid-template-columns: 1fr; }
  [data-designer-entry="application"] .authored-option-group,
  [data-designer-entry="application"] .text-line-card .step-body { padding: .75rem; }
}

@media (max-width: 340px) {
  .designer-cart-review { font-size: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .additional-text-color-toggle[data-activation-feedback="true"] {
    animation: none;
    background: var(--designer-selected-surface);
    box-shadow: 0 0 0 3px rgba(47, 91, 69, 0.14);
  }
}

body.designer-review-open { overflow: hidden; }
