/* AllPrint Photo Print Builder Stylesheet (/request/builder.css)
   Shutterfly-inspired responsive card grid, multi-select toolbar, and native picker modal.
   Preserves 12px controls, 20px cards, rectangular print proofs, and warm AllPrint aesthetic. */

body.review-build.builder-page .main-content {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px;
}

.site-header.builder-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #dfd8ca;
}

.header-brand-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.header-context {
  font-size: 0.85rem;
  font-weight: 600;
  color: #516173;
  border-left: 1px solid #dfd8ca;
  padding-left: 0.75rem;
}

.header-links {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
}

.header-nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: #153d68;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}

.builder-hero {
  padding: 1.5rem 0 1rem;
}

.builder-step-cue {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.75rem;
  font-size: 0.85rem;
}

.builder-step-cue .step-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #516173;
  font-weight: 500;
}

.builder-step-cue .step-item.is-active {
  color: #153d68;
  font-weight: 700;
}

.builder-step-cue .step-item.is-complete {
  color: #2564a4;
}

.builder-step-cue .step-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  background: #dfd8ca;
  color: #153d68;
}

.builder-step-cue .step-item.is-active .step-num {
  background: #153d68;
  color: #ffffff;
}

.builder-step-cue .step-item.is-complete .step-num {
  background: #2564a4;
  color: #ffffff;
}

body.review-build .journey-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

body.review-build .journey-editor {
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
  min-width: 0;
}

body.review-build .journey-summary {
  position: sticky;
  top: 88px;
  align-self: start;
}

body.review-build .summary-sticky-card {
  background: #ffffff;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px);
  padding: 1.5rem;
  box-shadow: 0 4px 16px rgba(16, 45, 76, 0.05);
}

.summary-continue-action {
  margin: 1.25rem 0 0.5rem;
}

.workspace-utility-bar {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.picker-fallback-details {
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  background: #fbf9f4;
}

.picker-fallback-summary {
  padding: 0.65rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #153d68;
  cursor: pointer;
  min-height: 48px;
  display: flex;
  align-items: center;
}

.picker-fallback-content {
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid #dfd8ca;
}

.builder-toolbar {
  position: sticky;
  top: 65px;
  z-index: 40;
  background: rgba(251, 249, 244, 0.98);
  backdrop-filter: blur(8px);
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  padding: 0.85rem 1rem;
  margin: 0 0 1.25rem;
  box-shadow: 0 2px 8px rgba(16, 45, 76, 0.04);
}

.builder-toolbar-inner {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.builder-toolbar-primary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.builder-toolbar-heading-group {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}

.builder-collection-title {
  font-family: Georgia, serif;
  font-size: 1.2rem;
  color: #153d68;
  margin: 0;
}

.builder-total-badge {
  font-size: 0.8rem;
  font-weight: 600;
  color: #516173;
  background: #eef2f6;
  padding: 0.15rem 0.5rem;
  border-radius: 10px;
}

.builder-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.builder-toolbar-selection-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.builder-selection-info {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.builder-select-all-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 600;
  color: #153d68;
  min-height: 48px;
}

.builder-checkbox {
  width: 20px;
  height: 20px;
  accent-color: #153d68;
  margin: 0;
  cursor: pointer;
}

.builder-clear-btn {
  min-height: 48px;
  font-size: 0.825rem;
  padding: 0.35rem 0.75rem;
}

.builder-selection-badge {
  background: #153d68;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  border-radius: 12px;
}

.builder-bulk-panel {
  border-top: 1px dashed #dfd8ca;
  padding-top: 0.5rem;
  transition: opacity 0.18s ease;
}

.builder-bulk-panel.is-collapsed .builder-bulk-controls {
  display: none;
}

.builder-bulk-hint {
  font-size: 0.825rem;
  color: #516173;
  font-style: italic;
  margin: 0.25rem 0;
}

.builder-bulk-controls {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.bulk-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1 1 120px;
}

.bulk-field-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #516173;
}

.bulk-field select,
.bulk-field input {
  min-height: 48px;
  padding: 0.4rem 0.65rem;
  font-size: 0.85rem;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  background: #ffffff;
  color: #17283d;
  width: 100%;
}

.bulk-btn-group {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
}

.bulk-btn-group button {
  min-height: 48px;
}

.request-details-panel {
  background: #ffffff;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px);
  margin-top: 2rem;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(16, 45, 76, 0.03);
}

.details-panel-summary {
  display: flex;
  align-items: center;
  padding: 1.15rem 1.5rem;
  cursor: pointer;
  background: #fbf9f4;
  min-height: 48px;
  list-style: none;
  user-select: none;
}

.details-panel-summary::-webkit-details-marker {
  display: none;
}

.details-panel-summary::after {
  content: "▾";
  font-size: 1.1rem;
  color: #153d68;
  margin-left: auto;
  transition: transform 0.18s ease;
}

.request-details-panel[open] .details-panel-summary::after {
  transform: rotate(180deg);
}

.request-details-panel[open] .details-panel-summary {
  border-bottom: 1px solid #dfd8ca;
}

.panel-summary-header {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
}

.panel-step-badge {
  background: #153d68;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2rem 0.6rem;
  border-radius: 10px;
  text-transform: uppercase;
}

.panel-step-title {
  font-family: Georgia, serif;
  font-size: 1.25rem;
  color: #153d68;
  margin: 0;
}

.panel-step-desc {
  font-size: 0.8rem;
  color: #516173;
  margin: 0.15rem 0 0;
}

.panel-details-body {
  padding: 1.5rem;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 1.25rem;
  margin-top: 0.5rem;
}

body.review-build .photo-card {
  background: #ffffff;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px) !important;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
  box-shadow: 0 2px 8px rgba(16, 45, 76, 0.03);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body.review-build .photo-card:hover {
  border-color: #b8ad9c;
  box-shadow: 0 6px 16px rgba(16, 45, 76, 0.08);
  transform: translateY(-1px);
}

body.review-build .photo-card.is-selected {
  border-color: #153d68;
  background-color: #f7f9fc;
  box-shadow: 0 0 0 2px rgba(21, 61, 104, 0.22);
}

.photo-card.has-invalid-copies {
  border-color: #a31515;
  box-shadow: 0 0 0 1px #a31515;
}

.photo-card-header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.photo-select-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 48px;
  margin: -0.65rem 0 0 -0.65rem;
  cursor: pointer;
  flex-shrink: 0;
}

.photo-select-checkbox {
  width: 20px;
  height: 20px;
  accent-color: #153d68;
  margin: 0;
  cursor: pointer;
  flex-shrink: 0;
}

.photo-card-title-wrap {
  min-width: 0;
  flex-grow: 1;
}

.photo-card-name {
  display: block;
  font-size: 0.88rem;
  font-weight: 650;
  color: #17283d;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.photo-card-meta {
  display: block;
  font-size: 0.75rem;
  color: #516173;
  margin-top: 0.15rem;
}

.photo-card-preview {
  height: 180px;
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fbf9f4;
  border: 1px solid #dfd8ca;
  border-radius: 12px;
  padding: 0.5rem;
  overflow: hidden;
}

.photo-card-preview .photo-preview-stage {
  background: transparent;
  border: none;
  padding: 0;
  max-width: 100%;
  max-height: 100%;
}

.photo-card-preview .photo-preview-canvas {
  border-radius: 0 !important;
  max-height: 160px;
  max-width: 100%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.photo-card-controls {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  align-items: start;
}

.photo-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.photo-field-framing {
  grid-column: 1 / -1;
}

.photo-field-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #516173;
}

.photo-card-controls select,
.photo-card-controls input {
  min-height: 48px;
  padding: 0.35rem 0.5rem;
  font-size: 0.825rem;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  background: #ffffff;
  color: #17283d;
  width: 100%;
}

.photo-copies-input[aria-invalid="true"] {
  border-color: #a31515;
  background-color: #fff9f9;
}

.photo-card-error {
  font-size: 0.78rem;
  color: #a31515;
  margin-top: 0.25rem;
  display: block;
}

.photo-card-controls .photo-remove {
  grid-column: 1 / -1;
  min-height: 48px;
  font-size: 0.825rem;
}

.builder-empty-state {
  text-align: center;
  padding: 3rem 1.5rem;
  background: #ffffff;
  border: 2px dashed #dfd8ca;
  border-radius: var(--ap-radius-card, 20px);
  margin: 1.5rem 0;
}

.builder-empty-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  color: #153d68;
  margin-bottom: 0.5rem;
}

