.schedule-planning-slot:empty,
.schedule-planning-slot[hidden] {
  display: none;
}

[data-job-material-plan] { min-width: 0; }
.job-material-pack > button { margin-bottom: 12px; }
.christmas-install-warehouse[hidden] { display: none; }
.job-material-prep-details { grid-column: 1 / -1; }
.job-material-prep-details[open] { display: grid; gap: 10px; }
.job-material-prep-details summary, .job-material-add-supply summary { cursor: pointer; color: #087568; font-weight: 700; }
.job-material-prep-details label { margin-top: 10px; }
.job-material-prep-details button { margin-top: 10px; }
.job-material-prep-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 12px; }
.job-material-prep-fields label { display: grid; gap: 4px; min-width: 0; }
.job-material-adjustment select, .job-material-adjustment input:not([type="checkbox"]), .job-material-adjustment textarea { width: 100%; min-width: 0; min-height: 44px; }
@media (max-width: 600px) { .job-material-prep-fields { grid-template-columns: minmax(0, 1fr); } }
.job-material-group { min-width: 0; }
.job-material-normal { display: grid; min-width: 0; margin: 0; padding: 0; gap: 12px; border: 0; }
.job-material-normal[hidden], [data-action="job-material-plan-edit"][hidden] { display: none; }
.job-material-adjustment { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 14px; border: 2px solid #167465; border-radius: 8px; }
.job-material-adjustment legend { padding: 0 6px; font-weight: 800; }
.job-material-adjustment p { margin: 0; font-size: 13px; }
.job-material-adjustment-rows { display: grid; gap: 12px; }
.job-material-adjustment-rows > div { display: grid; grid-template-columns: minmax(0, 1fr) 82px 82px; gap: 10px; align-items: end; padding-bottom: 12px; border-bottom: 1px solid #d3e1df; }
.job-material-adjustment-rows span, .job-material-adjustment-rows label { display: grid; gap: 4px; min-width: 0; }
.job-material-adjustment-rows small { color: #526e72; overflow-wrap: anywhere; }
.job-material-adjustment input[type="number"] { width: 100%; min-width: 0; min-height: 44px; }
.job-material-adjustment-confirm { display: flex; align-items: start; gap: 10px; font-size: 13px; }
.job-material-adjustment-confirm input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; }
@media (max-width: 600px) {
  .job-material-adjustment { padding: 10px; }
  .job-material-adjustment-rows > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .job-material-adjustment-rows span { grid-column: 1 / -1; }
  .job-material-adjustment .actions { display: grid; }
}
.christmas-install-warehouse-body { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.christmas-install-warehouse-body .job-material-table { min-width: 0; }
.christmas-install-warehouse-body .job-material-row > span:first-child small { white-space: normal; overflow-wrap: anywhere; }
@media (min-width: 721px) {
  .christmas-install-warehouse-body .job-material-table-head,
  .christmas-install-warehouse-body .job-material-row { grid-template-columns: minmax(140px, 1fr) repeat(5, minmax(48px, .48fr)); }
}
.job-material-group > summary { cursor: pointer; list-style: none; }
.job-material-group > summary::-webkit-details-marker { display: none; }
.job-material-group > summary em { font-size: 12px; font-style: normal; color: #087568; }
.job-material-group > summary:focus-visible { outline: 2px solid #087568; outline-offset: -2px; }
.job-material-group-areas { border-left: 3px solid #b9d9d3; margin: 0 10px 10px; background: #f5faf8; }
.job-material-bring { margin-top: 16px; padding: 14px; border: 1px solid #d3e1df; border-radius: 8px; }
.job-material-bring h4 { margin: 0 0 10px; }
.job-material-bring ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.job-material-bring li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.job-material-bring li span { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.job-material-bring small { color: #526e72; }
.job-material-bring li b { text-align: right; }
@media (max-width: 600px) {
  .job-material-group-areas { margin-inline: 0; }
  .job-material-bring li { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .job-material-bring li b { text-align: left; }
}

.schedule-service-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.schedule-service-day { min-width: 0; min-height: 180px; border: 1px solid #d3e1df; border-radius: 8px; background: #f7faf9; }
.schedule-service-day.is-selected { border-color: #15988d; }
.schedule-service-day > header { display: grid; gap: 4px; padding: 12px; border-bottom: 1px solid #d3e1df; }
.schedule-service-day > header strong { font-size: 13px; color: #123b56; }
.schedule-service-day > header span { font-size: 11px; color: #637b80; }
.schedule-service-day-jobs { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 8px; padding: 8px; }
.schedule-service-day-job { display: grid; min-width: 0; gap: 6px; padding: 10px; border: 1px solid #bdd7d2; border-radius: 7px; background: white; cursor: pointer; }
.schedule-service-day-job > strong { font-size: 13px; overflow-wrap: anywhere; }
.schedule-service-day-order { font-size: 11px; font-weight: 800; color: #08765f; }
.schedule-service-day-job .schedule-assigned-crew { min-width: 0; flex-wrap: wrap; max-width: 100%; }
.schedule-service-day-job .schedule-crew-pill { min-width: 0; max-width: 100%; }
.schedule-service-day-timing { display: grid; gap: 12px; padding: 18px 22px; }
.schedule-service-day-timing > label { display: grid; gap: 7px; font-weight: 700; }
.schedule-service-day-timing input { width: 100%; min-height: 44px; }
.schedule-service-day-timing p { margin: 0; font-size: 13px; color: #526e72; }
.schedule-service-day-timing summary { min-height: 44px; padding-block: 12px; cursor: pointer; font-weight: 700; }
.schedule-service-day-timing .schedule-create-timing { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 0 0; }
.schedule-service-day-timing + .schedule-reschedule-help { padding-inline: 22px; }
.client-hub-appointment .client-hub-record-meta time { white-space: normal; max-width: 300px; }
@media (max-width: 767px) {
  .client-hub-appointment { display: grid; grid-template-columns: 52px minmax(0, 1fr); }
  .client-hub-appointment .client-hub-record-meta { grid-column: 2; margin: 0; justify-items: start; }
  .client-hub-appointment .client-hub-record-meta time { text-align: left; }
}
@media (max-width: 1180px) { .schedule-service-days { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  .schedule-service-days { grid-template-columns: minmax(0, 1fr); }
  .schedule-service-day { min-height: 0; }
  .schedule-service-day > header { grid-template-columns: minmax(0, 1fr) auto; }
  .schedule-service-day-timing { padding: 14px; }
  .schedule-service-day-timing + .schedule-reschedule-help { padding-inline: 14px; }
}

/* Customer Christmas quote: each image and its original price card move as one. */
.quote-christmas-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: #52645b;
  font-size: .85rem;
}
.quote-christmas-carousel-controls button,
.quote-christmas-carousel-dots button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 1px solid #cbd8ce;
  border-radius: 50%;
  padding: 0;
  color: #07364a;
  background: #fffdf7;
  font: inherit;
  font-size: 1.5rem;
  cursor: pointer;
}
.quote-christmas-carousel-controls button:focus-visible,
.quote-christmas-carousel-dots button:focus-visible,
.quote-christmas-design-slide:focus-visible {
  outline: 3px solid #aa772b;
  outline-offset: -3px;
}
.quote-christmas-offers > header { grid-template-columns: minmax(0, 1fr); }
.quote-christmas-offers[data-public-christmas-offer-carousel] .quote-christmas-offer-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  border: 0;
  overflow: visible;
  background: transparent;
}
.quote-christmas-offers[data-public-christmas-offer-carousel] .quote-christmas-offer {
  border: 1px solid #cbd8ce;
  border-radius: 14px;
  padding: 22px 16px 16px;
  min-height: 150px;
  align-content: start;
}
.quote-christmas-design-viewport { position: relative; width: 100%; overflow: clip; background: #002c40; touch-action: pan-y pinch-zoom; user-select: none; }
.quote-christmas-design-track { display: flex; width: 100%; align-items: flex-start; }
.quote-christmas-design.has-carousel .quote-christmas-design-track {
  transform: translate3d(var(--quote-carousel-offset, 0%), 0, 0);
  transition: transform 280ms ease-out;
  will-change: transform;
}
.quote-christmas-design.has-carousel .quote-christmas-design-track.is-auto-previewing {
  transition: transform 6500ms linear;
}
.quote-christmas-design.has-carousel .quote-christmas-design-track.is-dragging { transition: none; cursor: grabbing; }
.quote-christmas-design-slide + .quote-christmas-design-slide::before { content: ""; position: absolute; z-index: 2; inset: 0 auto 0 0; width: 6px; background: #fff6df; border-inline: 1px solid #078b91; pointer-events: none; }
.quote-christmas-design-slide { position: relative; flex: 0 0 100%; min-width: 0; cursor: pointer; }
.quote-christmas-design-slide .christmas-view-gallery {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 12px;
  align-items: start;
}
.quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-design-canvas {
  width: min(100%, calc(460px * (var(--design-aspect))));
  min-height: 0;
  max-height: none;
  margin-inline: auto;
}
.quote-christmas-design-slide.is-selected .quote-christmas-design-canvas { z-index: 3; }
.quote-christmas-design-slide.is-selected .quote-christmas-design-canvas::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 4px solid #e9bd59;
  border-radius: inherit;
  z-index: 3;
  pointer-events: none;
}
.quote-christmas-design-slide-label {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  color: #f9f4e7;
  background: #002c40;
  font-size: .8rem;
}
.quote-christmas-design-slide-label span {
  display: none;
  padding: 5px 10px;
  border-radius: 999px;
  background: #e9bd59;
  color: #002c40;
  font-weight: 750;
}
.quote-christmas-design-slide.is-selected .quote-christmas-design-slide-label span { display: inline; }
.quote-christmas-carousel-dots { display: flex; gap: 12px; justify-content: center; }
.quote-christmas-carousel-dots button { width: 48px; height: 48px; flex-basis: 48px; font-size: 18px; font-weight: 800; transition: background-color 160ms ease, border-color 160ms ease; }
.quote-christmas-carousel-dots button.is-active { background: #e9bd59; color: #08262e; border-color: #e9bd59; }
.quote-christmas-design-viewport > .quote-christmas-carousel-controls { position: absolute; z-index: 8; inset: 0 0 auto; justify-content: space-between; padding-inline: 12px; pointer-events: none; }
.quote-christmas-design-viewport > .quote-christmas-carousel-controls button { pointer-events: auto; }
.quote-christmas-carousel-controls[hidden], .quote-christmas-carousel-controls button[hidden] { display: none; }
.quote-christmas-carousel-controls [data-public-christmas-carousel-next] { margin-inline-start: auto; }

.quote-public-shell.is-christmas-lights { max-width: 1120px; padding: 24px 16px 48px; }
.quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal {
  --quote-holiday-ink: #07364a;
  border: 1px solid #d9dfd4;
  border-top: 4px solid #d9223f;
  border-radius: 24px;
  padding: 0;
  overflow: hidden;
  background: #fffcf5;
  box-shadow: 0 18px 60px #193b281a;
  color: var(--quote-holiday-ink);
}
.quote-public-shell.is-christmas-lights .quote-public-header {
  position: relative;
  grid-template-columns: minmax(170px, 240px) minmax(0, 1fr);
  gap: 24px;
  padding: 36px 32px 32px;
  border-bottom: 1px solid #decda3;
  background: radial-gradient(ellipse at 0 0, #dbe9d8, transparent 65%), #f0f4e9;
}
.quote-public-shell.is-christmas-lights .quote-public-header::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 12px;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 1px, #d9223f 0 3px, transparent 4px) 0 0 / 38px 12px repeat-x;
}
.quote-public-shell.is-christmas-lights .quote-public-header > img { width: 100%; height: 90px; object-position: left center; }
.quote-public-shell.is-christmas-lights .quote-public-header h2 { color: #07364a; font-size: 23px; line-height: 1.2; }
.quote-public-shell.is-christmas-lights .quote-public-header p { margin-top: 6px; color: #486052; font-size: 12px; line-height: 1.5; }
.quote-public-shell.is-christmas-lights .quote-public-header::after { display: none; }
.quote-public-card.is-christmas-lights .quote-document-top {
  grid-template-columns: minmax(0, 1fr) minmax(220px, .65fr);
  gap: 28px;
  padding: 28px 32px;
  margin: 0;
}
.quote-public-card.is-christmas-lights .quote-recipient { gap: 6px; max-width: none; }
.quote-public-card.is-christmas-lights .quote-recipient > span { color: #617363; font-size: 11px; letter-spacing: .09em; }
.quote-public-card.is-christmas-lights .quote-recipient strong { color: #07364a; font-size: 25px; }
.quote-public-card.is-christmas-lights .quote-recipient p,
.quote-public-card.is-christmas-lights .quote-recipient em { color: #486052; font-size: 14px; line-height: 1.5; }
.quote-public-card.is-christmas-lights .quote-number-panel { border: 1px solid #d6dfd1; border-radius: 12px; overflow: hidden; }
.quote-public-card.is-christmas-lights .quote-number-panel h3 { padding: 12px 16px; background: #edf2e6; color: #315440; font-size: 15px; }
.quote-public-card.is-christmas-lights .quote-number-panel > div { gap: 12px; padding: 10px 16px; background: #fffcf5; }
.quote-public-card.is-christmas-lights .quote-number-panel span,
.quote-public-card.is-christmas-lights .quote-number-panel strong { font-size: 13px; }
.quote-public-card.is-christmas-lights .quote-number-panel .quote-number-total { background: #07364a; }
.quote-public-card.is-christmas-lights .quote-number-panel .quote-number-total strong { color: #fff5d9; font-size: 24px; }
.quote-public-card.is-christmas-lights .quote-number-panel .quote-number-total span { color: #e5efdf; }
.quote-public-card.is-christmas-lights .quote-christmas-design { margin: 0 32px 16px; border: 1px solid #cedac9; border-radius: 16px; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header { padding: 16px 18px; color: #fbf2d9; background: #07364a; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header h3 { color: inherit; font-size: 16px; line-height: 1.45; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header svg { color: #e4c278; }
.quote-public-card.is-christmas-lights .quote-christmas-design-canvas { max-height: 460px; }
.quote-public-card.is-christmas-lights .quote-christmas-offers { margin: 0 32px 28px; gap: 14px; }
.quote-public-card.is-christmas-lights .quote-christmas-offers > header span { color: #07364a; font-size: 21px; }
.quote-public-card.is-christmas-lights .quote-christmas-offers > header small { margin-top: 3px; color: #566954; font-size: 14px; font-weight: 400; }
.quote-public-card.is-christmas-lights .quote-christmas-offer-letter { border-radius: 50%; background: #07364a; }
.quote-public-card.is-christmas-lights .quote-christmas-offer-copy strong { white-space: normal; font-size: 16px; line-height: 1.3; }
.quote-public-card.is-christmas-lights .quote-christmas-offer-copy small { font-size: 12px; line-height: 1.5; -webkit-line-clamp: 3; }
.quote-public-card.is-christmas-lights .quote-christmas-offer-price { color: #07364a; font-size: 24px; padding-top: 6px; }
.quote-christmas-offer-price small { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; line-height: 1.4; }
.quote-public-card.is-christmas-lights .quote-christmas-offer.is-selected { border-color: #078b91; background: #eaf6f4; box-shadow: inset 0 0 0 1px #078b91; }
.quote-public-card.is-christmas-lights .quote-christmas-offer > em { background: #cf183a; font-size: 10px; top: -9px; right: 14px; padding: 4px 9px; }
.quote-public-card.is-christmas-lights .quote-public-section,
.quote-public-card.is-christmas-lights .quote-total-box,
.quote-public-card.is-christmas-lights .quote-public-decision-panel { border-color: #d9e1d2; }
.quote-public-card.is-christmas-lights .quote-public-decision-panel { background: #f2f6ec; }
.quote-public-card.is-christmas-lights .quote-public-decision-panel button { min-height: 48px; white-space: normal; line-height: 1.35; }

@media (max-width: 900px) {
  .quote-public-card.is-christmas-lights .quote-document-top { gap: 20px; padding: 24px; }
  .quote-public-card.is-christmas-lights .quote-christmas-design { margin-inline: 24px; }
  .quote-public-card.is-christmas-lights .quote-christmas-offers { margin-inline: 24px; }
}
@media (max-width: 600px) {
  .quote-public-shell.is-christmas-lights { padding: 10px 8px 28px; }
  .quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal { border-radius: 16px; }
  .quote-public-shell.is-christmas-lights .quote-public-header { grid-template-columns: 1fr; gap: 12px; padding: 24px 20px 20px; }
  .quote-public-shell.is-christmas-lights .quote-public-header > img { width: 200px; height: 72px; }
  .quote-public-shell.is-christmas-lights .quote-public-header h2 { font-size: 20px; }
  .quote-public-card.is-christmas-lights .quote-document-top { grid-template-columns: 1fr; gap: 18px; padding: 20px 16px; }
  .quote-public-card.is-christmas-lights .quote-recipient strong { font-size: 23px; }
  .quote-public-card.is-christmas-lights .quote-number-panel { display: flex; flex-wrap: wrap; }
  .quote-public-card.is-christmas-lights .quote-number-panel h3 { flex: 1 1 100%; font-size: 14px; }
  .quote-public-card.is-christmas-lights .quote-number-panel > div { flex: 1 1 auto; align-items: center; }
  .quote-public-card.is-christmas-lights .quote-number-panel .quote-number-total strong { font-size: 20px; }
  .quote-public-card.is-christmas-lights .quote-christmas-design { margin-inline: 12px; border-radius: 12px; }
  .quote-public-card.is-christmas-lights .quote-christmas-design > header { padding: 12px; }
  .quote-public-card.is-christmas-lights .quote-christmas-design > header h3 { font-size: 14px; }
  .quote-public-card.is-christmas-lights .quote-christmas-offers { margin: 0 16px 22px; }
  .quote-public-card.is-christmas-lights .quote-christmas-offer-copy strong { font-size: 15px; }
  .quote-public-card.is-christmas-lights .quote-christmas-offer-copy small { font-size: 11px; }
  .quote-christmas-carousel-controls { gap: 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .quote-christmas-offer,
  .quote-christmas-design.has-carousel .quote-christmas-design-track { transition: none; }
}
@media print {
  .quote-christmas-carousel-controls, .quote-christmas-carousel-dots { display: none; }
  .quote-public-shell.is-christmas-lights { padding: 0; }
  .quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal { box-shadow: none; }
}

.quote-reference-evidence.is-public {
  margin: 18px 0;
  border-color: #bad8d0;
  background: #f5fbf9;
}

.quote-reference-evidence.is-public > p {
  margin: 0;
  border-top: 1px solid #d9e8e4;
  padding: 10px 12px 0;
  color: #52666c;
  background: #fff;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.45;
}

.quote-reference-evidence [data-quote-reference-media-item] {
  position: relative;
  min-width: 0;
}

.quote-reference-evidence [data-quote-reference-media-item]:focus-visible {
  outline: 3px solid rgba(8, 118, 95, .28);
  outline-offset: 2px;
}

.quote-reference-evidence [data-quote-reference-media-unavailable] {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 4px;
  padding: 14px;
  color: #52666c;
  text-align: center;
}

.quote-reference-evidence [data-quote-reference-media-unavailable][hidden] {
  display: none;
}

.quote-reference-evidence [data-quote-reference-media-unavailable] svg {
  width: 22px;
  height: 22px;
  margin: 0 auto 2px;
}

.quote-reference-evidence [data-quote-reference-media-unavailable] small {
  font-size: .68rem;
  font-weight: 700;
}

.quote-reference-evidence [data-quote-reference-media-item].is-unavailable {
  cursor: default;
}

.schedule-planning-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid #bddbd4;
  border-left: 4px solid #08765f;
  border-radius: 7px;
  padding: 10px;
  background: #f6fbfa;
}

.schedule-planning-workspace.is-loading,
.schedule-planning-workspace.is-unavailable {
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 72px;
}

.schedule-planning-workspace.is-unavailable {
  border-color: #edcf9c;
  border-left-color: #b56c00;
  background: #fffaf1;
}

.schedule-planning-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.schedule-planning-copy > span {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #08765f;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.schedule-planning-copy > span svg {
  width: 14px;
  height: 14px;
}

.schedule-planning-copy > strong {
  color: var(--navy);
  font-size: 18px;
  line-height: 1.15;
}

.schedule-planning-copy p,
.schedule-planning-workspace.is-loading p,
.schedule-planning-workspace.is-unavailable p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.35;
}

.schedule-planning-token {
  display: grid;
  grid-template-columns: 20px 38px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  min-height: 70px;
  border: 1px solid #9fc8bf;
  border-left: 5px solid #08765f;
  border-radius: 6px;
  padding: 8px 10px 8px 6px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(13, 55, 72, .08);
  cursor: grab;
}

.christmas-install-visual {
  display: grid;
  gap: 5px;
  min-width: 0;
  margin: 0;
}

.christmas-install-visual-canvas {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: var(--install-visual-aspect, 16 / 9);
  border: 1px solid #c9d8d5;
  border-radius: 5px;
  background: #071f29;
}

.christmas-install-visual-canvas > img,
.christmas-install-visual-canvas > span,
.christmas-install-visual-canvas > svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.christmas-install-visual-canvas > img {
  display: block;
  object-fit: contain;
}

.christmas-install-visual-canvas > span {
  background: #000;
  pointer-events: none;
}

.christmas-install-visual-canvas > svg {
  overflow: visible;
  pointer-events: none;
}

.christmas-install-visual figcaption {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  color: #35645a;
  font-size: 10px;
  font-weight: 900;
}

.christmas-install-visual figcaption svg {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
}

.christmas-install-visual figcaption span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-planning-token.has-install-visual {
  grid-template-columns: 20px 38px 78px minmax(0, 1fr) auto;
}

.schedule-planning-token .christmas-install-visual {
  width: 78px;
}

.schedule-planning-token.is-unscheduled {
  border-color: #e4bd74;
  border-left-color: #c47b00;
  background: #fffdf8;
}

.schedule-planning-token.is-dragging {
  opacity: .62;
  cursor: grabbing;
}

.schedule-planning-token-grip {
  display: grid;
  place-items: center;
  color: #78918b;
}

.schedule-planning-token-grip svg {
  width: 17px;
  height: 17px;
}

.schedule-planning-token-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 6px;
  color: #fff;
  background: #0a6755;
}

.schedule-planning-token-icon svg {
  width: 20px;
  height: 20px;
}

.schedule-planning-token-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.schedule-planning-token-copy > span {
  color: #08765f;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.schedule-planning-token.is-unscheduled .schedule-planning-token-copy > span {
  color: #a66200;
}

.schedule-planning-token-copy > strong,
.schedule-planning-token-copy > p,
.schedule-planning-token-copy > em {
  overflow-wrap: anywhere;
  white-space: normal;
}

.schedule-planning-token-copy > strong {
  color: var(--navy);
  font-size: 15px;
  font-weight: 950;
}

.schedule-planning-token-copy > p,
.schedule-planning-token-copy > em {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  font-style: normal;
  font-weight: 750;
}

.schedule-planning-token .schedule-assigned-crew {
  justify-content: flex-end;
  max-width: 170px;
}

.schedule-planning-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 6px;
}

.schedule-planning-actions .button {
  min-height: 42px;
  padding: 8px 12px;
  font-size: 12px;
  white-space: normal;
}

.schedule-planning-actions .button svg {
  width: 15px;
  height: 15px;
}

.schedule-planning-options { grid-column: 1 / -1; min-width: 0; }
.schedule-planning-options summary { min-height: 36px; padding: 8px 0; color: #45675e; font-size: 12px; cursor: pointer; }
.schedule-planning-options .schedule-planning-scope { justify-content: flex-start; flex-wrap: wrap; padding: 8px 0; }
.schedule-view.is-planning-job :is(.schedule-create-control, .schedule-head-add, [data-action="toggle-schedule-unscheduled"], .schedule-sync-trigger) { display: none; }
.schedule-planning-filters > summary { min-height: 40px; display: flex; align-items: center; cursor: pointer; font-weight: 700; color: #375b55; }
.schedule-planning-filters[open] { grid-column: 1 / -1; }
.schedule-planning-filters[open] .schedule-command-filters { padding-block: 8px; }

.schedule-planning-scope {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  margin-top: -3px;
}

.schedule-planning-scope > span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.schedule-planning-scope button {
  min-height: 27px;
  border: 1px solid #c9d8d5;
  border-radius: 999px;
  padding: 4px 9px;
  color: #375b55;
  background: #fff;
  font-size: 10px;
  font-weight: 900;
}

.schedule-planning-scope button.is-active {
  border-color: #0b6a57;
  color: #fff;
  background: #0b6a57;
}

.schedule-dispatch-head-actions {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 6px !important;
}

.schedule-dispatch-head-actions .button {
  min-height: 31px;
  padding: 5px 8px;
  font-size: 10px;
}

.schedule-planning-map-overlay .job-map-marker.is-planning-destination {
  width: 44px;
  height: 44px;
  border-width: 4px;
  background: #d7193f;
  opacity: 0;
  box-shadow: 0 0 0 5px rgba(215, 25, 63, .2), 0 12px 24px rgba(76, 7, 22, .36);
  transform: rotate(-45deg) scale(.78);
  transition: opacity 120ms ease, transform 140ms ease;
}

.schedule-planning-map-overlay .job-map-marker.is-planning-destination::before {
  content: "";
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(70, 0, 14, .32);
}

.schedule-planning-map-overlay.is-visible .job-map-marker.is-planning-destination,
.schedule-planning-map-overlay .job-map-marker.is-planning-destination.is-preview-visible {
  opacity: 1;
  transform: rotate(-45deg) scale(1);
}

@media (max-width: 1180px) {
  .schedule-planning-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .schedule-planning-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .schedule-planning-workspace,
  .schedule-planning-workspace.is-loading,
  .schedule-planning-workspace.is-unavailable {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 9px;
  }

  .schedule-planning-copy p {
    display: none;
  }

  .schedule-planning-token {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 62px;
    cursor: pointer;
  }

  .schedule-planning-token.has-install-visual {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .schedule-planning-token.has-install-visual .schedule-planning-token-icon {
    display: none;
  }

  .schedule-planning-token-grip {
    display: none;
  }

  .schedule-planning-token-icon {
    width: 34px;
    height: 34px;
  }

  .schedule-planning-token .schedule-assigned-crew {
    grid-column: 1 / -1;
    justify-content: flex-start;
    max-width: none;
  }

  .schedule-planning-actions {
    grid-column: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .schedule-planning-actions .button {
    min-height: 40px;
    white-space: normal;
  }

  .schedule-planning-scope {
    grid-column: auto;
    justify-content: flex-start;
  }
}

.christmas-install-page {
  --install-green: #0d604b;
  --install-red: #bd2f43;
  --install-ink: #14324a;
  --install-border: #cfdae3;
  display: grid;
  gap: 12px;
  max-width: 1480px;
  margin: 0 auto;
  padding: 12px;
}

.christmas-install-head {
  display: grid;
  grid-template-columns: 44px 46px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--install-border);
  border-top: 4px solid var(--install-green);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 8px rgb(20 50 74 / 7%);
}

.christmas-install-head-icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  background: var(--install-green);
}

.christmas-install-head > div:not(.christmas-install-head-actions) { min-width: 0; }
.christmas-install-head > div > span,
.christmas-install-section header span {
  display: block;
  color: #607286;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}
.christmas-install-head h2 { margin: 2px 0; color: var(--install-ink); font-size: 22px; line-height: 1.1; }
.christmas-install-head p { overflow: hidden; margin: 0; color: #607286; text-overflow: ellipsis; white-space: nowrap; }
.christmas-install-head-actions { display: flex; align-items: center; gap: 8px; }

.christmas-install-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .72fr);
  align-items: start;
  gap: 12px;
}

.christmas-install-main,
.christmas-install-rail { display: grid; gap: 12px; min-width: 0; }
.christmas-install-rail { position: sticky; top: 12px; grid-column: 2; grid-row: 1; }
.christmas-install-main { grid-column: 1; grid-row: 1; }
.christmas-install-save-owner { width: 100%; margin-top: 12px; }
.christmas-install-job-numbers { min-width: 0; }
.christmas-install-job-numbers > .christmas-production-economics { box-shadow: 0 2px 8px rgb(20 50 74 / 5%); }

.christmas-install-section,
.christmas-install-card {
  min-width: 0;
  border: 1px solid var(--install-border);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 8px rgb(20 50 74 / 5%);
}

.christmas-install-section { padding: 14px; }
.christmas-install-section > header,
.christmas-install-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.christmas-install-section h3,
.christmas-install-card h3 { margin: 0; color: var(--install-ink); font-size: 17px; }
.christmas-install-section header b { color: var(--install-green); font-size: 13px; }

.christmas-install-mockup {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: var(--install-design-aspect);
  margin: 0;
  border-radius: 4px;
  background: #071922;
}
.christmas-install-mockup > img,
.christmas-install-mockup > svg,
.christmas-install-mockup-dim { position: absolute; inset: 0; width: 100%; height: 100%; }
.christmas-install-mockup > img { object-fit: contain; }
.christmas-install-mockup > svg { pointer-events: none; }
.christmas-install-mockup-dim { background: #001018; }
.christmas-install-mockup figcaption {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 9px;
  border-radius: 4px;
  color: #fff;
  background: rgb(3 31 38 / 86%);
  font-size: 12px;
  font-weight: 800;
}
.christmas-install-mockup figcaption svg { width: 15px; height: 15px; color: #61d5b3; }

.christmas-install-material-list { display: grid; border-top: 1px solid #dce5eb; }
.christmas-install-material-scope { display: grid; border-bottom: 1px solid #dce5eb; }
.christmas-install-material-scope > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
  min-width: 0;
  margin: 0;
  padding: 11px 2px 8px;
}
.christmas-install-material-scope > header span,
.christmas-install-material-scope p > span { display: grid; gap: 2px; min-width: 0; }
.christmas-install-material-scope > header strong { color: var(--install-ink); font-size: 16px; }
.christmas-install-material-scope small { overflow-wrap: anywhere; color: #607286; font-size: 12px; line-height: 1.35; }
.christmas-install-material-scope > div { display: grid; padding-bottom: 8px; }
.christmas-install-material-scope p {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 45px;
  margin: 0;
  padding: 6px 8px;
  border-top: 1px solid #edf2f5;
}
.christmas-install-material-scope p strong { color: var(--install-ink); }
.christmas-install-material-scope p b { color: var(--install-green); white-space: nowrap; }

.christmas-install-warehouse { margin-top: 12px; border: 1px solid #dce5eb; border-radius: 4px; }
.christmas-install-warehouse > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 10px;
  cursor: pointer;
  list-style: none;
  color: var(--install-ink);
  background: #f5f8fa;
}
.christmas-install-warehouse > summary::-webkit-details-marker { display: none; }
.christmas-install-warehouse > summary span { display: flex; align-items: center; gap: 8px; }
.christmas-install-warehouse > summary em { color: #607286; font-size: 12px; font-style: normal; font-weight: 800; }
.christmas-install-warehouse[open] > summary > svg { transform: rotate(180deg); }
.christmas-install-warehouse-body { display: grid; gap: 12px; padding: 12px; }

.christmas-install-notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.christmas-install-notes-grid label,
.christmas-install-card > label { display: grid; gap: 5px; min-width: 0; color: #566a7d; font-size: 12px; font-weight: 850; }
.christmas-install-notes-grid textarea { min-height: 112px; resize: vertical; }
.christmas-install-notes-grid textarea,
.christmas-install-card input:not([type="checkbox"]),
.christmas-install-card select {
  width: 100%;
  border: 1px solid #c8d5df;
  border-radius: 4px;
  color: #16334a;
  background: #fff;
  font: inherit;
}
.christmas-install-notes-grid textarea { padding: 10px; }
.christmas-install-card input:not([type="checkbox"]),
.christmas-install-card select { min-height: 42px; padding: 8px 9px; }

.christmas-install-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.christmas-install-photo-grid a { overflow: hidden; min-width: 0; border: 1px solid #d5e0e7; border-radius: 4px; color: var(--install-ink); background: #f7fafb; text-decoration: none; }
.christmas-install-photo-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.christmas-install-photo-grid span { display: block; overflow: hidden; padding: 7px; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }

.christmas-install-card { padding: 13px; }
.christmas-install-card > header { justify-content: flex-start; padding-bottom: 8px; border-bottom: 1px solid #e2e9ee; }
.christmas-install-card > header > svg { width: 19px; color: var(--install-green); }
.christmas-install-card.is-customer > strong { display: block; color: var(--install-ink); font-size: 18px; }
.christmas-install-card.is-customer > p { margin: 4px 0 10px; color: #607286; line-height: 1.4; }
.christmas-install-card.is-customer > div { display: grid; gap: 5px; }
.christmas-install-card.is-customer a { display: flex; align-items: center; gap: 7px; min-width: 0; color: #174b72; font-size: 13px; font-weight: 750; overflow-wrap: anywhere; text-decoration: none; }
.christmas-install-card.is-customer a svg { width: 16px; height: 16px; flex: 0 0 auto; }
.christmas-install-card.is-customer details { margin-top: 10px; color: #607286; font-size: 13px; }
.christmas-install-card.is-customer details p { white-space: pre-wrap; }

.christmas-install-card > label { margin-top: 9px; }
.christmas-install-timing-help { margin: 10px 0 0; color: #607286; font-size: 11px; line-height: 1.45; }
.christmas-install-save-state { margin: 0; padding: 0 4px 12px; color: #607286; font-size: 12px; line-height: 1.4; }

.christmas-install-empty { display: grid; min-height: 240px; place-items: center; align-content: center; gap: 7px; padding: 24px; color: #607286; text-align: center; background: #f5f8fa; }
.christmas-install-empty > svg { width: 28px; height: 28px; color: var(--install-green); }
.christmas-install-empty > strong { color: var(--install-ink); }
.christmas-install-empty.compact { min-height: 100px; }
.christmas-install-muted { margin: 8px 0; color: #607286; font-size: 13px; }

.christmas-install-schedule-link {
  display: grid;
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
  grid-template-columns: 22px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 9px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid #9bc5ba;
  border-radius: 5px;
  color: #0b5947;
  background: #eef9f5;
  text-decoration: none;
}
.christmas-install-schedule-link > svg { width: 18px; height: 18px; }
.christmas-install-schedule-link span { display: grid; gap: 2px; }
.christmas-install-schedule-link strong { font-size: 13px; }
.christmas-install-schedule-link em { color: #58766e; font-size: 11px; font-style: normal; }
.christmas-install-dispatch-state { margin-top: 10px; }
.christmas-install-internal-team { display: grid; gap: 7px; margin-top: 10px; }
.christmas-install-internal-team > span { color: #566a7d; font-size: 12px; font-weight: 850; }
.christmas-install-member-list {
  display: grid;
  gap: 7px;
  max-height: 230px;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 1px 3px 1px 1px;
  scrollbar-gutter: stable;
}
.christmas-install-card label.christmas-install-member {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #cfdae3;
  border-radius: 5px;
  box-sizing: border-box;
  color: var(--install-ink);
  background: #fff;
  cursor: pointer;
}
.christmas-install-card label.christmas-install-member:hover { border-color: #8fb7aa; background: #f7fbfa; }
.christmas-install-card label.christmas-install-member:has(input:checked) { border-color: #2b826c; background: #eef8f5; }
.christmas-install-card .christmas-install-member input[type="checkbox"] {
  position: static;
  display: block;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  max-height: 18px;
  margin: 0;
  padding: 0;
  accent-color: var(--install-green);
}
.christmas-install-member-copy { display: grid; gap: 2px; min-width: 0; }
.christmas-install-member-copy strong,
.christmas-install-member-copy em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.christmas-install-member-copy strong { color: var(--install-ink); font-size: 13px; line-height: 1.25; }
.christmas-install-member-copy em { color: #657786; font-size: 10px; font-style: normal; font-weight: 850; line-height: 1.25; text-transform: uppercase; }
.christmas-install-partner-note { margin: 10px 0 0; padding: 9px; border-left: 3px solid #dc263f; color: #74424a; background: #fff2f3; font-size: 12px; line-height: 1.45; }

.christmas-dispatch-badge {
  display: inline-grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  max-width: 100%;
  padding: 7px 8px;
  border: 1px solid #cfdae3;
  border-radius: 5px;
  color: #17364e;
  background: #f5f8fa;
}
.christmas-dispatch-badge > svg { width: 17px; height: 17px; }
.christmas-dispatch-badge > span { display: grid; min-width: 0; }
.christmas-dispatch-badge strong,
.christmas-dispatch-badge em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.christmas-dispatch-badge strong { font-size: 12px; }
.christmas-dispatch-badge em { color: #657786; font-size: 10px; font-style: normal; }
.christmas-dispatch-badge.is-compact { padding: 4px 6px; }
.christmas-dispatch-badge.is-compact em { display: none; }
.christmas-dispatch-badge.is-internal { border-color: #c5b5ed; color: #55328e; background: #f2edff; }
.christmas-dispatch-badge.is-partner-ready { border-color: #e3475d; color: #8c1025; background: #ffe5e8; }
.christmas-dispatch-badge.is-partner-pending { border-color: #e9b7bd; color: #9d2437; background: #fff3f4; }
.christmas-dispatch-badge.is-unassigned { border-color: #e7c66d; color: #765400; background: #fff9e8; }

.schedule-view .is-christmas-internal { border-left-color: #7048b7 !important; background: #f1ecfb !important; }
.schedule-view .is-christmas-partner-pending { border-left-color: #d66f7d !important; background: #fff3f4 !important; }
.schedule-view .is-christmas-partner-ready { border-left-color: #cf1634 !important; background: #ffe3e7 !important; }
.schedule-view .is-christmas-unassigned { border-left-color: #d3a72b !important; background: #fff8df !important; }
.schedule-job-sheet-card.is-christmas-internal { border-top-color: #7048b7; }
.schedule-job-sheet-card.is-christmas-partner-pending { border-top-color: #d66f7d; }
.schedule-job-sheet-card.is-christmas-partner-ready { border-top-color: #cf1634; }
.schedule-job-sheet-card.is-christmas-unassigned { border-top-color: #d3a72b; }
.schedule-assigned-crew > .christmas-dispatch-badge { flex: 0 1 auto; }
.schedule-time-job .christmas-dispatch-badge,
.schedule-resource-job .christmas-dispatch-badge { max-width: 100%; }
.map-job-card.is-christmas-partner-pending { border-left: 4px solid #d66f7d; background: #fff3f4; }
.map-job-card.is-christmas-partner-ready { border-left: 4px solid #cf1634; background: #ffecef; }
.map-job-card.is-christmas-internal { border-left: 4px solid #7048b7; background: #f4f0fc; }
.job-map-marker.is-christmas-partner-pending { background: #d66f7d !important; }
.job-map-marker.is-christmas-partner-ready { background: #cf1634 !important; }
.job-map-marker.is-christmas-internal { background: #7048b7 !important; }
.legend-dot.is-christmas-internal { background: #7048b7; }
.legend-dot.is-christmas-partner-pending { background: #d66f7d; }
.legend-dot.is-christmas-partner-ready { background: #cf1634; }

.christmas-dispatch-editor { width: min(560px, calc(100vw - 24px)); }
.christmas-dispatch-choices { display: grid; gap: 8px; }
.christmas-dispatch-choices label { cursor: pointer; }
.christmas-dispatch-choices input { position: absolute; opacity: 0; pointer-events: none; }
.christmas-dispatch-choices label > span {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 2px 9px;
  padding: 11px;
  border: 1px solid #cbd7df;
  border-radius: 5px;
  background: #fff;
}
.christmas-dispatch-choices label > span > svg { grid-row: 1 / 3; width: 20px; color: #496579; }
.christmas-dispatch-choices label > span > strong { color: #17364e; }
.christmas-dispatch-choices label > span > em { color: #657786; font-size: 12px; font-style: normal; }
.christmas-dispatch-choices input:checked + span { border-color: #0d604b; outline: 2px solid rgb(13 96 75 / 14%); background: #eef9f5; }
.christmas-dispatch-current { display: grid; gap: 5px; margin-top: 10px; padding: 10px; border-radius: 5px; background: #f4f7f9; }
.christmas-dispatch-current small { color: #657786; }

@media (max-width: 1020px) {
  .christmas-install-layout { grid-template-columns: 1fr; }
  .christmas-install-rail { position: static; grid-column: 1; grid-row: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .christmas-install-main { grid-column: 1; grid-row: 2; }
  .christmas-install-save-state { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .christmas-install-page { padding: 7px; }
  .christmas-install-head { grid-template-columns: 40px 40px minmax(0, 1fr) auto; gap: 8px; padding: 9px; }
  .christmas-install-head-icon { width: 40px; height: 40px; }
  .christmas-install-head > .crm-status { display: none; }
  .christmas-install-head h2 { font-size: 18px; }
  .christmas-install-head p { font-size: 12px; }
  .christmas-install-head-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 44px 44px minmax(0, 1fr); }
  .christmas-install-head-actions .button { justify-content: center; }
  .christmas-install-section { padding: 10px; }
  .christmas-install-rail { grid-template-columns: 1fr; }
  .christmas-install-notes-grid { grid-template-columns: 1fr; }
  .christmas-install-mockup figcaption { right: 6px; bottom: 6px; padding: 5px 7px; font-size: 10px; }
  .christmas-install-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .christmas-install-material-scope p { grid-template-columns: 1fr; gap: 4px; }
  .christmas-install-material-scope p b { white-space: normal; }
  .christmas-dispatch-badge em { display: none; }
}

/* Fit the document to the available customer-portal column, including iPads. */
.quote-public-card.is-christmas-lights { container-type: inline-size; --quote-gutter: 24px; }
.quote-public-card.is-christmas-lights .quote-christmas-offer-copy strong { overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.quote-public-card.is-christmas-lights .quote-christmas-design-eyebrow { display: block; margin-bottom: 6px; color: #e9c77d; font-size: 12px; letter-spacing: .04em; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header h3 { margin: 0; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header { position: relative; display: flex; gap: 14px; align-items: center; background: radial-gradient(ellipse at top right, #087580, transparent 70%), #002c40; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header::after { content: ""; position: absolute; inset: 0 0 auto; height: 7px; background: radial-gradient(ellipse, #ffcf68 0 2px, transparent 3px) 0 0 / 24px 7px repeat-x; pointer-events: none; }
.quote-public-card.is-christmas-lights .quote-christmas-brand-mark { display: block; flex: 0 0 72px; width: 72px; height: 72px; object-fit: contain; }
.quote-public-card.is-christmas-lights .quote-christmas-design > header > div { min-width: 0; }
.quote-public-card.is-christmas-lights .quote-terms.is-public-terms { border: 1px solid #d6e1df; border-radius: 12px; background: #fffdf7; }
.quote-public-card.is-christmas-lights .quote-terms.is-public-terms summary { min-height: 48px; padding: 15px 16px; color: #244f38; font-weight: 700; cursor: pointer; }
.quote-public-card.is-christmas-lights .quote-terms-body { padding: 16px; font-size: 14px; line-height: 1.6; }
.quote-public-card.is-christmas-lights .quote-terms-body p { line-height: 1.6; }
/* A single, readable sequence from price through approval. */
.quote-public-card.is-christmas-lights :is(.quote-total-box, .quote-deposit-customer-panel, .quote-public-change-panel, .quote-terms.is-public-terms, .quote-public-notes, .quote-public-payment-schedule, .quote-public-decision-panel) { width: calc(100% - var(--quote-gutter) * 2); margin: 0 var(--quote-gutter) 16px; justify-self: stretch; }
.quote-public-card.is-christmas-lights .quote-total-box { border-radius: 12px; }
.quote-public-card.is-christmas-lights .quote-total-box > div { grid-template-columns: minmax(0, 1fr) auto; padding: 0 16px; }
.quote-public-card.is-christmas-lights .quote-total-box span { justify-self: start; padding-right: 12px; color: #506574; font-size: 14px; font-weight: 500; }
.quote-public-card.is-christmas-lights .quote-total-box strong { padding: 0; border-left: 0; font-size: 16px; color: #07364a; }
.quote-public-card.is-christmas-lights .quote-total-box > div:last-child { border-top: 1px solid #d6e1df; background: #f1f7f5; }
.quote-public-card.is-christmas-lights .quote-total-box > div:last-child span { color: #07364a; font-weight: 750; }
.quote-public-card.is-christmas-lights .quote-deposit-customer-panel { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 18px; border: 1px solid #bbd9d6; border-radius: 12px; padding: 20px; background: #edf7f5; }
.quote-public-card.is-christmas-lights .quote-deposit-customer-panel .invoice-public-pay-main > strong { color: #07364a; font-size: 30px; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown { grid-template-columns: 1fr; border: 0; border-radius: 0; background: transparent; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown > div { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 9px 0; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown > div + div { border-left: 0; border-top: 1px solid #cce0dc; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown span { text-transform: none; font-size: 12px; font-weight: 500; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown strong { font-size: 15px; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown .is-due-now { background: transparent; }
.quote-public-card.is-christmas-lights .quote-deposit-breakdown > small { grid-column: 1; padding: 9px 0 0; font-weight: 500; }
.quote-public-card.is-christmas-lights .quote-public-change-request { border-color: #d6e1df; border-radius: 12px; background: #fffdf7; }
.quote-public-card.is-christmas-lights .quote-public-change-request summary { list-style: none; min-height: 48px; padding: 15px 16px; color: #07364a; background: transparent; text-align: left; font-weight: 700; }
.quote-public-card.is-christmas-lights .quote-public-change-request summary::after { content: "+"; float: right; font-size: 18px; }
.quote-public-card.is-christmas-lights .quote-public-change-request[open] summary::after { content: "−"; }
.quote-public-card.is-christmas-lights .quote-public-message:empty { display: none; }
.quote-public-card.is-christmas-lights .quote-public-decision-panel { border: 1px solid #ccdeda; border-top: 3px solid #d9223f; border-radius: 12px; padding: 24px; margin-bottom: 24px; background: #f1f7f5; }
.quote-public-card.is-christmas-lights .quote-public-decision { min-width: 0; gap: 16px; }
.quote-public-card.is-christmas-lights .quote-public-decision-actions .button.primary { font-size: 18px; border-radius: 10px; background: #078b50; box-shadow: none; }
.quote-public-card.is-christmas-lights .quote-approval-copy { max-width: 600px; color: #506574; font-size: 12px; font-weight: 400; line-height: 1.6; }
@container (max-width: 640px) {
  .quote-public-card.is-christmas-lights > * { --quote-gutter: 16px; }
  .quote-christmas-offers[data-public-christmas-offer-carousel] .quote-christmas-offer-grid { display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding: 10px 0 8px; scrollbar-width: thin; scrollbar-color: #8dbcb5 transparent; }
  .quote-christmas-offers[data-public-christmas-offer-carousel] .quote-christmas-offer { flex: 0 0 86%; scroll-snap-align: center; grid-template-columns: 34px minmax(0, 1fr); min-height: 165px; padding: 20px 14px 14px; }
  .quote-public-card.is-christmas-lights .quote-christmas-offer-copy { grid-column: 2; grid-row: 1; }
  .quote-public-card.is-christmas-lights .quote-christmas-offer-price { grid-column: 2; grid-row: 2; font-size: 23px; padding-top: 8px; }
  .quote-public-card.is-christmas-lights .quote-christmas-brand-mark { flex-basis: 56px; width: 56px; height: 56px; }
  .quote-public-card.is-christmas-lights .quote-deposit-customer-panel { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .quote-public-card.is-christmas-lights .quote-public-decision-panel { padding: 16px; }

  .quote-public-card.is-christmas-lights .quote-document-top { grid-template-columns: 1fr; gap: 16px; }
}
@media (min-width: 761px) and (max-width: 1024px) {
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-layout { grid-template-columns: 1fr; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-sidebar { display: none; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-mobile-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 6px 16px; border-bottom: 1px solid #d9e2d2; background: #f8faf2; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-mobile-nav .client-hub-nav-button { min-height: 48px; justify-content: center; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-content { padding: 20px; }
}
@media print {
  .quote-public-card.is-christmas-lights details.quote-terms::details-content { content-visibility: visible; display: block; }
  .quote-public-card.is-christmas-lights .quote-terms-body { display: grid; }
}

.quote-christmas-design-fallback > [data-quote-prepared-image] { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }

.quote-christmas-offer-grid[hidden] { display: none !important; }
.quote-public-card.is-christmas-lights .quote-christmas-design-slide > .quote-christmas-offer {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px;
  width: 100%; min-height: 126px; margin: 0; padding: 22px 24px; border: 0; border-radius: 0;
  background: #fffdf7; box-shadow: none; color: #07364a;
}
.quote-public-card.is-christmas-lights .quote-christmas-design-slide > .quote-christmas-offer.is-selected { background: #fff5d9; box-shadow: inset 0 3px #e9bd59; }
.quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-offer-copy { grid-column: 2; grid-row: 1; }
.quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-offer-price { grid-column: 3; grid-row: 1; padding: 0; white-space: nowrap; }
.quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-offer > em { top: 0; }
@container (max-width: 640px) {
  .quote-public-card.is-christmas-lights .quote-christmas-design-slide > .quote-christmas-offer { grid-template-columns: 34px minmax(0, 1fr); padding: 18px 16px; }
  .quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-offer-price { grid-column: 2; grid-row: 2; }
}

/* Let the customer design fill the page; keep reading and actions comfortably inset. */
@media screen {
  body.is-public-route:has(.quote-public-card.is-christmas-lights) #app { max-width: none; padding: 0; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-layout { grid-template-columns: minmax(0, 1fr); }
  .client-hub:has(.quote-public-card.is-christmas-lights) :is(.client-hub-sidebar, .client-hub-mobile-nav) { display: none; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-content { padding: 0; background: #fffcf5; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-document-heading {
    align-items: center; margin: 0; padding: 16px max(20px, var(--safe-right)) 16px max(20px, var(--safe-left));
    background: #fffcf5;
  }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-topbar {
    min-height: 72px; padding-block: max(8px, var(--safe-top)) 8px;
  }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-brand img { width: 56px; height: 56px; }
  .quote-public-shell.is-christmas-lights:has(.is-public-portal) { max-width: none; margin: 0; padding: 0; gap: 0; }
  .quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal {
    --quote-fullscreen-gutter: max(20px, 4vw, var(--safe-left), var(--safe-right));
    --quote-reading-width: 1000px;
    --quote-gutter: var(--quote-fullscreen-gutter); border: 0; border-radius: 0; box-shadow: none; padding: 0 0 max(28px, var(--safe-bottom));
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-document-top { padding: 20px var(--quote-fullscreen-gutter) 28px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-document-top.has-package-layout { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
  .quote-document-top.has-package-layout .quote-recipient { grid-column: 1; grid-row: 1; min-width: 0; }
  .quote-document-top.has-package-layout .christmas-quote-music { grid-column: 2; grid-row: 1; margin: 0; white-space: nowrap; }
  [data-public-quote-project-title]:focus { outline: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design { margin: 0 0 24px; border: 0; border-radius: 0; background: #021720; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design > header { padding: 16px var(--quote-fullscreen-gutter); border-bottom: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .christmas-view-figure { border-radius: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design .quote-christmas-design-canvas {
    width: 100%; max-height: none; margin: 0; border-radius: 0;
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-slide + .quote-christmas-design-slide::before { content: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-slide-label { padding-inline: var(--quote-fullscreen-gutter); }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-slide > .quote-christmas-offer { padding-inline: var(--quote-fullscreen-gutter); }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-christmas-offers, .quote-total-box, .quote-deposit-customer-panel, .quote-public-change-panel, .quote-terms.is-public-terms, .quote-public-notes, .quote-public-payment-schedule, .quote-public-decision-panel) {
    width: min(var(--quote-reading-width), calc(100% - var(--quote-fullscreen-gutter) * 2)); margin-inline: auto;
  }
}

@media screen and (width >= 1025px) {
  .quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal { --quote-reading-width: 1120px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design {
    width: min(1280px, calc(100% - var(--quote-fullscreen-gutter) * 2)); margin-inline: auto; border-radius: 16px;
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design > header,
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-slide > .quote-christmas-offer { padding-inline: 24px; }
}

.quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary,
.quote-public-card.is-public-portal.is-christmas-lights > .quote-number-panel { width: min(var(--quote-reading-width, 1000px), calc(100% - var(--quote-fullscreen-gutter, 24px) * 2)); margin: 0 auto 20px; }
.quote-package-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding: 26px; border: 1px solid #d3bd7d; border-radius: 16px; background: linear-gradient(125deg, #073b48, #0c5356); color: #fff9e9; }
.quote-package-summary > div { min-width: 0; }
.quote-package-summary span { display: block; margin-bottom: 6px; color: #efd59a; font-size: 13px; letter-spacing: .02em; }
.quote-package-summary h3 { margin: 0; color: inherit; font-size: clamp(23px, 4vw, 30px); line-height: 1.25; overflow-wrap: anywhere; }
.quote-package-summary-total strong { color: #fff9e9; font-size: clamp(28px, 5vw, 36px); line-height: 1.2; white-space: nowrap; }
.quote-package-summary.is-awaiting-selection { background: #edf3f0; border-color: #d3e0db; color: #073b48; }
.quote-package-summary.is-awaiting-selection :is(span, strong) { color: #486568; }
.quote-public-card.is-public-portal.is-christmas-lights > .quote-number-panel { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; background: #f5f7f0; }
.quote-public-card.is-public-portal.is-christmas-lights > .quote-number-panel h3 { flex: 1 1 auto; padding: 14px 16px; background: transparent; }
.quote-public-card.is-public-portal.is-christmas-lights > .quote-number-panel > div { flex: 0 1 auto; padding: 14px 16px; background: transparent; }
@media (max-width: 600px) {
  .quote-package-summary { padding: 22px 20px; gap: 18px; }
  .quote-package-summary-total { flex-basis: 100%; border-top: 1px solid #e9d49a45; padding-top: 16px; }
  .quote-document-top.has-package-layout .christmas-quote-music { padding-inline: 9px; font-size: 11px; }
}

.quote-christmas-offers.has-paired-packages > header { display: none; }
.quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design > header h3 { font-size: clamp(22px, 4vw, 28px); }

/* A continuous night scene for the customer quote; printed documents keep their ink styling. */
@media screen {
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-reference-evidence, .quote-public-section) {
    width: min(var(--quote-reading-width, 1120px), calc(100% - var(--quote-fullscreen-gutter, 24px) * 2)); margin: 0 auto 24px; padding: 0;
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence { border-color: #365057; border-radius: 16px; background: #0b2832; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence > summary { padding: 16px; color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence > summary :is(svg, em) { color: #efd59a; background: transparent; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence > p { padding: 12px 16px; border-color: #365057; background: #0b2832; color: #b9ccca; font-weight: 400; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence > div { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; gap: 12px; border-color: #365057; background: #021720; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence a { background: #021720; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence a:first-child { grid-column: 1 / -1; aspect-ratio: auto; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence a.is-unavailable { min-height: 180px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence [data-quote-reference-media-unavailable] { background: #0b2832; color: #fff9e9; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence [data-quote-reference-media-unavailable] :is(small, svg) { color: #b9ccca; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-reference-evidence a:first-child img { height: auto; max-height: 70svh; object-fit: contain; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-product-table.is-public-list { padding: 0; border-color: #365057; background: transparent; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-product-table.is-public-list .quote-public-line-row { border-color: #365057; background: #173a3c; box-shadow: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-product-table.is-public-list .quote-public-line-desc { color: #b9ccca; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-line-inclusion-status.is-included { color: #efd59a; }
  html:has(body.is-public-route .quote-public-card.is-christmas-lights),
  body.is-public-route:has(.quote-public-card.is-christmas-lights) { background: #021720; color-scheme: dark; }
  .client-hub:has(.quote-public-card.is-christmas-lights) {
    --deep: #fff9e9; --navy: #efd59a; --ink: #fff9e9; --muted: #b9ccca; --slate: #b9ccca;
    min-height: 100dvh; color: #fff9e9; background: #021720;
  }
  .client-hub:has(.quote-public-card.is-christmas-lights) :is(.client-hub-content, .client-hub-document-heading, .client-hub-topbar) { background: #021720; border-color: #29434a; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-brand img:is([src$="/assets/kinda-nice-raccoon-badge-256.png"], [src$="/assets/kinda-nice-raccoon-badge-512.png"]) { content: url("../kinda-nice-raccoon-badge-cutout-v1.png"); }
  .client-hub:has(.quote-public-card.is-christmas-lights) :is(.client-hub-back-button, .client-hub-top-actions .button, .client-hub-top-actions .icon-button, .client-hub-contact-menu) { background: #103139; color: #efd59a; border-color: #456064; }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-contact-menu a:hover { background: #1b4548; }
  .quote-public-shell.is-christmas-lights .quote-public-card.is-public-portal {
    --quote-holiday-ink: #fff9e9; --deep: #fff9e9; --navy: #efd59a; --ink: #fff9e9; --muted: #b9ccca; --slate: #b9ccca;
    background: #021720; color: #fff9e9; color-scheme: dark;
  }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-public-header, .quote-christmas-offer, .quote-number-panel, .quote-number-panel h3, .quote-number-panel > div, .quote-total-box, .quote-deposit-customer-panel, .quote-public-decision-panel, .quote-public-change-request, .quote-terms.is-public-terms, .quote-public-payment-schedule) {
    background: #0b2832; border-color: #365057;
  }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-public-header h2, .quote-recipient strong, .quote-number-panel h3, .quote-number-panel strong, .quote-christmas-offer-copy strong, .quote-total-box strong, .invoice-public-pay-main > strong, .quote-deposit-breakdown strong, .quote-public-change-request summary, .quote-terms summary, .quote-public-notes h3, .quote-terms h3, .quote-public-payment-row strong) { color: #fff9e9; }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-public-header p, .quote-recipient p, .quote-recipient em, .quote-number-panel span, .quote-christmas-offer-copy small, .quote-christmas-offers > header small, .quote-total-box span, .quote-deposit-breakdown span, .quote-deposit-breakdown small, .invoice-public-pay-main > span, .invoice-public-pay-main small, .quote-approval-copy, .quote-public-notes p, .quote-terms p, .quote-public-footer span, .quote-public-payment-row small) { color: #b9ccca; }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-recipient > span, .quote-christmas-offer-price, .quote-christmas-offers > header span) { color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-christmas-offer.is-selected, .quote-total-box > div:last-child) { background: #173a3c; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-offers.has-single .quote-christmas-offer-grid { background: #173a3c; border-color: #e9bd59; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-offers.has-single .quote-christmas-offer.is-selected { box-shadow: inset 0 0 0 1px #e9bd59; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-total-box > div:last-child span { color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-total-box > div:last-child, .quote-deposit-breakdown > div + div) { border-color: #365057; }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-total-discount-group, .quote-total-discount-row) { background: #173a3c; border-color: #365057; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-total-discount-row span { color: #fff9e9; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-total-discount-row strong { color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-public-notes.is-payment-context { margin-block: 24px 12px; padding: 0; border: 0; background: #021720; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-public-notes.is-payment-context p { margin: 0; color: #fff9e9; line-height: 1.5; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-offer-letter { background: #efd59a; color: #08262e; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-public-change-request textarea { background: #021720; color: #fff9e9; border-color: #456064; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-public-change-request textarea::placeholder { color: #a9bfbe; }
  .quote-public-card.is-public-portal.is-christmas-lights .button.secondary { background: #103139; color: #efd59a; border-color: #708263; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary.is-awaiting-selection { background: #103139; color: #fff9e9; border-color: #708263; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary.is-awaiting-selection :is(span, strong) { color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls { gap: 16px; color: #cbd8cf; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-viewport { background: #021720; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls button {
    position: relative; width: 64px; height: 64px; flex-basis: 64px; border: 1px solid #efd59a80;
    color: #ffe3a0; background: #102c2c40; opacity: .7;
    padding: 0; line-height: 1; box-shadow: 0 2px 10px #0002;
    transition: opacity 160ms ease, background-color 160ms ease, border-color 160ms ease;
  }
  .quote-christmas-carousel-controls button svg { width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 2px #00101580); }
  @media (hover: hover) and (pointer: fine) {
    .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls button:hover { opacity: 1; background: #285144; border-color: #ffe3a0; }
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls button:is(:active, :focus-visible) { opacity: 1; background: #285144; border-color: #ffe3a0; }
  @media (prefers-reduced-motion: reduce) {
    .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls button { transition: none; }
  }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-controls button:focus-visible { outline: 3px solid #ffe3a0; outline-offset: 3px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-dots button { background: #103139; color: #efd59a; border: 1px solid #708263; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-dots button:hover { border-color: #ffe3a0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-carousel-dots button.is-active { background: #efd59a; color: #08262e; border-color: #efd59a; box-shadow: 0 0 0 3px #021720, 0 0 0 4px #d5b96e; }
}

/* One compact selection and checkout flow; preserve the complete printed document. */
@media screen {
  .quote-public-card.is-public-portal.is-christmas-lights { --quote-flow-gap: 20px; row-gap: var(--quote-flow-gap); }
  .client-hub:has(.quote-public-card.is-christmas-lights) .client-hub-refer { display: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design > header :is(.quote-christmas-brand-mark, .quote-christmas-design-eyebrow) { display: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-document-top { padding-block: 12px 20px; border-bottom: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design { margin-bottom: 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-design-slide-label { display: none; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-christmas-offers { padding-block: 8px; margin-bottom: 24px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary { gap: 8px; padding: 0; border: 0; border-radius: 0; background: transparent; margin-bottom: 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary h3 { font-size: 20px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-metadata { color: #b9ccca; font-size: 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-total-box:has(+ .quote-deposit-customer-panel.is-compact) { margin-bottom: 0; border-bottom: 0; border-radius: 12px 12px 0 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-deposit-customer-panel.is-compact { display: block; border-radius: 12px; padding: 10px 16px 14px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-total-box + .quote-deposit-customer-panel.is-compact { margin-top: calc(-1 * var(--quote-flow-gap) - 1px); border-radius: 0 0 12px 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights .is-compact .quote-deposit-breakdown > div { min-height: 32px; padding-block: 8px; }
  .quote-public-card.is-public-portal.is-christmas-lights .is-compact .quote-deposit-breakdown .is-due-now :is(span, strong) { color: #efd59a; }
  .quote-public-card.is-public-portal.is-christmas-lights .is-compact .quote-deposit-breakdown > small { color: #b9ccca; line-height: 1.5; }
}
@media (max-width: 600px) {
  .quote-christmas-offers[data-public-christmas-offer-carousel]:not(.has-paired-packages) .quote-christmas-offer-grid { grid-template-columns: minmax(0, 1fr); }
}

@media screen {
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout { row-gap: 16px; }
  .has-compact-checkout .quote-package-summary-total { flex-basis: auto; border: 0; padding: 0; margin-inline-start: auto; text-align: right; }
  .has-compact-checkout .quote-package-summary-total span { font-size: 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .quote-public-decision-panel { padding: 0; border: 0; background: transparent; margin-bottom: 4px; }
  .has-compact-checkout .quote-public-decision { width: 100%; }
  .has-compact-checkout .quote-public-decision-actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 640px; margin-inline: auto; }
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .button.primary { display: flex; flex-direction: column; gap: 4px; min-height: 84px; padding: 16px; font-size: 24px; box-shadow: 0 6px 22px #078b5033; }
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .button.primary > :is(span, small) { color: #fff; }
  .has-compact-checkout .quote-saved-method-disclosure { color: #b9ccca; font-size: 12px; text-align: center; }
  .has-compact-checkout .button.primary small { font-size: 16px; font-weight: 650; }
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .is-reservation-note { width: 100%; margin: 0 0 12px; text-align: center; }
  .has-compact-checkout .is-reservation-note p { margin: 0; font-size: 14px; }
  .has-compact-checkout .quote-approval-copy { margin: 12px auto 0; font-weight: 400; text-align: center; }
  .quote-price-details { width: min(var(--quote-reading-width), calc(100% - var(--quote-fullscreen-gutter) * 2)); margin: 0 auto; border: 1px solid #365057; border-radius: 12px; overflow: hidden; background: #0b2832; }
  .quote-price-details > summary { min-height: 48px; padding: 14px 16px; box-sizing: border-box; cursor: pointer; font-weight: 700; }
  .quote-price-details > .quote-package-metadata { display: block; margin: 0 16px 10px; }
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .quote-price-details > :is(.quote-total-box, .quote-deposit-customer-panel.is-compact) { width: 100%; margin: 0; border: 0; border-radius: 0; }
}
@media screen and (max-width: 600px) {
  .quote-public-card.is-public-portal.is-christmas-lights.has-compact-checkout .quote-package-summary { display: block; margin-bottom: 0; }
  .has-compact-checkout .quote-package-summary-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 12px; }
}
@media print { .quote-price-details::details-content { display: block; content-visibility: visible; } .quote-price-details > :not(summary) { display: block !important; } .quote-price-details > summary { display: none; } }

/* Photo-only quotes use the same main image position and width as a design. */
@media screen {
  .quote-public-card.is-public-portal.is-christmas-lights .quote-renewal-photo-hero.quote-reference-evidence {
    width: 100%; margin: 0 auto 12px; padding: 0; border: 0; border-radius: 0; overflow: hidden;
  }
  .quote-renewal-photo-hero > header h3 { margin: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-renewal-photo-hero > div { border: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-renewal-photo-hero > p { border: 0; }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary {
    padding: 18px 20px; gap: 12px; border: 1px solid #365057; border-radius: 12px; background: #0b2832; color: #fff9e9;
  }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary :is(h3, div) { padding: 0; background: transparent; }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary span { color: #b9ccca; }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary strong { color: #fff9e9; }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary .quote-number-total { margin-inline-start: auto; text-align: right; }
  .quote-public-card.is-public-portal.is-christmas-lights > .is-renewal-photo-summary .quote-number-total strong { color: #efd59a; font-size: clamp(24px, 4vw, 32px); }
}
@media screen and (width >= 1025px) {
  .quote-public-card.is-public-portal.is-christmas-lights .quote-renewal-photo-hero.quote-reference-evidence { width: min(1280px, calc(100% - var(--quote-fullscreen-gutter) * 2)); border-radius: 16px; }
}

.quote-sales-assignment-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.quote-sales-assignment-controls > label { flex: 1 1 220px; min-width: 0; }
.quote-sales-assignment-controls select { width: 100%; min-height: 44px; }
.quote-sales-assignment-controls .button { min-height: 44px; }


/* Keep install dates and dispatch details readable at each calendar width. */
body .christmas-lights-record-meta small.christmas-production-date { display: inline-flex; color: #174c59; font-weight: 800; }
.schedule-service-days.is-day { grid-template-columns: minmax(0, 1fr); }
.schedule-service-days.is-day .schedule-service-day-jobs {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.schedule-view .schedule-date-picker > span {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  padding-block: 6px;
}
.schedule-view .schedule-date-picker { flex-shrink: 0; max-width: 100%; }
.schedule-service-day-order,
.schedule-service-day > header strong { overflow-wrap: anywhere; }
.schedule-service-day-job .christmas-dispatch-badge strong,
.schedule-planning-token .christmas-dispatch-badge strong {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}
.schedule-view .month-job-pill {
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 5px;
}
.schedule-view .month-job-pill .schedule-card-time,
.schedule-view .month-job-pill .schedule-card-customer,
.schedule-view .month-job-pill .christmas-dispatch-badge strong {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
.schedule-view .month-job-pill .christmas-dispatch-badge { max-width: 100%; }
@media (max-width: 620px) {
  .schedule-view .schedule-date-picker { flex: 1 1 100%; }
  .schedule-planning-token .schedule-assigned-crew { max-width: 100%; }
}
.schedule-view .month-job-pill { padding: 7px; }
.schedule-view .month-job-pill .schedule-card-time { padding-right: 22px; }
.schedule-view .month-job-pill .christmas-dispatch-badge {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 4px;
  width: 100%;
  padding: 4px;
  text-align: left;
}
.schedule-view .month-job-pill .christmas-dispatch-badge > svg { width: 14px; height: 14px; }
@media (max-width: 1180px) {
  .schedule-view .month-job-pill .christmas-dispatch-badge { grid-template-columns: minmax(0, 1fr); }
  .schedule-view .month-job-pill .christmas-dispatch-badge > svg { display: none; }
}

/* One pretax price beside an explicit, already-applied saving. */
.schedule-view [data-schedule-job-id].is-map-highlight { outline: 3px solid #087dc1; outline-offset: 1px; box-shadow: 0 0 0 5px #e1f3ff; }
.schedule-view .schedule-month-cell.is-today { outline: none; background: inherit; }
.schedule-view .schedule-month-cell.is-today .schedule-month-date > strong { color: #d71946; }
.quote-display-price { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 5px; max-width: 100%; line-height: 1.3; }
.quote-display-price [hidden], .quote-price-included[hidden], [data-public-display-tax-row][hidden] { display: none !important; }
.quote-price-saving { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 10px; }
.quote-price-saving del { color: #a52e2e; font-size: 15px; font-weight: 500; text-decoration-thickness: 1.5px; }
.quote-price-badge { color: #174d32; background: #ddf3df; border-radius: 5px; padding: 3px 7px; font-size: 12px; font-weight: 750; white-space: nowrap; }
.quote-display-price > strong { display: block; font-size: 30px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.quote-display-price > small { margin: 0; font-size: 12px; font-weight: 400; }
.quote-price-included { display: block; margin-top: 4px; font-size: 12px; font-weight: 400; line-height: 1.4; }
@media screen {
  .quote-public-card.is-public-portal.is-christmas-lights .invoice-payment-return { background: #0b2833; border-color: #496b6f; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-price-saving del { color: #f6a6a1; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-price-badge { color: #dff4df; background: #21513c; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-display-price > strong { color: #efd59a; font-size: clamp(28px, 4vw, 34px); }
  .quote-public-card.is-public-portal.is-christmas-lights :is(.quote-display-price > small, .quote-price-included) { color: #b9ccca; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-price-saving { font-size: 15px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-price-badge { font-size: 12px; }
  .quote-public-card.is-public-portal.is-christmas-lights .quote-package-summary-total > .quote-display-price { font-size: inherit; }
  .quote-public-card.is-public-portal.is-christmas-lights .is-renewal-photo-summary .quote-number-total > .quote-display-price { display: inline-flex; }
}
@media (max-width: 600px) {
  .quote-public-card.is-christmas-lights .quote-christmas-design-slide .quote-christmas-offer-price { white-space: normal; }
  .quote-christmas-design-slide .quote-display-price { align-items: flex-start; }
  .quote-christmas-design-slide .quote-price-saving { justify-content: flex-start; }
  .quote-package-summary-total { align-items: center; }
}
.christmas-install-sales-dialog {
  width: min(720px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  box-sizing: border-box;
  overflow: auto;
  padding: 16px;
  border: 1px solid #cbd9dd;
  border-radius: 16px;
  color: var(--ink, #153e50);
  background: #fff;
}
.christmas-install-sales-dialog::backdrop { background: rgb(15 35 45 / 55%); }
