.booking-editor { display: grid; gap: 18px; }
.booking-edit-heading { margin-bottom: 0; }
.booking-edit-grid {
  display: grid;
  grid-template-columns: minmax(280px, 390px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(14px, 2.5vw, 26px);
}
.booking-edit-form, .booking-edit-display { min-width: 0; }
.booking-edit-controls, .booking-edit-options { min-inline-size: 0; border: 0; padding: 0; margin: 0; }
.booking-edit-controls, .booking-edit-fields, .booking-edit-publish, .booking-edit-share, .booking-edit-display {
  display: grid;
  gap: 14px;
}
.booking-edit-group > summary {
  min-height: 48px;
  padding: 14px 15px;
  cursor: pointer;
  font-weight: 700;
}
.booking-edit-group > summary::marker { color: var(--accent); }
.booking-edit-fields { padding: 2px 15px 16px; }
.booking-edit-options > legend { margin-bottom: 7px; padding: 0; font-weight: 650; font-size: .9rem; }
.booking-edit-fields input:not([type=radio]), .booking-edit-fields select,
.booking-edit-fields textarea, .booking-edit-share input {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid #bfb5b4;
  border-radius: 8px;
  background: var(--white);
  color: var(--navy);
  font: inherit;
  font-weight: 400;
}
.booking-edit-fields textarea { resize: vertical; }
.booking-editor input:is([type=radio], [type=checkbox]) { accent-color: var(--accent-strong); width: 17px; height: 17px; min-height: 0; margin: 0; padding: 0; flex: 0 0 auto; }
.booking-edit-templates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.booking-edit-template, .booking-edit-color {
  cursor: pointer;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
}
.booking-edit-template:has(input:checked), .booking-edit-color:has(input:checked) { border-color: var(--accent); background: var(--tint); }
.booking-edit-template:has(input:focus-visible), .booking-edit-color:has(input:focus-visible) {
  outline: 2px solid var(--accent-strong);
  outline-offset: 2px;
}
.booking-edit-template { display: grid; align-content: start; gap: 4px; min-width: 0; }
.booking-edit-template small { color: var(--muted); font-size: .75rem; font-weight: 400; line-height: 1.3; overflow-wrap: anywhere; }
.booking-edit-template-name, .booking-edit-color, .booking-edit-check {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 26px;
}
.booking-edit-template-art {
  --art-mark: #968e76;
  --art-photo: #707b5d;
  display: grid;
  height: 60px;
  grid-template: 5px 11px 6px 7px / 1fr 1fr;
  gap: 4px;
  overflow: hidden;
  border-radius: 6px;
  background: #f0eee5;
  padding: 8px;
}
.booking-edit-template-art i { border-radius: 2px; background: var(--art-mark); }
.booking-edit-template-art i:first-child { width: 36%; }
.booking-edit-template-art i:nth-child(2) { background: var(--art-photo); }
.booking-edit-template-art i:last-child { width: 56%; background: var(--art-photo); }
.booking-edit-template-studio i:nth-child(2) { grid-area: 1 / 2 / 5 / 3; }
.booking-edit-template-studio i:nth-child(4) { width: 74%; opacity: .64; }
.booking-edit-template-signature {
  --art-mark: #efcba1;
  --art-photo: #9a6b4d;
  grid-template: 4px 16px 5px 5px 6px / 1fr;
  justify-items: center;
  background: #342521;
}
.booking-edit-template-signature i { width: 47%; }
.booking-edit-template-signature i:first-child { width: 21%; }
.booking-edit-template-signature i:nth-child(2) { width: 82%; }
.booking-edit-template-signature i:nth-child(4) { opacity: .62; }
.booking-edit-template-signature i:last-child { width: 26%; }
.booking-edit-template-editorial {
  --art-mark: #77575b;
  --art-photo: #9d6860;
  grid-template: 5px 19px 8px 6px / 1fr 1fr;
  background: #f7e5df;
}
.booking-edit-template-editorial i:nth-child(2) { grid-column: 1 / -1; }
.booking-edit-template-editorial i:nth-child(3) { grid-column: 1 / -1; width: 72%; }
.booking-edit-template-editorial i:nth-child(4) { width: 75%; opacity: .65; }
.booking-edit-template-editorial i:last-child { justify-self: end; }
.booking-edit-template-minimal {
  --art-mark: #8295aa;
  --art-photo: #3e6286;
  grid-template: 5px 8px 5px 8px / 1fr 1fr 1fr;
  background: #eff3f7;
}
.booking-edit-template-minimal i:first-child { grid-column: 1 / -1; width: 19%; }
.booking-edit-template-minimal i:nth-child(2) { grid-column: 1 / -1; width: 51%; }
.booking-edit-template-minimal i:nth-child(3) { grid-column: 1 / -1; width: 44%; opacity: .64; }
.booking-edit-template-minimal i:nth-child(4), .booking-edit-template-minimal i:last-child { width: 100%; background: #b4c5d6; }
.booking-edit-template-impact {
  --art-mark: #f6dec4;
  --art-photo: #f3b684;
  grid-template: 5px 11px 5px 8px / 1.15fr .85fr;
  background: #89412e;
}
.booking-edit-template-impact i:nth-child(2) { grid-area: 1 / 2 / 5 / 3; opacity: .88; }
.booking-edit-template-impact i:nth-child(4) { width: 80%; opacity: .75; }
.booking-edit-template-impact i:last-child { width: 80%; }
.booking-edit-colors { display: flex; flex-wrap: wrap; gap: 6px; }
.booking-edit-color { min-height: 44px; }
.booking-edit-swatch { width: 12px; height: 12px; flex: 0 0 auto; border-radius: 50%; }
.booking-edit-swatch-sage { background: #657354; }
.booking-edit-swatch-rose { background: #a85567; }
.booking-edit-swatch-gold { background: #9a6c20; }
.booking-edit-swatch-ocean { background: #315e87; }
.booking-edit-swatch-ink { background: #37383b; }
.booking-edit-custom-color { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; gap: 5px 9px; margin-top: 9px; }
.booking-edit-custom-color label { min-width: 0; }
.booking-edit-fields .booking-edit-custom-color input[type=color] { min-width: 76px; padding: 4px; cursor: pointer; }
.booking-edit-custom-color input[name=colorHex] { font-family: ui-monospace, monospace; }
.booking-edit-custom-color input[aria-invalid=true] { border-color: #a02738; }
.booking-edit-custom-color p { grid-column: 1 / -1; margin: 0; }
.booking-edit-custom-color p:empty { display: none; }
.booking-edit-image { display: flex; align-items: start; gap: 10px; min-width: 0; }
.booking-edit-thumb { width: 52px; height: 52px; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); }
.booking-edit-image[data-booking-edit-image=logo] .booking-edit-thumb { object-fit: contain; }
.booking-edit-file { display: grid; gap: 6px; flex: 1; min-width: 0; }
.booking-edit-file button { justify-self: start; min-height: 40px; font-size: .8rem; }
.booking-edit-products, .booking-edit-product-fields { display: grid; gap: 10px; }
.booking-edit-products:empty { display: none; }
.booking-edit-product { min-width: 0; border: 1px solid var(--line); border-radius: 8px; }
.booking-edit-product > summary { min-height: 44px; padding: 12px 10px; cursor: pointer; font-size: .9rem; font-weight: 650; overflow-wrap: anywhere; }
.booking-edit-product > summary::marker { color: var(--accent); }
.booking-edit-product-fields { padding: 0 10px 12px; }
.booking-edit-product-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.booking-edit-product-fields input:focus:invalid { border-color: #a02738; }
.booking-edit-catalog-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.booking-edit-catalog-actions > button, .booking-edit-remove-item { min-height: 44px; justify-self: start; }
.booking-edit-catalog-actions > button:disabled { cursor: default; }
.booking-edit-publish, .booking-edit-share { padding: 15px; }
.booking-edit-publish .primary { min-height: 44px; }
.booking-edit-publish .subtle, .booking-edit-fields .subtle, .booking-edit-share .subtle { font-size: .85rem; line-height: 1.45; }
.booking-edit-check { min-height: 35px; }
.booking-edit-save-status:empty, .booking-edit-copy-status:empty { display: none; }
.booking-edit-display { position: sticky; top: 14px; }
.booking-edit-preview { overflow: hidden; scroll-margin-top: 12px; }
.booking-edit-preview > header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.booking-edit-state { background: var(--tint); color: var(--accent-strong); border-radius: 20px; padding: 5px 9px; font-size: .8rem; font-weight: 700; }
.booking-edit-canvas { max-height: clamp(300px, calc(100dvh - 255px), 660px); overflow: auto; }
.booking-edit-canvas:focus-visible { outline-offset: -3px; }
.booking-edit-share-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-edit-share-actions > * { min-height: 44px; }
.booking-edit-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.booking-edit-preview-button, .booking-edit-return { display: none; }

@media (max-width: 1030px) {
  .booking-edit-grid { grid-template-columns: minmax(0, 1fr); }
  .booking-edit-display { position: static; }
  .booking-edit-preview-button, .booking-edit-return { display: inline-flex; min-height: 44px; }
  .booking-edit-canvas { max-height: min(65dvh, 620px); }
}

@media (max-width: 1030px) and (min-width: 650px) {
  .booking-edit-templates { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .booking-edit-fields input:not([type=radio]), .booking-edit-fields select,
  .booking-edit-fields textarea, .booking-edit-share input { font-size: 16px; }
}
.booking-edit-product-link { display: grid; gap: 6px; justify-items: start; }
.booking-edit-product-link label { width: 100%; }
.booking-edit-product-link p:empty { display: none; }
.booking-edit-share [data-domain-content], .booking-edit-share [data-domain-form] { display: grid; gap: 9px; }
.booking-dns { padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; }
.booking-dns summary { cursor: pointer; font-weight: 700; }
.booking-dns p { margin: 6px 0; }
.booking-dns-record { display: grid; gap: 5px; padding: 8px 0; }
.booking-dns-record input { font-family: ui-monospace, monospace; font-size: .76rem; }
[data-domain-editor] [role]:empty { display: none; }