.builder-empty-lead {
  color: #516173;
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
}

.photo-picker-dialog {
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px);
  background: #ffffff;
  padding: 0;
  max-width: 600px;
  width: calc(100% - 2rem);
  max-height: 100vh;
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  margin: auto;
  box-shadow: 0 20px 60px rgba(23, 43, 43, 0.25);
}

.photo-picker-dialog::backdrop {
  background: rgba(16, 45, 76, 0.65);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.photo-picker-dialog .dialog-inner {
  padding: 1.75rem;
}

.photo-picker-dialog .dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.photo-picker-dialog .dialog-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  color: #153d68;
  margin: 0;
}

.photo-picker-dialog .dialog-close-btn {
  width: 48px;
  height: 48px;
  background: #f7f4ed;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  font-size: 1.35rem;
  line-height: 1;
  color: #153d68;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.photo-picker-dialog .dialog-close-btn:hover {
  background: #153d68;
  color: #ffffff;
}

.photo-picker-dialog .dialog-lead {
  font-size: 0.875rem;
  color: #516173;
  margin-bottom: 1rem;
}

.modal-dropzone {
  border: 2px dashed #153d68;
  border-radius: var(--ap-radius-control, 12px);
  background: #f7f4ed;
  padding: 2.25rem 1.25rem;
  text-align: center;
  margin: 1.25rem 0;
}

.modal-dropzone.drag-over {
  background-color: #edf4fa;
  border-color: #2564a4;
}

.modal-dropzone-prompt {
  font-size: 1.05rem;
  font-weight: 700;
  color: #153d68;
  margin-bottom: 0.4rem;
}

.modal-actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}

.dialog-note {
  font-size: 0.78rem;
  color: #516173;
  text-align: center;
  margin-top: 1rem;
}

.itemized-summary {
  border-top: 1px solid #dfd8ca;
  border-bottom: 1px solid #dfd8ca;
  padding: 0.75rem 0;
  margin: 1rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.itemized-size-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8125rem;
}

.itemized-size-desc {
  color: #516173;
}

.itemized-size-subtotal {
  font-weight: 600;
  color: #153d68;
}

.itemized-empty {
  font-size: 0.8125rem;
  color: #516173;
  font-style: italic;
  margin: 0;
}

@media (max-width: 960px) {
  body.review-build .journey-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  body.review-build .journey-summary {
    position: static;
  }
}

