/* v19 experiences */
.wz-rail { position: sticky; top: 0; z-index: 5; background: var(--bg); padding: 10px 0; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.wz-rail .wizard-step { cursor: pointer; }
.wz-rail span.wizard-step { cursor: default; opacity: .55; }
.wz-rail .wizard-step.locked { opacity: .55; }
.wz-sec:last-child, .hub-sec:last-child { min-height: calc(100vh - 90px); }
.wz-saved { display: inline-flex; align-items: center; gap: 4px; color: var(--moss-500); }
.wz-sec { scroll-margin-top: 84px; padding-bottom: 36px; }
.wz-sec + .wz-sec { padding-top: 28px; border-top: 1px solid var(--line); }
.wz-sec-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 14px; }
.wz-sec-head .h2 { margin: 0; }
.hub-rail { position: sticky; top: 0; z-index: 5; background: var(--bg); padding-top: 8px; }
.hub-sec { scroll-margin-top: 64px; padding-bottom: 32px; }
.hub-sec + .hub-sec { padding-top: 24px; border-top: 1px solid var(--line); }
.hub-sec > .section-head .h2 { margin: 0; }
.wz-n { flex: none; width: 30px; height: 30px; border-radius: 99px; display: grid; place-items: center; font-size: 13px; font-weight: 600; border: 1px solid var(--line-strong); background: #fff; margin-top: 4px; }
.wz-n.done { background: var(--moss-500); border-color: var(--moss-500); color: #fff; }
.wz-sec.locked .wz-sec-head { opacity: .55; }
.wz-locked { padding: 18px 20px; }
.xs-pills { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.xs-label { font-size: 13px; color: var(--fg-subtle); margin-right: 4px; }
.xs-pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--fg-muted); font-size: 13.5px; background: transparent; }
.xs-pill:hover { color: var(--fg); }
.xs-pill.on { background: var(--fg); color: var(--cream-50); border-color: var(--fg); }
.xs-pill .n, .xs-states .chip .n { font-family: var(--font-mono); font-size: 11px; opacity: .7; }
.exp-card .cover .xs-badges { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; }
.exp-card .cover .xs-badges .badge { position: static; }

.xs-gallery .xs-tpl { cursor: pointer; text-align: left; border: 1px solid rgba(74,52,30,.08); transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.xs-gallery .xs-tpl.blank { background: #FFFDF8; border-color: color-mix(in oklab, var(--candle-400) 55%, transparent); }
.xs-gallery .xs-tpl.on { border-color: var(--bark); box-shadow: 0 0 0 1px var(--bark); }
.xs-gallery .xs-src { color: var(--candle-800); }
.xs-hints { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.xs-hints span { font-size: 12px; padding: 3px 9px; border-radius: 999px; background: var(--cream-200); color: var(--fg-muted); }
.xs-foot { position: sticky; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 14px 0; margin-top: 18px; border-top: 1px solid var(--line); background: inherit; }
.xs-remind { max-width: 640px; }
.xs-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--candle-800); margin-right: 14px; }
.xs-check .mark { width: 18px; height: 18px; border-radius: 99px; border: 1px solid var(--candle-400); display: grid; place-items: center; font-size: 11px; }
.xs-check.ok { color: var(--fg-subtle); }
.xs-check.ok .mark { background: var(--moss-700); border-color: var(--moss-700); color: #fff; }

.xs-sophie { align-items: center; }
.xs-locked { background: #EFE8DC; border-color: transparent; color: var(--fg-muted); }
.pill-check.xs-soon span { opacity: .55; cursor: not-allowed; }
.seg .seg-btn input.sr-only { position: absolute; opacity: 0; pointer-events: none; }
.xs-photos { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.xs-photo { position: relative; width: 96px; height: 72px; border-radius: 10px; background: var(--cream-200) center/cover no-repeat; }
.xs-photo .badge { position: absolute; left: 6px; bottom: 6px; }

.xs-ready-card { padding: 16px 18px; }
.xs-warn { color: var(--candle-800); }

/* Experience hub — matches the Sun Valley detail screen */
.hub-page { display: flex; flex-direction: column; gap: 20px; }
.hub-head { display: flex; align-items: flex-end; gap: 20px; }
.hub-head .grow { flex: 1; min-width: 0; }
.hub-kicker { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-subtle); }
.hub-title { font-family: var(--font-display); font-weight: 600; font-size: 42px; line-height: 1.08; margin: 6px 0 0; }
.hub-line { margin: 6px 0 0; font-size: 15px; color: var(--fg-muted); }
.hub-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; border: 1px solid transparent; background: #EFE8DC; color: var(--fg-muted); }
.hub-pill-hot { background: color-mix(in oklab, var(--candle-400) 24%, #FFFDF8); color: var(--candle-800); }
.hub-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.hub-rail { position: sticky; top: 0; z-index: 5; background: var(--bg); padding-top: 8px; }
.hub-rail .count { margin-left: 6px; font-family: var(--font-mono); font-size: 11px; color: var(--candle-800); font-weight: 500; }
.hub-sec-title { font-family: var(--font-display); font-weight: 600; font-size: 26px; margin: 0 0 14px; }
.hub-ready { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.hub-ready-card { padding: 15px 16px; display: flex; flex-direction: column; gap: 6px; }
.hub-ready-k { font-size: 13px; color: var(--fg-subtle); }
.hub-ready-v { font-family: var(--font-display); font-weight: 600; font-size: 24px; line-height: 1; }
.hub-ready-n { font-size: 12.5px; }
.hub-split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; }
.hub-split-top { align-items: start; }
.hub-card-title { font-family: var(--font-display); font-weight: 600; font-size: 20px; }
.hub-card-head { display: flex; align-items: center; gap: 10px; }
.hub-card-head .hub-card-title { flex: 1; }
.hub-prose { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: var(--fg-muted); }
.hub-cover { height: 170px; margin-top: 12px; border-radius: 12px; background: var(--cream-200) center/cover no-repeat; }
.hub-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.hub-thumb { position: relative; height: 54px; border-radius: 10px; background: var(--cream-200) center/cover no-repeat; }
.hub-thumb.is-cover { box-shadow: 0 0 0 2px #3A2417; }
.hub-thumb-hit { position: absolute; inset: 0; border: 0; background: transparent; cursor: pointer; }
.hub-cover-tag { position: absolute; left: 5px; bottom: 5px; padding: 2px 7px; border-radius: 999px; background: rgba(43,27,18,.8); color: #fff; font-size: 10.5px; pointer-events: none; }
.hub-thumb-x { position: absolute; top: 4px; right: 4px; z-index: 1; width: 20px; height: 20px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.hub-thumb-x svg, .hub-add-photo svg, .hub-set-row svg { width: 12px; height: 12px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.hub-add-photo label { height: 54px; border-radius: 10px; border: 1.5px dashed rgba(74,52,30,.25); background: #FBF7EE; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; cursor: pointer; color: var(--fg-muted); font-size: 12px; }
.hub-add-photo svg { width: 18px; height: 18px; }
.hub-add-photo input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.hub-help { display: block; margin-top: 8px; font-size: 12.5px; color: var(--fg-subtle); }
.hub-facts { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px 16px; font-size: 14px; align-content: start; }
.hub-facts span:nth-child(odd) { color: var(--fg-subtle); }
.hub-text-btn { border: 0; background: none; padding: 0; font-size: 13.5px; color: #3A2417; cursor: pointer; font-family: inherit; }
.hub-text-btn:hover { text-decoration: underline; }
.hub-bullets { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.hub-bullets span { display: flex; gap: 10px; align-items: baseline; font-size: 15px; }
.hub-bullets i { width: 5px; height: 5px; flex: none; border-radius: 50%; background: var(--moss-500); transform: translateY(-2px); }
.hub-bullet-edit { display: flex; gap: 8px; align-items: center; margin-top: 8px; }
.hub-bullet-edit button { border: 0; background: none; color: var(--fg-subtle); cursor: pointer; font-size: 16px; }
.hub-food-off { margin: 8px 0 0; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14.5px; line-height: 1.45; color: var(--fg-muted); }
.hub-food-orders { display: block; font-size: 13px; color: var(--fg-subtle); padding: 6px 0; }
.hub-food-orders.due { color: var(--candle-800); }
.hub-dish { display: flex; align-items: baseline; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.hub-dish span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hub-seg { display: flex; gap: 3px; padding: 3px; border-radius: 999px; border: 1px solid rgba(74,52,30,.14); background: #fff; }
.hub-seg a { padding: 5px 14px; border-radius: 999px; font-size: 13.5px; color: var(--fg-muted); }
.hub-seg a.on { background: #3A2417; color: var(--cream-50); }
.hub-guest-row { display: grid; grid-template-columns: minmax(0, 1.6fr) 80px minmax(0, 1.2fr) 110px 100px; gap: 12px; align-items: center; padding: 12px 18px; border-top: 1px solid var(--line); font-size: 14px; }
.hub-guest-head { padding: 11px 18px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-subtle); border-top: 0; }
.hub-guest-row a { display: flex; flex-direction: column; gap: 1px; color: inherit; }
.hub-guest-via, .hub-guest-date { font-size: 12.5px; color: var(--fg-subtle); }
.hub-empty { padding: 18px; color: var(--fg-muted); font-size: 14.5px; }
.hub-wait { margin-top: 16px; padding-bottom: 10px; }
.hub-wl-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) 70px 80px 150px; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.hub-wl-act { display: flex; justify-content: flex-end; }
.hub-offered { font-size: 13px; color: var(--candle-800); }
.hub-wait-note { margin: 0; padding-top: 8px; border-top: 1px solid var(--line); font-size: 13px; color: var(--fg-subtle); }
.hub-muted { margin: 0 0 12px; font-size: 15px; color: var(--fg-muted); }
.hub-rooms { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.hub-room { padding: 12px 14px; border-radius: 10px; background: rgba(255,252,244,.5); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; }
.hub-room.taken { background: #FFFDF8; }
.hub-room > span:first-child { display: flex; justify-content: space-between; font-size: 13.5px; }
.hub-room .mono { font-size: 11px; color: var(--fg-subtle); }
.hub-room > span:last-child { font-size: 13px; }
.hub-days { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.hub-day-h { display: flex; flex-direction: column; gap: 1px; padding: 0 2px 8px; }
.hub-day-h span:first-child { font-family: var(--font-display); font-weight: 600; font-size: 18px; }
.hub-day-h .mono { font-size: 11.5px; color: var(--fg-subtle); }
.hub-act { padding: 11px 12px; border-radius: 14px; display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; }
.hub-act .mono { font-size: 11.5px; color: var(--candle-800); }
.hub-act span:nth-child(2) { font-size: 14px; line-height: 1.3; }
.hub-act span:nth-child(3) { font-size: 12px; color: var(--fg-subtle); }
.hub-eyebrow { margin: -6px 0 8px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-subtle); }
.hub-svcs { display: flex; flex-direction: column; gap: 8px; }
.hub-svc { display: flex; align-items: center; gap: 14px; padding: 13px 16px; }
.hub-svc span:first-child { flex: 1; font-size: 15px; }
.hub-svc span:nth-child(2) { font-size: 13px; color: var(--fg-muted); }
.hub-svc span:nth-child(3) { width: 100px; text-align: right; font-size: 13px; color: var(--fg-subtle); }
.hub-svc .mono { width: 70px; text-align: right; font-size: 12.5px; }
.hub-settings-intro { margin: -4px 0 16px; font-size: 16.5px; color: var(--fg-muted); }
.hub-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.hub-set-card { padding: 16px 18px 8px; }
.hub-set-card .hub-card-title { display: block; padding-bottom: 8px; }
.hub-set-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); color: inherit; }
.hub-set-row span:nth-child(2) { flex: 1; font-size: 15px; }
.hub-set-row span:nth-child(3) { font-size: 13px; }
.hub-set-row svg { width: 14px; height: 14px; stroke: var(--fg-subtle); stroke-width: 1.8; fill: none; stroke-linecap: round; }
.hub-mark { width: 20px; height: 20px; flex: none; border-radius: 50%; box-sizing: border-box; border: 1px solid var(--candle-400); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--cream-50); }
.hub-mark.ok { background: var(--moss-700); border-color: var(--moss-700); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
@media (max-width: 900px) {
  .hub-ready, .hub-split, .hub-rooms, .hub-days, .hub-settings { grid-template-columns: 1fr; }
  .hub-title { font-size: 32px; }
  .hub-head { flex-direction: column; align-items: stretch; }
}
