/* Source: fonts.css */
/* Outfit variable font, unchanged, distributed under the adjacent OFL. */
@font-face { font-family:Outfit; font-style:normal; font-weight:400 800; font-display:swap; src:url('/assets/fonts/outfit-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:Outfit; font-style:normal; font-weight:400 800; font-display:swap; src:url('/assets/fonts/outfit-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Source: styles.css */
:root {
  color-scheme: light;
  --brand-50: #fff1f6;
  --brand-100: #fce4ee;
  --brand-300: #f5a4c6;
  --brand-500: #e83787;
  --brand-700: #a50064;
  --brand-800: #870051;
  --brand-900: #56132f;
  --page: #fdfbf7;
  --surface: #fffdfb;
  --border: #e6dce8;
  --ink: #30202a;
  --muted: #75616e;
  --pink: #e65f91;
  --blue: #5d91db;
  --empty: #b8b8c2;
  --shadow-card: 0 12px 30px rgba(74, 21, 59, 0.07);
  --shadow-raised: 0 16px 34px rgba(74, 21, 59, 0.15);
  font-family: "Outfit", system-ui, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { min-width: 320px; background: var(--page); }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(ellipse 48% 34% at -8% 40%, rgba(205, 184, 216, 0.36), transparent 70%),
    radial-gradient(ellipse 48% 40% at 108% 72%, rgba(237, 227, 242, 0.88), transparent 70%),
    var(--page);
}

button, input, select { font: inherit; }
button { color: inherit; }

.app-shell { min-height: 100vh; }

.topbar {
  min-height: 104px;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto minmax(240px, 1fr);
  align-items: center;
  gap: 28px;
  padding: 18px clamp(24px, 4vw, 64px);
  border-bottom: 1px solid rgba(230, 220, 232, 0.8);
  background: rgba(255, 253, 251, 0.87);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 12px;
  color: var(--brand-900);
  text-decoration: none;
}

.brand__mark { width: 52px; height: 52px; flex: 0 0 auto; overflow: visible; }
.brand__petal--top, .brand__petal--bottom { fill: url(#petal-lavender); }
.brand__petal--left, .brand__petal--right { fill: url(#petal-rose); }
.topbar .brand__petal--top, .topbar .brand__petal--bottom { fill: #af89b4; }
.topbar .brand__petal--left, .topbar .brand__petal--right { fill: #bf889b; }
.brand__center-ring { fill: #fffaf8; opacity: .92; }
.brand__center { fill: #84607f; }

.brand__name {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 700;
  line-height: 1;
  transform: translateY(2px);
  white-space: nowrap;
}

.progress { display: flex; align-items: flex-start; justify-content: center; }
.progress i { width: clamp(24px, 4vw, 64px); height: 1px; margin-top: 17px; background: var(--border); }

.progress__item {
  min-width: 62px;
  display: grid;
  justify-items: center;
  gap: 6px;
  color: #91889a;
  font-size: 0.82rem;
}

.progress__item b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  font-size: 0.85rem;
}

.progress__item.is-active { color: var(--brand-800); font-weight: 700; }
.progress__item.is-active b { color: #fff; border-color: var(--brand-700); background: var(--brand-700); box-shadow: 0 0 0 6px var(--brand-100); }
.progress__item.is-complete { color: var(--brand-700); }
.progress__item.is-complete b { color: #fff; border-color: var(--brand-500); background: var(--brand-500); }

.locale-button {
  justify-self: end;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,0.7);
  cursor: pointer;
}

.language-picker { position:relative; display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 10px; border:1px solid var(--border); border-radius:999px; color:var(--brand-800); background:rgba(255,253,251,.96); box-shadow:0 5px 14px rgba(74,21,59,.08); direction:ltr; }
.language-picker__icon { display:inline-grid; flex:0 0 auto; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--brand-700); background:linear-gradient(145deg,#f7eaf2,#fffaf7); box-shadow:inset 0 0 0 1px rgba(129,36,95,.12); font-size:15px; line-height:1; pointer-events:none; }
.utility-emoji { display:block; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; line-height:1; }
.language-picker__icon svg,
.reference-help-link__icon svg,
.mobile-help-link__icon svg { width:58%; height:58%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.language-picker select { min-width:108px; padding:8px 20px 8px 0; border:0; color:inherit; background:transparent; cursor:pointer; font-size:13px; font-weight:700; outline:none; }
.language-picker select:focus-visible { outline:2px solid var(--brand-500); outline-offset:2px; border-radius:6px; }
.language-picker--reference { position:absolute; top:2.0%; right:2.0%; z-index:12; }
.language-picker--editor { flex:0 0 auto; min-height:42px; }
.mobile-header__tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.language-picker--mobile { min-height:44px; padding-inline:9px; box-shadow:none; }
.language-picker--mobile select { min-width:76px; font-size:12px; }

.page {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(56px, 8vh, 90px) 0 52px;
}

.page-heading { max-width: 850px; margin: 0 auto 48px; text-align: center; }
.eyebrow { margin: 0 0 12px; color: var(--brand-700); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
h1, h2, h3 { font-family: "Outfit", system-ui, sans-serif; }
h1 { margin: 0; font-size: clamp(2.55rem, 5.1vw, 4.5rem); line-height: 1.03; letter-spacing: -0.035em; }

.event-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.event-card {
  position: relative;
  min-height: 168px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.9);
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.event-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-raised); border-color: var(--brand-300); }
.event-card:active { transform: translateY(-1px) scale(.985); transition-duration: 90ms; }
.event-card:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(205, 184, 216, 0.54), var(--shadow-raised); }
.event-card.is-selected { border-color: var(--brand-700); background: linear-gradient(155deg, #fffdfb, var(--brand-50)); }

.event-card__icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  color: var(--brand-700);
  background: linear-gradient(145deg, #f7eff7, #eadde9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 16px rgba(74,21,59,.09);
  font-family: Georgia, serif;
  font-size: 2rem;
}

.event-card__label { font-family: "Outfit", system-ui, sans-serif; font-size: 1.3rem; font-weight: 700; }

.event-card__check {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  font-weight: 700;
}

.event-card.is-selected .event-card__check { color: #fff; background: var(--brand-700); }

.step-actions { display: flex; gap: 16px; margin-top: 38px; }
.step-actions--end { justify-content: flex-end; }

.button {
  min-height: 56px;
  min-width: 240px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px solid transparent;
  border-radius: 16px;
  padding: 0 32px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 8px 18px rgba(74,21,59,.14);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 12px 24px rgba(74,21,59,.19); }
.button:active { transform: translateY(0) scale(.985); transition-duration: 90ms; box-shadow: inset 0 2px 3px rgba(74,21,59,.18), 0 4px 10px rgba(74,21,59,.12); }
.button:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(205,184,216,.62), 0 10px 22px rgba(74,21,59,.18); }
.button--primary { color: #fff; border-color: var(--brand-800); background: linear-gradient(180deg, #bd2479 0%, #a50064 100%); }
.button--secondary { color: var(--ink); border-color: #cfc1d4; background: linear-gradient(#fffdfb, #f8f2f7); }
.button--ghost { min-width: auto; min-height: 44px; padding-inline: 18px; color: var(--brand-800); border-color: var(--border); background: rgba(255,255,255,.72); box-shadow: 0 5px 14px rgba(74,21,59,.08); }
.button--small { min-width: auto; min-height: 44px; padding-inline: 18px; border-radius: 13px; font-size: .9rem; }

.choice-group { display: flex; gap: 10px; flex-wrap: wrap; }
.choice-pill {
  min-height: 46px;
  padding: 0 19px;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--muted);
  background: var(--surface);
  cursor: pointer;
}
.choice-pill.is-selected { color: var(--brand-800); border-color: var(--brand-700); background: var(--brand-50); box-shadow: 0 0 0 3px rgba(205,184,216,.32); }
.choice-pill:active { transform: scale(.985); transition: transform 90ms ease-out; }

.split-layout { display: grid; grid-template-columns: minmax(360px, .85fr) minmax(480px, 1.35fr); gap: 22px; align-items: stretch; }
.panel {
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 30px;
  background: rgba(255,253,251,.92);
  box-shadow: var(--shadow-card);
}
.panel h2, .panel h3 { margin: 0; }
.form-stack { display: grid; gap: 22px; }
.field-group { display: grid; gap: 9px; }
.field-label { font-size: .9rem; font-weight: 700; color: var(--ink); }
.field-help { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.input-wrap { position: relative; }
.input-wrap input, .text-input, .select-input {
  width: 100%;
  min-height: 54px;
  padding: 0 54px 0 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
}
.input-wrap input:focus, .text-input:focus, .select-input:focus { border-color: var(--brand-700); box-shadow: 0 0 0 4px rgba(205,184,216,.42); }
.input-unit { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--muted); font-size: .86rem; }
.area-summary { display: flex; align-items: center; justify-content: space-between; padding: 17px 18px; border-radius: 16px; background: var(--brand-50); }
.area-summary strong { font-family: "Outfit", system-ui, sans-serif; font-size: 1.65rem; color: var(--brand-800); }

.venue-preview, .summary-plan {
  position: relative;
  min-height: 530px;
  overflow: hidden;
  border: 1px solid #e2d5dc;
  border-radius: 24px;
  background:
    linear-gradient(rgba(126,72,104,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(126,72,104,.055) 1px, transparent 1px),
    linear-gradient(145deg, #fff9f2, #efe4df);
  background-size: 28px 28px, 28px 28px, auto;
  box-shadow: inset 0 0 70px rgba(104,25,78,.05), var(--shadow-card);
}
.venue-preview::before, .summary-plan::before { content: "SAHNE"; position: absolute; top: 25px; left: 50%; transform: translateX(-50%); width: 150px; padding: 12px 0; border-radius: 12px; text-align: center; color: var(--brand-800); background: #e7d7e9; font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.preview-floor { position: absolute; inset: 84px 38px 54px; }
.preview-table { position: absolute; width: 84px; height: 84px; display: grid; place-items: center; border: 8px solid #f6eee9; border-radius: 50%; color: var(--brand-900); background: #fffdf9; box-shadow: 0 10px 18px rgba(92,55,73,.12), inset 0 0 0 1px #e5d7d2; font-family: "Outfit", system-ui, sans-serif; font-weight: 700; transform: translate(-50%,-50%); }
.preview-table::after { content: ""; position: absolute; inset: -18px; border: 7px dotted #c99a9d; border-radius: 50%; opacity: .78; }
.preview-dance { position: absolute; left: 50%; top: 51%; width: 29%; aspect-ratio: 1.18; display: grid; place-items: center; transform: translate(-50%,-50%); border: 1px solid #e4bbc7; border-radius: 22px; color: #895b67; background: rgba(238,202,211,.58); font-family: "Outfit", system-ui, sans-serif; font-weight: 700; }
.entrance-label { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: var(--brand-800); font-size: .78rem; font-weight: 800; letter-spacing: .06em; }

.arrangement-grid { display: grid; grid-template-columns: .82fr 1.35fr .82fr; gap: 16px; }
.metric-card { min-height: 234px; }
.metric-card h3, .shape-panel h3 { font-size: 1.3rem; }
.metric-card p, .shape-panel p { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }
.number-stepper { display: grid; grid-template-columns: 62px 1fr 62px; min-height: 76px; margin-top: 28px; overflow: hidden; border: 1px solid var(--border); border-radius: 18px; background: #fff; }
.number-stepper button { border: 0; color: var(--brand-700); background: var(--brand-50); font-size: 1.5rem; cursor: pointer; }
.number-stepper strong { display: grid; place-items: center; font-family: "Outfit", system-ui, sans-serif; font-size: 2.1rem; }
.shape-panel { min-height: 234px; }
.shape-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.shape-card { position: relative; min-height: 132px; display: grid; place-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 17px; background: #fff; cursor: pointer; }
.shape-card.is-selected { border-color: var(--brand-700); background: var(--brand-50); box-shadow: 0 0 0 3px rgba(205,184,216,.3); }
.shape-icon { display: block; width: 58px; height: 42px; border: 6px solid #c99791; background: #fff8f3; box-shadow: 0 7px 12px rgba(74,21,59,.1); }
.shape-icon.round { border-radius: 50%; }
.shape-icon.square { width: 44px; }
.shape-icon.rectangle { width: 67px; }
.capacity-card { display: grid; grid-template-columns: 1fr minmax(440px, 1.7fr); gap: 20px; align-items: center; margin-top: 17px; }
.capacity-copy { padding: 8px 18px; }
.status-badge { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; color: #286446; background: #e4f4e9; font-weight: 700; font-size: .86rem; }
.status-badge--warning { color: #8a4b16; background: #fff0dc; }
.capacity-copy h3 { margin: 16px 0 4px; font-size: 1.65rem; }
.capacity-copy p { margin: 0; color: var(--muted); }
.mini-hall { min-height: 230px; border-radius: 20px; }

.summary-layout { display: grid; grid-template-columns: 340px 1fr; gap: 18px; }
.summary-list { margin: 0; padding: 0; list-style: none; }
.summary-list li { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 62px; border-bottom: 1px solid var(--border); }
.summary-list li:last-child { border: 0; }
.summary-list span { color: var(--muted); }
.summary-list strong { font-family: "Outfit", system-ui, sans-serif; font-size: 1.15rem; }
.summary-plan { min-height: 560px; }

.editor-shell { min-height: 100vh; background: #f7f2f7; }
.editor-header { min-height: 80px; display: grid; grid-template-columns: auto minmax(240px,1fr) auto; align-items: center; gap: 24px; padding: 14px 24px; border-bottom: 1px solid var(--border); background: #fffdfb; }
.event-name { min-width: 0; padding-left: 24px; border-left: 1px solid var(--border); }
.event-name strong, .event-name small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-name small { margin-top: 2px; color: var(--muted); }
.editor-actions { display: flex; gap: 10px; align-items: center; }
.share-status { margin-right: 8px; color: #347451; font-size: .84rem; white-space: nowrap; }
.reference-editor-share-status {
  position: absolute;
  z-index: 13;
  left: 61.6%;
  top: 3.1%;
  width: 9.4%;
  margin: 0;
  overflow: hidden;
  color: #347451;
  font: 700 clamp(7px,.74vw,12px)/1.2 "Outfit",sans-serif;
  text-align: center;
  text-overflow: ellipsis;
}
.editor-layout { height: calc(100vh - 80px); display: grid; grid-template-columns: 330px 1fr; }
.inspector { z-index: 5; overflow-y: auto; padding: 24px; border-right: 1px solid var(--border); background: #fffdfb; box-shadow: 8px 0 26px rgba(74,21,59,.06); }
.inspector-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.inspector-title .button { width: 44px; min-width: 44px; padding: 0; flex: 0 0 44px; }
.inspector h2 { margin: 0; font-size: 1.8rem; }
.occupancy { display: inline-flex; margin-top: 7px; padding: 7px 12px; border-radius: 999px; color: #286446; background: #e4f4e9; font-size: .82rem; font-weight: 700; }
.inspector-section { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--border); }
.inspector-section h3 { margin: 0 0 14px; font-size: 1rem; font-family: "Outfit", sans-serif; }
.capacity-control { display: grid; grid-template-columns: 46px 1fr 46px; min-height: 46px; overflow: hidden; border: 1px solid var(--border); border-radius: 13px; }
.capacity-control button { border: 0; color: var(--brand-700); background: var(--brand-50); cursor: pointer; }
.capacity-control strong { display: grid; place-items: center; }
.guest-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.guest-row { min-height: 35px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; }
.guest-row small { color: var(--muted); }
.guest-row--editable { position:relative; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items:start; gap:8px; padding:10px; border:1px solid var(--border); border-radius:12px; }
.guest-row--editable > label { min-width:0; }
.guest-row--editable > label:first-of-type { grid-column:1 / -1; }
.guest-row--editable > .seat-dot { position:absolute; top:23px; inset-inline-start:20px; width:16px; height:16px; pointer-events:none; }
.guest-row--editable .guest-name-input { min-width:0; min-height:42px; padding-inline-start:34px; font-size:14px; }
.guest-row--editable .guest-side-select,
.guest-row--editable .guest-group-select { min-width:0; min-height:40px; font-size:14px; }
.guest-row--editable.is-selected { border-color: var(--brand-300); background: var(--brand-50); }
.guest-group-note { margin: -6px 0 10px; color: var(--muted); font-size: .74rem; }
.guest-name-input, .guest-side-select, .guest-group-select, .guest-group-name-input { width: 100%; min-height: 34px; border: 1px solid var(--border); border-radius: 9px; color: var(--ink); background: #fff; font: 500 .78rem/1.2 "Outfit", sans-serif; }
.guest-name-input { padding: 0 9px; }
.guest-side-select, .guest-group-select { padding: 0 6px; cursor: pointer; }
.guest-group-field { display:grid; gap:5px; min-width:0; }
.guest-group-name-input { padding: 0 8px; }
.guest-name-input:focus, .guest-side-select:focus, .guest-group-select:focus, .guest-group-name-input:focus { outline: 2px solid var(--brand-300); outline-offset: 1px; }
.seat-dot { width: 18px; height: 18px; display: block; border: 1px solid #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(37,22,47,.18); }
.seat--empty { background: var(--empty); }
.seat--occupied { background: #a90067; }
.seat--bride { background: var(--pink); }
.seat--groom { background: var(--blue); }
.seat--both { background: linear-gradient(to right, var(--pink) 0%, var(--pink) 50%, var(--blue) 50%, var(--blue) 100%); }
.legend { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; }
.legend-item { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .78rem; }
.canvas-wrap { position: relative; min-width: 0; overflow: hidden; background: #ede6eb; }
.canvas-stage { position:absolute; inset:18px 18px 84px; display:grid; place-items:center; min-width:0; min-height:0; }
.canvas-wrap.is-portrait-workspace { overflow:hidden; }
.editor-shell:has(.is-portrait-workspace) { height:100svh; min-height:0; display:flex; flex-direction:column; }
.editor-shell:has(.is-portrait-workspace) .editor-header { flex:none; }
.editor-shell:has(.is-portrait-workspace) .editor-layout { flex:1; height:auto; min-height:0; overflow:hidden; }
.canvas-scrollport { position:absolute; inset:42px 18px 104px; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; }
.is-portrait-workspace .canvas-stage { position:relative; inset:auto; min-width:100%; min-height:100%; display:grid; place-items:center; }
.is-portrait-workspace .floor-canvas { touch-action:pan-x pan-y; }
.canvas-scrollport.is-panning,.canvas-scrollport.is-panning .floor-canvas { cursor:grabbing; }
.portrait-canvas-hint { position:absolute; top:10px; inset-inline:18px; margin:0; color:var(--muted); font-size:12px; pointer-events:none; }
@media(max-width:600px) {
  .canvas-scrollport { inset:42px 12px 86px; }
}
.floor-canvas { position: relative; overflow: hidden; border: 1px solid #ddd1d8; border-radius: 20px; background: linear-gradient(rgba(126,72,104,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(126,72,104,.045) 1px, transparent 1px), #fbf5ef; background-size: 28px 28px; box-shadow: 0 14px 34px rgba(74,21,59,.09); touch-action: none; }
.floor-canvas.is-outdoor { border-color:#9bb184; background:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px),radial-gradient(circle at 18% 27%,rgba(255,255,255,.13) 0 1px,transparent 2px),linear-gradient(145deg,#87a86d,#6f9258); background-size:28px 28px,28px 28px,15px 15px,auto; box-shadow:inset 0 0 80px rgba(45,76,34,.2),0 14px 34px rgba(74,21,59,.09); }
.floor-canvas.is-outdoor .venue-feature { --venue-soft:#f1e7e6; }
.floor-canvas.is-custom-shape { border-radius:0; }
.stage { position: absolute; top: 18px; left: 50%; width: 220px; height: 64px; display: grid; place-items: center; transform: translateX(-50%); border-radius: 14px; color: var(--brand-800); background: #e5d6e7; font-weight: 800; }
.dance-floor { position: absolute; left: 50%; top: 48%; width: min(25%, 260px); aspect-ratio: 1.18; display: grid; place-items: center; transform: translate(-50%,-50%); border: 2px solid #e3b4c2; border-radius: 24px; color: #845966; background: rgba(237,200,210,.58); font-family: "Outfit", system-ui, sans-serif; font-size: 1.1rem; font-weight: 700; }
.canvas-table { position: absolute; z-index: 3; width: clamp(68px, 8.4vw, 122px); height: clamp(68px, 8.4vw, 122px); transform: translate(-50%,-50%); cursor: grab; user-select: none; touch-action: none; will-change: left, top, transform; }
.canvas-table:active { cursor: grabbing; }
.table-surface { position: absolute; inset: 22%; display: grid; place-items: center; border: 1px solid #ddcfca; border-radius: 50%; background: #fffdfa; box-shadow: 0 8px 14px rgba(74,21,59,.12), inset 0 0 0 7px #f3eae5; text-align: center; font-size: clamp(.52rem, .72vw, .73rem); font-weight: 800; }
.canvas-table.shape--square .table-surface { border-radius: 13px; }
.canvas-table.shape--rectangle .table-surface { inset: 27% 13%; border-radius: 12px; }
.table-surface { background:var(--furnishing-table,#eee2c7); color:var(--furnishing-ink,#291c30); box-shadow:0 8px 14px rgba(74,21,59,.12),inset 0 0 0 2px rgba(255,255,255,.28); }
.table-surface small { display: block; margin-top: 2px; color:inherit; font-size: .65rem; font-weight: 500; }
.canvas-table.is-selected::after { content: ""; position: absolute; inset: 7px; border: 2px solid var(--brand-700); border-radius: 18px; box-shadow: 0 0 0 3px rgba(129,36,95,.11); pointer-events: none; }
.seat-button { position: absolute; left: 50%; top: 50%; width: 22px; height: 18px; padding: 0; border: 3px solid #fffaf5; border-radius: 7px 7px 10px 10px; box-shadow: 0 2px 5px rgba(37,22,47,.22), inset 0 -3px 0 rgba(74,21,59,.08); transform: translate(-50%,-50%); cursor: pointer; }
.seat-button:focus-visible { outline: 3px solid var(--brand-700); outline-offset: 2px; }
.seat-button { border-color:var(--furnishing-chair,#edc5d0); }
.furnishing-diagram { display:block; width:100%; height:100%; }
.furnishing-colors { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1500px; margin:20px auto 32px; padding:24px; border:1px solid #e6dbe3; border-radius:20px; background:#fffdfb; box-shadow:0 8px 22px #56132f08; }
.furnishing-colors fieldset { border:0; padding:0; min-width:0; margin:0; }
.furnishing-colors legend { margin-bottom:14px; color:#56132f; font:700 18px/1.3 'DM Sans',sans-serif; }
.furnishing-swatches { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.furnishing-swatches button { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px; border:1px solid #e6dbe3; border-radius:10px; background:#fff; color:#34283a; font:600 14px/1.25 'DM Sans',sans-serif; cursor:pointer; text-align:start; }
.furnishing-swatches i { flex:none; width:22px; height:22px; border-radius:50%; border:1px solid #0003; box-shadow:inset 0 0 0 2px #ffffff55; }
.furnishing-swatches button[aria-pressed="true"] { border-color:#a50064; box-shadow:0 0 0 1px #a50064; background:#fbf4f9; }
.furnishing-swatches button:focus-visible { outline:3px solid #ad76a0; outline-offset:3px; }
.editor-colors { margin:16px 0; border:1px solid #e6dbe3; border-radius:14px; background:#fffdfb; overflow:hidden; }
.editor-colors summary { padding:16px; color:#56132f; font-weight:700; font-size:15px; cursor:pointer; }
.editor-colors summary:focus-visible { outline:2px solid #a50064; outline-offset:-3px; }
.editor-colors__preview { width:120px; height:120px; margin:0 auto; }
.editor-colors .furnishing-colors { grid-template-columns:1fr; gap:20px; margin:0; padding:16px; border:0; border-radius:0; box-shadow:none; }
.editor-colors .furnishing-swatches { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editor-colors .furnishing-swatches button { overflow-wrap:anywhere; }
.editor-colors .furnishing-colors legend { font-size:15px; }
@media(max-width:900px) { .furnishing-colors { grid-template-columns:1fr; margin:16px; padding:16px; } }
@media(max-width:480px) { .furnishing-swatches { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.floating-toolbar { position: absolute; left: 50%; bottom: 20px; min-height: 52px; display: flex; align-items: stretch; gap: 4px; padding: 5px; transform: translateX(-50%); border: 1px solid rgba(230,220,232,.82); border-radius: 17px; background: rgba(255,253,251,.78); box-shadow: 0 12px 32px rgba(74,21,59,.16), inset 0 1px 0 rgba(255,255,255,.72); backdrop-filter: blur(20px) saturate(1.25); -webkit-backdrop-filter: blur(20px) saturate(1.25); }
.tool-button { min-width: 78px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; cursor: pointer; }
.tool-button:active, .zoom-control button:active { transform: scale(.95); transition: transform 90ms ease-out; }
.tool-button:focus-visible, .zoom-control button:focus-visible { outline: 3px solid rgba(129,36,95,.36); outline-offset: 2px; }
.tool-button.is-active { color: #fff; background: var(--brand-700); }
.zoom-control { display: flex; align-items: center; gap: 7px; padding: 0 8px; border-left: 1px solid var(--border); color: var(--muted); }
.zoom-control button { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 9px; background: #fff; cursor: pointer; }
.custom-text, .custom-area { position: absolute; z-index: 1; transform: translate(-50%,-50%); color: var(--brand-800); }
.custom-text { padding: 8px 12px; border: 1px dashed var(--brand-300); border-radius: 10px; background: rgba(255,253,251,.84); font-weight: 700; }
.custom-area { width: 150px; height: 86px; display: grid; place-items: center; border: 2px dashed var(--brand-500); border-radius: 18px; background: rgba(237,227,242,.44); font-weight: 700; }
.custom-area { min-width:0; min-height:0; padding:8px; text-align:center; cursor:grab; touch-action:none; user-select:none; }
.custom-area:active { cursor:grabbing; }
.custom-area__label { max-width:100%; max-height:100%; overflow:hidden; overflow-wrap:anywhere; font-size:clamp(10px,1vw,15px); line-height:1.2; pointer-events:none; }
.custom-area.is-selected { z-index:6; outline:3px solid var(--brand-700); outline-offset:3px; }
.custom-area:focus-visible { outline:3px solid var(--brand-700); outline-offset:4px; }
.custom-area__edit { position:absolute; bottom:calc(100% + 9px); left:calc(50% - 64px); width:86px; min-height:36px; padding:5px 8px; border:1px solid var(--brand-700); border-radius:10px; background:#fffafc; color:var(--brand-800); font:600 13px var(--font-ui, sans-serif); cursor:pointer; visibility:hidden; }
.custom-area.is-selected .custom-area__edit,.custom-area:focus-within .custom-area__edit { visibility:visible; }
.custom-area .element-delete { top:auto; bottom:calc(100% + 9px); left:calc(50% + 28px); right:auto; width:36px; height:36px; }
.custom-area .element-resize { width:20px; height:20px; }
.custom-area .element-resize::after { content:''; position:absolute; inset:-9px; }
.custom-area-list { display:grid; gap:8px; }
.custom-area-list button { display:flex; align-items:center; gap:8px; min-height:44px; border:1px solid #e5d5df; border-radius:10px; padding:8px 12px; color:var(--brand-800); background:#fffafc; text-align:start; cursor:pointer; font:inherit; }
.custom-area-list button span:first-of-type { flex:1; overflow-wrap:anywhere; min-width:0; }
.custom-area-dialog { width:min(520px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow:auto; padding:24px; border:1px solid #ead8e3; border-radius:22px; background:#fffaf7; color:#30202a; box-shadow:0 24px 80px #3d153a40; font-family:var(--font-ui, 'Outfit', sans-serif); }
.custom-area-dialog::backdrop { background:#321a2f70; }
.custom-area-dialog header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.custom-area-dialog h2 { margin:0; font-size:24px; line-height:1.2; }
.custom-area-dialog label { display:grid; gap:7px; font-size:14px; font-weight:600; }
.custom-area-dialog input { box-sizing:border-box; width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid #ddcbd6; border-radius:10px; background:white; color:#30202a; font:inherit; font-size:16px; }
.custom-area-dialog input:focus-visible,.custom-area-dialog button:focus-visible { outline:3px solid #b3006b; outline-offset:2px; }
.custom-area-dialog__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.custom-area-dialog p { font-size:13px; color:#72606c; line-height:1.6; }
.custom-area-dialog button { min-height:44px; padding:9px 14px; border:1px solid #ddcbd6; border-radius:11px; background:white; color:#812455; font:600 14px var(--font-ui, sans-serif); cursor:pointer; }
.custom-area-dialog header button { min-width:44px; font-size:24px; padding:0; }
.custom-area-dialog footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:20px; }
.custom-area-dialog .custom-area-dialog__save { background:#a50064; color:white; border-color:#a50064; }
.custom-area-dialog .custom-area-dialog__remove { margin-inline-end:auto; color:#ad2435; }
.plan-preview-note--area { display:grid; place-items:center; border:1px dashed #a50064; border-radius:6px; background:#f3ddeb80; overflow:hidden; overflow-wrap:anywhere; text-align:center; }
.editor-layout.is-preview .custom-area { pointer-events:none; outline:none; z-index:1; }
.editor-layout.is-preview .custom-area :is(button) { display:none; }
@media(max-width:480px) { .custom-area-dialog { padding:18px; } .custom-area-dialog h2 { font-size:21px; } .custom-area-dialog footer button { flex:1; } .custom-area-dialog .custom-area-dialog__remove { flex-basis:100%; } }
.venue-feature { position: absolute; z-index: 2; display: grid; place-items: center; transform: translate(-50%,-50%); border: 2px solid color-mix(in srgb, var(--venue-accent, #a50064) 62%, #fff); border-radius: 22px; color: color-mix(in srgb, var(--venue-accent, #a50064) 82%, #30202a); background: color-mix(in srgb, var(--venue-soft, #eadde9) 78%, rgba(255,255,255,.72)); box-shadow: 0 10px 24px rgba(74,21,59,.12), inset 0 1px rgba(255,255,255,.7); font-family: "Outfit", system-ui, sans-serif; font-size: clamp(.78rem, 1.2vw, 1.05rem); font-weight: 700; text-align: center; cursor: grab; user-select: none; touch-action: none; will-change: left, top, width, height, transform; }
.venue-feature:active { cursor: grabbing; }
.venue-feature b { font: inherit; }
.feature-grip { position: absolute; top: 7px; left: 9px; opacity: .48; font-family: sans-serif; font-size: .72rem; letter-spacing: -3px; }
.venue-feature.is-selected { outline: 3px solid color-mix(in srgb, var(--venue-accent, #a50064) 78%, #fff); outline-offset: 4px; box-shadow: 0 0 0 7px rgba(129,36,95,.09), 0 12px 28px rgba(74,21,59,.16); }
.element-delete, .element-resize { position: absolute; z-index: 8; padding: 0; opacity: 0; pointer-events: none; transition: opacity 150ms ease, transform 150ms ease, box-shadow 150ms ease; }
.is-selected > .element-delete, .is-selected > .element-resize { opacity: 1; pointer-events: auto; }
.element-delete { top: -22px; right: 16px; width: 27px; height: 27px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 9px; color: #fff; background: #c73545; box-shadow: 0 5px 14px rgba(118,24,36,.34); cursor: pointer; }
.element-delete svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.element-delete:hover, .element-delete:focus-visible { transform: scale(1.08); background: #ad2435; box-shadow: 0 7px 18px rgba(118,24,36,.4); }
.element-delete:focus-visible, .element-resize:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.element-resize { width: 14px; height: 14px; border: 2px solid var(--brand-700); border-radius: 4px; background: #fff; box-shadow: 0 2px 7px rgba(74,21,59,.24); }
.element-resize--nw { left: -7px; top: -7px; cursor: nwse-resize; }
.element-resize--ne { right: -7px; top: -7px; cursor: nesw-resize; }
.element-resize--sw { left: -7px; bottom: -7px; cursor: nesw-resize; }
.element-resize--se { right: -7px; bottom: -7px; cursor: nwse-resize; }
.element-resize:hover { transform: scale(1.2); background: var(--brand-50); }
.venue-feature--stage { border-radius: 16px; }
.venue-feature--entrance { z-index:4; border-style:dashed; border-radius:14px; background:rgba(255,253,251,.92); font-family:"Outfit",sans-serif; font-size:clamp(.68rem,.9vw,.84rem); text-transform:uppercase; letter-spacing:.08em; }
.venue-feature--entrance b::before { content:"↑ "; color:var(--venue-accent,#a50064); font-size:1.1em; }
.is-collision { filter: saturate(1.2); outline: 4px solid rgba(194,49,62,.7); outline-offset: 3px; }
.venue-theme--wedding { --venue-accent:#8d2f6e; --venue-soft:#ead7e8; }
.venue-theme--engagement { --venue-accent:#9f557c; --venue-soft:#f1dce8; }
.venue-theme--henna { --venue-accent:#9d263f; --venue-soft:#f3d3d8; }
.venue-theme--birthday { --venue-accent:#aa6b42; --venue-soft:#f5dfcf; }
.venue-theme--corporate { --venue-accent:#3f5b79; --venue-soft:#dce6ef; }
.venue-theme--other { --venue-accent:#6f527f; --venue-soft:#e7dfec; }
.floor-canvas.venue-theme--engagement { background-color:#fbf2f6; }
.floor-canvas.venue-theme--henna { background-color:#fcf1f1; }
.floor-canvas.venue-theme--birthday { background-color:#fff7ee; }
.floor-canvas.venue-theme--corporate { background-color:#f2f6f9; }
.inspector-event-details .field-row { grid-template-columns: 1fr; }
.editor-layout.is-preview { grid-template-columns: 1fr; }
.editor-layout.is-preview .inspector, .editor-layout.is-preview .floating-toolbar { display: none; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-width: 340px; padding: 14px 17px; border: 1px solid var(--border); border-radius: 14px; color: var(--ink); background: #fff; box-shadow: var(--shadow-raised); animation: toast-in 180ms ease-out; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 900px) {
  .topbar { grid-template-columns: 1fr auto; min-height: 84px; }
  .progress { grid-column: 1 / -1; grid-row: 2; width: 100%; padding-top: 8px; }
  .locale-button { grid-column: 2; grid-row: 1; }
  .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-layout, .summary-layout { grid-template-columns: 1fr; }
  .arrangement-grid { grid-template-columns: 1fr 1fr; }
  .shape-panel { grid-column: 1 / -1; grid-row: 1; }
  .capacity-card { grid-template-columns: 1fr; }
  .editor-header { grid-template-columns: 1fr auto; }
  .editor-header .brand { display: none; }
  .event-name { padding-left: 0; border-left: 0; }
  .editor-layout { grid-template-columns: 280px 1fr; }
  .inspector { padding-inline: 18px; overflow-x: hidden; }
  .editor-actions .button--ghost[data-action="preview"] { display: none; }
}

@media (max-width: 620px) and (orientation: portrait) {
  .topbar { padding: 14px 18px; gap: 14px; }
  .brand__name { font-size: 1.35rem; }
  .brand__mark { width: 38px; height: 38px; }
  .progress__item span { display: none; }
  .progress__item { min-width: 38px; }
  .page { width: min(100% - 28px, 1180px); padding-top: 48px; }
  .event-grid { grid-template-columns: 1fr; gap: 14px; }
  .event-card { min-height: 112px; grid-template-columns: auto 1fr; justify-items: start; align-items: center; align-content: center; text-align: left; }
  .event-card__icon { width: 54px; height: 54px; }
  .step-actions, .step-actions--end { justify-content: stretch; }
  .button { width: 100%; min-width: 0; }
  .field-row, .arrangement-grid { grid-template-columns: 1fr; }
  .shape-panel { grid-column: auto; }
  .shape-options { grid-template-columns: 1fr 1fr 1fr; }
  .capacity-card { padding: 20px; }
  .summary-plan { min-height: 480px; }
  .editor-header { min-height: 70px; padding: 10px 14px; }
  .editor-actions .button--ghost[data-action="preview"] { display: none; }
  .editor-actions .share-status { max-width:150px; overflow:hidden; text-overflow:ellipsis; font-size:.76rem; }
  .editor-layout { height: calc(100vh - 70px); grid-template-columns: 1fr; }
  .inspector { position: absolute; left: 12px; right: 12px; bottom: 82px; z-index: 10; max-height: 54vh; display: none; border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow-raised); }
  .inspector.is-open { display: block; }
  .canvas-stage { inset: 10px 10px 76px; }
  .floating-toolbar { max-width: calc(100% - 20px); overflow-x: auto; justify-content: flex-start; }
  .tool-button { min-width: 68px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .event-card:active, .button:active, .choice-pill:active, .tool-button:active, .zoom-control button:active { transform: none !important; }
}

@media (prefers-reduced-transparency: reduce) {
  .topbar, .floating-toolbar, .reference-event-summary { background: var(--surface); backdrop-filter: none; -webkit-backdrop-filter: none; }
}

@media (prefers-contrast: more) {
  :root { --border: #b8a9bb; --muted: #51485c; }
  .button, .choice-pill, .event-card, .floating-toolbar, .venue-feature { border-width: 2px; }
  .seat-button:focus-visible, .tool-button:focus-visible, .zoom-control button:focus-visible { outline-width: 4px; }
}

/* The approved 1672 × 941 screens are the visual source of truth. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.reference-mode {
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f7f2f5;
}

.reference-mode .app-shell {
  width: 100%;
  min-height: 100vh;
  height: auto;
}

.reference-app {
  width: 100%;
  height: 100vh;
  display: grid;
  place-items: center;
  overflow: auto;
  background: #f7f2f5;
}

.reference-shell {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
}

.reference-canvas {
  position: relative;
  width: min(100%, calc(100vh * 1.7768331562));
  aspect-ratio: 1672 / 941;
  flex: none;
  overflow: hidden;
  background: #fbf8f6;
  box-shadow: 0 0 42px rgba(61, 35, 55, 0.08);
}

.reference-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.reference-brand-fix {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 8;
  width: 31%;
  height: 10.35%;
  display: flex;
  align-items: center;
  gap: clamp(7px, .8vw, 12px);
  padding: 0 3.65%;
  border: 0;
  color: #56132f;
  background: linear-gradient(90deg,#fbf8f6 0%,#fbf8f6 72%,rgba(251,248,246,.94) 84%,rgba(251,248,246,0) 100%);
  cursor: pointer;
  appearance: none;
  text-align: left;
  isolation: isolate;
}

.reference-brand-fix .sr-only { position:absolute; }
.reference-brand-fix .brand__mark { width:clamp(24px,3.1vw,52px); height:clamp(24px,3.1vw,52px); }
.reference-brand-fix .brand__name { min-height:0; font-size:clamp(17px,2vw,32px); transform:translateY(1px); }
.reference-brand-fix:focus-visible { outline:3px solid rgba(129,36,95,.3); outline-offset:-4px; border-radius:12px; }

.reference-header-tools {
  position: absolute;
  top: 2%;
  right: 2%;
  z-index: 12;
  width: 31.5%;
  min-width: 330px;
  max-width: 510px;
  height: 5.4%;
  min-height: 44px;
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: stretch;
  gap: 8px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  direction: ltr;
}

.reference-header-tools .language-picker--reference,
.reference-header-tools .reference-help-link {
  position: static;
  inset: auto;
  z-index: auto;
  width: 100%;
  height: 100%;
  align-self: start;
  margin: 0;
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
}

.reference-header-tools .language-picker--reference {
  position:relative;
  justify-content: flex-start;
  gap:10px;
  padding:5px 12px 5px 7px;
  border:1px solid rgba(129,36,95,.18);
  border-radius:999px;
  background:rgba(255,253,252,.96);
  box-shadow:0 5px 16px rgba(74,21,59,.055),inset 0 1px 0 #fff;
  transition:transform 160ms cubic-bezier(.22,1,.36,1),background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease;
}

.reference-header-tools .language-picker--reference::after {
  content:"";
  position:absolute;
  right:14px;
  top:50%;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}

.reference-header-tools .language-picker--reference select {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  box-sizing: border-box;
  appearance:none;
  -webkit-appearance:none;
  padding-block: 0;
  padding-right: 26px;
  font-size: 15px;
  font-weight:700;
  height:100%;
  text-align:center;
  line-height:1.2;
  letter-spacing:-.01em;
}

.reference-header-tools .language-picker__icon,
.reference-help-link__icon {
  width:32px;
  height:32px;
  border-radius:50%;
  background:#fbf1f6;
  box-shadow:inset 0 0 0 1px rgba(129,36,95,.11);
}

.reference-help-link {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:5px 7px;
  border:1px solid rgba(129,36,95,.18);
  border-radius:999px;
  color:var(--brand-800);
  background:rgba(255,253,252,.96);
  box-shadow:0 5px 16px rgba(74,21,59,.055),inset 0 1px 0 #fff;
  font:700 15px/1.2 "Outfit",sans-serif;
  text-decoration:none;
  letter-spacing:-.005em;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform 160ms cubic-bezier(.22,1,.36,1),box-shadow 160ms ease,border-color 160ms ease,background-color 160ms ease;
}
.reference-header-tools .reference-help-link { position:relative; }
.reference-help-link__icon { display:inline-grid; flex:0 0 auto; place-items:center; color:#a50064; line-height:1; }
.reference-header-tools .reference-help-link__icon { background:none; box-shadow:none; }
.reference-header-tools .reference-help-link b { flex:1; padding-right:32px; font-weight:700; text-align:center; }
.reference-header-tools .reference-help-link__icon { background:#fbf1f6; box-shadow:inset 0 0 0 1px rgba(129,36,95,.11); }
.reference-header-tools .utility-emoji { display:block; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; font-size:17px; line-height:1; transform:translateY(.5px); }
.reference-header-tools svg { width:21px; height:21px; stroke-width:1.7; }
.reference-help-link:hover,
.reference-header-tools .language-picker--reference:hover { transform:translateY(-1px); border-color:rgba(129,36,95,.28); background:#fff; box-shadow:0 8px 20px rgba(74,21,59,.08),inset 0 1px 0 #fff; }
.reference-header-tools .language-picker--reference:focus-within { outline:2px solid #a50064; outline-offset:1px; }
.reference-help-link:active { transform:scale(.98); }
.reference-help-link:focus-visible { outline: 3px solid #a50064; outline-offset: 3px; }

.table-plan-preview { position:absolute; z-index:2; overflow:hidden; border:1px solid #ded2da; border-radius:13px; background:#faf5ef; box-shadow:0 10px 26px rgba(74,21,59,.09); }
.table-plan-preview--arrangement { left:28%; top:62.85%; width:68%; height:26.1%; border-radius:0 13px 13px 0; }
.table-plan-preview--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; }
.table-plan-preview--mobile { position:relative; width:100%; aspect-ratio:1.4; margin-bottom:18px; }
.table-plan-preview__room { position:absolute; inset:0; background:linear-gradient(rgba(126,72,104,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(126,72,104,.04) 1px,transparent 1px),#faf5ef; background-size:24px 24px; }
.table-plan-preview.is-outdoor .table-plan-preview__room { background-color:#e4edda; }
.plan-preview-table,.plan-preview-feature,.plan-preview-note { position:absolute; transform:translate(-50%,-50%); }
.plan-preview-table { z-index:2; }
.plan-preview-table__art { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:block; width:100%; aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; mix-blend-mode:multiply; }
.plan-preview-table__name { position:absolute; top:100%; left:50%; transform:translateX(-50%); color:#4a3547; font:600 clamp(8px,.65vw,12px)/1.2 'DM Sans',sans-serif; white-space:nowrap; }
.plan-preview-feature { display:flex; align-items:center; justify-content:center; border:1px solid #d6c1d0; border-radius:8px; background:#f0e4ed; color:#6d365b; font:600 clamp(8px,.75vw,13px)/1.2 'DM Sans',sans-serif; text-align:center; }
.plan-preview-note { z-index:3; color:#4a3547; font:600 12px/1.2 'DM Sans',sans-serif; }
.reference-event-venue {
  position: absolute;
  z-index: 2;
  display: block;
  object-fit: cover;
  object-position: center;
  background: #f7f2f5;
  pointer-events: none;
  user-select: none;
  animation: none;
}

.reference-venue-visual-backdrop { position:absolute; z-index:1; display:block; background:#eee4eb; pointer-events:none; }
.reference-venue-visual-backdrop--venue { left:41.55%; top:14.35%; width:55.35%; height:61.15%; border-radius:16px; box-shadow:0 12px 28px rgba(74,21,59,.10); }
.reference-venue-visual-backdrop--arrangement { left:28.0%; top:62.85%; width:68.0%; height:26.1%; border-radius:0 13px 13px 0; }
.reference-venue-visual-backdrop--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; border-radius:13px; }
.reference-event-venue.is-custom { filter:drop-shadow(0 11px 14px rgba(74,21,59,.16)); }

.reference-event-venue--venue { left:42.25%; top:20.65%; width:49.05%; height:53.5%; border-radius:9px; }
.reference-event-venue--arrangement { left:28.0%; top:62.85%; width:68.0%; height:26.1%; border-radius:0 13px 13px 0; object-position:center 48%; }
.reference-event-venue--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; border-radius:13px; }

.reference-venue-viewport { position:absolute; z-index:2; overflow:hidden; border:1px solid rgba(92,55,73,.14); border-radius:9px; background:#eee4eb; box-shadow:0 12px 28px rgba(74,21,59,.13); pointer-events:none; }
.reference-event-venue--viewport { position:absolute; max-width:none; max-height:none; display:block; object-fit:cover; object-position:center; border-radius:9px; pointer-events:none; user-select:none; }
.reference-venue-aspect-frame { position:absolute; z-index:3; display:block; border:1px solid rgba(104,25,78,.22); border-radius:10px; pointer-events:none; }
.reference-venue-aspect-frame::after { content:none; }
.reference-venue-dimension { position:absolute; z-index:4; display:block; color:#870051; pointer-events:none; }
.reference-venue-dimension::before,.reference-venue-dimension::after { content:""; position:absolute; width:6px; height:6px; border-radius:50%; background:#a50064; }
.reference-venue-dimension b { position:absolute; display:block; padding:5px 12px; border:1px solid rgba(129,36,95,.13); border-radius:8px; background:rgba(255,253,251,.96); box-shadow:0 3px 10px rgba(74,21,59,.12); font:800 clamp(10px,.82vw,14px)/1 "Outfit",sans-serif; white-space:nowrap; }
.reference-venue-dimension--width { height:1px; border-top:1px solid #a50064; }
.reference-venue-dimension--width::before { left:-3px; top:-3px; }
.reference-venue-dimension--width::after { right:-3px; top:-3px; }
.reference-venue-dimension--width b { left:50%; top:0; transform:translate(-50%,-50%); }
.reference-venue-dimension--height { width:1px; border-left:1px solid #a50064; }
.reference-venue-dimension--height::before { left:-3px; top:-3px; }
.reference-venue-dimension--height::after { left:-3px; bottom:-3px; }
.reference-venue-dimension--height b { left:0; top:50%; transform:translate(-50%,-50%); }

.reference-venue-type-toggle { position:absolute; left:69.7%; top:22.2%; z-index:5; width:20.8%; min-height:4.9%; display:flex; align-items:center; justify-content:center; gap:8px; padding:6px 10px; border:1px solid rgba(129,36,95,.18); border-radius:999px; background:rgba(255,253,251,.94); box-shadow:0 8px 22px rgba(74,21,59,.13); backdrop-filter:blur(14px); }
.venue-type-switch__label { color:#746879; font:700 clamp(9px,.68vw,12px)/1 "Outfit",sans-serif; white-space:nowrap; transition:color 160ms ease; }
.venue-type-switch__label.is-active { color:#870051; }
.venue-type-switch__control { position:relative; flex:0 0 42px; width:42px; height:24px; padding:0; border:0; border-radius:999px; background:#d9ccd8; box-shadow:inset 0 1px 3px rgba(74,21,59,.18); cursor:pointer; transition:background 180ms ease,box-shadow 180ms ease; }
.venue-type-switch__control i { position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(74,21,59,.28); transition:transform 180ms cubic-bezier(.2,.78,.22,1); }
.venue-type-switch__control[aria-checked="true"] { background:#6f8c5d; box-shadow:inset 0 1px 3px rgba(45,76,34,.24); }
.venue-type-switch__control[aria-checked="true"] i { transform:translateX(18px); }
.venue-type-switch__control:active i { transform:scale(.9); }
.venue-type-switch__control[aria-checked="true"]:active i { transform:translateX(18px) scale(.9); }
.venue-type-switch__control:focus-visible { outline:3px solid #d0b4d0; outline-offset:3px; }

.custom-shape-editor { position:absolute; left:42.25%; top:20.65%; z-index:4; width:49.05%; height:53.5%; touch-action:none; }
.custom-shape-editor svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 8px 10px rgba(74,21,59,.16)); pointer-events:none; }
.custom-shape-editor polygon { fill:rgba(255,255,255,.08); stroke:#a50064; stroke-width:.8; vector-effect:non-scaling-stroke; stroke-dasharray:3 2; }
.custom-shape-point { position:absolute; z-index:2; width:22px; height:22px; padding:0; border:4px solid #fff; border-radius:50%; background:#a50064; box-shadow:0 5px 13px rgba(74,21,59,.35); transform:translate(-50%,-50%); cursor:grab; touch-action:none; }
.custom-shape-point:active { cursor:grabbing; transform:translate(-50%,-50%) scale(1.12); }
.custom-shape-point:focus-visible { outline:3px solid #d6b8d2; outline-offset:3px; }
.custom-shape-hint { position:absolute; left:18px; bottom:18px; display:grid; gap:2px; padding:10px 13px; border:1px solid rgba(129,36,95,.16); border-radius:13px; color:#493b50; background:rgba(255,253,251,.92); box-shadow:0 8px 20px rgba(74,21,59,.13); backdrop-filter:blur(12px); pointer-events:none; }
.custom-shape-hint b { font-size:13px; }
.custom-shape-hint span { color:#a50064; font-size:12px; font-weight:800; }

@keyframes reference-venue-in {
  from { transform: scale(.994); filter:blur(1px); }
  to { transform: scale(1); filter:blur(0); }
}

.reference-hotspot {
  position: absolute;
  z-index: 2;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 16px;
  color: transparent;
  background: transparent;
  font-size: 0;
  cursor: pointer;
  text-decoration: none;
}

.reference-hotspot.reference-action {
  z-index: 7;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, .45vw, 8px);
  overflow: hidden;
  padding: 0 clamp(6px, .8vw, 14px);
  border: 1px solid #c7bdc8;
  border-radius: clamp(7px, .7vw, 12px);
  color: #2b1c32;
  background: rgba(255,253,251,.98);
  box-shadow: 0 3px 10px rgba(74,21,59,.06);
  font: 700 clamp(8px, .98vw, 16px)/1.15 "Outfit",sans-serif;
  white-space: nowrap;
}

.reference-hotspot.reference-action span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reference-hotspot.reference-action i {
  flex: none;
  font-style: normal;
  font-size: 1.25em;
  line-height: 1;
}

.reference-hotspot.reference-action--primary {
  border-color: #7b205d;
  color: #fff;
  background: linear-gradient(135deg,#94316f 0%,#7b205d 100%);
  box-shadow: 0 7px 16px rgba(91,25,70,.18);
}

.reference-hotspot.reference-action--secondary:hover {
  border-color: rgba(129,36,95,.45);
  background: #fff;
}

.reference-hotspot:hover {
  box-shadow: inset 0 0 0 2px rgba(129, 36, 95, 0.18);
}
.reference-hotspot:active { background:rgba(129,36,95,.06); }
.reference-hotspot { touch-action:manipulation; }
/* Feedback decorates the hit area; raster artwork never shifts or scales. */
.reference-hotspot::before { content:""; position:absolute; inset:0; border-radius:inherit; background:rgba(129,36,95,.08); opacity:0; transition:opacity 120ms ease-out; pointer-events:none; }
.reference-hotspot:active::before { opacity:1; transition-duration:0ms; }
/* Native controls respond on press; moving canvas geometry is excluded. */
:is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice) {
  touch-action:manipulation;
  transition:scale 180ms cubic-bezier(.22,1,.36,1),background-color 120ms ease-out,box-shadow 120ms ease-out;
}
:is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice):active:not(:disabled) {
  scale:.98;
  transition-duration:70ms;
}
.button:active, .tool-button:active, .zoom-control button:active { transform:none; }
@media (prefers-reduced-motion:reduce) {
  :is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice):active { scale:1; }
}
.reference-hotspot.selection-confirmed::after { animation:selection-confirm 180ms cubic-bezier(.22,1,.36,1) both; }
@keyframes selection-confirm { from { opacity:0; transform:scale(.85); } to { opacity:1; transform:scale(1); } }
.reference-modal__save, .reference-table-variation, .element-delete { touch-action:manipulation; }
.reference-modal__save:active, .reference-table-variation:active { filter:brightness(.96); }
@media (prefers-reduced-motion:reduce) {
  .reference-hotspot.selection-confirmed::after { animation:none; }
}
@media (prefers-contrast:more) {
  .reference-hotspot:focus-visible { outline:3px solid #481238; outline-offset:2px; }
  .floating-toolbar, .reference-modal { background:#fff; border:2px solid #481238; }
}
.screen-loading { padding:40px; text-align:center; color:#75616e; }
.planner-loading { display:grid; place-items:center; width:100%; min-height:100%; background:var(--page); }
.planner-loading__ring { width:34px; height:34px; border:3px solid var(--brand-100); border-top-color:var(--brand-700); border-radius:50%; animation:planner-loading-turn 650ms linear infinite; }
@keyframes planner-loading-turn { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .planner-loading__ring { animation:none; } }
/* Keep scrollbars from changing the canvas width between editor and setup. */
html { scrollbar-gutter: stable; }
.topbar[hidden] { display: none; }
body { overflow-x:clip; }

.reference-hotspot.is-current { z-index:3; box-shadow: inset 0 0 0 3px #a50064, 0 8px 22px rgba(74,21,59,.16); }
.reference-hotspot.is-current::after { content:"✓"; position:absolute; top:12px; right:12px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#a50064; box-shadow:0 0 0 5px rgba(255,255,255,.72); font-size:16px; }
.reference-neutral-card { position:absolute; z-index:1; pointer-events:none; overflow:hidden; border:1px solid #e9e5e9; border-radius:8px; background:#fff; display:flex; flex-direction:column; align-items:center; }
.reference-neutral-card::before { content:""; display:block; width:100%; flex:1; min-height:0; background-position:center; background-repeat:no-repeat; background-size:contain; }
.reference-neutral-card::after { display:block; flex:none; width:100%; padding:0 0 5%; color:#171126; text-align:center; font:400 clamp(12px,1.45vw,25px)/1.25 "Outfit",Arial,sans-serif; }
.reference-neutral-event { left:52.3%; top:14.4%; width:21.1%; height:24.4%; box-shadow:0 5px 15px #3525320b; }
.reference-neutral-event::before { background-image:url('/assets/cards/wedding-clean.webp'); }
.reference-neutral-event::after { content:"Düğün"; }
.reference-neutral-round { left:31%; top:37.5%; width:12.2%; height:21.6%; }
.reference-neutral-round::before { background-image:url('/assets/cards/round-clean.png'); }
.reference-neutral-round::after { content:"Yuvarlak"; }
.reference-neutral-room { left:6.1%; top:29.65%; width:10.45%; height:15.55%; }
.reference-neutral-room::before { background-size:42% 65%; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 64'%3E%3Cpath d='M10 12H66V52H10Z' fill='none' stroke='%23b98294' stroke-width='3'/%3E%3Cg fill='%23b98294'%3E%3Ccircle cx='10' cy='12' r='5'/%3E%3Ccircle cx='66' cy='12' r='5'/%3E%3Ccircle cx='10' cy='52' r='5'/%3E%3Ccircle cx='66' cy='52' r='5'/%3E%3C/g%3E%3C/svg%3E"); }
.reference-neutral-room::after { content:"Dikdörtgen"; padding-bottom:10%; }
.choice-group-backdrop { position:absolute; z-index:1; background:#faf8f8; pointer-events:none; }
.reference-hotspot.uniform-choice { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2px 6px 6px; gap:2px; background:#fff; border:3px solid transparent; border-radius:12px; box-shadow:inset 0 0 0 1px #e9e5e9,0 3px 10px #35253208; overflow:hidden; }
.reference-hotspot.uniform-choice.is-current { border-color:#a50064; box-shadow:0 3px 10px #35253208; }
.reference-hotspot.uniform-choice:hover:not(.is-current) { box-shadow:inset 0 0 0 1px #c9b5c5,0 3px 10px #35253208; }
.uniform-choice .choice-art { display:block; width:100%; flex:1; min-height:0; object-fit:contain; pointer-events:none; }
.uniform-choice svg.choice-art:not(.choice-room-icon) { mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 90%,transparent); mask-composite:intersect; }
.uniform-choice .choice-room-icon { width:43%; fill:none; stroke:#b98294; stroke-width:3; }
.uniform-choice .choice-label { display:block; flex:none; color:#171126; font:400 clamp(10px,1.45vw,25px)/1.25 "Outfit",Arial,sans-serif; }
.uniform-choice .themed-table-art { flex:none; width:min(100%, 10.5vw); aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; background-color:#fff; }
.venue-feature.venue-feature--aisle { background:rgba(235,232,237,.32); border:0; border-left:2px solid #b9b7c666; border-right:2px solid #b9b7c666; border-radius:0; box-shadow:none; color:#747082; }
.venue-feature--aisle:not(.is-selected) .feature-grip { opacity:0; }
.assembly-frames { position:relative; width:min(520px,86vw,68svh); aspect-ratio:1; margin:16px auto; overflow:hidden; }
.assembly-frame { position:absolute; inset:0; background-size:300% 200%; background-repeat:no-repeat; }
.assembly-frames { mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent); }
.mobile-app { max-width:760px; margin:auto; padding:0 18px calc(110px + env(safe-area-inset-bottom)); }
.mobile-header { padding:20px 0 18px; }
.mobile-header__top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.mobile-header .brand { background:none; border:0; padding:0; cursor:pointer; }
.mobile-help-link { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:7px 14px 7px 8px; border:1px solid var(--border); border-radius:999px; color:var(--brand-700); background:#fff; font-size:14px; font-weight:700; text-decoration:none; transition:transform 160ms cubic-bezier(.22,1,.36,1),border-color 160ms ease,box-shadow 160ms ease; }
.mobile-help-link__icon { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--brand-700); background:#f8edf4; box-shadow:inset 0 0 0 1px rgba(129,36,95,.12); }
.mobile-header__tools .mobile-help-link,
.mobile-header__tools .language-picker { border-radius:12px; border-color:#e5d8e1; box-shadow:none; font-weight:600; }
.mobile-header__tools .mobile-help-link { order:-1; }
.mobile-header__tools .language-picker { background:#f6f0f5; }
.mobile-header__tools .language-picker select { font-size:14px; font-weight:600; }
.mobile-header__tools .mobile-help-link__icon,
.mobile-header__tools .language-picker__icon { width:24px; height:24px; background:none; box-shadow:none; }
.mobile-header__tools svg { width:21px; height:21px; stroke-width:1.7; }
.mobile-header nav { display:flex; justify-content:space-between; margin-top:24px; gap:8px; }
.mobile-header nav span { display:grid; justify-items:center; gap:6px; color:var(--muted); font-size:12px; }
.mobile-header nav i { display:grid; place-items:center; font-style:normal; width:28px; height:28px; border-radius:50%; background:#eee5ef; }
.mobile-header [aria-current] { color:var(--brand-700); font-weight:700; }
.mobile-header [aria-current] i { background:var(--brand-700); color:white; }
.mobile-step h1 { font:600 30px/1.15 "Outfit",Arial,sans-serif; margin:12px 0 24px; letter-spacing:-.6px; }
.mobile-step h2 { font:600 20px "Outfit",Arial,sans-serif; margin:0 0 16px; }
.mobile-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.mobile-choice { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-width:0; padding:11px 5px; border:2px solid transparent; border-radius:16px; background:white; box-shadow:inset 0 0 0 1px var(--border),0 5px 16px #56132f09; cursor:pointer; transform:translateZ(0); transition:transform 180ms cubic-bezier(.22,1,.36,1),border-color 150ms ease,box-shadow 180ms ease,background-color 150ms ease; }
.mobile-choice img,.mobile-choice svg { width:100%; height:104px; object-fit:contain; }
.mobile-choice b { font:500 17px "Outfit",Arial,sans-serif; }
.mobile-choice.is-selected { border-color:var(--brand-700); box-shadow:0 5px 16px #56132f09; }
.mobile-choice.is-selected::after { content:'✓'; position:absolute; top:7px; right:7px; width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--brand-700); color:white; font-size:13px; }
.mobile-choice.is-selected::after { animation:selection-confirm 180ms ease-out; }
.mobile-stepper button { touch-action:manipulation; transition:background-color 120ms ease,scale 120ms ease; }
.mobile-stepper button:active { background:#e7d7e7; scale:.94; }
.mobile-choice:active,.mobile-mixed:active,.mobile-help-link:active { transform:scale(.975); transition-duration:70ms; }
.mobile-choice:focus-visible { outline:3px solid #bba0c7; outline-offset:3px; }
.mobile-panel { background:#fffdfb; border:1px solid var(--border); border-radius:20px; padding:18px; margin-bottom:16px; box-shadow:var(--shadow-card); }
.mobile-venue { display:block; width:100%; max-height:280px; object-fit:cover; border-radius:20px; margin-bottom:18px; }
.mobile-venue-shell { position:relative; min-height:210px; margin-bottom:18px; overflow:hidden; border-radius:20px; background:linear-gradient(145deg,#f1e7ec,#e8dce5); box-shadow:var(--shadow-card); }
.mobile-venue-shell.is-square { width:min(100%,460px); min-height:0; aspect-ratio:1; margin-inline:auto; }
.mobile-venue-shell .mobile-venue { height:100%; min-height:210px; margin:0; border-radius:20px; }
.mobile-venue-shell.is-square .mobile-venue { min-height:0; }
.mobile-venue-shell .custom-shape-editor { inset:0; width:100%; height:100%; }
.mobile-venue-shell .custom-shape-point { width:18px; height:18px; border-width:3px; }
.mobile-venue-shell .custom-shape-hint { left:10px; bottom:10px; padding:7px 9px; }
.mobile-venue-shell .custom-shape-hint b { font-size:11px; }
.mobile-venue-shell .custom-shape-hint span { font-size:10px; }
.mobile-venue-type-toggle { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; padding:12px; border:1px solid var(--border); border-radius:15px; background:#f8f3f7; }
.mobile-venue-type-toggle .venue-type-switch__label { font-size:14px; }
.mobile-venue-type-toggle .venue-type-switch__control { flex-basis:50px; width:50px; height:28px; }
.mobile-venue-type-toggle .venue-type-switch__control i { width:22px; height:22px; }
.mobile-venue-type-toggle .venue-type-switch__control[aria-checked="true"] i { transform:translateX(22px); }
.mobile-venue-type-toggle .venue-type-switch__control[aria-checked="true"]:active i { transform:translateX(22px) scale(.9); }
.mobile-room-shapes,.mobile-table-shapes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:18px; }
.mobile-room-shapes span { font-size:36px; color:var(--brand-500); }
.mobile-room-shapes b,.mobile-table-shapes b { font-size:14px; }
.mobile-table-shapes { margin:0; }
.mobile-table-art { width:100%; aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; }
.mobile-metric { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0; }
.mobile-metric label { font-weight:600; }
.onboarding-step-3 .arrangement-calculation-hint { margin:16px 0 0;max-width:62ch;color:#75616e;font-size:14px;line-height:1.55; }
.onboarding-step-3 .arrangement-calculation-hint.is-limited { color:#8b2450; }
.mobile-stepper button:disabled { opacity:.35;cursor:not-allowed; }
.mobile-stepper { display:grid; grid-template-columns:44px 64px 44px; border:1px solid var(--border); border-radius:12px; overflow:hidden; flex-shrink:0; }
.mobile-stepper button { min-height:48px; background:#f7f2f7; border:0; color:var(--brand-700); font-size:24px; }
.mobile-stepper input { min-width:0; width:100%; border:0; text-align:center; background:white; font-size:20px; padding:4px; appearance:textfield; }
.mobile-stepper input::-webkit-inner-spin-button { appearance:none; }
.mobile-capacity.reference-capacity-value { position:static; width:auto; height:auto; min-height:0; padding:18px; margin:0 0 12px; background:white; border:1px solid var(--border); border-radius:16px; }
.mobile-capacity.reference-capacity-value b { font:600 21px "Outfit",Arial,sans-serif; }
.mobile-capacity.reference-capacity-value span { font-size:16px; }
.mobile-capacity.reference-capacity-value small { font-size:14px; }
.mobile-mixed { width:100%; min-height:48px; text-align:left; border:0; background:#fce4ee; padding:12px 16px; border-radius:12px; }
.mobile-summary { margin:0; }
.mobile-summary div { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--border); }
.mobile-summary dt { color:var(--muted); }
.mobile-summary dd { margin:0; font-weight:600; }
.mobile-warning { color:#a73946; }
.mobile-actions { position:fixed; z-index:12; bottom:0; left:0; right:0; display:flex; gap:12px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:#fcf8f2f5; border-top:1px solid var(--border); }
.mobile-actions .button { flex:1; min-height:50px; padding:12px 14px; font-size:16px; gap:8px; white-space:nowrap; }
@media (max-width:760px) and (orientation:portrait) {
  html,body { overflow-x:clip; }
  input,select,textarea { font-size:16px; }
  .mobile-app .field-row { grid-template-columns:1fr 1fr; }
  .mobile-app .area-summary { margin-top:16px; gap:10px; }
  .mobile-app .area-summary strong { white-space:nowrap; font-size:25px; }
  .editor-header { display:flex; flex-wrap:wrap; padding:12px; gap:10px; }
  .editor-header .brand { display:inline-flex; flex:1 0 100%; }
  .editor-header .brand__mark { width:32px; height:32px; }
  .editor-header .brand__name { font-size:23px; }
  .event-name { min-width:0; flex:1; }
  .event-name strong { font-size:15px; }
  .event-name small { font-size:12px; }
  .editor-actions { gap:6px; }
  .editor-actions .button { width:auto; min-width:0; padding:10px; }
  .mobile-inspector-toggle { flex:1 0 100%; min-height:44px; }
  .editor-layout { display:block; height:calc(100svh - 170px); min-height:400px; }
  .canvas-wrap { height:100%; overflow:auto; padding:12px 12px 94px; touch-action:pan-x pan-y; }
  .canvas-stage { position:relative; inset:auto; width:740px; height:530px; }
  .floor-canvas { position:relative; touch-action:pan-x pan-y; }
  .canvas-table { width:95px; height:95px; }
  .seat-button::before { content:""; position:absolute; inset:-10px; border-radius:50%; }
  .element-resize::after { content:""; position:absolute; inset:-15px; }
  .element-delete::after { content:""; position:absolute; inset:-9px; }
  .floating-toolbar { position:fixed; z-index:11; bottom:calc(10px + env(safe-area-inset-bottom)); width:calc(100% - 20px); max-width:none; overflow-x:auto; justify-content:flex-start; }
  .tool-button { min-width:56px; min-height:48px; }
  .zoom-control button { min-width:44px; height:44px; }
  .inspector { position:fixed; left:0; right:0; bottom:0; z-index:25; max-height:72svh; display:none; border-radius:24px 24px 0 0; padding:20px 18px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -10px 50px #30202a30; overscroll-behavior:contain; }
  .inspector.is-open { display:block; animation:sheet-in 280ms cubic-bezier(.2,.8,.2,1); }
  .inspector-title { position:sticky; top:-20px; background:#fffdfb; padding:12px 0; z-index:2; }
  .guest-name-input,.guest-side-select,.guest-group-select,.guest-group-name-input { min-height:44px; font-size:16px; }
  .guest-row--editable .guest-name-input,.guest-row--editable .guest-side-select,.guest-row--editable .guest-group-select { min-height:44px; font-size:16px; }
  .guest-group-note { font-size:12px; }
  .planning-info { padding:18px; margin:0 0 100px; font-size:14px; }
  .toast { bottom:100px; right:14px; left:14px; max-width:none; }
}
@keyframes sheet-in { from { transform:translateY(32px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@media (hover:hover) {
  .mobile-choice:hover { transform:translateY(-2px); box-shadow:inset 0 0 0 1px #ccb8c8,0 10px 24px rgba(74,21,59,.1); }
  .mobile-help-link:hover { transform:translateY(-1px); border-color:#c3a8bd; box-shadow:0 7px 18px rgba(74,21,59,.09); }
  .reference-event-summary:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(74,21,59,.16); }
}
@media (prefers-reduced-motion:reduce) { .mobile-choice,.mobile-mixed,.mobile-help-link { transition:none; } .inspector.is-open { animation:none; } }
.assembly-overlay { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:#faf7fa; color:#56132f; }
.assembly-content { text-align:center; }
.assembly-content p { font:500 18px/1.4 'DM Sans',sans-serif; }
.assembly-table { position:relative; width:min(340px,60vw,50svh); height:min(340px,60vw,50svh); margin:96px auto; }
.assembly-surface { position:absolute; inset:22%; display:flex; flex-direction:column; justify-content:center; gap:8px; background:radial-gradient(circle at 35% 25%,#fff,#f0e5da); border:6px solid #eee0d2; box-shadow:0 12px 24px #5a374624,inset 0 0 0 2px #fff; border-radius:20%; font:600 20px "Outfit",Arial,sans-serif; }
.assembly-surface small { font:400 13px 'DM Sans',sans-serif; }
.assembly-table--round .assembly-surface { border-radius:50%; }
.assembly-table--rectangle .assembly-surface { inset:28% 17%; border-radius:12px; }
.assembly-seat { position:absolute; width:28px; height:30px; border:3px solid #fff; border-radius:10px 10px 7px 7px; background:linear-gradient(#c8a9b9,#a7859e); box-shadow:0 4px 7px #56132f25; transform:translate(-50%,-50%); }
.venue-theme--henna .assembly-seat { background:linear-gradient(#c78090,#96364d); }
.venue-theme--engagement .assembly-seat { background:linear-gradient(#e5bdcc,#b18baf); }
.venue-theme--other .assembly-seat { background:linear-gradient(#c9c9cc,#9a98a0); }
.venue-theme--corporate .assembly-seat { background:linear-gradient(#adbbcd,#71849e); }
.venue-theme--birthday .assembly-seat { background:linear-gradient(#f2c1ce,#d995ac); }
.reference-guest-caption { position:absolute; z-index:2; left:12%; top:51.5%; width:9%; height:3.2%; background:#fff; color:#7b7591; text-align:center; font:400 clamp(10px,1.2vw,20px)/1.3 "Outfit",Arial,sans-serif; }
.planning-info { max-width:960px; margin:32px auto; padding:24px; color:#61566a; font:400 16px/1.65 "Outfit",sans-serif; }
.planning-info h2 { margin:0 0 12px; color:#56132f; font:600 24px/1.3 "Outfit",Arial,sans-serif; }
.planning-info p { margin:10px 0; }
.planning-info nav { display:flex; flex-wrap:wrap; gap:8px 18px; margin:18px 0; }
.planning-info a { color:#a50064; font-weight:700; }
.planning-info .planning-info__legal { margin-top:26px; padding-top:18px; border-top:1px solid #e7dce7; font-size:14px; }
.planning-info h3 { margin:24px 0 10px; color:#56132f; font:600 20px/1.3 "Outfit",Arial,sans-serif; }
.planning-info details { padding:10px 0; border-top:1px solid #e7dce7; }
.planning-info summary { cursor:pointer; font-weight:600; }
.is-editor .planning-info { display:none; }
@media print { .planning-info { display:none; } }

.reference-hotspot:focus-visible {
  outline: 4px solid #a50064;
  outline-offset: 2px;
}

.reference-venue-lower-cleanup { position:absolute; left:3.75%; top:68.15%; z-index:4; width:35.9%; height:20.05%; border-radius:0 0 14px 14px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); pointer-events:none; }
.reference-first-step-cleanup { position:absolute; left:18.35%; top:14.45%; z-index:4; width:10.3%; height:3.4%; border-radius:3px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); box-shadow:0 0 8px rgba(255,253,251,.88); pointer-events:none; }
.reference-header-cleanup { position:absolute; z-index:4; pointer-events:none; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); box-shadow:0 0 8px rgba(255,253,251,.88); }
.reference-header-cleanup--onboarding { left:74.5%; top:0; width:25.5%; height:10.2%; }
.reference-header-cleanup--summary { left:79.5%; top:0; width:20.5%; height:9.2%; }
.reference-header-cleanup--editor { left:61.4%; top:0; width:9.8%; height:9.2%; }

.reference-localized-progress {
  position:absolute;
  left:37.2%;
  top:6.1%;
  z-index:6;
  width:25.6%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  gap:.45vw;
  padding:.2% .4%;
  color:#6f6576;
  background:#fbf8f6;
  font:600 clamp(7px,.72vw,12px)/1.2 "Outfit",sans-serif;
  text-align:center;
  pointer-events:none;
}
.reference-localized-progress.is-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.reference-localized-progress span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reference-localized-progress span.is-active { color:#870051; font-weight:800; }
.reference-localized-copy {
  position:absolute;
  z-index:6;
  display:grid;
  align-content:center;
  gap:.6vw;
  padding:.8% 1.25%;
  color:#24142d;
  background:linear-gradient(90deg,#fbf8f6 0%,#fbf8f6 94%,rgba(251,248,246,.72) 100%);
  pointer-events:none;
}
.reference-localized-copy h2 { margin:0; font:700 clamp(17px,2.55vw,43px)/1.05 "Outfit", system-ui, sans-serif; letter-spacing:-.025em; }
.reference-localized-copy p { margin:0; max-width:42ch; color:#75616e; font:500 clamp(8px,.95vw,16px)/1.35 "Outfit",sans-serif; }
.reference-localized-copy--event { left:18.2%; top:14.2%; width:30.2%; height:21.2%; }
.reference-localized-copy--venue { left:4.1%; top:15.4%; width:35.5%; height:12.9%; }
.reference-localized-copy--layout { left:29.6%; top:13.0%; width:40.8%; height:11.4%; text-align:center; background:#fbf8f6; }
.reference-localized-copy--layout p { margin-inline:auto; }
.reference-localized-copy--summary { left:35.1%; top:13.1%; width:29.8%; height:8.3%; text-align:center; background:#fbf8f6; }

.reference-localized-label {
  position:absolute;
  z-index:6;
  display:flex;
  align-items:center;
  color:#30202a;
  background:#fffdfb;
  font:700 clamp(8px,.95vw,16px)/1.2 "Outfit",sans-serif;
  pointer-events:none;
}
.reference-localized-label--venue-width { left:6.15%; top:47.2%; width:12%; height:3.1%; }
.reference-localized-label--venue-height { left:22.75%; top:47.2%; width:12%; height:3.1%; }
.reference-localized-label--venue-area { left:11.2%; top:59.2%; width:13%; height:4.2%; justify-content:center; background:#f4ecf3; }
.reference-localized-label--arr-guests { left:10.4%; top:29.2%; width:14.8%; height:3.3%; }
.reference-localized-label--arr-guests-note { left:10.4%; top:32.4%; width:16.9%; height:2.8%; }
.reference-localized-label--arr-shape { left:36.2%; top:29.0%; width:15%; height:3.4%; }
.reference-localized-label--arr-shape-note { left:36.2%; top:32.3%; width:24.4%; height:2.8%; }
.reference-localized-label--arr-tables { left:77.6%; top:29.0%; width:14%; height:3.4%; }
.reference-localized-label--arr-tables-note { left:77.6%; top:32.3%; width:16.3%; height:2.8%; }
.reference-localized-label--arr-seats { left:77.6%; top:46.2%; width:14%; height:3.4%; }
.reference-localized-label--arr-seats-note { left:77.6%; top:49.5%; width:16.3%; height:2.8%; }
.reference-localized-label--arr-guests-note,
.reference-localized-label--arr-shape-note,
.reference-localized-label--arr-tables-note,
.reference-localized-label--arr-seats-note { color:#75616e; font-size:clamp(6px,.68vw,11px); font-weight:500; }
.reference-localized-label--arr-mixed { left:10.9%; top:81.4%; width:12.4%; height:3.2%; justify-content:center; background:#fffdfb; font-size:clamp(7px,.78vw,13px); }
.reference-localized-label--sum-area,
.reference-localized-label--sum-guests,
.reference-localized-label--sum-tables,
.reference-localized-label--sum-shape,
.reference-localized-label--sum-seats,
.reference-localized-label--sum-total { left:11.2%; width:14.7%; height:4%; background:#fffdfb; }
.reference-localized-label--sum-area { top:26.8%; }
.reference-localized-label--sum-guests { top:35.4%; }
.reference-localized-label--sum-tables { top:44.1%; }
.reference-localized-label--sum-shape { top:52.8%; }
.reference-localized-label--sum-seats { top:61.5%; }
.reference-localized-label--sum-total { top:70.2%; }
.reference-localized-label--event-next,
.reference-localized-label--venue-back,
.reference-localized-label--venue-next,
.reference-localized-label--arr-back,
.reference-localized-label--arr-next,
.reference-localized-label--sum-back,
.reference-localized-label--sum-next { justify-content:center; border-radius:9px; font-size:clamp(9px,1.05vw,18px); }
.reference-localized-label--event-next { left:83%; top:89.7%; width:13.5%; height:6.8%; color:#fff; background:#a50064; }
.reference-localized-label--venue-back { left:36.4%; top:89.9%; width:13%; height:6.2%; border:1px solid #bdb4be; }
.reference-localized-label--venue-next { left:50.6%; top:89.8%; width:13.5%; height:6.4%; color:#fff; background:#a50064; }
.reference-localized-label--arr-back { left:32.9%; top:90.7%; width:16.2%; height:7.2%; border:1px solid #bdb4be; }
.reference-localized-label--arr-next { left:50%; top:90.7%; width:17%; height:7.2%; color:#fff; background:#a50064; }
.reference-localized-label--sum-back { left:33.2%; top:89.6%; width:16.5%; height:6.8%; border:1px solid #bdb4be; }
.reference-localized-label--sum-next { left:50.5%; top:89.6%; width:16.5%; height:6.8%; color:#fff; background:#a50064; }

body.is-rtl .reference-localized-copy { direction:rtl; text-align:right; }
body.is-rtl .reference-localized-copy--layout,
body.is-rtl .reference-localized-copy--summary { text-align:center; }
body.is-rtl .reference-canvas { direction:ltr; }
body.is-rtl .reference-localized-copy,
body.is-rtl .language-picker { direction:rtl; }
body.is-rtl .reference-localized-progress { direction:ltr; }
body.is-rtl .reference-localized-progress span,
body.is-rtl .reference-localized-label { direction:rtl; }
body.is-rtl .language-picker select { padding:8px 0 8px 20px; }
body.is-rtl .reference-header-tools .language-picker--reference { direction:ltr; }
body.is-rtl .reference-header-tools .language-picker--reference select { direction:ltr; padding:0 26px 0 0; }
body.is-rtl .event-name { padding-left:0; padding-right:24px; border-left:0; border-right:1px solid var(--border); text-align:right; }
body.is-rtl .inspector { border-right:0; border-left:1px solid var(--border); }
body.is-rtl .inspector,
body.is-rtl .mobile-app,
body.is-rtl .reference-modal { direction:rtl; text-align:right; }
body.is-rtl input[type="number"],
body.is-rtl .date-entry__parts input { direction:ltr; text-align:center; }
body.is-rtl .guest-name-input,
body.is-rtl .guest-group-name-input { text-align:right; }

.reference-seat {
  z-index: 4;
  width: 1.52%;
  height: 3.10%;
  padding: 0;
  border: max(1px, 0.12vw) solid #fffaf5;
  border-radius: 42%;
  transform: translate(-50%, -50%);
  box-shadow: 0 1px 5px rgba(48, 30, 42, 0.32);
}

.reference-seat.seat--empty { background: #b8b8c2; }
.reference-seat.seat--bride { background: #e65f91; }
.reference-seat.seat--groom { background: #5d91db; }
.reference-seat.seat--both {
  background: linear-gradient(to right, #e65f91 0%, #e65f91 50%, #5d91db 50%, #5d91db 100%);
}

.reference-event-summary { position:absolute; left:18.8%; bottom:3.7%; z-index:4; width:29%; min-height:64px; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-items:center; gap:2px 12px; padding:11px 16px; border:1px solid rgba(129,36,95,.22); border-radius:18px; color:#56132f; background:rgba(255,253,251,.92); box-shadow:0 12px 30px rgba(74,21,59,.12); text-align:left; cursor:pointer; backdrop-filter:blur(16px); transition:transform 180ms cubic-bezier(.22,1,.36,1),box-shadow 180ms ease,border-color 160ms ease; }
.reference-empty-plan-cleanup { position:absolute; left:67.15%; top:88.35%; z-index:3; width:15.35%; height:9.05%; border-radius:0; background:linear-gradient(180deg,#fbf8f6 0%,#fcfaf8 100%); pointer-events:none; }
.reference-event-summary:active { transform:scale(.985); transition-duration:70ms; }
.reference-event-summary b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 17px/1.2 "Outfit", system-ui, sans-serif; }
.reference-event-summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#75616e; font-size:12px; }
.reference-event-summary em { grid-column:2; grid-row:1 / 3; font-style:normal; font-size:20px; }
.reference-modal__backdrop { position:absolute; inset:0; z-index:19; border:0; background:rgba(45,26,42,.28); backdrop-filter:blur(3px); }
.reference-modal { position:absolute; left:50%; top:50%; z-index:20; width:min(560px,82%); transform:translate(-50%,-50%); padding:28px; border:1px solid #e2d7e3; border-radius:26px; color:#30202a; background:#fffdfb; box-shadow:0 28px 80px rgba(43,20,38,.28); }
.reference-modal__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.reference-modal__head small { color:#a50064; font-weight:800; letter-spacing:.12em; }
.reference-modal__head h2 { margin:5px 0 0; font-size:30px; }
.reference-modal__head button { width:42px; height:42px; border:1px solid #e6dce8; border-radius:13px; background:#fff; cursor:pointer; }
.reference-modal__grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }
.reference-modal__grid > label:first-child { grid-column:1 / -1; }
.reference-modal__grid > label { display:grid; gap:7px; color:#56132f; font-size:13px; font-weight:700; }
.reference-modal__grid input { width:100%; min-height:50px; padding:0 14px; border:1px solid #e6dce8; border-radius:13px; color:#30202a; background:#fff; outline:none; }
.reference-modal__grid input:focus { border-color:#a50064; box-shadow:0 0 0 4px rgba(205,184,216,.45); }
.date-entry { width:100%; min-width:0; margin:0; padding:0; overflow:hidden; border:0; }
.date-entry legend { width:100%; margin:0 0 9px; padding:0; color:inherit; font:inherit; text-align:center; }
.date-entry__parts { width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.15fr); gap:8px; }
.date-entry__parts label { min-width:0; display:grid; grid-column:auto; gap:4px; color:#6f6678; font-size:11px; font-weight:700; text-align:center; }
.date-entry__parts label > span { min-width:0; overflow:hidden; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.date-entry__parts input { width:100%; max-width:100%; min-width:0; padding-inline:6px; text-align:center; font-variant-numeric:tabular-nums; }
.date-entry__parts input:invalid { border-color:#b54253; }
.inspector .date-entry legend { text-align:start; }
.inspector .date-entry__parts label { font-size:12px; }
.inspector .date-entry__parts input { min-height:44px;padding:10px 6px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink);font:400 16px/1.3 Outfit,Arial,sans-serif; }
.reference-modal__save { width:100%; min-height:50px; margin-top:20px; border:1px solid #870051; border-radius:14px; color:#fff; background:linear-gradient(#bd2479,#a50064); font-weight:800; cursor:pointer; box-shadow:0 9px 20px rgba(74,21,59,.18); }
.reference-number-input { position:absolute; z-index:4; min-width:0; padding:0 clamp(6px,.8vw,14px); overflow:hidden; border:0; color:#30202a; background:#fffdfb; text-align:center; text-overflow:clip; font:700 clamp(16px,1.45vw,24px)/1 "Outfit", system-ui, sans-serif; font-variant-numeric:tabular-nums; appearance:textfield; -moz-appearance:textfield; outline:none; }
.reference-number-input::-webkit-inner-spin-button,.reference-number-input::-webkit-outer-spin-button { margin:0; appearance:none; }
.reference-number-input:focus { box-shadow:inset 0 0 0 3px rgba(129,36,95,.38); }
.reference-area-value { position:absolute; left:27.15%; top:59.15%; z-index:4; width:11.9%; height:8.65%; min-width:0; display:grid; place-items:center; overflow:hidden; padding:0 4px; white-space:nowrap; color:#870051; background:linear-gradient(90deg,#f7eff7,#f8f1f7); text-align:center; text-overflow:clip; font:700 clamp(14px,1.5vw,24px)/1 "Outfit", system-ui, sans-serif; font-variant-numeric:tabular-nums; }
.reference-step-value { position:absolute; z-index:4; display:grid; place-items:center; padding:0 0 .14em; color:#30202a; background:#fffdfb; font:700 35px/1 "Outfit", system-ui, sans-serif; }
.reference-step-input { padding:0 0 .14em; border:0; border-radius:10px; text-align:center; appearance:textfield; -moz-appearance:textfield; outline:none; }
.reference-step-input::-webkit-inner-spin-button, .reference-step-input::-webkit-outer-spin-button { margin:0; appearance:none; }
.reference-step-input:focus { box-shadow:inset 0 0 0 3px rgba(129,36,95,.42); }
.reference-step-value--guests { left:11%; top:42%; width:10.8%; height:8%; }
.reference-step-value--tables { left:82%; top:36.3%; width:8.5%; height:6.4%; }
.reference-step-value--seats { left:82%; top:53.3%; width:8.5%; height:6.4%; }
.reference-capacity-value { position:absolute; left:6.2%; top:64.5%; z-index:4; width:24.8%; height:14.5%; display:grid; align-content:center; gap:4px; overflow:hidden; padding:8px 16px; color:#30202a; background:rgba(255,253,251,.99); border-radius:12px; }
.reference-capacity-value b { display:block; white-space:nowrap; font:700 clamp(14px,1.25vw,21px)/1.2 "Outfit", system-ui, sans-serif; }
.reference-capacity-value span { display:block; white-space:nowrap; color:#367450; font-size:clamp(10px,0.78vw,13px); font-weight:700; }
.reference-capacity-value small { color:#75616e; font-size:11px; }
.reference-capacity-value.status-danger { border-left:4px solid #c2444c; }
.reference-capacity-value.status-danger span { color:#b23b46 !important; }
.reference-capacity-value.status-surplus { border-left:4px solid #b7833f; }
.reference-capacity-value.status-surplus span { color:#9b6726 !important; }
.reference-arrangement-cleanup { position:absolute; top:62.6%; z-index:2; width:7.0%; height:26.6%; pointer-events:none; }
.reference-arrangement-cleanup--left { left:0; background:linear-gradient(90deg,#f4eaf5 0%,#faf6f3 72%,rgba(250,246,243,0) 100%); }
.reference-arrangement-cleanup--right { right:0; background:linear-gradient(270deg,#f4eaf5 0%,#faf6f3 72%,rgba(250,246,243,0) 100%); }
.reference-arrangement-panel-cleanup { position:absolute; left:4%; top:62.6%; z-index:3; width:27.1%; height:26.2%; border-radius:12px 0 0 12px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf8 100%); pointer-events:none; }
.reference-table-variation { position:absolute; left:6.2%; top:80.1%; z-index:5; width:21.8%; height:6.0%; display:flex; align-items:center; gap:12px; padding:0 14px; border:0; border-radius:11px; color:#51485c; background:rgba(255,253,251,.99); font-size:clamp(11px,.92vw,15px); cursor:pointer; text-align:left; }
.reference-table-variation i { position:relative; width:42px; height:24px; flex:0 0 auto; border-radius:999px; background:#cbc7d1; box-shadow:inset 0 1px 3px rgba(37,22,47,.16); transition:background 140ms ease; }
.reference-table-variation i::after { content:""; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(37,22,47,.22); transition:transform 140ms ease; }
.reference-table-variation b { font-weight:700; white-space:nowrap; }
.reference-table-variation.is-on i { background:#a50064; }
.reference-table-variation.is-on i::after { transform:translateX(18px); }
.reference-table-variation:focus-visible { outline:3px solid rgba(129,36,95,.5); outline-offset:2px; }
.reference-summary-values { position:absolute; left:20.0%; top:25.5%; z-index:4; width:8%; height:51.5%; padding-inline-start:.8%; display:grid; grid-template-rows:repeat(6,1fr); align-items:center; color:#30202a; background:#fffdfb; font:700 clamp(13px,1.15vw,19px)/1 "Outfit", system-ui, sans-serif; }
.reference-summary-values b { display:flex; align-items:center; min-height:100%; }
.reference-summary-status { position:absolute; left:5.8%; top:77.0%; z-index:4; width:22.6%; min-height:6.4%; display:flex; align-items:center; padding:0 24px; border-radius:14px; color:#286446; background:rgba(228,244,233,.98); font-size:15px; font-weight:800; }
.reference-summary-status.status-danger { color:#a73946; background:rgba(253,231,232,.98); }
.reference-summary-status.status-surplus { color:#8d5f26; background:rgba(255,241,220,.98); }

@media (max-width: 760px) and (orientation: portrait) {
  body.reference-mode { overflow: auto; }
  .reference-app { place-items: start center; }
  .reference-shell { width: 100%; height: auto; min-width: 0; min-height: 0; display: block; }
  .reference-canvas { width: 100%; max-width: 100%; overflow: visible; }
  .reference-event-summary { min-height: 34px; padding: 5px 8px; border-radius: 9px; }
  .reference-event-summary b { font-size: 9px; }
  .reference-event-summary span { font-size: 7px; }
  .reference-event-summary em { font-size: 11px; }
  .reference-hotspot.is-current::after { top:4px; right:4px; width:15px; height:15px; font-size:8px; }
  .reference-brand-fix { padding:0 3.65%; }
  .reference-number-input { padding:0 5px; font-size:13px; }
  .reference-area-value { font-size:12px; }
  .reference-step-value { font-size:14px; }
  .reference-capacity-value { min-height: 36px; padding: 3px 7px; }
  .reference-capacity-value b { font-size: 10px; }
  .reference-capacity-value span { font-size: 7px; }
  .reference-summary-values { font-size: 10px; }
  .reference-summary-status { min-height: 34px; padding: 3px 7px; border-radius: 8px; font-size: 8px; }
  .reference-modal { width: 94%; padding: 18px; border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .reference-event-venue { animation: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .reference-event-summary, .reference-modal { background: #fffdfb; backdrop-filter: none; -webkit-backdrop-filter: none; }
}

body.is-page-transitioning { overflow-x:clip; }
.page-transition-ghost {
  position:fixed !important;
  z-index:90;
  margin:0 !important;
  overflow:hidden;
  pointer-events:none !important;
  user-select:none;
  contain:paint;
  background:var(--page);
  backface-visibility:hidden;
  transform-origin:center;
  will-change:transform,opacity;
}
.page-transition-ghost img { visibility:visible !important; opacity:1 !important; }

/* Shared camera geometry keeps diagram rendering and collision bounds aligned. */
.editor-shell:has(.is-adaptive-workspace) {height:100svh;min-height:0;display:flex;flex-direction:column}
.editor-shell:has(.is-adaptive-workspace) .editor-header {flex:none}
.editor-shell:has(.is-adaptive-workspace) .editor-layout {flex:1;height:auto;min-height:0;overflow:hidden}
.is-adaptive-workspace .canvas-stage { position:relative;inset:auto;min-width:100%;min-height:100%;display:grid;place-items:center; }
.is-adaptive-workspace .floor-canvas { touch-action:pan-x pan-y; }
.is-adaptive-workspace .canvas-table .table-surface { font-size:var(--table-label-size,11px);line-height:1.15;overflow-wrap:anywhere; }
.is-adaptive-workspace .table-surface small { font-size:.8em;margin-top:1px; }
.is-adaptive-workspace .canvas-table.is-compact .table-surface small { display:none; }
.is-adaptive-workspace .table-label { max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.is-adaptive-workspace .canvas-table.is-compact .table-label { font-size:0; }
.is-adaptive-workspace .canvas-table.is-compact .table-label::after { content:attr(data-short-label);font-size:var(--table-label-size,7px); }
.is-adaptive-workspace .canvas-table .seat-button { width:var(--seat-width,17%);height:var(--seat-height,14%);border-width:var(--seat-border,2px);border-radius:25%; }
.plan-capacity-guidance { grid-column:1/-1;min-width:0;margin:16px 0;padding:12px 16px;border:1px solid #e2c6a4;border-radius:16px;background:#fff8ed;color:#724c23;font-size:14px;line-height:1.5; }
.plan-capacity-guidance summary { cursor:pointer;font-weight:700; }
.plan-capacity-guidance p { margin:10px 0;font-size:14px;line-height:1.6; }
.canvas-wrap>.plan-capacity-guidance { position:absolute;z-index:7;inset:8px 18px auto;margin:0;padding:10px 14px;max-height:55%;overflow:auto;background:#fff8edf5;box-shadow:0 4px 16px #794a1910; }
.has-capacity-guidance .canvas-scrollport { top:88px; }
@media(max-width:600px){.canvas-wrap>.plan-capacity-guidance{inset:8px 12px auto;font-size:12px;padding:8px 10px}.has-capacity-guidance .canvas-scrollport{top:96px}.plan-capacity-guidance p{font-size:13px}.is-adaptive-workspace .canvas-scrollport{bottom:86px}}

/* Source: consent.css */
.consent-panel {
  position:fixed; z-index:1000; left:50%; bottom:12px; width:min(680px, calc(100% - 24px));
  padding:14px 16px; border:1px solid rgba(87,44,76,.12); border-radius:16px; color:#30202a;
  background:rgba(255,253,251,.96); box-shadow:0 10px 32px rgba(50,25,45,.14); backdrop-filter:blur(16px);
  transform:translateX(-50%); font:400 14px/1.4 "Outfit",system-ui,sans-serif;
  box-sizing:border-box; max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain;
}
.consent-panel[hidden] { display:none; }
.consent-panel h2 { margin:0 0 4px; font:700 17px/1.2 "Outfit", system-ui, sans-serif; }
.consent-panel p { margin:0 0 10px; color:#655a69; }
.consent-panel a { color:#a50064; font-weight:700; }
.consent-panel__status:empty { display:none; }
.consent-panel__status { margin:-4px 0 10px; color:#a5283d; font-size:13px; font-weight:700; }
.consent-panel__options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0; }
.consent-panel:not(.is-expanded) .consent-panel__options,
.consent-panel:not(.is-expanded) [data-consent-save],
.consent-panel.is-expanded [data-consent-customize] { display:none; }
.consent-panel__option { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:9px 10px; border-radius:10px; background:#f7f1f6; }
.consent-panel__option span { display:grid; }
.consent-panel__option small { color:#756b79; font-size:11px; line-height:1.3; }
.consent-panel__option input { width:19px; height:19px; flex:0 0 auto; accent-color:#a50064; }
.consent-panel__option input[disabled] { opacity:.7; }
.consent-panel__actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.consent-panel__actions button, .privacy-link {
  min-height:44px; padding:0 14px; border:1px solid #b48aa7; border-radius:10px; color:#68204f;
  background:#fff; font:700 13px/1 "Outfit",system-ui,sans-serif; cursor:pointer;
  transition:transform 150ms cubic-bezier(.22,1,.36,1),background-color 150ms ease,box-shadow 150ms ease;
}
.consent-panel__actions button:active { transform:scale(.98); transition-duration:70ms; }
.consent-panel__actions button[data-consent-all] { color:#fff; border-color:#a50064; background:#a50064; }
.privacy-link { display:inline-flex; align-items:center; min-height:44px; padding:0 4px; border:0; border-radius:0; background:transparent; text-decoration:underline; }
@media (max-width:600px) {
  .consent-panel { bottom:8px; width:calc(100% - 16px); padding:12px; border-radius:14px; }
  .consent-panel__options { grid-template-columns:1fr; }
  .consent-panel__option { min-height:52px; }
  .consent-panel__actions { justify-content:stretch; }
  .consent-panel__actions button { flex:1 1 auto; min-height:44px; padding:0 10px; }
}
@media (prefers-reduced-motion:no-preference) {
  .consent-panel:not([hidden]) { animation:consent-in 240ms cubic-bezier(.2,.8,.2,1); }
  @keyframes consent-in { from { opacity:0; transform:translate(-50%, 10px); } to { opacity:1; transform:translate(-50%, 0); } }
}
@media (prefers-reduced-motion:reduce) { .consent-panel__actions button { transition:none; } }

/* Source: brand-theme.css */
/* Shared Outfit typography, berry/olive/rose palette, and glass surfaces. */
:root {
  --font-ui:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --brand-50:#f9edf3; --brand-100:#f4dce8; --brand-300:#e381a5;
  --brand-500:#bd2479; --brand-700:#a50064; --brand-800:#870051; --brand-900:#530b35;
  --olive:#929b3c; --olive-ink:#565d22; --olive-soft:#eef0da;
  --rose:#e381a5; --rose-soft:#f5e4eb;
  --sunshine:#fbe28d; --sunshine-soft:#fbf4d9;
  --coral:#f18a50; --coral-soft:#fce9de;
  --sky:#c4e1ef; --sky-soft:#edf6fa;
  --plum:var(--brand-700); --ink:#292826; --muted:#6d6863;
  --page:#fdfbf7; --cream:var(--page); --border:#e5dfd8; --line:var(--border);
  --neutral-soft:#eeebe6; --surface:#fffefa;
  --glass-fill:rgba(255,255,255,.78); --glass-border:rgba(255,255,255,.9);
  --glass-shadow:0 14px 40px rgba(49,44,38,.07),inset 0 1px 0 rgba(255,255,255,.9);
  --shadow-card:var(--glass-shadow); --shadow-raised:0 18px 44px rgba(49,44,38,.12);
  font-family:var(--font-ui);
}
html { background:var(--page); }
body { font-family:var(--font-ui); background:var(--page); }
.editor-shell,body.reference-mode,.reference-app { background:var(--page); }
h1,h2,h3,.brand,.brand__name { font-family:var(--font-ui); }
h1,h2 { letter-spacing:-.035em; }
.brand,.brand__name { color:var(--brand-900); font-weight:500; letter-spacing:-.03em; }
.brand__name { transform:none; }
/* Preserve the complete, stacked user-supplied lockup without cropping. */
.brand .brand__logo,.site-header .brand img.brand__logo {
  display:block; width:300px; height:auto; max-width:100%;
  object-fit:contain; object-position:center; flex:0 1 auto;
}
.editor-header .brand .brand__logo { width:230px; height:auto; }
.reference-brand-fix .brand__logo { width:100%; height:auto; object-fit:contain; }
.mobile-header__top { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px) minmax(0,1fr); align-items:center; }
.mobile-header__top > .brand { grid-column:2; grid-row:1; justify-self:center; }
.mobile-header__tools { grid-column:3; grid-row:1; justify-self:end; }
.site-header { flex-direction:column; justify-content:center; gap:12px; }
.site-header .brand { justify-self:center; align-self:center; }
.site-header nav { justify-content:center; }
.editor-header { grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr); }
.editor-header > .brand { display:inline-flex; grid-column:2; grid-row:1; justify-self:center; }
.editor-header > .event-name { grid-column:1; grid-row:1; padding:0; border:0; min-width:0; }
.editor-header > .editor-actions { grid-column:3; grid-row:1; justify-content:flex-end; flex-wrap:wrap; }
@media(max-width:1100px) {
  .mobile-header__top { grid-template-columns:1fr; gap:14px; }
  .mobile-header__top > .brand { grid-column:1; grid-row:1; }
  .mobile-header__tools { grid-column:1; grid-row:2; justify-self:center; }
  .editor-header { display:grid; grid-template-columns:1fr; gap:12px; }
  .editor-header > .brand { grid-column:1; grid-row:1; }
  .editor-header > .event-name { grid-column:1; grid-row:2; text-align:center; }
  .editor-header > .editor-actions { grid-column:1; grid-row:3; justify-content:center; }
}
@media(max-width:760px) {
  .brand .brand__logo,.site-header .brand img.brand__logo,
  .editor-header .brand .brand__logo { width:230px; height:auto; }
}
/* Blur structural surfaces only. Inputs and moving canvas items stay crisp. */
.mobile-header,.mobile-panel,.mobile-choice,.mobile-actions,.onboarding-event-details,
.editor-header,.inspector,.floating-toolbar,.reference-modal,.consent-panel,
.site-header,.card,.calculator,details,.panel {
  background:var(--glass-fill); border-color:var(--glass-border); box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(20px) saturate(130%); backdrop-filter:blur(20px) saturate(130%);
}
.button--primary,.button:not(.button--secondary):not(.button--ghost):not(.button--light):not(.button--danger),
.reference-modal__save,.consent-panel__actions button[data-consent-all] {
  color:#fff; border-color:var(--brand-800); background:linear-gradient(135deg,var(--brand-700),var(--brand-800));
  box-shadow:0 8px 22px rgba(165,0,100,.18),inset 0 1px 0 rgba(255,255,255,.25);
}
.button--secondary,.button--ghost,.button--light,.language-picker,.mobile-help-link { color:var(--ink); border-color:var(--border); background:rgba(255,255,255,.85); }
.mobile-choice.is-selected { border-color:var(--brand-700); background:rgba(255,255,255,.88); box-shadow:0 0 0 2px rgba(165,0,100,.08),var(--glass-shadow); }
.mobile-choice:focus-visible,.button:focus-visible { outline:3px solid var(--brand-500); outline-offset:3px; }
.language-picker__icon,.mobile-help-link__icon,.mobile-stepper button,.area-summary,.mobile-mixed { background:var(--neutral-soft); }
.mobile-stepper button:active { background:#e4ded6; }
.mobile-capacity.reference-capacity-value { background:rgba(255,255,255,.9); }
.mobile-capacity.reference-capacity-value b { font-family:var(--font-ui); }
.mobile-venue-shell { background:var(--neutral-soft); }
.canvas-wrap { background:#e8e4de; }
.venue-theme--wedding,.venue-theme--engagement,.venue-theme--other { --venue-accent:#6d6863; --venue-soft:var(--neutral-soft); }
.hero { background:radial-gradient(ellipse at 20% 10%,#e6e1d8,transparent 60%),var(--page); }
.hero h1 { font-weight:500; }
.site-header .brand { color:var(--brand-900); font-family:var(--font-ui); }
.onboarding-app { max-width:1180px; padding:24px 24px 36px; }
.onboarding-app { padding-top:0; }
/* A compact masthead keeps the complete event picker above the fold. */
.onboarding-chrome { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:center; gap:12px 28px; margin-bottom:24px; }
.onboarding-utility { grid-column:1 / -1; }
.onboarding-utility { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:4px 16px; min-height:38px; border-bottom:1px solid var(--border); }
.onboarding-help { display:inline-flex; align-items:center; min-height:36px; color:var(--muted); font-size:13px; text-decoration:none; white-space:nowrap; }
.onboarding-help:hover { color:var(--brand-700); }
.onboarding-utility .language-picker { min-height:32px; padding:0; border:0; border-radius:0; color:var(--muted); background:transparent; box-shadow:none; }
.onboarding-utility .language-picker__icon { display:none; }
.onboarding-utility .language-picker select { min-width:110px; min-height:32px; padding:4px 20px 4px 0; font-size:13px; font-weight:400; background:transparent; }
.onboarding-header { display:flex; justify-content:flex-start; align-items:center; padding:8px 0; }
.onboarding-header .brand { justify-self:center; background:none; border:0; padding:0; cursor:pointer; }
.onboarding-header .brand__logo { width:200px; height:auto; }
.onboarding-progress { padding:0; min-width:0; container:planning-progress / inline-size; }
.onboarding-progress ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-width:660px; margin-block:0; margin-inline:auto 0; padding:5px; gap:5px; list-style:none; border:1px solid var(--border); border-radius:18px; background:rgba(255,255,255,.8); box-shadow:0 4px 16px rgba(49,44,38,.03); }
.onboarding-progress li > span:last-child { min-width:0; line-height:1.2; overflow-wrap:anywhere; }
.onboarding-progress li { position:relative; display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:7px 9px; border-radius:13px; color:var(--muted); font-size:14px; font-weight:500; text-align:center; }
.onboarding-progress li:not(:last-child)::after { content:none; }
.onboarding-progress li.is-complete::after { background:var(--brand-300); }
.onboarding-progress__number { flex:none; display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--border); border-radius:9px; background:var(--surface); font-size:12px; font-weight:600; }
.onboarding-progress li[aria-current] { color:var(--ink); font-weight:500; }
.onboarding-progress li[aria-current] .onboarding-progress__number { color:#fff; border-color:var(--brand-700); background:var(--brand-700); }
.onboarding-progress li.is-complete .onboarding-progress__number { color:var(--brand-700); border-color:var(--brand-300); }
@media(max-width:760px) {
  .onboarding-app { padding-top:0; }
  .onboarding-chrome { grid-template-columns:1fr; gap:10px; margin-bottom:18px; }
  .onboarding-header { justify-content:center; padding:0; }
  .onboarding-header .brand__logo { width:150px; }
  .onboarding-progress ol { margin-inline:auto; }
  .onboarding-progress li { font-size:12px; }
}
@media (max-width:900px) and (max-height:500px) and (orientation:landscape) {
  .onboarding-app { padding-inline:20px; }
  .onboarding-chrome { grid-template-columns:160px minmax(0,1fr); gap:6px 18px; margin-bottom:12px; }
  .onboarding-utility { min-height:32px; }
  .onboarding-header { justify-content:flex-start; padding:0; }
  .onboarding-header .brand__logo { width:150px; }
  .onboarding-progress ol { max-width:520px; }
  .onboarding-progress li { gap:5px; font-size:12px; min-height:36px; }
  .mobile-step h1 { margin-bottom:16px; font-size:clamp(26px,3vw,34px); }
}
@media(pointer:coarse) {
  .onboarding-help,.onboarding-utility .language-picker select { min-height:44px; }
}
.mobile-header { padding:20px 24px; border:1px solid var(--glass-border); border-radius:24px; margin-bottom:32px; }
.mobile-header nav { margin-top:20px; }
.mobile-step h1 { max-width:720px; margin:0 0 28px; font-weight:500; font-size:clamp(30px,4.5vw,52px); line-height:1.1; }
.mobile-events { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.mobile-events .mobile-choice { padding:20px; }
.mobile-events .mobile-choice img,.mobile-events .mobile-choice svg {
  display:block; width:100%; height:180px; max-height:none;
  object-fit:contain; object-position:center; margin-inline:auto;
}
.mobile-events .mobile-choice b { font-size:20px; font-weight:500; }
.onboarding-event-details { width:100%; margin:20px 0 0; padding:18px 22px; display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; border:1px solid var(--glass-border); border-radius:18px; color:var(--ink); text-align:start; cursor:pointer; }
.onboarding-event-details b { font-size:19px; font-weight:500; }
.onboarding-event-details span { color:var(--muted); }
.onboarding-event-details em { margin-inline-start:auto; color:var(--brand-700); font-style:normal; }
.mobile-actions { position:static; border:1px solid var(--glass-border); border-radius:18px; margin-top:24px; padding:14px; justify-content:flex-end; }
.mobile-actions .button { flex:0 1 auto; min-width:150px; }
.mobile-choice.is-selected::after { color:#fff; background:var(--brand-700); opacity:1; }
.mobile-header [aria-current] i { background:var(--brand-700); }
.mobile-header nav span:not([aria-current]) i { background:var(--neutral-soft); }
.site-header nav a { color:var(--muted); }
.site-header nav a[aria-current="page"] { color:var(--brand-700); }
@media(max-width:760px) { .site-header nav a { background:var(--neutral-soft); } }
.onboarding-app .reference-modal { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(560px,calc(100% - 32px)); height:auto; max-height:calc(100svh - 32px); overflow:auto; z-index:100; padding:28px; border:1px solid var(--glass-border); border-radius:24px; }
.onboarding-app .reference-modal h2 { font-family:var(--font-ui); }
.onboarding-app .reference-modal__backdrop { position:fixed; inset:0; z-index:99; background:rgba(64,20,40,.26); }
.onboarding-app .reference-modal__grid { grid-template-columns:1fr; }
.onboarding-app .reference-modal input { font-family:var(--font-ui); background:rgba(255,255,255,.96); }
@media(min-width:761px) {
  .onboarding-step-2 .mobile-step,.onboarding-step-4 .mobile-step { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:24px; align-items:start; }
  .onboarding-step-2 .mobile-step h1,.onboarding-step-4 .mobile-step h1 { grid-column:1/-1; }
  .onboarding-step-2 .mobile-venue-shell,.onboarding-step-4 .mobile-venue-shell { width:100%; min-height:360px; margin:0; }
  .onboarding-step-2 .mobile-venue-shell .mobile-venue,.onboarding-step-4 .mobile-venue-shell .mobile-venue { min-height:360px; max-height:460px; }
  .onboarding-step-3 .mobile-step { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:18px; align-items:start; }
  .onboarding-step-3 .mobile-step h1 { grid-column:1/-1; }
  .onboarding-step-3 .mobile-step > .mobile-panel { margin:0; }
  .onboarding-step-3 .mobile-step > .mobile-panel:nth-of-type(2) { grid-column:2; grid-row:2/4; }
  .onboarding-step-3 .mobile-capacity,.onboarding-step-3 .mobile-mixed { grid-column:1/-1; }
}
@media(max-width:760px) {
  .onboarding-app { padding:0 16px 28px; }
  .mobile-header { padding:16px; margin-bottom:24px; }
  .mobile-header__top,.mobile-header__tools { flex-wrap:wrap; }
  .mobile-events { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .mobile-events .mobile-choice { padding:12px; }
  .mobile-events .mobile-choice img,.mobile-events .mobile-choice svg { height:140px; }
  .mobile-events .mobile-choice b { font-size:16px; }
  .mobile-actions .button { flex:1; min-width:0; }
  .onboarding-event-details span { flex-basis:100%; order:3; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { :root { --glass-fill:#fffefa; } }
@media(prefers-reduced-transparency:reduce) {
  :root { --glass-fill:#fffefa; }
  .mobile-header,.mobile-panel,.mobile-choice,.mobile-actions,.editor-header,.inspector,.floating-toolbar,
  .reference-modal,.consent-panel,.site-header,.card,.calculator,details,.panel { -webkit-backdrop-filter:none; backdrop-filter:none; }
}

/* A unified rose palette preserves furnishing and affiliation colors. */
.mobile-choice.is-selected { background:rgba(245,228,235,.65); }
.area-summary,.mobile-mixed { background:var(--rose-soft); }
.area-summary strong { color:var(--brand-700); }
.site-header nav a:hover { color:var(--brand-700); }
.hero { background:var(--page); }
/* Active, upcoming, and completed stages share one brand hue. */
.onboarding-app { --stage-color:var(--brand-700); --stage-tint:var(--rose-soft); }
.onboarding-progress li { --step-color:var(--brand-700); --step-tint:var(--rose-soft); --step-line:var(--rose); }
.onboarding-progress__number { transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease; background:var(--step-tint); border-color:var(--step-line); color:var(--step-color); }
.onboarding-progress li[aria-current] .onboarding-progress__number { background:var(--step-color); border-color:var(--step-color); color:#fff; box-shadow:none; }
.onboarding-progress li[aria-current] { background:var(--step-tint); }
.onboarding-progress li[aria-current] { color:var(--step-color); }
.onboarding-progress li.is-complete .onboarding-progress__number { background:var(--step-tint); border-color:var(--step-line); color:var(--step-color); }
.onboarding-progress li.is-complete::after { height:2px; background:var(--step-line); }
.onboarding-app .mobile-step h1 { border-inline-start:0; padding-inline-start:0; }
.onboarding-app .mobile-panel { border-top:1px solid var(--glass-border); background:linear-gradient(140deg,var(--stage-tint),rgba(255,254,250,.50)); }
.onboarding-app .mobile-choice.is-selected { border-color:var(--stage-color); box-shadow:0 0 0 2px var(--stage-tint),var(--glass-shadow); }
.onboarding-app .mobile-choice.is-selected::after { background:var(--stage-color); }
.onboarding-step-2 .mobile-choice.is-selected,.onboarding-step-3 .mobile-choice.is-selected { background:var(--stage-tint); }
.onboarding-step-4 .mobile-summary dd { color:var(--stage-color); }
.onboarding-app .mobile-actions { background:linear-gradient(100deg,var(--stage-tint),rgba(255,254,250,.45)); border-color:var(--stage-tint); }
/* Event cards share the detail bar tint, with a slightly deeper selection. */
.mobile-events .mobile-choice { border:1px solid var(--glass-border); background:linear-gradient(110deg,var(--rose-soft),rgba(255,254,250,.5)); transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease; }
.mobile-events .mobile-choice.is-selected { background:#f1dce6; border-color:var(--brand-700); }
.onboarding-event-details { border-inline-start:1px solid var(--glass-border); background:linear-gradient(110deg,var(--rose-soft),rgba(255,254,250,.5)); }
@media (hover:hover) { .mobile-events .mobile-choice:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(49,44,38,.10); } }
/* Only route changes animate; selecting a card keeps the current page steady. */
.onboarding-step-1 { height:100svh; min-height:580px; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:16px; padding-bottom:20px; }
.onboarding-step-1 .onboarding-chrome { margin-bottom:0; }
.onboarding-step-1 .mobile-step { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:14px; }
.onboarding-step-1 .mobile-step h1 { max-width:none; margin:0; font-size:clamp(28px,3.1vw,42px); }
.onboarding-step-1 .mobile-events { min-height:0; grid-template-rows:repeat(2,minmax(0,1fr)); gap:14px; }
.onboarding-step-1 .mobile-events .mobile-choice { min-height:0; padding:10px 16px; gap:4px; border-radius:20px; }
.onboarding-step-1 .mobile-events .mobile-choice img { flex:1 1 0; min-height:0; height:0; width:100%; }
.onboarding-step-1 .mobile-events .mobile-choice b { flex:none; font-size:clamp(15px,1.4vw,19px); line-height:1.25; }
.onboarding-step-1 .onboarding-event-details { min-height:44px; margin:0; padding:9px 16px; border-radius:14px; }
.onboarding-step-1 .onboarding-event-details b { font-size:16px; }
.onboarding-step-1 .onboarding-event-details span { font-size:14px; }
.onboarding-step-1 .mobile-actions { margin:0; padding:8px; border-radius:16px; }
.onboarding-step-1 .mobile-actions .button { min-height:44px; padding:10px 24px; }
@media (max-width:760px) and (orientation:portrait) {
  .onboarding-step-1 { min-height:660px; gap:12px; }
  .onboarding-step-1 .mobile-events { grid-template-rows:repeat(3,minmax(0,1fr)); gap:10px; }
  .onboarding-step-1 .mobile-step { gap:12px; }
  .onboarding-step-1 .mobile-step h1 { font-size:28px; }
  .onboarding-step-1 .onboarding-event-details { gap:4px 8px; }
  .onboarding-step-1 .onboarding-event-details b { font-size:14px; }
  .onboarding-step-1 .onboarding-event-details span { font-size:12px; }
}
@media (max-height:500px) and (orientation:landscape) {
  .onboarding-step-1 .onboarding-utility { min-height:28px; }
  .onboarding-step-1 .onboarding-help,.onboarding-step-1 .onboarding-utility .language-picker select { min-height:28px; }
  .onboarding-step-1 .onboarding-header .brand__logo { width:120px; }
  .onboarding-step-1 { min-height:360px; gap:8px; padding-bottom:10px; }
  .onboarding-step-1 .mobile-step { gap:8px; }
  .onboarding-step-1 .mobile-step h1 { font-size:25px; }
  .onboarding-step-1 .mobile-events { gap:8px; }
  .onboarding-step-1 .mobile-events .mobile-choice { padding:5px 10px; border-radius:14px; }
  .onboarding-step-1 .mobile-events .mobile-choice b { font-size:13px; }
  .onboarding-step-1 .onboarding-event-details { min-height:36px; padding:6px 12px; }
  .onboarding-step-1 .onboarding-event-details b,.onboarding-step-1 .onboarding-event-details span { font-size:12px; }
  .onboarding-step-1 .mobile-actions { padding:4px; }
  .onboarding-step-1 .mobile-actions .button { min-height:36px; padding:6px 18px; font-size:14px; }
}
/* Browser-supported transitions also connect the guide and help pages. */
@view-transition { navigation:auto; }
@keyframes site-slide-out { to { opacity:0; transform:translateX(-36px); } }
@keyframes site-slide-in { from { opacity:0; transform:translateX(36px); } }
::view-transition-old(root) { animation:260ms cubic-bezier(.22,1,.36,1) both site-slide-out; }
::view-transition-new(root) { animation:300ms cubic-bezier(.22,1,.36,1) both site-slide-in; }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}
@media (prefers-reduced-motion:reduce) { .onboarding-progress__number,.mobile-events .mobile-choice { transition:none; } .mobile-events .mobile-choice:hover { transform:none; } }
@media (prefers-reduced-transparency:reduce) { .onboarding-app .mobile-panel,.onboarding-app .mobile-actions { background:var(--stage-tint); } .mobile-events .mobile-choice { background:var(--surface); } }

/* Illustrated planning journey: semantic labels stay separate from artwork. */
.onboarding-progress ol { max-width:760px; padding:6px; gap:8px; border-color:#eed8e1; border-radius:28px; background:linear-gradient(125deg,#fff,rgba(255,250,252,.92)); box-shadow:0 8px 26px rgba(165,0,100,.045); }
.onboarding-progress li { gap:10px; min-height:76px; padding:9px 10px; border-radius:23px; isolation:isolate; font-weight:500; }
.onboarding-progress li[aria-current] { background:linear-gradient(125deg,#f7e0eb,#fff1f5); color:var(--brand-700); }
.onboarding-progress__visual { position:relative; flex:0 0 56px; width:56px; height:56px; }
.onboarding-progress__visual img { display:block; width:100%; height:100%; object-fit:contain; opacity:.78; transition:opacity 180ms ease,transform 240ms cubic-bezier(.22,1,.36,1); }
.onboarding-progress li[aria-current] .onboarding-progress__visual img { opacity:1; transform:rotate(-4deg); }
.onboarding-progress li.is-complete .onboarding-progress__visual img { opacity:1; }
.onboarding-progress .onboarding-progress__number { position:absolute; inset-block-start:-3px; inset-inline-start:-3px; width:22px; height:22px; border-radius:50%; font-size:12px; border:1px solid #f2c5d8; background:#fff0f6; color:var(--brand-700); box-shadow:0 2px 5px rgba(165,0,100,.10); }
.onboarding-progress li[aria-current] .onboarding-progress__number { color:#fff; background:var(--brand-700); border-color:var(--brand-700); }
.onboarding-progress li.is-complete .onboarding-progress__number { color:var(--brand-700); background:#f7e4ed; border-color:#e381a5; }
.onboarding-progress__label { position:relative; z-index:1; flex:1 1 auto; min-width:0; max-width:100%; text-align:start; white-space:normal; word-break:normal; overflow-wrap:anywhere; overflow:visible; text-overflow:clip; line-height:1.35; }
.onboarding-progress li:not(:last-child)::after { content:""; position:absolute; inset-inline-end:-13px; top:50%; width:18px; height:12px; background:transparent; border-top:2px dotted #e9afc7; border-radius:50%; z-index:-1; }
.onboarding-progress li[aria-current]::before { content:"✦"; position:absolute; inset-inline-start:60px; top:5px; color:var(--brand-700); font-size:12px; }
@media(max-width:760px) {
  .onboarding-progress ol { gap:5px; border-radius:23px; }
  .onboarding-progress li { flex-direction:column; gap:4px; padding:7px 4px; min-height:88px; border-radius:18px; font-size:12px; }
  .onboarding-progress__visual { flex-basis:44px; width:44px; height:44px; }
  .onboarding-progress__label { text-align:center; }
  .onboarding-progress .onboarding-progress__number { width:19px; height:19px; font-size:10px; }
  .onboarding-progress li[aria-current]::before { inset-inline-start:auto; inset-inline-end:8px; top:5px; font-size:10px; }
  .onboarding-progress li:not(:last-child)::after { inset-inline-end:-9px; top:32px; width:12px; }
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape) {
  .onboarding-progress li { flex-direction:row; min-height:42px; padding:5px; gap:5px; font-size:11px; }
  .onboarding-progress__visual { flex-basis:30px; width:30px; height:30px; }
  .onboarding-progress .onboarding-progress__number { width:16px; height:16px; font-size:9px; }
  .onboarding-progress li::before,.onboarding-progress li:not(:last-child)::after { content:none; }
}
@media(prefers-reduced-motion:reduce) { .onboarding-progress__visual img { transition:none; transform:none!important; } }

/* Adapt to the actual navigation width, not just the page breakpoint. */
@container planning-progress (max-width:620px) {
  .onboarding-progress li { flex-direction:column; gap:5px; padding:7px 4px; font-size:12px; min-height:80px; }
  .onboarding-progress__visual { flex-basis:40px; width:40px; height:40px; }
  .onboarding-progress__label { flex:none; width:100%; text-align:center; }
  .onboarding-progress li:not(:last-child)::after { top:30px; inset-inline-end:-9px; width:12px; }
  .onboarding-progress li[aria-current]::before { inset-inline-start:auto; inset-inline-end:7px; top:5px; font-size:10px; }
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape) {
  @container planning-progress (max-width:480px) {
    .onboarding-progress li { flex-direction:column; min-height:52px; gap:2px; padding:4px 2px; font-size:11px; }
    .onboarding-progress__visual { flex-basis:26px; width:26px; height:26px; }
  }
}

/* Source: home-content.css */
/* Editorial homepage content lives outside the interactive planner. */
.planning-info .home-service-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0}
.planning-info .home-service-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:9px 15px;border:1px solid #e7cfdd;border-radius:999px;background:#fbf1f6;color:#870051;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.planning-info .home-service-links a:hover{background:#f4e1ec}
/* Compact feature artwork and the shared five-post discovery carousel. */
.planning-info .home-blog-cover--product{background:#fff}.planning-info .home-blog-cover--product img{object-fit:contain;object-position:center;padding:16px}
.planning-info .home-feature-art{display:block;width:144px;height:144px;max-width:100%;object-fit:contain;margin:14px 0 20px}
.planning-info .home-feature-art--help{width:176px;height:118px;border-radius:14px;object-fit:cover}
.planning-info .home-overview-art{display:flex;gap:8px;align-items:center;margin:20px 0 0;max-width:100%}
.planning-info .home-overview-art .home-feature-art{width:60px;height:60px;flex:0 1 60px;min-width:0;margin:0}
.planning-info .home-blog{min-width:0;clear:both}
.planning-info .home-blog .home-blog-all{display:inline-flex;align-items:center;justify-content:center;gap:14px;flex-shrink:0;min-height:48px;padding:8px 10px 8px 22px;border:1px solid #eac5db;border-radius:999px;background:linear-gradient(135deg,#f9e8f1,#fff8fc);color:#870051;font-size:15px;line-height:1.2;white-space:nowrap;box-shadow:0 4px 14px #87005108;transition:background .2s ease,border-color .2s ease}
.planning-info .home-blog .home-blog-all>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#870051;color:#fff;font-size:20px;line-height:1}
.planning-info .home-blog .home-blog-all:hover{background:#f4dce9;border-color:#cf8fb3;color:#870051;text-decoration:none}
.planning-info .home-blog .home-blog-all:focus-visible{outline:2px solid #870051;outline-offset:4px}
.planning-info .home-blog-intro{max-width:650px;font-size:16px;margin-bottom:20px}
.home-blog-carousel{min-width:0}
.home-blog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 18px;font-size:13px;color:#796b74}
.home-blog-toolbar>span>span{padding-left:8px;color:#870051}
.home-blog .carousel-controls{display:flex;align-items:center;gap:10px}
.home-blog .carousel-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #e6d1dd;border-radius:50%;background:#fffdfa;color:#870051;font:500 20px/1 Outfit,sans-serif;cursor:pointer;box-shadow:none;padding:0}
.home-blog .carousel-controls button:hover:not(:disabled){background:#f6e7ef;border-color:#bf6a99}
.home-blog .carousel-controls button:disabled{opacity:.35;cursor:default}
.home-blog-count{min-width:36px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.home-blog-track{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:2px 2px 18px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#bf7a9f #f6edf2}
.home-blog-track:focus-visible{outline:2px solid #870051;outline-offset:5px;border-radius:8px}
.home-blog-card{flex:0 0 min(320px,86%);min-width:0;display:flex;flex-direction:column;border:1px solid #eadde3;background:#fffdfa;border-radius:20px;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}
.home-blog-cover{display:block;position:relative;overflow:hidden;background:#f4ebe5}
.home-blog-cover img{display:block;width:100%;height:200px;object-fit:cover;object-position:center 25%;transition:transform .25s ease}
.home-blog-cover:hover img{transform:scale(1.025)}
.home-blog-number{position:absolute;left:14px;top:14px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fdfbf7ed;color:#870051;font-size:11px;font-weight:500}
.home-blog-copy{display:flex;flex:1;flex-direction:column;align-items:start;padding:22px}
.planning-info .home-blog-copy .home-kicker{font-size:10px;margin:0 0 12px;letter-spacing:.13em;color:#870051}
.planning-info .home-blog-copy h3{font-size:23px;line-height:1.22;margin:0 0 14px;overflow-wrap:break-word}
.planning-info .home-blog-copy>p:not(.home-kicker){font-size:14px;line-height:1.7;margin:0 0 18px}
.planning-info .home-blog-copy .home-read-link{margin-top:auto;display:inline-flex;align-items:center;gap:12px;font-size:13px;min-height:44px;color:#870051}
@media(max-width:760px){.planning-info .home-feature-art{width:112px;height:112px;margin:10px 0 8px}.planning-info .home-feature-art--help{width:150px;height:100px}.planning-info .home-overview-art .home-feature-art{width:54px;height:54px}.home-blog-cover img{height:190px}.home-blog-copy{padding:20px}.planning-info .home-blog-copy h3{font-size:22px}.planning-info .home-blog-intro{font-size:15px}.planning-info .home-blog .home-section-heading{gap:12px}}
@media(prefers-reduced-motion:reduce){.home-blog-cover img,.planning-info .home-blog .home-blog-all{transition:none}}
.planning-info { max-width:1120px; margin:40px auto 0; padding:0 36px; color:#6d6863; font:400 17px/1.7 "Outfit",sans-serif; }
.planning-info[hidden] { display:none; }
.planning-info h2,.planning-info h3 { color:#292826; letter-spacing:-.035em; }
.planning-info h2 { font-size:clamp(28px,3vw,42px); line-height:1.18; font-weight:500; margin:0 0 24px; }
.planning-info h3 { font-size:23px; line-height:1.3; font-weight:500; margin:0 0 12px; }
.planning-info p { margin:0 0 18px; }
.planning-info a { color:#292826; font-weight:500; text-decoration:none; text-underline-offset:5px; }
.planning-info a:hover { color:var(--brand-800); text-decoration:underline; }
.planning-info a:focus-visible,.planning-info summary:focus-visible { outline:2px solid var(--brand-700); outline-offset:5px; }
.planning-info .home-kicker { color:#81786f; font-size:12px; letter-spacing:.13em; text-transform:uppercase; margin:0 0 22px; }
.home-intro { border-top:1px solid #dcd7d0; padding:32px 0 40px; display:grid; grid-template-columns:1fr 1fr; gap:24px 48px; }
.home-intro > .home-kicker { grid-column:1/-1; margin-bottom:0; }
.home-intro h2 { font-size:clamp(32px,3.7vw,48px); }
.home-intro__copy a { display:inline-block; margin-top:8px; border-bottom:1px solid var(--brand-700); }
.home-notebook { background:#eeebe6; border-radius:3px; padding:44px; display:grid; grid-template-columns:1fr 1.3fr; gap:64px; }
.home-notebook > div > p:not(.home-kicker) { max-width:320px; }
.home-notes { list-style:none; margin:0; padding:0; counter-reset:notes; }
.home-notes li { counter-increment:notes; position:relative; padding:0 0 24px 40px; margin:0 0 24px; border-bottom:1px solid #d6d0c8; }
.home-notes li::before { content:"0" counter(notes); position:absolute; top:3px; left:0; font-size:13px; color:#9b8f81; }
.home-notes li:last-child { border-bottom:0; margin:0; padding-bottom:0; }
.home-notes p { font-size:16px; margin-bottom:8px; }
.home-reading { padding:40px 0 32px; }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:32px; }
.home-section-heading h2 { margin:0; }
.home-articles { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.home-articles article { display:flex; flex-direction:column; padding-top:24px; border-top:2px solid #dcd7d0; }
.home-articles h3 { margin-bottom:16px; }
.home-articles p { font-size:16px; }
.home-articles .home-read-link { margin-top:auto; font-size:14px; }
.planning-info .home-topics { display:flex; flex-wrap:wrap; gap:8px 22px; margin:40px 0 0; padding-top:24px; border-top:1px solid #dcd7d0; font-size:14px; }
.home-faq { display:grid; grid-template-columns:1fr 1.5fr; gap:36px; padding:32px 0 40px; }
.planning-info details { border-top:1px solid #dcd7d0; padding:18px 0; }
.planning-info details:last-child { border-bottom:1px solid #dcd7d0; }
.planning-info summary { color:#292826; font-size:18px; font-weight:500; cursor:pointer; }
.planning-info details p { padding:14px 0 0; margin:0; font-size:16px; }
.home-footer { border-top:1px solid #dcd7d0; padding:24px 0 40px; font-size:13px; }
.planning-info .home-footer nav { margin:12px 0 0; gap:10px 24px; }
@media (max-width:760px) {
 .planning-info { margin-top:28px; padding:0 24px; }
 .home-intro,.home-notebook,.home-faq { grid-template-columns:1fr; gap:24px; }
 .home-intro { padding:32px 0; }
 .home-notebook { padding:28px 24px; }
 .home-notebook > div > p:not(.home-kicker) { max-width:none; }
 .home-reading { padding:44px 0 32px; }
 .home-section-heading { align-items:start; flex-direction:column; }
 .home-articles { grid-template-columns:1fr; }
 .home-faq { padding:24px 0 40px; }
}
@media print { .planning-info { display:none; } }
/* Keep disclosure rows aligned; neutralize the global glass details style. */
.planning-info .home-faq details { background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; border:0; border-top:1px solid #dcd7d0; border-radius:0; padding:0; }
.planning-info .home-faq details:last-child { border-bottom:1px solid #dcd7d0; }
.planning-info .home-faq summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 16px; margin:0; }
.planning-info .home-faq summary::-webkit-details-marker { display:none; }
.planning-info .home-faq summary::marker { content:""; }
.planning-info .home-faq summary::after { content:"+"; flex:0 0 24px; text-align:center; color:#6d6863; font-size:25px; line-height:1; font-weight:400; }
.planning-info .home-faq details[open] summary::after { content:"−"; }
.planning-info .home-faq details p { padding:0 56px 22px 16px; }
.home-wedding-image,.home-planning-image { margin:0; }
.home-wedding-image { margin-bottom:48px; }
.home-wedding-image img { display:block; width:100%; height:auto; aspect-ratio:3/2; border-radius:3px; }
.home-planning-image { float:right; width:34%; margin:0 0 32px 32px; }
.home-planning-image img { width:100%; height:auto; display:block; border-radius:3px; }
.home-reading:after { content:""; display:block; clear:both; }
.home-reading .home-articles { grid-template-columns:1fr; gap:20px; }
.home-reading .home-articles article { display:block; }
.home-reading .home-articles .home-kicker { margin-bottom:10px; }
.home-reading .home-articles h3 { margin-bottom:10px; }
.home-wedding-image figcaption,.home-planning-image figcaption { padding-top:12px; color:#81786f; font-size:13px; }
@media (max-width:760px) {
 .home-planning-image { float:none; width:100%; margin:0 0 28px; }
 .home-wedding-image { margin-bottom:32px; }
 .planning-info .home-faq summary { padding:20px 8px; gap:16px; }
 .planning-info .home-faq details p { padding:0 40px 20px 8px; }
}
/* Image-led editorial scenes with readable frosted-glass captions. */
.home-wedding-image,.home-planning-image { position:relative; isolation:isolate; }
.home-wedding-image { overflow:hidden; border-radius:16px; }
.planning-info .home-glass { background:linear-gradient(135deg,rgba(29,34,31,.62),rgba(29,34,31,.42)); border:1px solid rgba(206,213,199,.32); border-radius:16px; box-shadow:0 12px 32px rgba(18,24,20,.22),inset 0 1px 0 rgba(206,213,199,.15); backdrop-filter:blur(24px) saturate(145%); -webkit-backdrop-filter:blur(24px) saturate(145%); padding:24px; color:#f4f2ee; }
.home-wedding-image .home-glass { position:absolute; left:28px; bottom:28px; max-width:430px; }
.planning-info .home-glass h2 { font-size:34px; margin-bottom:12px; }
.planning-info .home-glass .home-kicker { color:#e0e4d9; margin-bottom:12px; font-size:11px; }
.planning-info .home-glass p { font-size:16px; margin-bottom:12px; }
.planning-info .home-glass a { font-size:14px; }
.home-planning-image { width:40%; overflow:hidden; border-radius:16px; }
.home-planning-image img { min-height:400px; object-fit:cover; }
.home-planning-image .home-glass { position:absolute; left:16px; right:16px; bottom:16px; padding:18px; }
.home-planning-image .home-glass p { font-size:16px; }
.home-inspiration { padding:24px 0 64px; }
.home-inspiration .home-section-heading > p { font-size:15px; margin:0; }
.home-event-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.home-event-scene { position:relative; isolation:isolate; overflow:hidden; border-radius:16px; min-height:510px; display:flex; align-items:end; padding:20px; }
.home-event-scene > img { position:absolute; inset:0; z-index:-1; width:100%; height:100%; object-fit:cover; }
.home-event-scene--wide { grid-column:1/-1; min-height:520px; }
.home-event-scene .home-glass { width:100%; }
.home-event-scene--wide .home-glass { max-width:430px; }
.planning-info .home-event-scene h3 { font-size:27px; margin-bottom:12px; }
@supports not (backdrop-filter:blur(1px)) { .planning-info .home-glass { background:rgba(29,34,31,.94); } }
@media (max-width:760px) {
 .home-event-gallery { grid-template-columns:1fr; gap:20px; }
 .home-event-scene,.home-event-scene--wide { grid-column:auto; min-height:490px; padding:16px; }
 .home-wedding-image img { min-height:500px; object-fit:cover; }
 .home-wedding-image .home-glass { left:16px; right:16px; bottom:16px; max-width:none; padding:20px; }
 .planning-info .home-glass h2 { font-size:28px; }
 .home-planning-image { width:100%; }
 .home-planning-image img { min-height:360px; }
 .home-inspiration { padding-bottom:40px; }
}
@media (prefers-reduced-transparency:reduce) { .planning-info .home-glass { background:#252e28; backdrop-filter:none; -webkit-backdrop-filter:none; } }

.planning-info .home-glass h2,.planning-info .home-glass h3,.planning-info .home-glass a { color:#f4f2ee; }
.planning-info .home-glass a { text-decoration:underline; text-decoration-color:rgba(206,213,199,.6); }
.planning-info .home-glass a:hover { color:#f5c2d6; text-decoration-color:#f5c2d6; }
.planning-info .home-glass a:focus-visible { outline-color:#f5c2d6; }

/* Secondary olive and tertiary rose accents follow the approved reference. */
.home-notebook { background:linear-gradient(135deg,rgba(146,155,60,.14),rgba(146,155,60,.05)); border:1px solid rgba(146,155,60,.25); }
.home-notes li { border-color:rgba(146,155,60,.25); }
.home-notes li::before { color:var(--olive-ink); }
.planning-info .home-kicker { color:var(--olive-ink); }
.home-intro { border-top-color:var(--rose); }
.home-articles article { border-top-color:var(--rose); }
.home-articles article:nth-child(2) { border-top-color:var(--olive); }
.planning-info .home-faq summary::after { color:var(--olive-ink); }
.planning-info .home-glass { background:linear-gradient(135deg,rgba(40,46,24,.65),rgba(59,33,44,.43)); border-color:rgba(227,129,165,.35); }
.planning-info .home-glass .home-kicker { color:#dce3ab; }
@supports not (backdrop-filter:blur(1px)) { .planning-info .home-glass { background:rgba(40,46,24,.94); } }
@media (prefers-reduced-transparency:reduce) { .planning-info .home-glass { background:#282e18; } }

/* Campaign colors remain restrained accents in the product. */
.home-articles article:nth-child(1) { border-top-color:var(--sunshine); }
.home-articles article:nth-child(2) { border-top-color:var(--coral); }
.home-articles article:nth-child(3) { border-top-color:var(--sky); }
.home-event-scene:nth-child(3) .home-glass { border-color:var(--coral); }
.home-event-scene:nth-child(4) .home-glass { border-color:var(--sky); }
.home-event-scene:nth-child(5) .home-glass { border-color:var(--sunshine); }
.home-event-scene:nth-child(3) .home-glass .home-kicker { color:var(--coral-soft); }
.home-event-scene:nth-child(4) .home-glass .home-kicker { color:var(--sky); }
.home-event-scene:nth-child(5) .home-glass .home-kicker { color:var(--sunshine); }

/* Source: content-system.css */
/* Shared editorial surfaces, scale, and spacing across guides and tools. */
html.content-modal-open,html.content-modal-open body{overflow:hidden!important;overscroll-behavior:none}
.content-embedded .site-header,.content-embedded .site-footer,.content-embedded .breadcrumbs { display:none; }
.content-embedded body { min-height:0; overflow:hidden; }
.content-embedded .hero { margin-top:0; }
.site-header.site-header--shared { position:static; display:flex; flex-direction:column; align-items:stretch; width:min(100% - 48px,1132px); margin:auto; padding:0; border:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.site-header--shared .shared-utility { display:flex; justify-content:flex-end; align-items:center; flex-wrap:nowrap; gap:16px; min-height:38px; padding:0; margin:0; border-bottom:1px solid #e7dce3; overflow-x:auto; }
.site-header--shared .shared-utility a { min-height:36px; padding:0; background:none; border-radius:0; font-size:13px; font-weight:400; }
.site-header--shared .shared-utility a::after { display:none; }
.site-header--shared .brand { padding:10px 0; }
.site-header--shared .brand__logo { width:200px; height:auto; }
.site-header.site-header--shared .brand .brand__logo { width:160px; height:auto; }
.site-header.site-header--shared { gap:4px; }
.shared-language { display:block; flex:none; }
.shared-language select { min-height:36px; width:126px; padding:4px 18px 4px 0; border:0; background:transparent; box-shadow:none; font:400 13px Outfit,sans-serif; color:#756c70; }
.content-embedded .site-header.site-header--shared { display:none; }
.has-content-panel > .mobile-step,.has-content-panel > .mobile-actions { display:none !important; }
.onboarding-step-1.has-content-panel { display:block; min-height:0; }
.has-content-panel .onboarding-chrome { margin-bottom:12px; }
.content-panel { margin:0; width:100%; }
.content-panel__toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0 12px; border-bottom:1px solid #e7dce3; }
.content-panel__toolbar button { min-height:44px; border:1px solid #e4ccd9; border-radius:12px; background:#f6e7ef; color:#870051; padding:8px 18px; font:600 15px/1.3 Outfit,sans-serif; cursor:pointer; }
.content-panel__title { color:#756c70; font:500 14px/1.4 Outfit,sans-serif; }
.content-panel__frame { display:block; width:100%; min-height:400px; border:0; background:#fdfbf7; }
.content-panel__loading { min-height:300px; display:grid; place-items:center; }
.content-panel__loading[hidden] { display:none !important; }
.brand-motion { display:grid; place-items:center; width:min(390px,100%); min-height:230px; margin:24px auto; padding:40px 28px; border-radius:24px; background:radial-gradient(ellipse at 42% 24%,#ac126f 0,#92005a 60%,#730045 100%); box-shadow:0 16px 40px #73004515; }
.brand-motion__graphic { display:block; width:min(100%,310px); height:auto; overflow:visible; filter:brightness(0) invert(1); }
.brand-motion__piece { transform-origin:277px 80px; animation-timing-function:cubic-bezier(.2,.75,.25,1); animation-fill-mode:both; }
.brand-motion__arc-left { animation-name:brand-arc-left; animation-duration:400ms; }
.brand-motion__arc-right { animation-name:brand-arc-right; animation-duration:400ms; }
.brand-motion__arc-bottom { animation-name:brand-arc-bottom; animation-duration:430ms; }
.brand-motion__chair-left { animation-name:brand-chair-left; animation-duration:380ms; animation-delay:160ms; }
.brand-motion__chair-right { animation-name:brand-chair-right; animation-duration:380ms; animation-delay:220ms; }
.brand-motion__petals { animation-name:brand-petals; animation-duration:280ms; animation-delay:370ms; }
.brand-motion__wordmark { animation-name:brand-wordmark; animation-duration:320ms; animation-delay:500ms; }
.content-panel__frame.is-revealed { animation:content-page-reveal 150ms ease-out; }
@keyframes brand-arc-left { from { opacity:0; transform:translate(20px,18px) rotate(-100deg) scale(.55); } to { opacity:1; transform:none; } }
@keyframes brand-arc-right { from { opacity:0; transform:translate(-20px,18px) rotate(-100deg) scale(.55); } to { opacity:1; transform:none; } }
@keyframes brand-arc-bottom { from { opacity:0; transform:translateY(-20px) rotate(-100deg) scale(.55); } to { opacity:1; transform:none; } }
@keyframes brand-chair-left { from { opacity:0; transform:translate(-44px,12px) rotate(-12deg); } to { opacity:1; transform:none; } }
@keyframes brand-chair-right { from { opacity:0; transform:translate(44px,12px) rotate(12deg); } to { opacity:1; transform:none; } }
@keyframes brand-petals { from { opacity:0; transform:translateY(9px) scale(.75); } to { opacity:1; transform:none; } }
@keyframes brand-wordmark { from { opacity:0; clip-path:inset(0 100% 0 0); transform:translateY(3px); } to { opacity:1; clip-path:inset(0); transform:none; } }
@keyframes content-page-reveal { from { opacity:.45; } to { opacity:1; } }
@media (max-width:600px) { .brand-motion { width:min(330px,100%); min-height:200px; margin:20px auto; padding:36px 24px; border-radius:20px; } }
@media (prefers-reduced-motion:reduce) { .brand-motion__piece,.content-panel__frame.is-revealed { animation:none; } }
.onboarding-utility a[aria-current="page"] { color:#a50064; text-decoration:underline; text-underline-offset:6px; }
body:has(.site-header) .hero { max-width:1120px; margin:20px auto 0; padding:32px 28px; border:1px solid #eddde5; border-radius:24px; background:linear-gradient(120deg,#f6e7ef,#fdfbf7); text-align:start; }
body:has(.site-header) .hero h1 { max-width:780px; margin:12px 0 18px; font-size:clamp(32px,4vw,52px); font-weight:600; letter-spacing:-.035em; line-height:1.14; }
body:has(.site-header) .hero p { margin:0 0 16px; max-width:700px; font-size:18px; }
body:has(.site-header) .hero > :last-child { margin-bottom:0; }
body:has(.site-header) main { width:min(100% - 48px,1048px); padding-top:28px; }
body:has(.site-header) main > :last-child { margin-bottom:0; }
body:has(.site-header) .breadcrumbs { margin-bottom:16px; }
body:has(.site-header) .content-meta { margin:0 0 22px; }
body:has(.site-header) h2 { font-size:clamp(26px,3vw,36px); font-weight:600; letter-spacing:-.025em; }
body:has(.site-header) h3 { font-size:22px; font-weight:600; }
body:has(.site-header) :is(.card,.prose-box,.support-card,.guide-hub-card,.related-guides a,.calculator,.help-search) { border:1px solid #eadde3; border-radius:18px; background:#fffdfa; box-shadow:0 6px 22px #530b3506; }
body:has(.site-header) :is(.eyebrow,.support-kicker,.guide-hub-card > span) { color:#870051; }
body:has(.site-header) .cta { background:#f6e7ef; border:1px solid #ead3df; border-radius:20px; }
body:has(.site-header) .help-hero__inner { max-width:none; padding:0; }
body:has(.site-header) .help-quick-routes { margin:20px auto 0; background:transparent; box-shadow:none; backdrop-filter:none; padding:0; border:0; }
body:has(.site-header) .help-quick-routes a { background:#fffdfa; border:1px solid #eadde3; }
.planning-info .home-kicker { color:#870051; }
.planning-info .home-notebook { background:#f6e7ef; border-color:#ead3df; border-radius:20px; }
.planning-info .home-notes li { border-color:#ead3df; }
.planning-info .home-notes li::before { color:#870051; }
.planning-info .home-articles article { border:1px solid #eadde3; border-radius:18px; padding:24px; background:#fffdfa; }
.planning-info .home-reading .home-articles { gap:16px; }
.planning-info .home-glass { background:linear-gradient(135deg,#530b35d9,#30202aaa); border-color:#f0cddd80; }
.planning-info .home-glass .home-kicker { color:#f4dce7; }
.onboarding-step-3 .mobile-actions { margin-top:10px; }
.onboarding-step-3 .mobile-step { margin-bottom:0; }
.onboarding-step-3 .mobile-capacity { margin-bottom:0; }
@media(max-width:760px) {
 .site-header.site-header--shared { width:calc(100% - 32px); }
 .site-header.site-header--shared .shared-utility { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); justify-content:flex-start; gap:2px 6px; width:100%; overflow:visible; }
 .site-header.site-header--shared .shared-utility > a { display:flex; align-items:center; justify-content:center; min-height:44px; min-width:0; white-space:nowrap; }
 .site-header.site-header--shared .shared-language { grid-column:span 2; justify-self:end; min-width:0; }
 .site-header.site-header--shared .shared-language select { min-height:44px; max-width:100%; }
 .site-header--shared .shared-utility a { flex:none; min-height:44px; font-size:12px; }
 .site-header.site-header--shared .brand .brand__logo { width:126px; }
 body:has(.site-header) .hero { margin:12px 12px 0; padding:24px 20px; border-radius:18px; }
 body:has(.site-header) main { width:calc(100% - 32px); padding-top:20px; }
 .content-panel__title { max-width:50%; text-align:end; }
}
@media(prefers-reduced-transparency:reduce) { .planning-info .home-glass { background:#530b35; } }
/* Keep the logo and language control separate on narrow phones. */
@media(max-width:360px){
 .site-header.site-header--shared > a.brand{align-self:flex-start;}
 .site-header.site-header--shared > a.brand .brand__logo{width:112px;}
 .site-header.site-header--shared .shared-utility{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 6px;width:100%;}
 .site-header.site-header--shared .shared-utility > a{display:flex;align-items:center;justify-content:center;min-height:44px;white-space:nowrap;}
}
/* Keep contact channels readable without adding a new navigation style. */
.contact-instagram {display:inline-flex;align-items:center;gap:8px;}
.contact-instagram svg {flex:none;}
.contact-channels {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0;}
.contact-channel {display:flex;align-items:center;gap:14px;padding:18px 20px;background:#fff;border:1px solid #eadbe3;border-radius:18px;text-decoration:none;color:#870051;}
.contact-channel svg {flex:none;}
.contact-channel span {display:grid;gap:3px;min-width:0;}
.contact-channel small {font-size:.8rem;color:#756872;}
.contact-channel strong {font-size:1rem;overflow-wrap:anywhere;}
.contact-channel:hover {background:#fbf1f6;border-color:#c878a4;}
.contact-channel:focus-visible {outline:3px solid #870051;outline-offset:3px;}
@media(max-width:500px){.contact-channels{grid-template-columns:1fr;gap:10px;}}
.support-contact-address {margin:12px 0 0;font-size:1rem;}
.support-contact-address a {color:inherit;text-underline-offset:3px;}
.contact-inline-links {display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;}
.contact-inline-links .contact-inline-link {display:inline-flex;align-items:center;gap:9px;min-height:44px;color:#870051;font-size:1rem;font-weight:500;text-decoration:none;}
.contact-inline-link svg {flex:none;}
.contact-inline-link span {overflow-wrap:anywhere;}
.contact-inline-link:hover span {text-decoration:underline;text-underline-offset:4px;}
.contact-inline-link:focus-visible {outline:3px solid #870051;outline-offset:4px;border-radius:6px;}
.contact-inline-links--support {justify-content:center;margin:12px 0 0;}
.planning-info .home-footer .home-contact {margin:0 0 24px;}
.planning-info .home-footer .home-contact h2 {margin:0;font-size:22px;}
.planning-info .home-footer .home-contact nav {margin:6px 0 0;}
/* Compact contextual links connect published features without repeating articles. */
.feature-related{margin:40px 0 16px;padding:24px;border:1px solid #ead8e3;border-radius:20px;background:#fcf7fa;color:#292826}
.editorial-byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font:400 14px/1.6 Outfit,Arial,sans-serif;color:#706970}
.editorial-byline a{color:#870051;text-underline-offset:3px}.editorial-byline span{min-width:0}
.feature-related h2{font:500 clamp(21px,2.4vw,28px)/1.25 Outfit,sans-serif;letter-spacing:-.025em;margin:0 0 16px}
.feature-related ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0}
.feature-related li{margin:0;min-width:0}
.feature-related a{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:64px;height:100%;padding:12px 14px;border:1px solid #ecdce5;border-radius:12px;background:#fffdfa;color:#870051;text-decoration:none;font:500 15px/1.45 Outfit,sans-serif}
.feature-related a:hover{border-color:#c187a7;background:#f8ebf2}.feature-related a:focus-visible{outline:2px solid #870051;outline-offset:3px}.feature-related a span{flex-shrink:0}
@media(max-width:760px){.feature-related{padding:20px;margin-top:28px}.feature-related ul{grid-template-columns:1fr}.feature-related a{min-height:52px}}

/* Source: phone-layout.css */
/* Phone-only composition. Tablet and desktop retain the existing layout. */
.phone-sheet-scrim { display:none; }
@media (max-width:600px), (max-width:900px) and (max-height:500px) and (pointer:coarse) {
 html,body { overflow-x:clip; overflow-y:auto !important; overscroll-behavior:auto; }
 input,select,textarea { font-size:16px; }
 .onboarding-app { width:100%; max-width:600px; padding:12px 16px calc(96px + env(safe-area-inset-bottom)); }
 .onboarding-step-1 { display:block; height:auto; min-height:0; }
 .onboarding-chrome { position:relative; display:flex; flex-direction:column; align-items:stretch; gap:10px; margin:0 0 22px; }
 .onboarding-header { order:0; justify-content:flex-start; min-height:48px; padding:0; }
 .onboarding-header .brand__logo { width:126px; height:auto; }
 .onboarding-utility { order:1; display:flex; flex-wrap:wrap; justify-content:flex-start; min-height:44px; gap:0 12px; overflow:visible; padding:0 0 2px; }
 .onboarding-utility::-webkit-scrollbar { display:none; }
 .onboarding-help { flex:none; min-height:44px; font-size:12px; font-weight:500; }
 .onboarding-utility .language-picker { position:absolute; top:0; inset-inline-end:0; flex:none; }
 .onboarding-utility .language-picker select { font-size:12px; min-width:100px; min-height:44px; }
 .onboarding-progress { order:2; }
 .onboarding-progress ol { max-width:none; width:100%; padding:4px; gap:3px; border-radius:15px; box-shadow:none; }
 .onboarding-progress li { flex-direction:column; gap:4px; min-height:58px; padding:6px 2px; font-size:11px; border-radius:11px; }
 .onboarding-progress__visual { flex:none; width:23px; height:23px; }
 .onboarding-progress__visual img { display:none; }
 .onboarding-progress__number { position:static; width:23px; height:23px; font-size:11px; border-radius:8px; box-shadow:none; }
 .onboarding-progress__label { flex:none; width:100%; text-align:center; font-size:11px; }
 .onboarding-progress li::after,.onboarding-progress li[aria-current]::before { display:none; }
 .onboarding-step-1 .mobile-step,.mobile-step { display:flex; flex-direction:column; gap:12px; }
 .onboarding-step-1 .mobile-step h1,.mobile-step h1 { margin:0 0 4px; font-size:25px; line-height:1.18; letter-spacing:-.6px; font-weight:600; }
 .mobile-step h2 { font-size:17px; margin-bottom:12px; }
 .onboarding-step-1 .mobile-events,.mobile-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; gap:9px; }
 .onboarding-step-1 .mobile-events .mobile-choice { min-height:104px; padding:8px; gap:3px; border-radius:14px; }
 .onboarding-step-1 .mobile-events .mobile-choice img { flex:none; width:100%; height:65px; object-fit:contain; }
 .onboarding-step-1 .mobile-events .mobile-choice b { font-size:14px; line-height:1.2; }
 .mobile-choice.is-selected::after { width:19px; height:19px; top:5px; inset-inline-end:5px; font-size:11px; }
 .onboarding-step-1 .onboarding-event-details,.onboarding-event-details { margin:0; padding:12px; gap:4px 8px; min-height:58px; border-radius:14px; }
 .onboarding-event-details b { font-size:14px; }
 .onboarding-event-details span { flex-basis:100%; font-size:12px; }
 .mobile-panel { padding:15px; margin:0; border-radius:16px; box-shadow:none; }
 .onboarding-step-2 .mobile-panel { order:1; }
 .onboarding-step-2 .mobile-venue-shell { order:2; }
 .mobile-venue-shell,.mobile-venue-shell.is-square { width:100%; aspect-ratio:3/2; min-height:0; margin:0; border-radius:16px; }
 .mobile-venue-shell.is-square { aspect-ratio:1; max-width:300px; }
 .mobile-venue-shell .mobile-venue { min-height:0; max-height:none; height:100%; border-radius:16px; }
 .mobile-venue-type-toggle { padding:10px; margin-bottom:12px; gap:8px; }
 .mobile-venue-type-toggle .venue-type-switch__label { font-size:12px; }
 .mobile-room-shapes { margin-bottom:14px; gap:6px; }
 .mobile-room-shapes .mobile-choice { min-height:82px; padding:8px 2px; gap:5px; }
 .mobile-room-shapes span { font-size:28px; }
 .mobile-room-shapes b,.mobile-table-shapes b { font-size:12px; }
 .onboarding-app .field-row { grid-template-columns:1fr 1fr; gap:10px; }
 .onboarding-app .text-input { min-height:48px; padding:10px; border-radius:10px; }
 .onboarding-app .field-group { gap:6px; font-size:13px; }
 .onboarding-app .area-summary { padding:12px; margin-top:12px; font-size:13px; }
 .onboarding-app .area-summary strong { font-size:23px; }
 .mobile-metric { margin:0; gap:10px; }
 .mobile-metric + .mobile-metric { margin-top:14px; padding-top:14px; border-top:1px solid #eadde3; }
 .mobile-metric label { font-size:14px; }
 .mobile-stepper { grid-template-columns:44px 62px 44px; border-radius:11px; }
 .mobile-stepper button { min-height:46px; font-size:22px; }
 .mobile-stepper input { font-size:22px; font-weight:600; }
 .mobile-table-shapes { gap:6px; }
 .mobile-table-shapes .mobile-choice { padding:6px 2px; gap:4px; border-radius:12px; }
 .mobile-table-art { max-width:85px; }
 .mobile-capacity.reference-capacity-value { padding:14px; margin:0; border-radius:14px; }
 .mobile-capacity.reference-capacity-value b { white-space:normal; font-size:18px; }
 .mobile-capacity.reference-capacity-value span { font-size:14px; }
 .mobile-capacity.reference-capacity-value small { font-size:12px; line-height:1.5; }
 .mobile-summary { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
 .mobile-summary div { flex-direction:column; gap:3px; padding:10px 0; font-size:14px; }
 .mobile-summary dt { font-size:12px; }
 .mobile-summary dd { overflow-wrap:anywhere; }
 .mobile-panel > p { margin:12px 0 0; font-size:14px; }
 .onboarding-step-1 .mobile-actions,.mobile-actions { position:fixed; inset-inline:0; bottom:0; z-index:12; margin:0; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); gap:10px; border:0; border-top:1px solid #e8dce2; border-radius:0; background:#fdfbf7f5; box-shadow:0 -5px 20px #530b3506; }
 .onboarding-step-1 .mobile-actions .button,.mobile-actions .button { flex:1; min-width:0; min-height:48px; padding:12px; font-size:15px; border-radius:13px; }
 .has-content-panel { padding-bottom:24px; }
 .content-panel__toolbar { padding:6px 0 12px; }
 .content-panel__title { font-size:12px; }
 .site-header.site-header--shared { position:relative; }
 .site-header--shared .brand { order:0; padding:12px 0; }
 .site-header--shared .shared-utility { order:1; justify-content:space-between; gap:8px; overflow:visible; }
 .site-header--shared .shared-language { position:absolute; top:16px; inset-inline-end:0; }
 .site-header--shared .shared-language select { width:104px; font-size:12px; }
 .site-header.site-header--shared .brand .brand__logo { width:126px; }
 .planning-info { margin-top:20px; padding:0 20px; }
 .editor-header { position:sticky; top:0; z-index:12; display:flex; flex-wrap:wrap; padding:10px 12px; gap:8px 12px; background:#fdfbf7; }
 .editor-header .brand { flex:0 0 112px; min-height:42px; }
 .editor-header .brand__logo { width:112px; height:auto; }
 .editor-header .event-name { flex:1; min-width:0; margin:0; }
 .event-name strong { font-size:13px; line-height:1.3; white-space:normal; }
 .event-name small { font-size:10px; line-height:1.4; }
 .editor-header > .editor-actions { flex:1 0 100%; display:flex; flex-wrap:nowrap; justify-content:space-between; gap:5px; }
 .editor-actions .language-picker { min-width:0; padding:0; border:0; background:none; box-shadow:none; }
 .editor-actions .language-picker__icon { display:none; }
 .editor-actions .language-picker select { width:92px; min-width:0; font-size:12px; padding:8px 12px 8px 0; }
 .editor-actions .button { min-height:44px; font-size:12px; padding:8px; border-radius:10px; }
 .editor-actions .button--ghost[data-action="preview"] { display:inline-flex; }
 .mobile-inspector-toggle { flex:1 0 100%; min-height:44px; font-size:13px; padding:8px; margin:0; }
 .editor-layout { display:block; height:calc(100svh - 180px); min-height:340px; }
 .canvas-wrap { height:100%; padding:12px 12px 86px; overflow:auto; touch-action:pan-x pan-y; }
 .phone-canvas-hint { position:sticky; inset-inline-start:0; width:calc(100vw - 24px); margin:0 0 12px; font-size:12px; color:#75616e; }
 .canvas-stage { position:relative; inset:auto; width:740px; height:500px; }
 .canvas-table { width:95px; height:95px; }
 .floor-canvas { touch-action:pan-x pan-y; }
 .floating-toolbar { position:fixed; bottom:calc(8px + env(safe-area-inset-bottom)); inset-inline-start:10px; transform:none; width:calc(100% - 20px); max-width:none; justify-content:flex-start; gap:4px; padding:6px; overflow-x:auto; border-radius:15px; }
 .tool-button { min-width:54px; min-height:44px; font-size:11px; }
 .inspector { position:fixed; inset-inline:0; bottom:0; z-index:25; display:none; max-height:78svh; padding:16px 16px calc(22px + env(safe-area-inset-bottom)); border-radius:22px 22px 0 0; overflow-y:auto; overscroll-behavior:contain; box-shadow:0 -8px 32px #530b3526; }
 .inspector.is-open { display:block; }
 .inspector-title { position:sticky; top:-16px; z-index:2; padding:12px 0; background:#fffdfb; }
 .inspector h2 { font-size:23px; }
 .phone-sheet-scrim { position:fixed; inset:0; z-index:24; border:0; background:#30202a66; }
 .editor-layout:has(.inspector.is-open) .phone-sheet-scrim { display:block; }
 .guest-row--editable .guest-name-input,.guest-row--editable .guest-side-select,.guest-row--editable .guest-group-select { min-height:44px; font-size:16px; }
 .onboarding-app .reference-modal { width:calc(100% - 24px); padding:20px; max-height:calc(100svh - 24px); }
 .consent-banner { max-height:38svh; overflow-y:auto; padding:14px; }
 .toast { bottom:90px; inset-inline:14px; font-size:13px; }
}
@media print { .phone-canvas-hint,.phone-sheet-scrim { display:none; } }
@media(max-width:380px) {
 .onboarding-utility,.site-header--shared .shared-utility { flex-wrap:wrap; justify-content:flex-start; gap:0 10px; }
 .onboarding-help,.site-header--shared .shared-utility a { font-size:11px; }
}