@media (max-width: 600px) {
  .photo-grid {
    grid-template-columns: 1fr;
  }
  .builder-bulk-controls {
    flex-direction: column;
    align-items: stretch;
  }
  .builder-bulk-controls select,
  .builder-bulk-controls input,
  .builder-bulk-controls button {
    width: 100%;
    max-width: none;
  }
  .builder-toolbar {
    top: 60px;
    padding: 0.65rem 0.75rem;
  }
  .builder-toolbar-primary {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (max-width: 360px) {
  body.review-build .container {
    padding-left: 12px;
    padding-right: 12px;
  }
  .photo-card-controls {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- Visual Quality Polish Block (body.review-build.builder-page overrides) --- */
body.review-build.builder-page .main-content {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px;
}

body.review-build.builder-page .review-notice-banner {
  padding: 0.25rem 1rem;
  font-size: 0.8125rem;
  line-height: 1.25;
}

body.review-build.builder-page .notice-inner {
  min-height: 28px;
}

body.review-build.builder-page .notice-tag {
  padding: 0.1rem 0.45rem;
  font-size: 0.7rem;
  line-height: 1.2;
}

body.review-build.builder-page .site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #dfd8ca;
  padding: 0;
}

body.review-build.builder-page .site-header .header-inner {
  min-height: 60px;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

body.review-build.builder-page .hero-section {
  padding: 0.75rem 0 0.5rem;
}

body.review-build.builder-page .builder-step-cue {
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
}

body.review-build.builder-page .hero-title {
  font-size: 2rem;
  line-height: 1.15;
  margin: 0 0 0.35rem 0;
}

body.review-build.builder-page .hero-lead {
  font-size: 0.9375rem;
  line-height: 1.45;
  max-width: 52rem;
  margin: 0;
}

body.review-build.builder-page .journey-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

body.review-build.builder-page .journey-summary {
  position: sticky;
  top: 72px;
  align-self: start;
}

body.review-build.builder-page .summary-sticky-card,
body.review-build.builder-page .journey-summary .card {
  background: #ffffff;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px) !important;
  padding: 1.5rem;
  box-shadow: 0 4px 16px rgba(16, 45, 76, 0.05);
}

body.review-build.builder-page .workspace-utility-bar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0 0 0.85rem 0;
  align-items: flex-start;
}

body.review-build.builder-page .workspace-utility-bar > details {
  margin: 0 !important;
  flex: 1 1 200px;
  min-width: 0;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  background: #fbf9f4;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(16, 45, 76, 0.02);
}

body.review-build.builder-page .workspace-utility-bar > details:not([open]) {
  max-height: 52px;
}

body.review-build.builder-page .workspace-utility-bar > details[open] {
  flex: 1 1 100%;
  width: 100%;
}

body.review-build.builder-page .print-settings-summary-bar,
body.review-build.builder-page .picker-fallback-summary,
body.review-build.builder-page .device-progress-summary {
  min-height: 48px;
  padding: 0.4rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #153d68;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #ffffff;
  border: none;
  border-bottom: 1px solid transparent;
  user-select: none;
  box-sizing: border-box;
}

body.review-build.builder-page .workspace-utility-bar details[open] > summary {
  border-bottom-color: #dfd8ca;
}

body.review-build.builder-page .settings-summary-label {
  font-size: 0.85rem;
  font-weight: 700;
  color: #153d68;
  flex-shrink: 0;
}

body.review-build.builder-page .settings-summary-value {
  font-size: 0.78rem;
  font-weight: normal;
  color: #516173;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.review-build.builder-page .workspace-utility-bar .device-progress-details {
  padding: 0;
}

body.review-build.builder-page .workspace-utility-bar #device-progress-notice {
  padding: 0.75rem 0.85rem;
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
}

body.review-build.builder-page .workspace-utility-bar .picker-fallback-content {
  padding: 0.75rem 0.85rem;
}

body.review-build.builder-page .workspace-utility-bar .batch-defaults {
  padding: 0.85rem 0.85rem 0.5rem;
  margin: 0;
}

body.review-build.builder-page .workspace-utility-bar .print-settings-details .field-desc {
  padding: 0 0.85rem 0.75rem;
  margin: 0;
}

body.review-build.builder-page .builder-toolbar {
  position: sticky;
  top: 60px;
  z-index: 40;
  background: rgba(251, 249, 244, 0.98);
  backdrop-filter: blur(8px);
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  padding: 0.65rem 0.85rem;
  margin: 0 0 0.85rem;
  box-shadow: 0 2px 8px rgba(16, 45, 76, 0.04);
}

body.review-build.builder-page .builder-toolbar .btn,
body.review-build.builder-page .builder-toolbar select,
body.review-build.builder-page .builder-toolbar input:not([type="checkbox"]) {
  min-height: 48px;
}

body.review-build.builder-page .builder-select-all-label {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

body.review-build.builder-page .journey-editor {
  container-type: inline-size;
  min-width: 0;
}

body.review-build.builder-page .photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 0.5rem;
}

@container (max-width: 849px) {
  body.review-build.builder-page .photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container (max-width: 539px) {
  body.review-build.builder-page .photo-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1180px) {
  body.review-build.builder-page .photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.review-build.builder-page .photo-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

body.review-build.builder-page .photo-card {
  border-radius: var(--ap-radius-card, 20px) !important;
  min-width: 0;
}

body.review-build.builder-page .photo-card-preview {
  height: 185px;
  min-height: 185px;
}

body.review-build.builder-page .photo-card-preview .photo-preview-canvas {
  border-radius: 0 !important;
  max-height: 165px;
}

body.review-build.builder-page .photo-card-controls select,
body.review-build.builder-page .photo-card-controls input,
body.review-build.builder-page .photo-card-controls .photo-remove,
body.review-build.builder-page .bulk-field select,
body.review-build.builder-page .bulk-field input,
body.review-build.builder-page .bulk-btn-group button {
  min-height: 48px;
}

body.review-build.builder-page .main-content,
body.review-build.builder-page .journey-grid,
body.review-build.builder-page .journey-editor,
body.review-build.builder-page .workspace-utility-bar,
body.review-build.builder-page .photo-grid,
body.review-build.builder-page .photo-card,
body.review-build.builder-page .photo-card-header,
body.review-build.builder-page .photo-card-title-wrap,
body.review-build.builder-page .photo-card-controls,
body.review-build.builder-page .photo-field {
  min-width: 0;
}

@media (max-width: 960px) {
  body.review-build.builder-page .journey-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  body.review-build.builder-page .journey-summary {
    position: static;
  }
}

@media (max-width: 600px) {
  body.review-build.builder-page .main-content {
    padding: 0 16px;
  }
  body.review-build.builder-page .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  body.review-build.builder-page .hero-section {
    padding: 0.5rem 0;
  }
  body.review-build.builder-page .hero-title {
    font-size: 1.75rem;
  }
  body.review-build.builder-page .hero-lead {
    font-size: 0.875rem;
  }
  body.review-build.builder-page .workspace-utility-bar > details {
    flex: 1 1 100%;
  }
  body.review-build.builder-page select,
  body.review-build.builder-page input,
  body.review-build.builder-page textarea {
    font-size: 16px;
  }
}

@media (max-width: 360px) {
  body.review-build.builder-page .main-content,
  body.review-build.builder-page .container {
    padding-left: 10px;
    padding-right: 10px;
  }
  body.review-build.builder-page .photo-card-controls {
    grid-template-columns: 1fr;
  }
  body.review-build.builder-page .photo-card {
    padding: 0.75rem;
  }
}

/* Measured final refinement: keep photos visible within the first desktop viewport. */
body.review-build.builder-page .hero-lead { max-width: none; }
body.review-build.builder-page .builder-toolbar-selection-row { flex-wrap: wrap; gap: 0 12px; }
body.review-build.builder-page .builder-toolbar-selection-row .builder-bulk-hint { margin: 0; padding: 0; font-size: 12px; }
body.review-build.builder-page .builder-bulk-panel.is-collapsed { display: none; }
body.review-build.builder-page #photo-list { margin-top: 0; padding-top: 0; border-top: 0; }
body.review-build.builder-page .journey-summary .batch-totals { padding: 10px 0 12px; }
body.review-build.builder-page .journey-summary .batch-totals strong { font-size: 24px; }
body.review-build.builder-page .journey-summary .batch-price { padding: 12px 0 8px; }
body.review-build.builder-page .journey-summary .itemized-summary { margin: 8px 0; padding: 8px 0; }
body.review-build.builder-page .journey-summary #summary-heading { margin-bottom: 10px; }
body.review-build.builder-page .journey-summary .summary-notice { font-size: 12px; line-height: 1.45; margin-bottom: 8px; }
body.review-build.builder-page .summary-continue-action { margin: 12px 0 8px; }
@media (max-width: 600px) {
  body.review-build.builder-page .builder-toolbar-selection-row .builder-bulk-hint { flex-basis: 100%; }
}

/* Narrow-screen review: a compact header and secondary tools keep photos in view. */
body.review-build.builder-page .print-settings-summary-bar { flex-wrap: nowrap; }
body.review-build.builder-page .print-settings-summary-bar::after { margin-left: auto; flex: 0 0 auto; }
@media (max-width: 600px) {
  body.review-build.builder-page .site-header .header-inner { flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; min-height: 60px; }
  body.review-build.builder-page .header-brand-wrap { min-width: 0; gap: 8px; }
  body.review-build.builder-page .header-context { display: none; }
  body.review-build.builder-page .brand-mark-img { width: 36px; height: 36px; }
  body.review-build.builder-page .brand-wordmark { font-size: 18px; }
  body.review-build.builder-page .header-links { gap: 10px; }
  body.review-build.builder-page .header-nav-link { font-size: 12px; }
  body.review-build.builder-page .workspace-utility-bar { gap: 8px; }
  body.review-build.builder-page .workspace-utility-bar > .print-settings-details { flex: 1 1 100%; }
  body.review-build.builder-page .workspace-utility-bar > .picker-fallback-details,
  body.review-build.builder-page .workspace-utility-bar > .device-progress-details { flex: 1 1 calc(50% - 4px); }
  body.review-build.builder-page .workspace-utility-bar > details[open] { flex-basis: 100%; }
  body.review-build.builder-page .print-settings-summary-bar,
  body.review-build.builder-page .picker-fallback-summary,
  body.review-build.builder-page .device-progress-summary { padding: 6px 8px; font-size: 11px; line-height: 1.3; }
  body.review-build.builder-page .settings-summary-label { font-size: 12px; }
  body.review-build.builder-page .settings-summary-value { font-size: 12px; min-width: 0; }
  body.review-build.builder-page .builder-toolbar { position: static; }
}

body.review-build.builder-page .builder-step-cue .step-num { margin: 0; }
body.review-build.builder-page .builder-collection-title { margin: 0; font-size: 20px; line-height: 1.2; }
body.review-build.builder-page .builder-total-badge { white-space: nowrap; }
@media (max-width: 600px) {
  body.review-build.builder-page .builder-toolbar-heading-group { display: flex; width: 100%; justify-content: space-between; gap: 8px; }
  body.review-build.builder-page .builder-collection-title { white-space: nowrap; }
  body.review-build.builder-page .builder-toolbar-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; gap: 8px; }
  body.review-build.builder-page .builder-toolbar-actions .btn { width: 100%; padding: 6px; font-size: 12px; line-height: 1.3; }
  body.review-build.builder-page .builder-toolbar-status:not([hidden]) { grid-column: 1 / -1; }
  body.review-build.builder-page .builder-toolbar-inner { gap: 6px; }
  body.review-build.builder-page .journey-editor { display: flex; flex-direction: column; }
  body.review-build.builder-page #builder-toolbar { order: 1; }
  body.review-build.builder-page #photo-list { order: 2; }
  body.review-build.builder-page #photo-pagination { order: 3; }
  body.review-build.builder-page .workspace-utility-bar { order: 4; margin: 16px 0; }
  body.review-build.builder-page #request-details-panel { order: 5; }
}

@keyframes allprint-picker-enter {
  from { opacity: 0; transform: translateY(8px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
body.review-build.builder-page .photo-picker-dialog[open] { animation: allprint-picker-enter 180ms cubic-bezier(.16,1,.3,1); }
body.review-build.builder-page .photo-card { transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease; }
@media (prefers-reduced-motion: reduce) {
  body.review-build.builder-page *, body.review-build.builder-page *::before, body.review-build.builder-page *::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
}

/* Keep genuine quality/crop notices visible beneath both portrait and landscape proofs. */
body.review-build.builder-page .photo-card-preview { height: auto; min-height: 224px; overflow: visible; }
body.review-build.builder-page .photo-card-preview .photo-preview-stage { max-height: none; }

/* Step & review actionable blocker popup styles */
.step-feedback-dialog {
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-card, 20px);
  background: #ffffff;
  padding: 0;
  max-width: 520px;
  width: calc(100% - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  margin: auto;
  box-shadow: 0 20px 60px rgba(23, 43, 43, 0.25);
}

.step-feedback-dialog::backdrop {
  background: rgba(16, 45, 76, 0.65);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.step-feedback-dialog .dialog-inner {
  padding: 1.5rem;
}

.step-feedback-dialog .dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.step-feedback-dialog .dialog-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  line-height: 1.25;
  color: #153d68;
  margin: 0;
}

.step-feedback-dialog .dialog-close-btn {
  width: 48px;
  min-width: 48px;
  height: 48px;
  min-height: 48px;
  background: #f7f4ed;
  border: 1px solid #dfd8ca;
  border-radius: var(--ap-radius-control, 12px);
  font-size: 1.35rem;
  line-height: 1;
  color: #153d68;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.step-feedback-dialog .dialog-close-btn:hover {
  background: #153d68;
  color: #ffffff;
}

.step-feedback-dialog .dialog-lead {
  font-size: 0.875rem;
  color: #516173;
  margin: 0 0 0.85rem 0;
  line-height: 1.4;
}

.feedback-reasons-list {
  margin: 0 0 1.25rem 0;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #17283d;
  line-height: 1.4;
}

.feedback-reasons-list li {
  padding-left: 0.25rem;
}

.feedback-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.feedback-dialog-actions .btn {
  min-height: 48px;
  padding: 0.6rem 1.25rem;
  font-size: 0.875rem;
}

@media (max-width: 400px) {
  .step-feedback-dialog {
    width: calc(100% - 1rem);
  }
  .step-feedback-dialog .dialog-inner {
    padding: 1.15rem;
  }
  .feedback-dialog-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .feedback-dialog-actions .btn {
    width: 100%;
  }
}

body.review-build.builder-page .step-feedback-dialog[open] {
  animation: allprint-picker-enter 180ms cubic-bezier(.16,1,.3,1);
}

/* Google handoff stays within the existing request workspace. */
.upload-route,.external-receipt{border:1px solid #c9d5d0;border-radius:12px;padding:16px;margin:0 0 20px;min-width:0;overflow-wrap:anywhere}
.upload-route legend{font-weight:700;padding:0 4px}.upload-route label{display:block;margin:12px 0;cursor:pointer}
.external-receipt textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;margin:8px 0 12px;padding:10px;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}
.external-receipt .btn{max-width:100%;white-space:normal;margin:4px 0;box-sizing:border-box}
.external-receipt[hidden]{display:none}
@media(max-width:360px){.upload-route,.external-receipt{padding:12px}.external-receipt .btn{display:block;width:100%}}

/* ==========================================================================
   ALLPRINT P0 PRESENTATION REFINEMENT
   - Approved Palette: Ivory #f7f4ed, Navy #153d68, Blue #20558c, Ink #17283d,
     Accent #2564a4, Muted #516173, Border #dfd8ca
   - Typography: Headings: Georgia, serif; Body: System Sans
   - Curve Scale: 12px, 20px, max 28px (clamps 48px -> 28px)
   - Responsive wrapping, focus, and reduced motion; measured in local QA
   ========================================================================== */

:root {
  --ap-ivory: #f7f4ed;
  --ap-navy: #153d68;
  --ap-blue: #20558c;
  --ap-ink: #17283d;
  --ap-accent: #2564a4;
  --ap-muted: #516173;
  --ap-border: #dfd8ca;
  --ap-radius-sm: 12px;
  --ap-radius-md: 20px;
  --ap-radius-lg: 28px;
}

/* Page baseline & typography */
body.review-build.builder-page {
  background-color: var(--ap-ivory);
  color: var(--ap-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body.review-build.builder-page h1,
body.review-build.builder-page h2,
body.review-build.builder-page h3,
body.review-build.builder-page .hero-title,
body.review-build.builder-page .builder-collection-title,
body.review-build.builder-page .panel-step-title {
  font-family: Georgia, "Times New Roman", Times, serif;
  color: var(--ap-navy);
}

/* 1. Shrink Top Banner & Hero Section */
body.review-build.builder-page .review-notice-banner {
  padding: 6px 0;
  background-color: #ede8dc;
  border-bottom: 1px solid var(--ap-border);
  font-size: 14px;
}

body.review-build.builder-page .notice-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

body.review-build.builder-page .hero-section.builder-hero {
  margin: 12px 0 16px;
  padding: 0;
  text-align: left;
}

body.review-build.builder-page .builder-step-cue {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding: 4px 10px;
  background-color: #ffffff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-lg);
  font-size: 14px;
}

body.review-build.builder-page .builder-step-cue .step-item {
  color: var(--ap-muted);
  font-weight: 500;
}

body.review-build.builder-page .builder-step-cue .step-item.is-active {
  color: var(--ap-navy);
  font-weight: 700;
}

body.review-build.builder-page .builder-step-cue .step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ede8dc;
  color: var(--ap-ink);
  font-size: 11px;
}

body.review-build.builder-page .builder-step-cue .step-item.is-active .step-num {
  background: var(--ap-navy);
  color: #ffffff;
}

body.review-build.builder-page .hero-title {
  font-size: 30px;
  line-height: 1.25;
  margin: 0 0 4px;
}

body.review-build.builder-page .hero-lead {
  font-size: 14px;
  line-height: 1.4;
  color: var(--ap-muted);
  margin: 0;
}

/* 2. Prominent New-Photo Defaults & Apply-All */
body.review-build.builder-page .workspace-utility-bar {
  margin: 0 0 16px;
  gap: 10px;
}

body.review-build.builder-page .workspace-utility-bar > .print-settings-details {
  border: 1.5px solid var(--ap-navy);
  border-radius: var(--ap-radius-sm);
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(21, 61, 104, 0.08);
  overflow: hidden;
}

body.review-build.builder-page .print-settings-summary-bar {
  background: #fdfbf7;
  padding: 10px 14px;
  min-height: 44px;
  cursor: pointer;
  border-bottom: 1px solid transparent;
}

body.review-build.builder-page .print-settings-details[open] .print-settings-summary-bar {
  border-bottom: 1px solid var(--ap-border);
}

body.review-build.builder-page .settings-summary-label {
  font-weight: 700;
  color: var(--ap-navy);
  font-size: 14px;
}

body.review-build.builder-page .settings-summary-value {
  color: var(--ap-muted);
  font-size: 14px;
}

body.review-build.builder-page .batch-defaults {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  padding: 12px 14px;
  background-color: #ffffff;
}

body.review-build.builder-page .batch-defaults .form-group {
  margin: 0;
  flex: 1 1 140px;
}

body.review-build.builder-page .batch-defaults label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--ap-ink);
  margin-bottom: 4px;
}

body.review-build.builder-page .batch-defaults select,
body.review-build.builder-page .batch-defaults input {
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);
  background: var(--ap-ivory);
  font-size: 14px;
  color: var(--ap-ink);
  box-sizing: border-box;
}

body.review-build.builder-page #apply-defaults {
  min-height: 44px;
  padding: 0 16px;
  background-color: var(--ap-navy);
  color: #ffffff;
  border: 1px solid var(--ap-navy);
  border-radius: var(--ap-radius-sm);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

body.review-build.builder-page #apply-defaults:hover {
  background-color: var(--ap-accent);
  border-color: var(--ap-accent);
}

/* Secondary Utility Details (Picker & Device Resume) */
body.review-build.builder-page .picker-fallback-details,
body.review-build.builder-page .device-progress-details {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);
  background: #ffffff;
}

body.review-build.builder-page .picker-fallback-summary,
body.review-build.builder-page .device-progress-summary {
  min-height: 44px;
  padding: 8px 12px;
  font-size: 14px;
  color: var(--ap-muted);
}

/* 3. Compact Toolbar & Collection Hierarchy (One Photo = One Line) */
body.review-build.builder-page .builder-toolbar {
  padding: 8px 12px;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);
  background: #ffffff;
  margin-bottom: 12px;
}

body.review-build.builder-page .builder-collection-title {
  font-size: 18px;
  line-height: 1.2;
}

body.review-build.builder-page .builder-total-badge {
  background-color: var(--ap-ivory);
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-lg);
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ap-navy);
}

body.review-build.builder-page .photo-card {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);
  background: #ffffff;
}

body.review-build.builder-page .photo-card:hover,
body.review-build.builder-page .photo-card:focus-within {
  border-color: var(--ap-blue);
  box-shadow: 0 2px 6px rgba(32, 85, 140, 0.12);
}

body.review-build.builder-page .photo-card-controls select,
body.review-build.builder-page .photo-card-controls input {
  min-height: 44px;
  font-size: 14px;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-sm);
}

body.review-build.builder-page .photo-card-controls .photo-remove {
  min-height: 44px;
  min-width: 44px;
  color: #a82315;
}

/* 4. Shrink Summary & One Prominent Continue CTA */
body.review-build.builder-page .journey-summary .card,
body.review-build.builder-page .summary-sticky-card {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-md);
  background: #ffffff;
  padding: 14px 16px;
}

body.review-build.builder-page .journey-summary #summary-heading {
  font-family: Georgia, serif;
  font-size: 18px;
  color: var(--ap-navy);
  margin-bottom: 8px;
}

body.review-build.builder-page .journey-summary .batch-totals strong {
  font-size: 20px;
  color: var(--ap-navy);
}

body.review-build.builder-page .summary-continue-action {
  margin: 12px 0 6px;
}

body.review-build.builder-page .summary-continue-action .btn,
body.review-build.builder-page .summary-continue-action button {
  width: 100%;
  min-height: 48px;
  background-color: var(--ap-navy);
  color: #ffffff;
  border: 1px solid var(--ap-navy);
  border-radius: var(--ap-radius-sm);
  font-size: 15px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.review-build.builder-page .summary-continue-action .btn:hover,
body.review-build.builder-page .summary-continue-action button:hover {
  background-color: var(--ap-accent);
  border-color: var(--ap-accent);
}

/* 5. Clear, Readable Error & Alert Styling */
body.review-build.builder-page .alert-box,
body.review-build.builder-page #form-errors,
body.review-build.builder-page #photo-errors,
body.review-build.builder-page .photo-card-error {
  border-radius: var(--ap-radius-sm);
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: break-word;
}

body.review-build.builder-page #form-errors:not([hidden]),
body.review-build.builder-page #photo-errors:not([hidden]),
body.review-build.builder-page .photo-card-error:not(:empty) {
  display: block;
  background-color: #fdf2f2;
  border: 1.5px solid #d32f2f;
  color: #7f1d1d;
  padding: 10px 14px;
  margin: 8px 0 12px;
}

body.review-build.builder-page .photo-copies-input[aria-invalid="true"] {
  border: 2px solid #d32f2f !important;
  background-color: #fff8f8;
}

/* 7. Visible Focus Indicators */
body.review-build.builder-page button:focus-visible,
body.review-build.builder-page a:focus-visible,
body.review-build.builder-page input:focus-visible,
body.review-build.builder-page select:focus-visible,
body.review-build.builder-page summary:focus-visible {
  outline: 2px solid var(--ap-accent) !important;
  outline-offset: 2px !important;
}

/* 8. Mobile Responsiveness (320px & 390px) & Chat Overlap Avoidance */
@media (max-width: 600px) {
  body.review-build.builder-page .main-content {
    padding: 8px 12px;
  }

  body.review-build.builder-page .journey-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  body.review-build.builder-page .header-nav-link,
  body.review-build.builder-page .customer-auth-btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* Prevent chat widget from covering Continue button */
  body.review-build.builder-page .journey-summary {
    padding-bottom: 84px !important;
  }

  body.review-build.builder-page .batch-defaults .form-group {
    flex: 1 1 100%;
  }

  body.review-build.builder-page #apply-defaults {
    width: 100%;
  }
}

@media (max-width: 360px) {
  body.review-build.builder-page .hero-title {
    font-size: 28px;
  }
  body.review-build.builder-page .builder-collection-title {
    font-size: 16px;
  }
}

/* 9. Comprehensive Reduced-Motion Override */


/* Preserve semantic gates and strong selected state under the presentation cascade. */
body.review-build.builder-page [hidden] { display: none !important; }
body.review-build.builder-page .photo-card.is-selected { border: 2px solid #2564a4; }
body.review-build.builder-page .photo-card-controls input,
body.review-build.builder-page .photo-card-controls select,
body.review-build.builder-page .batch-defaults input,
body.review-build.builder-page .batch-defaults select { font-size: 16px; border-color: #516173; }
body.review-build.builder-page .settings-summary-value { white-space: normal; overflow: visible; }
body.review-build.builder-page .workspace-utility-bar > details:not([open]) { max-height: none; }
body.review-build.builder-page .print-settings-summary-bar { flex-wrap: wrap; }
body.review-build.builder-page .photo-card-name,
body.review-build.builder-page .customer-auth-panel { overflow-wrap: anywhere; }
body.review-build.builder-page :is(button, summary, input, select, textarea, a) { scroll-margin-block: 100px; }
body.review-build.builder-page :is(textarea, [tabindex]):focus-visible { outline: 2px solid #2564a4; outline-offset: 2px; }
body.review-build.builder-page .btn:disabled { cursor: not-allowed; }
body.review-build.builder-page .review-notice-banner :is(#connection-status, #preview-sample-label) { color: #153d68; }
/* The existing summary action is the single visible Continue control. */
body.review-build.builder-page #builder-continue-btn { display: none; }
/* Match visual order to DOM/focus order, including the Google handoff. */
body.review-build.builder-page .journey-editor > * { order: 0 !important; }
/* Keep support available in page flow without covering the single Continue. */
body.review-build.builder-page .ap-contact { position: relative; right: auto; bottom: auto; display: flex; justify-content: flex-end; margin: 16px 24px; z-index: 50; }
@media (max-width: 600px) {
  body.review-build.builder-page .hero-title { font-size: 28px; }
  body.review-build.builder-page .header-inner { flex-wrap: wrap; gap: 4px 12px; }
  body.review-build.builder-page .header-links { flex-wrap: wrap; gap: 4px 12px; min-width: 0; }
  body.review-build.builder-page .workspace-utility-bar > details { flex-basis: 100%; }
}
/* Approved UI target: presentation only, existing semantic gates retained. */
body.review-build.builder-page {
  --ap-ivory: #faf9f6; --ap-navy: #101c49; --ap-blue: #005bea;
  --ap-accent: #005bea; --ap-border: #e1e5ed; --ap-muted: #536582;
  background: #faf9f6; color: #18284a;
}
body.review-build.builder-page .main-content { max-width: 1280px; padding: 0 32px; }
body.review-build.builder-page .site-header { background: #fff; border-color: #e1e5ed; box-shadow: none; }
body.review-build.builder-page .header-inner { max-width: 1280px; min-height: 80px; }
body.review-build.builder-page .brand-wordmark { font: bold 30px Georgia,serif; color: #101c49; }
body.review-build.builder-page .brand-mark-img { width: 44px; height: 44px; object-fit: contain; }
body.review-build.builder-page .header-context { color: #101c49; margin-left: 20px; border: 0; }
body.review-build.builder-page .header-nav-link { color: #101c49; font-size: 14px; }
body.review-build.builder-page .review-notice-banner { background: #edf4ff; border-color: #dae6fb; font-size: 12px; }
body.review-build.builder-page #upload-capability-notice { max-width: 1216px; margin: 16px auto 0; border: 1px solid #dae6fb; border-radius: 10px; background: #f1f6ff; color: #24436d; padding: 12px 16px; font-size: 13px; line-height: 1.6; }
body.review-build.builder-page .hero-section.builder-hero { padding: 32px 0 26px; margin: 0; }
body.review-build.builder-page .hero-title { font-size: clamp(30px,3.4vw,46px); line-height: 1.14; letter-spacing: -.035em; margin: 16px 0 10px; }
body.review-build.builder-page .hero-lead { color: #536582; font-size: 16px; line-height: 1.6; }
body.review-build.builder-page .builder-step-cue { padding: 0; border: 0; background: transparent; border-radius: 0; gap: 16px; margin: 0; }
body.review-build.builder-page .builder-step-cue .step-item { gap: 10px; font-size: 13px; }
body.review-build.builder-page .builder-step-cue .step-num { width: 30px; height: 30px; font-size: 13px; border: 1px solid #cfd7e5; background: #fff; color: #536582; }
body.review-build.builder-page .builder-step-cue .step-item.is-active .step-num { background: #005bea; border-color: #005bea; color: #fff; box-shadow: 0 0 0 4px #edf4ff; }
body.review-build.builder-page .builder-step-cue .step-sep { width: 58px; height: 1px; background: #d9e0ec; font-size: 0; }
body.review-build.builder-page .journey-grid { grid-template-columns: minmax(0,1fr) 340px; gap: 24px; }
body.review-build.builder-page .upload-route { background: #fff; border: 1px solid #e1e5ed; border-radius: 12px; padding: 16px 20px; margin-bottom: 16px; }
body.review-build.builder-page .upload-route legend { font-size: 13px; color: #344867; }
body.review-build.builder-page .upload-route label { font-size: 14px; min-height: 32px; }
body.review-build.builder-page input[type=radio], body.review-build.builder-page input[type=checkbox] { accent-color: #005bea; }
body.review-build.builder-page .workspace-utility-bar { gap: 8px; margin-bottom: 16px; }
body.review-build.builder-page .workspace-utility-bar > .print-settings-details { border: 1px solid #d6e1f5; box-shadow: none; }
body.review-build.builder-page .print-settings-summary-bar { background: #fff; }
body.review-build.builder-page .settings-summary-label { color: #101c49; }
body.review-build.builder-page .picker-fallback-details, body.review-build.builder-page .device-progress-details { border-color: #e1e5ed; }
body.review-build.builder-page .builder-empty-state { margin: 0 0 24px; padding: 48px 24px; background: linear-gradient(125deg,#f5f9ff,#fff); border: 1px dashed #91b8f6; border-radius: 14px; }
body.review-build.builder-page .builder-empty-title { font-size: 25px; letter-spacing: -.025em; margin-bottom: 10px; }
body.review-build.builder-page .builder-empty-lead { font-size: 14px; color: #536582; line-height: 1.6; }
body.review-build.builder-page .btn-primary, body.review-build.builder-page .summary-continue-action button { background: #005bea; border-color: #005bea; border-radius: 9px; color: #fff; box-shadow: 0 3px 8px #005bea14; }
body.review-build.builder-page .btn-primary:hover, body.review-build.builder-page .summary-continue-action button:hover { background: #0047b8; border-color: #0047b8; }
body.review-build.builder-page .builder-empty-state .btn { min-width: 204px; min-height: 48px; font-size: 15px; }
body.review-build.builder-page .journey-summary .card, body.review-build.builder-page .summary-sticky-card { padding: 24px 22px; border-radius: 14px; border-color: #e1e5ed; box-shadow: 0 8px 28px #172c4b05; }
body.review-build.builder-page .journey-summary #summary-heading { font-size: 23px; padding-bottom: 18px; border-bottom: 1px solid #e9edf3; margin-bottom: 18px; }
body.review-build.builder-page .journey-summary .batch-totals { padding: 8px 0 16px; }
body.review-build.builder-page .journey-summary .batch-totals strong { color: #101c49; font-size: 24px; }
body.review-build.builder-page .journey-summary .summary-notice { font-size: 13px; color: #536582; line-height: 1.65; }
body.review-build.builder-page .summary-continue-action { margin-top: 20px; }
body.review-build.builder-page .photo-grid { gap: 16px; }
body.review-build.builder-page .photo-card { border-color: #e1e5ed; border-radius: 12px; box-shadow: none; }
body.review-build.builder-page .photo-card.is-selected { border: 2px solid #005bea; }
body.review-build.builder-page .photo-card-preview { background: #f2f5fa; border-color: #e1e5ed; }
body.review-build.builder-page .request-details-panel { border-color: #e1e5ed; border-radius: 14px; background: #fff; }
body.review-build.builder-page .site-footer { background: transparent; border-color: #e1e5ed; color: #536582; }
body.review-build.builder-page .site-footer p { color: #536582; }
body.review-build.builder-page [hidden] { display: none !important; }
@media(max-width:960px) {
  body.review-build.builder-page .journey-grid { grid-template-columns: minmax(0,1fr); }
  body.review-build.builder-page .journey-summary { position: static; }
}
@media(max-width:600px) {
  body.review-build.builder-page .main-content { padding: 0 16px; }
  body.review-build.builder-page .header-inner { min-height: 68px; padding: 8px 16px; }
  body.review-build.builder-page .brand-wordmark { font-size: 24px; }
  body.review-build.builder-page .brand-mark-img { width: 34px; height: 34px; }
  body.review-build.builder-page .header-context { margin-left: 0; font-size: 12px; }
  body.review-build.builder-page .header-links { gap: 12px; }
  body.review-build.builder-page .header-nav-link { font-size: 13px; }
  body.review-build.builder-page #upload-capability-notice { margin: 12px 16px 0; padding: 10px 12px; font-size: 12px; }
  body.review-build.builder-page .hero-section.builder-hero { padding: 24px 0; }
  body.review-build.builder-page .hero-title { font-size: 33px; margin-top: 22px; }
  body.review-build.builder-page .hero-lead { font-size: 14px; }
  body.review-build.builder-page .builder-step-cue { gap: 10px; }
  body.review-build.builder-page .builder-step-cue .step-sep { width: 20px; }
  body.review-build.builder-page .builder-step-cue .step-item { gap: 6px; font-size: 12px; }
  body.review-build.builder-page .builder-step-cue .step-num { width: 26px; height: 26px; }
  body.review-build.builder-page .upload-route { padding: 12px; }
  body.review-build.builder-page .builder-empty-state { padding: 36px 16px; }
  body.review-build.builder-page .builder-empty-title { font-size: 23px; }
  body.review-build.builder-page .journey-summary .card { padding: 22px 18px; }
}


/* Keyboard customers can bypass repeated header/status content. */
.builder-skip-link { position:fixed; top:8px; left:8px; z-index:1000; padding:12px 18px; max-width:calc(100vw - 16px); box-sizing:border-box; background:#fff; color:#003fa8; border:2px solid currentColor; border-radius:8px; transform:translateY(-160%); }
.builder-skip-link:focus { transform:translateY(0); outline:3px solid #005eff; outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { .builder-skip-link { transition:none; } }

/* Visible entry uses existing guarded file inputs and selection controller. */
.photo-entry { margin: 0 0 24px; padding: clamp(16px,3vw,28px); border: 1px dashed #7ba5df; border-radius:20px; background:#f6faff; min-width:0; }
.photo-entry h2 { margin:0 0 8px; color:#102b50; font-size:clamp(24px,3vw,30px); }
.photo-entry-intro,.photo-entry-reassurance { color:#435b78; line-height:1.6; }
.photo-entry-content .batch-picker { display:flex; flex-wrap:wrap; align-items:center; gap:12px; min-width:0; }
.photo-entry .batch-picker-title { flex-basis:100%; font-weight:700; }
.photo-entry input[type=file] { min-width:0; max-width:100%; flex:1 1 250px; color:#153d68; }
.photo-entry input[type=file]::file-selector-button { padding:12px 16px; margin-right:12px; border:0; border-radius:8px; background:#005bdf; color:white; font:inherit; cursor:pointer; }
.photo-entry input:disabled::file-selector-button { background:#65758b; cursor:not-allowed; }
.photo-entry input:focus-visible,.photo-entry button:focus-visible { outline:3px solid #005bdf; outline-offset:3px; }
.photo-entry .field-desc { flex-basis:100%; overflow-wrap:anywhere; }
.photo-entry-reassurance { margin:16px 0 0; font-size:14px; }
@media(max-width:600px) { .photo-entry #choose-folder { width:100%; } .photo-entry input[type=file] { flex-basis:100%; width:100%; } }

/* Approved target: generous editorial heading, clear navigation and workspace hierarchy. */
body.review-build.builder-page .hero-section.builder-hero { margin:24px 0; padding:32px clamp(20px,4vw,48px); border:1px solid #e3e6ec; border-radius:20px; background:linear-gradient(120deg,#fff 35%,#f0f6ff); }
.hero-eyebrow { margin:0 0 12px; color:#28517d; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
body.review-build.builder-page .hero-title { max-width:1000px; font-size:clamp(34px,4.4vw,60px); line-height:1.1; letter-spacing:-.035em; color:#101e4b; margin:0 0 14px; }
body.review-build.builder-page .hero-lead { font-size:clamp(20px,2.1vw,28px); color:#203c65; line-height:1.4; }
.hero-guidance { max-width:700px; color:#455d79; font-size:16px; line-height:1.6; margin:12px 0 24px; }
body.review-build.builder-page .builder-step-cue { margin:0; padding-top:20px; border-top:1px solid #d5dfed; flex-wrap:wrap; row-gap:12px; }
body.review-build.builder-page .header-links { flex-wrap:wrap; justify-content:flex-end; }
.current-section { color:#0055d4; text-decoration:underline; text-underline-offset:6px; }
.header-nav-link:focus-visible { outline:3px solid #0055d4; outline-offset:4px; border-radius:2px; }
body.review-build.builder-page .journey-summary .card { border-color:#d5dfed; box-shadow:0 8px 28px rgba(16,45,76,.07); }
body.review-build.builder-page #workspace-heading { scroll-margin-top:110px; }
body.review-build.builder-page #help-heading { scroll-margin-top:110px; }
@media(max-width:600px) {
 body.review-build.builder-page .site-header .header-inner { flex-wrap:wrap; gap:8px; padding-top:10px; padding-bottom:10px; }
 body.review-build.builder-page .header-links { width:100%; justify-content:flex-start; gap:24px; padding:4px 0; }
 body.review-build.builder-page .header-context { display:none; }
 body.review-build.builder-page .hero-section.builder-hero { margin:16px 0; padding:24px 18px; }
 body.review-build.builder-page .hero-title { font-size:36px; margin-top:0; }
 .hero-guidance { font-size:15px; }
 body.review-build.builder-page #workspace-heading,body.review-build.builder-page #help-heading { scroll-margin-top:145px; }
}
