:root { --ink:#123130; --pine:#0e5557; --cream:#fffaf4; --paper:#fffefa; --sky:#bfe9f2; --sand:#f7e5ca; --clay:#ed866f; --muted:#4d6968; }
* { box-sizing: border-box; }
body { min-width:320px; margin:0; background:var(--cream); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html,body { width:100%; max-width:100%; overflow-x:hidden; }
@supports (overflow:clip) { html,body { overflow-x:clip; } }
main,.dashboard,.editor { max-width:100%; }
.app-booting { overflow:hidden; }
.app-booting > .site-header,.app-booting > main { visibility:hidden; }
.app-loader { position:fixed; z-index:1000; inset:0; display:flex; align-items:center; justify-content:center; gap:1rem; background:radial-gradient(circle at 25% 20%,rgba(191,233,242,.72),transparent 34%),radial-gradient(circle at 78% 78%,rgba(255,201,179,.62),transparent 32%),var(--cream); color:var(--ink); transition:opacity .24s ease,visibility .24s ease; }
.app-loader[hidden] { display:none; }
.app-loader > .brand-mark { flex:none; animation:loader-breathe 1.15s ease-in-out infinite alternate; }
.app-loader > div { display:grid; gap:.15rem; }
.app-loader strong { font-size:1.05rem; letter-spacing:-.04em; }
.app-loader small { color:var(--muted); font-size:.75rem; }
@keyframes loader-breathe { to { transform:translateY(-3px) scale(1.04); } }
button, input { font:inherit; }
textarea, select { font:inherit; }
button { cursor:pointer; }
#passkey-options[hidden] { display:none; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:.35rem; margin-bottom:1.35rem; padding:.3rem; border-radius:999px; background:#edf3ef; }.auth-tabs button { min-height:40px; border:0; border-radius:999px; background:transparent; color:var(--muted); font-size:.78rem; font-weight:850; }.auth-tabs button.is-active { background:white; box-shadow:0 4px 12px rgba(18,49,48,.08); color:var(--pine); }.sign-in-form { display:grid; gap:.7rem; }.sign-in-form input { margin-bottom:.35rem; }.auth-submit { width:100%; margin-top:.35rem; transition:background .2s ease,color .2s ease,transform .2s ease; }.auth-submit.is-loading { gap:.55rem; cursor:wait; color:rgba(255,255,255,.92); transform:scale(.985); }.auth-submit.is-loading::after { width:14px; height:14px; flex:none; border:2px solid rgba(255,255,255,.38); border-top-color:white; border-radius:50%; content:""; animation:auth-submit-spin .7s linear infinite; }.auth-submit.is-loading:disabled { opacity:1; }.forgot-button { justify-self:center; border:0; padding:.35rem; background:transparent; color:var(--pine); font-size:.72rem; font-weight:800; }.forgot-button[hidden] { display:none; }.auth-divider { display:flex; align-items:center; gap:.7rem; margin:1.1rem 0; color:var(--muted); font-size:.68rem; text-transform:uppercase; }.auth-divider::before,.auth-divider::after { height:1px; flex:1; background:rgba(18,49,48,.13); content:""; }.passkey-button { width:100%; min-height:48px; border:1px solid rgba(18,49,48,.18); border-radius:999px; background:white; color:var(--pine); font-size:.82rem; font-weight:850; }.password-reset[hidden] { display:none; }.password-reset { display:grid; gap:.8rem; }.password-reset h2 { margin:0; font-size:1.8rem; letter-spacing:-.05em; }.password-reset > p:not(.eyebrow,.form-message) { margin:0 0 .5rem; color:var(--muted); line-height:1.5; }.password-reset label { display:grid; gap:.45rem; font-size:.78rem; font-weight:850; }.password-reset input { width:100%; min-height:50px; border:1px solid rgba(18,49,48,.2); border-radius:13px; padding:0 .9rem; background:white; font-size:16px; }.create-trip-title > p:last-child { margin:.65rem 0 0; color:var(--muted); font-size:.85rem; line-height:1.5; }.trip-list { perspective:1000px; }.trip-card { display:grid !important; grid-template-columns:minmax(0,1fr) auto; padding:0 !important; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease; animation:card-arrive .45s both; }.trip-card:hover { transform:translateY(-3px); box-shadow:0 18px 35px rgba(18,49,48,.1); }.trip-card-main { display:grid; gap:1rem; min-width:0; padding:1.35rem 1.45rem; }.trip-card-copy h3 { margin:.25rem 0 .4rem; font-size:1.35rem; }.trip-card-copy p { margin:0; color:var(--muted); font-size:.83rem; }.trip-progress { display:grid; gap:.45rem; max-width:340px; }.trip-progress > span { color:var(--muted); font-size:.7rem; }.trip-progress b { color:var(--pine); }.progress-track { height:6px; overflow:hidden; border-radius:999px; background:#e7eeeb; }.progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--clay),#f2c55a); transition:width .5s ease; }.section-chips { display:flex; flex-wrap:wrap; gap:.4rem; }.section-chips span { padding:.3rem .5rem; border:1px dashed rgba(18,49,48,.14); border-radius:999px; color:#80908e; font-size:.62rem; font-weight:800; }.section-chips span.has-content { border-style:solid; border-color:#b9ddd4; background:#e8f5f1; color:var(--pine); }.trip-open { display:grid; min-width:180px; place-content:center; gap:.45rem; border:0; border-left:1px solid rgba(18,49,48,.09); padding:1.25rem; background:#e5f5f7; color:var(--pine); text-align:left; }.trip-open span { font-size:.8rem; font-weight:850; }.trip-open b { font-size:1.4rem; }.editor-panel.is-active { animation:panel-in .28s ease both; }.editor-nav button { transition:background .2s ease,color .2s ease,transform .2s ease; }.editor-nav button:active { transform:scale(.97); }@keyframes auth-submit-spin { to { transform:rotate(360deg); } }@keyframes card-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }@keyframes panel-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .auth-submit.is-loading::after { animation-duration:1.4s; } }
@media (max-width:680px) { .header-actions { gap:.65rem; }.header-actions .text-button { font-size:.7rem; }.trip-card { grid-template-columns:1fr !important; }.trip-open { grid-auto-flow:column; min-width:0; place-content:center; border-top:1px solid rgba(18,49,48,.09); border-left:0; padding:.9rem; text-align:center; }.trip-open b { font-size:1rem; }.trip-card-main { padding:1.15rem; }.section-chips { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.1rem; }.section-chips span { flex:none; } }
.guest-preview { border:0 !important; text-align:left !important; }.guest-preview b { margin-top:.35rem; font-size:.7rem; }
.planner-schema-note { display:flex; align-items:flex-start; gap:.75rem; max-width:850px; margin:-.4rem 0 1.5rem; padding:1rem 1.1rem; border:1px solid #e5b85a; border-radius:15px; background:#fff3cc; color:var(--ink); }.planner-schema-note[hidden] { display:none; }.planner-schema-note strong { flex:none; }.planner-schema-note span { color:var(--muted); font-size:.85rem; line-height:1.45; }.planner-layout { display:grid; gap:2rem; }.hit-list,.calendar-view { min-width:0; }.planner-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }.planner-heading span { color:#c56b56; font-size:.67rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.planner-heading h3 { margin:.25rem 0 0; font-size:1.45rem; letter-spacing:-.04em; }.planner-heading small { color:var(--muted); }.planner-help { margin:.55rem 0 1rem; color:var(--muted); font-size:.86rem; }.small-button { min-height:39px; padding:.55rem .8rem; border:0; border-radius:999px; background:var(--pine); color:white; font-size:.75rem; font-weight:850; }.small-button:disabled { cursor:not-allowed; opacity:.45; }.hit-list .saved-items { max-width:none; }.hit-item { position:relative; padding-left:1.25rem; overflow:hidden; }.hit-item::before { position:absolute; inset:0 auto 0 0; width:5px; background:var(--item-color,#ed866f); content:""; }.category-meal { --item-color:#e8b342; }.category-activity { --item-color:#ed866f; }.category-travel { --item-color:#68b9cf; }.category-downtime { --item-color:#8abca1; }.category-stay { --item-color:#9b8ac4; }.category-other { --item-color:#9aa7a6; }.item-actions { display:flex !important; flex:none; grid-auto-flow:column; gap:.25rem !important; }.edit-item { border:0; padding:.4rem; background:transparent; color:var(--pine); font-size:.74rem; font-weight:850; }.calendar-grid { display:grid; grid-auto-columns:minmax(205px,1fr); grid-auto-flow:column; gap:.75rem; overflow-x:auto; padding:.15rem .1rem 1rem; scroll-snap-type:x proximity; }.calendar-day { min-width:0; overflow:hidden; border:1px solid rgba(18,49,48,.13); border-radius:18px; background:#f8fbfa; scroll-snap-align:start; }.calendar-day > header { display:grid; gap:.15rem; padding:.85rem 1rem; background:var(--pine); color:white; }.calendar-day > header span { color:#f7cc66; font-size:.64rem; font-weight:900; text-transform:uppercase; }.calendar-day > header strong { font-size:.95rem; }.calendar-slot { min-height:145px; padding:.75rem; border-top:1px solid rgba(18,49,48,.11); background:white; }.calendar-slot.has-items { background:#fbfaf6; }.slot-label { display:block; margin-bottom:.55rem; color:var(--muted); font-size:.62rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }.slot-items { display:grid; gap:.4rem; }.calendar-event { position:relative; display:grid; width:100%; gap:.12rem; overflow:hidden; border:1px solid color-mix(in srgb, var(--item-color) 55%, white); border-radius:11px; padding:.6rem .65rem .6rem .78rem; background:color-mix(in srgb, var(--item-color) 14%, white); color:var(--ink); text-align:left; }.calendar-event::before { position:absolute; inset:0 auto 0 0; width:4px; background:var(--item-color); content:""; }.calendar-event.status-idea { border-style:dashed; opacity:.75; }.calendar-event strong { font-size:.78rem; }.calendar-event small { color:var(--muted); font-size:.65rem; text-transform:capitalize; }.slot-open { display:grid; gap:.35rem; padding:.45rem; border:1px dashed rgba(18,49,48,.18); border-radius:11px; }.slot-open > span { color:var(--muted); font-size:.7rem; }.slot-open button { border:0; border-radius:8px; padding:.42rem .5rem; background:#edf6f5; color:var(--pine); font-size:.68rem; font-weight:800; text-align:left; }.calendar-empty { grid-column:1 / -1; margin:0; padding:1.3rem; border:1px dashed rgba(18,49,48,.2); border-radius:15px; color:var(--muted); }.plan-form { max-width:none; margin-top:2rem; padding:clamp(1.1rem,3vw,1.8rem); border-radius:20px; background:var(--sky); }.plan-form[hidden] { display:none; }.plan-form-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.plan-form-head h3 { margin:0; font-size:1.45rem; letter-spacing:-.04em; }.schedule-choice { display:flex; gap:.75rem 1.5rem; margin:0; border:0; border-top:1px solid rgba(18,49,48,.15); border-bottom:1px solid rgba(18,49,48,.15); padding:1rem 0; }.schedule-choice legend { float:left; width:100%; margin-bottom:.6rem; font-size:.78rem; font-weight:850; }.schedule-choice label { display:flex; grid-auto-flow:column; align-items:center; justify-content:flex-start; gap:.5rem; font-weight:700; }.schedule-choice input { width:auto; min-height:auto; }.schedule-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }.schedule-fields[hidden] { display:none; }
.preview-shell[hidden] { display:none; }.preview-open { overflow:hidden; }.preview-shell { position:fixed; z-index:100; inset:0; }.preview-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(18,49,48,.42); backdrop-filter:blur(7px); }.live-preview { position:absolute; inset:0 0 0 auto; width:min(470px,100%); overflow-y:auto; background:#fffaf4; box-shadow:-25px 0 60px rgba(18,49,48,.22); }.preview-toolbar { position:sticky; z-index:2; top:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid rgba(18,49,48,.12); background:rgba(255,250,244,.95); backdrop-filter:blur(10px); }.preview-toolbar > div { display:grid; gap:.15rem; }.preview-toolbar span { font-size:.78rem; font-weight:900; }.preview-toolbar small { color:var(--muted); font-size:.67rem; }.preview-toolbar button { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(18,49,48,.15); border-radius:50%; background:white; color:var(--ink); font-size:1.4rem; }.preview-hero { padding:3rem 1.5rem 2rem; background:var(--pine); color:white; }.preview-hero > span { color:#f7cc66; font-size:.66rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.preview-hero h2 { margin:.65rem 0 .8rem; font-family:Georgia,serif; font-size:2.7rem; font-weight:400; letter-spacing:-.04em; line-height:.94; }.preview-hero p { margin:0; color:rgba(255,255,255,.75); }.preview-content { display:grid; gap:1rem; padding:1rem; }.preview-content > section,.preview-intro { margin:0; padding:1.2rem; border:1px solid rgba(18,49,48,.1); border-radius:18px; background:white; }.preview-intro { color:var(--muted); line-height:1.55; }.preview-kicker { color:#c56b56; font-size:.62rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }.preview-content h3 { margin:.35rem 0 1rem; font-size:1.35rem; letter-spacing:-.04em; }.preview-day { display:grid; gap:.45rem; margin-top:.9rem; }.preview-day > strong { font-size:.75rem; }.preview-plan { position:relative; display:grid; gap:.12rem; overflow:hidden; border-radius:12px; padding:.7rem .75rem .7rem .9rem; background:color-mix(in srgb, var(--item-color) 13%, white); }.preview-plan::before { position:absolute; inset:0 auto 0 0; width:4px; background:var(--item-color); content:""; }.preview-plan span { color:var(--muted); font-size:.62rem; font-weight:800; text-transform:capitalize; }.preview-plan b { font-size:.85rem; }.preview-plan small { color:var(--muted); }.preview-facts { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:.8rem; }.preview-facts span { padding:.7rem; border-radius:10px; background:#f1f7f6; color:var(--muted); font-size:.66rem; }.preview-facts b { color:var(--ink); font-size:.76rem; }.preview-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; border-top:1px solid rgba(18,49,48,.1); }.preview-row span { display:grid; gap:.15rem; }.preview-row b { font-size:.8rem; }.preview-row small { color:var(--muted); font-size:.67rem; text-transform:capitalize; }.preview-row > strong { color:var(--pine); }.preview-empty { color:var(--muted); font-size:.84rem; }
@media (max-width:720px) { .planner-schema-note { display:grid; }.planner-heading { align-items:flex-start; }.planner-heading small { display:none; }.planner-help { line-height:1.45; }.calendar-grid { grid-auto-columns:82%; margin-right:-1.3rem; padding-right:1.3rem; }.schedule-choice { display:grid; }.schedule-fields { grid-template-columns:1fr; }.plan-form { margin-right:-.35rem; margin-left:-.35rem; }.item-actions { grid-auto-flow:row; }.live-preview { width:100%; }.preview-hero { padding-top:2.2rem; } }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:82px; padding:0 clamp(1.25rem,5vw,4.5rem); border-bottom:1px solid rgba(18,49,48,.1); background:rgba(255,254,250,.92); }
.brand { display:inline-flex; align-items:center; gap:.7rem; color:var(--ink); font-size:1.1rem; font-weight:900; letter-spacing:-.04em; text-decoration:none; }
.brand-mark { display:flex; align-items:flex-end; gap:4px; height:31px; }
.brand-mark i { display:block; width:7px; border-radius:6px; transform:rotate(12deg); }
.brand-mark i:nth-child(1) { height:20px; background:var(--clay); }.brand-mark i:nth-child(2) { height:29px; background:var(--pine); }.brand-mark i:nth-child(3) { height:23px; background:#f2c55a; }
.header-actions { display:flex; align-items:center; gap:1.2rem; }.header-actions[hidden] { display:none; }.account-email { max-width:220px; overflow:hidden; color:var(--muted); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }.text-button { border:0; padding:0; background:transparent; color:var(--pine); font-weight:800; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.75rem 1.15rem; border:0; border-radius:999px; background:var(--pine); box-shadow:0 10px 20px rgba(14,85,87,.16); color:white; font-size:.88rem; font-weight:850; }
.button:hover, .button:focus-visible { background:#0a4648; }.button:focus-visible, .text-button:focus-visible, input:focus-visible { outline:3px solid rgba(237,134,111,.45); outline-offset:3px; }
.auth-view { position:relative; display:grid; min-height:calc(100vh - 82px); place-items:center; overflow:hidden; padding:3rem 1.25rem; }.auth-art { position:absolute; inset:0; overflow:hidden; }.auth-art i { position:absolute; display:block; border-radius:50%; }.auth-art i:nth-child(1) { width:70vw; height:70vw; top:-46vw; left:-18vw; background:var(--sky); }.auth-art i:nth-child(2) { width:45vw; height:45vw; right:-18vw; bottom:-30vw; background:#ffc9b3; }.auth-art i:nth-child(3) { width:18vw; height:18vw; right:17%; top:14%; border:2px dashed rgba(14,85,87,.17); }
.auth-view[hidden], .dashboard[hidden], .create-trip[hidden] { display:none; }
.editor[hidden], .editor-panel[hidden] { display:none; }
.auth-card { position:relative; width:min(100%, 570px); padding:clamp(2rem,6vw,4.7rem); border:1px solid rgba(255,255,255,.8); border-radius:30px; background:rgba(255,254,250,.9); box-shadow:0 28px 80px rgba(18,49,48,.16); }.eyebrow { margin:0 0 .8rem; color:#c56b56; font-size:.74rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }.auth-card h1,.dashboard h1 { margin:0; font-size:clamp(2.55rem,6vw,4.85rem); letter-spacing:-.07em; line-height:.94; }.auth-card h1 em { color:var(--clay); font-family:Georgia, serif; font-weight:400; }.intro { max-width:400px; margin:1.25rem 0 2rem; color:var(--muted); font-size:1.03rem; line-height:1.6; }.sign-in-form label, .create-trip label { display:block; margin-bottom:.48rem; color:var(--ink); font-size:.8rem; font-weight:850; }.field-row { display:flex; gap:.6rem; }.sign-in-form input,.create-trip input { width:100%; min-width:0; min-height:50px; padding:0 .9rem; border:1px solid rgba(18,49,48,.2); border-radius:13px; background:white; color:var(--ink); }.field-row input { flex:1; }.form-message { min-height:1.25rem; margin:.65rem 0 0; color:#a84a3e; font-size:.8rem; font-weight:700; }.form-message.success { color:var(--pine); }.how-it-works { display:grid; grid-template-columns:26px 1fr; gap:.6rem .85rem; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid rgba(18,49,48,.1); }.how-it-works span { display:grid; width:25px; height:25px; place-items:center; border-radius:8px; background:var(--sand); color:var(--pine); font-size:.7rem; font-weight:900; }.how-it-works p { margin:0; color:var(--muted); font-size:.8rem; line-height:1.5; }
.dashboard { width:min(1180px, calc(100% - 2.5rem)); margin:0 auto; padding:clamp(3rem,7vw,6rem) 0 6rem; }.dashboard-head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3rem; }.dashboard-head > div > p:last-child { max-width:560px; margin:1.2rem 0 0; color:var(--muted); line-height:1.6; }.dashboard-head .button { flex:none; }.create-trip { display:grid; grid-template-columns:minmax(190px,.8fr) minmax(0,1.4fr); gap:2rem; margin-bottom:3rem; padding:2rem; border:1px solid rgba(18,49,48,.1); border-radius:24px; background:var(--sky); }.create-trip h2,.list-heading h2,.empty-state h2 { margin:0; font-size:1.55rem; letter-spacing:-.04em; }.create-trip form { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.create-trip label.full { grid-column:1 / -1; }.form-actions { display:flex; align-items:center; justify-content:space-between; grid-column:1 / -1; margin-top:.25rem; }.create-trip .form-message { grid-column:1 / -1; margin:-.4rem 0 0; }.list-heading { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:1rem; }.list-heading span { color:var(--muted); font-size:.8rem; }.trip-list { display:grid; gap:.85rem; }.trip-card { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.35rem 1.45rem; border:1px solid rgba(18,49,48,.12); border-radius:19px; background:var(--paper); box-shadow:0 10px 25px rgba(18,49,48,.05); }.trip-card > div { min-width:0; }.trip-card h3 { margin:.2rem 0 .42rem; font-size:1.16rem; letter-spacing:-.03em; }.trip-card p { margin:0; overflow:hidden; color:var(--muted); font-size:.83rem; text-overflow:ellipsis; white-space:nowrap; }.status { display:inline-flex; padding:.3rem .55rem; border-radius:999px; background:var(--sand); color:var(--pine); font-size:.64rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }.trip-card a { flex:none; color:var(--pine); font-size:.82rem; font-weight:850; text-decoration:none; }.empty-state { max-width:600px; padding:3.5rem 1.5rem; border:1px dashed rgba(18,49,48,.22); border-radius:24px; background:rgba(255,255,255,.45); text-align:center; }.empty-mark { display:grid; width:49px; height:49px; place-items:center; margin:0 auto 1rem; border-radius:16px; background:var(--pine); color:white; font-size:1.5rem; }.empty-state p { max-width:390px; margin:1rem auto 1.5rem; color:var(--muted); font-size:.9rem; line-height:1.55; }
@media (max-width:680px) { .site-header { min-height:72px; padding:0 1.1rem; }.brand { font-size:1rem; }.brand-mark { transform:scale(.86); transform-origin:left center; }.account-email { display:none; }.auth-view { min-height:calc(100vh - 72px); padding:1.25rem; }.auth-card { padding:2.2rem 1.35rem; border-radius:23px; }.field-row { display:grid; }.field-row .button { width:100%; }.dashboard { width:min(100% - 2rem, 1180px); padding-top:3rem; }.dashboard-head { display:grid; gap:1.5rem; margin-bottom:2rem; }.dashboard-head .button { width:100%; }.create-trip { display:grid; gap:1.5rem; padding:1.35rem; }.create-trip form { grid-template-columns:1fr; }.create-trip label.full,.form-actions,.create-trip .form-message { grid-column:auto; }.trip-card { align-items:flex-start; padding:1.15rem; }.trip-card a { padding-top:.25rem; }.trip-card p { white-space:normal; }.auth-art i:nth-child(3) { width:44vw; height:44vw; right:-14%; top:8%; } }

/* The draft form must remain a single, roomy column on phones and small tablets. */
@media (max-width: 900px) {
  .dashboard .create-trip { display:block; padding:1.35rem; }
  .dashboard .create-trip[hidden] { display:none; }
  .dashboard .create-trip-title { margin-bottom:1.45rem; }
  .dashboard .create-trip form { display:grid; grid-template-columns:minmax(0, 1fr) !important; gap:1rem; }
  .dashboard .create-trip form > label,
  .dashboard .create-trip form > label.full,
  .dashboard .create-trip .form-actions,
  .dashboard .create-trip .form-message { grid-column:1 / -1 !important; min-width:0; }
  .dashboard .create-trip input { width:100%; min-width:0; font-size:16px; }
  .dashboard .create-trip .form-actions { display:grid; grid-template-columns:1fr; gap:.75rem; margin-top:.3rem; }
  .dashboard .create-trip .form-actions .button { width:100%; }
  .dashboard .create-trip .form-actions .text-button { min-height:44px; }
}


/* Organizer command center */
.dashboard { position:relative; }
.dashboard::before { position:absolute; z-index:-1; top:1rem; right:-8vw; width:290px; height:290px; border-radius:50%; background:rgba(191,233,242,.48); filter:blur(2px); content:""; }
.dashboard-head { align-items:center; padding:clamp(1.5rem,4vw,3rem); border:1px solid rgba(18,49,48,.1); border-radius:30px; background:linear-gradient(125deg,#e4f6f8 0 46%,#fff1dc 100%); box-shadow:0 20px 55px rgba(18,49,48,.08); }
.dashboard-head h1 { max-width:680px; font-size:clamp(3rem,7vw,5.6rem); }
.dashboard-head .button { box-shadow:0 13px 28px rgba(14,85,87,.22); }
.trips-section { padding:clamp(1.1rem,3vw,2rem); border:1px solid rgba(18,49,48,.1); border-radius:26px; background:rgba(255,254,250,.76); box-shadow:0 18px 50px rgba(18,49,48,.06); backdrop-filter:blur(8px); }
.list-heading { padding:.15rem .15rem .85rem; border-bottom:1px solid rgba(18,49,48,.1); }
.list-heading h2 { font-size:clamp(1.7rem,3vw,2.3rem); }
.list-heading span { padding:.35rem .6rem; border-radius:999px; background:var(--sand); color:var(--pine); font-weight:850; }
.trip-list { margin-top:1rem; }
.trip-card { border-color:rgba(18,49,48,.1); border-radius:22px; background:linear-gradient(110deg,#fffefa 0 72%,#f1faf9 100%); box-shadow:0 12px 30px rgba(18,49,48,.07); }
.trip-card-main { grid-template-columns:minmax(0,1fr) minmax(210px,340px); align-items:center; }
.trip-card-copy { grid-row:1 / span 2; }
.trip-card-copy h3 { font-size:clamp(1.45rem,2.5vw,2rem); }
.trip-progress,.section-chips { grid-column:2; }
.trip-open { min-width:165px; background:linear-gradient(155deg,#dff4f4,#fff1dc); }
.create-trip:not([hidden]) { animation:panel-in .32s ease both; }
.dashboard,.editor { background:var(--cream); }

@media (max-width:680px) {
  .dashboard { width:min(100% - 1.25rem,1180px); padding-top:1.25rem; }
  .dashboard::before { display:none; }
  .dashboard-head { gap:1.25rem; margin-bottom:1rem; padding:1.35rem; border-radius:24px; }
  .dashboard-head h1 { font-size:clamp(2.75rem,14vw,4rem); }
  .dashboard-head > div > p:last-child { margin-top:.9rem; font-size:.9rem; }
  .trips-section { padding:.8rem; border-radius:22px; }
  .list-heading { padding:.35rem .35rem .8rem; }
  .trip-card-main { display:grid; grid-template-columns:1fr; gap:.85rem; }
  .trip-card-copy { grid-row:auto; }
  .trip-progress,.section-chips { grid-column:auto; }
  .section-chips { flex-wrap:wrap; overflow:visible; }
  .trip-open { border-radius:0 0 20px 20px; background:linear-gradient(90deg,#dff4f4,#fff1dc); }
}

@media (prefers-reduced-motion:reduce) { .create-trip:not([hidden]) { animation:none; } }

/* Friendlier in-page editing */
.editor-title input { font:inherit; }
#editor-title-input { display:block; width:min(100%,760px); min-height:1.05em; overflow:hidden; border:0; border-bottom:2px dashed rgba(14,85,87,.28); padding:0 0 .12em; outline:0; background:transparent; color:var(--ink); font:inherit; letter-spacing:inherit; line-height:inherit; resize:none; }
#editor-title-input::placeholder { color:#6c8f8c; opacity:.72; }
#editor-title-input:hover,#editor-title-input:focus { border-bottom-color:var(--clay); background:linear-gradient(transparent 78%,rgba(237,134,111,.12) 78%); }
.editable-trip-name { display:block; cursor:text; }
.editable-trip-name > span { display:flex; align-items:center; gap:.4rem; margin-bottom:.4rem; color:#c56b56; font-size:.67rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.editable-trip-name > span b { display:grid; width:22px; height:22px; place-items:center; border-radius:7px; background:#e4f4f1; color:var(--pine); font-size:.72rem; }
.field-help { display:block; margin-top:.15rem; color:var(--muted); font-size:.72rem; font-weight:500; line-height:1.45; }
.optional { color:var(--muted); font-size:.66rem; font-weight:600; }
.date-day { min-height:1.05rem; color:#c56b56; font-size:.7rem; font-weight:750; }
.welcome-field { margin-top:1rem; padding-top:1.35rem; border-top:1px solid rgba(18,49,48,.11); }
.stay-type-choice { margin:0; border:0; padding:0; }
.stay-type-choice legend { margin-bottom:.65rem; color:var(--ink); font-size:.78rem; font-weight:850; }
.choice-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.choice-cards label { position:relative; display:flex; min-height:50px; align-items:center; justify-content:center; border:1px solid rgba(18,49,48,.16); border-radius:13px; padding:.65rem; background:white; color:var(--muted); text-align:center; cursor:pointer; }
.choice-cards input { position:absolute; opacity:0; pointer-events:none; }
.choice-cards label:has(input:checked) { border-color:var(--pine); background:#e4f4f1; box-shadow:inset 0 0 0 1px var(--pine); color:var(--pine); }
.clear-choice { margin-top:.55rem; border:0; padding:.25rem 0; background:transparent; color:var(--muted); font-size:.68rem; font-weight:750; }
.quick-idea-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; margin-bottom:.2rem; }
.quick-idea-form input { min-width:0; min-height:48px; border:1px solid rgba(18,49,48,.18); border-radius:13px; padding:0 .85rem; background:white; color:var(--ink); font-size:16px; }
.quick-idea-form button { border:0; border-radius:13px; padding:.65rem .9rem; background:var(--pine); color:white; font-size:.76rem; font-weight:850; }
.section-chips button { flex:none; border:1px dashed rgba(18,49,48,.14); border-radius:999px; padding:.3rem .5rem; background:transparent; color:#80908e; font-size:.62rem; font-weight:800; }
.section-chips button.has-content { border-style:solid; border-color:#b9ddd4; background:#e8f5f1; color:var(--pine); }
.section-chips button:hover,.section-chips button:focus-visible { border-color:var(--clay); color:var(--pine); }
.plan-form-open { overflow:hidden; }
html:has(body.plan-form-open) { overflow:hidden; overscroll-behavior:none; }
.plan-form-open .editor-panel.is-active { animation:none; transform:none; }
.plan-form { position:fixed; z-index:90; inset:50% auto auto 50%; display:grid; width:min(780px,calc(100% - 2rem)); max-height:calc(100vh - 2rem); margin:0; overflow-y:auto; border:1px solid rgba(255,255,255,.7); background:#fffdfa; box-shadow:0 0 0 100vmax rgba(18,49,48,.46),0 30px 90px rgba(18,49,48,.28); transform:translate(-50%,-50%); animation:modal-in .28s ease both; }
.plan-form-head { position:sticky; z-index:2; top:-1.8rem; align-items:center; margin:-1.8rem -1.8rem .4rem; padding:1.4rem 1.8rem 1rem; border-bottom:1px solid rgba(18,49,48,.1); background:rgba(255,250,244,.96); backdrop-filter:blur(10px); }
.plan-form-head span { display:block; max-width:560px; margin-top:.4rem; color:var(--muted); font-size:.78rem; line-height:1.45; }
.plan-close { display:grid; width:40px; height:40px; flex:none; place-items:center; border:1px solid rgba(18,49,48,.15); border-radius:50%; background:white; color:var(--ink); font-size:1.45rem; }
.plan-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.8rem; margin:.25rem 0 .8rem; }
.plan-progress::before { grid-column:1; grid-row:1; height:6px; border-radius:999px; background:#e7eeeb; content:""; }
.plan-progress i { z-index:1; grid-column:1; grid-row:1; width:33.333%; height:6px; border-radius:999px; background:linear-gradient(90deg,var(--clay),#f2c55a); transition:width .25s ease; }
.plan-progress span { color:var(--muted); font-size:.68rem; font-weight:800; }
.plan-step { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; animation:panel-in .2s ease both; }
.plan-step[hidden] { display:none; }
.plan-step > label.wide { grid-column:1 / -1; }
.plan-type-choice { min-width:0; margin:0; border:0; padding:0; }
.plan-type-choice legend { margin-bottom:.45rem; color:#365453; font-size:.76rem; font-weight:760; }
.plan-type-choice > div { display:flex; flex-wrap:wrap; gap:.45rem; }
.plan-type-choice label { position:relative; display:block; cursor:pointer; }
.plan-type-choice input { position:absolute; opacity:0; pointer-events:none; }
.plan-type-choice span { display:grid; min-height:42px; place-items:center; border:1px solid rgba(18,49,48,.14); border-radius:999px; padding:.55rem .85rem; background:#f3f8f6; color:#496563; font-size:.76rem; font-weight:720; transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease; }
.plan-type-choice input:checked + span { border-color:#69aaa0; background:#dff2ed; box-shadow:inset 0 0 0 1px rgba(15,94,91,.28),0 5px 12px rgba(18,49,48,.06); color:var(--pine); }
.plan-type-choice input:focus-visible + span { outline:3px solid rgba(237,134,111,.3); outline-offset:2px; }
.plan-type-choice label:hover span { transform:translateY(-1px); }
.plan-step .schedule-choice,.plan-step .schedule-fields { grid-column:1 / -1; }
.plan-wizard-actions { display:grid; grid-template-columns:auto minmax(0,1fr) auto; }
.plan-wizard-actions .form-message { text-align:center; }
.plan-wizard-actions [hidden] { display:none; }
@keyframes modal-fade { from { opacity:0; } }
@keyframes modal-in { from { opacity:0; transform:translate(-50%,calc(-50% + 18px)) scale(.98); } }

@media (max-width:680px) {
  .editor-head h1 { font-size:clamp(2.4rem,12vw,3.7rem); }
  .choice-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quick-idea-form { grid-template-columns:1fr; }
  .plan-form { inset:auto 0 0; width:100%; max-height:92vh; border-radius:25px 25px 0 0; transform:none; animation:modal-up .3s ease both; }
  .plan-form-head { top:-1.3rem; margin:-1.3rem -1.3rem .3rem; padding:1.2rem 1.3rem .9rem; }
  @keyframes modal-up { from { opacity:0; transform:translateY(28px); } }
  .plan-step { grid-template-columns:1fr; }
  .plan-step > label.wide { grid-column:auto; }
  .plan-wizard-actions { grid-template-columns:auto 1fr; }
  .plan-wizard-actions .form-message { grid-column:1 / -1; grid-row:2; }
}

/* Organizer editor */
.editor { width:min(1180px, calc(100% - 2.5rem)); margin:0 auto; padding:clamp(1.6rem,5vw,4.5rem) 0 6rem; }.editor-topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.back-button { font-size:.86rem; }.draft-label { display:inline-flex; padding:.35rem .65rem; border-radius:999px; background:var(--sand); color:var(--pine); font-size:.67rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.editor-head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin:2.4rem 0; }.editor-head > div { width:100%; max-width:none; min-width:0; }.editor-head h1 { margin:0; font-size:var(--trip-title-size,clamp(2.5rem,6vw,5.3rem)); letter-spacing:-.075em; line-height:.91; }.editor-head p:last-child { max-width:620px; margin:1.1rem 0 0; color:var(--muted); line-height:1.6; }.guest-preview { display:grid; width:245px; flex:none; gap:.4rem; padding:1.1rem 1.2rem; border-radius:20px; background:var(--pine); box-shadow:0 15px 30px rgba(14,85,87,.16); color:white; }.guest-preview span { color:#f7cc66; font-size:.64rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.guest-preview strong { font-family:Georgia, serif; font-size:1.5rem; font-weight:400; line-height:1.1; }.guest-preview small { color:rgba(255,255,255,.7); line-height:1.4; }.editor-nav { display:flex; gap:.55rem; overflow-x:auto; padding:0 0 1rem; border-bottom:1px solid rgba(18,49,48,.12); scrollbar-width:none; }.editor-nav::-webkit-scrollbar { display:none; }.editor-nav button { flex:none; min-height:42px; border:1px solid rgba(18,49,48,.16); border-radius:999px; padding:.55rem .85rem; background:var(--paper); color:var(--muted); font-size:.78rem; font-weight:850; }.editor-nav button.is-active { border-color:var(--pine); background:var(--pine); color:white; }.editor-panels { margin-top:1.6rem; }.editor-panel { padding:clamp(1.3rem,4vw,2.5rem); border:1px solid rgba(18,49,48,.12); border-radius:26px; background:var(--paper); box-shadow:0 14px 35px rgba(18,49,48,.05); }.panel-intro { display:grid; grid-template-columns:40px minmax(0,1fr); gap:1rem; max-width:750px; margin-bottom:2rem; }.panel-number { display:grid; width:36px; height:36px; place-items:center; border-radius:12px; background:var(--sand); color:var(--pine); font-size:.76rem; font-weight:900; }.panel-intro h2 { margin:0; font-size:clamp(1.55rem,3vw,2.2rem); letter-spacing:-.05em; line-height:1; }.panel-intro p { margin:.75rem 0 0; color:var(--muted); line-height:1.55; }.editor-form { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem; max-width:850px; }.editor-form label { display:grid; gap:.45rem; color:var(--ink); font-size:.78rem; font-weight:850; }.editor-form .wide { grid-column:1 / -1; }.editor-form input,.editor-form textarea,.editor-form select { width:100%; min-width:0; border:1px solid rgba(18,49,48,.2); border-radius:13px; padding:.85rem .9rem; background:white; color:var(--ink); }.editor-form textarea { min-height:92px; resize:vertical; line-height:1.5; }.editor-form select { min-height:48px; }.editor-form-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:50px; margin-top:.25rem; }.editor-form-actions .form-message { margin:0; }.saved-items { display:grid; gap:.7rem; max-width:850px; margin:0 0 1.35rem; }.empty-items { margin:0 0 .2rem; padding:1rem 1.1rem; border:1px dashed rgba(18,49,48,.2); border-radius:15px; color:var(--muted); font-size:.87rem; line-height:1.5; }.saved-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border:1px solid rgba(18,49,48,.12); border-radius:16px; background:#fffefa; }.saved-item div { display:grid; gap:.22rem; min-width:0; }.saved-item span { color:#c56b56; font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.saved-item strong { overflow:hidden; font-size:.94rem; text-overflow:ellipsis; white-space:nowrap; }.saved-item small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }.remove-item { flex:none; border:0; padding:.4rem; background:transparent; color:#a84a3e; font-size:.74rem; font-weight:850; }.notes-box { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:1.5rem; max-width:950px; margin-top:2rem; padding:1.35rem; border-radius:19px; background:var(--sky); }.notes-box .eyebrow { margin-bottom:.55rem; }.notes-box h3 { margin:0; font-size:1.35rem; letter-spacing:-.04em; }.notes-box p:not(.eyebrow) { margin:.55rem 0 0; color:var(--muted); font-size:.88rem; line-height:1.5; }.notes-box form { display:grid; gap:.7rem; }.notes-box textarea { min-height:112px; border:1px solid rgba(18,49,48,.18); border-radius:13px; padding:.85rem .9rem; background:white; color:var(--ink); resize:vertical; }.notes-box .editor-form-actions { min-height:44px; }
@media (max-width: 720px) { .editor { width:min(100% - 2rem, 1180px); padding-top:1.3rem; }.editor-head { display:grid; gap:1.4rem; margin:1.7rem 0; }.editor-head h1 { font-size:clamp(2.55rem,13vw,4rem); }.guest-preview { width:100%; }.editor-panel { padding:1.3rem; border-radius:22px; }.editor-form { grid-template-columns:1fr; }.editor-form .wide { grid-column:auto; }.editor-form input,.editor-form textarea,.editor-form select { font-size:16px; }.editor-form-actions { display:grid; grid-template-columns:1fr; align-items:stretch; }.editor-form-actions .button { width:100%; }.panel-intro { grid-template-columns:1fr; gap:.75rem; }.notes-box { grid-template-columns:1fr; padding:1.2rem; }.saved-item { align-items:flex-start; }.saved-item strong,.saved-item small { white-space:normal; }.remove-item { padding-top:.15rem; } }

/* One-decision-at-a-time setup flows */
.guided-flow { --flow-accent:var(--clay); position:relative; max-width:820px; overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:25px; padding:clamp(1.2rem,3vw,2rem); background:linear-gradient(145deg,#fff 0 68%,#fff5e8 100%); box-shadow:0 18px 42px rgba(18,49,48,.07); }
[data-guided-flow="stay"] { --flow-accent:#3a9c9e; background:linear-gradient(145deg,#fff 0 68%,#e6f7fa 100%); }
[data-guided-flow="payments"] { --flow-accent:#df9a32; background:linear-gradient(145deg,#fff 0 68%,#fff1cc 100%); }
[data-guided-flow="links"] { --flow-accent:#678ec8; background:linear-gradient(145deg,#fff 0 68%,#e8f1ff 100%); }
[data-guided-flow="links"] .guided-step { min-height:0; }
.link-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,360px); align-items:stretch; gap:1.25rem; max-width:1180px; }
.link-workspace-main { display:flex; min-width:0; }
.link-workspace-main #link-form { width:100%; max-width:none; }
.link-workspace-main [data-guided-flow="links"] { width:100%; max-width:none; height:100%; }
.link-library-column { display:grid; min-width:0; grid-template-rows:auto minmax(0,1fr); gap:.9rem; }
.link-insight-card { display:grid; gap:.45rem; border:1px solid rgba(91,128,190,.28); border-radius:24px; padding:1.35rem 1.45rem; background:linear-gradient(145deg,#315f91,#527fba); color:white; box-shadow:0 16px 32px rgba(52,91,140,.16); }
.link-insight-card > span,.link-library-heading > span { font-size:.65rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.link-insight-card > span { color:#dceaff; }
.link-insight-card > strong { font-size:clamp(2rem,3.3vw,2.85rem); letter-spacing:-.055em; line-height:.98; }
.link-insight-card p { margin:0; color:rgba(255,255,255,.88); font-size:.73rem; line-height:1.45; }
.link-insight-card small { border-top:1px solid rgba(255,255,255,.2); padding-top:.65rem; color:rgba(255,255,255,.73); font-size:.66rem; line-height:1.4; }
.link-library-card { display:grid; min-height:0; grid-template-rows:auto minmax(0,1fr); border:1px solid rgba(18,49,48,.13); border-radius:22px; padding:1rem; background:rgba(255,255,255,.88); box-shadow:0 12px 30px rgba(18,49,48,.045); }
.link-library-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border-bottom:1px solid rgba(18,49,48,.09); padding:.1rem .1rem .8rem; color:#557cb8; }
.link-library-heading small { color:var(--muted); font-size:.63rem; font-weight:800; }
.link-library-card #link-list { display:grid; max-width:none; align-content:start; gap:.58rem; margin:.8rem 0 0; overflow:auto; scrollbar-width:thin; scrollbar-color:#bfd0e8 transparent; }
.link-library-card .saved-item { position:relative; display:grid; gap:.4rem; padding:.85rem .9rem; }
.link-library-card .saved-item-edit { width:100%; min-width:0; padding-right:1.6rem; text-align:left; }
.link-library-card .saved-item-edit > div { min-width:0; }
.link-library-card .saved-item-edit > b { font-size:.66rem; white-space:nowrap; }
.link-library-card .remove-item { position:absolute; top:.45rem; right:.45rem; width:26px; height:26px; padding:0; color:rgba(168,74,62,.62); font-size:0; }
.link-library-card .remove-item::before { font-size:.95rem; content:'×'; }
.link-type-choice .choice-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.link-type-choice .choice-cards label { display:grid; min-height:84px; align-content:center; gap:.25rem; }
.link-type-choice .choice-cards label b { color:var(--ink); font-size:.82rem; }
.link-type-choice .choice-cards label small { color:var(--muted); font-size:.65rem; font-weight:700; }
.link-type-choice .choice-cards label:has(input:checked) b { color:var(--pine); }
.guided-progress { display:grid; grid-template-columns:auto minmax(80px,1fr) auto; align-items:center; gap:.85rem; margin-bottom:clamp(1.8rem,5vw,3rem); color:var(--muted); font-size:.68rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.guided-progress > div { position:relative; height:6px; overflow:hidden; border-radius:999px; background:rgba(18,49,48,.1); }
.guided-progress i { position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--flow-accent),#f3c45d); transition:width .32s cubic-bezier(.2,.8,.2,1); }
.guided-progress b { min-width:38px; color:var(--ink); text-align:right; }
.guided-step { display:grid; align-content:start; gap:1rem; min-height:310px; animation:guided-step-in .28s cubic-bezier(.2,.8,.2,1) both; }
.is-flow-transitioning { overflow-x:clip; pointer-events:none; }
.is-flow-transitioning .guided-step,.is-flow-transitioning .people-form-step,.is-flow-transitioning [data-plan-step],.is-flow-transitioning [data-room-step] { will-change:opacity,transform; }
.guided-step[hidden] { display:none; }
.guided-step .step-kicker { margin:0; color:var(--flow-accent); font-size:.68rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.guided-step h3 { max-width:660px; margin:-.2rem 0 0; outline:0; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-.055em; line-height:1.03; }
.guided-step > p:not(.step-kicker) { max-width:620px; margin:-.3rem 0 .45rem; color:var(--muted); font-size:.95rem; line-height:1.55; }
.guided-step > label,.guided-step > .guided-grid,.guided-step > fieldset { width:min(100%,680px); }
.guided-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.guided-step textarea { min-height:110px; }
.guided-actions { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; min-height:52px; margin-top:1.25rem; padding-top:1rem; border-top:1px solid rgba(18,49,48,.09); }
.guided-actions .form-message { margin:0; text-align:center; }
.guided-actions [hidden] { display:none; }
.guided-back { min-height:44px; }
.guided-next,.guided-save { min-width:145px; }
.flow-benefit { display:flex; width:min(100%,680px); align-items:center; gap:.8rem; border-radius:15px; padding:.9rem 1rem; background:rgba(58,156,158,.1); color:var(--muted); }
.flow-benefit > span { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:11px; background:white; color:var(--pine); font-weight:900; }
.flow-benefit p { margin:0; font-size:.78rem; line-height:1.45; }
.example-chips { display:flex; flex-wrap:wrap; gap:.45rem; width:min(100%,680px); }
.example-chips button { border:1px solid transparent; border-radius:999px; padding:.42rem .7rem; background:#f4eee6; color:var(--muted); font-size:.67rem; font-weight:800; transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }
.example-chips button:hover,.example-chips button:focus-visible { border-color:var(--flow-accent); background:white; color:var(--pine); transform:translateY(-1px); }
.guided-step .calculated-share { display:flex; width:min(100%,680px); align-items:center; justify-content:space-between; gap:1rem; border:1px solid rgba(223,154,50,.25); border-radius:17px; padding:1rem 1.15rem; background:#fff7df; }
.calculated-share span { color:var(--muted); font-size:.78rem; font-weight:800; }
.calculated-share strong { color:var(--pine); font-size:1.75rem; letter-spacing:-.04em; }
.calculated-share input { position:absolute; width:1px!important; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.guided-step .choice-cards { gap:.65rem; }
.guided-step .choice-cards label { min-height:56px; border-radius:16px; transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease; }
.guided-step .choice-cards label:hover { border-color:var(--flow-accent); transform:translateY(-2px); }
.guided-step .choice-cards label:has(input:checked) { border-color:var(--flow-accent); background:color-mix(in srgb,var(--flow-accent) 12%,white); box-shadow:inset 0 0 0 1px var(--flow-accent),0 8px 20px rgba(18,49,48,.07); }
.payment-method-choice .choice-cards { grid-template-columns:repeat(5,minmax(0,1fr)); }
.payment-method-choice .choice-cards label { min-height:76px; flex-direction:column; gap:.35rem; padding:.55rem .35rem; }
.payment-method-choice .choice-cards label b { display:grid; width:27px; height:27px; place-items:center; border-radius:9px; background:#edf3f1; color:var(--pine); font-size:.72rem; }
.payment-method-choice .choice-cards label span { font-size:.68rem; font-weight:850; }
.payment-method-choice .choice-cards label:has(input:checked) b { background:var(--pine); color:white; }
.payment-method-explainer { display:grid; width:min(100%,680px); gap:.25rem; border-left:4px solid var(--flow-accent); border-radius:0 14px 14px 0; padding:.85rem 1rem; background:#fff7df; }
.payment-method-explainer b { font-size:.83rem; }
.payment-method-explainer span { color:var(--muted); font-size:.74rem; line-height:1.45; }
#payment-form input::placeholder { transition:opacity .16s ease; }
#payment-form input.placeholder-changing::placeholder { opacity:0; }
.payment-summary { position:relative; display:grid; min-height:108px; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"main amount"; align-items:center; gap:.85rem; overflow:visible; border-left:3px solid #df9a32; padding:.9rem 1rem 1.25rem .85rem; background:#fffefa; }
.payment-summary strong { font-size:.88rem; }
.payment-line-main { grid-area:main; align-self:center; gap:.14rem!important; }
.payment-line-main > span { font-size:.56rem; }
.payment-line-main > small { overflow:visible; font-size:.68rem; line-height:1.35; text-overflow:clip; white-space:normal; }
.payment-line-amount { display:grid!important; grid-area:amount; min-width:92px; align-self:center; gap:0!important; text-align:right; }
.payment-line-amount strong { color:var(--pine); font-size:1rem; letter-spacing:-.025em; }
.payment-line-amount small { color:var(--muted); font-size:.6rem; }
.payment-card-actions { position:absolute; inset:0; display:block!important; pointer-events:none; }
.payment-card-actions .edit-item { position:absolute; right:.85rem; bottom:.35rem; min-width:0; min-height:0; border-radius:0; padding:.2rem; background:transparent; color:rgba(14,85,87,.58); font-size:.56rem; line-height:1; pointer-events:auto; }
.payment-card-actions .edit-item:hover,.payment-card-actions .edit-item:focus-visible { color:var(--pine); text-decoration:underline; }
.payment-remove { position:absolute; z-index:2; top:-.55rem; right:-.55rem; display:grid; width:25px; min-height:25px; place-items:center; border:1px solid rgba(164,90,80,.12); border-radius:50%; padding:0; background:#fffefa; box-shadow:0 4px 12px rgba(18,49,48,.08); color:rgba(164,90,80,.45); font-size:.9rem; opacity:0; transform:scale(.88); pointer-events:auto; transition:opacity .16s ease,transform .16s ease,background .16s ease,color .16s ease; }
.payment-summary:hover .payment-remove,.payment-summary:focus-within .payment-remove { opacity:1; transform:scale(1); }
.payment-remove:hover,.payment-remove:focus-visible { border-color:rgba(164,90,80,.18); background:#fff0eb; color:#a45a50; }
.payment-summary.is-new-payment { z-index:2; animation:payment-card-arrive 2.9s cubic-bezier(.22,1,.36,1) both; }
.new-payment-badge { position:absolute; z-index:3; top:-.62rem; left:.75rem; display:inline-flex; min-height:24px; align-items:center; border:1px solid #b9e2cb; border-radius:999px; padding:.2rem .52rem; background:#e8f7ee; box-shadow:0 5px 14px rgba(18,49,48,.1); color:#28714e; font-size:.56rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; animation:new-payment-badge 2.9s ease both; }
@keyframes payment-card-arrive {
  0% { opacity:0; transform:translateY(-14px) scale(.985); background:#edf9f3; }
  12%,72% { opacity:1; transform:none; background:#edf9f3; box-shadow:0 12px 28px rgba(18,49,48,.1); }
  100% { opacity:1; transform:none; background:#fffefa; box-shadow:none; }
}
@keyframes new-payment-badge {
  0% { opacity:0; transform:translateY(5px) scale(.94); }
  10%,72% { opacity:1; transform:none; }
  100% { opacity:0; transform:translateY(-3px); }
}
.payment-defaults { display:grid; gap:.8rem; margin:.9rem 0 1.1rem; border:1px solid rgba(18,49,48,.11); border-radius:16px; padding:.8rem .9rem; background:linear-gradient(120deg,#f3faf8,#f8fbfd); }
.payment-defaults.has-saved-default { position:relative; padding-top:2.65rem; }
.payment-defaults.has-saved-default::before { position:absolute; top:.72rem; right:.85rem; display:inline-flex; min-height:28px; align-items:center; border:1px solid #b9e2cb; border-radius:999px; padding:.28rem .58rem; background:#e8f7ee; color:#28714e; font-size:.62rem; font-weight:900; content:'✓ Saved'; animation:payment-default-saved-in .28s cubic-bezier(.22,1,.36,1) both; }
@keyframes payment-default-saved-in { from { opacity:0; transform:translateY(4px) scale(.96); } to { opacity:1; transform:none; } }
.payment-defaults > div:first-child { align-self:center; }
.payment-defaults > div:first-child span { color:#33766f; font-size:.62rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.payment-defaults h3 { margin:.3rem 0; font-size:1rem; }
.payment-defaults p { margin:0; color:var(--muted); font-size:.72rem; line-height:1.45; }
.payment-default-question { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.payment-default-question > div { display:grid; gap:.14rem; }
.payment-default-question b { font-size:.76rem; }
.payment-default-question small { color:var(--muted); font-size:.65rem; }
.yes-no-toggle { position:relative; flex:none; cursor:pointer; }
.yes-no-toggle input { position:absolute; opacity:0; pointer-events:none; }
.yes-no-toggle span { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr 1fr; min-width:104px; border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:3px; background:#e5ecea; transition:background .22s ease,border-color .22s ease,box-shadow .22s ease; }
.yes-no-toggle span::before { position:absolute; z-index:-1; top:3px; bottom:3px; left:3px; width:calc(50% - 3px); border-radius:999px; background:white; box-shadow:0 3px 10px rgba(18,49,48,.13); content:''; transition:transform .24s cubic-bezier(.2,.8,.2,1),background .22s ease; }
.yes-no-toggle i { position:relative; border-radius:999px; padding:.43rem .62rem; color:#687b78; font-size:.63rem; font-style:normal; font-weight:900; text-align:center; transition:color .2s ease; }
.yes-no-toggle input:checked + span { border-color:rgba(14,85,87,.3); background:#d8ebe6; }
.yes-no-toggle input:checked + span::before { background:var(--pine); transform:translateX(100%); }
.yes-no-toggle input:not(:checked) + span i:first-child { color:var(--pine); }
.yes-no-toggle input:checked + span i:last-child { color:white; }
.yes-no-toggle input:focus-visible + span { outline:3px solid rgba(91,142,198,.34); outline-offset:3px; }
.payment-default-fields { box-sizing:border-box; display:grid; width:100%; min-width:0; grid-template-columns:minmax(150px,1fr) minmax(130px,.7fr) minmax(170px,1fr) auto; align-items:end; gap:.8rem .7rem; overflow:visible; border-top:1px solid rgba(18,49,48,.08); padding:.9rem .35rem .2rem; }
.payment-default-fields[hidden] { display:none; }
.payment-default-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid rgba(57,138,96,.24); border-radius:16px; padding:.9rem 1rem; background:linear-gradient(120deg,#edf8f2,#f5fbf8); }
.payment-default-summary[hidden] { display:none; }
.payment-default-summary > div { display:grid; min-width:0; gap:.18rem; }
.payment-default-summary span { color:#34805b!important; font-size:.59rem!important; font-weight:950!important; letter-spacing:.1em!important; text-transform:uppercase!important; }
.payment-default-summary span::before { margin-right:.32rem; content:'✓'; }
.payment-default-summary strong { overflow:hidden; color:var(--ink); font-size:.9rem; text-overflow:ellipsis; white-space:nowrap; }
.payment-default-summary small { overflow:hidden; color:var(--muted); font-size:.69rem; text-overflow:ellipsis; white-space:nowrap; }
.payment-default-summary button { flex:none; border:0; border-radius:999px; padding:.5rem .78rem; background:#deefea; color:var(--pine); font-size:.67rem; font-weight:900; }
.payment-default-summary.is-arriving { animation:payment-default-summary-in .34s cubic-bezier(.22,1,.36,1) both; }
@keyframes payment-default-summary-in { from { opacity:0; transform:translateY(7px) scale(.985); } to { opacity:1; transform:none; } }
.payment-default-fields label { display:grid; gap:.3rem; font-size:.65rem; font-weight:850; }
.payment-default-fields label small { color:var(--muted); font-size:.58rem; font-weight:600; line-height:1.35; }
.payment-default-fields .recipient-picker { grid-column:1 / -1; width:100%; min-width:0; max-width:100%; margin:0; }
.payment-default-fields > label:first-child { display:none; }
.payment-default-fields #default-recipient-picker { align-items:center; overflow:visible; }
.payment-default-fields #default-recipient-picker button { display:inline-flex; min-height:38px; align-items:center; border-radius:999px; padding:.5rem .72rem; }
.payment-default-fields #default-recipient-picker .add-recipient-pill { border:1px dashed rgba(18,49,48,.2); background:transparent; color:#4d6f6c; transition:border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.payment-default-fields #default-recipient-picker .add-recipient-pill:hover { border-color:var(--pine); background:#eff8f5; color:var(--pine); }
.inline-recipient-pill { display:inline-flex; max-width:100%; align-items:center; gap:.25rem; border-radius:999px; padding:.2rem; }
.inline-recipient-pill.is-editing { border-style:solid!important; border-color:var(--pine)!important; background:white!important; box-shadow:0 0 0 3px rgba(14,85,87,.08); }
.inline-recipient-pill[hidden] { display:none; }
.inline-recipient-pill [hidden] { display:none!important; }
.payment-default-fields .inline-recipient-pill input { width:170px; min-height:34px; border:0; padding:.35rem .5rem .35rem .65rem; background:transparent; box-shadow:none; }
.payment-default-fields .inline-recipient-pill input:focus { outline:0; }
.payment-default-fields .inline-recipient-pill button { display:grid!important; width:32px; min-height:32px!important; place-items:center; border:0!important; padding:0!important; background:#e7f4f0!important; color:var(--pine)!important; }
.payment-default-fields .inline-recipient-pill [data-start-default-recipient] { display:inline-flex!important; width:auto; min-height:34px!important; padding:.35rem .55rem!important; background:transparent!important; }
.payment-default-fields .inline-recipient-pill button:last-child { background:#fff0eb!important; color:#a45a50!important; }
.payment-default-fields .inline-recipient-pill [hidden] { display:none!important; }
.payment-default-fields input,.payment-default-fields select { width:100%; min-width:0; min-height:42px; border:1px solid rgba(18,49,48,.16); border-radius:11px; padding:.65rem .7rem; background:white; color:var(--ink); font-size:16px; }
.payment-default-fields input::placeholder { color:rgba(72,96,93,.42); opacity:1; }
.default-method-pills { display:flex; flex-wrap:wrap; gap:.45rem; }
.default-method-pills button { min-height:38px; border:1px solid rgba(18,49,48,.14); border-radius:999px; padding:.52rem .78rem; background:#fff; color:#45615f; font-size:.68rem; font-weight:850; transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease; }
.default-method-pills button:hover { border-color:rgba(14,85,87,.32); background:#f0f8f6; transform:translateY(-1px); }
.default-method-pills button.is-selected { border-color:var(--pine); background:var(--pine); color:white; box-shadow:0 5px 14px rgba(14,85,87,.16); }
.default-method-pills button:focus-visible { outline:3px solid rgba(91,142,198,.34); outline-offset:2px; }
.payment-defaults > .form-message { grid-column:1 / -1; margin:0; }
.payment-defaults > .form-message.is-fading { opacity:0; transition:opacity .18s ease; }
.recipient-default-note { display:block; margin-top:.3rem; color:#39736c; font-size:.62rem; font-weight:650; line-height:1.4; }
.payment-edit-open { overflow:hidden; }
.payment-inline-editor { position:fixed; z-index:1000; inset:50% auto auto 50%; width:min(760px,calc(100% - 2rem)); max-height:calc(100vh - 2rem); overflow-x:hidden; overflow-y:auto; border:1px solid rgba(223,154,50,.34); border-radius:22px; background:linear-gradient(145deg,#fffefa,#fff7df); box-shadow:0 0 0 100vmax rgba(18,49,48,.46),0 24px 70px rgba(18,49,48,.24); transform:translate(-50%,-50%); animation:payment-modal-in .24s ease both; }
.payment-inline-editor.is-opening { opacity:0; transform:translate(-50%,calc(-50% + 14px)) scale(.985); animation:none; transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1); }
.payment-inline-editor.is-opening.is-open { opacity:1; transform:translate(-50%,-50%) scale(1); }
#payment-form[hidden] { display:none; }
.payment-edit-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.15rem 1.2rem .9rem; border-bottom:1px solid rgba(18,49,48,.09); }
.payment-edit-heading > div { display:grid; gap:.2rem; }
.payment-edit-heading span { color:#b8664f; font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.payment-edit-heading h3 { margin:0; font-size:1.25rem; letter-spacing:-.035em; }
.payment-edit-heading p { margin:.15rem 0 0; color:var(--muted); font-size:.76rem; }
.payment-edit-heading > button { flex:none; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.6rem .75rem; background:white; color:var(--pine); font-size:0; font-weight:850; }
.payment-edit-heading > button::after { content:"← Back to Shared Costs"; font-size:.7rem; }
.payment-inline-editor form { padding:1.1rem 1.2rem 1.2rem; }
.payment-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.payment-edit-grid label { display:grid; gap:.38rem; color:var(--ink); font-size:.72rem; font-weight:850; }
.payment-edit-grid .wide { grid-column:1 / -1; }
.payment-edit-grid input,.payment-edit-grid select,.payment-edit-grid textarea { width:100%; min-width:0; border:1px solid rgba(18,49,48,.17); border-radius:12px; padding:.75rem .8rem; background:white; color:var(--ink); font-size:16px; }
.payment-edit-grid textarea { resize:vertical; }
.payment-edit-share { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-radius:13px; padding:.75rem .85rem; background:#f7e5ca; }
.payment-edit-share span { color:var(--muted); font-size:.65rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.payment-edit-share strong { color:var(--pine); font-size:.88rem; }
.payment-edit-actions { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; margin-top:1rem; }
.payment-edit-actions .form-message { margin:0; text-align:center; }
@keyframes payment-modal-in { from { opacity:.75; transform:translate(-50%,calc(-50% + 10px)); } to { opacity:1; transform:translate(-50%,-50%); } }
@media (max-width:720px) {
  .payment-default-summary { padding:.8rem .85rem; }
  .payment-default-summary strong,.payment-default-summary small { white-space:normal; }
  .payment-inline-editor.is-opening { transform:translateY(16px); }
  .payment-inline-editor.is-opening.is-open { transform:none; }
  .payment-edit-open .editor-panel.is-active { animation:none; transform:none; }
  .payment-defaults { grid-template-columns:1fr; }
  .payment-default-fields { grid-template-columns:minmax(0,1fr); gap:1rem; padding:.95rem .45rem .25rem; }
  .payment-default-fields .recipient-picker { margin-bottom:.25rem; }
  .payment-default-fields #default-recipient-picker { flex-wrap:wrap; overflow:visible; }
  .payment-default-fields > label:nth-of-type(3) { margin-top:.2rem; }
  .payment-default-question { align-items:start; }
  .payment-summary { display:grid; min-height:0; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"main amount"; padding-right:1rem; }
  .payment-summary > div:first-child { width:100%; }
  .payment-line-amount { align-self:center; }
  .payment-card-actions { width:auto; padding:0; }
  .payment-card-actions .edit-item { width:auto; }
  .payment-remove { top:-.45rem; right:-.45rem; opacity:.58; transform:scale(1); }
  .payment-inline-editor { inset:0; width:100dvw; height:100dvh; max-height:100dvh; border:0; border-radius:0; background:#fffdf9; transform:none; animation:payment-editor-mobile-in .24s ease both; }
  .payment-edit-heading { position:sticky; z-index:2; top:0; background:rgba(255,253,249,.96); box-shadow:0 6px 18px rgba(18,49,48,.07); }
  .payment-edit-grid { grid-template-columns:1fr; }
  .payment-edit-grid .wide { grid-column:auto; }
  .payment-inline-editor form,.payment-edit-heading { padding-right:1rem; padding-left:1rem; }
  .payment-edit-actions { grid-template-columns:1fr 1fr; }
  .payment-edit-actions .form-message { grid-column:1 / -1; grid-row:1; }
  .payment-edit-actions .button { width:100%; }
}

/* Shared Add/Edit Event task window --------------------------------------- */
body #itinerary-form.shared-event-editor {
  position:fixed!important;
  z-index:2147482010!important;
  inset:50% auto auto 50%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  width:min(920px,calc(100vw - 48px))!important;
  height:auto!important;
  max-height:min(82dvh,900px)!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:18px!important;
  background:var(--surface,#fff)!important;
  box-shadow:0 28px 70px rgba(18,54,52,.24)!important;
  transform:translate(-50%,-50%)!important;
}
body #itinerary-form.shared-event-editor[hidden] { display:none!important; }
body #itinerary-form.shared-event-editor > :is(.plan-progress,[data-plan-step],.event-edit-placement,.plan-context-preview) {
  display:none!important;
}
body #itinerary-form.shared-event-editor .plan-form-head {
  position:relative!important;
  inset:auto!important;
  z-index:3!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:24px!important;
  min-height:112px!important;
  margin:0!important;
  padding:20px 28px!important;
  border:0!important;
  border-bottom:1px solid var(--line,#dce5e2)!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .plan-form-head > div:first-child {
  min-width:0;
}
body #itinerary-form.shared-event-editor .plan-form-head .eyebrow {
  margin:0 0 5px!important;
  color:var(--accent,#ef856f)!important;
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
}
body #itinerary-form.shared-event-editor #plan-form-title {
  overflow:hidden;
  margin:0!important;
  color:var(--ink,#123634)!important;
  font-size:1.55rem!important;
  line-height:1.12!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body #itinerary-form.shared-event-editor #plan-step-copy {
  display:block!important;
  margin-top:5px!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.8rem!important;
}
body #itinerary-form.shared-event-editor .plan-head-actions {
  display:flex!important;
  align-items:center!important;
  gap:16px!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice { margin:0!important; }
body #itinerary-form.shared-event-editor .plan-status-choice legend { display:none!important; }
body #itinerary-form.shared-event-editor .plan-status-choice > div {
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  min-width:250px!important;
  padding:3px!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:10px!important;
  background:var(--surface-soft,#edf5f3)!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice label span {
  display:grid!important;
  min-height:42px!important;
  padding:0 16px!important;
  place-items:center!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.78rem!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice input:checked + span {
  border-color:var(--line,#dce5e2)!important;
  background:#fff!important;
  color:var(--primary,#066460)!important;
  box-shadow:0 3px 10px rgba(18,54,52,.08)!important;
}
body #itinerary-form.shared-event-editor .plan-close {
  display:grid!important;
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  margin:0!important;
  padding:0!important;
  place-items:center!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--ink,#123634)!important;
  font-size:1.35rem!important;
}
body #itinerary-form.shared-event-editor .shared-event-editor-main,
body #itinerary-form.shared-event-editor .shared-event-picker-view {
  min-height:0!important;
  padding:0 28px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scrollbar-gutter:stable!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .shared-event-section {
  padding:20px 0!important;
  border-bottom:1px solid var(--line,#dce5e2)!important;
}
body #itinerary-form.shared-event-editor .shared-event-section > header {
  margin:0 0 12px!important;
}
body #itinerary-form.shared-event-editor .shared-event-section > header p,
body #itinerary-form.shared-event-editor .shared-event-picker-head p {
  margin:0!important;
  color:var(--accent,#ef856f)!important;
  font-size:.66rem!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
  line-height:1.2!important;
  text-transform:uppercase!important;
}
body #itinerary-form.shared-event-editor .shared-event-grid,
body #itinerary-form.shared-event-editor .drawer-placement-fields,
body #itinerary-form.shared-event-editor .shared-event-location-fields {
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)!important;
  gap:18px!important;
  align-items:start!important;
}
body #itinerary-form.shared-event-editor :is(.plan-title-field,.drawer-placement-fields label,.plan-place-field,.plan-address-field,.plan-note-question label) {
  display:grid!important;
  gap:6px!important;
  margin:0!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.74rem!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor :is(input,select,textarea) {
  max-width:100%!important;
  border:1px solid #cfdad7!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ink,#123634)!important;
  box-shadow:none!important;
  outline:none!important;
}
body #itinerary-form.shared-event-editor :is(input,select) {
  min-height:44px!important;
  padding:9px 12px!important;
  font-size:.9rem!important;
}
body #itinerary-form.shared-event-editor textarea {
  min-height:82px!important;
  padding:11px 12px!important;
  font-size:.88rem!important;
  resize:vertical!important;
}
body #itinerary-form.shared-event-editor :is(input,select,textarea):focus-visible {
  border-color:var(--primary,#066460)!important;
  box-shadow:0 0 0 3px rgba(6,100,96,.14)!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice {
  margin:0!important;
  padding:0!important;
  border:0!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice legend {
  margin:0 0 6px!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.74rem!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice > div {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:9px!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label span {
  display:grid!important;
  min-height:42px!important;
  padding:0 8px!important;
  place-items:center!important;
  border:0!important;
  border-right:1px solid var(--line,#dce5e2)!important;
  border-radius:0!important;
  background:#fff!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.7rem!important;
  font-weight:700!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice input:checked + span {
  background:var(--surface-soft,#edf5f3)!important;
  color:var(--primary,#066460)!important;
  box-shadow:inset 0 0 0 1px var(--primary,#066460)!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode { margin:0!important; padding:0!important; border:0!important; }
body #itinerary-form.shared-event-editor .plan-location-mode > div {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button {
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 18px!important;
  grid-template-rows:auto auto!important;
  min-height:68px!important;
  padding:11px 12px!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--ink,#123634)!important;
  text-align:left!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button > span {
  grid-row:1 / span 2!important;
  align-self:center!important;
  font-size:1rem!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button b { grid-column:2!important; font-size:.78rem!important; }
body #itinerary-form.shared-event-editor .plan-location-mode button small {
  grid-column:2!important;
  overflow:hidden!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.66rem!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button::after {
  grid-column:3!important;
  grid-row:1 / span 2!important;
  align-self:center!important;
  width:16px!important;
  height:16px!important;
  border:1px solid #aebfbb!important;
  border-radius:50%!important;
  content:""!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button.is-selected {
  border-color:var(--primary,#066460)!important;
  background:var(--surface-soft,#edf5f3)!important;
  box-shadow:inset 3px 0 var(--primary,#066460)!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button.is-selected::after {
  border:4px solid var(--primary,#066460)!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-fields { margin-top:12px!important; }
body #itinerary-form.shared-event-editor .plan-location-status {
  margin:8px 0 0!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.72rem!important;
}
body #itinerary-form.shared-event-editor .plan-note-question,
body #itinerary-form.shared-event-editor .plan-note-question label { margin:0!important; padding:0!important; }
body #itinerary-form.shared-event-editor .plan-note-question > .plan-question-heading { display:none!important; }
body #itinerary-form.shared-event-editor .shared-event-optional { padding:16px 0 20px!important; }
body #itinerary-form.shared-event-editor .event-more-toggle {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  width:100%!important;
  min-height:48px!important;
  margin:0!important;
  padding:9px 12px!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--ink,#123634)!important;
  text-align:left!important;
}
body #itinerary-form.shared-event-editor .event-more-toggle small { display:block!important; color:var(--ink-muted,#56706f)!important; font-size:.68rem!important; }
body #itinerary-form.shared-event-editor .event-more-toggle svg { grid-column:2!important; grid-row:1 / span 2!important; width:18px!important; align-self:center!important; fill:none!important; stroke:currentColor!important; stroke-width:2!important; }
body #itinerary-form.shared-event-editor :is(#plan-time-question,#meal-links,#event-photo-manager) { display:none!important; }
body #itinerary-form.shared-event-editor.show-event-more :is(#plan-time-question,#meal-links,#event-photo-manager) {
  display:block!important;
  margin-top:16px!important;
  padding:16px 0 0!important;
  border:0!important;
  border-top:1px solid var(--line,#dce5e2)!important;
}
body #itinerary-form.shared-event-editor .plan-question-heading { display:none!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions {
  position:relative!important;
  inset:auto!important;
  z-index:4!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  min-height:72px!important;
  margin:0!important;
  padding:12px 28px!important;
  border:0!important;
  border-top:1px solid var(--line,#dce5e2)!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions .event-delete { margin-right:auto!important; color:var(--danger,#c96856)!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions .form-message { margin-right:auto!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions :is(button) {
  min-height:42px!important;
  border-radius:9px!important;
  padding:0 18px!important;
  font-size:.78rem!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor #save-plan { background:var(--primary,#066460)!important; color:#fff!important; }
body #itinerary-form.shared-event-editor #save-plan-to-hit-list,
body #itinerary-form.shared-event-editor .full-event-cancel { border:1px solid var(--line,#dce5e2)!important; background:#fff!important; color:var(--primary,#066460)!important; }

body #itinerary-form.shared-event-editor .shared-event-picker-view { padding-bottom:24px!important; }
body #itinerary-form.shared-event-editor .shared-event-picker-head {
  position:sticky!important;
  z-index:4!important;
  top:0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  padding:20px 0 14px!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-head button {
  min-height:40px!important;
  padding:0 12px!important;
  border:1px solid var(--line,#dce5e2)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--primary,#066460)!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-head h4 { margin:3px 0 0!important; font-size:1.35rem!important; }
body #itinerary-form.shared-event-editor .shared-event-place-search {
  position:relative!important;
  display:grid!important;
  gap:6px!important;
  margin-bottom:18px!important;
  color:var(--ink-muted,#56706f)!important;
  font-size:.74rem!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor .shared-event-place-search-results {
  position:absolute!important;
  z-index:8!important;
  top:100%!important;
  right:0!important;
  left:0!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-destination-picker {
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-destination-picker > header { display:none!important; }

@media (max-width:720px) {
  body #itinerary-form.shared-event-editor {
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:none!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-form-head {
    grid-template-columns:minmax(0,1fr) auto!important;
    min-height:0!important;
    padding:calc(12px + env(safe-area-inset-top)) 16px 12px!important;
  }
  body #itinerary-form.shared-event-editor .plan-head-actions { gap:8px!important; }
  body #itinerary-form.shared-event-editor .plan-status-choice > div { min-width:0!important; }
  body #itinerary-form.shared-event-editor .plan-status-choice label span { min-height:40px!important; padding:0 10px!important; font-size:.7rem!important; }
  body #itinerary-form.shared-event-editor #plan-form-title { font-size:1.25rem!important; }
  body #itinerary-form.shared-event-editor .shared-event-editor-main,
  body #itinerary-form.shared-event-editor .shared-event-picker-view { padding:0 16px!important; }
  body #itinerary-form.shared-event-editor .shared-event-grid,
  body #itinerary-form.shared-event-editor .drawer-placement-fields,
  body #itinerary-form.shared-event-editor .shared-event-location-fields { grid-template-columns:1fr!important; gap:12px!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice > div { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode > div { grid-template-columns:1fr!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode button { min-height:62px!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions {
    min-height:0!important;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom))!important;
  }
  body #itinerary-form.shared-event-editor .plan-wizard-actions .form-message { display:none!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions :is(#save-plan,#save-plan-to-hit-list,.full-event-cancel) { flex:1 1 auto!important; }
}

@media (prefers-reduced-motion:reduce) {
  body #itinerary-form.shared-event-editor { transition:none!important; }
}

/* Shared event window final polish ----------------------------------------
   Tight desktop density, a single-row Type control, and unclipped optional
   timing fields for the shared Add/Edit Event component. */
@media (min-width:721px) {
  body #itinerary-form.shared-event-editor {
    width:min(840px,calc(100dvw - 48px))!important;
    max-width:840px!important;
    max-height:min(82dvh,760px)!important;
    border-radius:10px!important;
  }
  body #itinerary-form.shared-event-editor .plan-form-head {
    min-height:84px!important;
    gap:16px!important;
    padding:14px 20px!important;
  }
  body #itinerary-form.shared-event-editor .plan-head-actions,
  body #itinerary-form.shared-event-editor .plan-status-choice { align-self:center!important; margin:0!important; }
  body #itinerary-form.shared-event-editor .plan-status-choice > div {
    min-width:224px!important;
    min-height:42px!important;
    padding:3px!important;
    border-radius:8px!important;
  }
  body #itinerary-form.shared-event-editor .plan-status-choice label span {
    min-height:34px!important;
    padding:0 11px!important;
    border-radius:6px!important;
  }
  body #itinerary-form.shared-event-editor .plan-close {
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    border-radius:8px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-editor-main,
  body #itinerary-form.shared-event-editor .shared-event-picker-view { padding-inline:20px!important; }
  body #itinerary-form.shared-event-editor .shared-event-section { padding:18px 0!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice > div {
    display:flex!important;
    flex-flow:row nowrap!important;
    width:100%!important;
    overflow:hidden!important;
    border-radius:8px!important;
  }
  body #itinerary-form.shared-event-editor .plan-type-choice label {
    flex:1 1 0!important;
    width:auto!important;
    min-width:0!important;
  }
  body #itinerary-form.shared-event-editor .plan-type-choice label[hidden] { display:none!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice label span {
    width:100%!important;
    min-height:42px!important;
    padding:0 6px!important;
    font-size:.66rem!important;
    white-space:nowrap!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-optional { width:100%!important; min-width:0!important; padding:14px 0 22px!important; }
  body #itinerary-form.shared-event-editor.show-event-more :is(#plan-time-question,#meal-links,#event-photo-manager) {
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more #plan-time-question {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more .plan-time-range {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more :is(.plan-time-range label,.plan-runs-through-field) {
    display:grid!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  body #itinerary-form.shared-event-editor .plan-wizard-actions { min-height:62px!important; padding:9px 20px!important; }
}

/* Unified itinerary composer
   One task window, one reading direction, and no nested discovery surface. */
body #itinerary-form.shared-event-editor {
  width:min(980px,calc(100vw - 48px))!important;
  max-width:980px!important;
  max-height:calc(100dvh - 40px)!important;
  border:1px solid #d4dedb!important;
  border-radius:16px!important;
  box-shadow:0 24px 70px rgba(18,54,52,.2)!important;
  background:#fffdfa!important;
  overflow:hidden!important;
}
body #itinerary-form.shared-event-editor .plan-form-head {
  padding:18px 24px!important;
  min-height:0!important;
  border-bottom:1px solid #dbe4e1!important;
}
body #itinerary-form.shared-event-editor #plan-form-eyebrow {
  margin:0 0 3px!important;
  font-size:.68rem!important;
  letter-spacing:.18em!important;
}
body #itinerary-form.shared-event-editor #plan-form-title {
  font-size:1.7rem!important;
  line-height:1.05!important;
}
body #itinerary-form.shared-event-editor #plan-step-copy {
  margin-top:5px!important;
  font-size:.78rem!important;
}
body #itinerary-form.shared-event-editor .plan-head-actions { gap:12px!important; }
body #itinerary-form.shared-event-editor .plan-status-choice > div {
  min-width:280px!important;
  padding:4px!important;
  border-radius:10px!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice label span {
  min-height:40px!important;
  padding:0 18px!important;
  border-radius:7px!important;
  font-size:.78rem!important;
}
body #itinerary-form.shared-event-editor .plan-close {
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  border-radius:10px!important;
}
body #itinerary-form.shared-event-editor .shared-event-editor-main {
  padding:0 24px!important;
  scrollbar-gutter:stable!important;
}
body #itinerary-form.shared-event-editor .shared-event-section {
  padding:16px 0!important;
  border-bottom:1px solid #dbe4e1!important;
}
body #itinerary-form.shared-event-editor .shared-event-section > header {
  margin:0 0 10px!important;
}
body #itinerary-form.shared-event-editor .shared-event-section > header p {
  margin:0!important;
  font-size:.66rem!important;
  letter-spacing:.18em!important;
}
body #itinerary-form.shared-event-editor :is(input,select,textarea) {
  border-radius:8px!important;
}
body #itinerary-form.shared-event-editor .plan-title-field input {
  min-height:48px!important;
  padding:0 14px!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice > div {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid #cad8d4!important;
  border-radius:8px!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label span {
  min-height:46px!important;
  padding:0 10px!important;
  border:0!important;
  border-right:1px solid #d5dfdc!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label:last-child span { border-right:0!important; }
body #itinerary-form.shared-event-editor .plan-type-choice input:checked + span {
  color:#075f5c!important;
  background:#e8f4f1!important;
  box-shadow:inset 0 0 0 1px #128a83!important;
}
body #itinerary-form.shared-event-editor .drawer-placement-fields,
body #itinerary-form.shared-event-editor .shared-event-location-fields {
  gap:12px!important;
}
body #itinerary-form.shared-event-editor #plan-address-field { display:none!important; }
body #itinerary-form.shared-event-editor .plan-location-mode {
  margin-top:10px!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode > div {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode [data-plan-location-mode="place"],
body #itinerary-form.shared-event-editor .plan-location-mode [data-plan-location-mode="later"] {
  display:none!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button {
  min-height:46px!important;
  padding:7px 12px!important;
  border-radius:8px!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button strong { font-size:.76rem!important; }
body #itinerary-form.shared-event-editor .plan-location-mode button small { font-size:.66rem!important; }
body #itinerary-form.shared-event-editor .shared-event-location-hint {
  margin:9px 0 0!important;
  color:#667e7a!important;
  font-size:.68rem!important;
}
body #itinerary-form.shared-event-editor #plan-location-status {
  margin:7px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  font-size:.68rem!important;
}
body #itinerary-form.shared-event-editor .shared-event-guests textarea {
  min-height:68px!important;
  padding:11px 13px!important;
}
body #itinerary-form.shared-event-editor .shared-event-optional {
  padding:12px 0!important;
}
body #itinerary-form.shared-event-editor #event-more-details {
  min-height:48px!important;
  border-radius:8px!important;
}
body #itinerary-form.shared-event-editor :is(#plan-destination-picker,.plan-suggestion-library,.shared-event-picker-view) {
  display:none!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions {
  padding:14px 24px!important;
  border-top:1px solid #dbe4e1!important;
  background:#fffdfa!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions button {
  min-height:44px!important;
  border-radius:9px!important;
}

@media (min-width:721px) {
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-editor-main {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:28px!important;
    overflow:visible!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-essentials { grid-column:1!important; grid-row:1!important; }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-schedule { grid-column:1!important; grid-row:2!important; }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-guests { grid-column:1!important; grid-row:3!important; }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-location { grid-column:2!important; grid-row:1 / span 2!important; }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-optional { grid-column:2!important; grid-row:3!important; align-self:end!important; }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-essentials-grid { grid-template-columns:1fr!important; }
}

@media (max-width:720px) {
  body #itinerary-form.shared-event-editor { border-radius:0!important; }
  body #itinerary-form.shared-event-editor .shared-event-editor-main { padding:0 16px!important; overflow-y:auto!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice > div { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode > div { grid-template-columns:1fr!important; }
}

/* Shared event window v2 ---------------------------------------------------
   Exact desktop hierarchy used by Add Plan, Add Meal, and Edit Event. */
body #itinerary-form.shared-event-editor {
  width:min(820px,calc(100dvw - 48px))!important;
  max-width:820px!important;
  max-height:min(82dvh,760px)!important;
  border-radius:14px!important;
  box-shadow:0 22px 64px rgba(18,49,48,.24)!important;
}
body #itinerary-form.shared-event-editor .plan-form-head {
  min-height:88px!important;
  padding:15px 22px!important;
  gap:18px!important;
}
body #itinerary-form.shared-event-editor #plan-form-title {
  max-width:360px!important;
  font-size:1.35rem!important;
}
body #itinerary-form.shared-event-editor #plan-step-copy {
  margin-top:4px!important;
  font-size:.74rem!important;
}
body #itinerary-form.shared-event-editor .plan-head-actions { gap:12px!important; }
body #itinerary-form.shared-event-editor .plan-status-choice > div {
  min-width:236px!important;
  min-height:44px!important;
  border-radius:9px!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice label span {
  min-height:36px!important;
  padding-inline:12px!important;
  border-radius:7px!important;
  font-size:.73rem!important;
}
body #itinerary-form.shared-event-editor .plan-close {
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  border-radius:9px!important;
}
body #itinerary-form.shared-event-editor .shared-event-editor-main,
body #itinerary-form.shared-event-editor .shared-event-picker-view {
  padding-inline:22px!important;
  scrollbar-gutter:auto!important;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(72,100,97,.28) transparent!important;
}
body #itinerary-form.shared-event-editor .shared-event-editor-main::-webkit-scrollbar,
body #itinerary-form.shared-event-editor .shared-event-picker-view::-webkit-scrollbar { width:7px!important; }
body #itinerary-form.shared-event-editor .shared-event-editor-main::-webkit-scrollbar-track,
body #itinerary-form.shared-event-editor .shared-event-picker-view::-webkit-scrollbar-track { background:transparent!important; }
body #itinerary-form.shared-event-editor .shared-event-editor-main::-webkit-scrollbar-thumb,
body #itinerary-form.shared-event-editor .shared-event-picker-view::-webkit-scrollbar-thumb {
  border:2px solid transparent!important;
  border-radius:999px!important;
  background:rgba(72,100,97,.28)!important;
  background-clip:padding-box!important;
}
body #itinerary-form.shared-event-editor .shared-event-section { padding:16px 0!important; }
body #itinerary-form.shared-event-editor .shared-event-section > header { margin-bottom:10px!important; }
body #itinerary-form.shared-event-editor .shared-event-grid {
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr)!important;
  gap:16px!important;
}
body #itinerary-form.shared-event-editor .drawer-placement-fields,
body #itinerary-form.shared-event-editor .shared-event-location-fields {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
body #itinerary-form.shared-event-editor :is(input,select) {
  min-height:42px!important;
  border-radius:7px!important;
}
body #itinerary-form.shared-event-editor textarea {
  min-height:72px!important;
  border-radius:7px!important;
}
body #itinerary-form.shared-event-editor :is(input,select,textarea):focus-visible {
  box-shadow:0 0 0 2px #fffdfa,0 0 0 4px rgba(8,113,108,.22)!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice > div {
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  border-radius:7px!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label span {
  min-height:40px!important;
  border-right:1px solid #dce5e2!important;
  font-size:.64rem!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label:last-child span { border-right:0!important; }
body #itinerary-form.shared-event-editor .plan-location-mode > div { gap:9px!important; }
body #itinerary-form.shared-event-editor .plan-location-mode button {
  grid-template-columns:28px minmax(0,1fr) 16px!important;
  min-height:64px!important;
  padding:9px 11px!important;
  border-radius:8px!important;
  line-height:1.15!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button b,
body #itinerary-form.shared-event-editor .plan-location-mode button small {
  display:block!important;
  min-width:0!important;
  margin:0!important;
  text-align:left!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button b {
  font-size:.74rem!important;
  white-space:normal!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button small {
  font-size:.61rem!important;
  white-space:normal!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-fields { margin-top:10px!important; }
body #itinerary-form.shared-event-editor .shared-event-optional { padding:12px 0 16px!important; }
body #itinerary-form.shared-event-editor .event-more-toggle {
  min-height:44px!important;
  border-radius:8px!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions {
  min-height:64px!important;
  padding:10px 22px!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions button {
  min-height:40px!important;
  border-radius:8px!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-pick-rail {
  grid-auto-columns:minmax(200px,31%)!important;
}

@media (max-width:720px) {
  body #itinerary-form.shared-event-editor {
    width:100dvw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:none!important;
    border-radius:0!important;
  }
  body #itinerary-form.shared-event-editor .plan-form-head {
    padding:calc(10px + env(safe-area-inset-top)) 14px 10px!important;
  }
  body #itinerary-form.shared-event-editor #plan-form-title { max-width:34vw!important; }
  body #itinerary-form.shared-event-editor .shared-event-editor-main,
  body #itinerary-form.shared-event-editor .shared-event-picker-view { padding-inline:16px!important; }
  body #itinerary-form.shared-event-editor .shared-event-grid,
  body #itinerary-form.shared-event-editor .drawer-placement-fields,
  body #itinerary-form.shared-event-editor .shared-event-location-fields { grid-template-columns:1fr!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice > div { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice label:nth-child(3n) span { border-right:0!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode > div { grid-template-columns:1fr!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions {
    padding:9px 16px calc(9px + env(safe-area-inset-bottom))!important;
  }
}

@media (min-width:1120px) {
  #itinerary-form.event-editor-popover .plan-location-mode {
    margin:0;
    border:0;
    padding:0;
  }
  #itinerary-form.event-editor-popover .plan-location-mode > div {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
  }
  #itinerary-form.event-editor-popover .plan-location-mode button {
    display:grid;
    min-width:0;
    min-height:58px;
    grid-template-columns:24px minmax(0,1fr);
    gap:.05rem .45rem;
    align-content:center;
    border:1px solid rgba(18,49,48,.13);
    border-radius:12px;
    padding:.55rem .6rem;
    background:#fff;
    color:#123634;
    text-align:left;
    box-shadow:none;
  }
  #itinerary-form.event-editor-popover .plan-location-mode button > span {
    grid-row:1 / span 2;
    align-self:center;
    color:#0e7777;
    font-size:.9rem;
    text-align:center;
  }
  #itinerary-form.event-editor-popover .plan-location-mode button b {
    overflow:hidden;
    font-size:.64rem;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #itinerary-form.event-editor-popover .plan-location-mode button small {
    overflow:hidden;
    color:#657b78;
    font-size:.52rem;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #itinerary-form.event-editor-popover .plan-location-mode button.is-selected {
    border-color:#2a8f86;
    background:#edf7f4;
    box-shadow:inset 3px 0 0 #2a8f86;
  }
}
@keyframes payment-editor-mobile-in { from { opacity:.75; transform:translateY(12px); } to { opacity:1; transform:none; } }
.stay-flow-shell { display:grid; grid-template-columns:minmax(0,820px) 220px; grid-template-areas:"flow nav"; align-items:start; gap:1.25rem; width:min(100%,1065px); }
#stay-form { max-width:1065px; }
#stay-form[hidden],.stay-stage-nav[hidden],.guided-progress[hidden] { display:none!important; }
#stay-summary { max-width:1065px; }
.stay-flow-shell > .guided-flow { grid-area:flow; width:100%; }
.stay-stage-nav { position:sticky; top:1rem; grid-area:nav; display:grid; gap:.35rem; border:1px solid rgba(18,49,48,.1); border-radius:20px; padding:.85rem; background:#f3faf9; }
.stay-stage-nav > p { margin:.1rem .35rem .45rem; color:var(--muted); font-size:.64rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.stay-stage-nav button { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; gap:.65rem; border:1px solid transparent; border-radius:14px; padding:.65rem; background:transparent; color:var(--muted); text-align:left; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.stay-stage-nav button:hover,.stay-stage-nav button:focus-visible { background:white; transform:translateX(-2px); }
.stay-stage-nav button.is-current { border-color:rgba(58,156,158,.28); background:white; box-shadow:0 7px 18px rgba(18,49,48,.07); color:var(--ink); }
.stay-stage-nav button i { display:grid; width:29px; height:29px; place-items:center; border-radius:10px; background:#dfeceb; color:var(--pine); font-size:.68rem; font-style:normal; font-weight:900; }
.stay-stage-nav button.is-complete i { background:#3a9c9e; color:white; }
.stay-stage-nav button span { display:grid; gap:.1rem; }
.stay-stage-nav button b { font-size:.72rem; }
.stay-stage-nav button small { color:var(--muted); font-size:.6rem; line-height:1.3; }
.guided-address-grid { display:grid; grid-template-columns:1.4fr .65fr .75fr; gap:.75rem; width:min(100%,680px); }
.stay-datetime-grid { display:grid; grid-template-columns:1fr; gap:1rem; width:min(100%,680px); }
.stay-datetime-card { display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; min-width:0; min-inline-size:0; width:100%; margin:0; overflow:hidden; border:1px solid rgba(58,156,158,.23); border-radius:18px; padding:1rem; background:#f3faf9; }
.stay-datetime-card legend { grid-column:1 / -1; padding:0 .25rem; color:var(--pine); font-size:.78rem; font-weight:900; }
.stay-datetime-card label { display:grid; min-width:0; gap:.4rem; color:var(--muted); font-size:.68rem; font-weight:800; }
.stay-datetime-card input,.stay-datetime-card select { display:block; width:100%; min-width:0; min-inline-size:0; max-width:100%; min-height:48px; box-sizing:border-box; border:1px solid rgba(18,49,48,.14); border-radius:13px; padding:0 .75rem; background:white; color:var(--ink); font-size:.82rem; font-weight:750; }
.stay-datetime-card select { padding-right:2rem; }
.stay-datetime-card input { color-scheme:light; }
.stay-datetime-card input:focus-visible,.stay-datetime-card select:focus-visible { outline:3px solid rgba(58,156,158,.2); outline-offset:2px; border-color:#3a9c9e; }
.stay-summary-card { border-left:4px solid #3a9c9e; background:linear-gradient(100deg,#fffefa,#edf9f9); animation:summary-in .3s ease both; }
.stay-summary-card .summary-edit { flex:none; border:0; border-radius:999px; padding:.55rem .7rem; background:#dff1ef; color:var(--pine); font-size:.7rem; font-weight:850; }
.stay-summary-actions { display:flex!important; align-items:center; gap:.45rem!important; }
.stay-summary-card .summary-remove { border:0; padding:.5rem .35rem; background:transparent; color:#a84a3e; font-size:.67rem; font-weight:800; }

/* Stay follows the same workspace rhythm as People, Payments, and Links without
   compressing its intentionally detailed setup into a short fixed-height flow. */
.stay-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,360px); align-items:start; gap:1.25rem; max-width:1180px; }
.stay-workspace-main { min-width:0; }
.stay-workspace-main #stay-form,.stay-workspace-main .stay-flow-shell { width:100%; max-width:none; }
.stay-workspace-main .stay-flow-shell.is-always-open { margin-top:0; }
.stay-summary-column { position:sticky; top:1.25rem; display:grid; min-width:0; gap:.9rem; }
.stay-readiness-card { display:grid; gap:.45rem; overflow:hidden; border:1px solid rgba(15,93,91,.22); border-radius:24px; padding:1.35rem 1.4rem; background:linear-gradient(145deg,#0e5d5b,#18716c); color:white; box-shadow:0 16px 32px rgba(14,85,87,.15); }
.stay-readiness-card::before { height:4px; margin:-1.35rem -1.4rem .5rem; background:linear-gradient(90deg,#64c8b0,#a6d8cf); content:""; }
.stay-readiness-card > span,.stay-record-heading > span { font-size:.65rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.stay-readiness-card > span { color:#c6f0e5; }
.stay-readiness-card strong { font-size:clamp(1.75rem,3vw,2.45rem); letter-spacing:-.055em; line-height:1; }
.stay-readiness-card p { margin:.15rem 0 0; color:rgba(255,255,255,.88); font-size:.78rem; line-height:1.45; }
.stay-readiness-card small { border-top:1px solid rgba(255,255,255,.16); padding-top:.75rem; color:rgba(255,255,255,.68); font-size:.67rem; line-height:1.45; }
.stay-record-card { display:grid; min-width:0; border:1px solid rgba(18,49,48,.13); border-radius:22px; padding:1rem; background:rgba(255,255,255,.88); box-shadow:0 12px 30px rgba(18,49,48,.045); }
.stay-record-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border-bottom:1px solid rgba(18,49,48,.09); padding:.1rem .1rem .8rem; color:var(--clay); }
.stay-record-heading small { color:var(--muted); font-size:.63rem; font-weight:800; }
.stay-record-card #stay-summary { display:grid; gap:.55rem; width:100%; max-width:none; margin:.8rem 0 0; }
.stay-record-card .empty-state { margin:0; border-radius:15px; padding:.85rem; font-size:.7rem; line-height:1.45; }
.stay-record-card .stay-summary-card { position:relative; display:grid; min-width:0; gap:.65rem; border:1px solid rgba(66,153,111,.2); border-left:4px solid #42996f; border-radius:16px; padding:.9rem 2.1rem .9rem .9rem; background:linear-gradient(135deg,#f7fffb,#e8f6ef); box-shadow:none; }
.stay-record-card .stay-summary-card > div:first-child { display:grid; min-width:0; gap:.18rem; }
.stay-record-card .stay-summary-card > div > span { font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }
.stay-record-card .stay-summary-card strong { overflow:hidden; font-size:.9rem; text-overflow:ellipsis; white-space:nowrap; }
.stay-record-card .stay-summary-card small { color:var(--muted); font-size:.65rem; line-height:1.4; }
.stay-record-card .summary-actions { position:absolute; top:.4rem; right:.4rem; }
.stay-record-card .summary-remove { display:grid; width:27px; height:27px; place-items:center; overflow:hidden; padding:0; color:transparent; font-size:0; }
.stay-record-card .summary-remove::before { color:rgba(168,74,62,.66); font-size:.95rem; content:"×"; }
.stay-record-card .summary-remove:hover::before,.stay-record-card .summary-remove:focus-visible::before { color:#a84a3e; }
.stay-location-preview { position:relative; display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:.65rem; overflow:hidden; border:1px solid rgba(18,49,48,.12); border-radius:16px; padding:.8rem; background:linear-gradient(135deg,#e6f3ef,#f7fbf9); }
.stay-location-preview::before,.stay-location-preview::after { position:absolute; z-index:0; border:1px solid rgba(58,156,158,.14); border-radius:50%; content:""; }
.stay-location-preview::before { width:120px; height:120px; right:-45px; bottom:-75px; }
.stay-location-preview::after { width:70px; height:70px; left:-35px; top:-45px; }
.stay-location-preview > * { position:relative; z-index:1; }
.stay-location-pin { display:grid; width:32px; height:32px; place-items:center; border-radius:11px; background:var(--pine); color:#f2b94f; font-size:.56rem; box-shadow:0 6px 14px rgba(14,85,87,.16); }
.stay-location-preview > div { display:grid; min-width:0; gap:.12rem; }
.stay-location-preview small { color:var(--muted); font-size:.57rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.stay-location-preview strong { overflow:hidden; color:var(--ink); font-size:.7rem; text-overflow:ellipsis; white-space:nowrap; }
.stay-location-preview a { border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.46rem .62rem; background:rgba(255,255,255,.9); color:var(--pine); font-size:.62rem; font-weight:850; white-space:nowrap; }
.stay-location-preview a:hover,.stay-location-preview a:focus-visible { background:white; transform:translateY(-1px); }

@media (max-width:850px) {
  .stay-workspace { grid-template-columns:1fr; }
  .stay-summary-column { position:static; grid-row:1; grid-template-columns:1fr 1fr; }
}
@media (max-width:620px) {
  .stay-summary-column { grid-template-columns:1fr; }
  .stay-readiness-card { border-radius:20px; padding:1.15rem 1.2rem; }
  .stay-readiness-card::before { margin:-1.15rem -1.2rem .4rem; }
  .stay-record-card { border-radius:20px; }
}
.separate-stay-choice { grid-column:1 / -1; }
.separate-stay-note { display:grid; width:min(100%,680px); gap:.2rem; border-left:4px solid #3a9c9e; border-radius:0 15px 15px 0; padding:.9rem 1rem; background:#e7f5f5; }
.separate-stay-note[hidden] { display:none; }
.separate-stay-note b { font-size:.82rem; }
.separate-stay-note span { color:var(--muted); font-size:.75rem; line-height:1.45; }
.separate-stay-summary { background:linear-gradient(100deg,#fffefa,#e7f5f5); }
.stay-flow-shell.is-editing { grid-template-columns:1fr; grid-template-areas:"flow"; width:100%; margin-top:1rem; }
.stay-flow-shell.is-editing .guided-flow { width:100%; max-width:none; padding:clamp(1.4rem,3.5vw,2.5rem); background:linear-gradient(145deg,#dff3f4,#f5fbfa); }
.stay-flow-shell.is-editing .guided-step { min-height:0; border:1px solid rgba(18,49,48,.1); border-radius:18px; padding:clamp(1.25rem,3vw,1.8rem); background:#fffefa; box-shadow:0 8px 24px rgba(18,49,48,.045); animation:guided-step-in .25s ease both; }
.stay-flow-shell.is-editing .guided-step + .guided-step { margin-top:1.35rem; }
.stay-flow-shell.is-editing .guided-step:first-of-type,.stay-flow-shell.is-editing .guided-step:last-of-type { padding:clamp(1.25rem,3vw,1.8rem); }
.stay-flow-shell.is-editing .guided-step h3 { font-size:clamp(1.35rem,2.5vw,1.85rem); }
.stay-flow-shell.is-editing .guided-step > label,.stay-flow-shell.is-editing .guided-step > .guided-grid,.stay-flow-shell.is-editing .guided-step > fieldset,.stay-flow-shell.is-editing .guided-address-grid,.stay-flow-shell.is-editing .stay-datetime-grid { width:100%; max-width:none; }
.stay-flow-shell.is-editing .guided-actions { grid-template-columns:auto minmax(0,1fr) auto; margin-top:1.75rem; }
.stay-edit-cancel { min-height:44px; }
.editor-panel { position:relative; }
.section-toast { position:absolute; z-index:6; top:1rem; left:50%; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.65rem .9rem; background:var(--pine); box-shadow:0 12px 28px rgba(18,49,48,.2); color:white; font-size:.72rem; font-weight:850; white-space:nowrap; transform:translateX(-50%); animation:toast-in .25s ease both; }
.section-toast.is-leaving { animation:toast-out .28s ease both; }
@keyframes summary-in { from { opacity:0; transform:translateY(-6px); } }
.flow-toast { position:absolute; z-index:4; top:1rem; left:50%; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.65rem .9rem; background:var(--pine); box-shadow:0 12px 28px rgba(18,49,48,.2); color:white; font-size:.72rem; font-weight:850; white-space:nowrap; transform:translateX(-50%); animation:toast-in .25s ease both; }
.flow-toast.is-leaving { animation:toast-out .28s ease both; }
@keyframes toast-in { from { opacity:0; transform:translate(-50%,-8px); } }
@keyframes toast-out { to { opacity:0; transform:translate(-50%,-8px); } }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
@keyframes guided-step-in { from { opacity:0; transform:translateX(14px); } }

@media (max-width:720px) {
  .guided-flow { margin:0 -.35rem; border-radius:21px; padding:1.15rem; }
  .guided-progress { grid-template-columns:auto 1fr auto; margin-bottom:1.8rem; }
  .guided-step { min-height:340px; }
  .guided-step h3 { font-size:clamp(1.8rem,9vw,2.45rem); }
  .guided-grid { grid-template-columns:1fr; }
  .payment-method-choice .choice-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .stay-flow-shell { grid-template-columns:1fr; grid-template-areas:"nav" "flow"; gap:.8rem; }
  .stay-stage-nav { position:static; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.3rem; overflow:hidden; padding:.45rem; border-radius:16px; }
  .stay-stage-nav > p { display:none; }
  .stay-stage-nav button { display:grid; grid-template-columns:1fr; justify-items:center; gap:.3rem; min-width:0; padding:.55rem .2rem; text-align:center; }
  .stay-stage-nav button:hover { transform:none; }
  .stay-stage-nav button span small { display:none; }
  .stay-stage-nav button b { font-size:.6rem; }
  .guided-address-grid { grid-template-columns:1fr 1fr; }
  .guided-address-grid label:first-child { grid-column:1 / -1; }
  .stay-datetime-grid,.stay-datetime-card { grid-template-columns:minmax(0,1fr); }
  .stay-datetime-card input[type="date"] { display:block; -webkit-appearance:none; appearance:none; }
  .stay-summary-card { display:grid; }
  .stay-summary-actions { justify-content:flex-start; }
  .stay-flow-shell.is-editing .guided-flow { margin:0; }
  .stay-flow-shell.is-editing .guided-actions { grid-template-columns:1fr; }
  .stay-flow-shell.is-editing .stay-edit-cancel { grid-row:auto; justify-self:start; }
  .stay-flow-shell.is-editing .guided-save { grid-column:1; }
  .section-toast { max-width:calc(100% - 2rem); overflow:hidden; text-overflow:ellipsis; }
  .guided-actions { grid-template-columns:auto 1fr; gap:.6rem; }
  .guided-actions .form-message { grid-column:1 / -1; grid-row:2; }
  .guided-next,.guided-save { width:100%; min-width:0; }
}

/* Calm desktop itinerary: fewer nested surfaces, quieter actions, and a
   content-first hierarchy. Mobile retains the established unified flow. */
.hit-list-add-toggle { display:none; }

@media (min-width:1121px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout {
    grid-template-columns:minmax(300px,.52fr) minmax(0,1.7fr);
  }
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
    max-width:none;
    align-items:end;
    gap:3rem;
    margin-bottom:2rem;
    padding-bottom:1.8rem;
    border-bottom:1px solid rgba(18,49,48,.11);
  }
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro p { margin:0; }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { row-gap:1.8rem; }

  .place-explorer {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:.3rem 2rem;
    border-bottom:1px solid rgba(18,49,48,.11);
    padding:0 0 1.45rem;
  }
  .place-explorer > .planner-heading { grid-column:1; grid-row:1; margin:0; }
  .place-explorer > .planner-help { grid-column:1; grid-row:2; margin:.35rem 0 0; }
  .place-explorer-card { display:contents; }
  .place-explorer-card > .idea-bank-heading { display:none; }
  .place-explorer-card > .explorer-type-choice {
    grid-column:2;
    grid-row:1 / span 2;
    width:280px;
    align-self:center;
    margin:0;
  }
  .place-explorer-card > .explorer-type-choice button { white-space:nowrap; }
  .place-explorer-card > .unified-destination-suggestions {
    grid-column:1 / -1;
    grid-row:3;
    margin-top:1rem;
  }
  .place-explorer-card .destination-suggestions { margin:0; padding:0; }
  .place-explorer-card .destination-suggestions-heading { margin-bottom:.75rem; }
  .place-explorer-card .destination-suggestions-heading > div > small,
  .place-explorer-card .destination-suggestions-heading > small { display:none; }
  .place-explorer-card .destination-suggestions-heading span { font-size:.64rem; letter-spacing:.08em; }
  .place-explorer-card .destination-quick-rail { gap:.75rem; padding:.05rem 2.35rem .25rem 0; }
  .place-explorer-card .destination-quick-card {
    grid-template-columns:38px minmax(145px,1fr) auto;
    width:380px;
    min-height:120px;
    gap:.7rem;
    border-color:rgba(18,49,48,.13);
    border-radius:14px;
    padding:.85rem;
    background:#fff;
    box-shadow:none;
  }
  .place-explorer-card .destination-quick-card::before {
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    border-radius:14px 0 0 14px;
    background:var(--destination-accent);
    content:"";
  }
  .place-explorer-card .destination-card-mark { width:34px; height:34px; border:0; }
  .place-explorer-card .destination-quick-card small { font-size:.48rem; }
  .place-explorer-card .destination-quick-card strong { font-size:.82rem; }
  .place-explorer-card .destination-quick-card p { font-size:.59rem; }
  .place-explorer-card .destination-card-actions { display:flex; align-items:flex-start; gap:.3rem; }
  .place-explorer-card .destination-card-actions button {
    min-width:0;
    min-height:30px;
    border-radius:999px;
    padding:.36rem .55rem;
    background:white;
    font-size:.54rem;
  }
  .place-explorer-card .destination-card-actions button[data-info-destination-suggestion] {
    width:30px;
    padding:0;
    font-size:0;
  }
  .place-explorer-card .destination-card-actions button[data-info-destination-suggestion]::before { content:"i"; font-size:.68rem; font-weight:900; }
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion] {
    width:30px;
    padding:0;
    font-size:0;
  }
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion]::before { content:"♡"; font-size:.85rem; }
  .place-explorer-card .destination-card-actions button[data-place-destination-suggestion],
  .place-explorer-card .destination-card-actions button[data-place-existing-itinerary] {
    background:var(--pine);
    color:white;
  }
  .place-explorer-card .destination-card-status { top:.38rem; right:.5rem; background:white; font-size:.43rem; }
  .place-explorer-card .destination-explore-open {
    min-height:0;
    margin:.7rem 0 0 auto;
    border:0;
    padding:.25rem 0;
    background:transparent;
    font-size:.68rem;
  }

  .hit-list .planner-heading { align-items:center; margin-bottom:.35rem; }
  .hit-list-add-toggle {
    display:inline-flex;
    min-height:34px;
    align-items:center;
    border:1px solid rgba(14,85,87,.22);
    border-radius:999px;
    padding:.45rem .7rem;
    background:white;
    color:var(--pine);
    font-size:.62rem;
    font-weight:850;
    white-space:nowrap;
  }
  .hit-list > .planner-help { margin:.25rem 0 .8rem; }
  .hit-list .idea-banks { margin:0; }
  .hit-list-store { border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; }
  .hit-list-store > .idea-bank-heading,
  .hit-list-store > .hit-list-type-choice,
  .hit-list-store > .quick-idea-form,
  .hit-list-store > .quick-idea-message { display:none; }
  .hit-list-store.is-composing {
    margin:.75rem 0 1rem;
    border:1px solid rgba(18,49,48,.11);
    border-radius:14px;
    padding:.9rem;
    background:#fff;
  }
  .hit-list-store.is-composing > .idea-bank-heading,
  .hit-list-store.is-composing > .hit-list-type-choice,
  .hit-list-store.is-composing > .quick-idea-form { display:grid; }
  .hit-list-store.is-composing > .idea-bank-heading { margin-bottom:.7rem; }
  .hit-list-store.is-composing > .idea-bank-heading p { display:none; }
  .hit-list-store.is-composing > .hit-list-type-choice { margin-bottom:.55rem; }
  .hit-list-store.is-composing > .quick-idea-message:not(:empty) { display:block; }
  .hit-list-bank-heading { margin:.85rem 0 .4rem; border-top:0; padding-top:0; }
  .hit-list-bank-heading strong { display:none; }
  .hit-placement-help { margin:.25rem 0 .75rem; font-size:.64rem; }
  .idea-bank .idea-tray { gap:.55rem; margin-top:.6rem; }
  .idea-bank .hit-item {
    grid-template-columns:13px 32px minmax(0,1fr) auto;
    min-height:78px;
    gap:.45rem;
    border-radius:13px;
    padding:.62rem .7rem;
    background:#fff;
    box-shadow:none;
  }
  .idea-bank .hit-item::before { width:3px; }
  .idea-bank .hit-item-type-mark { width:30px; height:30px; border:0; border-radius:10px; font-size:.76rem; }
  .idea-bank .hit-item-copy span { font-size:.45rem; }
  .idea-bank .hit-item-copy strong { font-size:.75rem; }
  .idea-bank .hit-item-copy small { font-size:.55rem; -webkit-line-clamp:1; }
  .idea-bank .item-actions { display:flex!important; }
  .idea-bank .hit-info { width:30px; min-width:30px; min-height:30px; padding:0; font-size:0; }
  .idea-bank .hit-info::before { content:"i"; font-size:.68rem; }
  .idea-bank .edit-item { min-width:54px; min-height:30px; padding:.3rem .5rem; background:#edf5f3; color:var(--pine); font-size:.56rem; }

  .calendar-view .calendar-help-row { margin-bottom:.7rem; }
  .calendar-grid { gap:.7rem; }
  .calendar-day { border-radius:14px; background:#fbfcfb; }
  .calendar-day > header { padding:.7rem .8rem; border-bottom:1px solid rgba(18,49,48,.12); background:white; color:var(--ink); }
  .calendar-day > header span { color:var(--clay); font-size:.54rem; }
  .calendar-day > header strong { font-size:.78rem; }
  .calendar-slot { min-height:118px; padding:.65rem; background:transparent; }
  .calendar-slot.has-items { background:transparent; }
  .slot-label { margin-bottom:.4rem; font-size:.54rem; }
  .calendar-event { border-color:rgba(18,49,48,.13); border-radius:9px; padding:.48rem .55rem .48rem .68rem; background:white; }
  .calendar-event::before { width:3px; }
  .calendar-event.status-idea { border-style:solid; opacity:1; }
  .calendar-event strong { font-size:.68rem; }
  .calendar-event small { font-size:.57rem; }
  .slot-open { grid-auto-flow:column; justify-content:start; gap:.7rem; border:0; padding:.35rem 0 0; }
  .slot-open > span { display:none; }
  .slot-open button { padding:.1rem 0; background:transparent; font-size:.58rem; }
}


@media (prefers-reduced-motion:reduce) {
  .guided-step,.app-loader > .brand-mark { animation:none; }
  .guided-progress i,.guided-step .choice-cards label { transition:none; }
}

/* Organizer overview and payment orientation */
#trip-basics-form[hidden] { display:none!important; }
.overview-dashboard { display:grid; gap:1rem; margin-bottom:1rem; }
.overview-recap { position:relative; overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:24px; padding:clamp(1.4rem,4vw,2.35rem); background:linear-gradient(125deg,#dff4f5 0 58%,#fff0d7 100%); box-shadow:0 14px 35px rgba(18,49,48,.06); }
.overview-recap::after { position:absolute; right:-35px; bottom:-70px; width:190px; height:190px; border-radius:50%; background:rgba(237,134,111,.2); content:""; }
.overview-recap > span { color:#bd604c; font-size:.69rem; font-weight:950; letter-spacing:.12em; text-transform:uppercase; }
.overview-recap h3 { position:relative; z-index:1; max-width:760px; margin:.45rem 0 .3rem; font-size:clamp(2.1rem,5vw,3.8rem); letter-spacing:-.065em; line-height:.96; }
.overview-recap > p { position:relative; z-index:1; margin:0; color:var(--muted); font-weight:750; }
.overview-recap blockquote { position:relative; z-index:1; max-width:720px; margin:1.35rem 0 0; border-left:3px solid var(--clay); padding:.15rem 0 .15rem 1rem; color:var(--ink); font-size:.92rem; line-height:1.55; }
.overview-section-grid { display:grid; grid-template-columns:1fr; align-items:start; gap:.75rem; }
.overview-section-card { overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:19px; background:#fffefa; box-shadow:0 9px 24px rgba(18,49,48,.045); transition:border-color .18s ease,box-shadow .18s ease; }
.overview-section-card:has(.overview-section-toggle[aria-expanded="true"]) { border-color:rgba(14,85,87,.3); box-shadow:0 14px 28px rgba(18,49,48,.08); }
.overview-section-toggle { position:relative; display:grid; width:100%; min-height:0; align-content:start; gap:.35rem; border:0; padding:1rem 3rem 1rem 1.05rem; background:transparent; color:var(--ink); text-align:left; }
.overview-section-toggle:hover,.overview-section-toggle:focus-visible { background:#f7fbf8; }
.overview-section-toggle > span { color:#bd604c; font-size:.66rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.overview-section-toggle strong { margin-top:.15rem; font-size:1.05rem; letter-spacing:-.025em; line-height:1.15; }
.overview-section-toggle small { color:var(--muted); font-size:.72rem; line-height:1.45; }
.overview-section-toggle i { position:absolute; top:.9rem; right:.9rem; display:grid; width:26px; height:26px; place-items:center; border-radius:50%; background:#e8f4f1; color:var(--pine); font-size:1rem; font-style:normal; }
.overview-section-detail { border-top:1px solid rgba(18,49,48,.1); padding:.9rem 1rem 1rem; background:#fbfdfb; }
.overview-section-detail[hidden] { display:none; }
.overview-section-detail ul { display:grid; gap:.7rem; margin:0; padding:0; list-style:none; }
.overview-section-detail li { display:grid; gap:.15rem; padding-bottom:.65rem; border-bottom:1px solid rgba(18,49,48,.08); }
.overview-section-detail li:last-child { padding-bottom:0; border-bottom:0; }
.overview-section-detail li strong { font-size:.8rem; }
.overview-section-detail li span { color:var(--muted); font-size:.7rem; line-height:1.4; }
.overview-section-detail li.is-empty { color:var(--muted); font-size:.74rem; line-height:1.45; }
.overview-section-edit { display:block; margin:.9rem 0 0 auto; border:0; border-radius:999px; padding:.55rem .72rem; background:#e5f4f0; color:var(--pine); font-size:.7rem; font-weight:900; }
.overview-section-detail li.overview-itinerary-day { gap:.65rem; border:1px solid rgba(18,49,48,.1); border-radius:15px; padding:.85rem; background:white; }
.overview-itinerary-day > header { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; padding-bottom:.55rem; border-bottom:1px solid rgba(18,49,48,.09); }
.overview-itinerary-day > header strong { font-size:.86rem; }
.overview-itinerary-day > header span { color:var(--muted); font-size:.64rem; white-space:nowrap; }
.overview-day-period { display:grid; grid-template-columns:92px minmax(0,1fr); gap:.6rem; align-items:start; }
.overview-day-period > strong { padding-top:.15rem; color:#b45f4e; font-size:.6rem!important; letter-spacing:.08em; text-transform:uppercase; }
.overview-day-period > div { display:grid; gap:.35rem; }
.overview-plan-line { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.15rem .5rem; align-items:center; border-radius:10px; padding:.5rem .6rem; background:#edf7f4; }
.overview-plan-line b { min-width:0; font-size:.75rem; }
.overview-plan-line small { grid-column:1; color:var(--muted); font-size:.62rem; }
.overview-plan-line em { grid-column:2; grid-row:1 / span 2; border-radius:999px; padding:.25rem .4rem; font-size:.56rem; font-style:normal; font-weight:850; white-space:nowrap; }
.overview-plan-line em.is-confirmed { background:#dbf2e4; color:#28714e; }
.overview-plan-line em.needs-review { background:#fff0d2; color:#9a6115; }
.overview-open-slot { border:1px dashed rgba(18,49,48,.16); border-radius:9px; padding:.4rem .55rem; color:#82918e!important; font-size:.66rem!important; }
@media (max-width:720px) {
  .overview-day-period { grid-template-columns:1fr; gap:.25rem; }
  .overview-day-period > strong { padding:0; }
}
.overview-summary-card { max-width:none; border-left:4px solid var(--clay); background:linear-gradient(100deg,#fffefa,#fff5e7); }
.overview-summary-card .overview-edit { flex:none; border:0; border-radius:999px; padding:.55rem .75rem; background:#f6e8d7; color:var(--pine); font-size:.7rem; font-weight:850; }
#trip-basics-form.is-editing { max-width:none; margin-top:1rem; }
#trip-basics-form.is-editing .guided-flow { width:100%; max-width:none; background:linear-gradient(145deg,#fff5e8,#f3fbfa); }
#trip-basics-form.is-editing .guided-step { min-height:0; border:1px solid rgba(18,49,48,.1); border-radius:18px; padding:clamp(1.2rem,3vw,1.7rem); background:#fffefa; }
#trip-basics-form.is-editing .guided-step + .guided-step { margin-top:1rem; }
#trip-basics-form.is-editing .guided-step h3 { font-size:clamp(1.35rem,2.6vw,1.9rem); }

.payment-panel-head { margin-bottom:1.5rem; }
.payment-panel-head .panel-intro { margin-bottom:0; }
.payment-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,330px); align-items:start; gap:1.25rem; }
.payment-workspace-main { display:grid; min-width:0; }
.payment-workspace-main .saved-items,.payment-workspace-main .editor-form,.payment-workspace-main .guided-flow { width:100%; max-width:none; }
.payment-ledger { position:sticky; top:1.25rem; display:grid; min-width:0; gap:.65rem; }
.payment-ledger .saved-items { gap:.5rem; max-width:none; margin:0; }
.trip-cost-card { display:grid; gap:.4rem; overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:18px; padding:1.1rem 1.15rem 1.15rem; background:#edf8f5; box-shadow:0 10px 24px rgba(18,49,48,.045); }
.trip-cost-card::before { height:4px; margin:-1.1rem -1.15rem .45rem; background:linear-gradient(90deg,#47a99d,#79c8ca); content:""; }
.trip-cost-card > span { color:#33766f; font-size:.61rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.trip-cost-card strong { color:var(--pine); font-size:clamp(2rem,3.2vw,2.75rem); letter-spacing:-.055em; line-height:1; }
.trip-cost-card small { display:grid; gap:.35rem; padding-top:.5rem; border-top:1px solid rgba(18,49,48,.1); color:var(--muted); font-size:.68rem; line-height:1.4; }
.trip-cost-card small span { color:var(--pine); font-weight:850; }
.payment-name-field { position:relative; }
.payment-name-field input::placeholder { color:rgba(72,96,93,.34); opacity:1; }
.payment-suggestion-library { display:flex; flex-wrap:wrap; gap:.38rem .7rem; width:100%; }
.payment-suggestion-library > div { display:flex; align-items:center; gap:.32rem; }
.payment-suggestion-library > div > span { color:#92705f; font-size:.52rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.payment-suggestion-library .example-chips { display:flex; flex-wrap:wrap; gap:.25rem; width:auto; }
.payment-suggestion-library .example-chips button { border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.3rem .46rem; background:rgba(255,255,255,.7); color:#526966; font-size:.57rem; font-weight:750; transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease; }
.payment-suggestion-library > div:nth-child(1) .example-chips button { border-color:rgba(61,145,119,.15); background:#edf7f2; color:#426b60; }
.payment-suggestion-library > div:nth-child(2) .example-chips button { border-color:rgba(221,130,104,.17); background:#fff1eb; color:#765b52; }
.payment-suggestion-library > div:nth-child(3) .example-chips button { border-color:rgba(91,142,198,.16); background:#edf4fb; color:#4f6678; }
.payment-suggestion-library .example-chips button:hover,.payment-suggestion-library .example-chips button:focus-visible { border-color:rgba(14,85,87,.28); background:#eef8f5; color:var(--pine); transform:translateY(-1px); }

@media (max-width:850px) {
  .overview-section-grid { grid-template-columns:1fr; }
  .payment-workspace { grid-template-columns:1fr; }
  .payment-ledger { position:static; grid-row:1; width:100%; }
  .trip-cost-card { width:100%; max-width:none; }
}
@media (max-width:560px) {
  .overview-section-grid { grid-template-columns:1fr; }
  .overview-section-toggle { min-height:0; }
  .overview-summary-card { display:grid; }
  .overview-summary-card .overview-edit { justify-self:start; }
  .payment-suggestion-library { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.15rem; scrollbar-width:none; }
  .payment-suggestion-library::-webkit-scrollbar { display:none; }
  .payment-suggestion-library > div { flex:none; }
}
@media (prefers-reduced-motion:reduce) {
  .overview-section-card { transition:none; }
}

/* Idea bank and visual calendar placement */
.idea-composer { max-width:940px; border:1px solid rgba(18,49,48,.1); border-radius:18px; padding:.65rem; background:linear-gradient(135deg,rgba(223,243,244,.42),rgba(255,254,250,.82)); }
.quick-idea-form { align-items:end; max-width:720px; margin:0; }
.quick-idea-form > label { position:relative; display:grid; gap:.4rem; min-width:0; }
.idea-input-wrap { position:relative; display:block; }
.idea-input-wrap input { position:relative; z-index:1; width:100%; min-height:44px; background:rgba(255,255,255,.76); }
.idea-example-label { display:none; }
.rotating-idea-example { position:absolute; z-index:0; top:50%; left:.9rem; color:#748783; font-size:.8rem; font-weight:700; pointer-events:none; transform:translateY(-50%); transition:opacity .32s ease,transform .32s cubic-bezier(.2,.8,.2,1); }
.rotating-idea-example[hidden] { display:none; }
.rotating-idea-example.is-leaving { opacity:0; transform:translate(18px,-50%); }
.rotating-idea-example.is-entering { opacity:0; transform:translate(-18px,-50%); transition:none; }
.idea-suggestion-library { display:flex; align-items:center; gap:.3rem; margin:0 0 .5rem; overflow-x:auto; border:0; border-bottom:1px solid rgba(18,49,48,.07); padding:.05rem 0 .5rem; scrollbar-width:none; }
.idea-suggestion-library::-webkit-scrollbar { display:none; }
.idea-suggestion-library > div { display:flex; flex:none; align-items:center; gap:.28rem; border:0; padding:0; background:transparent; }
.idea-suggestion-library > div > span { display:none; }
.idea-suggestion-library .example-chips { display:flex; flex-wrap:nowrap; gap:.28rem; width:auto; }
.idea-suggestion-library button { border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.28rem .5rem; background:rgba(255,255,255,.5); color:var(--muted); font-size:.59rem; font-weight:750; transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease; }
.idea-suggestion-library button:hover,.idea-suggestion-library button:focus-visible { border-color:rgba(237,134,111,.65); background:white; color:var(--pine); transform:translateY(-1px); }
.idea-tray { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,285px)); gap:.55rem; max-width:none; margin:.7rem 0 0; }
.hit-placement-help { display:flex; align-items:center; min-height:28px; margin:.65rem 0 -.3rem; color:#587370; font-size:.67rem; font-weight:720; }
.hit-placement-help[hidden] { display:none; }
.hit-placement-help b { display:inline-grid; width:21px; height:21px; place-items:center; margin-right:.25rem; border-radius:7px; background:#edf6f4; color:var(--pine); font-size:.74rem; }
.idea-tray.is-expanding { transition:height .38s cubic-bezier(.22,.75,.25,1); }
.idea-tray .hit-item { position:relative; display:grid; grid-template-columns:16px minmax(0,1fr) auto; align-items:center; gap:.15rem .5rem; min-height:82px; border-radius:15px; padding:.62rem 1.8rem .62rem .75rem; background:linear-gradient(145deg,#fffefa,#f5faf8); box-shadow:0 7px 18px rgba(18,49,48,.05); }
.idea-tray .hit-item.is-entering { opacity:0; transform:translateY(-10px) scale(.975); }
.idea-tray .hit-item.is-entering.is-visible { opacity:1; transform:none; transition:opacity .32s ease,transform .4s cubic-bezier(.22,.8,.25,1); }
.idea-tray .hit-item > .drag-grip { grid-row:1; align-self:center; }
.idea-tray .hit-item > .drag-grip + div { align-self:center; }
.idea-tray .hit-item strong { overflow:visible; font-size:.94rem; line-height:1.18; text-overflow:clip; white-space:normal; }
.idea-tray .hit-item small { font-size:.68rem; }
.idea-tray .item-actions { grid-column:3; width:auto; justify-content:flex-end; gap:.3rem!important; margin:0 .15rem 0 0; }
.idea-tray .edit-item { margin-left:auto; border-radius:999px; padding:.34rem .48rem; background:transparent; white-space:nowrap; }
.idea-tray .edit-item:hover,.idea-tray .edit-item:focus-visible { background:#e8f4f1; }
.idea-tray .remove-item { position:absolute; top:.48rem; right:.5rem; display:grid; width:25px; min-height:25px; place-items:center; border-radius:50%; padding:0; background:transparent; color:#c87569; font-size:.82rem; opacity:.72; }
.idea-tray .remove-label { display:none; }
.idea-tray .remove-icon { display:block; line-height:1; }
.idea-tray .remove-item:hover,.idea-tray .remove-item:focus-visible { background:#fff0eb; }
.idea-tray .empty-items { grid-column:1 / -1; justify-self:start; width:auto; margin:0; border:0; padding:.55rem .7rem; background:#f3f7f5; color:#66807d; font-size:.72rem; }
.transient-message { transition:opacity .28s ease,transform .28s ease; }
.transient-message.is-fading { opacity:0; transform:translateY(-4px); }
.plan-form { width:min(1040px,calc(100% - 2rem)); }
.placement-step { display:block; }
.placement-step[hidden] { display:none; }
.placement-step .step-kicker { margin:0 0 .5rem; color:var(--clay); font-size:.68rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.placement-step h3 { margin:0; font-size:clamp(1.8rem,4vw,2.8rem); letter-spacing:-.055em; }
.placement-step > p:not(.step-kicker) { max-width:720px; margin:.6rem 0 1.1rem; color:var(--muted); line-height:1.5; }
.placement-category { display:flex; align-items:center; gap:.6rem; margin:-.15rem 0 .9rem; }
.placement-category > span { color:var(--muted); font-size:.6rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.placement-category > div { display:flex; gap:.32rem; overflow-x:auto; padding:.05rem; scrollbar-width:none; }
.placement-category > div::-webkit-scrollbar { display:none; }
.placement-category button { flex:none; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.38rem .62rem; background:white; color:var(--muted); font-size:.64rem; font-weight:800; }
.placement-category button.is-selected { border-color:var(--pine); background:#dff3f1; color:var(--pine); box-shadow:inset 0 0 0 1px var(--pine); }
.placement-calendar { display:grid; grid-auto-columns:minmax(185px,1fr); grid-auto-flow:column; gap:.65rem; overflow-x:auto; padding:.15rem .1rem .8rem; scroll-snap-type:x proximity; }
.placement-day { overflow:hidden; border:1px solid rgba(18,49,48,.13); border-radius:17px; background:white; scroll-snap-align:start; }
.placement-day header { display:grid; gap:.15rem; padding:.7rem .8rem; background:var(--pine); color:white; }
.placement-day header span { color:#f7cc66; font-size:.6rem; font-weight:900; text-transform:uppercase; }
.placement-day header strong { font-size:.82rem; }
.placement-slot { display:grid; width:100%; min-height:88px; align-content:center; gap:.2rem; border:0; border-top:1px solid rgba(18,49,48,.1); padding:.65rem .75rem; background:white; color:var(--ink); text-align:left; transition:background .18s ease,box-shadow .18s ease,transform .18s ease; }
.placement-slot > span { color:var(--muted); font-size:.58rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.placement-slot strong { font-size:.72rem; line-height:1.25; }
.placement-slot small { color:var(--muted); font-size:.58rem; }
.placement-slot.is-open { background:#f0faf5; }
.placement-slot.is-open strong { color:#28735e; }
.placement-slot.all-day-slot { min-height:72px; background:#edf6fb; }
.placement-slot.all-day-slot > span { color:#4d7892; }
.placement-slot.has-plans { background:#fff8e8; }
.placement-slot:hover,.placement-slot:focus-visible { position:relative; z-index:1; box-shadow:inset 0 0 0 2px var(--clay); transform:translateY(-1px); }
.placement-slot.is-selected { background:#dff3f4; box-shadow:inset 0 0 0 3px var(--pine); }
.placement-selection { min-height:24px; margin:.3rem 0 0!important; color:var(--pine)!important; font-size:.75rem; font-weight:850; }
.placement-empty { grid-column:1 / -1; border:1px dashed rgba(18,49,48,.2); border-radius:14px; padding:1rem; color:var(--muted); }
.calendar-event.just-placed { z-index:1; animation:plan-land 1.3s cubic-bezier(.22,1,.36,1) both; }
@keyframes plan-land { 0% { opacity:.35; box-shadow:0 0 0 0 rgba(237,134,111,.4); transform:translateY(-9px) scale(.96); } 42% { opacity:1; box-shadow:0 0 0 9px rgba(237,134,111,.11); transform:translateY(1px) scale(1.025); } 68% { transform:translateY(-1px) scale(.995); } 100% { box-shadow:0 0 0 0 transparent; transform:none; } }

@media (max-width:720px) {
  .destination-result-row:has(> .destination-result-photo) {
    grid-template-columns:48px minmax(0,1fr) auto;
  }
  .idea-suggestion-library { margin-right:-1.3rem; padding-right:1.3rem; }
  .idea-suggestion-library > div { padding:0; }
  .idea-composer { padding:.6rem; }
  .idea-tray { grid-auto-columns:minmax(225px,72%); grid-auto-flow:column; grid-template-columns:none; margin-right:-1.3rem; overflow-x:auto; padding:.1rem 1.3rem .55rem 0; scroll-snap-type:x proximity; }
  .idea-tray .hit-item { grid-template-columns:minmax(0,1fr) auto; min-height:82px; gap:.4rem; scroll-snap-align:start; padding:.68rem 2.15rem .68rem .9rem; }
  .idea-tray .hit-item > .drag-grip { display:none; }
  .idea-tray .hit-item > .drag-grip + div { grid-column:1; width:100%; }
  .idea-tray .hit-item strong { font-size:1rem; line-height:1.2; }
  .idea-tray .hit-item small { margin-top:.12rem; font-size:.68rem; }
  .idea-tray .item-actions { display:flex!important; grid-column:2; width:auto; margin:0; border:0; padding:0; }
  .idea-tray .edit-item { min-height:34px; max-width:92px; padding:.42rem .68rem; font-size:.65rem; line-height:1.08; text-align:center; }
  .idea-tray .item-actions .edit-item { width:auto; }
  .idea-tray .remove-item { position:absolute; top:.55rem; right:.55rem; width:28px; min-height:28px; border:1px solid transparent; padding:0; background:transparent; color:rgba(164,90,80,.5); font-size:1rem; line-height:1; }
  .idea-tray .remove-item:hover,.idea-tray .remove-item:focus-visible { border-color:rgba(164,90,80,.15); background:#fff5f1; color:#a45a50; }
  .idea-tray .remove-label { display:none; }
  .idea-tray .remove-icon { display:block; }
  .placement-calendar { grid-auto-columns:82%; margin-right:-1.3rem; padding-right:1.3rem; }
}
@media (prefers-reduced-motion:reduce) {
  .rotating-idea-example,.idea-suggestion-library button,.placement-slot { transition:none; }
  .calendar-event.just-placed { animation:none; }
}

/* Movable calendar plans and single-screen event editing */
.calendar-help-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.calendar-add-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.calendar-add-actions button { min-height:39px; border:1px solid #9fcfc7; border-radius:999px; padding:.55rem .8rem; background:#e5f4f0; color:var(--pine); font-size:.7rem; font-weight:850; transition:transform .18s ease,background .18s ease,box-shadow .18s ease; }
.calendar-add-actions button:first-child { border-color:var(--pine); background:var(--pine); color:white; }
.calendar-add-actions button:hover { transform:translateY(-1px); box-shadow:0 7px 16px rgba(18,49,48,.1); }
.calendar-add-actions button:focus-visible { outline:3px solid rgba(237,134,111,.32); outline-offset:2px; }
.calendar-scroll-indicator { position:relative; height:5px; margin:.1rem .2rem 0; overflow:hidden; border-radius:999px; background:rgba(18,49,48,.07); }
.calendar-scroll-indicator[hidden] { display:none; }
.calendar-scroll-indicator i { position:absolute; inset:0 auto 0 0; min-width:16%; border-radius:inherit; background:rgba(14,85,87,.3); transition:width .2s ease; will-change:transform; }
.calendar-help-row .planner-help { margin-right:auto; }
.calendar-help-row > span { flex:none; border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.34rem .58rem; background:#f4f8f6; color:#68807d; font-size:.58rem; font-weight:750; }
.calendar-help-row b { font-weight:850; }
.touch-drag-help { display:none; }
.calendar-event { cursor:grab; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,opacity .18s ease; }
.calendar-event:hover,.calendar-event:focus-visible { z-index:1; box-shadow:0 8px 18px rgba(18,49,48,.12); transform:translateY(-1px); }
.calendar-event:active { cursor:grabbing; }
.calendar-event.status-deciding { border-style:dashed; background:color-mix(in srgb,#f5bf55 12%,white); opacity:1; }
.event-status { position:absolute; top:.42rem; right:.45rem; z-index:1; border-radius:999px; padding:.16rem .38rem; background:#fff0ce; color:#9f6020; font-size:.5rem; font-weight:950; letter-spacing:.045em; line-height:1; text-transform:uppercase; }
.calendar-event.status-confirmed .event-status { background:#dff2e7; color:#28735e; }
.calendar-event strong { padding-right:4.5rem; }
.mobile-place-help { display:none; }

/* Compact touch placement sheet */
.mobile-place-shell[hidden] { display:none; }
.mobile-place-shell { position:fixed; z-index:180; inset:0; display:grid; align-items:end; }
.mobile-place-backdrop { position:absolute; inset:0; border:0; background:rgba(9,35,34,.48); backdrop-filter:blur(5px); }
.mobile-place-sheet { position:relative; display:grid; max-height:min(78svh,660px); gap:1rem; overflow:auto; border-radius:25px 25px 0 0; padding:1.2rem 1.15rem calc(1rem + env(safe-area-inset-bottom)); background:#fffdfa; box-shadow:0 -20px 60px rgba(9,35,34,.2); animation:mobile-sheet-in .28s cubic-bezier(.22,1,.36,1) both; }
.mobile-place-sheet > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.mobile-place-sheet h2 { margin:.08rem 0 0; font-size:1.55rem; letter-spacing:-.045em; }
.mobile-place-sheet .eyebrow { margin:0; }
.mobile-place-sheet > header button { width:38px; height:38px; flex:none; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:white; color:var(--pine); font-size:1.35rem; }
.mobile-place-copy,.mobile-place-summary { margin:0; color:var(--muted); font-size:.84rem; line-height:1.45; }
.mobile-place-group { display:grid; gap:.5rem; }
.mobile-place-group[hidden] { display:none; }
.mobile-place-group > span { color:var(--pine); font-size:.64rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.mobile-place-categories { display:flex; gap:.38rem; overflow-x:auto; padding:.05rem .05rem .25rem; scrollbar-width:none; }
.mobile-place-categories::-webkit-scrollbar { display:none; }
.mobile-place-categories button { flex:none; border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:.5rem .7rem; background:white; color:var(--muted); font-size:.68rem; font-weight:800; }
.mobile-place-categories button.is-selected { border-color:var(--pine); background:#dff3f1; color:var(--pine); box-shadow:inset 0 0 0 1px var(--pine); }
.mobile-place-days { display:flex; gap:.45rem; overflow-x:auto; padding:.1rem .05rem .3rem; scroll-snap-type:x proximity; }
.mobile-place-days button { display:grid; min-width:104px; gap:.08rem; scroll-snap-align:start; border:1px solid rgba(18,49,48,.13); border-radius:13px; padding:.65rem .75rem; background:white; color:var(--pine); text-align:left; }
.mobile-place-days b { color:var(--clay); font-size:.62rem; text-transform:uppercase; }
.mobile-place-days span { font-size:.78rem; font-weight:850; }
.mobile-place-periods { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.mobile-place-periods button { display:grid; min-height:62px; align-content:center; gap:.12rem; border:1px solid rgba(18,49,48,.13); border-radius:14px; padding:.65rem .75rem; background:#f7faf8; color:var(--pine); text-align:left; }
.mobile-place-periods b { font-size:.78rem; }
.mobile-place-periods span { color:var(--muted); font-size:.62rem; }
.mobile-place-days button.is-selected,.mobile-place-periods button.is-selected { border-color:var(--pine); background:#dff3f1; box-shadow:inset 0 0 0 1px var(--pine); }
.mobile-place-summary { min-height:1.25rem; color:var(--pine); font-weight:800; }
.mobile-place-sheet footer { display:flex; align-items:center; justify-content:flex-end; gap:.8rem; border-top:1px solid rgba(18,49,48,.1); padding-top:.9rem; }
.mobile-place-sheet footer .button { min-height:48px; padding:.75rem 1rem; }
.mobile-place-open { overflow:hidden; }

@media (min-width:721px) {
  .mobile-place-shell { place-items:center; padding:2rem; }
  .mobile-place-sheet {
    width:min(560px,calc(100vw - 4rem));
    max-height:min(760px,calc(100vh - 4rem));
    border-radius:24px;
    padding:1.5rem;
    box-shadow:0 28px 80px rgba(9,35,34,.24);
  }
  .mobile-place-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
  .mobile-place-days button { min-width:0; }
}

@keyframes mobile-sheet-in { from { opacity:0; transform:translateY(35px); } to { opacity:1; transform:none; } }
.plan-head-actions { display:flex; flex:none; align-items:center; gap:.65rem; }
.plan-status-choice { margin:0; border:0; padding:0; }
.plan-status-choice legend { margin:0 0 .22rem; color:var(--muted); font-size:.55rem; font-weight:900; letter-spacing:.08em; text-align:right; text-transform:uppercase; }
.plan-status-choice > div { display:grid; grid-template-columns:1fr 1fr; gap:.25rem; padding:.22rem; border-radius:13px; background:#eef3f0; }
.plan-status-choice label { position:relative; display:block; cursor:pointer; }
.plan-status-choice input { position:absolute; opacity:0; pointer-events:none; }
.plan-status-choice span { display:grid; min-height:34px; place-items:center; border:1px solid transparent; border-radius:10px; padding:0 .6rem; color:var(--muted); font-size:.62rem; font-weight:850; white-space:nowrap; transition:background .18s ease,color .18s ease,box-shadow .18s ease; }
.plan-status-choice input:focus-visible + span { outline:3px solid rgba(237,134,111,.32); outline-offset:2px; }
.plan-status-choice input:checked + span { border-color:rgba(18,49,48,.08); background:white; box-shadow:0 5px 12px rgba(18,49,48,.08); color:var(--pine); }
.event-edit-placement { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid rgba(18,49,48,.1); padding-top:1rem; }
.event-edit-placement[hidden] { display:none; }
.event-edit-placement > div { display:grid; gap:.24rem; }
.event-edit-placement strong { color:var(--ink); font-size:1rem; font-weight:760; }
.event-edit-placement small { color:var(--muted); font-size:.7rem; }
.event-edit-placement .event-section-label { margin:0 0 .1rem; }
.event-edit-placement .soft-button { flex:none; border:0; border-radius:999px; padding:.7rem .9rem; background:#e3f3ef; color:var(--pine); font-size:.72rem; font-weight:800; }
.event-section-label { grid-column:1 / -1; margin:0 0 -.1rem; color:#b95643; font-size:.74rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.event-section-label span { margin-left:.4rem; color:var(--muted); font-size:.68rem; font-weight:650; letter-spacing:0; text-transform:none; }
.meal-links { display:grid; gap:.8rem; border:1px solid rgba(223,154,50,.22); border-radius:14px; padding:.9rem; background:#fffaf0; }
.meal-links[hidden] { display:none; }
.meal-links-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.meal-links-heading > div { display:grid; gap:.15rem; }
.meal-links-heading span { color:#b06d20; font-size:.61rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.meal-links-heading strong { color:var(--ink); font-size:.88rem; }
.meal-links-heading small { max-width:280px; color:var(--muted); font-size:.68rem; line-height:1.45; text-align:right; }
.meal-links-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.meal-links-fields label > span { color:var(--muted); font-size:.64rem; font-weight:600; }
.preview-meal-links { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.42rem; }
.preview-meal-links a { display:inline-flex; align-items:center; gap:.25rem; border:1px solid rgba(18,49,48,.11); border-radius:999px; padding:.38rem .55rem; background:rgba(255,255,255,.76); color:var(--pine); font-size:.62rem; font-weight:800; text-decoration:none; }
.preview-meal-links a span { color:#b06d20; font-size:.62rem; }
.event-photo-manager { display:grid; gap:.75rem; border:1px solid rgba(104,185,207,.3); border-radius:16px; padding:1rem; background:#f2fafc; }
.event-photo-manager[hidden] { display:none; }
.event-photo-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.event-photo-heading > div { display:grid; gap:.15rem; }
.event-photo-heading span { color:#3b8295; font-size:.61rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.event-photo-heading strong { color:var(--ink); font-size:.92rem; }
.event-photo-heading small,.event-photo-manager > p,.event-photo-actions > small { color:var(--muted); font-size:.69rem; line-height:1.45; }
.event-photo-manager > p { margin:0; }
.event-photo-actions { display:flex; align-items:center; gap:.75rem; }
.event-photo-picker { flex:none; }
.event-photo-picker input { position:absolute; width:1px!important; height:1px!important; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.event-photo-picker span { display:inline-flex; align-items:center; min-height:38px; border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:.55rem .75rem; background:white; color:var(--pine); font-size:.72rem; font-weight:850; cursor:pointer; }
.event-photo-picker input:focus-visible + span { outline:3px solid rgba(104,185,207,.45); outline-offset:2px; }
.event-photo-picker:has(input:disabled) span { cursor:not-allowed; opacity:.45; }
.event-photo-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; }
.event-photo-list[hidden] { display:none; }
.event-photo-tile { position:relative; min-width:0; overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:12px; background:white; }
.event-photo-tile img { display:block; width:100%; height:92px; object-fit:cover; background:#dbecee; }
.event-photo-tile > span { display:block; padding:.45rem .55rem; color:var(--muted); font-size:.62rem; font-weight:750; }
.event-photo-tile button { position:absolute; top:.35rem; right:.35rem; display:grid; width:25px; height:25px; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.9); color:#a65349; font-size:1rem; box-shadow:0 2px 8px rgba(18,49,48,.12); }
.preview-vibe-gallery { margin:.55rem -.25rem .15rem; outline:none; }
.preview-vibe-stage { position:relative; height:210px; overflow:hidden; border-radius:11px; background:#dbe8e8; }
.preview-vibe-stage > img { display:block; width:100%; height:100%; object-fit:cover; transition:opacity .18s ease; }
.preview-vibe-arrow { position:absolute; z-index:1; top:50%; display:grid; width:34px; height:34px; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.9); color:var(--ink); font-size:1.4rem; box-shadow:0 3px 10px rgba(18,49,48,.16); transform:translateY(-50%); }
.preview-vibe-arrow.is-prev { left:.55rem; }
.preview-vibe-arrow.is-next { right:.55rem; }
.preview-vibe-thumbs { display:flex; gap:.4rem; overflow-x:auto; padding:.48rem .05rem .05rem; scrollbar-width:thin; }
.preview-vibe-thumbs button { flex:0 0 56px; width:56px; height:43px; overflow:hidden; border:2px solid transparent; border-radius:8px; padding:0; background:#dbe8e8; }
.preview-vibe-thumbs button.is-active { border-color:#ed866f; }
.preview-vibe-thumbs img { display:block; width:100%; height:100%; object-fit:cover; }
.preview-vibe-gallery:focus-visible .preview-vibe-stage { outline:3px solid rgba(104,185,207,.45); outline-offset:2px; }
@media (max-width:680px) {
  .meal-links-heading { display:grid; gap:.3rem; }
  .meal-links-heading small { max-width:none; text-align:left; }
  .meal-links-fields { grid-template-columns:1fr; }
  .event-photo-heading { align-items:start; }
  .event-photo-actions { align-items:flex-start; flex-direction:column; }
  .event-photo-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-photo-tile img { height:104px; }
  .preview-vibe-stage { height:230px; }
}
.event-edit-mode { width:min(820px,calc(100% - 2rem)); background:#fffdfa; }
.event-edit-mode .plan-progress,.event-edit-mode [data-plan-step="2"] { display:none!important; }
.event-edit-mode.event-moving [data-plan-step="2"] { display:block!important; }
.event-edit-mode [data-plan-step="1"],.event-edit-mode [data-plan-step="3"] { display:grid; }
.event-edit-mode [data-plan-step="1"],.event-edit-mode .event-edit-placement,.event-edit-mode [data-plan-step="3"] { position:relative; gap:.75rem 1rem; overflow:hidden; border:1px solid rgba(18,49,48,.11); border-radius:16px; padding:1.05rem 1.1rem 1.1rem; background:#f7fbfa; box-shadow:0 6px 16px rgba(18,49,48,.035); }
.event-edit-mode [data-plan-step="1"]::before,.event-edit-mode .event-edit-placement::before,.event-edit-mode [data-plan-step="3"]::before { position:absolute; inset:0 auto 0 0; width:3px; background:#ed866f; content:""; }
.event-edit-mode .event-edit-placement { background:#fffaf1; }
.event-edit-mode .event-edit-placement::before { background:#e8b342; }
.event-edit-mode [data-plan-step="3"] { background:#f3fafb; }
.event-edit-mode [data-plan-step="3"]::before { background:#68b9cf; }
.event-edit-mode .event-edit-placement { border-top:1px solid rgba(18,49,48,.09); }
.event-edit-mode [data-plan-step="3"] { border-top:1px solid rgba(18,49,48,.09); }
.event-edit-mode label { gap:.38rem; color:#365453; font-size:.76rem; font-weight:760; }
.event-edit-mode input,.event-edit-mode select,.event-edit-mode textarea { border-color:rgba(18,49,48,.16); background:#fff; color:var(--ink); font-size:.91rem; font-weight:560; }
.event-edit-mode input::placeholder,.event-edit-mode textarea::placeholder { color:#92a09f; font-weight:450; }
.event-edit-mode .plan-form-head h3 { font-size:1.3rem; font-weight:780; }
.event-edit-mode .plan-form-head .eyebrow { font-size:.62rem; }
.event-edit-mode .plan-form-head span { max-width:490px; font-size:.74rem; }
.event-edit-mode .plan-status-choice legend { font-weight:750; }
.event-edit-mode .plan-status-choice span { font-weight:700; }
.event-edit-mode .plan-wizard-actions { position:sticky; z-index:2; bottom:-1.8rem; margin:0 -1.8rem -1.8rem; border-top:1px solid rgba(18,49,48,.1); padding:1rem 1.8rem 1.3rem; background:rgba(255,253,250,.96); backdrop-filter:blur(10px); }
.event-edit-mode .event-delete { color:#a65349; font-size:.72rem; font-weight:650; }
.event-edit-mode #save-plan { min-width:150px; }
.slot-create-mode .plan-progress,.slot-create-mode [data-plan-step="2"] { display:none!important; }
.slot-create-mode [data-plan-step="1"],.slot-create-mode [data-plan-step="3"] { display:grid; }
.slot-create-mode [data-plan-step="1"],.slot-create-mode [data-plan-step="3"] { border:1px solid rgba(18,49,48,.1); border-radius:16px; padding:1rem; background:#f7fbfa; }
.slot-create-mode [data-plan-step="3"] { background:#f3fafb; }
.plan-form-open .scratchpad-fab { display:none; }
.calendar-add-mode .plan-progress { display:none!important; }
.hit-place-mode .plan-progress { display:none!important; }
.meal-create-mode .plan-type-choice,
.meal-create-mode .plan-suggestion-library,
.meal-create-mode .plan-runs-through-field,
.meal-create-mode .placement-category { display:none!important; }
.plan-create-mode .plan-type-choice label:has(input[value="meal"]),
.plan-create-mode .plan-type-choice label:has(input[value="stay"]),
.plan-create-mode .plan-suggestion-library button[data-plan-category="meal"],
.plan-create-mode .placement-category button[data-placement-category="meal"] { display:none!important; }
.plan-create-mode [data-plan-step="1"],
.plan-create-mode [data-plan-step="3"] { border:1px solid rgba(18,49,48,.1); border-radius:16px; padding:1rem; background:#f7fbfa; }
.plan-create-mode [data-plan-step="3"] { background:#f3fafb; }
.meal-create-mode [data-plan-step="1"],
.meal-create-mode [data-plan-step="3"] { border:1px solid rgba(18,49,48,.1); border-radius:16px; padding:1rem; background:#f7fbfa; }
.meal-create-mode [data-plan-step="3"] { background:#f3fafb; }
.meal-create-mode [data-plan-step="1"] .plan-title-field { grid-column:1 / -1; }
.calendar-add-mode .plan-detail-questions { grid-template-columns:1fr; gap:.85rem; }
.calendar-add-mode .plan-runs-through-field { display:none; }
.plan-question { position:relative; min-width:0; overflow:hidden; border:1px solid rgba(18,49,48,.1); border-radius:18px; padding:1rem 1.05rem; background:#f8fbfa; }
.plan-question-main { align-content:start; }
.plan-question-heading { display:grid; grid-column:1 / -1; gap:.22rem; margin-bottom:.35rem; }
.plan-question-heading .event-section-label { margin:0; }
.plan-question-heading h4 { margin:0; color:var(--ink); font-size:1.13rem; letter-spacing:-.035em; line-height:1.08; }
.plan-question-heading > span { max-width:620px; color:var(--muted); font-size:.72rem; font-weight:560; line-height:1.45; }
.plan-question label { color:#365453; font-size:.72rem; font-weight:760; }
.plan-question input,.plan-question select,.plan-question textarea { font-weight:540; }
.plan-detail-questions { display:grid; gap:.85rem; }
.plan-detail-questions > .plan-question,.plan-detail-questions > .meal-links { grid-column:1 / -1; }
.plan-location-question { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; background:#f3fafb; }
.plan-time-question { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.65fr); gap:.8rem 1rem; background:#fffaf1; }
.plan-time-question .plan-question-heading { grid-column:1 / -1; }
.plan-time-range { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.plan-time-range label { display:grid; gap:.4rem; }
.plan-note-question { display:grid; gap:.65rem; background:#fffdfa; }
.plan-note-question label { display:grid; gap:.4rem; }
.meal-create-mode .plan-question-main { background:#fffaf1; }
.meal-create-mode .plan-location-question { background:#f3fafb; }
.meal-create-mode .meal-links { border-radius:18px; padding:1rem 1.05rem; }
.meal-create-mode .event-photo-manager,.plan-create-mode .event-photo-manager { border-radius:18px; }

/* Keep meal setup visually light: one editor surface, not cards inside cards. */
.meal-create-mode [data-plan-step="1"],
.meal-create-mode [data-plan-step="3"] {
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
}
.meal-create-mode [data-plan-step="1"] {
  padding:0 0 1.25rem;
  border-bottom:1px solid rgba(18,49,48,.11);
}
.meal-create-mode [data-plan-step="1"] .plan-question-heading { display:none; }
.meal-create-mode [data-plan-step="1"] .plan-title-field {
  display:grid;
  gap:.45rem;
  padding:0;
}
.meal-create-mode [data-plan-step="3"] {
  gap:0;
}
.meal-create-mode [data-plan-step="3"] > .plan-question,
.meal-create-mode [data-plan-step="3"] > .meal-links,
.meal-create-mode [data-plan-step="3"] > .event-photo-manager {
  border:0;
  border-top:1px solid rgba(18,49,48,.11);
  border-radius:0;
  padding:1.2rem 0;
  background:transparent;
}
.meal-create-mode [data-plan-step="3"] > .plan-question:first-child {
  border-top:0;
}
.meal-create-mode .plan-question-heading {
  margin-bottom:.5rem;
}
.meal-create-mode .plan-question-heading h4 {
  font-size:1.02rem;
}
.meal-create-mode .plan-question-heading > span {
  max-width:720px;
}
.meal-create-mode .meal-links-heading,
.meal-create-mode .event-photo-heading {
  align-items:start;
}
.meal-create-mode .meal-links-heading strong,
.meal-create-mode .event-photo-heading strong {
  font-size:.98rem;
}
.meal-create-mode .meal-links-heading small,
.meal-create-mode .event-photo-heading small {
  max-width:360px;
}
.meal-create-mode .plan-note-question {
  padding-bottom:.25rem;
}
.calendar-add-mode .plan-progress { display:none!important; }
.calendar-add-mode .plan-form-head { margin-bottom:.85rem; }
.calendar-add-mode .plan-suggestion-library { margin-top:.15rem; padding-top:.55rem; border-top:1px solid rgba(18,49,48,.08); }
.calendar-add-mode .plan-suggestion-library > span { color:#8d7770; }
.calendar-add-mode .plan-suggestion-library button { padding:.3rem .5rem; font-size:.58rem; }
.calendar-add-mode .plan-wizard-actions { margin-top:.2rem; }
.meal-create-mode .event-photo-tile.is-pending { border-color:rgba(104,185,207,.5); }
.meal-create-mode .event-photo-tile.is-pending > span { color:#3b8295; }
.event-edit-mode .plan-suggestion-library,.hit-place-mode .plan-suggestion-library { display:none!important; }
.plan-suggestion-library { display:grid; grid-column:1 / -1; gap:.4rem; margin:-.05rem 0 .15rem; }
.plan-suggestion-library > span { color:#92705f; font-size:.54rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.plan-suggestion-library > div { display:flex; gap:.32rem; overflow-x:auto; padding:.05rem .05rem .15rem; scrollbar-width:none; }
.plan-suggestion-library > div::-webkit-scrollbar { display:none; }
.plan-suggestion-library button { flex:none; border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.36rem .56rem; background:#eef7f4; color:#466663; font-size:.61rem; font-weight:780; transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease; }
.plan-suggestion-library button:nth-child(6),.plan-suggestion-library button:nth-child(7) { background:#fff2ea; }
.plan-suggestion-library button:nth-child(8) { background:#edf4fb; }
.plan-suggestion-library button:nth-child(9) { background:#f7f1e4; }
.plan-suggestion-library button:hover,.plan-suggestion-library button:focus-visible { border-color:rgba(14,85,87,.3); background:white; color:var(--pine); transform:translateY(-1px); }
.plan-destination-picker { display:grid; grid-column:1 / -1; min-width:0; gap:.7rem; border-top:1px solid rgba(18,49,48,.09); padding-top:.9rem; }
.plan-destination-picker[hidden] { display:none; }
.plan-form.has-destination-picks:not(.event-edit-mode):not(.hit-place-mode) .plan-suggestion-library { display:none; }
.plan-destination-picker > header { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.plan-destination-picker > header span { color:var(--clay); font-size:.54rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.plan-destination-picker > header h4 { margin:.2rem 0 0; font-size:.9rem; letter-spacing:-.025em; }
.plan-destination-picker > header > small { color:var(--muted); font-size:.58rem; }
.plan-pick-browser { display:grid; gap:.5rem; }
.plan-pick-types,.plan-pick-categories { display:flex; gap:.25rem; overflow-x:auto; scrollbar-width:none; }
.plan-pick-types::-webkit-scrollbar,.plan-pick-categories::-webkit-scrollbar,.plan-pick-rail::-webkit-scrollbar { display:none; }
.plan-pick-types { border-bottom:1px solid rgba(18,49,48,.1); }
.plan-pick-types button { position:relative; min-height:40px; border:0; padding:.4rem .65rem; background:transparent; color:var(--muted); font-size:.65rem; font-weight:850; }
.plan-pick-types button::after { position:absolute; right:.55rem; bottom:-1px; left:.55rem; height:2px; background:var(--pine); content:""; opacity:0; transform:scaleX(.65); transition:opacity .16s ease,transform .16s ease; }
.plan-pick-types button.is-active { color:var(--pine); }
.plan-pick-types button.is-active::after { opacity:1; transform:scaleX(1); }
.plan-pick-categories button { min-height:36px; flex:none; border:1px solid rgba(18,49,48,.11); border-radius:999px; padding:.35rem .65rem; background:#fff; color:var(--muted); font-size:.58rem; font-weight:800; }
.plan-pick-categories button.is-active { border-color:rgba(14,101,96,.24); background:#eaf5f2; color:var(--pine); }
.plan-pick-rail-wrap { position:relative; min-width:0; }
.plan-pick-rail { display:grid; grid-auto-columns:minmax(220px,42%); grid-auto-flow:column; gap:.65rem; overflow-x:auto; padding:.1rem 2rem .4rem .05rem; scroll-padding-inline:.05rem; scroll-snap-type:x mandatory; scrollbar-width:none; }
.plan-pick-card { position:relative; display:grid; min-width:0; overflow:hidden; grid-template-rows:92px auto; border:1px solid color-mix(in srgb,var(--destination-accent) 20%,white); border-radius:14px; background:linear-gradient(145deg,var(--destination-wash),white 78%); scroll-snap-align:start; }
.plan-pick-card.is-selected { border-color:var(--destination-accent); box-shadow:inset 0 0 0 1px var(--destination-accent); }
.plan-pick-card .destination-card-media { min-height:92px; border-radius:0; }
.plan-pick-card .destination-card-photo { height:92px; }
.plan-pick-card .destination-card-credit { display:none; }
.plan-pick-copy { display:grid; min-width:0; align-content:start; gap:.12rem; padding:.65rem .7rem .4rem; }
.plan-pick-copy small { color:var(--destination-accent); font-size:.49rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.plan-pick-copy strong { overflow:hidden; color:var(--ink); font-size:.72rem; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.plan-pick-copy p { display:-webkit-box; min-height:2.6em; margin:0; overflow:hidden; color:var(--muted); font-size:.57rem; line-height:1.3; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.plan-pick-card footer { display:flex; gap:.35rem; padding:0 .7rem .65rem; }
.plan-pick-card footer button { min-height:36px; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.35rem .6rem; background:white; color:var(--muted); font-size:.56rem; font-weight:850; }
.plan-pick-card footer button:last-child { border-color:transparent; background:var(--destination-accent); color:white; }
.plan-pick-rail-arrow { position:absolute; z-index:2; top:50%; display:grid; width:34px; height:44px; place-items:center; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:0; background:rgba(255,255,255,.94); box-shadow:0 7px 20px rgba(18,49,48,.12); color:var(--pine); font-size:1.25rem; transform:translateY(-50%); }
.plan-pick-rail-arrow.is-previous { left:-.55rem; }
.plan-pick-rail-arrow.is-next { right:-.55rem; }
.plan-pick-rail-arrow:disabled { opacity:.35; }
.plan-pick-empty { margin:0; color:var(--muted); font-size:.65rem; }
.plan-picker-popover { --destination-accent:var(--teal); --destination-wash:#edf7f4; position:fixed; z-index:310; display:grid; max-height:min(520px,calc(100dvh - 32px)); gap:.7rem; overflow-y:auto; border:1px solid color-mix(in srgb,var(--destination-accent) 22%,white); border-radius:16px; padding:1rem; background:linear-gradient(155deg,var(--destination-wash),#fffefa 78%); box-shadow:0 20px 54px rgba(18,49,48,.22); opacity:0; transform:translateY(7px) scale(.985); transition:opacity .16s ease,transform .2s cubic-bezier(.2,.8,.2,1); }
.plan-picker-popover.is-open { opacity:1; transform:none; }
.plan-picker-popover:not(.is-below) { transform-origin:bottom center; }
.plan-picker-popover.is-below { transform-origin:top center; }
.plan-picker-popover > header { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.plan-picker-popover > header span { color:var(--destination-accent); font-size:.55rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.plan-picker-popover h5 { margin:.2rem 0 0; color:var(--ink); font-size:1rem; letter-spacing:-.025em; }
.plan-picker-popover > header button { width:36px; height:36px; flex:none; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:#fff; color:var(--pine); font-size:1rem; }
.plan-picker-popover > p { margin:0; color:var(--muted); font-size:.68rem; line-height:1.5; }
.plan-picker-popover-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.plan-picker-popover-facts > div { display:grid; gap:.18rem; border-top:1px solid rgba(18,49,48,.1); padding-top:.55rem; }
.plan-picker-popover-facts span { color:var(--muted); font-size:.48rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.plan-picker-popover-facts strong { color:var(--ink); font-size:.65rem; line-height:1.3; }
.plan-picker-popover > nav { display:flex; flex-wrap:wrap; gap:.35rem .6rem; }
.plan-picker-popover > nav a { color:var(--pine); font-size:.54rem; font-weight:850; text-decoration:none; }
.plan-picker-popover > footer { display:flex; justify-content:flex-end; gap:.45rem; border-top:1px solid rgba(18,49,48,.1); padding-top:.7rem; }
.plan-picker-popover > footer button { min-height:40px; border:1px solid rgba(18,49,48,.12); border-radius:999px; padding:.45rem .8rem; background:#fff; color:var(--pine); font-size:.6rem; font-weight:850; }
.plan-picker-popover > footer button:last-child { border-color:transparent; background:var(--destination-accent); color:#fff; }

@media (max-width:680px) {
  .calendar-heading { display:grid; }
  .calendar-add-actions { width:100%; justify-content:flex-start; margin-top:.65rem; }
  .calendar-add-actions button { flex:1; }
  .desktop-place-help { display:none; }
  .mobile-place-help { display:inline; }
  .calendar-help-row { display:grid; gap:.15rem; }
  .calendar-help-row > span { justify-self:start; }
  .desktop-drag-help { display:none; }
  .touch-drag-help { display:inline; }
  .calendar-event { cursor:pointer; }
  .event-edit-placement { grid-template-columns:1fr; }
  .event-edit-mode { inset:0; width:100dvw; max-width:100dvw; height:100dvh; max-height:100dvh; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; border:0; border-radius:0; padding:0 1.1rem calc(1rem + env(safe-area-inset-bottom)); touch-action:pan-y; }
  .event-edit-mode .plan-form-head { top:0; margin:0 -1.1rem 1rem; padding:calc(.85rem + env(safe-area-inset-top)) 1.1rem .85rem; box-shadow:0 6px 18px rgba(18,49,48,.07); }
  .event-edit-mode .plan-close { top:calc(.8rem + env(safe-area-inset-top)); right:1rem; }
  .event-edit-mode > * { min-width:0; max-width:100%; }
  .event-edit-mode input,.event-edit-mode textarea,.event-edit-mode select { max-width:100%; }
  .event-edit-mode [data-plan-step="1"],.event-edit-mode .event-edit-placement,.event-edit-mode [data-plan-step="3"] { padding:.9rem; }
  .plan-form-head { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .plan-head-actions { grid-column:1 / -1; justify-content:space-between; }
  .plan-status-choice { order:2; margin-left:auto; }
  .plan-close { position:absolute; top:1.05rem; right:1.15rem; }
  .plan-form-head > div:first-child { padding-right:3.1rem; }
  .event-edit-mode .plan-wizard-actions { bottom:calc(-1rem - env(safe-area-inset-bottom)); margin:0 -1.1rem calc(-1rem - env(safe-area-inset-bottom)); padding:1rem 1.1rem calc(1rem + env(safe-area-inset-bottom)); }
  .event-edit-mode .event-delete { justify-self:start; }
  .plan-location-question,.plan-time-question { grid-template-columns:minmax(0,1fr); }
  .plan-time-range { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .plan-question { padding:.9rem; }
  .plan-question-heading h4 { font-size:1.05rem; }
}

@media (prefers-reduced-motion:reduce) {
  .calendar-event,.plan-status-choice span { transition:none; }
  .mobile-place-sheet { animation:none; }
}

/* Always-open stay workspace with local saves */
#stay-form .guided-actions { display:none; }
.stay-flow-shell.is-always-open { grid-template-columns:1fr; grid-template-areas:"flow"; width:100%; margin-top:1rem; }
.stay-flow-shell.is-always-open .guided-flow { width:100%; max-width:none; margin:0; border-color:rgba(58,156,158,.18); padding:clamp(1.25rem,3.5vw,2.35rem); background:linear-gradient(145deg,#dff3f4,#f7fbfa); }
.stay-flow-shell.is-always-open .guided-step { position:relative; min-height:0; border:1px solid rgba(18,49,48,.1); border-radius:19px; padding:clamp(1.25rem,3vw,1.8rem); background:#fffefa; box-shadow:0 8px 24px rgba(18,49,48,.045); animation:stay-section-in .32s ease both; }
.stay-flow-shell.is-always-open .guided-step + .guided-step { margin-top:1.25rem; }
.stay-flow-shell.is-always-open .guided-step h3 { font-size:clamp(1.4rem,2.7vw,2rem); }
.stay-flow-shell.is-always-open .guided-step > label,.stay-flow-shell.is-always-open .guided-step > .guided-grid,.stay-flow-shell.is-always-open .guided-step > fieldset,.stay-flow-shell.is-always-open .guided-address-grid,.stay-flow-shell.is-always-open .stay-datetime-grid { width:100%; max-width:none; }
#stay-form input,#stay-form select,#stay-form textarea { font-weight:500; }
#stay-form .choice-cards label { font-weight:750; }
.stay-flow-shell.is-always-open .guided-step.is-readonly { min-height:0; padding:1.05rem 1.15rem; }
.stay-flow-shell.is-always-open .guided-step.is-readonly > :not(.step-kicker):not(.stay-section-summary) { display:none!important; }
.stay-flow-shell.is-always-open .guided-step.is-readonly > .step-kicker { display:none; }
.stay-section-summary { display:grid; gap:.9rem; }
.stay-section-summary-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.stay-section-summary-head h3 { margin:0!important; color:var(--ink); font-size:clamp(1.08rem,2vw,1.35rem)!important; letter-spacing:-.025em!important; }
.stay-section-summary-head button { flex:none; border:0; border-radius:999px; padding:.48rem .72rem; background:#e5f3ef; color:var(--pine); font-size:.68rem; font-weight:850; }
.stay-section-summary-head button:hover,.stay-section-summary-head button:focus-visible { background:#d7eee7; transform:translateY(-1px); }
.stay-section-summary-body { display:grid; gap:.22rem; border-top:1px solid rgba(18,49,48,.08); padding-top:.75rem; }
.stay-section-summary-body > strong { color:var(--ink); font-size:.88rem; font-weight:680; line-height:1.4; }
.stay-section-summary-body > small { max-width:720px; color:var(--muted); font-size:.7rem; line-height:1.5; }
.stay-summary-facts { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.stay-summary-facts > span { display:grid; gap:.18rem; min-width:0; border-radius:13px; padding:.72rem .8rem; background:#f3f8f6; }
.stay-summary-facts small { color:var(--muted); font-size:.6rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.stay-summary-facts strong { overflow-wrap:anywhere; color:var(--ink); font-size:.79rem; font-weight:620; line-height:1.35; }
.stay-flow-shell.is-always-open .guided-step.is-editing-section { background:#fffefa; box-shadow:0 12px 28px rgba(18,49,48,.07); }
.stay-flow-shell.is-always-open .guided-step.is-editing-section .stay-section-summary { display:none; }
.stay-flow-shell.is-always-open .guided-step.is-editing-section > :not(.stay-section-summary):not(.stay-section-close) { animation:stay-edit-fields-in .28s cubic-bezier(.22,.8,.25,1) both; }
.stay-section-close { position:absolute; z-index:2; top:.8rem; right:.8rem; display:flex; min-height:34px; align-items:center; justify-content:center; gap:.25rem; border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:.35rem .6rem; background:white; box-shadow:0 6px 16px rgba(18,49,48,.07); color:var(--muted); font-size:.65rem; font-weight:850; line-height:1; transition:background .18s ease,transform .18s ease; animation:stay-close-in .22s ease both; }
.stay-section-close span { color:var(--ink); font-size:1rem; font-weight:500; }
.stay-section-close:hover,.stay-section-close:focus-visible { background:#edf6f4; transform:scale(1.04); }
.section-save { display:flex; min-height:38px; align-items:center; justify-content:center; gap:.35rem; justify-self:end; margin-top:.55rem; border:0; border-radius:8px; padding:.35rem .1rem .25rem .55rem; background:transparent; color:var(--pine); font-size:.72rem; font-weight:850; transition:color .2s ease,transform .2s ease; }
.section-save span { width:0; overflow:hidden; color:#2f8c69; font-size:.82rem; opacity:0; transform:scale(.45); transition:width .2s ease,opacity .2s ease,transform .25s cubic-bezier(.2,.9,.3,1.4); }
.section-save:hover,.section-save:focus-visible { color:#2f8c69; transform:translateY(-1px); }
.section-save.is-saving { cursor:wait; opacity:.65; }
.section-save.is-saved { color:#2f8c69; }
.section-save.is-saved span { width:1em; opacity:1; transform:scale(1); animation:save-check-pop .35s cubic-bezier(.2,.9,.3,1.4) both; }
.stay-summary-card { border-color:rgba(66,153,111,.25); border-left-color:#42996f; background:linear-gradient(100deg,#f7fffb,#e5f6ed); animation:stay-saved-in .48s cubic-bezier(.22,1,.36,1) both; }
.stay-summary-card > div > span { color:#2f855f; }
.stay-summary-card .summary-remove { flex:none; border:0; padding:.5rem .35rem; background:transparent; color:#9a5045; font-size:.67rem; font-weight:800; }
.all-day-calendar-slot { min-height:0; border-top-color:rgba(223,154,50,.22); background:#fff8e8!important; }
.all-day-calendar-slot .slot-label { color:#9f6020; }
.hit-item.needs-placement { border-style:dashed; background:#fff8e8; }
.editor-workspace { display:grid; grid-template-columns:minmax(0,1fr) 280px; align-items:start; gap:1rem; }
.editor-workspace .editor-panels { min-width:0; }
.editor-workspace .notes-box { position:sticky; top:1rem; display:grid; grid-template-columns:1fr; gap:1rem; width:100%; max-width:none; margin-top:1.6rem; border:1px solid rgba(18,49,48,.1); background:linear-gradient(150deg,#dff3f4,#f5fbfa); box-shadow:0 14px 34px rgba(18,49,48,.07); }
.editor-workspace .notes-box textarea { min-height:220px; font-size:16px; }
.editor-workspace .notes-box .editor-form-actions { display:grid; gap:.45rem; }
.editor-workspace .notes-box .button { width:100%; min-height:43px; font-size:.75rem; }
.notes-save { transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease; }
.notes-save span { display:inline-grid; width:1.15rem; height:1.15rem; margin-right:.25rem; place-items:center; border-radius:50%; background:rgba(255,255,255,.2); animation:save-check-pop .35s cubic-bezier(.2,.9,.3,1.4) both; }
.notes-save.is-saved { background:#3e9368; box-shadow:0 8px 20px rgba(62,147,104,.2); transform:translateY(-1px); }
.scratchpad-close,.scratchpad-fab { display:none; }
.drag-grip { display:none; }
.calendar-all-day-drop { display:none; }

@media (pointer:fine) {
  .hit-item[draggable="true"] { cursor:grab; transition:opacity .22s ease,transform .26s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease; }
  .hit-item[draggable="true"]:active { cursor:grabbing; }
  .hit-item .drag-grip { display:grid; flex:none; width:28px; height:34px; place-items:center; margin-left:-.45rem; border-radius:9px; color:#6f8a88; font-size:1rem; transition:background .18s ease,color .18s ease; }
  .hit-item[draggable="true"]:hover .drag-grip { background:#edf6f5; color:var(--pine); }
  .hit-item.is-drag-source { opacity:.28; box-shadow:none; transform:translateY(4px) scale(.975); }
  .calendar-slot[data-drop-date] { transition:background .22s ease,box-shadow .22s ease,transform .26s cubic-bezier(.2,.8,.2,1); }
  .is-dragging-plan .calendar-slot[data-drop-date] { background:#f5fbf9; box-shadow:inset 0 0 0 1px rgba(14,85,87,.14); }
  .is-dragging-plan .calendar-slot[data-drop-date] .slot-open { border-color:rgba(14,85,87,.32); }
  .is-dragging-plan .calendar-all-day-drop,.calendar-all-day-drop.is-saving-drop { display:grid; min-height:48px; place-items:center; border-top:1px solid rgba(18,49,48,.1); background:#edf6fb; color:#4d7892; font-size:.68rem; font-weight:850; transition:background .22s ease,box-shadow .22s ease,transform .26s cubic-bezier(.2,.8,.2,1); }
  .calendar-slot.is-drop-target,.calendar-all-day-drop.is-drop-target { position:relative; z-index:2; background:#dff4ec!important; box-shadow:inset 0 0 0 3px var(--pine),0 14px 30px rgba(14,85,87,.16)!important; transform:translateY(-3px) scale(1.008); }
  .calendar-all-day-drop.is-drop-target { color:var(--pine); }
}
.drag-preview { position:fixed; z-index:9999; top:-500px; left:-500px; display:grid; min-width:220px; gap:.18rem; overflow:hidden; border:1px solid color-mix(in srgb,var(--item-color) 55%,white); border-radius:14px; padding:.72rem .85rem .72rem 1rem; background:#fffefa; box-shadow:0 18px 45px rgba(18,49,48,.2); color:var(--ink); opacity:.92; transform:rotate(-1.5deg) scale(.98); }
.drag-preview::before { position:absolute; inset:0 auto 0 0; width:5px; background:var(--item-color); content:""; }
.drag-preview span { color:var(--muted); font-size:.58rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.drag-preview strong { font-size:.84rem; }
.drop-pending { animation:drop-pending-in .38s cubic-bezier(.2,.8,.2,1) both,pending-breathe 1s .38s ease-in-out infinite alternate; pointer-events:none; }
.drop-pending small { color:var(--pine); }
.calendar-all-day-drop .drop-pending { width:calc(100% - 1rem); text-align:left; }
.calendar-all-day-drop.is-saving-drop { font-size:0; }
.calendar-all-day-drop.is-saving-drop .drop-pending strong { font-size:.84rem; }
.calendar-all-day-drop.is-saving-drop .drop-pending small { font-size:.65rem; }
@keyframes drop-pending-in { from { opacity:0; transform:translateY(-12px) scale(.94); } to { opacity:.72; transform:none; } }
@keyframes pending-breathe { to { opacity:.45; } }

/* Draft cards read as approachable trip summaries instead of segmented rows. */
.trip-card { grid-template-columns:minmax(0,1fr) auto; gap:1rem; padding:1.1rem!important; border-radius:25px; background:linear-gradient(125deg,#fffefa 0 58%,#f2faf8 100%); }
.trip-card-main { grid-template-columns:minmax(0,1fr) minmax(235px,340px); gap:1rem 1.5rem; padding:.25rem .35rem; }
.trip-card-copy { grid-row:1 / span 2; align-self:center; }
.trip-card-copy h3 { margin:.4rem 0 .35rem; font-size:clamp(1.55rem,2.5vw,2.15rem); }
.trip-progress { align-self:end; max-width:none; padding:.8rem .9rem; border:1px solid rgba(18,49,48,.08); border-radius:14px; background:rgba(255,255,255,.66); }
.trip-progress > span { font-size:.72rem; letter-spacing:.01em; }
.section-chips { grid-column:2; align-self:start; }
.section-chips button { min-height:34px; padding:.38rem .65rem; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.section-chips button:hover { transform:translateY(-1px); }
.trip-open { display:inline-flex; min-width:0; min-height:50px; align-items:center; align-self:center; gap:.65rem; border:0; border-radius:999px; padding:.55rem .65rem .55rem 1rem; background:var(--pine); box-shadow:0 12px 24px rgba(14,85,87,.18); color:white; text-align:center; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.trip-open:hover,.trip-open:focus-visible { transform:translateY(-2px); background:#0a4648; box-shadow:0 16px 30px rgba(14,85,87,.24); }
.trip-open span { font-size:.76rem; white-space:nowrap; }
.trip-open b { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; background:rgba(255,255,255,.14); color:white; font-size:1rem; }

@media (min-width:1101px) {
  .editor { width:min(1480px,calc(100% - 2.5rem)); }
  .editor-topbar,.editor-head,.editor-nav { width:calc(100% - 296px); }
}

@media (max-width:1100px) {
  .editor-workspace { display:block; }
  .editor-workspace .notes-box { position:fixed; z-index:140; right:1rem; bottom:5.35rem; display:grid; width:min(360px,calc(100% - 2rem)); max-height:min(68vh,580px); margin:0; overflow:auto; padding:1.15rem; visibility:hidden; opacity:0; transform:translateY(14px) scale(.97); transform-origin:bottom right; transition:opacity .22s ease,transform .25s cubic-bezier(.2,.8,.2,1),visibility .22s; }
  .editor-workspace .notes-box.is-open { visibility:visible; opacity:1; transform:none; }
  .editor-workspace .notes-box textarea { min-height:160px; }
  .scratchpad-close { position:absolute; top:.65rem; right:.7rem; display:grid; width:34px; height:34px; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.76); color:var(--ink); font-size:1.25rem; }
  .scratchpad-fab { position:fixed; z-index:139; right:max(1rem,env(safe-area-inset-right)); bottom:max(1rem,env(safe-area-inset-bottom)); display:flex; min-height:48px; align-items:center; gap:.45rem; border:0; border-radius:999px; padding:.65rem .9rem; background:var(--pine); box-shadow:0 14px 30px rgba(14,85,87,.25); color:white; }
  .scratchpad-fab span { display:grid; width:25px; height:25px; place-items:center; border-radius:8px; background:rgba(255,255,255,.14); }
  .scratchpad-fab b { font-size:.72rem; }
  .scratchpad-fab[aria-expanded="true"] { background:#337b76; }
}

@media (max-width:680px) {
  .trip-card { grid-template-columns:1fr; gap:.85rem; padding:.85rem!important; }
  .trip-card-main { grid-template-columns:1fr; gap:.9rem; padding:.35rem; }
  .trip-card-copy { grid-row:auto; }
  .trip-progress,.section-chips { grid-column:auto; }
  .trip-progress { order:2; }
  .section-chips { order:3; flex-wrap:wrap; overflow:visible; }
  .trip-open { width:100%; justify-content:center; border:0; border-radius:999px; }
}
@keyframes stay-section-in { from { opacity:0; transform:translateY(6px); } }
@keyframes stay-edit-fields-in { from { opacity:0; transform:translateY(8px); } }
@keyframes stay-close-in { from { opacity:0; transform:scale(.82); } }
@keyframes person-card-arrive { 0% { opacity:0; transform:translateY(-12px) scale(.975); border-color:rgba(51,139,112,.38); background:#f0faf6; box-shadow:0 0 0 0 rgba(61,154,119,0); } 18% { opacity:1; transform:translateY(2px) scale(1.008); border-color:rgba(51,139,112,.38); background:#f0faf6; box-shadow:0 0 0 7px rgba(61,154,119,.11); } 78% { border-color:rgba(51,139,112,.38); background:#f0faf6; } 100% { opacity:1; transform:none; border-color:rgba(18,49,48,.12); background:#fffefa; box-shadow:0 7px 18px rgba(18,49,48,.035); } }
@keyframes new-person-badge { 0%,10% { opacity:0; transform:translateY(5px) scale(.9); } 18%,76% { opacity:1; transform:none; } 100% { opacity:0; transform:translateY(-4px) scale(.96); } }
@keyframes people-step-in { from { opacity:0; transform:translateX(10px); } to { opacity:1; transform:none; } }
@keyframes stay-saved-in { from { opacity:0; transform:translateY(14px) scale(.985); } 60% { box-shadow:0 0 0 8px rgba(66,153,111,.1); } to { box-shadow:0 0 0 0 transparent; transform:none; } }
@keyframes save-check-pop { from { opacity:0; transform:scale(.4) rotate(-18deg); } }

@media (max-width:720px) {
  .stay-flow-shell.is-always-open .guided-flow { padding:1rem; }
  .stay-flow-shell.is-always-open .guided-step.is-readonly { padding:1rem; }
  .stay-summary-facts { grid-template-columns:1fr; gap:.55rem; }
  .stay-datetime-card { grid-template-columns:1fr; }
  .stay-datetime-card input,.stay-datetime-card select { width:100%; max-width:100%; }
  .stay-section-close { top:.65rem; right:.65rem; }
  .stay-section-summary-head h3 { font-size:1.08rem!important; }
  .stay-section-summary-body > strong { font-size:.84rem; }
  .section-save { width:auto; justify-self:end; }
  .link-type-choice .choice-cards { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .stay-flow-shell.is-always-open .guided-step,.stay-flow-shell.is-always-open .guided-step.is-editing-section > :not(.stay-section-summary):not(.stay-section-close),.stay-section-close,.stay-summary-card,.section-save.is-saved span,.drop-pending,.person-card.is-new-person,.people-form-step { animation:none; }
  .new-person-badge { display:none; }
  .section-save,.editor-workspace .notes-box { transition:none; }
}

/* Cohesive organizer workspace */
.compact-editor-bar { display:none; }
.nav-short { display:none; }
.editor-panels { view-transition-name:organizer-panel; }
::view-transition-old(organizer-panel) { animation:.16s ease both panel-crossfade-out; }
::view-transition-new(organizer-panel) { animation:.24s ease both panel-crossfade-in; }
@keyframes panel-crossfade-out { to { opacity:0; transform:translateY(-4px); } }
@keyframes panel-crossfade-in { from { opacity:0; transform:translateY(7px); } }

.overview-attention { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr); gap:1rem; margin-bottom:1rem; border:1px solid rgba(223,154,50,.22); border-radius:22px; padding:1.2rem; background:linear-gradient(125deg,#fff8e8,#fffefa); }
.overview-attention > div { display:grid; align-content:center; gap:.35rem; padding:.35rem; }
.overview-attention > div > span { color:#b8664f; font-size:.67rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.overview-attention > div > strong { font-size:1.25rem; letter-spacing:-.03em; }
.overview-attention > div > small { color:var(--muted); line-height:1.45; }
.overview-attention > button { display:grid; grid-template-columns:28px minmax(0,1fr); gap:.18rem .65rem; border:1px solid rgba(18,49,48,.1); border-radius:15px; padding:.8rem; background:rgba(255,255,255,.75); color:var(--ink); text-align:left; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.overview-attention > button:hover { border-color:rgba(14,85,87,.3); box-shadow:0 8px 20px rgba(18,49,48,.07); transform:translateY(-2px); }
.overview-attention > button > span { grid-row:1 / 3; display:grid; width:26px; height:26px; place-items:center; border-radius:50%; background:var(--pine); color:white; }
.overview-attention > button b { font-size:.85rem; }
.overview-attention > button small { color:var(--muted); font-size:.72rem; line-height:1.4; }
.overview-attention.is-clear { grid-template-columns:1fr; border-color:rgba(66,153,111,.22); background:linear-gradient(120deg,#eaf8f0,#fffefa); }

.saved-item { position:relative; }
.saved-item-edit { display:flex; min-width:0; flex:1; align-items:center; justify-content:space-between; gap:1rem; border:0; padding:0; background:transparent; color:inherit; text-align:left; }
.saved-item-edit > div { min-width:0; }
.saved-item-edit > b { flex:none; color:var(--pine); font-size:.7rem; }
.saved-item-edit:hover > b { text-decoration:underline; }
.summary-actions { display:flex!important; align-items:center; gap:.25rem; }
.summary-actions button { border:0; padding:.45rem; background:transparent; font-size:.68rem; font-weight:850; }
.summary-edit { color:var(--pine); }
.summary-remove { color:#9a5045; }

.trip-cost-card small span { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-top:.45rem; padding-top:.45rem; border-top:1px solid rgba(18,49,48,.1); }
.trip-cost-card small span b { color:var(--muted); font-size:.61rem; letter-spacing:.06em; text-transform:uppercase; }
.payment-suggestions { width:min(100%,760px); border-top:1px solid rgba(18,49,48,.08); border-bottom:1px solid rgba(18,49,48,.08); background:transparent; }
.payment-suggestions summary { display:flex; align-items:baseline; gap:.45rem; cursor:pointer; list-style:none; padding:.48rem .05rem; color:var(--pine); }
.payment-suggestions summary b { font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; }
.payment-suggestions summary small { color:var(--muted); font-size:.57rem; font-weight:600; }
.payment-suggestions summary::-webkit-details-marker { display:none; }
.payment-suggestions summary::after { margin-left:auto; color:#78908c; content:"＋"; font-size:.68rem; }
.payment-suggestions[open] summary::after { content:"−"; }
.payment-suggestions .payment-suggestion-library { padding:0 .05rem .55rem; animation:panel-in .18s ease both; }
.calendar-payment-suggestions {
  display:grid;
  width:min(100%,760px);
  gap:.45rem;
  border:1px solid rgba(18,49,48,.09);
  border-radius:15px;
  padding:.7rem .75rem;
  background:linear-gradient(115deg,rgba(230,246,242,.72),rgba(250,248,240,.72));
}
.calendar-payment-suggestions[hidden] { display:none; }
.calendar-payment-suggestions > span {
  color:#53716e;
  font-size:.55rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.calendar-payment-suggestions > div { display:flex; flex-wrap:wrap; gap:.35rem; }
.calendar-payment-suggestions button {
  display:inline-flex;
  min-width:0;
  align-items:center;
  gap:.42rem;
  border:1px solid rgba(18,49,48,.11);
  border-radius:999px;
  padding:.4rem .58rem;
  background:rgba(255,255,255,.76);
  color:var(--pine);
  transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;
}
.calendar-payment-suggestions button:hover,
.calendar-payment-suggestions button:focus-visible {
  border-color:rgba(14,85,87,.3);
  background:white;
  box-shadow:0 5px 14px rgba(18,49,48,.07);
  transform:translateY(-1px);
}
.calendar-payment-suggestions button b { overflow:hidden; font-size:.64rem; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.calendar-payment-suggestions button i { display:inline-flex; align-items:center; gap:.22rem; color:#68807d; font-size:.48rem; font-style:normal; font-weight:750; white-space:nowrap; }
.calendar-payment-suggestions button i::before { width:5px; height:5px; flex:none; border-radius:50%; background:#75b89d; content:""; }
.calendar-payment-suggestions button.needs-review i::before { background:#d4a13c; }
.calendar-payment-suggestions button.needs-review { background:rgba(255,249,235,.82); }
@media (max-width:720px) {
  .calendar-payment-suggestions { padding:.65rem; }
  .calendar-payment-suggestions > div { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.1rem; scrollbar-width:none; }
  .calendar-payment-suggestions > div::-webkit-scrollbar { display:none; }
  .calendar-payment-suggestions button { flex:none; }
}
.calendar-status-legend { display:flex; gap:.55rem; margin:.5rem 0 .8rem; }
.calendar-status-legend span { display:inline-flex; align-items:center; gap:.35rem; border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.35rem .55rem; color:var(--muted); font-size:.63rem; font-weight:800; }
.calendar-status-legend span:first-child i { color:#2f8c69; }
.calendar-status-legend span:last-child i { color:#bf7921; }
.calendar-day-nav { display:none; }

@media (max-width:720px) {
  /* Mobile color zoning: preserve the desktop palette after the columns stack. */
  .editor-panels { margin-top:1rem; }
  .editor-panel { position:relative; overflow:hidden; border-color:rgba(18,49,48,.1); box-shadow:0 14px 32px rgba(18,49,48,.06); }
  .editor-panel[data-editor-panel="overview"] { background:linear-gradient(155deg,#fff4d9 0,#fffaf0 19rem,#fffdfa 36rem); }
  .editor-panel[data-editor-panel="stay"] { background:linear-gradient(155deg,#dff4f7 0,#eef9f8 20rem,#fffdfa 39rem); }
  .editor-panel[data-editor-panel="itinerary"] { background:linear-gradient(155deg,#ffebe4 0,#fff7ef 20rem,#fffdfa 40rem); }
  .editor-panel[data-editor-panel="payments"] { background:linear-gradient(155deg,#fff0bf 0,#fff8e5 19rem,#fffdfa 38rem); }
  .editor-panel[data-editor-panel="links"] { background:linear-gradient(155deg,#e5efff 0,#f2f7ff 19rem,#fffdfa 38rem); }
  .editor-panel > .panel-intro,.editor-panel > .payment-panel-head { position:relative; z-index:1; }
  .editor-panel .panel-number { box-shadow:0 5px 14px rgba(18,49,48,.07); }
  .editor-panel[data-editor-panel="stay"] .panel-number { background:#cfecef; }
  .editor-panel[data-editor-panel="itinerary"] .panel-number { background:#ffd8cd; }
  .editor-panel[data-editor-panel="payments"] .panel-number { background:#ffe3a1; }
  .editor-panel[data-editor-panel="links"] .panel-number { background:#d8e7ff; }
  .editor[data-active-section]:not([data-active-section="overview"]) .editor-head { display:none; }
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar { position:sticky; z-index:35; top:0; display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin:1rem -1rem 0; border-block:1px solid rgba(18,49,48,.1); padding:.75rem 1rem; background:rgba(255,253,248,.94); backdrop-filter:blur(14px); }
  .compact-editor-bar > div { display:grid; min-width:0; gap:.15rem; }
  .compact-editor-bar strong,.compact-editor-bar small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .compact-editor-bar strong { font-size:.83rem; }
  .compact-editor-bar small { color:var(--muted); font-size:.61rem; }
  .compact-editor-bar button { flex:none; border:0; border-radius:999px; padding:.55rem .7rem; background:var(--pine); color:white; font-size:.66rem; font-weight:850; }
  .editor-nav { position:sticky; z-index:34; top:61px; margin-inline:-1rem; padding:.7rem 1rem; background:rgba(255,253,248,.95); box-shadow:0 5px 15px rgba(18,49,48,.04); scroll-padding-inline:1rem; backdrop-filter:blur(14px); }
  .editor[data-active-section="overview"] .editor-nav { top:0; }
  .nav-long { display:none; }
  .nav-short { display:inline; }
  .editor-nav::before,.editor-nav::after { display:none; content:none; }
  .overview-attention { grid-template-columns:1fr; padding:.9rem; }
  .overview-section-grid { grid-template-columns:1fr; }
  .overview-section-toggle { min-height:0; }
  .scratchpad-fab { right:.75rem; bottom:calc(.75rem + env(safe-area-inset-bottom)); width:48px; padding:.55rem; justify-content:center; }
  .scratchpad-fab b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .calendar-day-nav { display:flex; gap:.45rem; margin:.65rem 0; overflow-x:auto; padding:.15rem .05rem .45rem; scrollbar-width:none; }
  .calendar-day-nav button { flex:none; border:1px solid rgba(18,49,48,.14); border-radius:999px; padding:.48rem .7rem; background:white; color:var(--muted); font-size:.68rem; font-weight:850; }
  .calendar-day-nav button.is-active { border-color:var(--pine); background:var(--pine); color:white; }
  .calendar-status-legend { margin-bottom:.25rem; }
  .link-workspace { grid-template-columns:1fr; gap:1rem; }
  .link-workspace-main { display:block; }
  .link-workspace-main [data-guided-flow="links"] { height:auto; }
  .link-library-column { grid-template-rows:auto auto; }
  .link-insight-card { border-radius:20px; padding:1.15rem 1.2rem; }
  .link-library-card { min-height:0; }
  .link-library-card #link-list { max-height:none; overflow:visible; }
  .payment-summary,.saved-item:not(.hit-item) { align-items:stretch; }
  .saved-item-edit { align-items:flex-start; }
  .summary-actions { justify-content:flex-end; }
}

/* Stable section swaps: keep the panel surface painted while its contents settle. */
.editor-panels { view-transition-name:none; }
.editor-panel.is-active { animation:none; }
.editor-panel.is-active.section-settling > * { animation:panel-settle .22s ease both; }
@keyframes panel-settle {
  from { opacity:.94; transform:translateY(4px); }
  to { opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  .editor-panel.is-active.section-settling > * { animation:none; }
}

/* Safe trip-card lifecycle actions */
.trip-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.trip-archive { flex:none; border:0; border-radius:999px; padding:.42rem .58rem; background:#f8eee8; color:#9a5045; font-size:.65rem; font-weight:850; transition:background .18s ease,color .18s ease,transform .18s ease; }
.trip-archive:hover,.trip-archive:focus-visible { background:#f2ddd5; color:#7f3d35; transform:translateY(-1px); }
.trip-archive:disabled { cursor:wait; opacity:.6; transform:none; }
@media (min-width:681px) {
  .trip-card { position:relative; }
  .trip-archive { position:absolute; right:.8rem; bottom:.55rem; z-index:2; border-radius:0; padding:.25rem .3rem; background:transparent; color:rgba(154,80,69,.62); font-size:.57rem; font-weight:750; }
  .trip-archive:hover,.trip-archive:focus-visible { background:transparent; color:#8f493f; transform:none; text-decoration:underline; text-underline-offset:2px; }
}
@media (max-width:680px) {
  .trip-card-heading { gap:.65rem; }
  .trip-archive { margin-top:.05rem; }
}
@media (prefers-reduced-motion:reduce) {
  .trip-archive { transition:none; }
}

/* Guest Preview sits with the organizer context, leaving section navigation
   dedicated to moving between workspace panels. */
.editor-nav-shell { display:flex; align-items:flex-start; gap:.75rem; border-bottom:1px solid rgba(18,49,48,.12); }
.editor-view-actions { display:flex; align-items:center; gap:.55rem; }
.compact-editor-bar { display:none!important; }
.editor-nav-shell .editor-nav { min-width:0; flex:1; order:0; border-bottom:0; }
.nav-preview { display:inline-flex; min-height:42px; flex:none; align-items:center; gap:.4rem; border:1px solid rgba(14,85,87,.2); border-radius:999px; padding:.55rem .75rem; background:#e4f3ef; color:var(--pine); font-size:.72rem; font-weight:900; white-space:nowrap; transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.nav-preview:hover,.nav-preview:focus-visible { border-color:var(--pine); background:#d7ece7; transform:translateY(-1px); }
.nav-preview b { display:grid; width:23px; height:23px; place-items:center; border-radius:50%; background:rgba(14,85,87,.1); font-size:.72rem; }
.nav-preview-short { display:none; }
@media (min-width:1101px) {
  .editor-topbar,.editor-head,.editor-nav-shell { width:calc(100% - 296px); }
  .editor-nav { width:auto!important; }
}
@media (max-width:900px) {
  .editor-nav-shell { position:sticky; z-index:34; top:0; margin-inline:-1rem; padding:.7rem 1rem 0; background:rgba(255,253,248,.96); box-shadow:0 5px 15px rgba(18,49,48,.04); backdrop-filter:blur(14px); }
  .editor-nav-shell .editor-nav { position:static; margin:0; padding:0 0 .7rem; background:transparent; box-shadow:none; backdrop-filter:none; }
}
@media (max-width:720px) {
  .editor-nav-shell { order:2; width:auto; }
  .editor-view-actions { gap:.38rem; }
  .nav-preview { min-height:36px; padding:.4rem .5rem; }
  .nav-preview-long { display:none; }
  .nav-preview-short { display:inline; }
  .nav-preview b { width:20px; height:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .nav-preview { transition:none; }
}

/* Stable mobile section changes: Overview swaps like every other tab. */
@media (max-width:720px) {
  .editor { overflow-anchor:auto; }
  .editor .editor-head { display:grid; margin:1rem 0 0; }
  .editor[data-active-section]:not([data-active-section="overview"]) .editor-head { display:none; }
  .editor .compact-editor-bar,
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar { display:none; }
  .editor-panel.is-active.section-settling { animation:mobile-panel-forward .3s cubic-bezier(.22,1,.36,1) both; }
  .editor[data-transition-direction="backward"] .editor-panel.is-active.section-settling { animation-name:mobile-panel-backward; }
  @keyframes mobile-panel-forward { from { opacity:.35; transform:translateX(14px); } to { opacity:1; transform:none; } }
  @keyframes mobile-panel-backward { from { opacity:.35; transform:translateX(-14px); } to { opacity:1; transform:none; } }
}
@media (prefers-reduced-motion:reduce) {
  .editor .editor-head,.editor .compact-editor-bar { transition:none; }
  .editor-panel.is-active.section-settling { animation:none; }
}
@media (max-width:720px) {
  .payment-edit-open .editor,
  .payment-edit-open .editor-panels,
  .payment-edit-open .editor-panel.is-active,
  .payment-edit-open .editor-panel.is-active.section-settling { animation:none!important; transform:none!important; }
  .payment-edit-open .payment-inline-editor { animation:none!important; opacity:1; }
}

/* Prevent iOS Safari from zooming into authentication fields. */
.sign-in-form input { font-size:16px!important; line-height:1.25; -webkit-text-size-adjust:100%; }

/* Safari-compatible draggable calendar cards. */
.calendar-event[draggable="true"] { -webkit-user-drag:element; user-select:none; -webkit-user-select:none; touch-action:manipulation; }
.calendar-event[aria-grabbed="true"] { cursor:grabbing; }
.calendar-event.is-drag-source { opacity:.3; box-shadow:none; transform:scale(.97); }
.is-dragging-plan,.is-dragging-plan * { cursor:grabbing!important; }
.is-dragging-plan { user-select:none; -webkit-user-select:none; }

/* Section headings are independent destinations, not numbered steps. */
.panel-intro { display:block; grid-template-columns:none; }

/* On mobile, orient with the tabs first, then show the current trip. */
@media (max-width:720px) {
  .editor { display:flex; flex-direction:column; }
  .editor-topbar { order:1; }
  .editor-nav { order:2; top:0!important; margin-top:1rem; }
  .editor-head,.compact-editor-bar { order:3; }
  .editor-workspace { order:4; }
  .editor .editor-head { margin:1rem 0 0; }
  .editor-head > div > .eyebrow,.editor-head > div > p:last-child { display:none; }
  .editor-head h1 { font-size:clamp(2.15rem,11vw,3rem); }
  .editor-head .guest-preview { grid-template-columns:minmax(0,1fr) auto; align-items:center; width:100%; padding:.85rem 1rem; }
  .editor-head .guest-preview span,.editor-head .guest-preview small { display:none; }
  .editor-head .guest-preview strong { font-family:inherit; font-size:.9rem; font-weight:850; }
  .editor-head .guest-preview b { margin:0; }
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar { margin:.75rem 0 0; border:0; border-radius:18px; padding:.8rem .9rem; background:var(--pine); color:white; }
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar small { color:rgba(255,255,255,.7); }
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar button { border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); }
}

/* Quiet archive access below the active trip list. */
.archive-access { display:flex; justify-content:flex-start; margin-top:1rem; border-top:1px solid rgba(18,49,48,.08); padding-top:.65rem; }
.archive-access[hidden],.archive-panel[hidden] { display:none; }
.archive-toggle { display:inline-flex; align-items:center; gap:.45rem; border:0; border-radius:999px; padding:.55rem .75rem; background:transparent; color:var(--muted); font-size:.72rem; font-weight:850; transition:background .18s ease,color .18s ease; }
.archive-toggle:hover,.archive-toggle:focus-visible,.archive-toggle[aria-expanded="true"] { background:#eef4f1; color:var(--pine); }
.archive-toggle small { display:grid; min-width:20px; height:20px; place-items:center; border-radius:999px; background:#e4ece8; font-size:.62rem; }
.archive-toggle b { font-size:.78rem; }
.archive-panel { margin-top:1rem; border:1px solid rgba(18,49,48,.11); border-radius:22px; padding:1.25rem; background:#f4f7f4; animation:archive-in .24s cubic-bezier(.22,1,.36,1) both; }
.archive-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.archive-heading h3 { margin:.2rem 0 .35rem; font-size:1.35rem; letter-spacing:-.04em; }
.archive-heading p:last-child { margin:0; color:var(--muted); font-size:.82rem; }
.archive-close { width:34px; height:34px; flex:none; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:white; color:var(--pine); font-size:1.1rem; }
.archive-list { display:grid; gap:.65rem; }
.archive-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid rgba(18,49,48,.1); border-radius:16px; padding:.9rem 1rem; background:rgba(255,255,255,.78); }
.archive-card > div:first-child { display:grid; min-width:0; gap:.2rem; }
.archive-card span { color:#8a7770; font-size:.6rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.archive-card strong { overflow:hidden; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.archive-card small { overflow:hidden; color:var(--muted); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.archive-actions { display:flex; flex:none; align-items:center; gap:.35rem; }
.archive-actions button { border:0; border-radius:999px; padding:.48rem .65rem; background:#e4f2ee; color:var(--pine); font-size:.68rem; font-weight:850; }
.archive-actions .delete-forever { background:transparent; color:#a55247; }
.archive-actions button:disabled { cursor:wait; opacity:.55; }
@keyframes archive-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
@media (max-width:680px) {
  .archive-panel { padding:1rem; }
  .archive-card { align-items:flex-start; }
  .archive-actions { display:grid; justify-items:end; }
  .archive-actions button { white-space:nowrap; }
}
@media (prefers-reduced-motion:reduce) { .archive-panel { animation:none; } }

/* Mobile keeps preview access in Overview only. */
@media (max-width:720px) {
  .editor .compact-editor-bar,
  .editor[data-active-section]:not([data-active-section="overview"]) .compact-editor-bar { display:none!important; }
  .editor .editor-head { grid-template-columns:1fr; }
  .editor-head > div { grid-row:2; }
  .editor-head .guest-preview { display:inline-flex; grid-row:1; justify-self:end; width:auto; min-height:40px; padding:.55rem .72rem; border-radius:999px; box-shadow:none; }
  .editor-head .guest-preview strong { display:none; }
  .editor-head .guest-preview b { font-size:.68rem; white-space:nowrap; }
}

/* The trip name reads as a heading until the organizer chooses to rename it. */
.editable-trip-name { --trip-title-size:clamp(2.5rem,6vw,5.3rem); display:grid; width:100%; min-width:0; gap:.45rem; }
.editable-trip-name.title-is-long { --trip-title-size:clamp(2.7rem,4.7vw,4.45rem); }
.editable-trip-name.title-is-very-long { --trip-title-size:clamp(2.35rem,3.75vw,3.65rem); }
.editable-trip-name.title-is-extreme { --trip-title-size:clamp(2.05rem,3.1vw,3.1rem); }
.editable-trip-name > span { color:var(--clay); font-size:.66rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.trip-title-display { display:flex; width:100%; min-width:0; align-items:flex-start; gap:.65rem; }
.trip-title-display h1 { min-width:0; overflow-wrap:anywhere; }
.trip-title-edit { display:grid; width:34px; height:34px; flex:none; margin-top:.42rem; place-items:center; border:1px solid rgba(18,49,48,.1); border-radius:50%; background:#e5f4f0; color:var(--pine); font-size:.9rem; transition:transform .18s ease,background .18s ease; }
.trip-title-edit:hover,.trip-title-edit:focus-visible { background:#d6eee8; transform:translateY(-1px); }
.trip-title-editor { display:flex; width:100%; min-width:0; align-items:flex-end; gap:.7rem; }
.trip-title-editor[hidden],.trip-title-display[hidden] { display:none; }
.trip-title-editor #editor-title-input { width:100%; max-width:none; min-width:0; font-family:inherit; font-size:var(--trip-title-size); font-weight:900; letter-spacing:-.075em; line-height:.91; }
.trip-title-save { flex:none; border:0; padding:.55rem .2rem; background:transparent; color:var(--pine); font-size:.76rem; font-weight:900; }
.trip-title-save:disabled { opacity:.5; }
.trip-title-status { min-height:18px; color:#38845f; font-size:.7rem; font-weight:850; opacity:0; transform:translateY(-3px); transition:opacity .18s ease,transform .18s ease; }
.trip-title-status.is-visible { opacity:1; transform:none; }
.trip-title-status i { display:inline-grid; width:17px; height:17px; margin-right:.25rem; place-items:center; border-radius:50%; background:#dff3e6; font-style:normal; }

.overview-panel-intro { max-width:none; grid-template-columns:minmax(0,1fr) auto; align-items:start; }
.overview-preview-button,.overview-inline-preview { border:1px solid rgba(14,85,87,.18); border-radius:999px; padding:.62rem .8rem; background:#e5f4f0; color:var(--pine); font-size:.7rem; font-weight:900; white-space:nowrap; }
.overview-preview-button:hover,.overview-preview-button:focus-visible,.overview-inline-preview:hover,.overview-inline-preview:focus-visible { border-color:var(--pine); background:#d8eee9; }
.overview-summary-actions { display:flex!important; flex:none; align-items:center; gap:.5rem!important; }

@media (max-width:720px) {
  .editable-trip-name { --trip-title-size:clamp(2.15rem,11vw,3rem); }
  .editable-trip-name.title-is-long { --trip-title-size:clamp(2rem,9.5vw,2.7rem); }
  .editable-trip-name.title-is-very-long,.editable-trip-name.title-is-extreme { --trip-title-size:clamp(1.8rem,8.2vw,2.4rem); }
  .trip-title-display h1,.trip-title-editor #editor-title-input { font-size:var(--trip-title-size); }
  .trip-title-display { align-items:flex-start; }
  .trip-title-edit { width:31px; height:31px; margin-top:.12rem; }
  .trip-title-editor { align-items:center; }
  .overview-panel-intro { grid-template-columns:minmax(0,1fr) auto; gap:.8rem; }
  .overview-preview-button { align-self:start; padding:.55rem .65rem; font-size:.64rem; }
  .overview-summary-actions { width:100%; justify-content:flex-start; flex-wrap:wrap; }
}

@media (prefers-reduced-motion:reduce) {
  .trip-title-edit,.trip-title-status { transition:none; }
}

/* People is a quiet foundation: useful now, ready for assignments later. */
.people-panel { background:linear-gradient(145deg,#fffdf8 0%,#f4fbf9 100%); }
.people-panel .panel-intro { grid-template-columns:1fr; max-width:800px; }
.people-subnav { display:flex; width:min(100%,900px); margin:.2rem 0 1.35rem; border-bottom:1px solid rgba(18,49,48,.15); }
.people-subnav button { position:relative; border:0; border-radius:10px 10px 0 0; padding:.78rem 1.15rem .72rem; background:transparent; color:var(--muted); font-size:.7rem; font-weight:850; text-align:center; transition:background-color .2s ease,color .2s ease; }
.people-subnav button + button::before { position:absolute; top:28%; bottom:28%; left:0; width:1px; background:rgba(18,49,48,.11); content:""; }
.people-subnav button::after { position:absolute; right:.85rem; bottom:-2px; left:.85rem; height:3px; border-radius:3px 3px 0 0; background:transparent; content:""; transform:scaleX(.35); transition:background-color .2s ease,transform .24s cubic-bezier(.22,1,.36,1); }
.people-subnav button:hover { color:var(--pine); background:rgba(234,246,242,.48); }
.people-subnav button.is-active { background:linear-gradient(180deg,rgba(230,245,240,.64),rgba(255,253,249,.86)); color:var(--pine); }
.people-subnav button.is-active::after { background:var(--pine); transform:scaleX(1); }
.people-subpanel { width:100%; opacity:0; transform:translateY(7px); }
.people-subpanel[hidden] { display:none; }
.people-subpanel.is-active { opacity:1; transform:none; transition:opacity .24s ease,transform .3s cubic-bezier(.22,1,.36,1); }
.people-tool-focus { width:min(100%,1180px); min-height:440px; padding:clamp(1.1rem,2.2vw,1.65rem); }
.people-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,360px); align-items:start; gap:1.25rem; max-width:1180px; }
.people-entry-column { display:grid; min-width:0; align-content:start; gap:1rem; }
.people-roster-column { display:grid; min-width:0; grid-template-rows:auto minmax(0,1fr); gap:.9rem; }
.people-headcount-card { display:grid; gap:.35rem; border:1px solid rgba(15,93,91,.22); border-radius:24px; padding:1.35rem 1.45rem; background:linear-gradient(145deg,#0e5d5b,#18716c); color:white; box-shadow:0 16px 32px rgba(14,85,87,.16); }
.people-headcount-card span,.people-roster-heading span { font-size:.65rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.people-headcount-card span { color:#c6f0e5; }
.people-headcount-card strong { font-size:clamp(2.15rem,3.5vw,3.15rem); letter-spacing:-.06em; line-height:.95; }
.people-headcount-card small { color:rgba(255,255,255,.74); font-size:.72rem; line-height:1.4; }
.people-roster-card { display:grid; min-height:0; grid-template-rows:auto minmax(0,1fr); border:1px solid rgba(18,49,48,.13); border-radius:22px; padding:1rem; background:rgba(255,255,255,.86); box-shadow:0 12px 30px rgba(18,49,48,.045); }
.people-roster-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border-bottom:1px solid rgba(18,49,48,.09); padding:.1rem .1rem .8rem; color:var(--clay); }
.people-roster-heading small { color:var(--muted); font-size:.63rem; font-weight:800; }
.people-form-heading span { color:var(--clay); font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.people-list { display:grid; max-width:none; align-content:start; gap:.58rem; margin-top:.8rem; overflow:auto; scrollbar-width:thin; scrollbar-color:#b8d5cf transparent; }
.person-card { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:.85rem; padding:.9rem 1rem; border:1px solid rgba(18,49,48,.12); border-radius:16px; background:#fffefa; box-shadow:0 7px 18px rgba(18,49,48,.035); }
.person-card.is-new-person { animation:person-card-arrive 2.8s cubic-bezier(.2,.9,.25,1) both; }
.new-person-badge { position:absolute; z-index:2; top:-.52rem; right:.75rem; border:1px solid #9fd9bd; border-radius:999px; padding:.28rem .52rem; background:#e5f7ed; box-shadow:0 5px 14px rgba(47,140,105,.14); color:#28714e; font-size:.58rem; font-weight:950; letter-spacing:.07em; text-transform:uppercase; animation:new-person-badge 2.8s ease both; }
.person-avatar { display:grid; width:44px; height:44px; place-items:center; border-radius:14px; background:linear-gradient(145deg,#d7f0eb,#eaf3ca); color:var(--pine); font-size:.76rem; font-weight:900; }
.person-card-copy { display:grid; min-width:0; gap:.16rem; }
.person-card-copy > span { color:var(--clay); font-size:.61rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.person-card-copy strong { overflow:hidden; font-size:.94rem; text-overflow:ellipsis; white-space:nowrap; }
.person-card-copy small { overflow:hidden; color:var(--muted); font-size:.73rem; text-overflow:ellipsis; white-space:nowrap; }
.person-card-copy em { color:#61817c; font-size:.65rem; font-style:normal; }
.person-card-insights { display:flex; flex-wrap:wrap; gap:.28rem; margin-top:.28rem; }
.person-insight-pill { display:inline-flex; width:max-content; align-items:center; border:1px solid transparent; border-radius:999px; padding:.22rem .4rem; font-size:.54rem; font-weight:850; line-height:1; }
.person-insight-pill.is-unpaid { border-color:#efd391; background:#fff5dc; color:#8c631a; }
.person-insight-pill.is-paid { border-color:#b4dfc8; background:#e8f7ee; color:#27724e; }
.person-insight-pill.is-missing { border-color:#e4d4ce; background:#f8efeb; color:#9b5c50; }
.person-insight-pill.is-ready,.person-insight-pill.is-room { border-color:#c7dfdb; background:#eef7f5; color:#37746d; }
.person-card-actions { display:flex; align-items:center; gap:.3rem; }
.person-card-actions button { border:0; border-radius:999px; padding:.48rem .65rem; background:#e6f3ef; color:var(--pine); font-size:.68rem; font-weight:850; }
.person-card-actions button:last-child { width:30px; height:30px; padding:0; background:transparent; color:#b86355; font-size:1rem; }
.people-form { display:grid; width:100%; min-width:0; align-content:start; gap:1rem; max-width:none; margin:0; padding:1.35rem; border:1px solid rgba(18,49,48,.13); border-radius:24px; background:white; box-shadow:0 12px 30px rgba(18,49,48,.055); }
.people-form-heading,.people-form-step,.people-form-message { grid-column:1 / -1; }
.people-form-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.people-form-heading h3 { margin:.25rem 0 .35rem; font-size:1.65rem; letter-spacing:-.045em; }
.people-form-heading p { max-width:650px; margin:0; color:var(--muted); line-height:1.5; }
.people-form-message:empty { display:none; }
.people-form-step { display:grid; min-height:310px; align-content:start; gap:1.05rem; animation:people-step-in .32s cubic-bezier(.22,1,.36,1) both; }
.people-form-step[hidden] { display:none; }
.people-details-heading { display:grid; gap:.25rem; border-top:1px solid rgba(18,49,48,.08); padding-top:1rem; }
.people-details-heading > span { color:var(--clay); font-size:.62rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.people-details-heading h4 { margin:0; font-size:1.12rem; letter-spacing:-.03em; }
.people-details-heading p { margin:0; color:var(--muted); font-size:.72rem; line-height:1.45; }
.people-cancel-edit { border:0; padding:.45rem; background:transparent; color:var(--muted); font-size:.7rem; font-weight:850; }
.people-form-step > label,.people-contact-grid label { display:grid; gap:.42rem; color:var(--ink); font-size:.75rem; font-weight:850; }
.people-form input,.people-form textarea,.people-form select { width:100%; min-width:0; border:1px solid rgba(18,49,48,.18); border-radius:13px; padding:.8rem .85rem; background:#fffefa; color:var(--ink); font-size:16px; }
.people-role-choice { margin:0; border:0; padding:0; }
.people-role-choice legend { margin-bottom:.42rem; font-size:.75rem; font-weight:850; }
.people-role-choice > div { display:flex; flex-wrap:wrap; gap:.4rem; }
.people-role-choice label { position:relative; }
.people-role-choice input { position:absolute; opacity:0; pointer-events:none; }
.people-role-choice span { display:block; border:1px solid rgba(18,49,48,.16); border-radius:999px; padding:.72rem .78rem; background:#fffefa; color:var(--muted); font-size:.7rem; font-weight:850; }
.people-role-choice input:checked + span { border-color:var(--pine); background:var(--pine); color:white; }
.people-sharing-choice { display:grid; gap:.42rem; margin:0; border:0; border-top:1px solid rgba(18,49,48,.08); padding:1rem 0 0; }
.people-sharing-choice legend { font-size:.75rem; font-weight:850; }
.people-sharing-choice > p { margin:0; color:var(--muted); font-size:.66rem; line-height:1.4; }
.people-sharing-choice > div { display:flex; flex-wrap:wrap; gap:.42rem; margin-top:.25rem; }
.people-sharing-choice label { position:relative; }
.people-sharing-choice input { position:absolute; opacity:0; pointer-events:none; }
.people-sharing-choice span { display:block; border:1px solid rgba(18,49,48,.15); border-radius:999px; padding:.68rem .78rem; background:#f6faf8; color:var(--muted); font-size:.68rem; font-weight:850; transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease; }
.people-sharing-choice label:hover span { transform:translateY(-1px); }
.people-sharing-choice input:checked + span { border-color:#7bbeb0; background:#e2f3ee; color:var(--pine); box-shadow:inset 0 0 0 1px rgba(14,85,87,.08); }
.people-contact-details { border-top:1px solid rgba(18,49,48,.1); padding-top:.95rem; }
.people-contact-details summary { cursor:pointer; color:var(--pine); font-size:.76rem; font-weight:900; }
.people-contact-details summary span { margin-left:.35rem; color:var(--muted); font-size:.65rem; font-weight:700; }
.people-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; margin-top:1rem; }
.people-contact-grid .wide { grid-column:1 / -1; }
.people-contact-grid label small { color:var(--muted); font-size:.66rem; font-weight:600; line-height:1.4; }
.people-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:1rem; }
.people-form-step > .people-form-actions { margin-top:auto; }
.people-form-actions .form-message { margin-right:auto; }
.people-details-actions { gap:.55rem; border-top:1px solid rgba(18,49,48,.09); padding-top:1rem; }
.people-details-actions > span { flex:1; }
.people-skip { color:var(--muted); font-size:.68rem; }
.people-publish-choice { display:flex !important; grid-template-columns:auto 1fr; align-items:center; gap:.7rem; border:1px solid #c9e3dc; border-radius:14px; padding:.75rem; background:#f2faf7; }
.people-publish-choice input { width:18px; height:18px; margin:0; accent-color:var(--pine); }
.people-publish-choice span { display:grid; gap:.15rem; }
.people-tools-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; max-width:1180px; margin-top:1.4rem; }
.people-tool { min-width:0; border:1px solid rgba(18,49,48,.13); border-radius:22px; padding:1.15rem; background:rgba(255,255,255,.82); box-shadow:0 12px 30px rgba(18,49,48,.045); }
.people-tool-head { display:flex; align-items:start; justify-content:space-between; gap:.8rem; margin-bottom:1.55rem; }
.people-tool-head span,.room-card > div > span,.tracking-card > div > span { color:var(--clay); font-size:.61rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.people-tool-head h3 { margin:.24rem 0 .3rem; font-size:1.28rem; letter-spacing:-.04em; }
.people-tool-head p { margin:0; color:var(--muted); font-size:.72rem; line-height:1.45; }
.people-tool-head > strong { flex:none; border-radius:999px; padding:.48rem .65rem; background:#e7f4f0; color:var(--pine); font-size:.65rem; }
.compact-people-form { display:grid; grid-template-columns:1.2fr 1fr 70px auto; gap:.45rem; margin-bottom:.8rem; }
.compact-people-form input { min-width:0; border:1px solid rgba(18,49,48,.16); border-radius:11px; padding:.65rem; background:#fffefa; font-size:16px; }
.compact-people-form button,.quick-person-add button { border:0; border-radius:11px; padding:.65rem .75rem; background:var(--pine); color:white; font-size:.68rem; font-weight:850; }
.room-placement-zone,.room-spaces-zone { display:grid; gap:.9rem; }
.room-spaces-zone { margin-top:2.15rem; border-top:1px solid rgba(18,49,48,.09); padding-top:1.6rem; }
.room-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.room-section-head > div { display:grid; gap:.2rem; }
.room-section-head > div > span { color:var(--clay); font-size:.61rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.room-section-head h4 { margin:0; color:var(--ink); font-size:1.08rem; letter-spacing:-.04em; }
.room-section-head p { margin:0; color:var(--muted); font-size:.68rem; line-height:1.4; }
.room-section-action { flex:none; border:0; border-radius:999px; padding:.58rem .78rem; background:var(--pine); color:white; font-size:.66rem; font-weight:850; transition:background .18s ease,transform .18s ease,box-shadow .18s ease; }
.room-section-action.is-secondary { border:1px solid rgba(14,85,87,.17); background:#edf7f4; color:var(--pine); }
.room-section-action:hover { transform:translateY(-1px); box-shadow:0 7px 18px rgba(18,49,48,.1); }
#room-people-bank { min-height:48px; border:1px solid rgba(18,49,48,.1); border-radius:16px; padding:.78rem; background:#f6f8f6; }
#room-people-bank .people-tool-empty { margin:0; }
.room-list,.payment-tracking-list { display:grid; gap:.85rem; }
.room-card,.tracking-card { position:relative; display:grid; gap:.65rem; border:1px solid rgba(18,49,48,.11); border-radius:15px; padding:.85rem; background:#fffefa; }
.room-card > div:first-child,.tracking-card > div:first-child { display:grid; min-width:0; grid-template-columns:minmax(0,1fr); align-content:start; gap:.16rem; }
.room-card > div:first-child > * { display:block; min-width:0; }
.room-card > div:first-child > strong { font-size:.86rem; line-height:1.22; }
.room-card > div:first-child > span { font-size:.55rem; }
.room-card small,.tracking-card small { color:var(--muted); font-size:.67rem; }
.tiny-remove { position:absolute; top:.55rem; right:.55rem; width:26px; height:26px; border:0; background:transparent; color:#b86355; font-size:.95rem; }
.tracking-expense-head { display:flex!important; align-items:center; justify-content:space-between; gap:.8rem; }
.tracking-expense-head > div { display:grid; gap:.12rem; }
.tracking-expense-head > small { flex:none; border-radius:999px; padding:.35rem .5rem; background:#f1f6f4; color:var(--pine); font-weight:800; }
.payment-status-list { display:grid; border-top:1px solid rgba(18,49,48,.08); }
.payment-status-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.65rem; border-bottom:1px solid rgba(18,49,48,.07); padding:.52rem 0; }
.payment-status-row:last-child { border-bottom:0; }
.payment-status-row > span { overflow:hidden; color:var(--ink); font-size:.68rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.payment-status-options { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.25rem; }
.payment-status-options button { border:1px solid rgba(18,49,48,.11); border-radius:999px; padding:.3rem .46rem; background:#f5f7f6; color:#75817f; font-size:.54rem; font-weight:850; line-height:1; transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease; }
.payment-status-options button:hover { transform:translateY(-1px); }
.payment-status-options button.status-outstanding.is-selected { border-color:#e7c77e; background:#fff2ce; color:#8d641c; }
.payment-status-options button.status-paid.is-selected { border-color:#9fd4b8; background:#def4e8; color:#27724e; }
.payment-status-options button.status-excluded.is-selected { border-color:#cfd8d5; background:#edf1ef; color:#596866; }
.payment-tracking-dashboard { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:.7rem; margin-bottom:1rem; }
.tracking-metric { display:grid; align-content:start; gap:.2rem; min-height:118px; border:1px solid rgba(18,49,48,.11); border-radius:17px; padding:.9rem 1rem; background:#fff; box-shadow:0 8px 22px rgba(18,49,48,.035); }
.tracking-metric.is-total { border-color:#0d5b5b; background:linear-gradient(145deg,#0d5b5b,#176f6c); box-shadow:0 14px 28px rgba(13,91,91,.16); }
.tracking-metric.is-outstanding { border-color:#efb58e; background:linear-gradient(145deg,#fff1e8,#fffaf6); box-shadow:inset 0 3px 0 #d8755f,0 8px 22px rgba(181,91,65,.07); }
.tracking-metric.is-collected { border-color:#a9d6bf; background:linear-gradient(145deg,#edf8f2,#f9fcfa); box-shadow:inset 0 3px 0 #4c9473,0 8px 22px rgba(55,126,92,.07); }
.tracking-metric > span { color:#6d7d79; font-size:.59rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.tracking-metric > strong { color:var(--pine); font-size:clamp(1.35rem,2.4vw,2rem); letter-spacing:-.045em; }
.tracking-metric > small { margin-top:auto; color:var(--muted); font-size:.63rem; line-height:1.35; }
.tracking-metric.is-total > span { color:#bdebe2; }
.tracking-metric.is-total > strong { color:#fffdf8; font-size:clamp(1.55rem,2.8vw,2.35rem); }
.tracking-metric.is-total > small { color:rgba(255,255,255,.78); }
.tracking-metric.is-outstanding > span { color:#a54f3e; }
.tracking-metric.is-collected > span { color:#33775b; }
.payment-tracking-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.tracking-dashboard-card { --expense-accent:#c96e5d; --expense-wash:#fff5f0; gap:.65rem; min-width:0; padding:.65rem; background:#fffefb; }
.tracking-dashboard-card.expense-tone-1 { --expense-accent:#4f8794; --expense-wash:#eff8fa; }
.tracking-dashboard-card.expense-tone-2 { --expense-accent:#ae7d32; --expense-wash:#fff8e9; }
.tracking-dashboard-card.expense-tone-3 { --expense-accent:#5d8c72; --expense-wash:#eff8f3; }
.tracking-expense-head { display:flex; align-items:center; justify-content:space-between; gap:.8rem; border-left:3px solid var(--expense-accent); border-radius:11px; padding:.78rem .82rem; background:var(--expense-wash); }
.tracking-expense-head > div:first-child { display:grid; min-width:0; gap:.1rem; }
.tracking-expense-head > div:first-child > span { color:var(--expense-accent); font-size:.55rem; font-weight:950; letter-spacing:.09em; text-transform:uppercase; }
.tracking-expense-head > div:first-child > span i { display:inline-grid; min-width:22px; height:22px; margin-right:.28rem; place-items:center; border:1px solid rgba(18,49,48,.08); border-radius:50%; background:rgba(255,255,255,.72); font-style:normal; letter-spacing:0; }
.tracking-expense-head > div:first-child > strong { overflow:hidden; color:var(--ink); font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }
.tracking-expense-head > div > small { color:var(--muted); font-size:.61rem; font-weight:650; }
.tracking-expense-totals { display:grid; flex:none; justify-items:end; gap:.05rem; text-align:right; }
.tracking-expense-totals > span { color:var(--muted); font-size:.58rem; font-weight:750; }
.tracking-expense-totals > strong { color:var(--pine); font-size:1.05rem; }
.tracking-expense-totals > small { font-size:.57rem; }
.tracking-status-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; padding:.08rem; }
.tracking-status-column { min-width:0; border:1px solid rgba(18,49,48,.08); border-radius:12px; padding:.55rem; background:var(--status-wash,#f7f8f6); box-shadow:inset 0 2px 0 var(--status-accent,#88938f); transition:border-color .18s ease,background-color .18s ease,box-shadow .22s ease,transform .22s cubic-bezier(.22,1,.36,1); }
.tracking-status-column.status-paid { --status-accent:#4f9474; --status-wash:#eef8f2; border-color:rgba(79,148,116,.2); }
.tracking-status-column.status-outstanding { --status-accent:#c78a3c; --status-wash:#fff7e8; border-color:rgba(199,138,60,.22); }
.tracking-status-column.status-excluded { --status-accent:#71888a; --status-wash:#f1f6f6; border-color:rgba(113,136,138,.2); }
.tracking-status-column > header { display:flex; align-items:center; justify-content:space-between; gap:.35rem; margin-bottom:.48rem; }
.tracking-status-column > header span { color:var(--status-accent); font-size:.58rem; font-weight:900; }
.tracking-status-column > header strong { display:grid; min-width:20px; height:20px; place-items:center; border-radius:999px; background:rgba(255,255,255,.8); color:var(--muted); font-size:.55rem; }
.tracking-status-column > div { display:grid; gap:.3rem; }
.tracking-status-column > div > small { padding:.3rem 0; color:var(--muted); font-size:.56rem; }
.tracking-status-column.is-drag-over { border-color:var(--expense-accent); background:color-mix(in srgb,var(--expense-wash) 76%,white); box-shadow:0 9px 22px rgba(18,49,48,.1); transform:translateY(-2px); }
.tracking-dashboard-card.is-sorting .tracking-status-column:not(.is-drag-over) { opacity:.72; }
.tracking-person-wrap { position:relative; min-width:0; transition:opacity .18s ease,transform .2s cubic-bezier(.22,1,.36,1); }
.tracking-person-wrap.is-dragging { opacity:.35; transform:scale(.96); }
.tracking-person { display:grid; grid-template-columns:12px minmax(0,1fr); width:100%; overflow:hidden; align-items:center; gap:.28rem; border:1px solid rgba(18,49,48,.09); border-radius:9px; padding:.4rem .45rem; background:rgba(255,255,255,.86); color:var(--ink); font-size:.59rem; font-weight:800; text-align:left; white-space:nowrap; cursor:grab; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.tracking-person:active { cursor:grabbing; }
.tracking-drag-handle { color:#82a09b; font-size:.72rem; line-height:1; }
.tracking-person-name { overflow:hidden; text-overflow:ellipsis; }
.tracking-person:hover,.tracking-person[aria-expanded="true"] { border-color:rgba(14,85,87,.35); box-shadow:0 5px 12px rgba(18,49,48,.06); transform:translateY(-1px); }
.tracking-status-menu { position:absolute; z-index:5; display:grid; gap:.25rem; top:calc(100% + 4px); left:0; min-width:116px; border:1px solid rgba(18,49,48,.12); border-radius:11px; padding:.35rem; background:#fffefa; box-shadow:0 12px 28px rgba(18,49,48,.14); }
.tracking-status-menu[hidden] { display:none; }
.tracking-status-menu button { border:0; border-radius:8px; padding:.42rem .5rem; background:transparent; color:var(--muted); font-size:.57rem; font-weight:800; text-align:left; }
.tracking-status-menu button:hover,.tracking-status-menu button.is-selected { background:#edf5f2; color:var(--pine); }

@media (max-width:1100px) {
  .payment-tracking-list { grid-template-columns:1fr; }
}

@media (max-width:720px) {
  .payment-tracking-dashboard { display:flex; margin-right:-.5rem; overflow-x:auto; padding:0 .5rem .35rem 0; scroll-snap-type:x proximity; scrollbar-width:none; }
  .payment-tracking-dashboard::-webkit-scrollbar { display:none; }
  .tracking-metric { flex:0 0 78%; min-height:104px; scroll-snap-align:start; }
  .tracking-expense-head { align-items:flex-start; }
  .tracking-status-board { grid-template-columns:1fr; }
  .tracking-status-column { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:start; gap:.5rem; }
  .tracking-status-column > header { margin:0; padding-top:.25rem; }
  .tracking-status-column > div { display:flex; flex-wrap:wrap; }
  .tracking-person-wrap { max-width:100%; }
  .tracking-person { width:auto; max-width:145px; }
}
.people-tool-empty,.reminder-note { margin:.4rem 0 0; border-radius:12px; padding:.72rem; background:#f4f7f4; color:var(--muted); font-size:.7rem; line-height:1.45; }
.reminder-note { margin-top:.85rem; background:#eef6fb; }

body.room-flow-open { overflow:hidden; }
.room-flow-shell { position:fixed; z-index:1300; inset:0; display:grid; place-items:center; padding:1rem; overflow:hidden; }
.room-flow-shell[hidden] { display:none; }
.room-flow-backdrop { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; background:rgba(14,43,42,.46); opacity:0; backdrop-filter:blur(5px); transition:opacity .22s ease; }
.room-flow-dialog { position:relative; display:grid; grid-template-rows:auto minmax(0,1fr) auto; width:min(680px,100%); max-height:min(760px,calc(100dvh - 2rem)); overflow:hidden; border:1px solid rgba(18,49,48,.13); border-radius:22px; background:#fffdf9; box-shadow:0 26px 80px rgba(18,49,48,.25); opacity:0; transform:translateY(12px) scale(.985); transition:opacity .24s ease,transform .3s cubic-bezier(.22,1,.36,1); }
.room-flow-shell.is-open .room-flow-backdrop { opacity:1; }
.room-flow-shell.is-open .room-flow-dialog { opacity:1; }
.room-flow-shell.is-open .room-flow-dialog { transform:none; }
.room-flow-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(18,49,48,.09); padding:1.35rem 1.4rem 1.15rem; background:linear-gradient(135deg,#fff9f3,#eff9f6); }
.room-flow-head .eyebrow { margin:0 0 .38rem; color:var(--clay); font-size:.64rem; letter-spacing:.12em; }
.room-flow-head h2 { margin:0; font-size:clamp(1.55rem,4vw,2.15rem); letter-spacing:-.05em; }
.room-flow-head p:last-child { margin:.4rem 0 0; color:var(--muted); font-size:.76rem; line-height:1.45; }
.room-flow-head > button { flex:none; display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(18,49,48,.15); border-radius:50%; background:white; color:var(--ink); font-size:1.35rem; }
.room-flow-body { min-height:180px; overflow-x:hidden; overflow-y:auto; padding:1.35rem 1.4rem 1.5rem; }
.room-flow-step { display:grid; gap:1.5rem; animation:room-step-in .2s ease both; }
.room-flow-step[hidden] { display:none; }
.room-flow-step label,.room-assignment-choice { display:grid; gap:.45rem; color:var(--ink); font-size:.72rem; font-weight:850; }
.room-flow-step input { width:100%; min-width:0; border:1px solid rgba(18,49,48,.16); border-radius:16px; padding:.9rem 1rem; background:white; color:var(--ink); font-size:16px; font-weight:700; }
.room-flow-step input:focus { outline:3px solid rgba(238,128,105,.2); border-color:var(--coral); }
.room-flow-suggestions { display:grid; gap:.45rem; }
.room-flow-suggestions + .room-flow-suggestions { border-top:1px solid rgba(18,49,48,.09); padding-top:1.2rem; }
.room-flow-suggestions > small { color:var(--muted); font-size:.66rem; line-height:1.4; }
.room-flow-suggestions > span,.room-assignment-choice > span { color:var(--clay); font-size:.61rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.room-flow-suggestions > div { display:flex; flex-wrap:wrap; gap:.42rem; }
.room-flow-suggestions button { border:1px solid rgba(18,49,48,.14); border-radius:999px; padding:.55rem .7rem; background:#f6faf8; color:var(--pine); font-size:.68rem; font-weight:800; }
.room-flow-suggestions button:hover { border-color:rgba(14,85,87,.38); background:#eaf6f2; }
.room-flow-suggestions button.is-selected { border-color:#4d9e8c; background:#dcf2eb; box-shadow:inset 0 0 0 1px #4d9e8c; }
.room-inline-pill { display:inline-flex; max-width:100%; }
.room-inline-trigger { border-style:dashed!important; background:white!important; }
.room-inline-trigger.is-selected { border-style:solid!important; border-color:#4d9e8c!important; background:#dcf2eb!important; box-shadow:inset 0 0 0 1px #4d9e8c; }
.room-inline-editor { display:grid; grid-template-columns:minmax(110px,1fr) 30px 30px; align-items:center; max-width:270px; overflow:hidden; border:1px solid #4d9e8c; border-radius:999px; padding:.15rem .2rem .15rem .65rem; background:white; box-shadow:0 0 0 2px rgba(77,158,140,.1); }
.room-inline-editor[hidden] { display:none; }
.room-inline-editor input { min-width:0; border:0; border-radius:0; padding:.35rem .2rem; background:transparent; font-size:16px; font-weight:750; outline:0; }
.room-inline-editor input:focus { border:0; outline:0; }
.room-inline-editor button { display:grid; width:27px; height:27px; min-height:0; place-items:center; border:0; padding:0; }
.room-inline-confirm { background:#176946!important; color:white!important; }
.room-inline-cancel { background:transparent!important; color:#a45a50!important; }
.room-flow-actions { display:flex; min-height:76px; align-items:center; justify-content:flex-end; gap:.7rem; border-top:1px solid rgba(18,49,48,.09); padding:.9rem 1.4rem; background:#fffdfa; }
.room-flow-actions .form-message { margin:0 auto 0 0; color:#a45447; font-size:.68rem; }
.room-flow-actions .form-message.success { color:#267650; }
.room-flow-actions .button { min-width:130px; }
.room-flow-actions [hidden] { display:none; }
.room-flow-actions .button.is-saved { background:#277b59; }
@keyframes room-step-in { from { opacity:0; transform:translateX(8px); } to { opacity:1; transform:none; } }
.room-bank-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.room-bank-chips > small { align-self:center; color:var(--muted); font-size:.65rem; }
.room-bank-chips button,.room-assigned-people > span { border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:.42rem .62rem; background:white; color:var(--pine); font-size:.66rem; font-weight:800; cursor:grab; }
.room-bank-chips button.is-selected { border-color:#4d9e8c; background:#dcf2eb; box-shadow:0 0 0 2px rgba(77,158,140,.12); }
.room-bank-chips button.is-returning { animation:room-person-return .85s cubic-bezier(.22,1,.36,1) both; }
.room-bank-chips button.is-dragging,.room-assigned-people > span.is-dragging { opacity:.45; }
.room-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.room-card { min-height:150px; align-content:start; transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease; }
.room-card.is-ready-for-person { cursor:pointer; border-style:dashed; }
.room-card.is-drag-over,.room-card.is-ready-for-person:hover { border-color:#4d9e8c; background:#effaf6; box-shadow:0 10px 22px rgba(18,49,48,.09); transform:translateY(-2px); }
.room-card.is-arriving { animation:room-card-arrive 2.8s cubic-bezier(.22,1,.36,1) both; }
.room-added-badge { position:absolute; top:-.55rem; left:.7rem; border:1px solid #b9e2cb; border-radius:999px; padding:.2rem .5rem; background:#e8f7ee; color:#28714e; font-size:.55rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; animation:new-payment-badge 2.8s ease both; }
@keyframes room-card-arrive { 0% { opacity:0; transform:translateY(-12px) scale(.985); } 14%,75% { opacity:1; transform:none; border-color:#7cc3a8; background:#effaf5; } 100% { opacity:1; transform:none; } }
@keyframes room-person-return { 0% { opacity:0; transform:translate(24px,18px) scale(.86); } 55% { opacity:1; transform:translate(-3px,0) scale(1.04); background:#dcf2eb; border-color:#6eb49f; } 100% { opacity:1; transform:none; } }
::view-transition-group(*) { animation-duration:.42s; animation-timing-function:cubic-bezier(.22,1,.36,1); }
::view-transition-old(*),::view-transition-new(*) { mix-blend-mode:normal; }
::view-transition-old(root),::view-transition-new(root) { animation:none; }
.room-assigned-people { display:flex; flex-wrap:wrap; gap:.38rem; border-top:1px solid rgba(18,49,48,.08); padding-top:.65rem; }
.room-assigned-people > span { display:inline-flex; align-items:center; gap:.32rem; cursor:grab; }
.room-assigned-people > span button { display:grid; width:17px; min-height:17px; place-items:center; border:0; border-radius:50%; padding:0; background:#fff0eb; color:#a45a50; font-size:.7rem; }
.room-assigned-people > small { color:var(--muted); font-size:.63rem; font-style:italic; }
.recipient-picker { display:flex; grid-column:1 / -1; flex-wrap:wrap; gap:.4rem; margin-top:.15rem; }
.recipient-picker button { display:grid; gap:.05rem; border:1px solid rgba(18,49,48,.14); border-radius:13px; padding:.58rem .72rem; background:white; color:var(--ink); text-align:left; }
.recipient-picker button.is-selected { border-color:var(--pine); background:#e4f4ef; box-shadow:0 0 0 2px rgba(14,85,87,.08); }
.recipient-picker button span { font-size:.72rem; font-weight:850; }
.recipient-picker button small,.recipient-picker p { margin:0; color:var(--muted); font-size:.62rem; }
.quick-person-add { display:flex; grid-column:1 / -1; align-items:center; justify-content:space-between; gap:.7rem; border-radius:13px; padding:.65rem .75rem; background:#fff3df; color:#7d5525; font-size:.7rem; }
.preview-directory-copy { color:var(--muted); font-size:.78rem; line-height:1.45; }
.preview-contact { display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.72rem 0; border-top:1px solid rgba(18,49,48,.1); }
.preview-contact > span { display:grid; gap:.12rem; }
.preview-contact small { color:var(--muted); font-size:.66rem; }
.preview-contact > div { display:flex; gap:.35rem; }
.preview-contact a { border-radius:999px; padding:.42rem .55rem; background:#e6f3ef; color:var(--pine); font-size:.67rem; font-weight:850; text-decoration:none; }

/* A calm, branded replacement for native destructive confirmation dialogs. */
.confirm-open { overflow:hidden; }
.confirm-shell { position:fixed; z-index:1400; inset:0; display:grid; place-items:center; padding:1rem; }
.confirm-shell[hidden] { display:none; }
.confirm-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(14,43,42,.48); opacity:0; backdrop-filter:blur(5px); transition:opacity .17s ease; }
.confirm-dialog { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr); width:min(440px,100%); gap:.85rem; border:1px solid rgba(18,49,48,.12); border-radius:24px; padding:1.15rem; background:#fffdf9; box-shadow:0 26px 80px rgba(18,49,48,.25); opacity:0; transform:translateY(10px) scale(.985); transition:opacity .17s ease,transform .17s ease; }
.confirm-shell.is-open .confirm-backdrop,.confirm-shell.is-open .confirm-dialog { opacity:1; }
.confirm-shell.is-open .confirm-dialog { transform:none; }
.confirm-mark { display:grid; width:44px; height:44px; place-items:center; border-radius:15px; background:#fff0eb; color:#aa5548; font-size:1rem; font-weight:950; }
.confirm-dialog-copy { min-width:0; }
.confirm-dialog-copy > span { color:var(--clay); font-size:.61rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.confirm-dialog-copy h2 { margin:.3rem 0 .35rem; font-size:1.3rem; letter-spacing:-.04em; }
.confirm-dialog-copy p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.5; }
.confirm-actions { display:flex; align-items:center; gap:.65rem; margin-top:.7rem; }
.confirm-actions button { min-height:38px; border-radius:999px; font-size:.7rem; font-weight:900; }
.confirm-cancel { border:0; padding:.45rem .25rem; background:transparent; color:var(--muted); font-size:.65rem!important; }
.confirm-cancel:hover,.confirm-cancel:focus-visible { color:var(--pine); text-decoration:underline; text-underline-offset:3px; }
.confirm-accept { border:0; padding:.58rem .85rem; background:#aa5548; color:white; box-shadow:0 7px 18px rgba(170,85,72,.2); }
.confirm-shell[data-tone="archive"] .confirm-mark { background:#e8f4f1; color:var(--pine); }
.confirm-shell[data-tone="archive"] .confirm-accept { background:var(--pine); box-shadow:0 7px 18px rgba(14,85,87,.18); }

@media (max-width:720px) {
  .people-subnav { width:calc(100% + 1rem); margin:.15rem -.5rem 1rem; padding:0 .5rem; }
  .people-subnav::-webkit-scrollbar { display:none; }
  .people-subnav button { flex:1 1 0; min-width:0; padding:.7rem .35rem .66rem; font-size:.6rem; line-height:1.2; }
  .people-tool-focus { min-height:0; }
  .people-workspace { grid-template-columns:1fr; gap:1rem; }
  .people-entry-column { display:grid; }
  .people-roster-column { grid-template-rows:auto auto; }
  .people-headcount-card { border-radius:20px; padding:1.15rem 1.2rem; }
  .people-roster-card { min-height:0; }
  .people-list { max-height:none; overflow:visible; }
  .people-form { grid-template-columns:1fr; }
  .person-card { position:relative; grid-template-columns:40px minmax(0,1fr) auto; padding-right:1rem; }
  .person-avatar { width:40px; height:40px; }
  .person-card-actions { grid-column:3; grid-row:1; align-self:center; justify-content:flex-end; padding-top:1.15rem; }
  .person-card-actions button:first-child { min-width:54px; }
  .person-card-actions button:last-child { position:absolute; top:.42rem; right:.5rem; width:26px; height:26px; color:rgba(184,99,85,.62); }
  .people-contact-grid { grid-template-columns:1fr; }
  .people-contact-grid .wide { grid-column:auto; }
  .people-role-choice > div { display:grid; grid-template-columns:1fr 1fr; }
  .people-role-choice span { text-align:center; }
  .people-sharing-choice > div { display:grid; grid-template-columns:1fr 1fr; }
  .people-sharing-choice span { text-align:center; }
  .people-details-actions { display:grid; grid-template-columns:auto 1fr; }
  .people-details-actions > span { display:none; }
  .people-details-actions .people-skip,.people-details-actions #people-save { grid-row:2; }
  .people-details-actions #people-save { justify-self:end; }
  .people-tools-grid { grid-template-columns:1fr; }
  .compact-people-form { grid-template-columns:1fr 1fr; }
  .compact-people-form button { grid-column:1 / -1; }
  .room-flow-shell { padding:.75rem; }
  .room-flow-dialog { max-height:calc(100dvh - 1.5rem); border-radius:20px; }
  .room-flow-head { padding:1.1rem 1rem .95rem; }
  .room-flow-head > button { width:40px; height:40px; }
  .room-flow-body { min-height:170px; padding:1.1rem 1rem; }
  .room-flow-actions { min-height:72px; padding:.8rem 1rem; }
  .room-flow-actions .form-message { font-size:.62rem; }
  .room-card-grid { grid-template-columns:1fr; }
  .room-section-head { align-items:flex-start; }
  .room-section-head > div { min-width:0; }
  .room-section-action { padding:.52rem .65rem; white-space:nowrap; }
  .payment-status-row { grid-template-columns:1fr; gap:.4rem; }
  .payment-status-options { justify-content:flex-start; }
  .people-tool-head { display:grid; }
  .people-tool-head > strong { justify-self:start; }
  .recipient-picker { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.25rem; scrollbar-width:none; }
  .recipient-picker button { flex:0 0 auto; }
  .confirm-shell { align-items:center; padding:1rem; }
  .confirm-dialog { width:100%; border-radius:24px; padding:1.1rem; transform:translateY(12px) scale(.985); }
  .confirm-actions { display:flex; }
  .confirm-actions button { width:auto; }
}

@media (prefers-reduced-motion:reduce) {
  .confirm-backdrop,.confirm-dialog,.room-flow-backdrop,.room-flow-dialog { transition:none; }
  .room-flow-step { animation:none; }
}

/* Focused trip-basics dialog and a clearly framed guest draft preview. */
body.basics-edit-open { overflow:hidden; }
#trip-basics-form:not(.is-editing) .basics-modal-head { display:none; }
#trip-basics-form.is-editing {
  position:fixed;
  z-index:120;
  inset:50% auto auto 50%;
  display:block;
  width:min(720px,calc(100% - 2rem));
  max-width:none;
  max-height:calc(100dvh - 2rem);
  margin:0;
  overflow-x:hidden;
  overflow-y:auto;
  border:1px solid rgba(18,49,48,.14);
  border-radius:26px;
  background:#fffdf9;
  box-shadow:0 0 0 100vmax rgba(18,49,48,.42),0 28px 80px rgba(18,49,48,.28);
  transform:translate(-50%,-50%);
  animation:basics-dialog-in .28s cubic-bezier(.22,1,.36,1) both;
}
#trip-basics-form.is-editing .guided-flow { padding:0 1.25rem 1.25rem; background:linear-gradient(155deg,#fffdf9,#f2faf8); }
#trip-basics-form.is-editing .guided-grid,
#trip-basics-form.is-editing .guided-grid label { min-width:0; }
#trip-basics-form.is-editing input,
#trip-basics-form.is-editing select,
#trip-basics-form.is-editing textarea { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
.basics-modal-head { position:sticky; z-index:3; top:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 -1.25rem 1.15rem; padding:1rem 1.25rem; border-bottom:1px solid rgba(18,49,48,.1); background:rgba(255,253,249,.96); backdrop-filter:blur(12px); }
.basics-modal-head > div { display:grid; gap:.15rem; }
.basics-modal-head span { color:var(--clay); font-size:.62rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.basics-modal-head strong { font-size:.95rem; }
.basics-modal-head button { display:grid; width:42px; height:42px; flex:none; place-items:center; border:1px solid rgba(18,49,48,.14); border-radius:50%; background:white; color:var(--ink); font-size:1.35rem; }
@keyframes basics-dialog-in { from { opacity:0; transform:translate(-50%,calc(-50% + 18px)) scale(.985); } }

.preview-backdrop { animation:preview-backdrop-in .24s ease both; }
.live-preview { animation:preview-panel-in .34s cubic-bezier(.22,1,.36,1) both; }
.preview-toolbar { min-height:68px; padding:.8rem 1rem; box-shadow:0 7px 22px rgba(18,49,48,.09); }
.preview-status { display:flex!important; grid-template-columns:none!important; align-items:center; gap:.45rem!important; }
.preview-status span { display:inline-flex; align-items:center; min-height:30px; border-radius:999px; padding:.38rem .65rem; background:var(--pine); color:white; font-size:.64rem; font-weight:900; letter-spacing:.02em; text-transform:none; }
.preview-status span + span { border:1px solid #e0bd78; background:#fff1cf; color:#83581c; }
.preview-toolbar button { width:44px; height:44px; border:2px solid rgba(18,49,48,.16); box-shadow:0 5px 15px rgba(18,49,48,.08); font-size:1.55rem; font-weight:500; }
@keyframes preview-panel-in { from { opacity:.8; transform:translateX(100%); } to { opacity:1; transform:none; } }
@keyframes preview-backdrop-in { from { opacity:0; } to { opacity:1; } }

@media (max-width:720px) {
  #trip-basics-form.is-editing { width:calc(100% - 1.5rem); max-height:calc(100dvh - 1.5rem); border-radius:24px; }
  #trip-basics-form.is-editing .guided-flow { margin:0; padding:0 1rem 1rem; border:0; border-radius:0; }
  #trip-basics-form.is-editing .guided-grid { grid-template-columns:minmax(0,1fr); }
  #trip-basics-form.is-editing input[type="date"] { display:block; -webkit-appearance:none; appearance:none; }
  .basics-modal-head { margin:0 -1rem 1rem; padding:calc(.8rem + env(safe-area-inset-top)) 1rem .8rem; }
  .live-preview { width:100%; }
  .preview-toolbar { padding-top:calc(.7rem + env(safe-area-inset-top)); }
}

@media (prefers-reduced-motion:reduce) {
  #trip-basics-form.is-editing,.preview-backdrop,.live-preview { animation:none; }
}

/* Event details use one calm entrance, a deliberate exit, and persistent save feedback. */
.plan-form.event-edit-mode { animation:event-editor-in .3s cubic-bezier(.22,1,.36,1) both; }
.plan-form.event-edit-mode.is-closing { pointer-events:none; animation:event-editor-out .24s cubic-bezier(.4,0,1,1) both; }
.event-edit-mode .plan-wizard-actions .form-message.success { justify-self:end; min-height:36px; align-content:center; border:1px solid #b9e2cb; border-radius:999px; padding:.45rem .7rem; background:#e8f7ee; color:#28714e; font-size:.72rem; font-weight:850; animation:event-saved-in .28s cubic-bezier(.22,1,.36,1) both; }
.event-edit-mode #save-plan.is-saved { border-color:#3e9368; background:#3e9368; box-shadow:0 8px 20px rgba(62,147,104,.2); }
@keyframes event-editor-in { from { opacity:0; transform:translate(-50%,calc(-50% + 14px)) scale(.988); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes event-editor-out { from { opacity:1; transform:translate(-50%,-50%) scale(1); } to { opacity:0; transform:translate(-50%,calc(-50% + 10px)) scale(.988); } }
@keyframes event-saved-in { from { opacity:0; transform:translateY(5px) scale(.97); } to { opacity:1; transform:none; } }

@media (max-width:680px) {
  .plan-form.event-edit-mode { animation:event-editor-mobile-in .28s cubic-bezier(.22,1,.36,1) both; }
  .plan-form.event-edit-mode.is-closing { animation:event-editor-mobile-out .22s cubic-bezier(.4,0,1,1) both; }
  .event-edit-mode .plan-wizard-actions .form-message.success { grid-column:1 / -1; grid-row:1; justify-self:stretch; text-align:center; }
  @keyframes event-editor-mobile-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  @keyframes event-editor-mobile-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateY(14px); } }
}

@media (prefers-reduced-motion:reduce) {
  .plan-form.event-edit-mode,.plan-form.event-edit-mode.is-closing,.event-edit-mode .plan-wizard-actions .form-message.success { animation:none; }
}

/* Modern payment editor: grouped decisions, clear exit, persistent save state. */
.payment-inline-editor { width:min(820px,calc(100% - 2rem)); border:1px solid rgba(18,49,48,.15); background:#fffdf9; box-shadow:0 0 0 100vmax rgba(18,49,48,.45),0 32px 90px rgba(18,49,48,.28); animation:payment-editor-in .3s cubic-bezier(.22,1,.36,1) both; }
.payment-inline-editor.is-closing { pointer-events:none; animation:payment-editor-out .23s cubic-bezier(.4,0,1,1) both; }
.payment-edit-heading { position:sticky; z-index:3; top:0; align-items:center; padding:1rem 1.25rem; background:rgba(255,253,249,.96); box-shadow:0 7px 22px rgba(18,49,48,.07); backdrop-filter:blur(12px); }
.payment-edit-heading h3 { max-width:18ch; font-size:clamp(2rem,4vw,3.15rem); line-height:.98; letter-spacing:-.055em; text-wrap:balance; }
.payment-edit-heading p { font-size:.78rem; }
.payment-edit-heading > button { display:grid; width:44px; height:44px; place-items:center; border:2px solid rgba(18,49,48,.14); border-radius:50%; padding:0; color:var(--ink); font-size:1.55rem; font-weight:500; }
.payment-edit-heading > button::after { display:none; content:none; }
.payment-inline-editor form { padding:1.15rem 1.25rem 0; }
.payment-edit-grid { grid-template-columns:minmax(0,1fr); gap:.8rem; }
.payment-edit-section { display:grid; min-width:0; gap:.85rem; border:1px solid rgba(18,49,48,.1); border-radius:18px; padding:1rem; background:#f8fbfa; }
.payment-edit-section:nth-child(2) { background:#fff9ed; }
.payment-edit-section:nth-child(3) { background:#f1f8f7; }
.payment-edit-section:nth-child(4) { background:#f5f8fb; }
.payment-edit-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding-bottom:.65rem; border-bottom:1px solid rgba(18,49,48,.08); }
.payment-edit-section-head span { color:var(--clay); font-size:.69rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.payment-edit-section-head small { color:var(--muted); font-size:.67rem; }
.payment-edit-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.payment-edit-grid label { min-width:0; color:#365453; font-size:.7rem; font-weight:760; }
.payment-edit-grid input,.payment-edit-grid select,.payment-edit-grid textarea { min-width:0; max-width:100%; min-height:48px; box-sizing:border-box; border-color:rgba(18,49,48,.14); border-radius:13px; font-weight:560; }
.payment-edit-grid input:focus,.payment-edit-grid select:focus,.payment-edit-grid textarea:focus { outline:3px solid rgba(58,156,158,.17); outline-offset:1px; border-color:#3a9c9e; }
.payment-edit-share { background:#fff0cf; }
.payment-edit-share span { color:#93611d; }
.payment-edit-actions { position:sticky; z-index:3; bottom:0; grid-template-columns:minmax(0,1fr) auto; min-height:76px; margin:1rem -1.25rem 0; padding:.8rem 1.25rem calc(.8rem + env(safe-area-inset-bottom)); border-top:1px solid rgba(18,49,48,.1); background:rgba(255,253,249,.96); backdrop-filter:blur(12px); }
.payment-edit-actions .form-message { justify-self:end; margin:0; }
.payment-edit-actions .form-message.success { min-height:36px; align-content:center; border:1px solid #b9e2cb; border-radius:999px; padding:.45rem .7rem; background:#e8f7ee; color:#28714e; font-size:.72rem; font-weight:850; animation:payment-saved-in .28s cubic-bezier(.22,1,.36,1) both; }
.payment-edit-actions .button.is-saved { border-color:#3e9368; background:#3e9368; box-shadow:0 8px 20px rgba(62,147,104,.2); }
@keyframes payment-editor-in { from { opacity:0; transform:translate(-50%,calc(-50% + 14px)) scale(.988); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes payment-editor-out { from { opacity:1; transform:translate(-50%,-50%) scale(1); } to { opacity:0; transform:translate(-50%,calc(-50% + 10px)) scale(.988); } }
@keyframes payment-saved-in { from { opacity:0; transform:translateY(5px) scale(.97); } to { opacity:1; transform:none; } }

@media (max-width:720px) {
  .payment-edit-heading h3 { max-width:14ch; font-size:clamp(1.85rem,9vw,2.55rem); }
  .payment-inline-editor { animation:payment-editor-mobile-modern-in .28s cubic-bezier(.22,1,.36,1) both; }
  .payment-inline-editor.is-closing { animation:payment-editor-mobile-modern-out .22s cubic-bezier(.4,0,1,1) both; }
  .payment-inline-editor form { padding:1rem 1rem 0; }
  .payment-edit-section { padding:.9rem; }
  .payment-edit-section-head { display:grid; gap:.18rem; }
  .payment-edit-fields { grid-template-columns:minmax(0,1fr); }
  .payment-edit-grid input[type="date"] { display:block; -webkit-appearance:none; appearance:none; }
  .payment-edit-actions { grid-template-columns:1fr; margin:1rem -1rem 0; padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); }
  .payment-edit-actions .form-message,.payment-edit-actions .form-message.success { grid-column:1; grid-row:1; justify-self:stretch; text-align:center; }
  .payment-edit-actions .button { grid-column:1; width:100%; }
  @keyframes payment-editor-mobile-modern-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
  @keyframes payment-editor-mobile-modern-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateY(12px); } }
}

@media (prefers-reduced-motion:reduce) {
  .payment-inline-editor,.payment-inline-editor.is-closing,.payment-edit-actions .form-message.success { animation:none; }
}

/* Overview is a compact internal dashboard: the trip basics read like page
   metadata, attention stays visible without becoming half the page, and the
   section summaries scan as one desktop row. */
.editor-panel[data-editor-panel="overview"] { position:relative; }
.overview-summary-card {
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(260px,1.05fr) minmax(320px,1.4fr);
  align-items:stretch;
  gap:0;
  overflow:hidden;
  border:1px solid rgba(18,49,48,.11);
  border-left:4px solid var(--clay);
  border-radius:20px;
  padding:0;
  background:linear-gradient(105deg,#fffaf1,#fffefa 62%,#f2faf8);
  box-shadow:0 9px 24px rgba(18,49,48,.045);
}
.overview-basic-item { position:relative; display:grid; min-width:0; align-content:center; gap:.38rem; min-height:108px; padding:1.15rem 3.25rem 1.15rem 1.25rem; }
.overview-basic-item + .overview-basic-item { border-left:1px solid rgba(18,49,48,.09); }
.overview-basic-item > span { color:var(--clay); font-size:.64rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.overview-basic-item > strong { overflow:hidden; color:var(--ink); font-size:clamp(.98rem,1.25vw,1.18rem); line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.overview-welcome-item > strong { color:var(--muted); font-size:clamp(.9rem,1.05vw,1.04rem); font-weight:720; white-space:normal; }
.overview-basic-edit { position:absolute; right:.8rem; bottom:.75rem; display:grid; width:30px; height:30px; place-items:center; border:1px solid rgba(15,95,96,.12); border-radius:50%; padding:0; background:#e8f5f2; color:var(--pine); cursor:pointer; transition:transform .2s ease,background .2s ease; }
.overview-basic-edit:hover { transform:translateY(-1px); background:#d9efea; }
.overview-basic-edit > span { font-size:.78rem; }
.overview-basic-editor { grid-column:1; display:grid; gap:.65rem; min-width:0; margin-top:.15rem; }
.overview-basic-editor[hidden] { display:none; }
.overview-basic-editor label,.overview-date-fields { min-width:0; }
.overview-basic-editor label > span { display:block; margin-bottom:.28rem; color:var(--muted); font-size:.6rem; font-weight:800; }
.overview-basic-editor input,.overview-basic-editor textarea { width:100%; min-width:0; max-width:100%; box-sizing:border-box; border:1px solid rgba(18,49,48,.16); border-radius:12px; padding:.68rem .75rem; background:rgba(255,255,255,.88); color:var(--ink); font:inherit; font-size:16px; }
.overview-basic-editor textarea { resize:vertical; line-height:1.4; }
.overview-date-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.overview-basic-actions { display:flex; min-width:0; align-items:center; justify-content:flex-end; gap:.65rem; }
.overview-basic-cancel,.overview-basic-save { border:0; padding:.2rem; background:transparent; color:var(--muted); font-size:.67rem; font-weight:850; cursor:pointer; }
.overview-basic-save { color:var(--pine); }
.overview-basic-status { margin-right:auto; color:#2d765d; font-size:.64rem; font-weight:850; }
.overview-basic-status.is-error { color:#aa4e43; }
.overview-basic-item.is-editing { align-content:start; padding-right:1.25rem; background:rgba(255,255,255,.38); }
.overview-basic-item.is-editing > .overview-basic-value { display:none; }

.overview-attention { position:absolute; z-index:2; top:.8rem; right:.8rem; display:grid; width:min(430px,46%); gap:.65rem; margin:0; border:1px solid rgba(223,154,50,.24); border-radius:18px; padding:.75rem .8rem; background:linear-gradient(125deg,#fff8e8,#fffefa); box-shadow:0 8px 22px rgba(18,49,48,.045); }
.overview-attention-heading { display:flex!important; align-items:baseline!important; justify-content:space-between; gap:.75rem!important; padding:0!important; }
.overview-attention-heading > span { flex:none; }
.overview-attention-heading > strong { font-size:.9rem!important; }
.overview-attention-items { display:grid; gap:.35rem; }
.overview-attention-items > button { display:grid; grid-template-columns:22px minmax(0,1fr); gap:.05rem .5rem; border:0; border-radius:11px; padding:.48rem .55rem; background:rgba(255,255,255,.72); color:var(--ink); text-align:left; }
.overview-attention-items > button > span { grid-row:1 / 3; display:grid; width:21px; height:21px; place-items:center; border-radius:50%; background:var(--pine); color:white; font-size:.66rem; }
.overview-attention-items > button b { font-size:.68rem; }
.overview-attention-items > button small { overflow:hidden; color:var(--muted); font-size:.61rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.overview-attention.is-clear { width:auto; min-width:315px; }

.overview-block-heading { display:flex; align-items:center; justify-content:flex-start; gap:1.35rem; margin:.5rem 0 1.15rem; }
.overview-block-heading::after { content:""; height:1px; flex:1; background:linear-gradient(90deg,rgba(18,49,48,.16),rgba(18,49,48,0)); }
.overview-block-heading > div { display:grid; flex:none; gap:.28rem; }
.overview-block-heading span { color:var(--clay); font-size:clamp(.84rem,.9vw,.94rem); font-weight:950; letter-spacing:.12em; text-transform:uppercase; }
.overview-block-heading strong { color:var(--ink); font-size:clamp(1.35rem,1.65vw,1.58rem); line-height:1.15; letter-spacing:-.035em; }
.overview-block-heading small { color:var(--muted); font-size:.68rem; }
.overview-basics-heading { margin-top:.35rem; }
.overview-details-heading { grid-column:1 / -1; }

.overview-section-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:.65rem; }
.overview-section-card { min-width:0; }
.overview-section-card:has(.overview-section-toggle[aria-expanded="true"]) { grid-column:auto; border-color:rgba(14,85,87,.35); box-shadow:0 12px 26px rgba(18,49,48,.075); }
.overview-section-toggle { min-height:146px; padding:1rem 1rem 2.6rem; }
.overview-section-toggle > strong { font-size:.96rem; }
.overview-section-toggle > small { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.overview-section-toggle > i { top:auto; right:.85rem; bottom:.85rem; width:24px; height:24px; background:#e8f4f1; }
.overview-section-toggle > em { position:absolute; left:1rem; right:auto; bottom:1rem; color:var(--pine); font-size:.62rem; font-style:normal; font-weight:850; }
.overview-section-toggle[aria-expanded="true"] { min-height:0; padding-bottom:1rem; }
.overview-section-toggle[aria-expanded="true"] > em { display:none; }

.overview-detail-stage { grid-column:1 / -1; display:grid; grid-template-rows:0fr; min-width:0; opacity:0; transform:translateY(-9px); transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1),opacity .24s ease,transform .34s cubic-bezier(.22,1,.36,1); }
.overview-detail-stage[hidden] { display:none; }
.overview-detail-stage.is-open { grid-template-rows:1fr; opacity:1; transform:none; }
.overview-detail-shell { min-height:0; overflow:hidden; border:1px solid rgba(14,85,87,.25); border-radius:20px; background:linear-gradient(145deg,#fbfefd,#f2faf8); box-shadow:0 12px 30px rgba(18,49,48,.06); }
.overview-detail-shell > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem .9rem; border-bottom:1px solid rgba(18,49,48,.09); background:rgba(255,255,255,.68); }
.overview-detail-shell > header > div { display:grid; gap:.15rem; }
.overview-detail-shell > header span { color:var(--clay); font-size:.61rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.overview-detail-shell > header strong { font-size:1rem; letter-spacing:-.02em; }
.overview-detail-close { display:grid; width:34px; height:34px; flex:none; place-items:center; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:#fff; color:var(--pine); font-size:1.05rem; }
.overview-detail-stage .overview-section-detail { border:0; padding:1rem 1.1rem 1.1rem; background:transparent; }
.overview-detail-stage .overview-section-detail > ul { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.overview-detail-stage .overview-section-detail li:not(.overview-itinerary-day) { min-width:0; min-height:76px; align-content:center; border:1px solid rgba(18,49,48,.09); border-radius:13px; padding:.72rem .8rem; background:rgba(255,255,255,.78); }
.overview-detail-stage .overview-section-detail li:not(.overview-itinerary-day) strong,
.overview-detail-stage .overview-section-detail li:not(.overview-itinerary-day) span { overflow-wrap:anywhere; }
.overview-detail-stage .overview-section-detail li.overview-itinerary-day { grid-column:1 / -1; }
.overview-detail-stage .overview-section-edit { justify-self:end; margin-top:.9rem; }

/* The Overview itinerary is a read-only echo of the working calendar. Keep
   each day together instead of stretching every plan across the whole page. */
@media (min-width:900px) {
  .overview-detail-stage .overview-section-detail > ul.overview-itinerary-calendar {
    display:grid;
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:minmax(285px,1fr);
    align-items:stretch;
    gap:.8rem;
    overflow-x:auto;
    padding:.1rem .05rem .55rem;
    scrollbar-width:thin;
    scrollbar-color:rgba(14,85,87,.3) rgba(14,85,87,.07);
    scroll-snap-type:x proximity;
  }
  .overview-detail-stage .overview-section-detail > ul.overview-itinerary-calendar::-webkit-scrollbar { height:7px; }
  .overview-detail-stage .overview-section-detail > ul.overview-itinerary-calendar::-webkit-scrollbar-track { border-radius:999px; background:rgba(14,85,87,.07); }
  .overview-detail-stage .overview-section-detail > ul.overview-itinerary-calendar::-webkit-scrollbar-thumb { border-radius:999px; background:rgba(14,85,87,.3); }
  .overview-detail-stage .overview-itinerary-calendar > li.overview-itinerary-day {
    grid-column:auto;
    min-width:285px;
    align-content:start;
    gap:0;
    overflow:hidden;
    border-radius:18px;
    padding:0;
    scroll-snap-align:start;
  }
  .overview-itinerary-calendar .overview-itinerary-day > header {
    align-items:center;
    border:0;
    padding:.85rem .95rem;
    background:var(--pine);
  }
  .overview-itinerary-calendar .overview-itinerary-day > header strong {
    color:#fff;
    font-size:.92rem;
  }
  .overview-itinerary-calendar .overview-itinerary-day > header span {
    color:rgba(255,255,255,.76);
    font-size:.62rem;
  }
  .overview-itinerary-calendar .overview-day-period {
    grid-template-columns:1fr;
    gap:.4rem;
    min-height:96px;
    align-content:start;
    border-bottom:1px solid rgba(18,49,48,.09);
    padding:.75rem .8rem .8rem;
  }
  .overview-itinerary-calendar .overview-day-period:last-child { border-bottom:0; }
  .overview-itinerary-calendar .overview-day-period > strong { padding:0; }
  .overview-itinerary-calendar .overview-plan-line { align-items:start; padding:.55rem .6rem; }
  .overview-itinerary-calendar .overview-plan-line em {
    grid-column:1;
    grid-row:auto;
    justify-self:start;
    margin-top:.1rem;
  }
}

/* Trip-detail editing stays in the Overview instead of opening a detached
   modal. The three small questions are visible together and save as one set. */
body.basics-edit-open { overflow:auto; }
#trip-basics-form.is-editing {
  position:relative;
  z-index:auto;
  inset:auto;
  display:block;
  width:100%;
  max-width:none;
  max-height:none;
  margin:.85rem 0 0;
  overflow:visible;
  border:1px solid rgba(18,49,48,.12);
  border-radius:20px;
  background:linear-gradient(145deg,#fffaf1,#f3fbfa);
  box-shadow:0 12px 30px rgba(18,49,48,.06);
  transform:none;
  animation:overview-basics-in .3s cubic-bezier(.22,1,.36,1) both;
}
#trip-basics-form.is-editing .basics-modal-head { display:none; }
#trip-basics-form.is-editing .guided-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; padding:1rem; background:transparent; }
#trip-basics-form.is-editing .guided-step { display:grid!important; align-content:start; min-height:0; margin:0!important; border:0; border-radius:15px; padding:1rem; background:rgba(255,255,255,.78); }
#trip-basics-form.is-editing .guided-step h3 { font-size:1.08rem; }
#trip-basics-form.is-editing .guided-step > p:not(.step-kicker) { min-height:42px; font-size:.68rem; }
#trip-basics-form.is-editing .guided-actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr auto; align-items:center; }
#trip-basics-form.is-editing .guided-save { grid-column:2; width:auto; }
@keyframes overview-basics-in { from { opacity:0; transform:translateY(-8px); } }

@media (max-width:899px) {
  .overview-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .overview-details-heading { margin-top:2.35rem; }
}

@media (max-width:620px) {
  .overview-summary-card { grid-template-columns:1fr; }
  .overview-basic-item { min-height:82px; padding:.9rem 3.25rem .9rem 1rem; }
  .overview-basic-item + .overview-basic-item { border-top:1px solid rgba(18,49,48,.08); border-left:0; }
  .overview-basic-item > strong { font-size:1rem; }
  .overview-basic-edit { right:.85rem; bottom:.75rem; }
  .overview-date-fields { grid-template-columns:1fr; }
  .overview-basic-item.is-editing { padding-right:1rem; }
  .overview-attention-heading { align-items:flex-start!important; }
  .overview-attention-items > button small { white-space:normal; }
  .overview-section-grid { grid-template-columns:1fr; }
  .overview-section-card:has(.overview-section-toggle[aria-expanded="true"]) { grid-column:auto; }
  .overview-section-toggle { min-height:0; padding:.9rem 3rem .9rem 1rem; }
  .overview-section-toggle > em { display:none; }
  .overview-section-toggle > i { top:.85rem; right:.85rem; bottom:auto; }
  .overview-block-heading { align-items:start; gap:.8rem; }
  .overview-block-heading::after { margin-top:1.65rem; }
  .overview-block-heading span { font-size:.8rem; }
  .overview-block-heading strong { font-size:1.28rem; }
  .overview-block-heading small { display:none; }
  .overview-detail-stage .overview-section-detail > ul { grid-template-columns:1fr; }
  .overview-detail-shell > header { padding:.85rem .9rem .75rem; }
  .overview-detail-stage .overview-section-detail { padding:.85rem .9rem 1rem; }
  #trip-basics-form.is-editing { width:100%; max-height:none; border-radius:18px; }
  #trip-basics-form.is-editing .guided-flow { grid-template-columns:1fr; padding:.75rem; }
  #trip-basics-form.is-editing .guided-step > p:not(.step-kicker) { min-height:0; }
}

@media (prefers-reduced-motion:reduce) {
  #trip-basics-form.is-editing { animation:none; }
}

/* Keep the desktop payment-default setup in readable rows instead of squeezing
   three different decisions and an action into one uneven line. */
@media (min-width:721px) {
  .payment-default-fields {
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:.85rem 1rem;
    padding:1rem .5rem .35rem;
  }
  .payment-default-fields > label:first-child,
  .payment-default-fields .recipient-picker {
    grid-column:1 / -1;
  }
  .payment-default-fields > label:first-child {
    width:min(100%,560px);
  }
  .payment-default-fields .recipient-picker {
    margin-top:-.15rem;
  }
  .payment-default-fields > label:nth-of-type(2),
  .payment-default-fields > label:nth-of-type(3) {
    grid-column:1 / -1;
    align-self:start;
  }
  .payment-default-fields > label:nth-of-type(3) { width:min(100%,620px); }
  #save-payment-defaults {
    grid-column:2;
    justify-self:end;
    width:auto;
    min-width:210px;
    margin-top:.1rem;
  }
}

/* Give the optional trip-collector setup a clear, unhurried hierarchy. */
.payment-defaults {
  gap:1rem;
  margin:1.15rem 0 1.35rem;
  border-radius:20px;
  padding:1.15rem 1.25rem;
}
.payment-defaults.is-disabled-default { gap:0; margin-bottom:.55rem; padding-block:1rem; }
.payment-defaults.is-disabled-default .form-message:empty { display:none; }
.payment-defaults.has-saved-default { padding-top:1.15rem; }
.payment-defaults.has-saved-default::before { display:none; }
.payment-default-question b { font-size:1.02rem; letter-spacing:-.015em; line-height:1.2; }
.payment-default-question small { max-width:680px; font-size:.74rem; line-height:1.45; }
@media (min-width:721px) {
  .payment-default-fields {
    grid-template-columns:1fr;
    align-items:start;
    gap:1.7rem;
    padding:1.25rem .5rem .35rem;
  }
  .payment-default-fields > label,
  .payment-default-fields .recipient-default-group { grid-column:1; width:min(100%,760px); }
  #save-payment-defaults { grid-column:1; justify-self:end; }
}
.payment-default-group { display:grid; gap:.55rem; }
.payment-default-field-heading {
  color:var(--ink)!important;
  font-size:.72rem!important;
  font-weight:900!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.payment-default-fields .recipient-default-group { margin:0; }
.payment-default-fields .default-method-group,
.payment-default-fields .default-details-group { display:grid; gap:.55rem; }
.payment-default-fields .recipient-default-group,
.payment-default-fields .default-method-group { padding-bottom:.2rem; }
.payment-default-fields #default-recipient-picker { gap:.5rem; }
.payment-default-fields #default-recipient-picker .recipient-more-toggle { border-style:dashed; border-color:rgba(18,49,48,.16); background:rgba(255,255,255,.52); color:#627d79; }
.payment-default-fields #default-recipient-picker .recipient-more-toggle:hover { border-color:rgba(14,85,87,.3); background:#eef7f4; color:var(--pine); }
@media (max-width:720px) {
  .payment-default-question b { font-size:.94rem; }
  .payment-default-question { gap:.8rem; }
  .payment-default-fields { gap:1.55rem; padding-top:1.15rem; }
}

/* Keep the payment handoff visually aligned: one normal date control beside
   the same compact People pills used by the collector setup. */
.payment-handoff-step { width:100%; }
.payment-handoff-grid {
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);
  width:min(100%,920px);
  align-items:start;
  gap:1.4rem;
}
.payment-handoff-grid > label,
.payment-recipient-field { display:grid; min-width:0; align-content:start; gap:.55rem; }
.payment-field-label,
.payment-handoff-grid > label { color:var(--ink); font-size:.75rem; font-weight:900; }
.payment-handoff-grid input[type="date"] {
  display:block;
  width:100%;
  min-width:0;
  min-height:54px;
  box-sizing:border-box;
  border:1px solid rgba(18,49,48,.18);
  border-radius:14px;
  padding:.75rem .9rem;
  background:#fffefa;
  color:var(--ink);
  font-size:16px;
  font-weight:750;
}
.payment-handoff-picker { grid-column:auto; width:100%; max-width:100%; align-items:center; flex-wrap:wrap!important; gap:.45rem; margin:0; overflow:visible; }
.payment-handoff-picker > button {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  border-radius:999px;
  padding:.62rem .82rem;
  background:#f4f8f6;
  text-align:center;
}
.payment-handoff-picker > button span { font-size:.72rem; }
.payment-handoff-picker .add-recipient-pill {
  flex:none;
  border:1px dashed rgba(18,49,48,.22);
  background:transparent;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.payment-handoff-picker .add-recipient-pill:hover { border-color:var(--pine); background:#eff8f5; }
.payment-handoff-picker .inline-recipient-pill input {
  width:150px;
  min-width:0;
  min-height:34px;
  border:0;
  padding:.35rem .4rem .35rem .65rem;
  background:transparent;
  box-shadow:none;
  font-size:16px;
}
.payment-handoff-picker .inline-recipient-pill input:focus { outline:0; }
.payment-handoff-picker .inline-recipient-pill button {
  display:grid!important;
  width:32px;
  min-height:32px!important;
  place-items:center;
  border:0!important;
  padding:0!important;
  background:#e7f4f0!important;
  color:var(--pine)!important;
}
.payment-handoff-picker .inline-recipient-pill [data-start-payment-recipient] {
  display:inline-flex!important;
  width:auto;
  min-height:34px!important;
  padding:.35rem .55rem!important;
  background:transparent!important;
}
.payment-handoff-picker .inline-recipient-pill button:last-child { background:#fff0eb!important; color:#a45a50!important; }
.payment-handoff-picker .inline-recipient-pill [hidden] { display:none!important; }
.payment-recipient-field .recipient-default-note { max-width:620px; margin:0; }
.payment-recipient-field .recipient-default-note[hidden] { display:none!important; }
.payment-handoff-step > .quick-person-add { display:none!important; }

@media (max-width:720px) {
  .payment-handoff-grid { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .payment-handoff-picker { gap:.4rem; }
  .payment-handoff-picker > button { min-height:40px; padding:.58rem .72rem; }
  .payment-handoff-picker .inline-recipient-pill input { width:min(145px,42vw); }
}

/* A calendar-slot editor is a contained, full-screen workspace on mobile. */
@media (max-width:680px) {
  html:has(body.plan-form-open),
  body.plan-form-open {
    overflow-x:var(--organizer-modal-overflow-x,hidden)!important;
    overflow-y:var(--organizer-modal-overflow-y,hidden)!important;
    overscroll-behavior:none;
  }

  body.plan-form-open { touch-action:none; }

  .plan-form {
    box-sizing:border-box;
    inset:0!important;
    width:100%!important;
    max-width:100%!important;
    height:100vh;
    height:100dvh;
    max-height:100vh!important;
    max-height:100dvh!important;
    margin:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    border:0;
    border-radius:0;
    padding:0 1rem calc(1rem + env(safe-area-inset-bottom));
    transform:none!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }

  .plan-form > *,
  .plan-form section,
  .plan-form label,
  .plan-form fieldset {
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  .plan-form-head,
  .event-edit-mode .plan-form-head {
    position:sticky!important;
    z-index:20;
    top:0!important;
    margin:0 -1rem 1rem!important;
    width:calc(100% + 2rem);
    box-sizing:border-box;
    padding:calc(.8rem + env(safe-area-inset-top)) 4.25rem .9rem 1rem!important;
    background:rgba(255,250,244,.98);
    box-shadow:0 6px 18px rgba(18,49,48,.08);
    backdrop-filter:blur(14px);
  }

  .plan-form-head > div:first-child {
    min-width:0;
    padding-right:0!important;
  }

  .plan-close,
  .event-edit-mode .plan-close {
    position:absolute!important;
    z-index:22;
    top:calc(.72rem + env(safe-area-inset-top))!important;
    right:1rem!important;
  }

  .plan-step,
  .slot-create-mode [data-plan-step="1"],
  .slot-create-mode [data-plan-step="3"] {
    grid-template-columns:minmax(0,1fr)!important;
  }

  .plan-form input,
  .plan-form select,
  .plan-form textarea {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .plan-form.calendar-add-mode {
    inset:0!important;
    width:100%!important;
    max-width:100%!important;
    height:100vh;
    height:100dvh;
    max-height:100vh!important;
    max-height:100dvh!important;
    border:0;
    border-radius:0;
    padding:0 1rem calc(1rem + env(safe-area-inset-bottom));
    transform:none!important;
    animation:event-editor-mobile-in .28s cubic-bezier(.22,1,.36,1) both;
  }

  .plan-form-head .eyebrow { display:none; }
  .plan-form-head h3 { padding-right:2.75rem; font-size:1.25rem; line-height:1.1; }
  .plan-form-head #plan-step-copy { display:-webkit-box; margin-top:.28rem; overflow:hidden; font-size:.68rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .plan-head-actions { display:block; }
  .plan-status-choice { margin-top:.65rem; }
  .plan-status-choice,.plan-status-choice > div { width:100%; }
  .plan-status-choice legend { margin-bottom:.3rem; font-size:.5rem; }
  .plan-status-choice span { min-height:34px; margin:0; padding:.4rem .65rem; font-size:.58rem; }
  .plan-destination-options { grid-template-columns:1fr; }
  .plan-destination-picker > header { align-items:start; }
  .plan-destination-picker > header > small { max-width:92px; text-align:right; }

  .calendar-add-mode .placement-calendar {
    max-width:100%;
    margin-right:0;
    padding-right:.1rem;
    overscroll-behavior-x:contain;
  }

  @keyframes calendar-add-modal-in {
    from { opacity:0; transform:translate(-50%,calc(-50% + 14px)) scale(.985); }
    to { opacity:1; transform:translate(-50%,-50%) scale(1); }
  }
}

/* --------------------------------------------------------------------------
   Hierarchy consistency pass
   One visual language across Overview, Itinerary, Stay, People, Payments,
   and Useful Links. These rules intentionally sit last so they normalize the
   accumulated page-specific refinements without changing any interactions.
   -------------------------------------------------------------------------- */

:root {
  --hierarchy-page-title:clamp(2.05rem,3.5vw,3.25rem);
  --hierarchy-section-title:clamp(1.35rem,2vw,1.78rem);
  --hierarchy-body:clamp(.84rem,.88vw,.94rem);
  --hierarchy-major-gap:clamp(2.65rem,4.5vw,4rem);
  --hierarchy-section-gap:clamp(1.35rem,2.3vw,2rem);
}

/* Page purpose: the strongest type inside every editor tab. */
.editor-panel > .panel-intro,
.payment-panel-head .panel-intro {
  max-width:850px;
  margin-bottom:var(--hierarchy-major-gap);
}

.editor-panel > .panel-intro h2,
.payment-panel-head .panel-intro h2 {
  max-width:900px;
  font-size:var(--hierarchy-page-title);
  font-weight:850;
  letter-spacing:-.055em;
  line-height:.98;
}

.editor-panel > .panel-intro p,
.payment-panel-head .panel-intro p {
  max-width:760px;
  margin-top:.85rem;
  font-size:var(--hierarchy-body);
  line-height:1.55;
}

/* Coral uppercase is reserved for structural labels, not ordinary metadata. */
.planner-heading > div > span,
.people-tool-head > div > span,
.people-form-heading > span,
.room-section-head > div > span,
.payment-panel-head .eyebrow,
.link-library-heading > span,
.stay-section-summary .step-kicker {
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
}

/* Major sections: clear landmarks beneath the page purpose. */
.planner-heading h3,
.people-form-heading h3,
.people-tool-head h3,
.room-section-head h4,
.payment-flow-title,
.link-library-heading strong,
.stay-section-summary-head h3 {
  font-size:var(--hierarchy-section-title)!important;
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1.12;
}

.planner-heading,
.people-tool-head,
.room-section-head,
.payment-panel-head {
  margin-bottom:var(--hierarchy-section-gap);
}

.planner-help,
.people-tool-head p,
.people-form-heading p,
.room-section-head p {
  max-width:760px;
  font-size:.82rem;
  line-height:1.55;
}

/* Form labels orient; entered content carries the visual weight. */
.editor-form label,
.guided-step label,
.payment-default-fields label,
.plan-form label {
  font-weight:720;
}

.editor-form input,
.editor-form select,
.editor-form textarea,
.guided-step input,
.guided-step select,
.guided-step textarea,
.plan-form input,
.plan-form select,
.plan-form textarea {
  font-weight:560;
}

/* Overview: page intro, basics, section recaps, then one subordinate detail. */
.overview-panel-intro {
  min-height:170px;
  padding-right:min(46%,455px);
}

.overview-attention {
  top:1.2rem;
  right:1.2rem;
  width:min(410px,43%);
  padding:.9rem;
}

.overview-attention-heading > strong {
  font-size:.82rem!important;
  font-weight:760;
}

.overview-attention-items > button b { font-size:.74rem; }
.overview-attention-items > button small { font-size:.65rem; }

.overview-block-heading {
  gap:1.5rem;
  margin:1rem 0 1.45rem;
}

.overview-block-heading span {
  font-size:clamp(.9rem,1vw,1rem);
}

.overview-block-heading strong {
  font-size:clamp(1.55rem,2vw,1.9rem);
  line-height:1.1;
}

.overview-basics-heading { margin-top:.7rem; }
.overview-details-heading { margin-top:var(--hierarchy-major-gap); }

.overview-basic-item > span { font-size:.69rem; }
.overview-basic-item > strong {
  font-size:clamp(1.08rem,1.5vw,1.34rem);
  font-weight:760;
}

.overview-section-toggle > span { font-size:.68rem; }
.overview-section-toggle > strong {
  font-size:1.06rem;
  font-weight:780;
}
.overview-section-toggle > small { font-size:.74rem; }

.overview-detail-shell > header span { font-size:.64rem; }
.overview-detail-shell > header strong {
  font-size:1.18rem;
  font-weight:780;
}

.overview-detail-stage .overview-section-detail {
  padding:1.25rem;
}

.overview-detail-stage .overview-section-detail li:not(.overview-itinerary-day) {
  min-height:76px;
}

/* The Overview itinerary is a compact read-only calendar, not a stretched
   report. Its content stays centered and statuses remain near plan names. */
.overview-detail-stage .overview-section-detail:has(.overview-itinerary-day) > ul {
  max-width:1260px;
  margin-inline:auto;
}

.overview-itinerary-day {
  max-width:1260px;
  width:100%;
  margin-inline:auto;
}

.overview-plan-line {
  grid-template-columns:minmax(0,1fr) max-content;
  max-width:none;
  padding:.58rem .7rem;
}

/* Itinerary: ideas and calendar are separate, equally legible work areas. */
.planner-layout { gap:var(--hierarchy-major-gap); }
.hit-list { padding-bottom:.25rem; }
.calendar-view { padding-top:.2rem; }
.planner-heading + .planner-help { margin-top:.7rem; }
.calendar-view .planner-heading { margin-bottom:.45rem; }

.hit-item strong,
.calendar-event strong { font-weight:740; }

/* Stay: saved summaries should read as records; edit sections should read as
   workspaces. This prevents every line from looking like a form label. */
.stay-workspace { gap:1.5rem; }
.stay-flow-shell.is-always-open { gap:1rem; }
.stay-section-summary-head h3 { font-weight:790!important; }
.stay-section-summary-body > strong { font-weight:650; }
.stay-summary-facts strong { font-weight:580; }
.stay-flow-shell.is-always-open .guided-step.is-editing-section {
  background:#fffefa;
  box-shadow:0 12px 28px rgba(18,49,48,.06);
}

/* People: page purpose > file tabs > active tool > records. */
.people-subnav {
  margin-bottom:var(--hierarchy-section-gap);
}

.people-subnav button {
  font-size:.75rem;
  font-weight:760;
}

.people-tool-focus {
  padding:clamp(1.25rem,2.5vw,1.9rem);
}

.people-form-heading h3,
.people-tool-head h3 { margin-top:.32rem; }

.people-tool-head > strong {
  font-size:.7rem;
  font-weight:780;
}

.person-card strong,
.room-card strong,
.tracking-card strong { font-weight:740; }

/* Payment tracking: total entered is the anchor; collected and outstanding
   are supporting measures. Expense boards remain visually below both. */
.payment-tracking-dashboard {
  align-items:stretch;
  grid-template-columns:1.18fr .91fr .91fr;
}

.tracking-metric.is-total {
  grid-column:1;
  grid-row:1;
}

.tracking-metric.is-outstanding { grid-column:2; }
.tracking-metric.is-collected { grid-column:3; }

.tracking-metric.is-total strong {
  font-size:clamp(2.25rem,4vw,3.35rem);
}

.tracking-metric:not(.is-total) strong {
  font-size:clamp(1.75rem,3vw,2.55rem);
}

/* Shared Costs: defaults assist the expense flow instead of competing with it. */
.payment-defaults {
  margin-bottom:var(--hierarchy-section-gap);
  box-shadow:none;
}

.payment-default-question b {
  font-size:1rem;
  font-weight:780;
}

.payment-workspace { gap:1.5rem; }
.payment-ledger { align-self:start; }

/* Useful Links: lighter utility hierarchy; the link type/name is primary. */
.link-workspace { gap:1.5rem; }
.link-insight-card > strong { font-size:clamp(1.65rem,2.6vw,2.25rem); }
.link-library-card .saved-item span { font-size:.59rem; }
.link-library-card .saved-item strong { font-weight:720; }

@media (max-width:760px) {
  :root {
    --hierarchy-page-title:clamp(1.85rem,9vw,2.45rem);
    --hierarchy-section-title:clamp(1.25rem,6vw,1.55rem);
    --hierarchy-major-gap:2.35rem;
    --hierarchy-section-gap:1.25rem;
  }

  .editor-panel > .panel-intro,
  .payment-panel-head .panel-intro {
    margin-bottom:2rem;
  }

  .overview-panel-intro {
    min-height:0;
    padding-right:0;
  }

  .overview-attention {
    position:relative;
    inset:auto;
    width:100%;
    margin:1.25rem 0 0;
  }

  .overview-block-heading {
    display:grid;
    gap:.25rem;
    margin:1.1rem 0 1rem;
  }

  .overview-block-heading::after { display:none; }
  .overview-block-heading strong { font-size:1.45rem; }
  .overview-details-heading { margin-top:2.7rem; }

  .overview-basic-item > strong { font-size:1.08rem; }
  .overview-detail-shell > header strong { font-size:1.05rem; }

  .planner-layout { gap:2.65rem; }
  .people-tool-focus { min-height:0; padding:1.05rem; }
  .people-tool-head { margin-bottom:1.2rem; }

  .payment-tracking-dashboard {
    grid-template-columns:1fr 1fr;
  }
  .tracking-metric.is-total {
    grid-column:1 / -1;
    grid-row:auto;
  }
  .tracking-metric.is-outstanding { grid-column:1; }
  .tracking-metric.is-collected { grid-column:2; }

  .link-insight-card > strong { font-size:1.75rem; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-detail-stage,
  .overview-section-card,
  .stay-flow-shell.is-always-open .guided-step {
    transition:none!important;
  }
}

/* 2026-07-18: denser organizer workspace, floating scratchpad, and split idea banks. */
.editor {
  width:min(1880px,calc(100% - 2rem));
  padding-top:1.25rem;
}
.editor-topbar,
.editor-head,
.editor-nav-shell,
.editor-nav {
  width:100%!important;
}
.editor-head {
  margin:1.15rem 0 1.35rem;
  gap:1.1rem;
}
.editor-head h1 { margin-top:.45rem; }
.editor-head > div > p:last-child { margin-top:.75rem; }
.editor-nav { padding-bottom:.75rem; }
.editor-panels { margin-top:1rem; }

.editor-workspace { display:block; }
.editor-workspace .notes-box {
  position:fixed;
  z-index:140;
  right:max(1rem,env(safe-area-inset-right));
  bottom:5.35rem;
  display:grid;
  width:min(370px,calc(100% - 2rem));
  max-height:min(72vh,620px);
  margin:0;
  overflow:auto;
  padding:1.2rem;
  visibility:hidden;
  opacity:0;
  transform:translateY(14px) scale(.97);
  transform-origin:bottom right;
  transition:opacity .22s ease,transform .25s cubic-bezier(.2,.8,.2,1),visibility .22s;
}
.editor-workspace .notes-box.is-open {
  visibility:visible;
  opacity:1;
  transform:none;
}
.editor-workspace .notes-box textarea { min-height:170px; }
.scratchpad-close {
  position:absolute;
  top:.65rem;
  right:.7rem;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.78);
  color:var(--ink);
  font-size:1.25rem;
}
.scratchpad-fab {
  position:fixed;
  z-index:139;
  right:max(1rem,env(safe-area-inset-right));
  bottom:max(1rem,env(safe-area-inset-bottom));
  display:flex;
  min-height:48px;
  align-items:center;
  gap:.45rem;
  border:0;
  border-radius:999px;
  padding:.65rem .9rem;
  background:var(--pine);
  box-shadow:0 14px 30px rgba(14,85,87,.25);
  color:white;
}
.scratchpad-fab span {
  display:grid;
  width:25px;
  height:25px;
  place-items:center;
  border-radius:8px;
  background:rgba(255,255,255,.14);
}
.scratchpad-fab b { font-size:.72rem; }
.scratchpad-fab[aria-expanded="true"] { background:#337b76; }

.idea-banks {
  display:block;
  margin-top:1.35rem;
}
.editor-panel[data-editor-panel="itinerary"] .planner-layout {
  grid-template-columns:minmax(350px,.72fr) minmax(0,1.55fr);
  align-items:start;
  gap:1.6rem;
}
.planning-tools { display:contents; }
.mobile-hit-intro,.mobile-copy { display:none; }
.place-explorer { grid-column:1 / -1; min-width:0; }
.hit-list { grid-column:1; min-width:0; }
.editor-panel[data-editor-panel="itinerary"] .calendar-view {
  grid-column:2;
  border-left:1px solid rgba(18,49,48,.1);
  padding:0 0 0 1.6rem;
}
.idea-bank {
  min-width:0;
  border:1px solid rgba(18,49,48,.11);
  border-radius:22px;
  padding:clamp(1.35rem,2vw,1.8rem);
  background:linear-gradient(145deg,rgba(255,254,250,.96),rgba(242,250,248,.88));
  box-shadow:0 10px 26px rgba(18,49,48,.04);
}
.unified-idea-bank {
  background:linear-gradient(150deg,rgba(255,254,250,.98),rgba(241,249,247,.9) 56%,rgba(255,248,232,.74));
}
.place-explorer-card {
  display:grid;
  grid-template-columns:minmax(190px,240px) minmax(0,1fr);
  align-items:start;
  gap:.4rem clamp(1.5rem,2.5vw,2.5rem);
  background:linear-gradient(145deg,rgba(238,249,247,.96),rgba(255,254,250,.98));
}
.place-explorer-card > .idea-bank-heading { grid-column:1; grid-row:1; margin-bottom:.55rem; }
.place-explorer-card > .explorer-type-choice { grid-column:1; grid-row:2; }
.place-explorer-card > .unified-destination-suggestions { grid-column:2; grid-row:1 / span 2; min-width:0; }
.hit-list-store { background:linear-gradient(150deg,rgba(255,254,250,.98),rgba(255,248,232,.74)); }
.idea-bank-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.55rem;
}
.idea-bank-heading > div { display:grid; gap:.12rem; }
.idea-bank-heading .eyebrow { margin:0; }
.idea-bank-heading h3,
.idea-bank-heading h4 {
  margin:0;
  font-size:clamp(1.15rem,1.7vw,1.4rem);
  font-weight:820;
  letter-spacing:-.035em;
  line-height:1.08;
}
.idea-bank-heading p { margin:.5rem 0 0; color:var(--muted); font-size:.72rem; line-height:1.5; }
.idea-bank-heading > small {
  max-width:150px;
  color:var(--muted);
  font-size:.64rem;
  line-height:1.35;
  text-align:right;
}
.idea-bank .idea-composer {
  margin:0;
  border:0;
  border-radius:16px;
  padding:.72rem;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px rgba(18,49,48,.08);
}
.idea-bank .suggestion-strip {
  gap:.3rem;
  margin-bottom:.55rem;
  overflow-x:auto;
  padding-bottom:.15rem;
  scrollbar-width:none;
}
.idea-bank .suggestion-strip::-webkit-scrollbar { display:none; }
.idea-bank .suggestion-strip button {
  min-height:30px;
  padding:.34rem .55rem;
  font-size:.62rem;
  white-space:nowrap;
}
.idea-bank .quick-idea-form { gap:.45rem; }
.idea-bank .quick-idea-form input { min-width:0; }
.idea-bank .quick-idea-form .button { min-width:66px; }
.idea-type-choice {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.35rem;
  margin:0 0 .75rem;
  padding:.3rem;
  border-radius:999px;
  background:rgba(18,49,48,.065);
}
.idea-type-choice button {
  min-height:38px;
  border:0;
  border-radius:999px;
  padding:.5rem .75rem;
  background:transparent;
  color:var(--muted);
  font-size:.7rem;
  font-weight:820;
}
.idea-type-choice button.is-active {
  background:white;
  box-shadow:0 4px 12px rgba(18,49,48,.09);
  color:var(--pine);
}
.idea-bank .quick-idea-message:empty { display:none; }
.idea-bank .idea-tray {
  display:grid;
  grid-template-columns:1fr;
  gap:.75rem;
  margin-top:1.35rem;
}
.idea-bank .hit-item {
  --item-color:var(--destination-accent);
  grid-template-columns:16px 38px minmax(0,1fr) auto;
  min-height:104px;
  align-items:center;
  gap:.55rem;
  padding:.78rem 2rem .78rem .8rem;
  border-color:color-mix(in srgb,var(--destination-accent) 18%,white);
  border-radius:16px;
  background:linear-gradient(145deg,var(--destination-wash),rgba(255,255,255,.95));
  box-shadow:0 6px 15px rgba(18,49,48,.045);
}
.idea-bank .hit-item-type-mark { display:grid; width:36px; height:36px; place-items:center; border:1px solid color-mix(in srgb,var(--destination-accent) 28%,white); border-radius:12px; background:color-mix(in srgb,var(--destination-accent) 12%,white); color:var(--destination-accent); font-size:1rem; font-weight:900; }
.idea-bank .hit-item-copy { min-width:0; gap:.04rem; }
.idea-bank .hit-item-copy span { color:var(--destination-accent); font-size:.54rem; }
.idea-bank .hit-item-copy strong {
  font-size:.88rem;
  line-height:1.14;
  overflow-wrap:anywhere;
  white-space:normal;
}
.idea-bank .hit-item-copy small {
  display:-webkit-box;
  overflow:hidden;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.4;
  white-space:normal;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.idea-bank .hit-item-copy small.is-prompt { color:color-mix(in srgb,var(--destination-accent) 78%,#456360); font-weight:750; }
.idea-bank .item-actions { display:grid!important; margin-left:auto; }
.idea-bank .hit-info,
.idea-bank .edit-item {
  min-height:34px;
  min-width:68px;
  border:1px solid color-mix(in srgb,var(--destination-accent) 20%,white);
  border-radius:999px;
  padding:.35rem .58rem;
  font-size:.63rem;
  font-weight:850;
  white-space:nowrap;
}
.idea-bank .hit-info { background:color-mix(in srgb,var(--destination-accent) 10%,white); color:var(--destination-accent); }
.idea-bank .edit-item { background:var(--destination-accent); color:white; }
.idea-bank .remove-item { width:28px; min-width:28px; height:28px; }

.destination-suggestions {
  display:grid;
  gap:.8rem;
  margin:.9rem 0 1.4rem;
  padding-top:.65rem;
}
.unified-destination-suggestions { display:grid; }
.unified-destination-suggestions .destination-suggestions + .destination-suggestions { margin-top:.25rem; }
.destination-suggestions[hidden] { display:none; }
.destination-action-long { display:none; }
.destination-action-short { display:inline; }
.destination-quick-cleared { margin:0; padding:.85rem 0; color:var(--muted); font-size:.72rem; }
.destination-save-ghost {
  position:fixed!important;
  z-index:260;
  margin:0!important;
  pointer-events:none;
  transform-origin:center;
  transition:transform .46s cubic-bezier(.22,.82,.24,1),opacity .38s ease;
  will-change:transform,opacity;
}
.destination-quick-card.is-saving-away { opacity:.18; transform:scale(.985); transition:opacity .16s ease,transform .16s ease; }
.destination-suggestions-heading {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
}
.destination-suggestions-heading > div { display:grid; gap:.12rem; }
.destination-suggestions-heading > div > small { color:var(--clay); font-size:.52rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.destination-suggestions-heading span {
  color:var(--pine);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.destination-suggestions-heading small { color:var(--muted); font-size:.58rem; }
.hit-list-bank-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:1.2rem 0 .15rem; border-top:1px solid rgba(18,49,48,.1); padding-top:1.05rem; }
.hit-list-bank-heading > div { display:grid; gap:.15rem; }
.hit-list-bank-heading span { color:var(--clay); font-size:.56rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.hit-list-bank-heading strong { color:var(--pine); font-size:.9rem; }
.hit-list-bank-heading small { border-radius:999px; padding:.3rem .5rem; background:#edf5f2; color:var(--muted); font-size:.58rem; font-weight:800; }
.destination-quick-shell { position:relative; min-width:0; }
.destination-quick-shell::after {
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  width:2.8rem;
  height:100%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.98) 74%);
  content:"";
  pointer-events:none;
  opacity:0;
  transition:opacity .18s ease;
}
.destination-quick-shell.has-scroll-overflow::after { opacity:1; }
.destination-quick-rail {
  display:flex;
  gap:.65rem;
  overflow-x:auto;
  padding:.1rem 2.35rem .45rem 0;
  scroll-padding-right:2.35rem;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.destination-quick-rail::-webkit-scrollbar { display:none; }
.destination-quick-card {
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  width:min(290px,82%);
  min-height:104px;
  flex:none;
  align-items:center;
  gap:.75rem;
  border:1px solid rgba(18,49,48,.11);
  border-radius:16px;
  padding:.82rem;
  background:linear-gradient(145deg,var(--destination-wash,#f2faf8),rgba(255,255,255,.94));
  box-shadow:0 6px 15px rgba(18,49,48,.045);
  scroll-snap-align:start;
}

@media (min-width:1121px) {
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro { margin-bottom:2.35rem; }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { row-gap:2.2rem; }
  .place-explorer .planner-heading { margin-bottom:.65rem; }
  .place-explorer > .planner-help { margin:.35rem 0 .9rem; }
  .place-explorer-card { padding:1.35rem 1.5rem; }
  .place-explorer-card > .idea-bank-heading { align-self:center; }
  .place-explorer-card > .explorer-type-choice { align-self:start; }
  .place-explorer-card .destination-suggestions { margin:.35rem 0 0; padding-top:.15rem; }
  .place-explorer-card .destination-quick-rail { gap:.8rem; }
  .place-explorer-card .destination-quick-card {
    grid-template-columns:38px minmax(150px,1fr) auto;
    width:350px;
    min-height:116px;
    padding:.9rem;
  }
  .place-explorer-card .destination-quick-card strong {
    display:-webkit-box;
    overflow:hidden;
    font-size:.88rem;
    white-space:normal;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .place-explorer-card .destination-quick-card p { font-size:.64rem; }
}
.destination-card-mark {
  display:grid;
  width:36px;
  height:36px;
  grid-row:1;
  place-items:center;
  align-self:start;
  border:1px solid color-mix(in srgb,var(--destination-accent,#4d9690) 28%,white);
  border-radius:12px;
  background:color-mix(in srgb,var(--destination-accent,#4d9690) 12%,white);
  color:var(--destination-accent,#387f7b);
  font-size:1rem;
  font-weight:900;
}
.destination-card-copy { display:grid; min-width:0; gap:.16rem; }
.destination-quick-card small { color:var(--destination-accent,var(--clay)); font-size:.52rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.destination-quick-card strong { overflow:hidden; font-size:.82rem; line-height:1.18; text-overflow:ellipsis; white-space:nowrap; }
.destination-quick-card p { display:-webkit-box; margin:0; overflow:hidden; color:var(--muted); font-size:.6rem; line-height:1.45; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.destination-quick-card,.destination-explorer .destination-suggestion { position:relative; }
.destination-card-status { position:absolute; z-index:2; top:.5rem; right:.62rem; border-radius:999px; padding:.2rem .42rem; background:color-mix(in srgb,var(--destination-accent) 10%,white); color:var(--destination-accent); font-size:.5rem; font-weight:850; line-height:1.15; }
.destination-card-actions { grid-column:3; grid-row:1; display:grid; flex:none; align-self:center; gap:.35rem; margin:0; }
.destination-card-actions button {
  min-height:31px;
  border:1px solid rgba(14,85,87,.14);
  border-radius:999px;
  padding:.38rem .58rem;
  background:#e7f4f1;
  color:var(--pine);
  font-size:.58rem;
  font-weight:850;
}
.destination-card-actions button:first-child { background:rgba(255,255,255,.86); color:var(--muted); }
.destination-card-actions button:last-child { background:var(--destination-accent,#e7f4f1); color:white; }
.destination-quick-card.is-saved,.destination-explorer .destination-suggestion.is-saved { background:linear-gradient(145deg,color-mix(in srgb,var(--destination-wash,#f2faf8) 70%,white),rgba(255,255,255,.96)); }
.destination-card-actions .destination-card-saved:disabled { border-color:color-mix(in srgb,var(--destination-accent) 18%,white); background:color-mix(in srgb,var(--destination-accent) 9%,white); color:var(--destination-accent); cursor:default; opacity:1; }
.destination-style-outdoors { --destination-accent:#237e78; --destination-wash:#eaf7f2; }
.destination-style-culture { --destination-accent:#b96855; --destination-wash:#fff1eb; }
.destination-style-experience { --destination-accent:#5575a6; --destination-wash:#eef3fb; }
.destination-style-explore { --destination-accent:#7b6d9d; --destination-wash:#f4f1fa; }
.destination-style-seafood { --destination-accent:#247c91; --destination-wash:#eaf7fa; }
.destination-style-coffee { --destination-accent:#9a6747; --destination-wash:#faf1e9; }
.destination-style-casual { --destination-accent:#bd7542; --destination-wash:#fff4e8; }
.destination-style-restaurant { --destination-accent:#a95067; --destination-wash:#faeef2; }
.destination-quick-pill {
  display:inline-flex;
  flex:none;
  max-width:220px;
  align-items:center;
  gap:.35rem;
  border:1px solid rgba(18,49,48,.11);
  border-radius:999px;
  padding:.4rem .45rem .4rem .62rem;
  background:rgba(234,246,242,.68);
  color:var(--pine);
  font-size:.62rem;
  font-weight:800;
  scroll-snap-align:start;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.destination-quick-pill span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.destination-quick-pill b { color:var(--clay); font-size:.56rem; line-height:1; }
.destination-quick-pill:hover,.destination-quick-pill:focus-visible { border-color:rgba(237,134,111,.55); background:white; transform:translateY(-1px); }
.destination-scroll-cue {
  position:absolute;
  z-index:2;
  top:50%;
  right:.1rem;
  display:grid;
  width:1.45rem;
  height:1.45rem;
  place-items:center;
  border-radius:50%;
  background:#e6f4f1;
  color:var(--pine);
  font-size:1rem;
  font-weight:900;
  pointer-events:none;
  transform:translateY(-50%);
  animation:destination-scroll-nudge 1.15s ease-in-out 2 .45s;
}
.destination-scroll-cue[hidden] { display:none; }
@keyframes destination-scroll-nudge {
  0%,100% { transform:translate(0,-50%); }
  50% { transform:translate(4px,-50%); }
}
.destination-browser { margin-top:.25rem; border-top:1px solid rgba(18,49,48,.07); padding-top:1rem; }
.destination-browser summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  border-radius:10px;
  padding:.38rem .45rem;
  color:var(--pine);
  cursor:pointer;
  font-size:.64rem;
  font-weight:850;
  list-style:none;
}
.destination-browser summary::-webkit-details-marker { display:none; }
.destination-browser summary:hover,.destination-browser summary:focus-visible { background:rgba(228,243,239,.6); }
.destination-browser summary small { color:var(--muted); font-size:.56rem; font-weight:650; }
.destination-browser summary::after { content:"＋"; color:var(--clay); font-size:.76rem; }
.destination-browser[open] summary::after { content:"−"; }
.destination-explore-open {
  display:flex;
  width:100%;
  min-height:44px;
  align-items:center;
  justify-content:space-between;
  border:1px solid rgba(14,85,87,.12);
  border-radius:13px;
  padding:.72rem .85rem;
  background:rgba(231,244,241,.62);
  color:var(--pine);
  font-size:.68rem;
  font-weight:850;
  text-align:left;
}
.destination-explore-open span { color:var(--clay); font-size:1rem; }
body.destination-explorer-open { overflow:hidden; }
body.destination-info-open { overflow:hidden; }
.destination-explorer { position:fixed; z-index:220; inset:0; display:grid; place-items:center; overflow:hidden; overscroll-behavior:none; padding:clamp(1rem,4vw,3.5rem); touch-action:none; }
.destination-explorer[hidden] { display:none; }
.destination-explorer.is-dragging-away { opacity:0; pointer-events:none; }
.destination-explorer-backdrop { position:absolute; inset:0; border:0; background:rgba(18,49,48,.58); backdrop-filter:blur(7px); }
.destination-explorer > section {
  position:relative;
  z-index:1;
  width:min(1180px,100%);
  max-height:min(86vh,900px);
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid rgba(255,255,255,.8);
  border-radius:28px;
  padding:clamp(1.25rem,3vw,2.4rem);
  background:#fffdfa;
  box-shadow:0 32px 90px rgba(18,49,48,.3);
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
.destination-explorer > section > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.destination-explorer header span { color:var(--clay); font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.destination-explorer header h3 { margin:.3rem 0 0; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-.055em; }
.destination-explorer header p { margin:.55rem 0 0; color:var(--muted); font-size:.8rem; }
.destination-explorer-close { display:grid; width:42px; height:42px; flex:none; place-items:center; border:1px solid rgba(18,49,48,.13); border-radius:50%; background:white; color:var(--pine); font-size:1.35rem; }
.destination-explorer .destination-category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; padding:0; }
.destination-explorer .destination-category-grid section { min-width:0; }
.destination-explorer .destination-group > header { display:flex; align-items:center; gap:.65rem; margin-bottom:.75rem; border-top:3px solid var(--destination-accent); padding-top:.85rem; }
.destination-group-mark { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:11px; background:var(--destination-wash); color:var(--destination-accent); font-size:.9rem; font-weight:900; }
.destination-explorer .destination-category-grid h5 { margin:0; color:var(--destination-accent); font-size:.7rem; }
.destination-explorer .destination-group > header small { display:block; margin-top:.12rem; color:var(--muted); font-size:.55rem; }
.destination-explorer .destination-category-grid section > div { gap:.5rem; }
.destination-explorer .destination-suggestion { display:grid; grid-template-columns:32px minmax(0,1fr) auto; min-height:104px; padding:.72rem; background:linear-gradient(145deg,var(--destination-wash),white 72%); }
.destination-explorer .destination-suggestion .destination-card-mark { width:32px; height:32px; border-radius:10px; }
.destination-explorer .destination-suggestion .destination-card-copy > small { color:color-mix(in srgb,var(--destination-accent) 82%,#456360); font-size:.62rem; font-weight:900; letter-spacing:.065em; line-height:1.2; text-transform:uppercase; }
.destination-explorer .destination-suggestion strong { margin-top:.12rem; font-size:.9rem; font-weight:850; line-height:1.15; letter-spacing:-.02em; }
.destination-explorer .destination-suggestion p { display:-webkit-box; margin:.1rem 0 0; overflow:hidden; color:var(--muted); font-size:.59rem; line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.destination-explorer .destination-suggestion .destination-card-actions { grid-column:3; grid-row:1; }
.destination-explorer .destination-suggestion .destination-card-actions button:first-child { border-color:color-mix(in srgb,var(--destination-accent) 24%,white); background:color-mix(in srgb,var(--destination-accent) 11%,white); color:var(--destination-accent); }
.destination-info-shell { position:fixed; z-index:240; inset:0; display:grid; place-items:center; overflow:hidden; overscroll-behavior:none; padding:1rem; touch-action:none; }
.destination-info-shell[hidden] { display:none; }
.destination-info-shell.is-closing { pointer-events:none; }
.destination-info-backdrop { position:absolute; inset:0; border:0; background:rgba(18,49,48,.58); opacity:0; backdrop-filter:blur(7px); transition:opacity .2s ease; }
.destination-info-dialog {
  position:relative;
  z-index:1;
  width:min(520px,100%);
  max-height:90vh;
  overflow:auto;
  border:1px solid rgba(255,255,255,.82);
  border-radius:27px;
  padding:clamp(1.25rem,4vw,2rem);
  background:linear-gradient(150deg,#fffdfa,var(--destination-wash,#f2faf8));
  box-shadow:0 28px 80px rgba(18,49,48,.3);
  opacity:0;
  transform:translateY(12px) scale(.985);
  transition:opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1);
}
.destination-info-shell.is-open .destination-info-backdrop { opacity:1; }
.destination-info-shell.is-open .destination-info-dialog { opacity:1; transform:none; }
.destination-info-dialog::before { display:block; width:54px; height:5px; margin:-.35rem 0 1.15rem; border-radius:999px; background:var(--destination-accent,var(--clay)); content:""; }
.destination-info-slide > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-right:3rem; }
.destination-info-heading { display:flex; min-width:0; align-items:flex-start; gap:.85rem; }
.destination-info-icon { display:grid; width:48px; height:48px; flex:none; place-items:center; border:1px solid color-mix(in srgb,var(--destination-accent) 25%,white); border-radius:15px; background:color-mix(in srgb,var(--destination-accent) 12%,white); color:var(--destination-accent); font-size:1.25rem; font-weight:900; }
.destination-info-dialog header span { color:var(--clay); font-size:.62rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.destination-info-dialog header #destination-info-type { color:var(--muted); }
.destination-info-dialog header h2 { margin:.3rem 0 0; font-size:clamp(1.65rem,5vw,2.35rem); letter-spacing:-.05em; line-height:1; }
.destination-info-dialog header #destination-info-category { display:inline-flex; margin-top:.55rem; border-radius:999px; padding:.3rem .55rem; background:color-mix(in srgb,var(--destination-accent) 12%,white); color:var(--destination-accent); font-size:.58rem; letter-spacing:.035em; text-transform:uppercase; }
#destination-info-close { position:absolute; z-index:6; top:1.25rem; right:1.25rem; display:grid; width:40px; height:40px; flex:none; place-items:center; border:1px solid rgba(18,49,48,.13); border-radius:50%; background:white; color:var(--pine); font-size:1.3rem; }
.destination-info-description { margin:1.2rem 0; color:#456360; font-size:.9rem; line-height:1.6; }
.destination-info-facts { display:grid; gap:.55rem; }
.destination-info-facts:empty { display:none; }
.destination-info-facts > div { display:grid; gap:.18rem; border:1px solid rgba(18,49,48,.09); border-radius:13px; padding:.75rem .85rem; background:rgba(255,255,255,.72); }
.destination-info-facts span { color:var(--muted); font-size:.58rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.destination-info-facts strong { overflow-wrap:anywhere; font-size:.76rem; }
.destination-info-nav { display:none; }
.destination-info-nav[hidden] { display:none; }
.destination-info-dialog > footer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.75rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid rgba(18,49,48,.09); }
.destination-info-dialog footer a { margin-right:auto; color:var(--pine); font-size:.7rem; font-weight:800; text-decoration:none; }
.destination-info-research { display:grid; grid-column:1 / -1; gap:.45rem; }
.destination-info-research > span { color:var(--muted); font-size:.54rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.destination-info-research > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; }
.destination-info-research a { display:flex; min-height:36px; align-items:center; justify-content:center; gap:.25rem; margin:0!important; border:1px solid color-mix(in srgb,var(--destination-accent) 18%,white); border-radius:999px; padding:.42rem .5rem; background:color-mix(in srgb,var(--destination-accent) 8%,white); color:var(--destination-accent)!important; font-size:.58rem!important; text-align:center; }
.destination-info-research a b { font-size:.56rem; }
.destination-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; padding:1.25rem .15rem .5rem; }
.destination-category-grid section { min-width:0; }
.destination-category-grid h5 { margin:0 0 .3rem; color:#806d64; font-size:.58rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.destination-category-grid section > div { display:grid; gap:.28rem; }
.destination-suggestion {
  display:flex;
  min-width:0;
  align-items:center;
  justify-content:space-between;
  gap:.65rem;
  border:1px solid rgba(18,49,48,.08);
  border-radius:11px;
  padding:.42rem .45rem .42rem .55rem;
  background:rgba(255,255,255,.68);
}
.destination-suggestion > div { display:grid; min-width:0; gap:.06rem; }
.destination-suggestion strong {
  overflow:hidden;
  font-size:.7rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.destination-suggestion small {
  overflow:hidden;
  color:var(--muted);
  font-size:.56rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.destination-suggestion .destination-list-add {
  flex:none;
  display:inline-flex;
  width:auto;
  min-width:3.2rem;
  height:1.7rem;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(18,49,48,.08);
  border-radius:999px;
  padding:0 .55rem;
  background:#e7f4f1;
  color:var(--pine);
  font-size:.56rem;
  font-weight:850;
}
.destination-list-add b { font-size:.56rem; }
.destination-quick-pill[draggable="true"],.destination-list-add[draggable="true"] { cursor:grab; }
.destination-quick-pill[draggable="true"]:active,.destination-list-add[draggable="true"]:active { cursor:grabbing; }
.destination-suggestion button.is-adding,.destination-quick-pill.is-adding { opacity:.6; pointer-events:none; }

@media (max-width:1120px) {
  .editor { width:min(100% - 2rem,1680px); }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { grid-template-columns:1fr; gap:3rem; }
  .planning-tools { display:grid; gap:2.5rem; background:none; }
  .place-explorer,.hit-list { grid-column:1; }
  .editor-panel[data-editor-panel="itinerary"] .calendar-view {
    grid-column:1;
    border-top:1px solid rgba(18,49,48,.1);
    border-left:0;
    padding:2.5rem 0 0;
  }
}

@media (max-width:760px) {
  .place-explorer-card { grid-template-columns:1fr; gap:1rem; }
  .place-explorer-card > .idea-bank-heading,
  .place-explorer-card > .explorer-type-choice,
  .place-explorer-card > .unified-destination-suggestions { grid-column:1; grid-row:auto; }
}

@media (max-width:720px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { gap:2.65rem; }
  .planning-tools {
    display:grid;
    gap:0;
    border:1px solid rgba(18,49,48,.11);
    border-radius:22px;
    padding:1.2rem;
    background:linear-gradient(150deg,rgba(255,254,250,.98),rgba(241,249,247,.9) 56%,rgba(255,248,232,.74));
    box-shadow:0 10px 26px rgba(18,49,48,.04);
  }
  .mobile-hit-intro { display:block; }
  .desktop-copy { display:none; }
  .mobile-copy { display:inline; }
  .place-explorer,.hit-list,.place-explorer-card,.hit-list .idea-banks,.hit-list-store { display:contents; }
  .place-explorer > .planner-heading,.place-explorer > .planner-help,.hit-list > .planner-heading,.hit-list > .planner-help,.place-explorer-card > .idea-bank-heading { display:none; }
  .hit-list-store > .idea-bank-heading { order:1; margin-bottom:1.1rem; }
  .place-explorer-card > .explorer-type-choice { order:2; }
  .hit-list-store > .hit-list-type-choice { display:none; }
  .hit-list-store > .quick-idea-form { order:3; }
  .place-explorer-card > .unified-destination-suggestions { order:4; min-width:0; }
  .hit-list-store > .quick-idea-message { order:5; }
  .hit-list-store > .hit-list-bank-heading { order:6; }
  .hit-list-store > .hit-placement-help { order:7; }
  .hit-list-store > .idea-tray { order:8; }
}

@media (max-width:560px) {
  .editor { width:calc(100% - 1.25rem); padding-top:.75rem; }
  .editor-head { margin:.75rem 0 1rem; }
  .idea-banks { gap:1.25rem; margin-top:1.1rem; }
  .idea-bank { padding:1.2rem; }
  .idea-bank-heading { display:grid; gap:.2rem; }
  .idea-bank-heading > small { max-width:none; text-align:left; }
  .idea-bank .quick-idea-form { grid-template-columns:minmax(0,1fr) auto; }
  .destination-category-grid { grid-template-columns:1fr; }
  .destination-quick-rail { display:flex; gap:.65rem; overflow-x:auto; padding:.1rem 2rem .45rem 0; scroll-padding-right:2rem; scroll-snap-type:x mandatory; }
  .destination-quick-card { width:min(300px,88%); min-height:112px; padding:.82rem; scroll-snap-align:start; }
  .destination-quick-card strong,
  .destination-explorer .destination-suggestion strong { display:-webkit-box; overflow:hidden; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .destination-quick-shell::after { display:block; }
  .destination-card-actions { display:grid; align-self:center; }
  .destination-card-actions button { min-width:66px; }
  .destination-explorer { align-items:end; padding:0; }
  .destination-explorer > section { display:grid; grid-template-rows:auto minmax(0,1fr); width:100%; height:92dvh; max-height:92dvh; overflow:hidden; border-radius:25px 25px 0 0; padding:0; }
  .destination-explorer > section > header { position:relative; z-index:6; margin:0; padding:1.15rem 1.25rem .95rem; border-bottom:1px solid rgba(18,49,48,.09); background:rgba(255,253,249,.98); box-shadow:0 8px 20px rgba(18,49,48,.055); }
  .destination-explorer > section > header p { margin-top:.4rem; }
  .destination-explorer .destination-category-grid { grid-template-columns:1fr; min-height:0; gap:1.85rem; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:.35rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom)); touch-action:pan-y; -webkit-overflow-scrolling:touch; }
  .destination-explorer .destination-group > header { margin-bottom:.8rem; padding:.9rem .15rem 0; }
  .destination-explorer .destination-group > header::after { align-self:center; flex:1; height:1px; margin-left:.25rem; background:color-mix(in srgb,var(--destination-accent) 22%,transparent); content:""; }
  .destination-explorer .destination-group > div { margin-left:1rem; padding-left:.75rem; border-left:2px solid color-mix(in srgb,var(--destination-accent) 18%,transparent); }
  .destination-explorer .destination-suggestion { grid-template-columns:34px minmax(0,1fr) auto; gap:.65rem; min-height:0; padding:.78rem; }
  .destination-explorer .destination-suggestion .destination-card-copy { padding-right:.15rem; }
  .destination-explorer .destination-suggestion .destination-card-actions { grid-column:3; grid-row:1; align-self:center; justify-content:stretch; margin:0; }
  .destination-explorer .destination-suggestion .destination-card-actions button { width:auto; min-width:64px; padding:.42rem .6rem; }
  .destination-info-shell { align-items:end; padding:0; }
  .destination-info-dialog { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:clamp(520px,68dvh,620px); max-height:calc(100dvh - .75rem); overflow:hidden; border-radius:25px 25px 0 0; padding:2.15rem 1.3rem 1.3rem; }
  .destination-info-dialog::before { display:none; }
  .destination-info-slide { min-height:0; overflow-x:hidden; overflow-y:auto; padding:.1rem .05rem .75rem; overscroll-behavior-y:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
  .destination-info-slide > header { padding-right:3.1rem; }
  #destination-info-close { top:1.15rem; right:1.15rem; }
  .destination-info-heading { gap:.7rem; }
  .destination-info-icon { width:42px; height:42px; border-radius:13px; }
  .destination-info-nav { position:absolute; z-index:4; inset:0; display:block; margin:0; padding:0; border:0; pointer-events:none; touch-action:pan-y; }
  .destination-info-nav button { position:absolute; z-index:4; top:50%; display:grid; width:30px; min-height:30px; place-items:center; border:1px solid color-mix(in srgb,var(--destination-accent) 18%,white); border-radius:50%; padding:0; background:color-mix(in srgb,var(--destination-accent) 8%,rgba(255,255,255,.92)); box-shadow:0 4px 12px rgba(18,49,48,.08); color:var(--destination-accent); font-size:.72rem; font-weight:900; opacity:.76; transform:translateY(-50%); backdrop-filter:blur(8px); }
  .destination-info-nav button { pointer-events:auto; }
  .destination-info-nav button:first-child { left:.38rem; }
  .destination-info-nav button:last-child { right:.38rem; }
  .destination-info-nav button span { display:none; }
  .destination-info-nav button:disabled { opacity:.35; }
  .destination-info-position { position:absolute; z-index:4; top:.9rem; left:50%; display:flex; min-width:54px; align-items:center; justify-content:center; gap:4px; pointer-events:none; transform:translateX(-50%); }
  .destination-info-position i { display:block; width:5px; height:5px; flex:none; border-radius:999px; background:color-mix(in srgb,var(--destination-accent) 30%,white); transition:width .22s ease,background .22s ease,transform .22s ease; }
  .destination-info-position i.is-active { width:18px; background:var(--destination-accent); animation:destination-position-in .24s ease both; }
  @keyframes destination-position-in { from { opacity:.45; transform:scaleX(.55); } to { opacity:1; transform:scaleX(1); } }
  .destination-info-slide.is-dragging { overflow-y:hidden; user-select:none; will-change:transform,opacity; }
  .destination-info-slide.is-swiping-next { animation:destination-info-next .4s cubic-bezier(.22,.8,.25,1) both; }
  .destination-info-slide.is-swiping-previous { animation:destination-info-previous .4s cubic-bezier(.22,.8,.25,1) both; }
  @keyframes destination-info-next { from { opacity:.28; transform:translateX(34px); } to { opacity:1; transform:none; } }
  @keyframes destination-info-previous { from { opacity:.28; transform:translateX(-34px); } to { opacity:1; transform:none; } }
  .destination-info-dialog > footer { display:grid; grid-template-columns:1fr; margin-top:.75rem; padding-top:.75rem; }
  .destination-info-research > div { gap:.32rem; }
  .destination-info-research a { min-height:38px; padding:.4rem .3rem; font-size:.55rem!important; }
  .destination-info-dialog footer a[hidden] { display:block; visibility:hidden; }
  .destination-info-dialog footer a { margin:0; text-align:center; }
  .destination-info-dialog footer .button { width:100%; }
  .destination-quick-pill { max-width:190px; }
  .idea-bank .idea-tray {
    grid-auto-columns:min(300px,88%);
    grid-auto-flow:column;
    grid-template-columns:none;
    margin-right:-1.2rem;
    overflow-x:auto;
    padding:.1rem 1.2rem .55rem 0;
    scroll-snap-type:x mandatory;
  }
  .destination-quick-card,
  .idea-bank .hit-item { min-width:0; height:144px; min-height:144px; max-height:144px; scroll-snap-align:start; }
  .destination-quick-card { width:min(300px,88%); }
  .idea-bank .hit-item { grid-template-columns:38px minmax(0,1fr) auto; width:100%; padding:.78rem 2rem .78rem .82rem; }
  .idea-bank .hit-item .hit-item-type-mark { grid-column:1; grid-row:1; }
  .idea-bank .hit-item .hit-item-copy { grid-column:2; grid-row:1; }
  .idea-bank .hit-item .item-actions { grid-column:3; grid-row:1; align-self:center; }
  .destination-quick-card .destination-card-actions button { min-width:62px; min-height:28px; padding:.3rem .48rem; font-size:.55rem; }
  .destination-quick-card .destination-card-actions,
  .destination-explorer .destination-card-actions { gap:.45rem; }
  .destination-suggestions-heading > small { max-width:105px; text-align:right; }
  .idea-bank .hit-item > .drag-grip { display:none; }
  .scratchpad-fab b { display:none; }
  .scratchpad-fab { width:48px; justify-content:center; padding:.5rem; }
}

@media (prefers-reduced-motion:reduce) {
  .destination-info-backdrop,.destination-info-dialog { transition:none; }
  .editor-workspace .notes-box { transition:none; }
  .destination-scroll-cue { animation:none; }
}

/* Final desktop itinerary cascade. Keep this after the legacy itinerary rules
   so the approved calm layout cannot be partially overridden. */
@media (min-width:1121px) {
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
    max-width:none;
    align-items:end;
    gap:3rem;
    margin-bottom:2rem;
    padding-bottom:1.8rem;
    border-bottom:1px solid rgba(18,49,48,.11);
  }
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro p { margin:0; }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { row-gap:1.8rem; }

  .place-explorer {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:.3rem 2rem;
    min-width:0;
    border-bottom:1px solid rgba(18,49,48,.11);
    padding:0 0 1.45rem;
  }
  .place-explorer > .planner-heading { grid-column:1; grid-row:1; margin:0; }
  .place-explorer > .planner-help { grid-column:1; grid-row:2; margin:.35rem 0 0; }
  .place-explorer > .place-explorer-card {
    display:contents;
    border:0;
    border-radius:0;
    padding:0;
    background:none;
    box-shadow:none;
  }
  .place-explorer-card > .idea-bank-heading { display:none; }
  .place-explorer-card > .explorer-type-choice {
    grid-column:2;
    grid-row:1 / span 2;
    width:280px;
    align-self:center;
    margin:0;
  }
  .place-explorer-card > .unified-destination-suggestions {
    grid-column:1 / -1;
    grid-row:3;
    min-width:0;
    margin-top:1rem;
  }
  .place-explorer-card .destination-suggestions { margin:0; padding:0; }
  .place-explorer-card .destination-suggestions-heading { margin-bottom:.75rem; }
  .place-explorer-card .destination-suggestions-heading > div > small,
  .place-explorer-card .destination-suggestions-heading > small { display:none; }
  .place-explorer-card .destination-quick-rail { gap:.75rem; padding:.05rem 2.35rem .25rem 0; }
  .place-explorer-card .destination-quick-card {
    grid-template-columns:38px minmax(145px,1fr) auto;
    width:340px;
    min-height:120px;
    gap:.7rem;
    border-color:rgba(18,49,48,.13);
    border-radius:14px;
    padding:.85rem;
    background:#fff;
    box-shadow:none;
  }
  .place-explorer-card .destination-quick-card::before {
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    border-radius:14px 0 0 14px;
    background:var(--destination-accent);
    content:"";
  }
  .place-explorer-card .destination-card-actions { display:flex; align-items:flex-start; gap:.3rem; }
  .place-explorer-card .destination-card-actions button { min-width:0; min-height:30px; border-radius:999px; padding:.36rem .55rem; }
  .place-explorer-card .destination-card-actions button[data-info-destination-suggestion],
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion] { width:30px; padding:0; font-size:0; }
  .place-explorer-card .destination-card-actions button[data-info-destination-suggestion]::before { content:"i"; font-size:.68rem; font-weight:900; }
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion]::before { content:"♡"; font-size:.85rem; }
  .place-explorer-card .destination-card-actions button[data-place-destination-suggestion],
  .place-explorer-card .destination-card-actions button[data-place-existing-itinerary] { background:var(--pine); color:white; }
  .place-explorer-card .destination-explore-open {
    display:inline-flex;
    width:auto;
    min-height:0;
    align-items:center;
    justify-content:flex-start;
    gap:.4rem;
    margin:.7rem 0 0 auto;
    border:0;
    padding:.25rem 0;
    background:transparent;
  }

  .hit-list .idea-banks { margin:0; }
  .hit-list .hit-list-store {
    border:0;
    border-radius:0;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .hit-list-store > .idea-bank-heading,
  .hit-list-store > .hit-list-type-choice,
  .hit-list-store > .quick-idea-form,
  .hit-list-store > .quick-idea-message { display:none; }
  .hit-list-store.is-composing { margin:.75rem 0 1rem; border:1px solid rgba(18,49,48,.11); border-radius:14px; padding:.9rem; background:#fff; }
  .hit-list-store.is-composing > .idea-bank-heading,
  .hit-list-store.is-composing > .hit-list-type-choice,
  .hit-list-store.is-composing > .quick-idea-form { display:grid; }
  .hit-list-bank-heading { justify-content:flex-end; margin:.45rem 0 .25rem; border-top:0; padding-top:0; }
  .hit-list-bank-heading > div { display:none; }
  .hit-placement-help { display:none!important; }
  .idea-bank .idea-tray { gap:.5rem; margin-top:.45rem; }
  .idea-bank .hit-item {
    grid-template-columns:13px 32px minmax(0,1fr) auto;
    min-height:70px;
    gap:.45rem;
    border-radius:13px;
    padding:.55rem .65rem;
    background:#fff;
    box-shadow:none;
  }
  .idea-bank .hit-item::before { width:3px; }
  .idea-bank .hit-item-type-mark { width:30px; height:30px; border:0; border-radius:10px; font-size:.76rem; }
  .idea-bank .hit-item-copy small { -webkit-line-clamp:1; }
  .idea-bank .item-actions { display:flex!important; }
  .idea-bank .hit-info { width:30px; min-width:30px; min-height:30px; padding:0; font-size:0; }
  .idea-bank .hit-info::before { content:"i"; font-size:.68rem; font-weight:900; }
  .idea-bank .edit-item { min-width:52px; min-height:30px; padding:.3rem .48rem; font-size:.56rem; }
}

@media (min-width:1121px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout {
    grid-template-columns:minmax(300px,.52fr) minmax(0,1.7fr);
  }
  .place-explorer-card > .explorer-type-choice button { white-space:nowrap; }
  .place-explorer-card .destination-quick-card { width:380px; }
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion] {
    width:auto;
    padding:.36rem .58rem;
    font-size:.54rem;
    font-weight:850;
  }
  .place-explorer-card .destination-card-actions button[data-save-destination-suggestion]::before { content:none; }
  .place-explorer-card .destination-card-status {
    top:.5rem;
    right:.6rem;
    padding:.24rem .48rem;
    background:color-mix(in srgb,var(--destination-accent) 9%,white);
    font-size:.52rem;
    font-weight:900;
    letter-spacing:.01em;
  }
  .place-explorer-card .destination-quick-card small {
    font-size:.58rem;
    line-height:1.2;
    letter-spacing:.075em;
  }
  .place-explorer-card .destination-quick-card strong {
    margin-top:.08rem;
    font-size:.96rem;
    font-weight:850;
    line-height:1.12;
    letter-spacing:-.018em;
  }
  .place-explorer-card .destination-quick-card p {
    margin-top:.28rem;
    font-size:.66rem;
    font-weight:500;
    line-height:1.42;
  }
  .place-explorer-card .destination-quick-rail .destination-action-long { display:inline; }
  .place-explorer-card .destination-quick-rail .destination-action-short { display:none; }
  .place-explorer-card .destination-quick-rail .destination-card-actions {
    display:grid;
    width:104px;
    align-self:center;
    gap:.32rem;
  }
  .place-explorer-card .destination-quick-rail .destination-card-actions button {
    width:100%;
    min-height:29px;
    padding:.34rem .5rem;
    font-size:.52rem;
  }
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-info-destination-suggestion] {
    width:100%;
    padding:.34rem .5rem;
    font-size:.52rem;
  }
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-info-destination-suggestion]::before { content:none; }
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-save-destination-suggestion] { width:100%; }
}
/* Editorial itinerary exploration. This final desktop layer intentionally
   replaces the card-heavy treatment while leaving the mobile flow untouched. */
.destination-explorer-workspace { display:contents; }
.destination-inline-detail { display:none; }
@media (min-width:1121px) {
  .place-explorer {
    padding-bottom:1.7rem;
  }
  .place-explorer-card > .unified-destination-suggestions { margin-top:1.35rem; }
  .place-explorer-card .destination-suggestions-heading { margin:0 0 .7rem; }
  .place-explorer-card .destination-suggestions-heading span {
    font-size:.68rem;
    letter-spacing:.1em;
  }
  .place-explorer-card .destination-quick-shell { border-top:1px solid rgba(18,49,48,.13); border-bottom:1px solid rgba(18,49,48,.13); }
  .place-explorer-card .destination-quick-shell::after { display:none; }
  .place-explorer-card .destination-quick-rail {
    display:grid;
    grid-auto-columns:minmax(270px,1fr);
    grid-auto-flow:column;
    gap:0;
    overflow-x:auto;
    padding:0;
    scroll-snap-type:x proximity;
  }
  .place-explorer-card .destination-quick-card {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr auto;
    width:auto;
    min-height:150px;
    gap:0;
    overflow:visible;
    border:0;
    border-radius:0;
    padding:1rem 1.15rem .95rem;
    background:transparent;
    scroll-snap-align:start;
  }
  .place-explorer-card .destination-quick-card + .destination-quick-card { border-left:1px solid rgba(18,49,48,.13); }
  .place-explorer-card .destination-quick-card::before,
  .place-explorer-card .destination-card-mark { display:none; }
  .place-explorer-card .destination-card-copy { grid-column:1; grid-row:1 / span 2; gap:.15rem; padding-right:.35rem; }
  .place-explorer-card .destination-quick-card small { font-size:.54rem; letter-spacing:.055em; }
  .place-explorer-card .destination-quick-card strong { max-width:240px; margin-top:.18rem; font-size:.98rem; white-space:normal; }
  .place-explorer-card .destination-quick-card p { max-width:260px; margin-top:.35rem; font-size:.65rem; -webkit-line-clamp:2; }
  .place-explorer-card .destination-quick-rail .destination-card-actions {
    display:flex;
    grid-column:1;
    grid-row:3;
    width:auto;
    align-items:center;
    justify-content:flex-start;
    gap:.72rem;
    margin-top:.72rem;
  }
  .place-explorer-card .destination-quick-rail .destination-card-actions button,
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-info-destination-suggestion],
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-save-destination-suggestion] {
    width:auto;
    min-height:0;
    border:0;
    border-radius:0;
    padding:0;
    background:transparent;
    color:var(--pine);
    font-size:.56rem;
  }
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-place-destination-suggestion],
  .place-explorer-card .destination-quick-rail .destination-card-actions button[data-place-existing-itinerary] {
    min-height:28px;
    margin-left:auto;
    border-radius:999px;
    padding:.32rem .65rem;
    background:var(--pine);
    color:white;
  }
  .place-explorer-card .destination-card-status { top:.75rem; right:.9rem; font-size:.52rem; }
  .place-explorer-card .destination-scroll-cue { display:none; }
  .place-explorer-card .destination-explore-open { margin-top:.8rem; font-size:.7rem; }

  .place-explorer-card .destination-suggestions-heading,
  .place-explorer-card .destination-quick-shell,
  .place-explorer-card .destination-explore-open { display:none; }

  .destination-explorer {
    position:static;
    display:block;
    overflow:visible;
    margin-top:0;
    padding:0;
    touch-action:auto;
  }
  .destination-explorer[hidden] { display:none; }
  .destination-explorer-backdrop { display:none; }
  .destination-explorer > section {
    width:100%;
    max-width:none;
    max-height:none;
    overflow:visible;
    border:0;
    border-top:0;
    border-radius:0;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .destination-explorer > section > header { display:none; }
  .destination-explorer > section > header h3 { font-size:1.45rem; }
  .destination-explorer > section > header p { max-width:520px; font-size:.68rem; }
  .destination-explorer-close { width:auto; height:auto; border:0; border-radius:0; padding:.25rem 0; background:transparent; font-size:0; }
  .destination-explorer-close::before { color:var(--muted); font-size:.6rem; font-weight:800; content:"Collapse explore ↑"; }
  .destination-explorer-workspace { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(330px,.62fr); gap:2rem; align-items:start; }
  .destination-explorer .destination-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; padding:0; }
  .destination-explorer .destination-group > header { margin:0; border-top:3px solid var(--destination-accent); padding:.65rem 0 .45rem; }
  .destination-explorer .destination-group-mark { display:none; }
  .destination-explorer .destination-category-grid h5 { font-size:.66rem; letter-spacing:.07em; text-transform:uppercase; }
  .destination-explorer .destination-group > header small { font-size:.5rem; }
  .destination-explorer .destination-group > div { display:grid; gap:0; }
  .destination-explorer .destination-suggestion {
    display:grid;
    grid-template-columns:28px minmax(0,1fr) auto;
    min-height:72px;
    gap:.55rem;
    border:0;
    border-top:1px solid rgba(18,49,48,.12);
    border-radius:0;
    padding:.72rem 0;
    background:transparent;
    box-shadow:none;
    cursor:default;
    transition:background .16s ease;
  }
  .destination-explorer .destination-suggestion .destination-card-copy { cursor:pointer; }
  .destination-explorer .destination-suggestion:hover,
  .destination-explorer .destination-suggestion:focus-visible { outline:0; background:color-mix(in srgb,var(--destination-wash) 52%,white); }
  .destination-explorer .destination-suggestion .destination-card-copy {
    grid-column:2;
    grid-row:1;
    width:auto;
    min-width:0;
    overflow:hidden;
  }
  .destination-explorer .destination-suggestion.is-selected { margin:0 -.55rem; padding-right:.55rem; padding-left:.55rem; background:color-mix(in srgb,var(--destination-wash) 65%,white); }
  .destination-explorer .destination-suggestion .destination-card-mark { width:28px; height:28px; border:0; border-radius:9px; }
  .destination-explorer .destination-suggestion .destination-card-copy > small { display:none; }
  .destination-explorer .destination-suggestion strong { font-size:.86rem; line-height:1.2; }
  .destination-explorer .destination-suggestion p { display:block; min-width:0; margin-top:.22rem; overflow:hidden; font-size:.62rem; line-height:1.35; white-space:nowrap; text-overflow:ellipsis; }
  .destination-explorer .destination-suggestion .destination-card-actions { display:flex; width:auto; min-width:max-content; align-items:center; gap:.38rem; }
  .destination-explorer .destination-suggestion .destination-card-actions button {
    display:grid;
    width:32px;
    min-width:32px;
    height:32px;
    min-height:32px;
    place-items:center;
    border:1px solid color-mix(in srgb,var(--destination-accent) 22%,white);
    border-radius:50%;
    padding:0;
    background:color-mix(in srgb,var(--destination-accent) 8%,white)!important;
    color:var(--pine)!important;
    font-size:0;
  }
  .destination-explorer .destination-suggestion .destination-card-actions button::before {
    display:block;
    width:17px;
    height:17px;
    background:currentColor;
    content:"";
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-info-destination-suggestion] { order:3; }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-info-destination-suggestion]::before {
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
  }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-info-destination-suggestion] { display:none; }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-save-destination-suggestion],
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-saved { order:2; }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-save-destination-suggestion]::before,
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-saved::before {
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10M4 12h8M4 18h7'/%3E%3Cpath d='M18 13v6M15 16h6'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10M4 12h8M4 18h7'/%3E%3Cpath d='M18 13v6M15 16h6'/%3E%3C/svg%3E");
  }
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-saved::before {
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10M4 12h8M4 18h7'/%3E%3Cpath d='m15 16 2 2 4-5'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h10M4 12h8M4 18h7'/%3E%3Cpath d='m15 16 2 2 4-5'/%3E%3C/svg%3E");
  }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-destination-suggestion],
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-existing-itinerary],
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-placed { order:1; }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-destination-suggestion]::before,
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-existing-itinerary]::before,
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-placed::before {
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='M15 15h4M17 13v4'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='M15 15h4M17 13v4'/%3E%3C/svg%3E");
  }
  .destination-explorer .destination-suggestion .destination-card-actions .destination-card-placed::before {
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='m14 16 2 2 4-5'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='m14 16 2 2 4-5'/%3E%3C/svg%3E");
  }
  .destination-explorer .destination-suggestion .destination-card-actions button:disabled { cursor:default; opacity:.48; }
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-destination-suggestion],
  .destination-explorer .destination-suggestion .destination-card-actions button[data-place-existing-itinerary] { display:grid; }
  .destination-explorer .destination-card-status { top:.15rem; right:0; font-size:.45rem; }

  .destination-inline-detail { position:sticky; top:1rem; display:block; min-width:0; }
  .destination-inline-detail-card {
    border:1px solid rgba(18,49,48,.12);
    border-radius:18px;
    padding:1.2rem;
    background:linear-gradient(145deg,#fffdfa,color-mix(in srgb,var(--destination-wash) 55%,white));
    box-shadow:0 12px 28px rgba(18,49,48,.055);
  }
  .destination-inline-detail-heading { display:flex; align-items:flex-start; gap:.7rem; }
  .destination-inline-detail-heading .destination-card-mark { width:38px; height:38px; border:0; }
  .destination-inline-detail-heading small { color:var(--destination-accent); font-size:.52rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
  .destination-inline-detail-heading h4 { margin:.18rem 0 0; font-size:1.25rem; letter-spacing:-.035em; line-height:1.05; }
  .destination-inline-detail-card > p { margin:1rem 0; color:var(--muted); font-size:.7rem; line-height:1.55; }
  .destination-inline-fit { display:grid; gap:.15rem; border-left:3px solid var(--destination-accent); padding:.6rem .7rem; background:color-mix(in srgb,var(--destination-wash) 70%,white); }
  .destination-inline-fit strong { font-size:.55rem; text-transform:uppercase; }
  .destination-inline-fit span { color:var(--muted); font-size:.61rem; line-height:1.4; }
  .destination-inline-detail dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:.8rem 0; }
  .destination-inline-detail dl:empty { display:none; }
  .destination-inline-detail dl div { border-top:1px solid rgba(18,49,48,.12); padding-top:.55rem; }
  .destination-inline-detail dt { color:var(--muted); font-size:.48rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
  .destination-inline-detail dd { margin:.2rem 0 0; overflow-wrap:anywhere; font-size:.62rem; font-weight:800; }
  .destination-inline-detail nav { display:flex; flex-wrap:wrap; gap:.7rem; border-top:1px solid rgba(18,49,48,.12); padding-top:.7rem; }
  .destination-inline-detail nav a { color:var(--pine); font-size:.5rem; font-weight:800; text-decoration:none; }
  .destination-inline-actions { display:flex; justify-content:flex-end; gap:.45rem; margin-top:.85rem; }
  .destination-inline-actions button,.destination-inline-status { border-radius:999px; padding:.5rem .75rem; font-size:.56rem; font-weight:850; }
  .destination-inline-secondary { border:1px solid rgba(18,49,48,.15); background:white; color:var(--pine); }
  .destination-inline-primary { border:1px solid var(--pine); background:var(--pine); color:white; }
  .destination-inline-status { background:var(--destination-wash); color:var(--destination-accent); }

  .hit-list .hit-list-store { border-top:1px solid rgba(18,49,48,.12); }
  .hit-list-bank-heading { margin:.65rem 0 .15rem; }
  .idea-bank .idea-tray { gap:0; }
  .idea-bank .hit-item {
    grid-template-columns:11px 26px minmax(0,1fr) auto;
    min-height:62px;
    border:0;
    border-bottom:1px solid rgba(18,49,48,.12);
    border-radius:0;
    padding:.6rem .1rem;
    background:transparent;
  }
  .idea-bank .hit-item::before { display:none; }
  .idea-bank .hit-item-type-mark { width:26px; height:26px; border-radius:8px; }
}

/* Wide desktop itinerary: browse, inspect, and save across the top;
   organize the complete trip in a full-width calendar below. */
@media (min-width:1320px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout {
    grid-template-columns:minmax(0,1.42fr) minmax(310px,.72fr) minmax(285px,.6fr);
    grid-template-rows:auto auto;
    gap:2rem 1.6rem;
    align-items:start;
  }
  .editor-panel[data-editor-panel="itinerary"] .planning-tools { display:contents; }
  .editor-panel[data-editor-panel="itinerary"] .place-explorer {
    grid-column:1 / 3;
    grid-row:1;
    align-self:start;
    margin:0;
    border-right:1px solid rgba(18,49,48,.12);
    border-bottom:0;
    padding:0 1.6rem 0 0;
  }
  .editor-panel[data-editor-panel="itinerary"] .hit-list {
    grid-column:3;
    grid-row:1;
    align-self:start;
    min-width:0;
    margin:0;
    padding:0;
  }
  .editor-panel[data-editor-panel="itinerary"] .calendar-view {
    grid-column:1 / -1;
    grid-row:2;
    min-width:0;
    margin:0;
    border-left:0;
    border-top:1px solid rgba(18,49,48,.12);
    padding:1.65rem 0 0;
  }
  .place-explorer-card > .unified-destination-suggestions { margin-top:1.15rem; }
  .destination-explorer-workspace {
    grid-template-columns:minmax(0,1.36fr) minmax(300px,.68fr);
    gap:1.45rem;
  }
  .destination-explorer .destination-category-grid { gap:0 1.35rem; }
  .destination-inline-detail { top:1rem; }
  .hit-list .planner-heading { min-height:54px; align-items:flex-start; }
  .hit-list-add-toggle { min-height:32px; padding:.4rem .6rem; }
  .hit-list .hit-list-store { margin-top:1.15rem; }
  .hit-list-bank-heading { min-height:24px; margin:.45rem 0 .15rem; }
  .idea-bank .hit-item { grid-template-columns:9px 24px minmax(0,1fr) auto; }
  .idea-bank .hit-item-type-mark { width:24px; height:24px; }
  .calendar-view .calendar-grid {
    grid-auto-columns:minmax(0,1fr);
    overflow:visible;
  }
}

/* Quick-create is intentionally a name-first handoff. Placement happens in
   the lightweight calendar sheet; richer guest-facing details remain optional. */
.editor-form.plan-create-mode,
.editor-form.meal-create-mode { max-width:620px; }
.plan-create-mode .plan-progress,
.meal-create-mode .plan-progress,
.slot-create-mode .plan-progress,
.plan-create-mode .plan-status-choice,
.meal-create-mode .plan-status-choice,
.plan-create-mode .plan-suggestion-library,
.meal-create-mode .plan-suggestion-library,
.plan-create-mode .plan-destination-picker,
.meal-create-mode .plan-destination-picker,
.plan-create-mode .plan-type-choice,
.meal-create-mode .plan-type-choice { display:none!important; }
.plan-create-mode [data-plan-step="1"],
.meal-create-mode [data-plan-step="1"],
.slot-create-mode [data-plan-step="1"] {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  border:0;
  border-radius:0;
  padding:.25rem 0;
  background:transparent;
}
.plan-create-mode [data-plan-step="1"] .plan-question-heading,
.meal-create-mode [data-plan-step="1"] .plan-question-heading,
.slot-create-mode [data-plan-step="1"] .plan-question-heading { display:none; }
.plan-create-mode [data-plan-step="1"] .plan-title-field,
.meal-create-mode [data-plan-step="1"] .plan-title-field { grid-column:1; }

@media (max-width:720px) {
  .plan-create-mode .plan-wizard-actions,
  .meal-create-mode .plan-wizard-actions { display:flex; align-items:center; justify-content:flex-end; }
  .plan-create-mode .plan-wizard-actions .button,
  .meal-create-mode .plan-wizard-actions .button { width:auto; min-width:148px; padding:.72rem 1rem; }
  .plan-create-mode .plan-wizard-actions .form-message,
  .meal-create-mode .plan-wizard-actions .form-message { flex:1; text-align:left; }
}

/* Outcome-driven itinerary workspace */
.itinerary-workspace-tabs { display:none; }
.place-explorer-card {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.8rem;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
  box-shadow:none;
}
.destination-search { position:relative; grid-column:1; grid-row:2; min-width:0; }
.destination-search label { display:block; }
.destination-search input {
  width:100%;
  min-height:48px;
  border:1px solid rgba(18,49,48,.15);
  border-radius:999px;
  padding:.75rem 3rem .75rem 1.1rem;
  background:#fff;
  color:var(--ink);
  font-size:.82rem;
  font-weight:650;
  box-shadow:0 6px 18px rgba(18,49,48,.04);
}
.destination-search input:focus { outline:3px solid rgba(104,185,207,.3); border-color:var(--pine); }
.destination-search > button { position:absolute; top:50%; right:.7rem; width:32px; height:32px; border:0; border-radius:50%; background:#eef5f3; color:var(--pine); font-size:1rem; transform:translateY(-50%); }
.place-explorer-card > .explorer-type-choice {
  grid-column:1;
  grid-row:1;
  display:flex;
  justify-self:start;
  gap:1.4rem;
  margin:0;
  border-bottom:1px solid rgba(18,49,48,.11);
  border-radius:0;
  padding:0;
  background:transparent;
}
.place-explorer-card > .explorer-type-choice button {
  position:relative;
  min-height:38px;
  border-radius:0;
  padding:.25rem .05rem .65rem;
  background:transparent;
  box-shadow:none;
  color:var(--muted);
  font-size:.72rem;
  font-weight:780;
}
.place-explorer-card > .explorer-type-choice button::after {
  position:absolute;
  right:0;
  bottom:-1px;
  left:0;
  height:2px;
  border-radius:999px;
  background:transparent;
  content:"";
  transform:scaleX(.45);
  transition:background .2s ease,transform .2s ease;
}
.place-explorer-card > .explorer-type-choice button:hover,.place-explorer-card > .explorer-type-choice button:focus-visible { color:var(--pine); }
.place-explorer-card > .explorer-type-choice button.is-active { background:transparent; box-shadow:none; color:var(--pine); }
.place-explorer-card > .explorer-type-choice button.is-active::after { background:var(--pine); transform:scaleX(1); }
.destination-browser { display:grid; grid-column:1; grid-row:3; grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); gap:1.4rem; min-width:0; border-top:1px solid rgba(18,49,48,.11); padding-top:1.15rem; }
.destination-search-results { display:grid; min-width:0; align-content:start; gap:1.2rem; }
@media (min-width:1121px) {
  .place-explorer > .place-explorer-card {
    display:grid;
    grid-column:1 / -1;
    grid-row:2;
    margin-top:.7rem;
  }
}
.destination-category-filters {
  display:flex;
  gap:.45rem;
  overflow-x:auto;
  padding:.05rem .1rem .4rem;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.destination-category-filters::-webkit-scrollbar { display:none; }
.destination-category-filters button {
  display:flex;
  flex:none;
  align-items:center;
  gap:.42rem;
  min-height:38px;
  scroll-snap-align:start;
  border:1px solid transparent;
  border-radius:999px;
  padding:.5rem .72rem;
  background:#f0f4f2;
  color:var(--muted);
  font-size:.62rem;
  font-weight:850;
  line-height:1;
}
.destination-category-filters button:hover,.destination-category-filters button:focus-visible { border-color:rgba(18,49,48,.18); background:#e8f1ee; color:var(--pine); }
.destination-category-filters button.is-active { border-color:rgba(18,49,48,.14); background:#e3f1ed; color:var(--pine); box-shadow:none; }
.destination-category-filters button b { display:grid; min-width:18px; height:18px; place-items:center; border-radius:999px; background:rgba(18,49,48,.08); font-size:.5rem; }
.destination-category-filters button.is-active b { background:rgba(18,49,48,.1); }
.destination-result-group { display:grid; min-width:0; }
.destination-result-group-filtered { border-top:1px solid rgba(18,49,48,.1); animation:destination-results-in .24s cubic-bezier(.22,1,.36,1) both; }
@keyframes destination-results-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .destination-result-group-filtered { animation:none; } }
.destination-result-group > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:2px solid var(--pine); padding:0 .2rem .55rem; }
.destination-result-group > header strong { color:var(--pine); font-size:.68rem; font-weight:900; letter-spacing:.075em; text-transform:uppercase; }
.destination-result-group > header span { color:var(--muted); font-size:.58rem; font-weight:800; }
.destination-result-row {
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:.7rem;
  width:100%;
  min-height:70px;
  border:0;
  border-bottom:1px solid rgba(18,49,48,.1);
  padding:.68rem .3rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
}
.destination-result-row:hover,.destination-result-row:focus-visible,.destination-result-row.is-selected { background:color-mix(in srgb,var(--destination-wash,#eff8f5) 68%,white); }
.destination-result-row.is-selected { box-shadow:inset 3px 0 0 var(--destination-accent,var(--pine)); }
.destination-result-mark { display:grid; width:32px; height:32px; place-items:center; border-radius:10px; background:color-mix(in srgb,var(--destination-accent,var(--pine)) 10%,white); color:var(--destination-accent,var(--pine)); font-size:.72rem; font-weight:900; }
.destination-result-row > span:nth-child(2) { display:grid; min-width:0; gap:.08rem; }
.destination-result-row small { color:var(--destination-accent,var(--pine)); font-size:.52rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.destination-result-row strong { overflow:hidden; font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
.destination-result-row em { overflow:hidden; color:var(--muted); font-size:.62rem; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.destination-result-row > b { border-radius:999px; padding:.28rem .45rem; background:#eef6f2; color:#25705d; font-size:.51rem; white-space:nowrap; }
.destination-result-row > i { color:var(--muted); font-size:1.1rem; font-style:normal; }
.destination-selection-detail { position:relative; min-width:0; }
.destination-detail-panel { position:sticky; top:1rem; display:grid; gap:.9rem; border:1px solid rgba(18,49,48,.13); border-radius:20px; padding:1.15rem; background:linear-gradient(145deg,var(--destination-wash,#f1f8f6),white 82%); box-shadow:0 12px 30px rgba(18,49,48,.06); }
.destination-detail-content { display:grid; align-content:start; gap:.9rem; min-width:0; }
.destination-selection-close,.destination-selection-backdrop { display:none; }
.destination-detail-panel header span { color:var(--destination-accent,var(--pine)); font-size:.55rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.destination-detail-panel h4 { margin:.2rem 0 0; font-size:1.2rem; letter-spacing:-.035em; }
.destination-detail-content > p { margin:0; color:var(--muted); font-size:.72rem; line-height:1.55; }
.destination-detail-fit { display:grid; gap:.2rem; border-left:3px solid var(--destination-accent,var(--pine)); padding:.65rem .75rem; background:rgba(255,255,255,.62); }
.destination-detail-fit strong,.destination-guest-peek > span { color:var(--pine); font-size:.51rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.destination-detail-fit span { color:var(--muted); font-size:.66rem; line-height:1.4; }
.destination-detail-panel dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:0; }
.destination-detail-panel dt { color:var(--muted); font-size:.49rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.destination-detail-panel dd { margin:.18rem 0 0; font-size:.65rem; font-weight:800; line-height:1.35; }
.destination-research-links { display:flex; flex-wrap:wrap; gap:.55rem; border-top:1px solid rgba(18,49,48,.1); padding-top:.7rem; }
.destination-research-links a { color:var(--pine); font-size:.52rem; font-weight:800; text-decoration:none; }
.destination-guest-peek { display:grid; gap:.45rem; border-radius:13px; padding:.72rem; background:white; }
.destination-guest-peek > div { display:grid; gap:.06rem; border-left:3px solid var(--clay); padding-left:.65rem; }
.destination-guest-peek small { color:var(--clay); font-size:.52rem; font-weight:850; text-transform:uppercase; }
.destination-guest-peek strong { font-size:.76rem; }
.destination-guest-peek p { margin:0; color:var(--muted); font-size:.6rem; }
.destination-guest-peek em { color:var(--muted); font-size:.56rem; font-style:normal; }
.destination-detail-panel footer { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:.45rem; }
.destination-detail-panel footer button,.destination-detail-status { border-radius:999px; padding:.55rem .75rem; font-size:.58rem; font-weight:850; }
.destination-detail-secondary { border:1px solid rgba(18,49,48,.16); background:white; color:var(--pine); }
.destination-detail-primary { border:1px solid var(--pine); background:var(--pine); color:white; }
.destination-detail-status { background:#e8f4ef; color:#28715d; }
.destination-detail-empty,.destination-no-catalog,.destination-custom-result { display:grid; gap:.45rem; border:1px dashed rgba(18,49,48,.17); border-radius:16px; padding:1.1rem; color:var(--muted); }
.destination-detail-empty span,.destination-custom-result > span { color:var(--clay); font-size:.56rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.destination-detail-empty strong,.destination-no-catalog strong,.destination-custom-result h4 { margin:0; color:var(--ink); font-size:.9rem; }
.destination-detail-empty p,.destination-no-catalog p,.destination-custom-result p { margin:0; font-size:.67rem; line-height:1.45; }
.destination-custom-result > div { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.35rem; }
.destination-custom-result button { border:1px solid rgba(18,49,48,.15); border-radius:999px; padding:.55rem .72rem; background:white; color:var(--pine); font-size:.6rem; font-weight:850; }
.destination-custom-result button:last-child { border-color:var(--pine); background:var(--pine); color:white; }

.plan-context-preview { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:1rem; border-top:1px solid rgba(18,49,48,.12); border-bottom:1px solid rgba(18,49,48,.12); padding:1rem 0; }
.plan-context-preview > div { display:grid; align-content:start; gap:.25rem; }
.plan-context-preview > div span { color:var(--clay); font-size:.55rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.plan-context-preview > div strong { font-size:.75rem; line-height:1.4; }
.plan-context-preview > div button { justify-self:start; margin-top:.35rem; border:0; padding:.25rem 0; background:transparent; color:var(--pine); font-size:.62rem; font-weight:850; }
.plan-context-preview article { display:grid; gap:.12rem; border-left:3px solid var(--clay); padding:.7rem .8rem; background:#fffaf4; }
.plan-context-preview article small { color:var(--clay); font-size:.55rem; font-weight:850; text-transform:uppercase; }
.plan-context-preview article h4 { margin:0; font-size:.9rem; }
.plan-context-preview article p,.plan-context-preview article em { margin:0; color:var(--muted); font-size:.62rem; font-style:normal; }
.plan-context-preview article b { margin-top:.25rem; color:#28715d; font-size:.54rem; }

.calendar-readiness {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:.9rem 0 1rem;
  border-top:1px solid rgba(18,49,48,.1);
  border-bottom:1px solid rgba(18,49,48,.1);
  padding:.75rem .1rem;
}
.calendar-readiness[hidden] { display:none; }
.calendar-readiness > div:first-child { display:grid; gap:.12rem; }
.calendar-readiness span { color:var(--clay); font-size:.51rem; font-weight:900; letter-spacing:.075em; text-transform:uppercase; }
.calendar-readiness strong { font-size:.78rem; line-height:1.3; }
.calendar-readiness small { color:var(--muted); font-size:.6rem; line-height:1.4; }
.calendar-readiness-meta { display:flex; flex:none; align-items:center; gap:.7rem; }
.calendar-readiness-meta b { border-radius:999px; padding:.38rem .55rem; background:#edf5f2; color:#357367; font-size:.55rem; white-space:nowrap; }
.calendar-readiness-meta button { border:0; padding:.35rem 0; background:transparent; color:var(--pine); font-size:.6rem; font-weight:850; }

.placement-suggestion,.mobile-place-suggestion {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-left:3px solid var(--pine);
  padding:.7rem .8rem;
  background:#eef7f4;
}
.placement-suggestion[hidden],.mobile-place-suggestion[hidden] { display:none; }
.placement-suggestion > div,.mobile-place-suggestion > div { display:grid; gap:.08rem; }
.placement-suggestion span,.mobile-place-suggestion span { color:#34776b; font-size:.5rem; font-weight:900; letter-spacing:.075em; text-transform:uppercase; }
.placement-suggestion strong,.mobile-place-suggestion strong { font-size:.72rem; }
.placement-suggestion small,.mobile-place-suggestion small { color:var(--muted); font-size:.58rem; line-height:1.35; }
.placement-suggestion button,.mobile-place-suggestion button { flex:none; border:1px solid rgba(18,49,48,.15); border-radius:999px; padding:.48rem .65rem; background:white; color:var(--pine); font-size:.56rem; font-weight:850; }
.event-edit-mode [data-plan-step="3"][hidden] { display:none!important; }

@media (min-width:721px) {
  .plan-form.event-edit-mode { inset:0 0 0 auto; width:min(580px,100%); max-width:580px; height:100dvh; max-height:100dvh; border-radius:24px 0 0 24px; transform:none; animation:event-editor-drawer-in .3s cubic-bezier(.22,1,.36,1) both; }
  .plan-form.event-edit-mode.is-closing { animation:event-editor-drawer-out .24s cubic-bezier(.4,0,1,1) both; }
  .event-edit-mode [data-plan-step="1"],.event-edit-mode .event-edit-placement,.event-edit-mode [data-plan-step="3"] { border:0; border-top:1px solid rgba(18,49,48,.1); border-radius:0; padding:1rem 0; background:transparent; box-shadow:none; }
  .event-edit-mode [data-plan-step="1"]::before,.event-edit-mode .event-edit-placement::before,.event-edit-mode [data-plan-step="3"]::before { display:none; }
  .event-edit-mode [data-plan-step="3"] > .plan-question,.event-edit-mode [data-plan-step="3"] > .meal-links,.event-edit-mode [data-plan-step="3"] > .event-photo-manager { border:0; border-top:1px solid rgba(18,49,48,.1); border-radius:0; padding:1rem 0; background:transparent; }
  @keyframes event-editor-drawer-in { from { opacity:0; transform:translateX(28px) scale(.99); } to { opacity:1; transform:none; } }
  @keyframes event-editor-drawer-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateX(22px) scale(.99); } }
}

@media (max-width:1120px) and (min-width:721px) {
  .destination-browser { grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); }
}

@media (max-width:720px) {
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro { margin-bottom:.75rem; }
  .editor-panel[data-editor-panel="itinerary"] > .panel-intro > p { display:none; }
  .itinerary-workspace-tabs {
    position:sticky;
    z-index:30;
    top:var(--organizer-tabs-offset,0);
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:.25rem;
    margin:0 -.35rem 1rem;
    border:1px solid rgba(18,49,48,.1);
    border-radius:999px;
    padding:.25rem;
    background:rgba(246,247,243,.96);
    box-shadow:0 8px 20px rgba(18,49,48,.08);
    backdrop-filter:blur(12px);
  }
  .itinerary-workspace-tabs button { border:0; border-radius:999px; padding:.65rem .45rem; background:transparent; color:var(--muted); font-size:.68rem; font-weight:850; }
  .itinerary-workspace-tabs button.is-active { background:white; color:var(--pine); box-shadow:0 3px 10px rgba(18,49,48,.08); }
  .itinerary-workspace-tabs span { margin-left:.2rem; border-radius:999px; padding:.12rem .32rem; background:#e6f1ee; font-size:.52rem; }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout { display:block; }
  .planning-tools { display:contents!important; }
  .mobile-hit-intro { display:none!important; }
  .place-explorer,.hit-list { display:block!important; }
  [data-itinerary-workspace][hidden] { display:none!important; }
  .place-explorer > .planner-heading,.hit-list > .planner-heading { display:flex!important; margin-bottom:.75rem; }
  .place-explorer-card { display:grid!important; grid-template-columns:1fr; gap:.75rem; }
  .destination-search,.place-explorer-card > .explorer-type-choice,.destination-browser { grid-column:1; }
  .place-explorer-card > .explorer-type-choice { grid-row:1; justify-self:stretch; }
  .place-explorer-card > .explorer-type-choice button { flex:1; }
  .destination-browser { display:block; border-top:0; padding-top:.25rem; }
  .destination-category-filters { margin-right:-.35rem; padding-right:1rem; }
  .destination-selection-detail:not(.is-open) { display:none; }
  .destination-result-row { min-height:76px; padding:.72rem .35rem; }
  .destination-result-row strong,.destination-result-row em { white-space:normal; }
  .destination-result-row em { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .destination-selection-detail.is-open { position:fixed; z-index:240; inset:0; display:grid; align-items:end; }
  .destination-selection-backdrop { position:absolute; inset:0; display:block; border:0; background:rgba(18,49,48,.5); backdrop-filter:blur(6px); }
  .destination-detail-panel { position:relative; top:auto; z-index:1; max-height:90dvh; overflow-y:auto; overscroll-behavior:contain; border-radius:24px 24px 0 0; padding:1.2rem 1.15rem calc(1.15rem + env(safe-area-inset-bottom)); background:#fffdfa; }
  .destination-selection-close { position:absolute; top:1rem; right:1rem; display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:white; color:var(--pine); font-size:1.2rem; }
  .destination-detail-panel header { padding-right:3rem; }
  .destination-detail-panel dl { grid-template-columns:1fr; }
  .destination-detail-panel footer { position:sticky; bottom:calc(-1.15rem - env(safe-area-inset-bottom)); margin:0 -1.15rem calc(-1.15rem - env(safe-area-inset-bottom)); border-top:1px solid rgba(18,49,48,.1); padding:.85rem 1.15rem calc(.85rem + env(safe-area-inset-bottom)); background:rgba(255,253,250,.96); backdrop-filter:blur(10px); }
  .hit-list .idea-banks,.hit-list-store { display:block!important; }
  .hit-list-store { margin:0; }
  .hit-list-store > .hit-list-bank-heading { display:flex; }
  .calendar-view { padding-top:0!important; border-top:0!important; }
  .plan-context-preview { grid-template-columns:1fr; }
  .calendar-readiness { align-items:flex-start; }
  .calendar-readiness-meta { display:grid; justify-items:end; }
  .placement-suggestion,.mobile-place-suggestion { align-items:flex-start; }
}

@media (max-width:480px) {
  .calendar-readiness { display:grid; }
  .calendar-readiness-meta { display:flex; justify-content:space-between; }
  .mobile-place-suggestion { display:grid; }
  .mobile-place-suggestion button { justify-self:start; }
}

/* Calendar-first guest page builder */
.itinerary-builder-message {
  position:fixed;
  z-index:360;
  right:1.25rem;
  bottom:1.25rem;
  max-width:min(360px,calc(100vw - 2rem));
  margin:0;
  border:1px solid rgba(18,49,48,.12);
  border-radius:999px;
  padding:.7rem .95rem;
  background:#123130;
  color:#fff;
  box-shadow:0 14px 36px rgba(18,49,48,.2);
  font-size:.68rem;
  font-weight:800;
  transition:opacity .18s ease,transform .18s ease;
}
.itinerary-builder-message:empty { display:none; }
.itinerary-builder-message.is-fading { opacity:0; transform:translateY(5px); }
.calendar-builder-actions { display:flex; align-items:center; gap:.7rem; }
.builder-tool-launches { display:flex; align-items:stretch; gap:.45rem; }
.builder-tool-launches button {
  display:grid;
  min-width:138px;
  gap:.08rem;
  border:1px solid rgba(18,49,48,.13);
  border-radius:13px;
  padding:.48rem .65rem;
  background:#fff;
  color:var(--pine);
  text-align:left;
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.builder-tool-launches button:hover,.builder-tool-launches button:focus-visible { border-color:rgba(18,49,48,.3); background:#f5faf8; transform:translateY(-1px); }
.builder-tool-launches button.is-active { border-color:rgba(18,49,48,.28); background:#e9f4f1; }
.builder-tool-launches span { font-size:.62rem; font-weight:900; }
.builder-tool-launches small { color:var(--muted); font-size:.49rem; font-weight:700; }
.builder-tool-launches small b { color:inherit; }
.destination-detail-back { display:none; }

.calendar-event .guest-plan-period {
  order:1;
  color:var(--muted);
  font-size:.52rem;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.calendar-event .guest-plan-title { order:2; padding-right:6.4rem; font-size:.78rem; line-height:1.25; }
.calendar-event .guest-plan-location { order:3; color:var(--muted); font-size:.61rem; line-height:1.3; text-transform:none; }
.calendar-event .guest-plan-note { order:4; display:-webkit-box; overflow:hidden; margin:.08rem 0 0; color:var(--muted); font-size:.57rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.calendar-event .event-status { position:absolute; z-index:1; top:.5rem; right:.55rem; order:0; max-width:6rem; border-radius:999px; padding:.2rem .4rem; font-size:.55rem; font-weight:900; line-height:1.15; text-align:center; text-transform:uppercase; }
.calendar-event.status-confirmed .event-status { background:#e3f3eb; color:#24715b; }
.calendar-event.status-deciding .event-status { background:#fff0c8; color:#9a6714; }

@media (min-width:721px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout {
    position:relative;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto!important;
    gap:0!important;
    align-items:start;
  }
  .editor-panel[data-editor-panel="itinerary"] .mobile-hit-intro { display:none!important; }
  .editor-panel[data-editor-panel="itinerary"] .calendar-view {
    grid-column:1 / -1!important;
    grid-row:1!important;
    width:100%;
    min-width:0;
    margin:0!important;
    border:0!important;
    padding:.15rem 0 0!important;
  }
  .calendar-heading { align-items:flex-start; margin-bottom:.7rem; }
  .calendar-heading > div:first-child { flex:none; }
  .calendar-builder-actions { justify-content:flex-end; flex-wrap:wrap; }
  .itinerary-supporting-shell { min-width:0; }
  .itinerary-supporting-shell[hidden] { display:none!important; }
  .itinerary-supporting-panel {
    min-width:0;
    border:1px solid rgba(18,49,48,.12);
    border-radius:20px;
    background:#fffdfa;
    box-shadow:0 16px 38px rgba(18,49,48,.08);
  }
  .itinerary-supporting-header {
    position:sticky;
    z-index:5;
    top:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    border-bottom:1px solid rgba(18,49,48,.1);
    padding:.7rem .75rem;
    background:rgba(255,253,250,.96);
    backdrop-filter:blur(12px);
  }
  .itinerary-supporting-header nav { display:flex; gap:.25rem; border-radius:999px; padding:.2rem; background:#f0f3f1; }
  .itinerary-supporting-header nav button { border:0; border-radius:999px; padding:.48rem .62rem; background:transparent; color:var(--muted); font-size:.61rem; font-weight:850; }
  .itinerary-supporting-header nav button.is-active { background:#fff; color:var(--pine); box-shadow:0 3px 10px rgba(18,49,48,.08); }
  .itinerary-supporting-header nav span { margin-left:.15rem; border-radius:999px; padding:.1rem .28rem; background:#e5f1ed; font-size:.48rem; }
  .itinerary-supporting-close { display:grid; width:32px; height:32px; place-items:center; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:#fff; color:var(--pine); font-size:1rem; }
  .itinerary-supporting-backdrop { display:none; }
  .editor-panel[data-editor-panel="itinerary"] .planning-tools { display:block!important; padding:1rem; }
  .editor-panel[data-editor-panel="itinerary"] .place-explorer,
  .editor-panel[data-editor-panel="itinerary"] .hit-list { display:block!important; margin:0!important; border:0!important; padding:0!important; }
  .editor-panel[data-editor-panel="itinerary"] .place-explorer[hidden],
  .editor-panel[data-editor-panel="itinerary"] .hit-list[hidden] { display:none!important; }
  .editor-panel[data-editor-panel="itinerary"] .place-explorer > .planner-heading,
  .editor-panel[data-editor-panel="itinerary"] .hit-list > .planner-heading { display:flex!important; min-height:0; margin:0 0 .9rem; }
  .editor-panel[data-editor-panel="itinerary"] .place-explorer > .place-explorer-card { display:grid!important; grid-column:auto; grid-row:auto; margin:0; }
  .place-explorer-card > .explorer-type-choice { grid-column:1; grid-row:1; }
  .destination-search { grid-column:1; grid-row:2; }
  .destination-browser { grid-column:1; grid-row:3; grid-template-columns:minmax(0,1fr); gap:.75rem; padding-top:.8rem; }
  .destination-selection-detail { display:none; }
  .destination-selection-detail.is-open { display:block; }
  .itinerary-supporting-shell:has(.destination-selection-detail.is-open) .destination-search-results { display:none; }
  .destination-detail-panel { position:static; top:auto; gap:.75rem; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; }
  .destination-detail-back { display:inline-flex; justify-self:start; border:0; padding:.15rem 0; background:transparent; color:var(--pine); font-size:.59rem; font-weight:850; }
  .destination-selection-close { display:none; }
  .destination-detail-panel footer { position:sticky; bottom:-1rem; margin:0 -1rem -1rem; border-top:1px solid rgba(18,49,48,.1); padding:.75rem 1rem; background:rgba(255,253,250,.97); backdrop-filter:blur(10px); }
  .destination-result-row { min-height:66px; }
  .hit-list .idea-banks,.hit-list .hit-list-store { display:block!important; }
  .hit-list .hit-list-store { margin:0!important; border-top:1px solid rgba(18,49,48,.1); padding-top:.8rem; }
  .hit-list .idea-bank-heading { display:none; }
  .hit-list .idea-tray { margin-top:.8rem; }
  .hit-list .hit-item { min-height:66px; }
}

.plan-context-preview article .guest-plan-period { color:var(--clay); font-size:.55rem; font-weight:850; text-transform:uppercase; }
.plan-context-preview article .guest-plan-title { font-size:.9rem; }
.plan-context-preview article .guest-plan-location,
.plan-context-preview article .guest-plan-note { margin:0; color:var(--muted); font-size:.62rem; font-style:normal; }

@media (min-width:1120px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout.is-supporting-open { grid-template-columns:minmax(340px,420px) minmax(0,1fr)!important; gap:1.25rem!important; }
  .planner-layout.is-supporting-open .itinerary-supporting-shell { grid-column:1; grid-row:1; display:block; align-self:start; }
  .planner-layout.is-supporting-open .calendar-view { grid-column:2!important; }
  .itinerary-supporting-panel { position:sticky; top:1rem; max-height:calc(100dvh - 2rem); overflow:auto; overscroll-behavior:contain; }
  .planner-layout.is-supporting-open .builder-tool-launches { display:none; }
  .planner-layout.is-supporting-open .calendar-heading { display:grid; gap:.7rem; }
  .planner-layout.is-supporting-open .calendar-builder-actions { justify-content:flex-start; }
}

@media (min-width:721px) and (max-width:1119px) {
  body.itinerary-tools-open { overflow:hidden; }
  .itinerary-supporting-shell { position:fixed; z-index:230; inset:0; display:grid; grid-template-columns:minmax(0,440px) 1fr; }
  .itinerary-supporting-backdrop { position:absolute; inset:0; display:block; border:0; background:rgba(18,49,48,.44); backdrop-filter:blur(5px); }
  .itinerary-supporting-panel { position:relative; z-index:1; width:min(440px,calc(100vw - 48px)); height:100dvh; overflow-y:auto; overscroll-behavior:contain; border-width:0 1px 0 0; border-radius:0 22px 22px 0; animation:itinerary-tool-in .28s cubic-bezier(.22,1,.36,1) both; }
  .itinerary-supporting-shell:has(.destination-selection-detail.is-open) .itinerary-supporting-panel { visibility:hidden; }
  .itinerary-supporting-shell > .destination-selection-detail.is-open {
    position:relative;
    z-index:2;
    grid-column:1;
    grid-row:1;
    width:min(440px,calc(100vw - 48px));
    height:100dvh;
    overflow-y:auto;
    overscroll-behavior:contain;
    border-radius:0 22px 22px 0;
    padding:1rem;
    background:#fffdfa;
    animation:itinerary-tool-in .28s cubic-bezier(.22,1,.36,1) both;
  }
  .itinerary-supporting-shell > .destination-selection-detail .destination-detail-panel {
    position:relative;
    display:flex;
    min-height:calc(100dvh - 2rem);
    flex-direction:column;
    gap:.9rem;
  }
  .itinerary-supporting-shell > .destination-selection-detail .destination-selection-close {
    position:absolute;
    top:0;
    right:0;
    display:grid;
    width:36px;
    height:36px;
    place-items:center;
    border:1px solid rgba(18,49,48,.13);
    border-radius:50%;
    background:#fffdfa;
    color:var(--pine);
  }
  .itinerary-supporting-shell > .destination-selection-detail .destination-detail-panel footer { margin-top:auto; }
  .itinerary-supporting-shell.is-closing .itinerary-supporting-panel,
  .itinerary-supporting-shell.is-closing > .destination-selection-detail.is-open { animation:itinerary-tool-out .24s ease both; }
  @keyframes itinerary-tool-in { from { opacity:0; transform:translateX(-28px); } to { opacity:1; transform:none; } }
  @keyframes itinerary-tool-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateX(-28px); } }
}

@media (max-width:720px) {
  .itinerary-builder-message { right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom)); left:1rem; max-width:none; border-radius:14px; text-align:center; }
  .calendar-builder-actions { display:block; }
  .builder-tool-launches { display:none; }
  .itinerary-supporting-shell,.itinerary-supporting-panel { display:contents; }
  .itinerary-supporting-backdrop,.itinerary-supporting-header { display:none; }
  .destination-detail-back { display:none; }
  .calendar-event .guest-plan-title { padding-right:5.6rem; }
}

/* Quiet itinerary canvas */
.builder-tool-launches button {
  display:inline-flex;
  min-width:0;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  border-radius:999px;
  padding:.61rem .78rem;
  text-align:center;
}
.builder-tool-launches span { font-size:.61rem; }
.builder-tool-launches small { display:grid; min-width:18px; height:18px; place-items:center; border-radius:999px; background:#e8f2ef; color:#386d65; font-size:.46rem; }
.mobile-calendar-copy { display:none; }

@media (min-width:721px) {
  .calendar-heading { align-items:center; border-bottom:1px solid rgba(18,49,48,.1); padding-bottom:.85rem; }
  .calendar-builder-actions { flex-wrap:nowrap; }
  .calendar-readiness {
    min-height:42px;
    margin:.7rem 0 1rem;
    border:0;
    border-radius:12px;
    padding:.58rem .72rem;
    background:#f4f7f5;
  }
  .calendar-readiness > div:first-child { display:flex; align-items:center; gap:.42rem; }
  .calendar-readiness span { color:#6c8581; font-size:.47rem; }
  .calendar-readiness strong { font-size:.66rem; }
  .calendar-readiness small { color:#788d89; font-size:.57rem; }
  .calendar-readiness small::before { margin-right:.42rem; content:"·"; }
  .calendar-readiness-meta button { font-size:.58rem; }
  .calendar-readiness-meta b { padding:.24rem .44rem; font-size:.49rem; }

  .calendar-view .calendar-grid {
    gap:.9rem;
    overflow-x:auto;
    border:0;
    padding:.25rem .25rem 1rem;
    background:transparent;
  }
  .calendar-view .calendar-day {
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fffefa;
    box-shadow:0 9px 24px rgba(18,49,48,.035);
  }
  .calendar-view .calendar-day + .calendar-day { border-left:1px solid var(--line); }
  .calendar-view .calendar-day > header {
    gap:.12rem;
    min-height:62px;
    border:0;
    border-bottom:1px solid rgba(18,49,48,.1);
    padding:.8rem .9rem .72rem;
    background:transparent;
  }
  .calendar-view .calendar-day > header span { color:var(--clay); font-size:.47rem; letter-spacing:.08em; }
  .calendar-view .calendar-day > header strong { font-size:.9rem; letter-spacing:-.025em; }
  .calendar-view .calendar-slot {
    min-height:126px;
    border:0;
    border-top:1px solid rgba(18,49,48,.075);
    padding:.78rem .85rem .65rem;
    background:transparent!important;
  }
  .calendar-view .calendar-day > header + .calendar-slot { border-top:0; }
  .calendar-view .slot-label { margin-bottom:.42rem; color:#78908c; font-size:.48rem; letter-spacing:.085em; }
  .calendar-view .slot-items { gap:0; }
  .calendar-view .calendar-event {
    gap:.08rem;
    overflow:visible;
    border:0;
    border-bottom:1px solid rgba(18,49,48,.085);
    border-radius:0;
    padding:.56rem 4.3rem .56rem .62rem;
    background:transparent;
    box-shadow:none;
  }
  .calendar-view .calendar-event::before { top:.48rem; bottom:.48rem; width:2px; border-radius:2px; }
  .calendar-view .calendar-event.status-deciding { border-style:solid; background:#fffaf0; }
  .calendar-view .calendar-event.status-confirmed { background:transparent; }
  .calendar-view .calendar-event .guest-plan-period { display:none; }
  .calendar-view .calendar-event .guest-plan-title { padding:0; font-size:.73rem; letter-spacing:-.012em; }
  .calendar-view .calendar-event .guest-plan-location { font-size:.56rem; }
  .calendar-view .calendar-event .guest-plan-note { font-size:.53rem; -webkit-line-clamp:1; }
  .calendar-view .calendar-event .event-status {
    top:.58rem;
    right:.35rem;
    max-width:5.2rem;
    padding:0;
    background:transparent!important;
    font-size:.6rem;
    letter-spacing:.025em;
    text-transform:none;
  }
  .calendar-view .calendar-event.status-confirmed .event-status { color:#2b765f; }
  .calendar-view .calendar-event.status-deciding .event-status { color:#9b6a1c; }
  .calendar-view .slot-open {
    display:flex;
    grid-auto-flow:unset;
    align-items:center;
    gap:.62rem;
    border:0;
    padding:.52rem .1rem .05rem;
    opacity:1;
  }
  .calendar-view .slot-open button {
    border:0;
    padding:.12rem 0;
    background:transparent;
    color:#49716c;
    font-size:.56rem;
    font-weight:780;
    opacity:.52;
    transform:none;
    transition:opacity .16s ease,transform .16s ease,color .16s ease;
  }
  .calendar-view .slot-open button:hover,
  .calendar-view .slot-open button:focus-visible {
    color:var(--pine);
    opacity:1;
    transform:translateY(-1px);
  }
  .calendar-view .all-day-calendar-slot { min-height:auto; background:#fffaf0!important; }

  .plan-form.event-edit-mode .plan-form-head { position:relative; display:grid; grid-template-columns:1fr; gap:.85rem; padding-right:3rem; }
  .event-edit-mode .plan-form-head > div:first-child { display:grid; gap:.18rem; }
  .event-edit-mode .plan-head-actions { display:block; }
  .event-edit-mode .plan-close { position:absolute; top:0; right:0; }
  .event-edit-mode .plan-status-choice legend { text-align:left; }
  .event-edit-mode .plan-status-choice > div { width:fit-content; }
  .event-edit-mode [data-plan-step="1"] { grid-template-columns:1fr; }
  .event-edit-mode .plan-title-field,
  .event-edit-mode .plan-type-choice { grid-column:1; }
  .event-edit-mode .plan-context-preview { grid-template-columns:1fr; gap:.7rem; }
  .event-edit-mode .plan-context-preview article { min-height:92px; }
}

@media (min-width:1120px) {
  .editor-panel[data-editor-panel="itinerary"] .planner-layout.is-supporting-open { grid-template-columns:minmax(0,1fr)!important; gap:0!important; }
  .planner-layout.is-supporting-open .calendar-view { grid-column:1!important; }
  .planner-layout.is-supporting-open .builder-tool-launches { display:flex; }
  .planner-layout.is-supporting-open .calendar-heading { display:flex; }
  .planner-layout.is-supporting-open .calendar-builder-actions { justify-content:flex-end; }
  .planner-layout.is-supporting-open .itinerary-supporting-shell {
    position:fixed;
    z-index:230;
    inset:0;
    display:block;
    height:100dvh;
    align-self:stretch;
    overflow:visible;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-panel {
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    width:420px;
    height:100dvh;
    max-height:none;
    overflow-y:auto;
    overscroll-behavior:contain;
    pointer-events:auto;
    border-width:0 1px 0 0;
    border-radius:0 24px 24px 0;
    box-shadow:16px 0 54px rgba(18,49,48,.16);
    animation:itinerary-tool-desktop-in .3s cubic-bezier(.22,1,.36,1) both;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell:has(.destination-selection-detail.is-open) .itinerary-supporting-panel {
    border-radius:0;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-backdrop { display:none; }
  .planner-layout.is-supporting-open .itinerary-supporting-panel [data-itinerary-workspace]:not([hidden]) {
    animation:itinerary-tool-content-in .22s ease both;
  }
  .planner-layout.is-supporting-open .destination-search-results { display:grid!important; }
  .planner-layout.is-supporting-open .destination-selection-detail.is-open {
    position:absolute;
    z-index:232;
    top:0;
    bottom:0;
    left:420px;
    display:block;
    width:420px;
    overflow:hidden;
    pointer-events:auto;
    animation:itinerary-detail-desktop-in .28s cubic-bezier(.22,1,.36,1) both;
  }
  .planner-layout.is-supporting-open .destination-selection-detail.is-closing {
    animation:itinerary-detail-desktop-out .22s ease both;
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-selection-backdrop { display:none; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-panel {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:0;
    width:100%;
    height:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
    border:0;
    border-left:1px solid rgba(18,49,48,.1);
    border-radius:0 24px 24px 0;
    padding:1.25rem 1.2rem 0;
    background:linear-gradient(145deg,var(--destination-wash,#f1f8f6),#fffdfa 82%);
    box-shadow:18px 0 54px rgba(18,49,48,.16);
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-back { margin-bottom:.2rem; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-selection-close {
    position:absolute;
    z-index:2;
    top:1rem;
    right:1rem;
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    border:1px solid rgba(18,49,48,.13);
    border-radius:50%;
    background:rgba(255,253,250,.92);
    color:var(--pine);
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-panel footer {
    position:sticky;
    z-index:2;
    bottom:0;
    flex:0 0 auto;
    margin:auto -1.2rem 0;
    border-top:1px solid rgba(18,49,48,.1);
    padding:1rem 1.2rem;
    background:rgba(255,253,250,.96);
    backdrop-filter:blur(10px);
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-content {
    padding-bottom:1.25rem;
  }
  .planner-layout.is-supporting-open .destination-selection-detail footer button,
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-status {
    min-height:40px;
    padding:.65rem .9rem;
    font-size:.64rem;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-closing .itinerary-supporting-panel {
    animation:itinerary-tool-desktop-out .25s ease both;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-closing .destination-selection-detail.is-open {
    animation:itinerary-detail-desktop-out .22s ease both;
  }
  @keyframes itinerary-detail-desktop-in { from { opacity:0; transform:translateX(-22px); } to { opacity:1; transform:none; } }
  @keyframes itinerary-detail-desktop-out { from { opacity:1; transform:none; } to { opacity:0; transform:translateX(-22px); } }
  @keyframes itinerary-tool-content-in { from { opacity:0; translate:0 5px; } to { opacity:1; translate:none; } }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .itinerary-supporting-panel { animation:none; }
}

@media (max-width:720px) {
  .desktop-calendar-copy { display:none; }
  .mobile-calendar-copy { display:inline; }
}

/* Modern organizer workspace shell */
body.organizer-editor-open { overflow:hidden; background:#f5f6f3; }
body.organizer-editor-open > .site-header { display:none; }
body.organizer-editor-open > main { width:100%; max-width:none; }
.organizer-editor-open .editor { width:100%; max-width:none; margin:0; padding:0; }
.organizer-shell { display:grid; width:100%; height:100dvh; grid-template-columns:248px minmax(0,1fr); background:#f5f6f3; }
.organizer-sidebar { position:relative; z-index:181; display:flex; min-width:0; height:100dvh; flex-direction:column; border-right:1px solid rgba(18,49,48,.1); padding:1.15rem .85rem max(1rem,env(safe-area-inset-bottom)); background:#fff; box-shadow:4px 0 24px rgba(18,49,48,.025); }
.organizer-sidebar-header { display:flex; min-height:50px; align-items:center; justify-content:space-between; gap:.6rem; padding:0 .55rem .85rem; }
.organizer-sidebar-header { order:0; }
.organizer-brand { display:flex; min-width:0; align-items:center; gap:.65rem; color:var(--ink); font-size:.94rem; font-weight:900; letter-spacing:-.035em; text-decoration:none; }
.organizer-brand .brand-mark { height:25px; transform:scale(.82); transform-origin:left center; }
.organizer-sidebar-close { display:none; width:38px; height:38px; place-items:center; border:1px solid rgba(18,49,48,.14); border-radius:50%; background:white; color:var(--pine); font-size:1.35rem; }
.organizer-back,.editor-nav button,.organizer-sidebar-utilities button,.organizer-account-toggle { position:relative; display:grid; width:100%; min-height:46px; grid-template-columns:22px minmax(0,1fr) auto; align-items:center; gap:.75rem; border:0; border-radius:10px; padding:.65rem .75rem; background:transparent; color:#526a69; font-size:.79rem; font-weight:800; text-align:left; }
.organizer-back { margin:.15rem 0 .8rem; border-bottom:1px solid rgba(18,49,48,.08); border-radius:0; padding-bottom:1rem; color:var(--pine); }
.organizer-back { order:1; }
.organizer-back svg,.editor-nav svg,.organizer-sidebar-utilities svg,.organizer-account-toggle > svg,.organizer-menu-trigger svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.organizer-sidebar .editor-nav { order:2; display:grid; gap:.2rem; overflow:visible; border:0; padding:0; }
.organizer-sidebar .editor-nav button { flex:none; min-height:46px; border:0; border-radius:10px; padding:.65rem .75rem; background:transparent; color:#526a69; font-size:.79rem; }
.organizer-sidebar .editor-nav button::before { position:absolute; inset:8px auto 8px -14px; width:3px; border-radius:0 3px 3px 0; background:transparent; content:""; }
.organizer-sidebar .editor-nav button.is-active { background:#edf5f3; color:var(--pine); }
.organizer-sidebar .editor-nav button.is-active::before { background:var(--pine); }
.organizer-sidebar .editor-nav button:active { transform:none; }
.organizer-ready { display:grid; width:18px; height:18px; place-items:center; border-radius:50%; background:#e5f4ee; color:#28755f; font-size:.63rem; font-style:normal; font-weight:950; }
.organizer-ready[hidden] { display:none; }
.organizer-sidebar-utilities { order:3; display:grid; gap:.2rem; margin-top:auto; border-top:1px solid rgba(18,49,48,.09); padding-top:.75rem; }
.organizer-sidebar-utilities button { color:#526a69; }
.organizer-account { position:relative; order:4; margin-top:.55rem; padding-top:.55rem; border-top:1px solid rgba(18,49,48,.09); }
.organizer-account-toggle { grid-template-columns:34px minmax(0,1fr) 16px; min-height:54px; padding:.55rem; }
.organizer-account-toggle > span:nth-child(2) { display:grid; min-width:0; gap:.05rem; }
.organizer-account-toggle b { color:var(--ink); font-size:.75rem; }
.organizer-account-toggle small { overflow:hidden; color:#718483; font-size:.6rem; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.organizer-avatar { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; background:#edf5f3; color:var(--pine); font-size:.72rem; font-weight:900; }
.organizer-account-toggle > svg { width:16px; height:16px; }
.organizer-account-menu { position:absolute; z-index:3; right:.25rem; bottom:calc(100% + .35rem); left:.25rem; border:1px solid rgba(18,49,48,.12); border-radius:12px; padding:.35rem; background:white; box-shadow:0 14px 35px rgba(18,49,48,.14); }
.organizer-account-menu[hidden] { display:none; }
.organizer-account-menu button { width:100%; min-height:40px; border:0; border-radius:8px; padding:.6rem .75rem; background:transparent; color:#a84a3e; font-size:.74rem; font-weight:850; text-align:left; }
.organizer-canvas { min-width:0; height:100dvh; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; background:#f7f8f5; }
.organizer-mobile-bar { display:none; }
.organizer-sidebar-overlay { display:none; }
.organizer-canvas .editor-workspace { display:block; min-height:100%; padding:clamp(1.4rem,3vw,3rem); }
.organizer-canvas .editor-panels { margin:0; }
.organizer-canvas .editor-panel { width:min(100%,1280px); margin:0 auto; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; }
.organizer-canvas .editor-panel[data-editor-panel="itinerary"] { width:100%; max-width:none; }
.organizer-canvas .editor-panel[data-editor-panel="stay"],.organizer-canvas .editor-panel[data-editor-panel="people"],.organizer-canvas .editor-panel[data-editor-panel="payments"],.organizer-canvas .editor-panel[data-editor-panel="links"] { width:min(100%,1240px); }
.organizer-canvas .editor-panel[hidden] { display:none!important; }
.organizer-canvas .editor-head { display:block; margin:0 0 2.4rem; border-bottom:1px solid rgba(18,49,48,.1); padding:0 0 2rem; }
.organizer-canvas .editor-head > div { max-width:900px; }
.organizer-canvas .editor-head h1 { font-size:clamp(2.8rem,6vw,5.4rem); }
.organizer-canvas .panel-intro { margin-top:0; }
.organizer-canvas .editor-panel.is-active { animation:organizer-section-in .2s ease both; }
@keyframes organizer-section-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.organizer-canvas .notes-box { position:fixed; z-index:190; right:1.25rem; bottom:1.25rem; display:grid; width:min(380px,calc(100vw - 2.5rem)); max-width:none; max-height:min(72vh,620px); grid-template-columns:1fr; gap:1rem; margin:0; overflow:auto; border:1px solid rgba(18,49,48,.12); border-radius:20px; padding:1.25rem; visibility:hidden; background:#f3faf8; box-shadow:0 24px 70px rgba(18,49,48,.18); opacity:0; transform:translateY(12px) scale(.98); transform-origin:bottom right; transition:opacity .2s ease,transform .22s ease,visibility .2s; }
.organizer-canvas .notes-box.is-open { visibility:visible; opacity:1; transform:none; }
.organizer-canvas .notes-box textarea { min-height:180px; font-size:16px; }
.organizer-canvas .notes-box .scratchpad-close { display:grid; }

@media (min-width:721px) and (max-width:1100px) {
  .organizer-shell { grid-template-columns:76px minmax(0,1fr); }
  .organizer-sidebar { padding-right:.55rem; padding-left:.55rem; }
  .organizer-sidebar-header { justify-content:center; padding-right:0; padding-left:0; }
  .organizer-brand > span:last-child,.organizer-back > span,.organizer-sidebar .editor-nav button > span,.organizer-sidebar-utilities button > span,.organizer-account-toggle > span:nth-child(2),.organizer-account-toggle > svg { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .organizer-brand .brand-mark { transform:scale(.78); transform-origin:center; }
  .organizer-back,.organizer-sidebar .editor-nav button,.organizer-sidebar-utilities button,.organizer-account-toggle { display:grid; min-height:48px; grid-template-columns:1fr; place-items:center; padding:.65rem; }
  .organizer-back { padding-bottom:1rem; }
  .organizer-sidebar .editor-nav button::after,.organizer-back::after,.organizer-sidebar-utilities button::after,.organizer-account-toggle::after { position:absolute; z-index:8; top:50%; left:calc(100% + 12px); width:max-content; max-width:190px; border-radius:8px; padding:.45rem .6rem; visibility:hidden; background:#173f3e; box-shadow:0 8px 24px rgba(18,49,48,.18); color:white; content:attr(data-label); font-size:.68rem; font-weight:800; opacity:0; pointer-events:none; transform:translate(-5px,-50%); transition:.15s ease; }
  .organizer-sidebar .editor-nav button:is(:hover,:focus-visible)::after,.organizer-back:is(:hover,:focus-visible)::after,.organizer-sidebar-utilities button:is(:hover,:focus-visible)::after,.organizer-account-toggle:is(:hover,:focus-visible)::after { visibility:visible; opacity:1; transform:translate(0,-50%); }
  .organizer-ready { position:absolute; top:7px; right:6px; width:15px; height:15px; font-size:.52rem; }
  .organizer-avatar { width:34px!important; height:34px!important; clip:auto!important; }
  .organizer-account-menu { position:fixed; right:auto; bottom:1rem; left:82px; width:170px; }
  .organizer-canvas .editor-workspace { padding:1.5rem; }
  .planner-layout.is-supporting-open .itinerary-supporting-shell { inset:0 0 0 76px; }
}

@media (min-width:1101px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell { inset:0 0 0 248px; }
  .planner-layout.is-supporting-open .itinerary-supporting-panel { left:0; }
}

@media (max-width:720px) {
  body.organizer-editor-open { overflow:auto; background:#f7f8f5; }
  .organizer-shell { display:block; height:auto; min-height:100dvh; }
  .organizer-canvas { height:auto; min-height:100dvh; overflow:visible; }
  .organizer-mobile-bar { position:sticky; z-index:175; top:0; display:grid; min-height:calc(58px + env(safe-area-inset-top)); grid-template-columns:44px minmax(0,1fr) auto; align-items:end; gap:.7rem; border-bottom:1px solid rgba(18,49,48,.1); padding:env(safe-area-inset-top) .8rem .65rem; background:rgba(255,255,255,.94); backdrop-filter:blur(16px); }
  .organizer-menu-trigger { display:grid; width:42px; height:42px; place-items:center; border:0; border-radius:10px; background:transparent; color:var(--pine); }
  .organizer-mobile-bar > strong { align-self:center; overflow:hidden; font-size:.9rem; letter-spacing:-.02em; text-overflow:ellipsis; white-space:nowrap; }
  .organizer-mobile-preview { align-self:center; min-height:38px; border:1px solid rgba(14,85,87,.18); border-radius:999px; padding:.45rem .7rem; background:#edf7f5; color:var(--pine); font-size:.7rem; font-weight:850; }
  .organizer-sidebar { position:fixed; z-index:220; inset:0 auto 0 0; width:min(320px,88vw); height:100dvh; padding-top:max(1rem,env(safe-area-inset-top)); visibility:hidden; box-shadow:16px 0 60px rgba(18,49,48,.2); opacity:0; transform:translateX(-102%); transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease,visibility .28s; }
  .organizer-sidebar.is-open { visibility:visible; opacity:1; transform:none; }
  .organizer-sidebar-close { display:grid; }
  .organizer-sidebar-overlay { position:fixed; z-index:210; inset:0; display:block; border:0; visibility:hidden; background:rgba(18,49,48,.34); opacity:0; backdrop-filter:blur(3px); transition:opacity .2s ease,visibility .2s; }
  .organizer-nav-open .organizer-sidebar-overlay { visibility:visible; opacity:1; }
  body.organizer-nav-open { overflow:hidden; touch-action:none; }
  .organizer-canvas .editor-workspace { min-height:calc(100dvh - 58px); padding:1.15rem 1rem 3rem; }
  .organizer-canvas .editor-panel,.organizer-canvas .editor-panel[data-editor-panel] { width:100%; max-width:none; margin:0; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; }
  .organizer-canvas .editor-head { margin-bottom:1.6rem; padding-bottom:1.4rem; }
  .organizer-canvas .editor-head h1 { font-size:clamp(2.35rem,12vw,3.6rem); }
  .organizer-canvas .editor-head > div > p:last-child { font-size:.86rem; }
  .organizer-canvas .notes-box { right:.75rem; bottom:calc(.75rem + env(safe-area-inset-bottom)); width:calc(100vw - 1.5rem); max-height:72dvh; }
}

@media (prefers-reduced-motion:reduce) {
  .organizer-sidebar,.organizer-sidebar-overlay,.organizer-canvas .notes-box { transition:none; }
  .organizer-canvas .editor-panel.is-active { animation:none; }
}

/* Unified itinerary editor: every create, place, and edit path uses this drawer. */
.plan-form.unified-plan-drawer {
  --drawer-pad:1.45rem;
  z-index:240;
  inset:0 0 0 auto;
  display:block;
  width:min(560px,calc(100vw - 76px));
  height:100dvh;
  max-height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  border:0;
  border-left:1px solid rgba(18,49,48,.12);
  border-radius:0;
  padding:0 var(--drawer-pad);
  background:#fffdfa;
  box-shadow:-18px 0 60px rgba(18,49,48,.18);
  transform:none;
  animation:unified-plan-drawer-in .3s cubic-bezier(.22,1,.36,1) both;
}
.plan-form-backdrop { position:fixed; z-index:235; inset:0; width:100%; height:100%; border:0; padding:0; background:rgba(18,49,48,.22); backdrop-filter:blur(2px); }
.plan-form-backdrop[hidden] { display:none; }
.plan-form.unified-plan-drawer.is-closing { animation:unified-plan-drawer-out .22s cubic-bezier(.4,0,1,1) both; }
@keyframes unified-plan-drawer-in { from { opacity:.7; transform:translateX(32px); } to { opacity:1; transform:none; } }
@keyframes unified-plan-drawer-out { to { opacity:0; transform:translateX(28px); } }
.unified-plan-drawer .plan-form-head,
.unified-plan-drawer.event-edit-mode .plan-form-head {
  position:sticky;
  z-index:5;
  top:0;
  margin:0 calc(var(--drawer-pad) * -1);
  padding:1.15rem var(--drawer-pad);
  border-bottom:1px solid rgba(18,49,48,.1);
  background:rgba(255,253,250,.96);
  backdrop-filter:blur(16px);
}
.unified-plan-drawer .plan-form-head h3 { font-size:1.45rem; }
.unified-plan-drawer .plan-form-head #plan-step-copy { max-width:330px; font-size:.76rem; }
.unified-plan-drawer .plan-progress { display:none!important; }
.unified-plan-drawer [data-plan-step],
.unified-plan-drawer.event-edit-mode [data-plan-step="1"],
.unified-plan-drawer.event-edit-mode [data-plan-step="2"],
.unified-plan-drawer.event-edit-mode [data-plan-step="3"] {
  display:grid!important;
  gap:1rem;
  margin:0;
  border:0;
  border-bottom:1px solid rgba(18,49,48,.1);
  border-radius:0;
  padding:1.35rem 0;
  background:transparent;
  box-shadow:none;
  grid-template-columns:minmax(0,1fr)!important;
}
.unified-plan-drawer [data-plan-step] > * { min-width:0; max-width:100%; grid-column:1!important; }
.unified-plan-drawer .placement-category { display:none!important; width:100%; overflow:hidden; }
.unified-plan-drawer .placement-category > div { display:flex; max-width:100%; gap:.35rem; overflow-x:auto; padding-bottom:.15rem; scrollbar-width:none; }
.unified-plan-drawer [data-plan-step]::before,
.unified-plan-drawer.event-edit-mode [data-plan-step]::before { display:none; }
.unified-plan-drawer .plan-question-heading { gap:.2rem; }
.unified-plan-drawer .plan-question-heading h4 { margin:0; font-size:1rem; letter-spacing:-.02em; }
.unified-plan-drawer .plan-question-heading > span { color:var(--muted); font-size:.73rem; line-height:1.45; }
.unified-plan-drawer .plan-suggestion-library { margin:0; }
.unified-plan-drawer.plan-create-mode .plan-status-choice,
.unified-plan-drawer.meal-create-mode .plan-status-choice { display:block!important; }
.unified-plan-drawer.plan-create-mode .plan-suggestion-library,
.unified-plan-drawer.meal-create-mode .plan-suggestion-library { display:grid!important; }
.unified-plan-drawer.plan-create-mode .plan-destination-picker:not([hidden]),
.unified-plan-drawer.meal-create-mode .plan-destination-picker:not([hidden]) { display:grid!important; }
.unified-plan-drawer.plan-create-mode .plan-type-choice { display:block!important; }
.unified-plan-drawer.plan-create-mode .plan-type-choice label,
.unified-plan-drawer.plan-create-mode .plan-suggestion-library button,
.unified-plan-drawer.plan-create-mode .placement-category button { display:flex!important; }
.unified-plan-drawer.meal-create-mode .plan-suggestion-library { display:grid!important; }
.unified-plan-drawer.meal-create-mode .plan-runs-through-field { display:grid!important; }
.unified-plan-drawer.meal-create-mode [data-plan-step="1"] .plan-question-heading { display:grid; }
.unified-plan-drawer.is-meal-locked .plan-type-choice,.unified-plan-drawer.is-meal-locked .placement-category { display:none!important; }
.unified-plan-drawer .plan-detail-questions > .plan-question,
.unified-plan-drawer .plan-detail-questions > .meal-links,
.unified-plan-drawer .plan-detail-questions > .event-photo-manager,
.unified-plan-drawer.event-edit-mode .plan-detail-questions > .plan-question,
.unified-plan-drawer.event-edit-mode .plan-detail-questions > .meal-links,
.unified-plan-drawer.event-edit-mode .plan-detail-questions > .event-photo-manager {
  gap:.8rem;
  margin:0;
  border:0;
  border-bottom:1px solid rgba(18,49,48,.08);
  border-radius:0;
  padding:0 0 1.25rem;
  background:transparent;
  box-shadow:none;
}
.unified-plan-drawer .plan-detail-questions > :last-child { border-bottom:0; padding-bottom:0; }
.unified-plan-drawer .drawer-placement-fields { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr); gap:.75rem; }
.unified-plan-drawer .placement-category { margin:0; }
.unified-plan-drawer .placement-selection { margin:0; border-radius:10px; padding:.7rem .8rem; background:#f2f7f5; color:#52706e; font-size:.7rem; line-height:1.4; }
.unified-plan-drawer label { gap:.35rem; color:#365453; font-size:.72rem; font-weight:780; }
.unified-plan-drawer input,.unified-plan-drawer select,.unified-plan-drawer textarea { border-color:rgba(18,49,48,.16); border-radius:12px; background:white; font-size:16px; }
.unified-plan-drawer .plan-wizard-actions,
.unified-plan-drawer.event-edit-mode .plan-wizard-actions {
  position:sticky;
  z-index:5;
  bottom:0;
  display:flex;
  align-items:center;
  gap:.65rem;
  margin:0 calc(var(--drawer-pad) * -1);
  padding:1rem var(--drawer-pad) calc(1rem + env(safe-area-inset-bottom));
  border-top:1px solid rgba(18,49,48,.1);
  background:rgba(255,253,250,.97);
  backdrop-filter:blur(16px);
}
.unified-plan-drawer .plan-wizard-actions .form-message { min-width:0; font-size:.7rem; }
.unified-plan-drawer .plan-wizard-actions .form-message { flex:1; }
.unified-plan-drawer .plan-save-secondary { width:auto!important; min-height:42px; white-space:nowrap; }
.unified-plan-drawer #save-plan { min-width:142px; min-height:42px; white-space:nowrap; }
.unified-plan-drawer .event-delete { align-self:center; color:#a65349; white-space:nowrap; }
.calendar-slot[data-open-slot-plan] { cursor:pointer; }
.calendar-slot[data-open-slot-plan]:focus-visible { outline:2px solid #0e7777; outline-offset:-3px; }

@media (min-width:1101px) {
  .plan-form.unified-plan-drawer { width:560px; }
}
@media (max-width:720px) {
  .plan-form.unified-plan-drawer {
    --drawer-pad:1rem;
    inset:0;
    width:100dvw;
    max-width:100dvw;
    height:100dvh;
    max-height:100dvh;
    padding:0 var(--drawer-pad);
    border:0;
    box-shadow:none;
    animation:unified-plan-drawer-mobile-in .28s cubic-bezier(.22,1,.36,1) both;
  }
  .plan-form-backdrop { z-index:235; }
  .plan-form.unified-plan-drawer.is-closing { animation:unified-plan-drawer-mobile-out .2s ease both; }
  @keyframes unified-plan-drawer-mobile-in { from { opacity:.8; transform:translateY(24px); } to { opacity:1; transform:none; } }
  @keyframes unified-plan-drawer-mobile-out { to { opacity:0; transform:translateY(18px); } }
  .unified-plan-drawer .plan-form-head,
  .unified-plan-drawer.event-edit-mode .plan-form-head { width:calc(100% + 2rem); max-width:none; margin-right:0; margin-left:calc(var(--drawer-pad) * -1); padding:calc(.9rem + env(safe-area-inset-top)) var(--drawer-pad) .9rem; }
  .unified-plan-drawer .plan-head-actions { align-items:flex-start; }
  .unified-plan-drawer .plan-status-choice { max-width:210px; }
  .unified-plan-drawer .drawer-placement-fields { grid-template-columns:1fr 1fr; }
  .unified-plan-drawer .plan-wizard-actions,
  .unified-plan-drawer.event-edit-mode .plan-wizard-actions { display:grid; width:calc(100% + 2rem); max-width:none; grid-template-columns:1fr 1fr; margin-right:0; margin-left:calc(var(--drawer-pad) * -1); }
  .unified-plan-drawer .plan-wizard-actions .form-message { grid-column:1 / -1; grid-row:1; }
  .unified-plan-drawer .event-delete { grid-column:1; }
  .unified-plan-drawer .plan-save-secondary,.unified-plan-drawer #save-plan { width:100%; min-width:0; }
}
@media (prefers-reduced-motion:reduce) {
  .plan-form.unified-plan-drawer,.plan-form.unified-plan-drawer.is-closing { animation:none; }
}

/* Quieter organizer navigation and clearer calendar planning signals */
.organizer-back {
  min-height:36px;
  margin:.05rem .15rem 0;
  padding:.45rem .55rem .75rem;
  font-size:.69rem;
}
.organizer-back svg { width:17px; height:17px; }
.organizer-sidebar .editor-nav { margin-top:1.05rem; }
.organizer-ready { display:none!important; }

.calendar-readiness {
  justify-content:flex-start;
  border-left:3px solid #3b8177!important;
  background:#eef6f3!important;
  box-shadow:0 8px 22px rgba(18,49,48,.045);
}
.calendar-readiness > div:first-child { flex:none; }
.calendar-readiness strong { font-size:.82rem!important; }
.calendar-readiness small { font-size:.67rem!important; }
.calendar-readiness-meta { margin-left:.15rem; }
.calendar-readiness-meta button {
  border-radius:999px;
  padding:.42rem .66rem!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(18,49,48,.12);
  font-size:.66rem!important;
}

.slot-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.slot-heading .slot-label { margin-bottom:.42rem; }
.slot-availability-toggle {
  border:0;
  padding:.1rem .15rem .35rem;
  background:transparent;
  color:#8a9c99;
  font-size:.48rem;
  font-weight:800;
}
.calendar-slot.is-muted {
  background:#f2f3f1!important;
  color:#82908e;
  cursor:default;
}
.calendar-slot.is-muted .slot-label { color:#98a5a2; }
.calendar-slot.is-muted .slot-availability-toggle { color:#476b67; }
.slot-muted-copy {
  display:grid;
  min-height:46px;
  place-items:center;
  border:1px dashed rgba(82,106,105,.18);
  border-radius:8px;
  color:#96a19f;
  font-size:.56rem;
  font-weight:750;
}

/* Flexible itinerary tool workspace */
.organizer-canvas .editor-panel[data-editor-panel="itinerary"].is-active { animation:none; transform:none; }
@media (min-width:1120px) {
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"].is-active.section-settling > * {
    animation:none!important;
    transform:none!important;
  }
}
.itinerary-supporting-actions { display:flex; align-items:center; gap:.35rem; }
.itinerary-layout-toggle { display:flex; align-items:center; gap:.15rem; border:1px solid rgba(18,49,48,.1); border-radius:999px; padding:.18rem; background:#f1f5f3; }
.itinerary-layout-toggle button,
.itinerary-supporting-collapse,
.itinerary-supporting-expand {
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#607875;
}
.itinerary-layout-toggle button[aria-pressed="true"] { background:#fff; color:var(--pine); box-shadow:0 3px 10px rgba(18,49,48,.1); }
.itinerary-layout-toggle svg,
.itinerary-supporting-collapse svg,
.itinerary-supporting-expand svg,
.builder-tool-layout-options svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.itinerary-supporting-collapse { display:none; }
.itinerary-supporting-expand { border:1px solid rgba(18,49,48,.1); background:#fff; }
.itinerary-supporting-expand .restore-icon { display:none; }
.itinerary-supporting-expand[aria-pressed="true"] { background:#e8f4f1; color:var(--pine); }
.itinerary-supporting-expand[aria-pressed="true"] .expand-icon { display:none; }
.itinerary-supporting-expand[aria-pressed="true"] .restore-icon { display:block; }
.itinerary-dock-resizer { display:none; }

.builder-tool-split { position:relative; display:flex; align-items:stretch; }
.builder-tool-launches .builder-tool-main { min-width:0; }
.builder-tool-layout-options {
  position:absolute;
  z-index:4;
  top:calc(100% + 6px);
  right:0;
  display:flex;
  gap:.2rem;
  border:1px solid rgba(18,49,48,.12);
  border-radius:999px;
  padding:.22rem;
  visibility:hidden;
  background:rgba(255,253,250,.98);
  box-shadow:0 10px 28px rgba(18,49,48,.14);
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .16s ease,transform .18s ease,visibility .16s;
}
.builder-tool-split:is(:hover,:focus-within) .builder-tool-layout-options { visibility:visible; opacity:1; transform:none; }
.builder-tool-launches .builder-tool-layout-options button {
  display:grid;
  width:32px;
  min-width:32px;
  height:32px;
  place-items:center;
  border:0;
  border-radius:50%;
  padding:0;
  background:transparent;
  color:#637b78;
  transform:none;
}
.builder-tool-launches .builder-tool-layout-options button:is(:hover,:focus-visible),
.builder-tool-launches .builder-tool-layout-options button.is-preferred { background:#e9f4f1; color:var(--pine); transform:none; }

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom {
    top:auto;
    right:0;
    bottom:0;
    left:248px;
    display:block;
    width:auto;
    height:var(--itinerary-dock-height,38vh);
    min-height:300px;
    max-height:70vh;
    overflow:visible;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-dock-resizer {
    position:absolute;
    z-index:6;
    top:-10px;
    right:0;
    left:0;
    display:grid;
    width:100%;
    height:20px;
    place-items:center;
    border:0;
    padding:0;
    background:transparent;
    cursor:ns-resize;
    pointer-events:auto;
    touch-action:none;
  }
  .layout-bottom .itinerary-dock-resizer span { width:54px; height:5px; border-radius:999px; background:#9fb0ad; box-shadow:0 1px 5px rgba(18,49,48,.16); transition:width .16s ease,background .16s ease; }
  .layout-bottom .itinerary-dock-resizer:is(:hover,:focus-visible) span,
  body.is-resizing-itinerary-dock .layout-bottom .itinerary-dock-resizer span { width:72px; background:#477570; }
  body.is-resizing-itinerary-dock { cursor:ns-resize; user-select:none; }

  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-panel {
    position:absolute;
    inset:0;
    display:flex;
    width:100%;
    height:100%;
    max-height:none;
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(18,49,48,.12);
    border-width:1px 0 0;
    border-radius:22px 22px 0 0;
    background:#fffdfa;
    box-shadow:0 -18px 54px rgba(18,49,48,.15);
    animation:itinerary-tool-bottom-in .32s cubic-bezier(.22,1,.36,1) both;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-header { flex:0 0 auto; padding:.65rem 1.1rem; }
  .planner-layout.is-supporting-open .layout-bottom .planning-tools { min-height:0; flex:1 1 auto; overflow:hidden; padding:.4rem 1rem 0; }
  .planner-layout.is-supporting-open .layout-bottom .planning-tools > [data-itinerary-workspace] { width:100%; height:100%; min-height:0; overflow:hidden; }
  .planner-layout.is-supporting-open .layout-bottom .planning-tools > [data-itinerary-workspace][hidden] { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer {
    display:grid!important;
    grid-template-columns:minmax(150px,1fr) auto minmax(140px,230px);
    grid-template-rows:auto minmax(0,1fr);
    align-items:center;
    gap:.4rem .85rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list { display:flex!important; flex-direction:column; }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .planner-heading {
    grid-column:1;
    grid-row:1;
    min-width:0;
    margin:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .planner-heading > div {
    display:flex;
    min-width:0;
    align-items:baseline;
    gap:.45rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .planner-heading span {
    flex:none;
    font-size:9px;
    letter-spacing:.085em;
  }
  .editor-panel[data-editor-panel="itinerary"] .planner-layout.is-supporting-open .layout-bottom .place-explorer > .planner-heading h3 {
    overflow:hidden;
    margin:0;
    font-size:15px;
    letter-spacing:-.025em;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list > .planner-heading { flex:0 0 auto; }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .place-explorer-card {
    display:contents!important;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer-card > .explorer-type-choice {
    grid-column:2;
    grid-row:1;
    align-self:center;
    gap:.85rem;
    margin:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer-card > .explorer-type-choice button {
    min-height:30px;
    padding:.2rem 0 .38rem;
    font-size:12px;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search {
    grid-column:3;
    grid-row:1;
    align-self:center;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search input {
    min-height:34px;
    border-color:transparent;
    padding:.5rem 2.35rem .5rem .85rem;
    background:#f2f5f3;
    font-size:12px;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search input:focus { border-color:rgba(18,49,48,.18); background:#fff; }
  .planner-layout.is-supporting-open .layout-bottom .destination-search > button { right:.35rem; width:27px; height:27px; }
  .planner-layout.is-supporting-open .layout-bottom .destination-browser {
    display:flex;
    min-height:0;
    flex-direction:column;
    grid-column:1 / -1;
    grid-row:2;
    gap:.25rem;
    overflow:hidden;
    border-top:1px solid rgba(18,49,48,.08);
    padding-top:.42rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search-results { display:flex!important; min-height:0; flex:1 1 auto; flex-direction:column; overflow:hidden; }
  .planner-layout.is-supporting-open .layout-bottom .destination-category-filters {
    flex:0 0 auto;
    gap:.35rem;
    padding:0 0 .32rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-category-filters button {
    min-height:30px;
    padding:.38rem .62rem;
    font-size:.56rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-result-group-filtered {
    min-height:0;
    flex:1 1 auto;
    overflow-y:auto;
    overscroll-behavior:contain;
    border-top:0;
    padding-bottom:.4rem;
    scrollbar-gutter:stable;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-result-row {
    min-height:58px;
    padding:.5rem .3rem;
  }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer {
    grid-template-columns:minmax(118px,1fr) auto;
  }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer > .planner-heading h3,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .destination-search { display:none; }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer > .planner-heading > div { display:block; }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer-card > .explorer-type-choice { grid-column:2; }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-banks,
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-list-store { display:flex!important; min-height:0; flex:1 1 auto; flex-direction:column; overflow:hidden; }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-tray { min-height:0; flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .itinerary-supporting-panel {
    right:auto;
    width:42%;
    border-radius:22px 0 0 0;
    box-shadow:0 -18px 54px rgba(18,49,48,.12);
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail.is-open {
    position:absolute;
    z-index:3;
    inset:0 0 0 42%;
    display:block;
    width:auto;
    height:100%;
    overflow:hidden;
    pointer-events:auto;
    animation:itinerary-detail-bottom-in .28s cubic-bezier(.22,1,.36,1) both;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-panel {
    width:100%;
    height:100%;
    overflow:hidden;
    border:1px solid rgba(18,49,48,.1);
    border-width:1px 0 0 1px;
    border-radius:0 22px 0 0;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-content { min-height:0; flex:1 1 auto; overflow:hidden; padding-bottom:.65rem; }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail.is-closing { animation:itinerary-detail-bottom-out .2s ease both; }
  .planner-layout.is-supporting-open .layout-bottom.is-closing .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .itinerary-supporting-panel { animation:itinerary-tool-bottom-out .3s cubic-bezier(.4,0,.2,1) both; }
  .planner-layout.is-supporting-open .layout-bottom.is-closing .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .destination-selection-detail.is-open { animation:itinerary-tool-bottom-out .24s ease both; }
  .layout-bottom .itinerary-supporting-collapse { display:grid; }
  .layout-bottom .itinerary-supporting-close { display:none; }
  .layout-side .itinerary-supporting-collapse { display:none; }
  .layout-side .itinerary-supporting-close { display:grid; }
  @keyframes itinerary-tool-bottom-in { from { opacity:.6; transform:translateY(100%); } to { opacity:1; transform:none; } }
  @keyframes itinerary-tool-bottom-out { to { opacity:.4; transform:translateY(102%); } }
  @keyframes itinerary-bottom-rail-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
  @keyframes itinerary-detail-bottom-in { from { opacity:0; transform:translateX(-18px); } to { opacity:1; transform:none; } }
  @keyframes itinerary-detail-bottom-out { to { opacity:0; transform:translateX(-14px); } }
}

@media (min-width:721px) and (max-width:1119px) {
  .itinerary-layout-toggle,.itinerary-supporting-collapse,.itinerary-supporting-expand,.itinerary-dock-resizer,.builder-tool-layout-options { display:none!important; }
}

@media (max-width:720px) {
  .itinerary-layout-toggle,.itinerary-supporting-actions,.itinerary-dock-resizer,.builder-tool-layout-options { display:none!important; }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-bottom.is-closing .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .itinerary-supporting-panel { animation:none; }
}

/* Persistent desktop itinerary tray */
.itinerary-collapsed-rail { display:none; }
.itinerary-supporting-context { min-width:0; }
.itinerary-supporting-shell.is-entry-preparing {
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
.itinerary-supporting-context span { display:block; color:var(--clay); font-size:.56rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.itinerary-supporting-context strong { display:block; margin-top:.15rem; color:var(--pine); font-family:var(--display); font-size:1.15rem; line-height:1; letter-spacing:-.035em; }
.itinerary-supporting-header-controls { display:flex; min-width:0; align-items:center; gap:.55rem; }
.destination-detail-orientation { --destination-wash:#f4f8f6; }
.destination-orientation-content { display:flex; width:min(100%,520px); height:100%; flex-direction:column; justify-content:flex-start; padding:clamp(1rem,2vw,1.65rem) clamp(1.2rem,2.4vw,2rem); }
.destination-orientation-content > span { color:var(--clay); font-size:.58rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.destination-orientation-content h4 { margin:.32rem 0 .5rem; color:var(--pine); font-family:var(--display); font-size:clamp(1.35rem,2vw,1.8rem); line-height:1; letter-spacing:-.04em; }
.destination-orientation-content p { max-width:38rem; margin:0; color:var(--muted); font-size:.85rem; line-height:1.55; }
.destination-orientation-steps { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; margin-top:.85rem; color:#416863; }
.destination-orientation-steps b { border:1px solid rgba(18,49,48,.11); border-radius:999px; padding:.42rem .62rem; background:rgba(255,255,255,.72); font-size:.58rem; }
.destination-orientation-steps i { color:var(--clay); font-style:normal; }

@media (max-width:1119px) {
  .itinerary-supporting-context { display:none!important; }
  .itinerary-supporting-header-controls { width:100%; justify-content:space-between; }
}

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-header {
    position:relative;
    min-height:70px;
    padding:.72rem 1.1rem;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-header-controls { justify-content:flex-end; }
  .planner-layout.is-supporting-open .itinerary-supporting-panel > .planning-tools { overflow:hidden; }
  .planner-layout.is-supporting-open .place-explorer > .planner-heading { display:none!important; }
  .planner-layout.is-supporting-open .hit-list > .planner-heading > div { display:none; }
  .planner-layout.is-supporting-open .hit-list > .planner-heading { min-height:36px; justify-content:flex-end; margin:0 0 .35rem; }
  .planner-layout.is-supporting-open .hit-list .hit-list-add-toggle { min-height:34px; padding:.45rem .72rem; font-size:.6rem; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-panel { overflow:hidden; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-content { min-height:0; overflow:hidden; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-orientation { padding:0; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-orientation .destination-orientation-content { overflow:hidden; }
  .planner-layout.is-supporting-open .itinerary-supporting-shell:is(.is-initializing,.suppress-entry-animation) .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .itinerary-supporting-shell:is(.is-initializing,.suppress-entry-animation) .destination-selection-detail,
  .planner-layout.is-supporting-open .itinerary-supporting-shell:is(.is-initializing,.suppress-entry-animation) [data-itinerary-workspace] { animation:none!important; }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom {
    min-height:360px;
    transition:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-panel { width:100%; border-radius:22px 22px 0 0; box-shadow:0 -18px 54px rgba(18,49,48,.12); }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .itinerary-supporting-panel { right:0; width:100%; border-radius:22px 22px 0 0; }
  .planner-layout.is-supporting-open .layout-bottom .planning-tools { width:42%; border-right:1px solid rgba(18,49,48,.1); }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail.is-open { inset:70px 0 0 42%; height:auto; }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer {
    grid-template-columns:auto minmax(150px,230px);
    grid-template-rows:auto minmax(0,1fr);
    align-content:stretch;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer-card > .explorer-type-choice { grid-column:1; grid-row:1; width:auto; max-width:210px; }
  .planner-layout.is-supporting-open .layout-bottom .destination-search { grid-column:2; grid-row:1; }
  .planner-layout.is-supporting-open .layout-bottom .destination-browser { grid-column:1 / -1; grid-row:2; }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer { grid-template-columns:auto minmax(140px,220px); }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer-card > .explorer-type-choice { grid-column:1; }
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .destination-search { display:block; }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-panel { padding-top:.8rem; }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-back { display:none; }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-content { padding-bottom:.45rem; }
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail .destination-detail-panel footer { padding:.7rem 1.2rem; }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-header { flex-direction:column; align-items:stretch; }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-header-controls { width:100%; justify-content:space-between; }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-collapsed {
    height:min(420px,calc(100dvh - 80px))!important;
    min-height:360px;
    max-height:420px;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed:not(.is-expanding) .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed .destination-selection-detail,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed .itinerary-dock-resizer { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed.is-expanding .itinerary-supporting-panel {
    display:flex!important;
    animation:itinerary-tool-bottom-in .34s cubic-bezier(.22,1,.36,1) both;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-collapsing,.is-expanding) .itinerary-supporting-panel {
    backface-visibility:hidden;
    will-change:transform,opacity;
  }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-collapsed,.is-collapsing) .itinerary-collapsed-rail {
    position:absolute;
    inset:auto 0 0;
    display:grid;
    height:48px;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    border:1px solid rgba(18,49,48,.12);
    border-width:1px 0 0;
    border-radius:18px 18px 0 0;
    padding:0 1rem;
    background:rgba(255,253,250,.98);
    box-shadow:0 -12px 34px rgba(18,49,48,.12);
    pointer-events:auto;
    transition:opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1);
  }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .itinerary-collapsed-rail {
    animation:itinerary-bottom-rail-in .24s cubic-bezier(.22,1,.36,1) .08s both;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed.is-expanding .itinerary-collapsed-rail {
    opacity:0;
    transform:translateY(10px);
    pointer-events:none;
  }
  .itinerary-collapsed-handle { justify-self:start; width:46px; height:4px; border-radius:999px; background:#9fb0ad; }
  .itinerary-collapsed-rail > div { display:flex; align-items:center; gap:.3rem; }
  .itinerary-collapsed-rail > div button { border:0; border-radius:999px; padding:.45rem .72rem; background:transparent; color:var(--pine); font-size:.62rem; font-weight:850; }
  .itinerary-collapsed-rail > div button:hover,
  .itinerary-collapsed-rail > div button:focus-visible { background:#edf5f2; }
  .itinerary-collapsed-rail > div span { margin-left:.2rem; border-radius:999px; padding:.1rem .3rem; background:#e6f1ee; font-size:.5rem; }
  .itinerary-collapsed-expand { display:grid; width:32px; height:32px; place-items:center; justify-self:end; border:1px solid rgba(18,49,48,.12); border-radius:50%; background:#fff; color:var(--pine); }
  .itinerary-collapsed-expand svg { width:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom { transition:none; }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .itinerary-collapsed-rail { animation:none; }
}

/* Controlled tray dimensions and single-pane side layout */
@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom {
    height:min(420px,calc(100dvh - 80px));
    min-height:360px;
    max-height:420px;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-browser {
    gap:.12rem;
    border-top:0;
    padding-top:.12rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-category-filters {
    padding:.02rem 0 .2rem;
  }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-panel {
    display:flex;
    height:var(--itinerary-side-top);
    flex-direction:column;
    overflow:hidden;
    border-radius:0 22px 0 0;
  }
  .planner-layout.is-supporting-open .layout-side .planning-tools {
    min-height:0;
    flex:1 1 auto;
    overflow:hidden;
  }
  .planner-layout.is-supporting-open .layout-side .planning-tools > [data-itinerary-workspace]:not([hidden]) {
    display:flex!important;
    height:100%;
    min-height:0;
    flex-direction:column;
  }
  .planner-layout.is-supporting-open .layout-side .place-explorer > .place-explorer-card {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(142px,172px);
    grid-template-rows:auto minmax(0,1fr);
    align-items:start;
    gap:.35rem .65rem;
    min-height:0;
    flex:1 1 auto;
  }
  .planner-layout.is-supporting-open .layout-side .place-explorer-card > .explorer-type-choice {
    grid-column:1;
    grid-row:1;
    width:auto!important;
    min-width:0;
    max-width:100%;
    justify-self:start;
    gap:.8rem;
    margin:0;
  }
  .planner-layout.is-supporting-open .layout-side .place-explorer-card > .explorer-type-choice button {
    min-height:34px;
    padding:.2rem 0 .48rem;
    font-size:.66rem;
  }
  .planner-layout.is-supporting-open .layout-side .destination-search {
    grid-column:2;
    grid-row:1;
    align-self:center;
  }
  .planner-layout.is-supporting-open .layout-side .destination-search input {
    min-height:34px;
    border-color:transparent;
    padding:.48rem 2rem .48rem .72rem;
    background:#f2f5f3;
    font-size:.64rem;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-side .destination-search > button {
    right:.28rem;
    width:27px;
    height:27px;
  }
  .planner-layout.is-supporting-open .layout-side .destination-browser {
    grid-column:1 / -1;
    grid-row:2;
    align-self:stretch;
    gap:.1rem;
    border-top:0;
    padding-top:.12rem;
  }
  .planner-layout.is-supporting-open .layout-side .destination-browser,
  .planner-layout.is-supporting-open .layout-side .destination-search-results,
  .planner-layout.is-supporting-open .layout-side .destination-result-group-filtered,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-banks,
  .planner-layout.is-supporting-open .layout-side .hit-list .hit-list-store,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-tray { min-height:0; }
  .planner-layout.is-supporting-open .layout-side .destination-browser,
  .planner-layout.is-supporting-open .layout-side .destination-search-results,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-banks,
  .planner-layout.is-supporting-open .layout-side .hit-list .hit-list-store { display:flex!important; flex:1 1 auto; flex-direction:column; overflow:hidden; }
  .planner-layout.is-supporting-open .layout-side .destination-result-group-filtered,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-tray { flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; }
  .planner-layout.is-supporting-open .layout-side .destination-category-filters {
    gap:.28rem;
    padding:.02rem 0 .18rem;
  }
  .planner-layout.is-supporting-open .layout-side .destination-category-filters button {
    min-height:32px;
    gap:.3rem;
    padding:.38rem .56rem;
    font-size:.55rem;
  }
  .planner-layout.is-supporting-open .layout-side .destination-category-filters button b {
    min-width:16px;
    height:16px;
    font-size:.46rem;
  }
  .planner-layout.is-supporting-open .layout-side .destination-selection-detail.is-open {
    top:var(--itinerary-side-top);
    bottom:0;
    left:0;
    width:420px;
    height:auto;
    border-radius:0 0 22px 0;
    animation:itinerary-detail-side-in .24s cubic-bezier(.22,1,.36,1) both;
  }
  .planner-layout.is-supporting-open .layout-side .destination-selection-detail .destination-detail-panel {
    border-top:1px solid rgba(18,49,48,.1);
    border-left:0;
    border-radius:0 0 22px 0;
    box-shadow:14px 18px 48px rgba(18,49,48,.14);
  }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-collapse { display:grid; }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-close { display:none; }
  @keyframes itinerary-detail-side-in { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:none; } }

  .planner-layout.is-supporting-open .layout-side.is-collapsing .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-side.is-collapsing .destination-selection-detail.is-open {
    animation:itinerary-tool-side-collapse .22s ease both;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-side {
    --itinerary-side-top:clamp(420px,56dvh,620px);
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-side.is-collapsed {
    inset:0 auto 0 248px;
    width:58px;
    height:100dvh;
  }
  .planner-layout.is-supporting-open .layout-side.is-collapsed .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-side.is-collapsed .destination-selection-detail { display:none!important; }
  .planner-layout.is-supporting-open .layout-side.is-collapsed .itinerary-collapsed-rail {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:.8rem;
    border-right:1px solid rgba(18,49,48,.12);
    border-radius:0 18px 18px 0;
    padding:1rem .4rem;
    background:rgba(255,253,250,.98);
    box-shadow:12px 0 34px rgba(18,49,48,.12);
    pointer-events:auto;
    animation:itinerary-side-rail-in .22s cubic-bezier(.22,1,.36,1) both;
  }
  @keyframes itinerary-side-rail-in { from { opacity:0; transform:translateX(-12px); } to { opacity:1; transform:none; } }
  .layout-side.is-collapsed .itinerary-collapsed-handle { width:4px; height:42px; flex:none; }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div { display:flex; flex:1 1 auto; flex-direction:column; align-items:center; gap:.5rem; }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button {
    border:0;
    border-radius:999px;
    padding:.65rem .45rem;
    background:transparent;
    color:var(--pine);
    font-size:.57rem;
    font-weight:850;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button:is(:hover,:focus-visible) { background:#edf5f2; }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div span { margin-top:.25rem; border-radius:999px; padding:.1rem .25rem; background:#e6f1ee; font-size:.48rem; }
  .layout-side.is-collapsed .itinerary-collapsed-expand { flex:none; }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .layout-side .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-side.is-collapsing .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-side.is-collapsing .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-side.is-collapsed .itinerary-collapsed-rail { animation:none; }
}

/* Explore and Hit List density refinements */
.hit-list-filter-choice { width:min(100%,280px); margin:0 0 .55rem; }
.destination-orientation-content { padding-top:clamp(2.75rem,7vh,4.5rem); }

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .layout-side .destination-result-group-filtered { display:block; align-content:start; }
  .planner-layout.is-supporting-open .layout-side .destination-result-row { min-height:68px; padding:.58rem .28rem; }
  .planner-layout.is-supporting-open .layout-side .hit-list-filter-choice {
    flex:0 0 auto;
    width:auto;
    max-width:255px;
    gap:.7rem;
    margin:0 0 .3rem;
    padding:0;
    background:transparent;
  }
  .planner-layout.is-supporting-open .layout-side .hit-list-filter-choice button {
    position:relative;
    min-height:34px;
    border-radius:0;
    padding:.2rem 0 .48rem;
    background:transparent;
    box-shadow:none;
    font-size:.66rem;
  }
  .planner-layout.is-supporting-open .layout-side .hit-list-filter-choice button::after {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    height:2px;
    border-radius:999px;
    background:transparent;
    content:"";
  }
  .planner-layout.is-supporting-open .layout-side .hit-list-filter-choice button.is-active::after { background:var(--pine); }
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-tray {
    display:grid;
    flex:1 1 auto;
    align-content:start;
    grid-auto-rows:max-content;
    gap:0;
    margin-top:.25rem;
    padding-bottom:.5rem;
  }
  .planner-layout.is-supporting-open .layout-side .hit-list .hit-item {
    grid-template-columns:14px 34px minmax(0,1fr) auto;
    min-height:76px;
    gap:.42rem;
    border-width:0 0 1px;
    border-radius:0;
    padding:.62rem 2rem .62rem .3rem;
    background:transparent;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-side .hit-list .hit-item-type-mark { width:32px; height:32px; border-radius:10px; }
  .planner-layout.is-supporting-open .layout-side .hit-list .item-actions { display:flex!important; align-items:center; gap:.28rem!important; }
  .planner-layout.is-supporting-open .layout-side .hit-list .hit-info,
  .planner-layout.is-supporting-open .layout-side .hit-list .edit-item {
    min-width:42px;
    min-height:32px;
    padding:.32rem .48rem;
    font-size:.57rem;
  }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-collapse {
    display:grid;
    width:36px;
    height:36px;
    border:1px solid rgba(18,49,48,.13);
    background:#fff;
    box-shadow:0 3px 10px rgba(18,49,48,.08);
  }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-collapse svg { transform:rotate(90deg); }
  .planner-layout.is-supporting-open .layout-side.is-collapsed .itinerary-collapsed-expand svg { transform:rotate(90deg); }
}

@media (min-width:721px) {
  .planner-layout.is-supporting-open .layout-bottom .hit-list-filter-choice { flex:0 0 auto; width:min(100%,300px); margin:0 0 .35rem; }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-tray {
    display:grid;
    align-content:start;
    grid-auto-rows:max-content;
    gap:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item {
    min-height:72px;
    border-width:0 0 1px;
    border-radius:0;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .item-actions { display:flex!important; align-items:center; gap:.35rem!important; }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-info,
  .planner-layout.is-supporting-open .layout-bottom .hit-list .edit-item {
    min-width:48px;
    min-height:32px;
    padding:.32rem .55rem;
    font-size:.58rem;
  }
}

@media (max-width:720px) {
  .hit-list-filter-choice { display:none; }
  .destination-orientation-content { padding-top:1.5rem; }
}

@media (prefers-reduced-motion:reduce) {
  .calendar-view .slot-open button { transition:none; }
}

/* Keep the schedule pannable while desktop itinerary tools are expanded. */
@media (min-width:1120px) {
  .planner-layout.is-supporting-open {
    --itinerary-side-reserve:0px;
  }
  .planner-layout.is-supporting-open :is(.calendar-view,.itinerary-map-view) {
    width:calc(100% - var(--itinerary-side-reserve));
    min-width:0;
    justify-self:end;
    transition:width .34s cubic-bezier(.4,0,.2,1);
  }
  .planner-layout.is-supporting-open:has(.layout-side:not(.is-collapsed):not(.is-collapsing):not(.is-placement-tucked):not(.is-fullscreen)) {
    --itinerary-side-reserve:420px;
  }
  .planner-layout.is-supporting-open:has(.layout-side:is(.is-collapsing,.is-collapsed):not(.is-expanding)) {
    --itinerary-side-reserve:64px;
  }
  .planner-layout.is-supporting-open:has(.layout-side.is-expanding) {
    --itinerary-side-reserve:420px;
  }
  .planner-layout.is-supporting-open:has(.layout-side.is-placement-tucked) {
    --itinerary-side-reserve:0px;
  }
  .planner-layout.is-supporting-open .calendar-grid {
    grid-auto-columns:minmax(340px,1fr);
    max-height:calc(100dvh - 285px);
    overflow:auto;
    overscroll-behavior:contain;
    scroll-padding:64px 1rem 1.25rem;
    scrollbar-gutter:stable both-edges;
    touch-action:pan-x pan-y;
  }
  .planner-layout.is-supporting-open .calendar-grid:focus-visible {
    outline:2px solid color-mix(in srgb,var(--pine) 55%,white);
    outline-offset:3px;
  }
  .planner-layout.is-supporting-open .calendar-day > header {
    position:sticky;
    z-index:4;
    top:0;
    background:#fffefa;
  }
}

@media (min-width:1120px) and (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open :is(.calendar-view,.itinerary-map-view) { transition:none; }
}

/* Keep the horizontal Explore controls and saved rows structurally stable. */
@media (min-width:1120px) {
  .planner-layout.is-supporting-open .layout-bottom .place-explorer,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer {
    display:block!important;
    height:100%;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .place-explorer-card,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer > .place-explorer-card {
    display:grid!important;
    height:100%;
    min-height:0;
    grid-template-columns:minmax(0,1fr) minmax(150px,220px);
    grid-template-rows:auto minmax(0,1fr);
    align-content:start;
    align-items:start;
    gap:.18rem .75rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .place-explorer-card > .explorer-type-choice,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer-card > .explorer-type-choice {
    grid-column:1;
    grid-row:1;
    align-self:start;
    margin:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .destination-search {
    display:block;
    grid-column:2;
    grid-row:1;
    align-self:start;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-browser,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .destination-browser {
    display:flex;
    min-height:0;
    align-self:stretch;
    grid-column:1 / -1;
    grid-row:2;
    flex-direction:column;
    gap:0;
    overflow:hidden;
    border-top:0;
    padding-top:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-search-results {
    display:grid!important;
    min-height:0;
    flex:1 1 auto;
    grid-template-rows:auto minmax(0,1fr);
    align-content:start;
    gap:.18rem;
    overflow:hidden;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-category-filters {
    min-height:34px;
    align-self:start;
    margin:0;
    padding:0 0 .22rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-result-group-filtered {
    width:100%;
    min-height:0;
    align-self:stretch;
    overflow-y:auto;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-result-group-filtered,
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-tray,
  .planner-layout.is-supporting-open .layout-side .destination-result-group-filtered,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-tray {
    -ms-overflow-style:none;
    scrollbar-width:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .destination-result-group-filtered::-webkit-scrollbar,
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-tray::-webkit-scrollbar,
  .planner-layout.is-supporting-open .layout-side .destination-result-group-filtered::-webkit-scrollbar,
  .planner-layout.is-supporting-open .layout-side .hit-list .idea-tray::-webkit-scrollbar {
    display:none;
    width:0;
    height:0;
  }

  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-banks,
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-list-store {
    width:100%;
    flex:1 1 auto;
    justify-content:flex-start;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-list-bank-heading {
    flex:0 0 auto;
    min-height:28px;
    margin:.2rem 0 .15rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .idea-tray {
    display:grid;
    width:100%;
    min-height:0;
    flex:1 1 auto;
    grid-template-columns:minmax(0,1fr);
    grid-auto-rows:max-content;
    align-content:start;
    gap:0;
    margin:.1rem 0 0;
    overflow-y:auto;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item {
    display:grid;
    width:100%;
    max-width:none;
    height:auto!important;
    min-height:76px;
    max-height:none;
    align-self:start;
    align-items:center;
    grid-template-columns:14px 34px minmax(0,1fr) auto;
    grid-template-rows:auto;
    gap:.45rem;
    border-width:0 0 1px;
    border-radius:0;
    padding:.58rem 2.25rem .58rem .35rem;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item > .drag-grip {
    grid-column:1;
    grid-row:1;
    align-self:center;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item > .hit-item-type-mark {
    grid-column:2;
    grid-row:1;
    align-self:center;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item > .hit-item-copy {
    min-width:0;
    align-self:center;
    grid-column:3;
    grid-row:1;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-item > .item-actions {
    display:flex!important;
    width:auto;
    align-self:center;
    justify-self:end;
    grid-column:4;
    grid-row:1;
    gap:.35rem!important;
    margin:0;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-info {
    width:auto;
    min-width:48px;
  }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .hit-info::before { content:none; }
  .planner-layout.is-supporting-open .layout-bottom .hit-list .remove-item {
    top:.3rem;
    right:.35rem;
  }
}

/* In-context placement keeps the horizontal Explore tray open. */
.calendar-placement-prompt {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:.55rem 0 .7rem;
  border:1px solid rgba(14,85,87,.18);
  border-radius:14px;
  padding:.62rem .75rem;
  background:linear-gradient(100deg,#e9f6f2,#f6faf8);
  box-shadow:0 7px 20px rgba(18,49,48,.06);
}
.calendar-placement-prompt[hidden] { display:none; }
.calendar-placement-prompt > div { display:grid; min-width:0; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:.08rem .45rem; }
.calendar-placement-prompt span { color:var(--clay); font-size:.54rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.calendar-placement-prompt strong { overflow:hidden; color:var(--pine); font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }
.calendar-placement-prompt small { grid-column:2; color:var(--muted); font-size:.61rem; }
.calendar-placement-prompt button { flex:none; min-height:32px; border:1px solid rgba(18,49,48,.13); border-radius:999px; padding:.38rem .62rem; background:white; color:var(--pine); font-size:.58rem; font-weight:850; }

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .calendar-grid { transition:none; }
}

/* Keep the side workspace attached to the organizer navigation boundary. */
.side-workspace-switcher { display:none; }

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-side {
    overflow:hidden;
    contain:paint;
  }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-header nav { display:none; }
  .planner-layout.is-supporting-open .layout-side .itinerary-supporting-header-controls { justify-content:flex-end; }
  .planner-layout.is-supporting-open .layout-side .place-explorer > .place-explorer-card {
    grid-template-columns:minmax(0,1fr) auto;
  }
  .planner-layout.is-supporting-open .layout-side .destination-search { display:none!important; }
  .planner-layout.is-supporting-open .layout-side .side-workspace-switcher {
    display:flex;
    grid-column:2;
    grid-row:1;
    align-self:start;
    gap:.2rem;
    border:1px solid rgba(18,49,48,.1);
    border-radius:999px;
    padding:.2rem;
    background:#f0f4f2;
  }
  .planner-layout.is-supporting-open .layout-side .side-workspace-switcher button {
    display:flex;
    min-height:34px;
    align-items:center;
    gap:.32rem;
    border:0;
    border-radius:999px;
    padding:.4rem .55rem;
    background:transparent;
    color:#5d7471;
    font-size:.58rem;
    font-weight:850;
  }
  .planner-layout.is-supporting-open .layout-side .side-workspace-switcher button.is-active {
    background:#fff;
    color:var(--pine);
    box-shadow:0 3px 10px rgba(18,49,48,.09);
  }
  .planner-layout.is-supporting-open .layout-side .side-workspace-switcher svg {
    width:15px;
    height:15px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .planner-layout.is-supporting-open .layout-side .side-workspace-switcher b {
    display:grid;
    min-width:17px;
    height:17px;
    place-items:center;
    border-radius:999px;
    background:#e5f1ed;
    font-size:.47rem;
  }
  .planner-layout.is-supporting-open .layout-side .hit-list > .side-workspace-switcher {
    flex:0 0 auto;
    align-self:flex-end;
    margin:0 0 .35rem;
  }

  @keyframes itinerary-tool-desktop-in {
    from { opacity:0; transform:translateX(-22px); }
    to { opacity:1; transform:none; }
  }
  @keyframes itinerary-tool-desktop-out {
    from { opacity:1; transform:none; }
    to { opacity:0; transform:translateX(-22px); }
  }
  @keyframes itinerary-tool-side-collapse {
    to { opacity:0; transform:translateX(-22px); }
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-side.is-collapsed {
    width:64px;
    overflow:visible;
    contain:none;
  }
  .planner-layout.is-supporting-open .layout-side.is-collapsed .itinerary-collapsed-rail {
    gap:.65rem;
    border-radius:0 16px 16px 0;
    padding:.85rem .5rem;
  }
  .layout-side.is-collapsed .itinerary-collapsed-handle {
    width:30px;
    height:4px;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div {
    flex:0 0 auto;
    gap:.45rem;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button {
    position:relative;
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid transparent;
    border-radius:13px;
    padding:0;
    writing-mode:horizontal-tb;
    transform:none;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button:is(:hover,:focus-visible) {
    border-color:rgba(18,49,48,.1);
    background:#edf5f2;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button svg {
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button::after {
    position:absolute;
    z-index:4;
    top:50%;
    left:calc(100% + 10px);
    width:max-content;
    border-radius:8px;
    padding:.42rem .55rem;
    visibility:hidden;
    background:#173f3e;
    color:#fff;
    content:attr(data-label);
    font-size:.58rem;
    font-weight:800;
    opacity:0;
    pointer-events:none;
    transform:translate(-4px,-50%);
    transition:opacity .15s ease,transform .15s ease,visibility .15s;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button:is(:hover,:focus-visible)::after {
    visibility:visible;
    opacity:1;
    transform:translate(0,-50%);
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button b {
    position:absolute;
    top:2px;
    right:2px;
    display:grid;
    min-width:17px;
    height:17px;
    place-items:center;
    border:2px solid #fffdfa;
    border-radius:999px;
    background:#dceee9;
    color:var(--pine);
    font-size:.45rem;
  }
  .layout-side.is-collapsed .itinerary-collapsed-expand { margin-top:auto; }
}

@media (prefers-reduced-motion:reduce) {
  .layout-side.is-collapsed .itinerary-collapsed-rail > div button::after { transition:none; }
}

/* Focused desktop placement temporarily clears the calendar canvas. */
.collapsed-tool-label {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell:is(.is-placement-tucked,.is-placement-restoring) .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .itinerary-supporting-shell:is(.is-placement-tucked,.is-placement-restoring) .destination-selection-detail.is-open {
    will-change:transform,translate,opacity;
  }
  .planner-layout.is-supporting-open :is(.layout-bottom,.layout-side):is(.is-placement-tucked,.is-placement-restoring) :is(.itinerary-supporting-panel,.destination-selection-detail.is-open) {
    transition:translate .34s cubic-bezier(.4,0,.2,1),opacity .24s ease,visibility 0s linear 0s;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-placement-tucked {
    pointer-events:none;
  }
  .planner-layout.is-supporting-open :is(.layout-bottom,.layout-side).is-placement-tucked :is(.itinerary-supporting-panel,.destination-selection-detail.is-open) {
    visibility:hidden;
    opacity:0;
    transition:translate .34s cubic-bezier(.4,0,.2,1),opacity .24s ease,visibility 0s linear .34s;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-placement-tucked :is(.itinerary-supporting-panel,.destination-selection-detail.is-open) {
    translate:0 calc(100% + 24px);
  }
  .planner-layout.is-supporting-open .layout-side.is-placement-tucked .itinerary-supporting-panel {
    translate:-110% 0;
  }
  .planner-layout.is-supporting-open .layout-side.is-placement-tucked .destination-selection-detail.is-open {
    translate:calc(-100% - 24px) 0;
  }
  .is-inline-calendar-placement .planner-layout.is-supporting-open .calendar-grid {
    padding-right:0;
    padding-bottom:0;
    padding-left:0;
    scroll-padding:64px 1rem 1.25rem;
  }
  .is-inline-calendar-placement [data-desktop-itinerary-tool],
  .is-inline-calendar-placement [data-itinerary-tool-layout],
  .is-inline-calendar-placement [data-open-itinerary-layout],
  .is-inline-calendar-placement [data-collapse-itinerary-tool] {
    cursor:not-allowed;
    opacity:.45;
  }
  .is-inline-calendar-placement .calendar-event {
    opacity:.58;
    pointer-events:none;
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-target {
    position:relative;
    z-index:1;
    background:#f5faf8;
    box-shadow:none;
    animation:none;
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-empty {
    background:linear-gradient(145deg,#eef9f5,#f9fcfb);
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-target:is(:hover,:focus-visible,:focus-within) {
    z-index:1;
    background:#f5faf8;
    box-shadow:none;
    animation:none;
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-empty:is(:hover,:focus-visible,:focus-within) {
    background:linear-gradient(145deg,#eef9f5,#f9fcfb);
  }
  .calendar-placement-target {
    position:relative;
    isolation:isolate;
    display:flex;
    width:calc(100% - .7rem);
    min-height:72px;
    align-items:center;
    justify-content:center;
    gap:.48rem;
    margin:.25rem .35rem .45rem;
    border:2px dashed rgba(14,117,112,.42);
    border-radius:11px;
    padding:.75rem;
    background:rgba(226,247,240,.68);
    color:#146a66;
    font-size:.67rem;
    font-weight:900;
    letter-spacing:.01em;
    box-shadow:0 0 0 3px rgba(14,117,112,.055);
  }
  .calendar-placement-target svg {
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .calendar-placement-target.is-compact {
    min-height:38px;
    justify-content:flex-start;
    margin-top:.42rem;
    border-width:1.5px;
    padding:.45rem .65rem;
    background:rgba(235,248,244,.76);
    animation:none;
  }
  .calendar-placement-target.is-compact svg { width:17px; height:17px; }
  .is-inline-calendar-placement .calendar-slot.is-placement-preferred {
    --placement-accent:#0e7772;
    --placement-wash:#e4f7f1;
    z-index:2;
    background:linear-gradient(145deg,var(--placement-wash),#fbfefd);
    box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--placement-accent) 56%,white),0 0 0 5px color-mix(in srgb,var(--placement-accent) 10%,transparent),0 12px 28px color-mix(in srgb,var(--placement-accent) 12%,transparent);
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-preferred.placement-kind-meal {
    --placement-accent:#b65372;
    --placement-wash:#fbeaf0;
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-secondary {
    opacity:.68;
    background:#f8faf9;
  }
  .is-inline-calendar-placement .calendar-slot.is-placement-secondary:is(:hover,:focus-within) { opacity:1; }
  .calendar-placement-target.is-recommended {
    min-height:64px;
    border-color:color-mix(in srgb,var(--placement-accent) 72%,white);
    background:color-mix(in srgb,var(--placement-wash) 82%,white);
    color:color-mix(in srgb,var(--placement-accent) 88%,#123130);
    box-shadow:0 8px 22px color-mix(in srgb,var(--placement-accent) 13%,transparent);
  }
  .calendar-placement-target.is-recommended::after {
    position:absolute;
    z-index:0;
    inset:-6px;
    border:2px solid color-mix(in srgb,var(--placement-accent) 58%,white);
    border-radius:14px;
    content:"";
    opacity:.28;
    pointer-events:none;
    transform:scale(.985);
    will-change:opacity,transform;
    animation:calendar-placement-attention 1.55s ease-in-out infinite;
  }
  .calendar-slot.is-placement-preferred .slot-label { color:var(--placement-accent); }
  .calendar-placement-target:is(:hover,:focus-visible) {
    border-color:#0e7772;
    outline:0;
    background:#dff5ed;
    color:#0b5b58;
    box-shadow:0 8px 22px rgba(14,117,112,.15),0 0 0 4px rgba(14,117,112,.1);
    transform:translateY(-1px);
  }
  .calendar-placement-target.is-recommended:is(:hover,:focus-visible)::after {
    opacity:0;
    animation:none;
  }
  .calendar-slot.placement-kind-meal .calendar-placement-target:is(:hover,:focus-visible) {
    border-color:#a74365;
    background:#fae3eb;
    color:#8f3556;
    box-shadow:0 8px 22px rgba(182,83,114,.17),0 0 0 4px rgba(182,83,114,.11);
  }
  .calendar-slot.is-placement-saving .calendar-placement-target {
    cursor:wait;
    opacity:.55;
  }
  .calendar-slot.is-placement-saving .calendar-placement-target::after {
    animation:none;
    opacity:0;
  }
  @keyframes calendar-placement-attention {
    0%,100% { opacity:.18; transform:scale(.985); }
    50% { opacity:.68; transform:scale(1.018); }
  }

  @media (prefers-reduced-motion:reduce) {
    .calendar-placement-target.is-recommended::after {
      opacity:.72;
      transform:none;
      animation:none;
    }
  }

  .layout-bottom.is-collapsed .itinerary-collapsed-rail > div button {
    display:flex;
    align-items:center;
    gap:.35rem;
  }
  .layout-bottom.is-collapsed .itinerary-collapsed-rail > div button svg {
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .layout-bottom.is-collapsed .itinerary-collapsed-rail .collapsed-tool-label {
    position:static;
    width:auto;
    height:auto;
    margin:0;
    overflow:visible;
    padding:0;
    background:transparent;
    clip:auto;
    font-size:.62rem;
    white-space:nowrap;
  }
  .layout-bottom.is-collapsed .itinerary-collapsed-rail > div button b {
    display:grid;
    min-width:17px;
    height:17px;
    place-items:center;
    border-radius:999px;
    background:#e5f1ed;
    font-size:.46rem;
  }
  .layout-side.is-collapsed .itinerary-collapsed-rail .collapsed-tool-label {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
  }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .is-placement-tucked .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .is-placement-tucked .destination-selection-detail.is-open,
  .calendar-placement-target { transition:none; animation:none; }
  .calendar-placement-target { border-style:solid; border-color:#0e7772; }
}

/* Keep the desktop workspace switch compact and directly beside Search. */
@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-header nav {
    display:none;
  }

  .planner-layout.is-supporting-open .layout-bottom .place-explorer > .place-explorer-card,
  .planner-layout.is-supporting-open .layout-side .place-explorer > .place-explorer-card,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .place-explorer > .place-explorer-card,
  .planner-layout.is-supporting-open .layout-side:has(.destination-selection-detail.is-open) .place-explorer > .place-explorer-card {
    grid-template-columns:auto minmax(112px,1fr) auto;
  }

  .planner-layout.is-supporting-open .place-explorer-card > .explorer-type-choice {
    grid-column:1;
    grid-row:1;
  }

  .planner-layout.is-supporting-open .destination-search,
  .planner-layout.is-supporting-open .layout-side .destination-search,
  .planner-layout.is-supporting-open .layout-bottom:has(.destination-selection-detail.is-open) .destination-search {
    display:block!important;
    grid-column:2;
    grid-row:1;
    min-width:0;
  }

  .planner-layout.is-supporting-open .place-explorer-card > .side-workspace-switcher {
    display:flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    gap:.1rem;
    border:1px solid rgba(18,49,48,.1);
    border-radius:999px;
    padding:.13rem;
    background:#f0f4f2;
  }

  .planner-layout.is-supporting-open .place-explorer-card > .side-workspace-switcher button {
    display:flex;
    min-width:0;
    min-height:28px;
    align-items:center;
    gap:.2rem;
    border:0;
    border-radius:999px;
    padding:.3rem .4rem;
    background:transparent;
    color:#5d7471;
    font-size:.5rem;
    font-weight:850;
    line-height:1;
  }

  .planner-layout.is-supporting-open .place-explorer-card > .side-workspace-switcher button.is-active {
    background:#fff;
    color:var(--pine);
    box-shadow:0 2px 8px rgba(18,49,48,.08);
  }

  .planner-layout.is-supporting-open .place-explorer-card > .side-workspace-switcher svg {
    width:12px;
    height:12px;
    flex:none;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  .planner-layout.is-supporting-open .place-explorer-card > .side-workspace-switcher b {
    display:grid;
    min-width:14px;
    height:14px;
    place-items:center;
    border-radius:999px;
    background:#e5f1ed;
    font-size:.4rem;
  }

  .planner-layout.is-supporting-open .layout-bottom .destination-browser,
  .planner-layout.is-supporting-open .layout-side .destination-browser {
    grid-column:1 / -1;
    grid-row:2;
  }

  .planner-layout.is-supporting-open .hit-list > .side-workspace-switcher {
    gap:.1rem;
    margin-bottom:.25rem;
    padding:.13rem;
  }

  .planner-layout.is-supporting-open .hit-list > .side-workspace-switcher button {
    min-height:28px;
    gap:.2rem;
    padding:.3rem .42rem;
    font-size:.5rem;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen {
    z-index:188;
    inset:0 0 0 248px!important;
    display:block;
    width:auto!important;
    height:100dvh!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    pointer-events:none;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .itinerary-supporting-panel {
    position:absolute;
    inset:0;
    display:flex;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border:0;
    border-radius:0;
    background:#fffdfa;
    box-shadow:-18px 0 64px rgba(18,49,48,.12);
    pointer-events:auto;
    animation:itinerary-workspace-expand .34s cubic-bezier(.22,1,.36,1) both!important;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen.is-fullscreen-closing .itinerary-supporting-panel {
    animation:itinerary-workspace-restore .3s cubic-bezier(.4,0,.2,1) both!important;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .itinerary-supporting-header {
    width:100%;
    min-height:70px;
    flex:0 0 70px;
    flex-direction:row;
    align-items:center;
    padding:.72rem 1.1rem;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .itinerary-supporting-header-controls {
    width:auto;
    margin-left:auto;
    justify-content:flex-end;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .planning-tools {
    width:42%!important;
    min-height:0;
    height:calc(100% - 70px)!important;
    flex:1 1 auto;
    overflow:hidden!important;
    border-right:1px solid rgba(18,49,48,.1);
    padding:.65rem 1rem 1rem;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .planning-tools > [data-itinerary-workspace]:not([hidden]) {
    display:flex!important;
    width:100%;
    height:100%;
    min-height:0;
    flex-direction:column;
    overflow:hidden;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .destination-selection-detail.is-open {
    position:absolute;
    z-index:3;
    inset:70px 0 0 42%!important;
    display:block;
    width:auto!important;
    height:auto!important;
    overflow:hidden;
    border-radius:0;
    pointer-events:auto;
    animation:itinerary-workspace-detail-in .34s .04s cubic-bezier(.22,1,.36,1) both!important;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen.is-fullscreen-closing .destination-selection-detail.is-open {
    animation:itinerary-workspace-detail-out .24s ease both!important;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .destination-selection-detail .destination-detail-panel {
    width:100%;
    height:100%;
    overflow:hidden;
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .destination-selection-detail .destination-detail-content {
    min-height:0;
    flex:1 1 auto;
    overflow-y:auto;
  }

  @keyframes itinerary-workspace-expand {
    from { opacity:.72; clip-path:inset(0 58% 0 0); translate:-12px 0; }
    to { opacity:1; clip-path:inset(0); translate:0 0; }
  }
  @keyframes itinerary-workspace-restore {
    from { opacity:1; clip-path:inset(0); translate:0 0; }
    to { opacity:.72; clip-path:inset(0 58% 0 0); translate:-12px 0; }
  }
  @keyframes itinerary-workspace-detail-in {
    from { opacity:0; translate:-20px 0; }
    to { opacity:1; translate:0 0; }
  }
  @keyframes itinerary-workspace-detail-out {
    to { opacity:0; translate:-16px 0; }
  }
}

@media (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .itinerary-supporting-shell.is-fullscreen .destination-selection-detail.is-open { animation:none!important; }
}

/* Bottom-only itinerary tray: compact browse, expanded review, collapsed launcher. */
.destination-result-photo,
.destination-detail-photo {
  display:block;
  overflow:hidden;
  object-fit:cover;
  background:linear-gradient(145deg,#e7f3f0,#f7f1ec);
}
.destination-result-photo {
  width:48px;
  height:48px;
  flex:none;
  border-radius:12px;
}
.destination-detail-photo {
  width:100%;
  max-height:190px;
  aspect-ratio:16 / 7;
  border-radius:16px;
}
.destination-detail-media { display:grid; gap:.3rem; margin:0 0 .9rem; }
.destination-detail-media figcaption { color:var(--muted); font-size:.56rem; line-height:1.35; }
.destination-detail-photo.is-fallback { display:grid; place-items:center; color:var(--teal); }
.destination-detail-photo.is-fallback span { display:grid; width:48px; height:48px; place-items:center; border:1px solid rgba(18,49,48,.1); border-radius:14px; background:rgba(255,255,255,.58); font-size:1.05rem; }
.hit-item-type-mark:has(.destination-result-photo) { width:48px; height:48px; overflow:hidden; border:0; border-radius:12px; padding:0; background:transparent; }
.hit-item-type-mark .destination-result-photo { width:100%; height:100%; border-radius:inherit; }
img.destination-result-photo:not([src]),
img.destination-detail-photo:not([src]),
.destination-result-photo:not(img):empty,
.destination-detail-photo:not(img):empty { display:none; }

@media (min-width:721px) {
  .destination-result-row:has(> .destination-result-photo) {
    grid-template-columns:48px minmax(0,1fr) auto;
  }
  .idea-tray .hit-item:has(> .hit-item-type-mark > .destination-result-photo) {
    grid-template-columns:14px 48px minmax(0,1fr) auto;
  }
}

@media (min-width:1120px) {
  .itinerary-layout-toggle,
  .builder-tool-layout-options,
  [data-itinerary-tool-layout],
  [data-open-itinerary-layout],
  [data-expand-itinerary-fullscreen] { display:none!important; }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-side { display:none!important; }

  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom {
    --itinerary-tray-height:244px;
    top:auto!important;
    right:0!important;
    bottom:0!important;
    left:248px!important;
    display:block;
    width:auto!important;
    height:var(--itinerary-tray-height)!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    pointer-events:none;
    transition:height .32s cubic-bezier(.22,1,.36,1);
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-compact {
    --itinerary-tray-height:244px;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-expanded,
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-fullscreen {
    --itinerary-tray-height:min(420px,calc(100dvh - 80px));
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-collapsed {
    --itinerary-tray-height:48px;
    height:48px!important;
  }

  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .itinerary-supporting-panel {
    position:absolute!important;
    inset:0!important;
    display:flex;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border:1px solid rgba(18,49,48,.12)!important;
    border-width:1px 0 0!important;
    border-radius:20px 20px 0 0!important;
    background:#fffdfa;
    box-shadow:0 -14px 42px rgba(18,49,48,.12)!important;
    pointer-events:auto;
    animation:none!important;
    transform:none;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-header,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .itinerary-supporting-header {
    width:100%;
    min-height:56px;
    flex:0 0 56px;
    flex-direction:row;
    align-items:center;
    padding:.55rem 1rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-header-controls,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .itinerary-supporting-header-controls {
    width:auto;
    margin-left:auto;
    justify-content:flex-end;
  }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-expand { display:grid; }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-close { display:none; }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-supporting-collapse { display:grid; }
  .planner-layout.is-supporting-open .layout-bottom .itinerary-dock-resizer { display:none!important; }

  .planner-layout.is-supporting-open .layout-bottom .planning-tools,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .planning-tools {
    min-height:0;
    height:auto!important;
    flex:1 1 auto;
    overflow:hidden!important;
    padding:.35rem .85rem .6rem;
  }
  .planner-layout.is-supporting-open .layout-bottom .planning-tools > [data-itinerary-workspace]:not([hidden]) {
    display:flex!important;
    width:100%;
    height:100%;
    min-height:0;
    flex-direction:column;
    overflow:hidden;
  }

  .planner-layout.is-supporting-open .layout-bottom.is-compact .planning-tools {
    width:100%!important;
    border-right:0;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-selection-detail { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .place-explorer,
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list { width:100%; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-search-results {
    display:grid!important;
    min-height:0;
    flex:1 1 auto;
    grid-template-rows:auto minmax(0,1fr);
    overflow:hidden;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-result-group-filtered {
    display:grid!important;
    width:100%;
    min-height:0;
    grid-auto-columns:minmax(265px,340px);
    grid-auto-flow:column;
    align-items:stretch;
    gap:.3rem;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:.05rem 0 .35rem;
    scroll-snap-type:x proximity;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-result-row {
    width:100%;
    min-height:74px;
    height:100%;
    border:1px solid rgba(18,49,48,.09);
    border-radius:13px;
    padding:.5rem .58rem;
    background:#fffefa;
    scroll-snap-align:start;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-result-photo {
    width:54px;
    height:54px;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-result-row:has(> .destination-result-photo) {
    grid-template-columns:54px minmax(0,1fr) auto;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list .idea-tray {
    display:grid!important;
    width:100%;
    min-height:0;
    flex:1 1 auto;
    grid-auto-columns:minmax(285px,350px);
    grid-auto-flow:column;
    grid-template-columns:none;
    grid-template-rows:minmax(0,1fr);
    align-items:stretch;
    gap:.35rem;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:.05rem 0 .35rem;
    scroll-snap-type:x proximity;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list .hit-list-bank-heading,
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list .hit-placement-help {
    display:none!important;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list .hit-item {
    width:100%;
    min-height:76px;
    height:100%!important;
    border:1px solid rgba(18,49,48,.09);
    border-radius:13px;
    padding:.52rem .65rem;
    background:#fffefa;
    scroll-snap-align:start;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list .remove-item {
    top:.25rem;
    right:.3rem;
  }

  .planner-layout.is-supporting-open .layout-bottom.is-expanded .planning-tools,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .planning-tools {
    width:42%!important;
    border-right:1px solid rgba(18,49,48,.1);
  }
  .planner-layout.is-supporting-open .layout-bottom.is-expanded .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .destination-selection-detail.is-open {
    position:absolute!important;
    z-index:3;
    inset:56px 0 0 42%!important;
    display:block;
    width:auto!important;
    height:auto!important;
    overflow:hidden;
    border-radius:0;
    pointer-events:auto;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-expanded .destination-detail-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .destination-detail-panel {
    width:100%;
    height:100%;
    overflow:hidden;
    border:0;
    border-left:1px solid rgba(18,49,48,.1);
    border-radius:0;
    box-shadow:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-expanded .destination-detail-content,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .destination-detail-content {
    min-height:0;
    flex:1 1 auto;
    overflow-y:auto;
  }

  .planner-layout.is-supporting-open .layout-bottom.is-collapsed:not(.is-collapsing) .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-collapsed .destination-selection-detail { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-collapsed,.is-expanding) .itinerary-collapsed-rail {
    position:absolute;
    inset:auto 0 0;
    display:grid;
    height:48px;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    border:1px solid rgba(18,49,48,.12);
    border-width:1px 0 0;
    border-radius:16px 16px 0 0;
    padding:0 1rem;
    background:rgba(255,253,250,.985);
    box-shadow:0 -10px 28px rgba(18,49,48,.1);
    pointer-events:auto;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-collapsed.is-collapsing .itinerary-supporting-panel {
    display:flex!important;
    animation:sorted-away-tray-panel-out .32s cubic-bezier(.4,0,.2,1) both!important;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-collapsing .itinerary-collapsed-rail {
    animation:sorted-away-tray-rail-in .24s cubic-bezier(.22,1,.36,1) both!important;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-expanding .itinerary-supporting-panel {
    animation:sorted-away-tray-panel-in .32s cubic-bezier(.22,1,.36,1) both!important;
    pointer-events:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-expanding .itinerary-collapsed-rail {
    animation:sorted-away-tray-rail-out .22s ease both!important;
    pointer-events:none;
  }

  .planner-layout.is-supporting-open:has(.layout-bottom.is-compact:not(.is-placement-tucked)) .calendar-grid {
    max-height:max(260px,calc(100dvh - 529px));
    scroll-padding-bottom:1.25rem;
  }

  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .itinerary-supporting-panel,
  .planner-layout.is-supporting-open .layout-bottom.is-fullscreen .destination-selection-detail.is-open {
    animation:none!important;
    clip-path:none!important;
    translate:none!important;
  }

  @keyframes sorted-away-tray-panel-out {
    from { opacity:1; translate:0 0; }
    to { opacity:.15; translate:0 42px; }
  }
  @keyframes sorted-away-tray-panel-in {
    from { opacity:.15; translate:0 42px; }
    to { opacity:1; translate:0 0; }
  }
  @keyframes sorted-away-tray-rail-in {
    from { opacity:0; translate:0 14px; }
    to { opacity:1; translate:0 0; }
  }
  @keyframes sorted-away-tray-rail-out {
    from { opacity:1; translate:0 0; }
    to { opacity:0; translate:0 10px; }
  }
}

@media (min-width:1120px) and (prefers-reduced-motion:reduce) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom { transition:none; }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-collapsing,.is-expanding) :is(.itinerary-supporting-panel,.itinerary-collapsed-rail) { animation:none!important; }
}

/* Itinerary hierarchy refinements */
.calendar-day > header {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.65rem;
}
.calendar-day-date { display:grid; min-width:0; gap:.12rem; }
.calendar-day-weather {
  position:relative;
  display:grid;
  grid-template-columns:26px auto 22px;
  align-items:center;
  justify-content:end;
  gap:.38rem;
  color:var(--muted);
}
.calendar-day-weather.is-unavailable { display:flex; max-width:70px; justify-content:flex-end; color:#859793; font-size:.5rem; font-weight:800; line-height:1.15; text-align:right; }
.calendar-weather-icon { display:grid; width:26px; height:26px; place-items:center; color:var(--pine); }
.calendar-weather-icon svg { width:24px; height:24px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.calendar-weather-copy { display:grid; gap:0; line-height:1; }
.calendar-weather-copy strong { display:flex; gap:.38rem; color:var(--ink); font-size:.86rem!important; font-weight:850; letter-spacing:0; white-space:nowrap; }
.calendar-day > header .calendar-weather-copy strong span { color:var(--ink); font-size:inherit!important; letter-spacing:inherit; text-transform:none; }
.calendar-weather-copy small { color:#718783; font-size:.43rem; font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
.calendar-day-weather > button {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border:1px solid rgba(18,49,48,.16);
  border-radius:50%;
  padding:0;
  background:#fffefa;
  color:#617b76;
  font:800 .62rem/1 ui-sans-serif,system-ui,sans-serif;
}
.calendar-day-weather > button:hover,.calendar-day-weather > button:focus-visible,.calendar-day-weather.is-open > button { border-color:#8dbcb5; background:#eaf5f2; color:var(--pine); }
.calendar-weather-tooltip {
  position:absolute;
  z-index:90;
  top:calc(100% + .55rem);
  right:0;
  display:none;
  width:min(245px,70vw);
  gap:.4rem;
  border:1px solid rgba(18,49,48,.13);
  border-radius:12px;
  padding:.75rem;
  background:#fffefa;
  box-shadow:0 14px 34px rgba(18,49,48,.14);
  color:var(--muted);
  font-size:.62rem;
  font-weight:600;
  line-height:1.45;
  text-align:left;
  text-transform:none;
}
.calendar-weather-tooltip strong { color:var(--ink); font-size:.67rem!important; }
.calendar-weather-tooltip a { color:var(--pine); font-size:.56rem; font-weight:850; text-decoration:none; }
.calendar-weather-tooltip::before { position:absolute; right:0; bottom:100%; left:0; height:.7rem; content:""; }
.calendar-day-weather:hover .calendar-weather-tooltip,.calendar-day-weather:focus-within .calendar-weather-tooltip,.calendar-day-weather.is-open .calendar-weather-tooltip { display:grid; }

@media (prefers-reduced-motion:reduce) {
  .plan-picker-popover,.plan-pick-types button::after { transition:none; }
  .plan-pick-rail { scroll-behavior:auto; }
}

@media (max-width:720px) {
  .plan-destination-picker > header { display:grid; gap:.2rem; }
  .plan-destination-picker > header > small { max-width:none; text-align:left; }
  .plan-pick-rail { grid-auto-columns:minmax(230px,86%); padding-right:1.1rem; }
  .plan-pick-rail-arrow { display:none; }
  .plan-picker-popover { right:1rem!important; left:1rem!important; width:auto!important; max-height:min(520px,calc(100dvh - 2rem)); }
}

/* Category filters read as a compact navigation rail rather than large pills. */
.planner-layout .destination-category-filters {
  display:flex;
  gap:0;
  overflow-x:auto;
  border-bottom:1px solid rgba(18,49,48,.11);
  padding:0;
  scrollbar-width:none;
}
.planner-layout .destination-category-filters button {
  position:relative;
  display:flex;
  min-height:39px;
  align-items:center;
  gap:.4rem;
  border:0;
  border-radius:0;
  padding:.42rem .78rem .52rem;
  background:transparent;
  color:#607672;
  font-size:.61rem;
  font-weight:820;
}
.planner-layout .destination-category-filters button + button { margin-left:.15rem; }
.planner-layout .destination-category-filters button:hover,.planner-layout .destination-category-filters button:focus-visible { border-color:transparent; background:rgba(231,242,239,.55); color:var(--pine); }
.planner-layout .destination-category-filters button.is-active { border-color:transparent; background:transparent; color:var(--pine); box-shadow:none; }
.planner-layout .destination-category-filters button.is-active::after {
  position:absolute;
  right:.65rem;
  bottom:-1px;
  left:.65rem;
  height:2px;
  border-radius:2px 2px 0 0;
  background:var(--pine);
  content:"";
}
.planner-layout .destination-category-filters button b,.planner-layout .destination-category-filters button.is-active b {
  display:inline;
  min-width:0;
  height:auto;
  border-radius:0;
  background:transparent;
  color:#78908b;
  font-size:.48rem;
}
.planner-layout.is-supporting-open :is(.layout-bottom,.layout-side) .destination-category-filters {
  gap:0;
  border-bottom:1px solid rgba(18,49,48,.11);
  padding:0;
}
.planner-layout.is-supporting-open :is(.layout-bottom,.layout-side) .destination-category-filters button {
  min-height:38px;
  gap:.38rem;
  border:0;
  border-radius:0;
  padding:.4rem .72rem .48rem;
  background:transparent;
  font-size:.625rem;
}
.planner-layout.is-supporting-open :is(.layout-bottom,.layout-side) .destination-category-filters button b {
  display:inline;
  min-width:0;
  height:auto;
  border-radius:0;
  background:transparent;
  font-size:.47rem;
}

@media (min-width:721px) {
  .calendar-view .slot-open { gap:.8rem; padding-top:.58rem; }
  .calendar-view .slot-open button { padding:.2rem .05rem; font-size:.66rem; opacity:.68; }
}

@media (max-width:720px) {
  .calendar-day > header { grid-template-columns:minmax(0,1fr) auto; }
  .calendar-day-weather { grid-template-columns:22px auto 20px; gap:.28rem; }
  .calendar-weather-icon,.calendar-weather-icon svg { width:21px; height:21px; }
  .calendar-weather-copy strong { font-size:.8rem!important; gap:.3rem; }
  .calendar-day-weather > button { width:20px; height:20px; }
  .calendar-weather-icon { color:#f7cc66; }
  .calendar-weather-copy strong { color:white; }
  .calendar-day > header .calendar-weather-copy strong span { color:white; }
  .calendar-weather-copy small { color:rgba(255,255,255,.7); }
  .calendar-day-weather > button { border-color:rgba(255,255,255,.34); background:rgba(255,255,255,.1); color:white; }
  .calendar-day-weather > button:hover,.calendar-day-weather > button:focus-visible,.calendar-day-weather.is-open > button { border-color:white; background:white; color:var(--pine); }
  .calendar-weather-tooltip,.calendar-weather-tooltip strong { color:var(--ink); }
  .calendar-weather-tooltip > span { color:var(--muted); }
  .calendar-weather-tooltip { right:-.25rem; }
}

@media (prefers-reduced-motion:reduce) {
  .calendar-day-weather * { transition:none!important; }
}

/* Scheduled calendar items open as a compact, Apple Calendar-style editor on desktop. */
.event-more-toggle {
  display:flex;
  width:100%;
  min-height:38px;
  align-items:center;
  justify-content:space-between;
  border:0;
  padding:.25rem 0;
  background:transparent;
  color:var(--pine);
  font-size:.72rem;
  font-weight:820;
  text-align:left;
}
.event-more-toggle[hidden] { display:none; }
.event-more-toggle svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; transition:transform .18s ease; }
.show-event-more .event-more-toggle svg { transform:rotate(180deg); }

@media (min-width:900px) {
  .plan-form.unified-plan-drawer.event-editor-popover {
    --drawer-pad:1.05rem;
    inset:var(--event-popover-top,14px) auto auto var(--event-popover-left,14px)!important;
    width:min(460px,calc(100vw - 28px));
    max-width:460px;
    height:auto;
    max-height:min(680px,calc(100dvh - 28px));
    border:1px solid rgba(18,49,48,.13);
    border-radius:18px;
    padding:0 var(--drawer-pad);
    background:#fffefa;
    box-shadow:0 18px 54px rgba(18,49,48,.2),0 3px 10px rgba(18,49,48,.08);
    transform-origin:top left;
    animation:event-popover-in .2s cubic-bezier(.22,1,.36,1) both;
  }
  .plan-form.unified-plan-drawer.event-editor-popover[data-anchor-side="left"] { transform-origin:top right; }
  .plan-form.unified-plan-drawer.event-editor-popover.is-closing { animation:event-popover-out .16s ease both; }
  @keyframes event-popover-in { from { opacity:0; transform:translateY(4px) scale(.985); } to { opacity:1; transform:none; } }
  @keyframes event-popover-out { to { opacity:0; transform:translateY(3px) scale(.99); } }

  .event-editor-popover .plan-form-head,
  .event-editor-popover.event-edit-mode .plan-form-head {
    position:sticky;
    top:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:.7rem;
    margin:0 calc(var(--drawer-pad) * -1);
    padding:.82rem var(--drawer-pad);
    background:rgba(255,254,250,.97);
  }
  .event-editor-popover .plan-form-head > div:first-child { display:block; min-width:0; padding:0; }
  .event-editor-popover .plan-form-head .eyebrow,
  .event-editor-popover .plan-form-head #plan-step-copy { display:none; }
  .event-editor-popover .plan-form-head h3 { margin:0; font-size:1rem; font-weight:780; letter-spacing:-.025em; }
  .event-editor-popover .plan-head-actions { display:flex; align-items:center; gap:.48rem; }
  .event-editor-popover .plan-close { position:static; width:34px; height:34px; min-height:34px; flex:none; }
  .event-editor-popover .plan-status-choice { max-width:none; margin:0; }
  .event-editor-popover .plan-status-choice legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  .event-editor-popover .plan-status-choice > div { width:auto; gap:.15rem; padding:.15rem; border-radius:10px; }
  .event-editor-popover .plan-status-choice span { min-height:29px; border-radius:8px; padding:0 .48rem; font-size:.58rem; }

  .event-editor-popover [data-plan-step],
  .event-editor-popover.event-edit-mode [data-plan-step="1"],
  .event-editor-popover.event-edit-mode [data-plan-step="2"],
  .event-editor-popover.event-edit-mode [data-plan-step="3"] {
    gap:.72rem;
    overflow:visible;
    border:0;
    border-bottom:1px solid rgba(18,49,48,.09);
    border-radius:0;
    padding:1rem 0;
    background:transparent;
    box-shadow:none;
  }
  .event-editor-popover [data-plan-step]::before,
  .event-editor-popover.event-edit-mode [data-plan-step]::before {
    position:static;
    display:block;
    width:auto;
    background:transparent;
    color:#78908b;
    content:"Event";
    font-size:.52rem;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
  }
  .event-editor-popover.event-edit-mode [data-plan-step="2"]::before { content:"Schedule"; }
  .event-editor-popover.event-edit-mode [data-plan-step="3"]::before { content:"Details"; }
  .event-editor-popover.contextual-create-mode [data-plan-step="1"]::before { content:"Plan"; }
  .event-editor-popover.contextual-create-mode [data-plan-step="2"]::before { content:"Calendar"; }
  .event-editor-popover.contextual-create-mode [data-plan-step="3"]::before { content:"Details"; }
  .event-editor-popover[data-editor-mode="new-unscheduled"] [data-plan-step="2"],
  .event-editor-popover[data-editor-mode="hit-list"] [data-plan-step="2"] { display:none!important; }
  .event-editor-popover[data-editor-mode="new-unscheduled"] .plan-status-choice,
  .event-editor-popover[data-editor-mode="hit-list"] .plan-status-choice { display:none!important; }
  .plan-form.unified-plan-drawer.event-editor-popover .plan-question-heading,
  .plan-form.unified-plan-drawer.event-editor-popover .plan-suggestion-library,
  .plan-form.unified-plan-drawer.event-editor-popover .plan-destination-picker,
  .plan-form.unified-plan-drawer.event-editor-popover .placement-suggestion,
  .plan-form.unified-plan-drawer.event-editor-popover .placement-category,
  .plan-form.unified-plan-drawer.event-editor-popover .placement-calendar,
  .plan-form.unified-plan-drawer.event-editor-popover .placement-selection { display:none!important; }
  .event-editor-popover .plan-context-preview[hidden] { display:none!important; }
  .event-editor-popover .plan-type-choice { margin:0; }
  .event-editor-popover .plan-type-choice legend { margin-bottom:.38rem; color:#6d8580; font-size:.56rem; }
  .event-editor-popover .plan-type-choice > div { display:flex; gap:.3rem; overflow-x:auto; padding:.05rem 0; scrollbar-width:none; }
  .event-editor-popover .plan-type-choice label { flex:none; }
  .event-editor-popover .plan-type-choice span { min-height:30px; padding:.3rem .58rem; font-size:.57rem; }
  .event-editor-popover .drawer-placement-fields { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:.55rem; }
  .event-editor-popover label { gap:.28rem; font-size:.61rem; }
  .event-editor-popover input,
  .event-editor-popover select,
  .event-editor-popover textarea { min-height:39px; border-radius:10px; padding:.62rem .7rem; font-size:.83rem; }
  .event-editor-popover input,
  .event-editor-popover select { min-height:44px; }
  .event-editor-popover textarea { min-height:78px; resize:vertical; }
  .event-editor-popover .plan-detail-questions > .plan-question,
  .event-editor-popover .plan-detail-questions > .meal-links,
  .event-editor-popover .plan-detail-questions > .event-photo-manager { gap:.62rem; border:0; padding:0; }
  .event-editor-popover .plan-location-question { display:grid; grid-template-columns:1fr; }
  .event-editor-popover .plan-location-mode {
    min-width:0;
    margin:0;
    border:0;
    padding:0;
  }
  .event-editor-popover .plan-location-mode > div {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
  }
  .event-editor-popover .plan-location-mode button {
    display:grid;
    min-width:0;
    min-height:58px;
    grid-template-columns:22px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:.5rem;
    align-content:center;
    align-items:center;
    border:1px solid rgba(18,49,48,.13);
    border-radius:12px;
    padding:.55rem .62rem;
    background:#fff;
    color:var(--ink);
    text-align:left;
  }
  .event-editor-popover .plan-location-mode button > span {
    grid-row:1 / span 2;
    align-self:center;
    color:var(--pine);
    font-size:.78rem;
    line-height:1;
    text-align:center;
  }
  .event-editor-popover .plan-location-mode button b {
    min-width:0;
    font-size:.66rem;
    line-height:1.15;
  }
  .event-editor-popover .plan-location-mode button small {
    display:block;
    min-width:0;
    overflow:hidden;
    color:var(--muted);
    font-size:.53rem;
    font-weight:600;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .event-editor-popover .plan-location-mode button:hover,
  .event-editor-popover .plan-location-mode button:focus-visible {
    border-color:rgba(14,119,119,.38);
    background:#f7fbfa;
  }
  .event-editor-popover .plan-location-mode button.is-selected {
    border-color:#2a8f86;
    background:#edf7f4;
    box-shadow:inset 3px 0 0 #2a8f86;
  }
  .event-editor-popover:not(.show-event-more) .plan-address-field,
  .event-editor-popover:not(.show-event-more) .plan-time-question,
  .event-editor-popover:not(.show-event-more) .meal-links,
  .event-editor-popover:not(.show-event-more) .event-photo-manager { display:none!important; }
  .event-editor-popover .plan-time-range,
  .event-editor-popover .meal-links-fields { gap:.55rem; }
  .event-editor-popover .meal-links-heading strong,
  .event-editor-popover .meal-links-heading small,
  .event-editor-popover .event-photo-heading small,
  .event-editor-popover .event-photo-manager > p { display:none; }
  .event-editor-popover .meal-links-heading span,
  .event-editor-popover .event-photo-heading span { font-size:.54rem; }
  .event-editor-popover .event-photo-heading strong { font-size:.77rem; }
  .event-editor-popover .event-photo-list { grid-template-columns:repeat(3,minmax(0,1fr)); }

  .event-editor-popover .plan-wizard-actions,
  .event-editor-popover.event-edit-mode .plan-wizard-actions {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:.55rem;
    margin:0 calc(var(--drawer-pad) * -1);
    padding:.78rem var(--drawer-pad) calc(.78rem + env(safe-area-inset-bottom));
    background:rgba(255,254,250,.98);
  }
  .event-editor-popover .plan-wizard-actions .form-message { font-size:.6rem; line-height:1.3; text-align:right; }
  .event-editor-popover .event-delete { min-height:34px; padding:.35rem 0; font-size:.62rem; }
  .event-editor-popover .plan-save-secondary { min-height:36px; border:1px solid rgba(14,85,87,.2); border-radius:999px; padding:.5rem .72rem; background:#fff; color:var(--pine); font-size:.63rem; }
  .event-editor-popover #save-plan { min-width:108px; min-height:36px; padding:.5rem .75rem; font-size:.65rem; }
}

@media (prefers-reduced-motion:reduce) {
  .event-more-toggle svg { transition:none; }
  .plan-form.unified-plan-drawer.event-editor-popover,
  .plan-form.unified-plan-drawer.event-editor-popover.is-closing { animation:none; }
}

/* Keep each calendar period semantic: one background opener beside its real controls. */
.calendar-slot { position:relative; }
.calendar-slot-whitespace-opener {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  min-height:0;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
  cursor:pointer;
}
.calendar-slot-whitespace-opener:focus-visible {
  outline:2px solid #0e7777;
  outline-offset:-3px;
}
.calendar-slot > :not(.calendar-slot-whitespace-opener) {
  position:relative;
  z-index:1;
}

/* 2026-07-22: photo-led Explore and Hit List tray.
   Compact is a fast, horizontal discovery shelf. Expanded is a materially
   richer browsing canvas rather than a taller version of the same list. */
.destination-compact-shelf,
.hit-list-visual-shelf,
.destination-discovery-canvas,
.hit-list-discovery-canvas,
.destination-gallery-grid,
.hit-list-discovery-grid { min-width:0; }

.destination-card-media {
  position:relative;
  display:block;
  min-width:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.58) 0 9%,transparent 9.5%),
    linear-gradient(145deg,color-mix(in srgb,var(--destination-wash,#e8f4f1) 82%,white),#f7f2e9);
}
.destination-card-photo {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#e7f1ee;
  transition:transform .42s cubic-bezier(.22,1,.36,1),filter .25s ease;
}
.destination-card-fallback {
  position:relative;
  display:grid;
  width:100%;
  height:100%;
  place-items:center;
  overflow:hidden;
  color:color-mix(in srgb,var(--destination-accent,var(--pine)) 82%,#315b57);
  font-size:1.35rem;
  font-weight:850;
  isolation:isolate;
}
.destination-card-fallback::before,
.destination-card-fallback::after {
  position:absolute;
  z-index:-1;
  border:1px solid color-mix(in srgb,var(--destination-accent,var(--pine)) 14%,transparent);
  border-radius:50%;
  background:rgba(255,255,255,.22);
  content:"";
}
.destination-card-fallback::before { right:-10%; bottom:-52%; width:70%; aspect-ratio:1; }
.destination-card-fallback::after { top:-38%; left:-8%; width:54%; aspect-ratio:1; }
.destination-card-fallback > span,
.destination-card-fallback > svg {
  width:38px;
  height:38px;
  opacity:.82;
}

.destination-visual-card,
.hit-list-visual-card,
.destination-feature-card,
.destination-gallery-card,
.hit-list-gallery-card {
  --card-action-size:34px;
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(18,49,48,.11);
  border-radius:15px;
  background:#fffefa;
  color:var(--ink);
}
.destination-visual-card-trigger {
  display:grid;
  width:100%;
  min-width:0;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
  color:inherit;
  text-align:left;
}
.destination-visual-card-trigger:hover .destination-card-photo,
.destination-visual-card-trigger:focus-visible .destination-card-photo { transform:scale(1.025); filter:saturate(1.04); }
.destination-visual-card-trigger:focus-visible { outline:3px solid rgba(14,119,119,.35); outline-offset:-3px; }
.destination-card-copy {
  display:grid;
  min-width:0;
  grid-column:auto;
  grid-row:auto;
  gap:.12rem;
  padding:.65rem .72rem .55rem;
}
.place-explorer-card .destination-visual-card .destination-card-copy,
.place-explorer-card .destination-feature-card .destination-card-copy,
.place-explorer-card .destination-gallery-card .destination-card-copy {
  grid-column:auto;
  grid-row:auto;
  padding-right:.72rem;
}
.destination-card-copy small {
  overflow:hidden;
  color:var(--destination-accent,var(--teal));
  font-size:.5rem;
  font-weight:900;
  letter-spacing:.075em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.destination-card-copy strong {
  overflow:hidden;
  color:var(--ink);
  font-size:.82rem;
  font-weight:820;
  line-height:1.18;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.destination-card-copy em {
  display:-webkit-box;
  overflow:hidden;
  color:var(--muted);
  font-size:.61rem;
  font-style:normal;
  line-height:1.35;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.destination-card-actions {
  display:flex;
  min-width:0;
  align-items:center;
  align-self:stretch;
  gap:.35rem;
  grid-column:auto;
  grid-row:auto;
  border-top:1px solid rgba(18,49,48,.075);
  margin:0;
  padding:.48rem .62rem .55rem;
}
.destination-card-actions button {
  min-height:var(--card-action-size);
  border-radius:999px;
  padding:.42rem .62rem;
  font-size:.58rem;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
}
.destination-card-actions .destination-card-secondary { border:0; background:transparent; color:var(--pine); }
.destination-card-secondary:hover,.destination-card-secondary:focus-visible { background:#edf5f2; }
.destination-card-actions .destination-card-primary { margin-left:auto; border:0; background:var(--pine); color:white; }
.destination-card-primary:hover,.destination-card-primary:focus-visible { background:#287b74; }
.destination-card-actions .is-status { background:#eaf5ef; color:#276f5d; }
.destination-visual-card.is-selected,
.hit-list-visual-card.is-selected,
.destination-feature-card.is-selected,
.destination-gallery-card.is-selected,
.hit-list-gallery-card.is-selected { border-color:color-mix(in srgb,var(--destination-accent,var(--teal)) 44%,white); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--destination-accent,var(--teal)) 18%,transparent); }
.destination-card-state {
  position:absolute;
  z-index:2;
  top:.55rem;
  right:.55rem;
  max-width:calc(100% - 1.1rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.65);
  border-radius:999px;
  padding:.3rem .48rem;
  background:rgba(255,254,250,.91);
  box-shadow:0 3px 12px rgba(18,49,48,.1);
  color:#276f5d;
  font-size:.49rem;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
  backdrop-filter:blur(8px);
}

@media (min-width:1120px) {
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom.is-compact {
    --itinerary-tray-height:416px;
  }
  .planner-layout.is-supporting-open .itinerary-supporting-shell.layout-bottom:is(.is-expanded,.is-fullscreen) {
    --itinerary-tray-height:min(64dvh,720px);
  }

  /* Medium tray: one calm, photo-first shelf with predictable scroll snapping. */
  .planner-layout.is-supporting-open .layout-bottom:is(.is-compact,.is-expanded,.is-fullscreen) .place-explorer > .place-explorer-card {
    width:100%;
    max-width:none;
    flex:1 1 auto;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-search-results,.destination-browser) {
    min-height:0;
    overflow:hidden;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .planning-tools {
    width:100%!important;
    border-right:0!important;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .hit-list #hit-itinerary-list:has(.hit-list-visual-shelf),
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .hit-list #hit-itinerary-list:has(.hit-list-discovery-canvas) {
    display:block!important;
    width:100%;
    min-height:0;
    flex:1 1 auto;
    margin:0;
    overflow:hidden!important;
    padding:0;
  }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-compact,.is-expanded,.is-fullscreen) .hit-list:has(:is(.hit-list-visual-shelf,.hit-list-discovery-canvas)) :is(.hit-list-bank-heading,.hit-placement-help) { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-compact-shelf,.hit-list-visual-shelf) {
    display:grid!important;
    min-height:0;
    height:100%;
    grid-auto-columns:minmax(238px,258px);
    grid-auto-flow:column;
    gap:.7rem;
    overflow-x:auto;
    overflow-y:hidden;
    padding:.08rem .12rem .48rem;
    scroll-padding-inline:.12rem;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-compact-shelf,.hit-list-visual-shelf)::-webkit-scrollbar { display:none; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-visual-card,.hit-list-visual-card,.destination-gallery-card,.hit-list-gallery-card) {
    display:grid;
    height:100%;
    min-height:0;
    grid-template-rows:minmax(0,1fr) auto;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-visual-card-trigger {
    min-height:0;
    grid-template-rows:minmax(132px,1.7fr) minmax(48px,.65fr);
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-card-media { min-height:0; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-card-copy { padding:.38rem .62rem .3rem; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-card-copy em { -webkit-line-clamp:1; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-card-actions { padding:.22rem .52rem .28rem; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-card-actions button { min-height:28px; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-result-group-filtered,.idea-tray):has(+ .destination-compact-shelf),
  .planner-layout.is-supporting-open .layout-bottom.is-compact :is(.destination-result-group-filtered,.idea-tray):has(+ .hit-list-visual-shelf) { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact:has(.destination-selection-detail.is-compact-card-detail.is-open) .place-explorer {
    grid-template-columns:minmax(150px,1fr) auto minmax(140px,230px);
  }
  .planner-layout.is-supporting-open .layout-bottom.is-compact:has(.destination-selection-detail.is-compact-card-detail.is-open) .place-explorer > .planner-heading h3,
  .planner-layout.is-supporting-open .layout-bottom.is-compact:has(.destination-selection-detail.is-compact-card-detail.is-open) .destination-search { display:block!important; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact:has(.destination-selection-detail.is-compact-card-detail.is-open) .place-explorer > .planner-heading > div { display:flex; }
  .planner-layout.is-supporting-open .layout-bottom.is-compact:has(.destination-selection-detail.is-compact-card-detail.is-open) .place-explorer-card > .explorer-type-choice { grid-column:2; }

  /* Compact card details are true anchored popovers and never alter tray height. */
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-selection-detail.is-compact-card-detail.is-open {
    position:fixed!important;
    z-index:205;
    inset:0!important;
    display:block!important;
    width:100vw!important;
    height:100dvh!important;
    overflow:visible!important;
    border:0;
    background:transparent;
    pointer-events:none;
  }
  .destination-selection-detail.is-compact-card-detail .destination-selection-backdrop {
    position:fixed;
    inset:0;
    display:block;
    border:0;
    background:transparent;
    pointer-events:auto;
  }
  .destination-selection-detail.is-compact-card-detail .destination-compact-detail-panel {
    position:fixed;
    z-index:1;
    top:var(--destination-popover-top,1rem);
    left:var(--destination-popover-left,1rem);
    display:flex;
    width:min(430px,calc(100vw - 2rem));
    max-height:min(470px,calc(100dvh - 2rem));
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(18,49,48,.14)!important;
    border-radius:18px!important;
    background:#fffefa;
    box-shadow:0 22px 60px rgba(18,49,48,.2),0 3px 12px rgba(18,49,48,.08)!important;
    pointer-events:auto;
    transform-origin:bottom center;
    animation:destination-card-popover-in .2s cubic-bezier(.22,1,.36,1) both;
  }
  .destination-selection-detail.is-compact-card-detail[data-anchor-side="below"] .destination-compact-detail-panel { transform-origin:top center; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-content { min-height:0; overflow-y:auto; padding:1rem 1.05rem .75rem; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-media { grid-template-columns:128px minmax(0,1fr); align-items:start; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-photo { height:100px; aspect-ratio:auto; border-radius:12px; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-panel > footer { flex-wrap:nowrap; padding:.72rem 1rem; background:#fffefa; }
  @keyframes destination-card-popover-in { from { opacity:0; transform:translateY(5px) scale(.985); } to { opacity:1; transform:none; } }

  /* Expanded tray: one scrolling discovery canvas, not a permanent 42/58 split. */
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .planning-tools {
    width:100%!important;
    border-right:0!important;
    padding:.45rem 1rem .85rem;
  }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .destination-selection-detail:not(.is-expanded-spotlight) { display:none!important; }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) :is(.destination-search-results,.destination-browser) { min-height:0; flex:1 1 auto; overflow:hidden; }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) :is(.destination-discovery-canvas,.hit-list-discovery-canvas) {
    display:grid;
    min-height:0;
    height:100%;
    grid-auto-rows:max-content;
    align-content:start;
    gap:1.15rem;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:.15rem .18rem 1.2rem;
    scrollbar-gutter:stable;
  }
  .destination-discovery-intro {
    position:sticky;
    z-index:4;
    top:0;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:1rem;
    border-bottom:1px solid rgba(18,49,48,.09);
    padding:.35rem .15rem .65rem;
    background:rgba(255,253,250,.96);
    backdrop-filter:blur(12px);
  }
  .destination-discovery-intro strong { font-size:.86rem; letter-spacing:-.015em; }
  .destination-discovery-intro span { color:var(--muted); font-size:.61rem; }
  .destination-discovery-intro p { margin:0; color:var(--muted); font-size:.62rem; line-height:1.35; }
  .destination-feature-card {
    display:grid;
    min-height:230px;
    grid-template-rows:1fr auto;
    border-radius:18px;
  }
  .destination-feature-card .destination-visual-card-trigger { grid-row:1; grid-template-columns:minmax(310px,1.2fr) minmax(260px,.8fr); }
  .destination-feature-card .destination-card-media { min-height:205px; }
  .destination-feature-card .destination-card-copy { align-self:center; padding:1.2rem 1.25rem .8rem; }
  .destination-feature-card .destination-card-copy small { font-size:.55rem; }
  .destination-feature-card .destination-card-copy strong { font-size:1.2rem; white-space:normal; }
  .destination-feature-card .destination-card-copy em { font-size:.72rem; line-height:1.5; -webkit-line-clamp:3; }
  .destination-feature-card .destination-card-actions { grid-row:2; padding:.7rem 1.1rem .85rem; }
  .destination-gallery-grid,
  .hit-list-discovery-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.95rem;
  }
  .destination-gallery-lane { display:grid; grid-column:1 / -1; gap:.65rem; }
  .destination-gallery-lane > header { display:flex; align-items:end; justify-content:space-between; border-bottom:1px solid rgba(18,49,48,.1); padding:.1rem .08rem .5rem; }
  .destination-gallery-lane > header strong { font-size:.76rem; }
  .destination-gallery-lane > header span { color:var(--muted); font-size:.57rem; }
  .destination-gallery-lane > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.95rem; }
  .destination-gallery-card { display:grid; min-height:250px; grid-template-rows:minmax(125px,1.25fr) auto; }
  .destination-gallery-card .destination-visual-card-trigger { min-height:0; grid-template-rows:minmax(125px,1.25fr) minmax(70px,.75fr); }
  .destination-gallery-card .destination-card-copy strong { font-size:.92rem; white-space:normal; }
  .destination-gallery-card .destination-card-copy em { font-size:.66rem; }

  /* Expanded selection reads as a focused in-tray spotlight layer. */
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .destination-selection-detail.is-expanded-spotlight.is-open {
    position:absolute!important;
    z-index:12;
    inset:56px 0 0!important;
    display:grid!important;
    width:auto!important;
    height:auto!important;
    place-items:center;
    overflow:hidden!important;
    padding:1.1rem;
    background:rgba(18,49,48,.22);
    pointer-events:auto;
    backdrop-filter:blur(7px);
  }
  .destination-selection-detail.is-expanded-spotlight .destination-selection-backdrop { position:absolute; inset:0; display:block; border:0; background:transparent; }
  .destination-selection-detail.is-expanded-spotlight .destination-spotlight-panel {
    position:relative;
    display:flex;
    width:min(980px,calc(100% - 2rem));
    max-height:calc(100% - 1rem);
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(18,49,48,.12)!important;
    border-radius:20px!important;
    background:#fffefa;
    box-shadow:0 24px 72px rgba(18,49,48,.24)!important;
    animation:destination-spotlight-in .24s cubic-bezier(.22,1,.36,1) both;
  }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-content { min-height:0; overflow-y:auto; padding:1.25rem 1.35rem 1rem; }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-media { float:left; width:52%; margin:0 1.25rem .8rem 0; }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-photo { max-height:none; aspect-ratio:4 / 3; border-radius:15px; }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-panel > footer { clear:both; justify-content:flex-end; padding:.85rem 1.25rem 1rem; }
  @keyframes destination-spotlight-in { from { opacity:0; transform:translateY(8px) scale(.99); } to { opacity:1; transform:none; } }
}

@media (min-width:1600px) {
  .destination-gallery-grid,
  .hit-list-discovery-grid,
  .destination-gallery-lane > div { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (prefers-reduced-motion:reduce) {
  .destination-card-photo { transition:none; }
  .destination-selection-detail.is-compact-card-detail .destination-compact-detail-panel,
  .destination-selection-detail.is-expanded-spotlight .destination-spotlight-panel { animation:none!important; }
}

/* Interaction and resilience polish for the photo-led tray. */
.destination-card-media { isolation:isolate; }
.destination-card-error-fallback {
  position:absolute;
  inset:0;
  z-index:0;
}
.destination-card-credit {
  position:absolute;
  z-index:2;
  right:.42rem;
  bottom:.35rem;
  max-width:calc(100% - .84rem);
  overflow:hidden;
  border-radius:999px;
  padding:.18rem .32rem;
  background:rgba(18,49,48,.68);
  color:white;
  font-size:.42rem;
  font-weight:750;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
  pointer-events:none;
  backdrop-filter:blur(7px);
}
.destination-visual-card.is-selected,
.destination-feature-card.is-selected,
.destination-gallery-card.is-selected {
  border-color:color-mix(in srgb,var(--destination-accent,var(--teal)) 42%,white);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--destination-accent,var(--teal)) 14%,transparent);
}

@media (min-width:1120px) {
  /* The compact details shell is viewport-wide only to provide a click-away
     surface. The card itself remains anchored and non-resizing. */
  .planner-layout.is-supporting-open .layout-bottom.is-compact .destination-selection-detail.is-compact-card-detail.is-open,
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .destination-selection-detail.is-expanded-spotlight.is-open {
    animation:none!important;
  }
  .destination-selection-detail.is-compact-card-detail .destination-selection-backdrop {
    position:fixed;
    inset:0;
    display:block;
    border:0;
    background:transparent;
    pointer-events:auto;
  }
  .destination-selection-detail:is(.is-compact-card-detail,.is-expanded-spotlight).is-closing {
    animation:destination-detail-shell-out .16s ease both!important;
  }
  @keyframes destination-detail-shell-out { to { opacity:0; } }

  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .hit-list-discovery-canvas {
    display:grid;
    min-height:0;
    height:100%;
    align-content:start;
    gap:1.15rem;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:.15rem .18rem 1.2rem;
    scrollbar-gutter:stable;
  }
  .planner-layout.is-supporting-open .layout-bottom:is(.is-expanded,.is-fullscreen) .hit-list-discovery-grid {
    height:auto;
    overflow:visible;
    padding:0;
  }

  /* Keep spotlight content stable with long copy instead of relying on a
     float whose height changes as metadata appears. */
  .destination-selection-detail.is-expanded-spotlight .destination-detail-content {
    display:grid;
    grid-template-columns:minmax(260px,1.05fr) minmax(280px,.95fr);
    grid-auto-rows:max-content;
    align-content:start;
    column-gap:1.35rem;
  }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-media {
    grid-column:1;
    grid-row:1 / span 8;
    width:auto;
    margin:0;
    float:none;
  }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-content > :not(.destination-detail-media) {
    grid-column:2;
  }
}

@media (prefers-reduced-motion:reduce) {
  .destination-selection-detail:is(.is-compact-card-detail,.is-expanded-spotlight).is-closing { animation:none!important; }
}

/* People workspace release tokens are scoped so the redesign can ship independently. */
.editor-panel[data-editor-panel="people"],.people-drawer,.people-drawer-backdrop,.room-flow-shell {
  --surface:#fffefa;
  --surface-soft:#f2f8f6;
  --line:#d9e4e0;
  --ink:#123130;
  --ink-muted:#56706f;
  --primary:#066460;
  --accent:#ef856f;
  --saved:#248879;
  --saved-bg:#eaf7f2;
  --danger:#c96856;
}

/* Editorial People workspace
   The roster is the resting surface. Person details and room creation open
   contextually so organizers keep their place across desktop and mobile. */
.organizer-canvas .editor-panel[data-editor-panel="people"] { width:100%; max-width:none; }
.people-panel-intro {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,430px)!important;
  align-items:end;
  gap:clamp(2rem,6vw,6rem)!important;
  max-width:none!important;
  margin-bottom:0!important;
  border-bottom:1px solid var(--line);
  padding-bottom:clamp(1.5rem,2.5vw,2rem);
}
.people-panel-intro > div { display:grid; gap:.75rem; }
.people-panel-intro .eyebrow { margin:0; color:var(--accent); font-size:.75rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.people-panel-intro h2 { max-width:760px!important; margin:0; }
.people-panel-intro > p { align-self:end; max-width:430px!important; margin:0!important; color:var(--ink-muted)!important; font-size:.95rem!important; line-height:1.6!important; }

.people-subnav,.people-subpanel { width:min(100%,1360px); margin-inline:auto; }
.people-subnav {
  display:flex;
  gap:2rem;
  margin-top:0;
  margin-bottom:clamp(2rem,3.5vw,3rem);
  border-bottom:1px solid var(--line);
}
.people-subnav button {
  position:relative;
  min-height:54px;
  border:0;
  border-radius:0;
  padding:.85rem .15rem .8rem;
  background:transparent;
  color:var(--ink-muted);
  font-size:.78rem;
  font-weight:800;
  text-align:left;
  transition:color .15s ease;
}
.people-subnav button + button::before { display:none; }
.people-subnav button::after { position:absolute; right:0; bottom:-1px; left:0; height:3px; border-radius:3px 3px 0 0; background:transparent; content:""; transform:scaleX(.35); transition:background-color .18s ease,transform .2s cubic-bezier(.2,.8,.2,1); }
.people-subnav button:hover,.people-subnav button:focus-visible { background:transparent; color:var(--primary); }
.people-subnav button.is-active { background:transparent; color:var(--primary); }
.people-subnav button.is-active::after { background:var(--primary); transform:scaleX(1); }
.people-subpanel { opacity:0; transform:translateY(5px); }
.people-subpanel[hidden] { display:none; }
.people-subpanel.is-active { opacity:1; transform:none; transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1); }

.people-roster-workspace { width:100%; }
.people-roster-toolbar {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:2rem;
  border-bottom:1px solid var(--line);
  padding:0 0 1.25rem;
}
.people-roster-toolbar > div { display:grid; gap:.32rem; }
.people-roster-toolbar > div > span,.people-tool-head > div > span {
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.people-roster-toolbar h3 { margin:0; color:var(--ink); font-size:clamp(1.65rem,2.8vw,2.25rem); letter-spacing:-.05em; line-height:1.05; }
.people-roster-toolbar p { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin:.28rem 0 0; color:var(--ink-muted); font-size:.78rem; line-height:1.45; }
.people-roster-toolbar p strong { color:var(--ink-muted); font-weight:650; }
.people-roster-toolbar p i { color:#a7b5b2; font-style:normal; }
.people-add-person { min-height:44px; padding:.7rem 1rem; white-space:nowrap; }
.people-list { display:grid; max-width:none; gap:0; margin:0; overflow:visible; }

.person-row { position:relative; border-bottom:1px solid var(--line); background:transparent; }
.person-row-button {
  display:grid;
  width:100%;
  min-height:88px;
  grid-template-columns:44px minmax(210px,.8fr) minmax(0,1.5fr) 32px;
  align-items:center;
  gap:1rem;
  border:0;
  border-radius:0;
  padding:1rem .2rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
  transition:background-color .15s ease;
}
.person-row-button:hover,.person-row-button:focus-visible { background:linear-gradient(90deg,transparent,var(--surface-soft) 12%,var(--surface-soft) 88%,transparent); }
.person-row-button:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.person-row .person-avatar { width:44px; height:44px; border-radius:50%; background:var(--surface-soft); color:var(--primary); font-size:.75rem; }
.person-row:nth-child(4n+2) .person-avatar { background:#f0ecfa; color:#68569f; }
.person-row:nth-child(4n+3) .person-avatar { background:#e7f1fb; color:#3776a4; }
.person-row:nth-child(4n+4) .person-avatar { background:#fff0df; color:#b25e2d; }
.person-row-copy { display:grid; min-width:0; gap:.2rem; }
.person-row-copy strong { overflow:hidden; color:var(--ink); font-size:1rem; font-weight:760; text-overflow:ellipsis; white-space:nowrap; }
.person-row-copy small { overflow:hidden; color:var(--ink-muted); font-size:.74rem; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.person-row-statuses { display:flex; min-width:0; flex-wrap:wrap; justify-content:flex-end; gap:.45rem 1rem; }
.person-row-status { display:inline-flex; align-items:center; gap:.38rem; color:var(--ink-muted); font-size:.68rem; font-weight:700; white-space:nowrap; }
.person-row-status i { display:inline-grid; width:17px; height:17px; place-items:center; color:var(--primary); font-size:.67rem; font-style:normal; }
.person-row-status.is-unpaid,.person-row-status.is-unpaid i { color:#b75f45; }
.person-row-status.is-paid,.person-row-status.is-paid i { color:var(--saved); }
.person-row-status.is-missing,.person-row-status.is-missing i { color:#a26b24; }
.person-row-chevron { display:grid; width:32px; height:44px; place-items:center; color:var(--primary); font-size:1.5rem; font-weight:350; }
.person-row.is-new-person { animation:person-row-arrive 1.4s cubic-bezier(.2,.8,.2,1) both; }
.person-row .new-person-badge { top:.35rem; right:2.5rem; }
@keyframes person-row-arrive { 0% { opacity:0; transform:translateY(-8px); } 16%,70% { opacity:1; transform:none; background:var(--saved-bg); } 100% { background:transparent; } }

.people-empty-state {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  margin-top:1.25rem;
  border:1px dashed color-mix(in srgb,var(--primary) 24%,var(--line));
  border-radius:18px;
  padding:1.2rem;
  background:color-mix(in srgb,var(--surface-soft) 62%,transparent);
}
.people-empty-state > span { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:var(--surface); color:var(--primary); font-size:1.2rem; }
.people-empty-state > div { display:grid; gap:.18rem; }
.people-empty-state strong { color:var(--ink); font-size:.95rem; }
.people-empty-state p { margin:0; color:var(--ink-muted); font-size:.76rem; line-height:1.45; }
.people-empty-state button { min-height:44px; border:1px solid var(--line); border-radius:999px; padding:.65rem .85rem; background:var(--surface); color:var(--primary); font-size:.72rem; font-weight:850; }

.people-drawer-backdrop {
  position:fixed;
  z-index:254;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  visibility:hidden;
  background:rgba(18,49,48,.08);
  opacity:0;
  transition:opacity .2s ease,visibility .2s ease;
}
.people-drawer-backdrop[hidden],.people-drawer[hidden] { display:none!important; }
.people-drawer-backdrop.is-open { visibility:visible; opacity:1; }
body.people-drawer-open { overflow:hidden; }
.people-drawer {
  --people-drawer-pad:1.5rem;
  position:fixed;
  z-index:260;
  inset:0 0 0 auto;
  display:grid;
  width:min(520px,calc(100vw - 76px));
  height:100dvh;
  max-width:none;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:0;
  margin:0;
  overflow:hidden;
  border:0;
  border-left:1px solid var(--line);
  border-radius:0;
  padding:0;
  background:#fffdfa;
  box-shadow:-20px 0 62px rgba(18,49,48,.16);
  opacity:.7;
  transform:translateX(34px);
  transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.people-drawer.is-open { opacity:1; transform:none; }
.people-drawer.is-closing { opacity:0; transform:translateX(30px); }
.people-drawer-header { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:1rem; border-bottom:1px solid var(--line); padding:1.35rem var(--people-drawer-pad) 1.1rem; background:rgba(255,253,250,.97); }
.people-drawer-header > div { display:grid; gap:.35rem; }
.people-drawer-header span,.people-drawer-section-heading > span { color:var(--accent); font-size:.69rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.people-drawer-header h3 { margin:0; outline:0; color:var(--ink); font-size:1.65rem; letter-spacing:-.045em; line-height:1.08; }
.people-drawer-header p { max-width:390px; margin:0; color:var(--ink-muted); font-size:.8rem; line-height:1.5; }
.people-drawer-close { display:grid; width:44px; height:44px; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--ink); font-size:1.45rem; }
.people-drawer-close:hover,.people-drawer-close:focus-visible { background:var(--surface-soft); }
.people-drawer-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 var(--people-drawer-pad) 1.5rem; }
.people-drawer-section { display:grid; gap:1rem; border-bottom:1px solid var(--line); padding:1.35rem 0; }
.people-drawer-section:last-child { border-bottom:0; }
.people-drawer-section-heading { display:grid; gap:.2rem; }
.people-drawer-section-heading h4 { margin:0; color:var(--ink); font-size:1rem; letter-spacing:-.025em; }
.people-drawer-section-heading p { margin:0; color:var(--ink-muted); font-size:.72rem; line-height:1.45; }
.people-drawer label,.people-drawer fieldset { min-width:0; }
.people-drawer .people-name-field,.people-drawer .people-contact-grid label,.people-drawer .people-note-field { display:grid; gap:.42rem; color:var(--ink); font-size:.75rem; font-weight:780; }
.people-drawer input,.people-drawer textarea,.people-drawer select { width:100%; min-width:0; border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line)); border-radius:12px; padding:.78rem .85rem; background:var(--surface); color:var(--ink); font-size:16px; font-weight:520; }
.people-drawer input:focus,.people-drawer textarea:focus { outline:3px solid color-mix(in srgb,var(--accent) 22%,transparent); border-color:var(--accent); }
.people-drawer textarea { min-height:104px; resize:vertical; line-height:1.5; }
.people-drawer .people-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:0; }
.people-drawer .people-role-choice,.people-drawer .people-sharing-choice { display:grid; gap:.48rem; margin:0; border:0; padding:0; }
.people-drawer .people-role-choice legend,.people-drawer .people-sharing-choice legend { color:var(--ink); font-size:.75rem; font-weight:780; }
.people-drawer .people-role-choice > div,.people-drawer .people-sharing-choice > div { display:flex; flex-wrap:wrap; gap:.4rem; margin:0; }
.people-drawer .people-role-choice span,.people-drawer .people-sharing-choice span { min-height:40px; padding:.68rem .78rem; }
.people-drawer .people-role-choice input:focus-visible + span,
.people-drawer .people-sharing-choice input:focus-visible + span {
  outline:2px solid var(--primary);
  outline-offset:2px;
}
.people-drawer .people-publish-choice { min-height:58px; border-color:var(--line); border-radius:13px; padding:.8rem; background:var(--surface-soft); }
.people-drawer .people-publish-choice input { width:18px; height:18px; flex:none; margin:0; }
.people-drawer .people-publish-choice b { color:var(--ink); font-size:.76rem; }
.people-drawer .people-publish-choice small { color:var(--ink-muted); font-size:.67rem; line-height:1.4; }
.people-drawer-footer { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.7rem; border-top:1px solid var(--line); padding:1rem var(--people-drawer-pad) max(1rem,env(safe-area-inset-bottom)); background:rgba(255,253,250,.98); box-shadow:0 -8px 24px rgba(18,49,48,.04); }
.people-drawer-footer .form-message { grid-column:2; margin:0; font-size:.7rem; }
.people-drawer-footer .button,.people-drawer-footer .button-secondary { min-height:44px; border-radius:999px; padding:.68rem .95rem; font-size:.72rem; font-weight:850; }
.people-drawer-footer .button-secondary { border:1px solid var(--line); background:var(--surface); color:var(--primary); }
.people-remove-person { min-height:44px; border:0; padding:.6rem 0; background:transparent; color:var(--danger); font-size:.7rem; font-weight:800; }

.people-tool-focus { width:100%; min-height:0; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; }
.people-tool-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:2rem; margin-bottom:1.5rem; border-bottom:1px solid var(--line); padding-bottom:1.25rem; }
.people-tool-head h3 { margin:.3rem 0 .35rem; color:var(--ink); font-size:clamp(1.65rem,2.8vw,2.25rem)!important; letter-spacing:-.05em; line-height:1.05; }
.people-tool-head p { max-width:660px; margin:0; color:var(--ink-muted); font-size:.8rem; line-height:1.5; }
.people-tool-head > strong,.people-tool-actions > strong { justify-self:end; border-radius:999px; padding:.5rem .7rem; background:var(--surface-soft); color:var(--primary); font-size:.7rem; font-weight:780; white-space:nowrap; }
.people-tool-actions { display:flex; align-items:center; gap:.65rem; }
.people-tool-actions button { min-height:44px; border:1px solid var(--line); border-radius:999px; padding:.65rem .85rem; background:var(--surface); color:var(--primary); font-size:.7rem; font-weight:850; }
.payment-tracking-dashboard { grid-template-columns:1.18fr .91fr .91fr; gap:.9rem; margin-bottom:2rem; }
.payment-tracking-list { grid-template-columns:1fr; gap:1.1rem; }
.tracking-dashboard-card { padding:.85rem; }
.reminder-note { border:1px solid var(--line); background:var(--surface-soft); }

.rooms-workspace-layout { display:grid; grid-template-columns:minmax(270px,320px) minmax(0,1fr); align-items:start; gap:clamp(1.4rem,3vw,2.5rem); }
.room-placement-zone { position:sticky; top:1.25rem; align-content:start; border:1px solid var(--line); border-radius:18px; padding:1.15rem; background:var(--surface); box-shadow:0 10px 26px rgba(18,49,48,.035); }
.room-spaces-zone { min-width:0; margin:0; border:0; padding:0; }
.room-placement-zone .room-section-head { display:grid; align-items:start; gap:1rem; }
.room-placement-zone .room-section-action { justify-self:start; }
.room-section-head h4 { font-size:1.15rem!important; }
#room-people-bank { min-height:92px; border:0; border-top:1px solid var(--line); border-radius:0; padding:.9rem 0 0; background:transparent; }
.room-bank-chips { display:grid; gap:.4rem; }
.room-bank-chips button { width:100%; min-height:42px; border-radius:10px; padding:.65rem .7rem; cursor:pointer; text-align:left; }
.room-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.room-card { min-height:165px; border-color:var(--line); border-radius:16px; padding:1rem; background:var(--surface); }

@media (min-width:721px) {
  .room-flow-shell { place-items:stretch end; padding:0; }
  .room-flow-backdrop { background:rgba(18,49,48,.08); }
  .room-flow-dialog { width:min(520px,calc(100vw - 76px)); max-height:100dvh; height:100dvh; border:0; border-left:1px solid var(--line); border-radius:0; box-shadow:-20px 0 62px rgba(18,49,48,.16); transform:translateX(34px); }
  .room-flow-shell.is-open .room-flow-dialog { transform:none; }
  .room-flow-head { padding:1.35rem 1.5rem 1.1rem; background:#fffdfa; }
  .room-flow-body { padding:1.35rem 1.5rem; }
  .room-flow-actions { padding:1rem 1.5rem; }
}

@media (max-width:1100px) {
  .person-row-button { grid-template-columns:44px minmax(190px,.9fr) minmax(0,1.2fr) 32px; }
  .person-row-statuses { gap:.4rem .7rem; }
  .rooms-workspace-layout { grid-template-columns:minmax(230px,280px) minmax(0,1fr); }
  .room-card-grid { grid-template-columns:1fr; }
}

@media (max-width:720px) {
  .people-panel-intro { display:block!important; margin-bottom:.8rem!important; border-bottom:0; padding-bottom:0; }
  .people-panel-intro .eyebrow,.people-panel-intro > p { display:none; }
  .people-panel-intro h2 { font-size:clamp(2.2rem,11vw,3rem)!important; line-height:.98!important; }
  .people-subnav {
    position:sticky;
    z-index:30;
    top:calc(58px + env(safe-area-inset-top));
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:.25rem;
    width:calc(100% + .7rem);
    margin:0 -.35rem 1.6rem;
    border:1px solid color-mix(in srgb,var(--primary) 10%,var(--line));
    border-radius:999px;
    padding:.25rem;
    background:rgba(246,247,243,.96);
    box-shadow:0 8px 20px rgba(18,49,48,.08);
    backdrop-filter:blur(12px);
  }
  .people-subnav button { min-height:42px; border-radius:999px; padding:.62rem .4rem; font-size:.68rem; text-align:center; }
  .people-subnav button::after { display:none; }
  .people-subnav button.is-active { background:var(--surface); box-shadow:0 3px 10px rgba(18,49,48,.08); }
  .people-roster-toolbar,.people-tool-head { grid-template-columns:1fr; align-items:start; gap:1rem; }
  .people-roster-toolbar { padding-bottom:1rem; }
  .people-roster-toolbar h3,.people-tool-head h3 { font-size:1.55rem!important; }
  .people-roster-toolbar p { gap:.42rem; font-size:.72rem; }
  .people-add-person { width:100%; justify-content:center; }
  .person-row-button { min-height:68px; grid-template-columns:40px minmax(0,1fr) 28px; gap:.75rem; padding:.75rem 0; }
  .person-row .person-avatar { width:40px; height:40px; }
  .person-row-copy strong { font-size:.9rem; }
  .person-row-copy small { font-size:.68rem; }
  .person-row-statuses { display:none; }
  .person-row-chevron { grid-column:3; }
  .person-row .new-person-badge { top:-.3rem; right:1.6rem; }
  .people-empty-state { grid-template-columns:40px minmax(0,1fr); align-items:start; padding:1rem; }
  .people-empty-state > span { width:40px; height:40px; }
  .people-empty-state button { grid-column:1 / -1; width:100%; }
  .people-drawer { --people-drawer-pad:1rem; inset:0; width:100%; height:100dvh; border:0; opacity:.82; transform:translateY(24px); }
  .people-drawer.is-open { opacity:1; transform:none; }
  .people-drawer.is-closing { opacity:0; transform:translateY(18px); }
  .people-drawer-header { padding:calc(.9rem + env(safe-area-inset-top)) var(--people-drawer-pad) .85rem; }
  .people-drawer-header h3 { font-size:1.45rem; }
  .people-drawer-body { padding-right:var(--people-drawer-pad); padding-left:var(--people-drawer-pad); }
  .people-drawer .people-contact-grid { grid-template-columns:1fr; }
  .people-drawer .people-role-choice > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .people-drawer .people-sharing-choice > div { display:grid; grid-template-columns:1fr 1fr; }
  .people-drawer .people-role-choice span,.people-drawer .people-sharing-choice span { text-align:center; }
  .people-drawer .people-role-choice span { display:grid; min-height:48px; place-items:center; padding:.55rem .35rem; font-size:.62rem; line-height:1.15; }
  .people-drawer-footer { grid-template-columns:minmax(0,1fr) auto auto; padding-right:var(--people-drawer-pad); padding-left:var(--people-drawer-pad); }
  .people-drawer-footer .people-remove-person { grid-column:1; justify-self:start; }
  .people-drawer-footer .form-message { grid-column:1 / -1; grid-row:1; }
  .people-drawer-footer .button-secondary { grid-column:2; }
  .people-drawer-footer .button { grid-column:3; min-width:120px; }
  .people-tool-head > strong,.people-tool-actions > strong { justify-self:start; }
  .people-tool-actions { width:100%; justify-content:space-between; }
  .payment-tracking-dashboard { display:grid; grid-template-columns:1fr 1fr; margin-right:0; overflow:visible; padding:0; }
  .tracking-metric { min-height:108px; }
  .tracking-metric.is-total { grid-column:1 / -1; }
  .tracking-status-board { grid-template-columns:1fr; }
  .tracking-status-column { display:grid; grid-template-columns:88px minmax(0,1fr); }
  .rooms-workspace-layout { grid-template-columns:1fr; }
  .room-placement-zone { position:relative; top:auto; border-radius:16px; }
  .room-spaces-zone { border-top:1px solid var(--line); padding-top:1.4rem; }
  .room-bank-chips { display:flex; overflow-x:auto; padding-bottom:.2rem; scroll-snap-type:x proximity; scrollbar-width:none; }
  .room-bank-chips::-webkit-scrollbar { display:none; }
  .room-bank-chips button { width:auto; min-width:max-content; scroll-snap-align:start; }
  .room-card-grid { grid-template-columns:1fr; }
  .room-flow-shell { padding:0; }
  .room-flow-dialog { width:100%; height:100dvh; max-height:100dvh; border:0; border-radius:0; }
  .room-flow-head { padding:calc(.9rem + env(safe-area-inset-top)) 1rem .85rem; }
  .room-flow-body { padding:1rem; }
  .room-flow-actions { padding:.85rem 1rem max(.85rem,env(safe-area-inset-bottom)); }
}

@media (max-width:430px) {
  .people-drawer-footer { gap:.45rem; }
  .people-drawer-footer .button,.people-drawer-footer .button-secondary { padding:.65rem .72rem; }
  .people-drawer-footer .button { min-width:108px; }
}

@media (prefers-reduced-motion:reduce) {
  .people-subpanel,.people-drawer,.people-drawer-backdrop,.room-flow-dialog,.room-flow-backdrop { transition:none!important; animation:none!important; }
  .person-row.is-new-person { animation:none; }
}

/* Editorial Stay Details
   The resting page is the arrival brief. Editing lives in a contextual drawer
   so saved information remains legible instead of becoming a permanent form. */
:root {
  --canvas:#fbfaf7;
  --surface:#fff;
  --surface-soft:#f2f8f6;
  --surface-warm:#fff7f2;
  --ink-muted:#56706f;
  --line:#dce5e2;
  --primary:#066460;
  --primary-hover:#075451;
  --accent:#ef856f;
  --saved:#248879;
  --saved-bg:#eaf7f2;
  --danger:#c96856;
  --danger-bg:#fff0ec;
}

.organizer-canvas .editor-panel[data-editor-panel="stay"] { width:100%; max-width:none; }
.stay-panel-intro {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,430px)!important;
  align-items:end;
  gap:clamp(2rem,6vw,6rem)!important;
  max-width:none!important;
  margin-bottom:clamp(2.25rem,4vw,3.5rem)!important;
  border-bottom:1px solid var(--line);
  padding-bottom:clamp(1.5rem,2.5vw,2rem);
}
.stay-panel-intro > div { display:grid; gap:.75rem; }
.stay-panel-intro > div > .eyebrow {
  max-width:none;
  margin:0;
  color:var(--accent);
  font-size:.75rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.stay-panel-intro h2 { max-width:720px!important; margin:0; }
.stay-panel-intro > p {
  align-self:end;
  max-width:430px!important;
  margin:0!important;
  color:var(--ink-muted)!important;
  font-size:.95rem!important;
  line-height:1.6!important;
}

.stay-brief { width:min(100%,880px); }
.stay-empty-state,.stay-separate-state {
  display:grid;
  gap:1.75rem;
  border:1px solid var(--line);
  border-radius:22px;
  padding:clamp(1.5rem,4vw,2.5rem);
  background:linear-gradient(135deg,var(--surface) 0 68%,var(--surface-soft) 100%);
  box-shadow:0 14px 34px rgba(18,49,48,.055);
}
.stay-empty-state > div:first-child,.stay-separate-state { align-content:start; }
.stay-empty-state span,.stay-separate-state > span,.stay-brief-heading > div > span,.stay-brief-section > span,.stay-timing > div > span {
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.stay-empty-state h3,.stay-separate-state h3 {
  max-width:620px;
  margin:.45rem 0 .65rem;
  color:var(--ink);
  font-size:clamp(1.7rem,3vw,2.45rem);
  letter-spacing:-.05em;
  line-height:1.04;
}
.stay-empty-state p,.stay-separate-state p { max-width:620px; margin:0; color:var(--ink-muted); font-size:.96rem; line-height:1.6; }
.stay-empty-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; }
.stay-empty-actions .button { min-height:46px; padding:.75rem 1.15rem; }
.stay-separate-action,.stay-separate-state button {
  min-height:44px;
  border:0;
  padding:.65rem .4rem;
  background:transparent;
  color:var(--primary);
  font-size:.78rem;
  font-weight:800;
}
.stay-separate-state { justify-items:start; border-left:4px solid var(--saved); }
.stay-separate-state button { border:1px solid var(--line); border-radius:999px; padding:.65rem .9rem; background:var(--surface); }

.stay-brief-content { display:grid; color:var(--ink); }
.stay-brief-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:1.5rem;
  padding:0 0 2rem;
}
.stay-brief-heading > div { display:grid; min-width:0; gap:.45rem; }
.stay-brief-heading h3 {
  margin:.15rem 0 0;
  overflow-wrap:anywhere;
  color:var(--ink);
  font-size:clamp(1.9rem,3.3vw,2.75rem);
  letter-spacing:-.055em;
  line-height:1.02;
}
.stay-brief-heading p { margin:0; color:var(--ink-muted); font-size:1rem; line-height:1.55; }
.stay-brief-heading > button {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  gap:.5rem;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.65rem .9rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.78rem;
  font-weight:850;
  white-space:nowrap;
}
.stay-brief-section { border-top:1px solid var(--line); padding:1.65rem 0; }
.stay-brief-section > span,.stay-timing > div > span { color:var(--ink); font-size:.73rem; letter-spacing:0; text-transform:none; }
.stay-direction-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:.85rem; }
.stay-direction-actions a {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:11px;
  padding:.65rem .9rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.78rem;
  font-weight:750;
  text-decoration:none;
}
.stay-direction-actions a:hover,.stay-direction-actions a:focus-visible,.stay-brief-heading > button:hover,.stay-brief-heading > button:focus-visible { border-color:color-mix(in srgb,var(--primary) 38%,var(--line)); background:var(--surface-soft); }
.stay-timing { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.stay-timing > div { display:grid; min-width:0; gap:.45rem; padding-right:1.7rem; }
.stay-timing > div + div { border-left:1px solid var(--line); padding-right:0; padding-left:1.7rem; }
.stay-timing strong { overflow-wrap:anywhere; color:var(--ink); font-size:1rem; font-weight:550; line-height:1.45; }
.stay-arrival-notes { display:grid; justify-items:start; gap:.7rem; }
.stay-arrival-notes p { max-width:680px; margin:0; white-space:pre-line; color:var(--ink-muted); font-size:.92rem; line-height:1.65; }
.stay-arrival-notes > a { min-height:44px; padding:.65rem 0; color:var(--primary); font-size:.78rem; font-weight:750; }
.stay-add-detail { min-height:44px; justify-self:start; border:0; padding:.55rem 0; background:transparent; color:var(--primary); font-size:.78rem; font-weight:800; text-align:left; }
.stay-missing-section { display:grid; justify-items:start; gap:.5rem; }

.stay-editor-backdrop {
  position:fixed;
  z-index:244;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  visibility:hidden;
  background:rgba(18,49,48,.08);
  opacity:0;
  transition:opacity .2s ease,visibility .2s ease;
}
.stay-editor-backdrop[hidden],.stay-editor[hidden] { display:none!important; }
.stay-editor-backdrop.is-open { visibility:visible; opacity:1; }
.stay-editor {
  --stay-drawer-pad:1.5rem;
  position:fixed;
  z-index:250;
  inset:0 0 0 auto;
  display:grid;
  width:min(520px,calc(100vw - 76px));
  height:100dvh;
  max-width:none;
  overflow:hidden;
  border:0;
  border-left:1px solid var(--line);
  padding:0;
  background:#fffdfa;
  box-shadow:-20px 0 62px rgba(18,49,48,.16);
  opacity:.7;
  transform:translateX(34px);
  transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.stay-editor.is-open { opacity:1; transform:none; }
.stay-editor.is-closing { opacity:0; transform:translateX(30px); }
.stay-editor-flow {
  display:grid;
  width:100%;
  max-width:none;
  height:100%;
  grid-template-rows:auto auto auto minmax(0,1fr) auto;
  overflow:hidden;
  border:0;
  border-radius:0;
  padding:0;
  background:#fffdfa;
  box-shadow:none;
}
.stay-editor-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:1.35rem var(--stay-drawer-pad) 1.1rem;
  background:rgba(255,253,250,.97);
}
.stay-editor-header > div { display:grid; gap:.35rem; }
.stay-editor-header .eyebrow { margin:0; color:var(--accent); font-size:.7rem; font-weight:850; letter-spacing:.09em; text-transform:none; }
.stay-editor-header h3 { margin:0; outline:0; color:var(--ink); font-size:1.65rem; letter-spacing:-.045em; line-height:1.08; }
.stay-editor-header p:last-child { max-width:390px; margin:0; color:var(--ink-muted); font-size:.8rem; line-height:1.5; }
.stay-editor-close {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--ink);
  font-size:1.45rem;
}
.stay-editor-close:hover,.stay-editor-close:focus-visible { background:var(--surface-soft); }
.stay-editor-progress {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.8rem;
  margin:0;
  padding:.9rem var(--stay-drawer-pad) .45rem;
}
.stay-editor-progress > span { display:none; }
.stay-editor-progress > div { height:4px; }
.stay-editor-progress > b { font-size:.62rem; }
.stay-editor-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.35rem; padding:.5rem var(--stay-drawer-pad) .9rem; }
.stay-editor-steps button {
  display:grid;
  min-width:0;
  min-height:54px;
  place-items:center;
  gap:.25rem;
  border:1px solid transparent;
  border-radius:12px;
  padding:.45rem .25rem;
  background:transparent;
  color:var(--ink-muted);
  font-size:.62rem;
  font-weight:800;
}
.stay-editor-steps button i { display:grid; width:24px; height:24px; place-items:center; border-radius:9px; background:#e7efec; color:var(--primary); font-size:.61rem; font-style:normal; }
.stay-editor-steps button.is-current { border-color:color-mix(in srgb,var(--primary) 24%,var(--line)); background:var(--surface); color:var(--ink); box-shadow:0 5px 14px rgba(18,49,48,.055); }
.stay-editor-steps button.is-complete i { background:var(--saved); color:white; }
.stay-editor-steps button:disabled { cursor:not-allowed; opacity:.42; }
.stay-editor-body { min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:1.25rem var(--stay-drawer-pad) 1.75rem; }
.stay-editor .guided-step { display:grid; min-height:0; align-content:start; gap:1rem; animation:none; }
.stay-editor .guided-step[hidden] { display:none; }
.stay-editor .guided-step > label,.stay-editor .guided-step > fieldset,.stay-editor .guided-address-grid,.stay-editor .stay-datetime-grid { width:100%; max-width:none; }
.stay-editor label { display:grid; gap:.4rem; color:#365453; font-size:.74rem; font-weight:800; }
.stay-editor label > small { color:var(--ink-muted); font-size:.68rem; font-weight:500; line-height:1.4; }
.stay-editor input,.stay-editor select,.stay-editor textarea {
  width:100%;
  min-width:0;
  min-height:48px;
  border:1px solid color-mix(in srgb,var(--ink) 16%,white);
  border-radius:12px;
  padding:.75rem .85rem;
  background:var(--surface);
  color:var(--ink);
  font-size:16px;
  font-weight:500;
}
.stay-editor textarea { min-height:130px; resize:vertical; line-height:1.5; }
.stay-editor input:focus-visible,.stay-editor select:focus-visible,.stay-editor textarea:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 22%,transparent); outline-offset:1px; border-color:var(--primary); }
.stay-editor .stay-type-choice { display:grid; gap:.65rem; }
.stay-editor .stay-type-choice legend { margin-bottom:.1rem; color:#365453; font-size:.74rem; font-weight:800; }
.stay-editor .choice-cards { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; }
.stay-editor .choice-cards label { min-height:50px; place-content:center; border:1px solid var(--line); border-radius:13px; padding:.65rem; background:var(--surface); color:var(--ink); text-align:center; }
.stay-editor .choice-cards label:has(input:checked) { border-color:var(--primary); background:var(--surface-soft); box-shadow:inset 0 0 0 1px var(--primary); color:var(--primary); }
.stay-editor .choice-cards label:has(input:focus-visible),.separate-stay-choice label:has(input:focus-visible) { outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent); outline-offset:2px; }
.stay-property-name[hidden] { display:none; }
.separate-stay-choice {
  display:grid;
  gap:.55rem;
  border-top:1px solid var(--line);
  padding-top:1.1rem;
}
.separate-stay-choice > span { color:var(--ink-muted); font-size:.72rem; font-weight:700; }
.separate-stay-choice label { display:flex; min-height:48px; align-items:center; gap:.65rem; border:1px solid var(--line); border-radius:13px; padding:.7rem .8rem; background:var(--surface); }
.separate-stay-choice label input { position:static; width:18px!important; min-height:18px; opacity:1; pointer-events:auto; }
.separate-stay-note { width:100%; border:0; border-radius:12px; padding:.85rem; background:var(--saved-bg); }
.guided-address-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.guided-address-grid > label:first-child { grid-column:1 / -1; }
.stay-editor .stay-datetime-grid { grid-template-columns:1fr 1fr; gap:.7rem; }
.stay-editor .stay-datetime-card { gap:.65rem; overflow:visible; border:1px solid var(--line); border-radius:14px; padding:.85rem; background:var(--surface-soft); }
.stay-editor .stay-datetime-card legend { color:var(--ink); font-size:.75rem; }
.stay-editor .stay-datetime-card input,.stay-editor .stay-datetime-card select { font-size:16px; }
#stay-form .guided-actions.stay-editor-actions {
  display:grid!important;
  min-height:76px;
  grid-template-columns:auto auto minmax(0,1fr) auto;
  align-items:center;
  gap:.7rem;
  margin:0;
  border-top:1px solid var(--line);
  padding:.9rem var(--stay-drawer-pad) calc(.9rem + env(safe-area-inset-bottom));
  background:rgba(255,253,250,.98);
  backdrop-filter:blur(14px);
}
.stay-editor-actions .form-message { min-width:0; margin:0; color:var(--ink-muted); font-size:.69rem; line-height:1.35; text-align:left; }
.stay-editor-actions .guided-back { min-height:44px; padding:.55rem .35rem; }
.stay-editor-actions .guided-next,.stay-editor-actions .guided-save { min-width:132px; min-height:44px; }
.stay-editor-remove { min-height:44px; border:0; padding:.55rem .25rem; background:transparent; color:var(--danger); font-size:.7rem; font-weight:800; }
.stay-editor-actions [hidden] { display:none!important; }
.stay-editor[aria-busy="true"] { cursor:wait; }

@media (min-width:1101px) {
  .stay-editor { width:520px; }
}

@media (max-width:760px) {
  .stay-panel-intro { grid-template-columns:1fr!important; gap:.8rem!important; margin-bottom:2rem!important; padding-bottom:1.35rem; }
  .stay-panel-intro > p { max-width:620px!important; }
}

@media (max-width:720px) {
  body.stay-editor-open { overflow:hidden!important; touch-action:none; }
  .stay-panel-intro > div { gap:.55rem; }
  .stay-panel-intro h2 { font-size:clamp(2.15rem,11vw,3rem)!important; }
  .stay-panel-intro > p { font-size:.9rem!important; }
  .stay-empty-state,.stay-separate-state { gap:1.25rem; border-radius:18px; padding:1.25rem; }
  .stay-empty-actions { display:grid; grid-template-columns:1fr; }
  .stay-empty-actions .button,.stay-separate-action { width:100%; }
  .stay-brief-heading { grid-template-columns:1fr; gap:1.1rem; padding-bottom:1.4rem; }
  .stay-brief-heading h3 { font-size:1.8rem; }
  .stay-brief-heading > button { width:100%; justify-content:center; order:2; }
  .stay-brief-section { padding:1.25rem 0; }
  .stay-direction-actions { display:grid; grid-template-columns:1fr 1fr; }
  .stay-direction-primary { grid-column:1 / -1; border-color:var(--primary)!important; background:var(--primary)!important; color:white!important; }
  .stay-timing { grid-template-columns:1fr; }
  .stay-timing > div { padding:.2rem 0 1.1rem; }
  .stay-timing > div + div { border-top:1px solid var(--line); border-left:0; padding:1.1rem 0 .2rem; }
  .stay-editor-backdrop { background:rgba(18,49,48,.18); }
  .stay-editor {
    --stay-drawer-pad:1rem;
    inset:0;
    width:100dvw;
    max-width:100dvw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    box-shadow:none;
    opacity:.82;
    transform:translateY(24px);
  }
  .stay-editor.is-open { opacity:1; transform:none; }
  .stay-editor.is-closing { opacity:0; transform:translateY(18px); }
  .stay-editor-header { padding:calc(.9rem + env(safe-area-inset-top)) var(--stay-drawer-pad) .85rem; }
  .stay-editor-header h3 { font-size:1.45rem; }
  .stay-editor-progress { padding-top:.7rem; }
  .stay-editor-steps { padding-bottom:.65rem; }
  .stay-editor-steps button { min-height:50px; font-size:.58rem; }
  .stay-editor-body { padding-top:1rem; }
  .stay-editor .stay-datetime-grid { grid-template-columns:1fr; }
  #stay-form .guided-actions.stay-editor-actions { grid-template-columns:auto minmax(0,1fr) auto; }
  .stay-editor-actions .stay-editor-remove { grid-column:1; }
  .stay-editor-actions .guided-back { grid-column:1; }
  .stay-editor-actions .form-message { grid-column:1 / -1; grid-row:1; }
  .stay-editor-actions .guided-next,.stay-editor-actions .guided-save { grid-column:3; min-width:132px; }
}

@media (max-width:430px) {
  .stay-editor-steps { gap:.18rem; padding-right:.7rem; padding-left:.7rem; }
  .stay-editor-steps button span { font-size:.55rem; }
  .guided-address-grid { grid-template-columns:1fr; }
  .guided-address-grid > label:first-child { grid-column:auto; }
}

@media (prefers-reduced-motion:reduce) {
  .stay-editor,.stay-editor-backdrop { transition:none; }
  .stay-editor .guided-step { animation:none; }
}

/* Editorial People workspace
   The roster is the resting surface. Selecting a person swaps the roster for
   a full-width profile in the same canvas—never an overlay or side panel. */
.organizer-canvas .editor-panel[data-editor-panel="people"] { width:100%; max-width:none; }
.people-panel-intro {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,430px)!important;
  align-items:end;
  gap:clamp(2rem,6vw,6rem)!important;
  max-width:none!important;
  margin-bottom:0!important;
  border-bottom:1px solid var(--line);
  padding-bottom:clamp(1.5rem,2.5vw,2rem);
}
.people-panel-intro > div { display:grid; gap:.75rem; }
.people-panel-intro .eyebrow { margin:0; color:var(--accent); font-size:.75rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.people-panel-intro h2 { max-width:760px!important; margin:0; }
.people-panel-intro > p { align-self:end; max-width:430px!important; margin:0!important; color:var(--ink-muted)!important; font-size:.95rem!important; line-height:1.6!important; }

.people-subnav,.people-subpanel { width:min(100%,1360px); margin-inline:auto; }
.people-subnav {
  display:flex;
  gap:2rem;
  margin-top:0;
  margin-bottom:clamp(2rem,3.5vw,3rem);
  border-bottom:1px solid var(--line);
}
.people-subnav button {
  position:relative;
  min-height:54px;
  border:0;
  border-radius:0;
  padding:.85rem .15rem .8rem;
  background:transparent;
  color:var(--ink-muted);
  font-size:.78rem;
  font-weight:800;
  text-align:left;
  transition:color .15s ease;
}
.people-subnav button + button::before { display:none; }
.people-subnav button::after { position:absolute; right:0; bottom:-1px; left:0; height:3px; border-radius:3px 3px 0 0; background:transparent; content:""; transform:scaleX(.35); transition:background-color .18s ease,transform .2s cubic-bezier(.2,.8,.2,1); }
.people-subnav button:hover,.people-subnav button:focus-visible { background:transparent; color:var(--primary); }
.people-subnav button.is-active { background:transparent; color:var(--primary); }
.people-subnav button.is-active::after { background:var(--primary); transform:scaleX(1); }
.people-subpanel { opacity:0; transform:translateY(5px); }
.people-subpanel[hidden] { display:none; }
.people-subpanel.is-active { opacity:1; transform:none; transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1); }

.people-roster-workspace { width:100%; }
.people-roster-toolbar {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:2rem;
  border-bottom:1px solid var(--line);
  padding:0 0 1.25rem;
}
.people-roster-toolbar > div { display:grid; gap:.32rem; }
.people-roster-toolbar > div > span,.people-tool-head > div > span {
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.people-roster-toolbar h3 { margin:0; color:var(--ink); font-size:clamp(1.65rem,2.8vw,2.25rem); letter-spacing:-.05em; line-height:1.05; }
.people-roster-toolbar p { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin:.28rem 0 0; color:var(--ink-muted); font-size:.78rem; line-height:1.45; }
.people-roster-toolbar p strong { color:var(--ink-muted); font-weight:650; }
.people-roster-toolbar p i { color:#a7b5b2; font-style:normal; }
.people-add-person { min-height:44px; padding:.7rem 1rem; white-space:nowrap; }
.people-list { display:grid; max-width:none; gap:0; margin:0; overflow:visible; }

.person-row { position:relative; display:grid; grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr); align-items:center; border-bottom:1px solid var(--line); background:transparent; }
.person-row-button {
  display:grid;
  width:100%;
  min-height:88px;
  grid-template-columns:44px minmax(0,1fr) 32px;
  align-items:center;
  gap:1rem;
  border:0;
  border-radius:0;
  padding:1rem .2rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
  transition:background-color .15s ease;
}
.person-row-button:hover,.person-row-button:focus-visible { background:linear-gradient(90deg,transparent,var(--surface-soft) 12%,var(--surface-soft) 88%,transparent); }
.person-row-button:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.person-row .person-avatar { width:44px; height:44px; border-radius:50%; background:var(--surface-soft); color:var(--primary); font-size:.75rem; }
.person-row:nth-child(4n+2) .person-avatar { background:#f0ecfa; color:#68569f; }
.person-row:nth-child(4n+3) .person-avatar { background:#e7f1fb; color:#3776a4; }
.person-row:nth-child(4n+4) .person-avatar { background:#fff0df; color:#b25e2d; }
.person-row-copy { display:grid; min-width:0; gap:.2rem; }
.person-row-copy strong { overflow:hidden; color:var(--ink); font-size:1rem; font-weight:760; text-overflow:ellipsis; white-space:nowrap; }
.person-row-copy small { overflow:hidden; color:var(--ink-muted); font-size:.74rem; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.person-row-statuses { display:flex; min-width:0; flex-wrap:wrap; justify-content:flex-end; gap:.25rem .4rem; padding:.5rem .2rem .5rem 1rem; }
.person-row-status { display:inline-flex; min-height:44px; align-items:center; gap:.32rem; border:0; border-radius:999px; padding:.45rem .58rem; background:transparent; color:var(--ink-muted); font-size:.68rem; font-weight:700; white-space:nowrap; }
.person-row-status:hover,.person-row-status:focus-visible { background:var(--surface-soft); color:var(--primary); }
.person-row-status:focus-visible { outline:2px solid var(--primary); outline-offset:1px; }
.person-row-status i { display:inline-grid; width:17px; height:17px; place-items:center; color:var(--primary); font-size:.67rem; font-style:normal; }
.person-row-status.is-unpaid,.person-row-status.is-unpaid i { color:#b75f45; }
.person-row-status.is-paid,.person-row-status.is-paid i { color:var(--saved); }
.person-row-status.is-missing,.person-row-status.is-missing i { color:#a26b24; }
.person-row-chevron { display:grid; width:32px; height:44px; place-items:center; color:var(--primary); font-size:1.5rem; font-weight:350; }
.person-row.is-new-person { animation:person-row-arrive 1.4s cubic-bezier(.2,.8,.2,1) both; }
.person-row .new-person-badge { top:.35rem; right:2.5rem; }
@keyframes person-row-arrive { 0% { opacity:0; transform:translateY(-8px); } 16%,70% { opacity:1; transform:none; background:var(--saved-bg); } 100% { background:transparent; } }

.people-empty-state {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  margin-top:1.25rem;
  border:1px dashed color-mix(in srgb,var(--primary) 24%,var(--line));
  border-radius:18px;
  padding:1.2rem;
  background:color-mix(in srgb,var(--surface-soft) 62%,transparent);
}
.people-empty-state > span { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:var(--surface); color:var(--primary); font-size:1.2rem; }
.people-empty-state > div { display:grid; gap:.18rem; }
.people-empty-state strong { color:var(--ink); font-size:.95rem; }
.people-empty-state p { margin:0; color:var(--ink-muted); font-size:.76rem; line-height:1.45; }
.people-empty-state button { min-height:44px; border:1px solid var(--line); border-radius:999px; padding:.65rem .85rem; background:var(--surface); color:var(--primary); font-size:.72rem; font-weight:850; }

.people-profile[hidden] { display:none!important; }
.people-panel.is-person-profile-open > .people-panel-intro,
.people-panel.is-person-profile-open > .people-subnav,
.people-panel.is-person-profile-open > .people-subpanel { display:none!important; }
.people-profile {
  --people-profile-pad:0;
  position:relative;
  display:grid;
  width:min(100%,1360px);
  min-height:60vh;
  grid-template-rows:auto auto auto;
  gap:0;
  margin:0 auto;
  overflow:visible;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
  box-shadow:none;
  opacity:0;
  transform:translateY(10px);
  transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.people-profile.is-open { opacity:1; transform:none; }
.people-profile.is-closing { opacity:0; transform:translateY(8px); }
.people-profile-header { display:grid; gap:clamp(1.4rem,3vw,2rem); border-bottom:1px solid var(--line); padding:0 0 clamp(1.6rem,3vw,2.4rem); background:transparent; }
.people-profile-header > div { display:grid; max-width:900px; gap:.55rem; }
.people-profile-back { justify-self:start; min-height:44px; border:0; padding:.6rem 0; background:transparent; color:var(--primary); font-size:.76rem; font-weight:850; }
.people-profile-back:hover,.people-profile-back:focus-visible { color:var(--primary-hover); text-decoration:underline; text-underline-offset:4px; }
.people-profile-header span,.people-profile-section-heading > span { color:var(--accent); font-size:.69rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.people-profile-header h3 { margin:0; outline:0; color:var(--ink); font-size:clamp(2.5rem,5vw,4.8rem); letter-spacing:-.06em; line-height:.96; }
.people-profile-header p { max-width:700px; margin:0; color:var(--ink-muted); font-size:.9rem; line-height:1.55; }
.people-profile-body { min-height:0; overflow:visible; padding:0; }
.people-profile-section { display:grid; align-content:start; gap:1rem; border-bottom:1px solid var(--line); padding:clamp(1.4rem,3vw,2rem) 0; }
.people-profile-section:last-child { border-bottom:0; }
.people-profile-section-heading { display:grid; gap:.2rem; }
.people-profile-section-heading h4 { margin:0; color:var(--ink); font-size:1rem; letter-spacing:-.025em; }
.people-profile-section-heading p { margin:0; color:var(--ink-muted); font-size:.72rem; line-height:1.45; }
.people-profile label,.people-profile fieldset { min-width:0; }
.people-profile .people-name-field,.people-profile .people-contact-grid label,.people-profile .people-note-field { display:grid; gap:.42rem; color:var(--ink); font-size:.75rem; font-weight:780; }
.people-profile input,.people-profile textarea,.people-profile select { width:100%; min-width:0; border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line)); border-radius:12px; padding:.78rem .85rem; background:var(--surface); color:var(--ink); font-size:16px; font-weight:520; }
.people-profile input:focus,.people-profile textarea:focus { outline:3px solid color-mix(in srgb,var(--accent) 22%,transparent); border-color:var(--accent); }
.people-profile textarea { min-height:104px; resize:vertical; line-height:1.5; }
.people-profile .people-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:0; }
.people-profile .people-role-choice,.people-profile .people-sharing-choice { display:grid; gap:.48rem; margin:0; border:0; padding:0; }
.people-profile .people-role-choice legend,.people-profile .people-sharing-choice legend { color:var(--ink); font-size:.75rem; font-weight:780; }
.people-profile .people-role-choice > div,.people-profile .people-sharing-choice > div { display:flex; flex-wrap:wrap; gap:.4rem; margin:0; }
.people-profile .people-role-choice span,.people-profile .people-sharing-choice span { min-height:40px; padding:.68rem .78rem; }
.people-profile .people-role-choice input:focus-visible + span,
.people-profile .people-sharing-choice input:focus-visible + span {
  outline:2px solid var(--primary);
  outline-offset:2px;
}
.people-profile .people-publish-choice { min-height:58px; border-color:var(--line); border-radius:13px; padding:.8rem; background:var(--surface-soft); }
.people-profile .people-publish-choice input { width:18px; height:18px; flex:none; margin:0; }
.people-profile .people-publish-choice b { color:var(--ink); font-size:.76rem; }
.people-profile .people-publish-choice small { color:var(--ink-muted); font-size:.67rem; line-height:1.4; }
.people-edit-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(2rem,6vw,5rem); }
.people-edit-fields[hidden],.people-edit-footer[hidden],.people-details-footer[hidden],.people-details-view[hidden] { display:none; }
.people-details-view { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:0 clamp(2rem,6vw,5rem); }
.person-detail-overview {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-column:1 / -1;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:clamp(1.5rem,3vw,2.4rem) 0;
  outline:0;
}
.person-detail-overview > div { display:grid; min-width:0; min-height:112px; align-content:start; gap:.28rem; border:1px solid var(--line); border-radius:16px; padding:1rem; background:var(--surface-soft); }
.person-detail-overview span,.person-expense-row small { color:var(--ink-muted); font-size:.64rem; font-weight:700; letter-spacing:.02em; }
.person-detail-overview strong { overflow:hidden; color:var(--ink); font-size:1rem; text-overflow:ellipsis; white-space:nowrap; }
.person-detail-overview strong.is-unpaid { color:#b75f45; }
.person-detail-overview small { overflow:hidden; color:var(--ink-muted); font-size:.64rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.person-detail-section { display:grid; align-content:start; gap:1.2rem; border-bottom:1px solid var(--line); padding:clamp(1.5rem,3vw,2.2rem) 0; outline:0; scroll-margin-top:1rem; }
.person-detail-section[data-person-detail-section="payments"] { grid-column:1 / -1; }
.person-detail-section:last-child { border-bottom:0; }
.person-detail-section:focus { border-radius:12px; box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent); }
.person-detail-section > header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:1rem; }
.person-detail-section > header > div { display:grid; gap:.22rem; }
.person-detail-section > header span { color:var(--accent); font-size:.68rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.person-detail-section > header h4 { margin:0; color:var(--ink); font-size:1.25rem; letter-spacing:-.035em; line-height:1.2; }
.person-detail-section > header p { margin:0; color:var(--ink-muted); font-size:.8rem; line-height:1.5; }
.person-detail-section > header button { min-height:44px; border:1px solid var(--line); border-radius:999px; padding:.58rem .72rem; background:var(--surface); color:var(--primary); font-size:.68rem; font-weight:820; white-space:nowrap; }
.person-detail-section > header button:hover,.person-detail-section > header button:focus-visible { border-color:color-mix(in srgb,var(--primary) 35%,var(--line)); background:var(--surface-soft); }
.person-detail-contact { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:0; }
.person-detail-contact > div { display:grid; min-width:0; gap:.22rem; }
.person-detail-contact dt { color:var(--ink-muted); font-size:.66rem; font-weight:720; }
.person-detail-contact dd { min-width:0; margin:0; color:var(--ink); font-size:.78rem; font-weight:680; }
.person-detail-contact a { display:block; overflow:hidden; color:var(--primary); text-overflow:ellipsis; white-space:nowrap; }
.person-detail-empty { margin:0; border-radius:12px; padding:.85rem; background:var(--surface-soft); color:var(--ink-muted); font-size:.74rem; line-height:1.5; }
.person-expense-list,.person-room-list { display:grid; }
.person-expense-row {
  display:grid;
  min-height:66px;
  grid-template-columns:minmax(0,1fr) auto auto 22px;
  align-items:center;
  gap:.75rem;
  border:0;
  border-top:1px solid var(--line);
  padding:.72rem .25rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
}
.person-expense-row:last-child { border-bottom:1px solid var(--line); }
.person-expense-row:hover,.person-expense-row:focus-visible,.person-room-summary:hover,.person-room-summary:focus-visible { background:var(--surface-soft); }
.person-expense-row:focus-visible,.person-room-summary:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.person-expense-row > span { display:grid; min-width:0; gap:.2rem; }
.person-expense-row > span:first-child strong { overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.person-expense-row > span:first-child small { overflow:hidden; max-width:220px; text-overflow:ellipsis; white-space:nowrap; }
.person-expense-row > span:nth-child(2) { justify-items:end; }
.person-expense-row > span:nth-child(2) strong { font-size:.78rem; }
.person-expense-row > b { border-radius:999px; padding:.35rem .48rem; font-size:.64rem; }
.person-expense-row > b.is-paid { background:var(--saved-bg); color:var(--saved); }
.person-expense-row > b.is-unpaid { background:var(--danger-bg,#fff0ec); color:#b75f45; }
.person-expense-row > i,.person-room-summary > i { color:var(--primary); font-size:1.2rem; font-style:normal; }
.person-room-summary { display:grid; width:100%; min-height:68px; grid-template-columns:36px minmax(0,1fr) 22px; align-items:center; gap:.75rem; border:1px solid var(--line); border-radius:13px; padding:.75rem; background:var(--surface); color:var(--ink); text-align:left; }
.person-room-summary > span:first-child { display:grid; width:36px; height:36px; place-items:center; border-radius:50%; background:var(--surface-soft); color:var(--primary); }
.person-room-summary > span:nth-child(2) { display:grid; min-width:0; gap:.2rem; }
.person-room-summary strong { font-size:.8rem; }
.person-room-summary small { overflow:hidden; color:var(--ink-muted); font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.person-private-note { margin:0; border-left:3px solid var(--accent); padding:.15rem 0 .15rem .85rem; color:var(--ink-muted); font-size:.76rem; line-height:1.55; white-space:pre-wrap; }
.room-card.is-person-detail-target,.room-bank-chips button.is-person-detail-target,.payment-person-row.is-person-detail-target { outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent); outline-offset:2px; background:var(--surface-soft); }
.people-profile-footer { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.7rem; border-top:1px solid var(--line); padding:1.25rem 0 max(1.25rem,env(safe-area-inset-bottom)); background:transparent; box-shadow:none; }
.people-profile-footer .form-message { grid-column:2; margin:0; font-size:.7rem; }
.people-profile-footer .button,.people-profile-footer .button-secondary { min-height:44px; border-radius:999px; padding:.68rem .95rem; font-size:.72rem; font-weight:850; }
.people-profile-footer .button-secondary { border:1px solid var(--line); background:var(--surface); color:var(--primary); }
.people-details-footer { display:flex; justify-content:flex-end; }
.people-details-footer .button { min-width:118px; }
.people-remove-person { min-height:44px; border:0; padding:.6rem 0; background:transparent; color:var(--danger); font-size:.7rem; font-weight:800; }


@media (max-width:1100px) {
  .person-row { grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr); }
  .person-row-statuses { gap:.4rem .7rem; }
}

@media (max-width:720px) {
  .people-subnav { grid-template-columns:repeat(2,1fr); }
  .person-row { grid-template-columns:1fr; align-items:stretch; }
  .person-row-button { min-height:68px; grid-template-columns:40px minmax(0,1fr) 28px; gap:.75rem; padding:.75rem 0 .35rem; }
  .person-row .person-avatar { width:40px; height:40px; }
  .person-row-copy strong { font-size:.9rem; }
  .person-row-copy small { font-size:.68rem; }
  .person-row-statuses { display:flex; justify-content:flex-start; gap:.2rem; padding:0 0 .55rem 3.25rem; }
  .person-row-status { min-height:38px; padding:.4rem .5rem; font-size:.64rem; }
  .person-row-chevron { grid-column:3; }
  .people-profile { --people-profile-pad:0; width:100%; min-height:0; border:0; opacity:.82; transform:translateY(14px); }
  .people-profile.is-open { opacity:1; transform:none; }
  .people-profile.is-closing { opacity:0; transform:translateY(10px); }
  .people-profile-header { gap:1rem; padding:0 0 1.35rem; }
  .people-profile-header h3 { font-size:clamp(2.4rem,13vw,3.5rem); }
  .people-profile-header p { font-size:.8rem; }
  .people-profile-body { padding:0; }
  .people-edit-fields,.people-details-view { grid-template-columns:1fr; gap:0; }
  .people-profile .people-contact-grid { grid-template-columns:1fr; }
  .people-profile .people-role-choice > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .people-profile .people-sharing-choice > div { display:grid; grid-template-columns:1fr 1fr; }
  .people-profile .people-role-choice span,.people-profile .people-sharing-choice span { text-align:center; }
  .people-profile .people-role-choice span { display:grid; min-height:48px; place-items:center; padding:.55rem .35rem; font-size:.62rem; line-height:1.15; }
  .people-profile-footer { grid-template-columns:minmax(0,1fr) auto auto; }
  .people-profile-footer .people-remove-person { grid-column:1; justify-self:start; }
  .people-profile-footer .form-message { grid-column:1 / -1; grid-row:1; }
  .people-profile-footer .button-secondary { grid-column:2; }
  .people-profile-footer .button { grid-column:3; min-width:120px; }
  .people-details-footer { display:flex; }
  .person-detail-overview { grid-template-columns:1fr; }
  .person-detail-overview > div { grid-template-columns:88px minmax(0,1fr); align-items:baseline; }
  .person-detail-overview > div small { grid-column:2; }
  .person-detail-section > header { grid-template-columns:1fr; gap:.65rem; }
  .person-detail-section > header button { justify-self:start; }
  .person-detail-contact { grid-template-columns:1fr; }
  .person-expense-row { grid-template-columns:minmax(0,1fr) auto 18px; gap:.55rem; }
  .person-expense-row > span:nth-child(2) { display:none; }
  .person-expense-row > b { grid-column:2; }
}

@media (max-width:430px) {
  .people-profile-footer { gap:.45rem; }
  .people-profile-footer .button,.people-profile-footer .button-secondary { padding:.65rem .72rem; }
  .people-profile-footer .button { min-width:108px; }
}

@media (prefers-reduced-motion:reduce) {
  .people-profile { transition:none!important; animation:none!important; }
}

/* People: roster-first details with centered editing. */
.people-form-backdrop[hidden],
.people-mobile-profile[hidden],
.person-row-detail[hidden] { display:none!important; }
body.people-editor-open { overflow:hidden; }
.people-form-backdrop {
  position:fixed;
  inset:0;
  z-index:820;
  border:0;
  background:rgba(10,38,36,.42);
  opacity:0;
  transition:opacity .18s ease;
  backdrop-filter:blur(3px);
}
.people-form-backdrop.is-open { opacity:1; }
#people-form.people-profile {
  position:fixed;
  top:50%;
  left:50%;
  z-index:830;
  display:grid;
  width:min(820px,calc(100vw - 2rem));
  min-height:0;
  max-height:min(82dvh,880px);
  grid-template-rows:auto minmax(0,1fr) auto;
  margin:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--primary) 16%,var(--line));
  border-radius:24px;
  background:var(--surface);
  box-shadow:0 28px 80px rgba(9,44,42,.24);
  opacity:0;
  transform:translate(-50%,-46%) scale(.985);
  transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
#people-form.people-profile.is-open { opacity:1; transform:translate(-50%,-50%) scale(1); }
#people-form.people-profile.is-closing { opacity:0; transform:translate(-50%,-47%) scale(.99); }
#people-form .people-profile-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:start;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:1.35rem 1.5rem 1.15rem;
  background:var(--surface);
}
#people-form .people-profile-header > div { display:grid; max-width:620px; gap:.28rem; }
#people-form .people-profile-header h3 {
  margin:0;
  color:var(--ink);
  font-size:clamp(1.8rem,3vw,2.35rem);
  letter-spacing:-.045em;
  line-height:1;
}
#people-form .people-profile-header p { max-width:580px; margin:.15rem 0 0; font-size:.79rem; line-height:1.45; }
.people-profile-close {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--primary);
  font-size:1.25rem;
}
.people-profile-close:hover,.people-profile-close:focus-visible { border-color:var(--primary); background:var(--surface-soft); }
#people-form .people-profile-body { min-height:0; overflow:auto; overscroll-behavior:contain; padding:0 1.5rem; }
#people-form .people-edit-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; }
#people-form .people-profile-section { padding:1.3rem 0; }
#people-form .people-profile-footer {
  border-top:1px solid var(--line);
  padding:1rem 1.5rem max(1rem,env(safe-area-inset-bottom));
  background:var(--surface);
}

.person-row.is-expanded {
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);
  border-color:color-mix(in srgb,var(--primary) 28%,var(--line));
  background:color-mix(in srgb,var(--surface-soft) 34%,var(--surface));
}
.person-row.is-expanded .person-row-chevron { transform:rotate(90deg); }
.person-row-chevron { transition:transform .18s ease; }
.person-row-detail {
  grid-column:1 / -1;
  display:grid;
  margin:0 -.15rem;
  border-top:1px solid var(--line);
  padding:1rem .15rem .35rem;
  animation:person-detail-reveal .2s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes person-detail-reveal {
  from { opacity:0; transform:translateY(-6px); }
  to { opacity:1; transform:none; }
}
.person-inline-detail-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0 .25rem .85rem;
}
.person-inline-detail-header > div:first-child { display:grid; gap:.12rem; }
.person-inline-detail-header span {
  color:var(--accent);
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.person-inline-detail-header strong { color:var(--ink); font-size:1rem; }
.person-inline-detail-header > div:last-child { display:flex; align-items:center; gap:.45rem; }
.person-inline-detail-header button,
.person-detail-secondary-actions button {
  min-height:40px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.55rem .75rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.68rem;
  font-weight:820;
}
.person-inline-detail-header button:last-child { border-color:var(--primary); background:var(--primary); color:#fff; }
.person-inline-detail-header button:hover,.person-inline-detail-header button:focus-visible,
.person-detail-secondary-actions button:hover,.person-detail-secondary-actions button:focus-visible { border-color:var(--primary); }
.person-detail-overview {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  border:0;
  padding:0;
}
.person-detail-overview > button {
  display:grid;
  min-width:0;
  min-height:92px;
  align-content:start;
  gap:.24rem;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.85rem;
  background:var(--surface);
  color:var(--ink);
  text-align:left;
}
.person-detail-overview > button:hover,.person-detail-overview > button:focus-visible,
.person-detail-overview > button[aria-pressed="true"] {
  border-color:color-mix(in srgb,var(--primary) 46%,var(--line));
  background:var(--surface-soft);
}
.person-detail-overview > button:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.person-detail-overview span,.person-expense-row small {
  color:var(--ink-muted);
  font-size:.67rem;
  font-weight:720;
}
.person-detail-overview strong { overflow:hidden; color:var(--ink); font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.person-detail-overview strong.is-unpaid { color:#b75f45; }
.person-detail-overview small { overflow:hidden; color:var(--ink-muted); font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.person-detail-active { display:grid; }
.person-detail-section {
  display:grid;
  min-width:0;
  gap:1rem;
  border:0;
  padding:1rem .25rem .45rem;
  outline:0;
}
.person-detail-section:focus { border-radius:12px; box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent); }
.person-detail-section > header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:1rem; }
.person-detail-section > header > div,.person-detail-welcome > div:first-child { display:grid; gap:.2rem; }
.person-detail-section > header span,.person-detail-welcome > div:first-child > span {
  color:var(--accent);
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.person-detail-section > header h4,.person-detail-welcome h4 { margin:0; color:var(--ink); font-size:1.15rem; letter-spacing:-.03em; }
.person-detail-section > header p,.person-detail-welcome p { margin:0; color:var(--ink-muted); font-size:.76rem; line-height:1.45; }
.person-detail-section > header button {
  min-height:40px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.55rem .72rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.68rem;
  font-weight:820;
}
.person-detail-welcome {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
}
.person-detail-secondary-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.person-detail-contact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.people-mobile-profile { display:none; }

@media (max-width:720px) {
  .people-panel.is-mobile-person-open > .people-panel-intro,
  .people-panel.is-mobile-person-open > .people-subnav,
  .people-panel.is-mobile-person-open > .people-subpanel { display:none!important; }
  .people-panel.is-mobile-person-open .people-mobile-profile { display:grid; }
  .people-mobile-profile {
    min-height:calc(100dvh - 74px);
    grid-template-rows:auto minmax(0,1fr) auto;
    background:var(--canvas);
  }
  .people-mobile-profile-header {
    display:grid;
    gap:.8rem;
    border-bottom:1px solid var(--line);
    padding:0 0 1.15rem;
  }
  .people-mobile-profile-header > button {
    justify-self:start;
    min-height:44px;
    border:0;
    padding:.5rem 0;
    background:transparent;
    color:var(--primary);
    font-size:.76rem;
    font-weight:850;
  }
  .people-mobile-profile-header > div { display:grid; gap:.3rem; }
  .people-mobile-profile-header span { color:var(--accent); font-size:.69rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
  .people-mobile-profile-header h3 { margin:0; outline:0; color:var(--ink); font-size:clamp(2.15rem,10vw,2.5rem); letter-spacing:-.055em; line-height:1; }
  .people-mobile-profile-header p { margin:0; color:var(--ink-muted); font-size:.78rem; line-height:1.45; }
  .people-mobile-profile-body { min-height:0; padding:1rem 0; }
  .people-mobile-profile-footer {
    position:sticky;
    bottom:0;
    z-index:2;
    display:flex;
    justify-content:flex-end;
    gap:.5rem;
    border-top:1px solid var(--line);
    padding:.85rem 0 max(.85rem,env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--canvas) 94%,transparent);
    backdrop-filter:blur(12px);
  }
  .people-mobile-profile-footer button { min-height:44px; border-radius:999px; padding:.65rem .85rem; font-size:.72rem; font-weight:850; }
  .person-detail-overview { grid-template-columns:1fr; gap:.5rem; }
  .person-detail-overview > button { min-height:76px; grid-template-columns:88px minmax(0,1fr); align-items:baseline; }
  .person-detail-overview > button small { grid-column:2; }
  .person-detail-section,.person-detail-welcome { grid-template-columns:1fr; padding:1rem 0 .5rem; }
  .person-detail-section > header { grid-template-columns:1fr; gap:.65rem; }
  .person-detail-section > header button { justify-self:start; }
  .person-detail-secondary-actions { justify-content:flex-start; }
  .person-detail-contact { grid-template-columns:1fr; }
  .person-expense-row { grid-template-columns:minmax(0,1fr) auto 18px; gap:.55rem; }
  .person-expense-row > span:nth-child(2) { display:none; }
  .person-expense-row > b { grid-column:2; }
  #people-form.people-profile {
    top:0;
    left:0;
    width:100%;
    height:100dvh;
    max-height:none;
    border:0;
    border-radius:0;
    transform:translateY(18px);
  }
  #people-form.people-profile.is-open { transform:none; }
  #people-form.people-profile.is-closing { transform:translateY(14px); }
  #people-form .people-profile-header { padding:calc(.9rem + env(safe-area-inset-top)) 1rem .85rem; }
  #people-form .people-profile-header h3 { font-size:1.8rem; }
  #people-form .people-profile-body { padding:0 1rem; }
  #people-form .people-edit-fields { grid-template-columns:1fr; gap:0; }
  #people-form .people-contact-grid { grid-template-columns:1fr; }
  #people-form .people-profile-footer { padding-right:1rem; padding-left:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  .person-row-detail,#people-form.people-profile,.people-form-backdrop,.person-row-chevron { transition:none!important; animation:none!important; }
}

/* Useful Links: library-first workspace with contextual add/edit drawer. */
.organizer-canvas .editor-panel[data-editor-panel="links"] { background:transparent; }
.links-page { width:min(100%,1120px); margin:0 auto; padding-bottom:4rem; }
.links-page-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  border-bottom:1px solid var(--line);
  padding:.45rem 0 2rem;
}
.links-page-header > div { max-width:780px; }
.links-page-header .eyebrow,.link-group .eyebrow,.link-drawer-header .eyebrow {
  margin:0 0 .7rem;
  color:var(--accent);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.links-page-header h2 {
  margin:0;
  color:var(--ink);
  font-size:clamp(3rem,5vw,4.8rem);
  font-weight:850;
  letter-spacing:-.065em;
  line-height:.92;
}
.links-page-header > div > p:last-child { max-width:680px; margin:1rem 0 0; color:var(--ink-muted); font-size:.96rem; line-height:1.55; }
.link-add-button { min-height:46px; flex:none; padding:.7rem 1rem; white-space:nowrap; }
.links-calendar-note {
  display:flex;
  align-items:center;
  gap:.75rem;
  margin:1.45rem 0 2.5rem;
  border:1px solid color-mix(in srgb,var(--saved) 24%,var(--line));
  border-radius:14px;
  padding:.85rem 1rem;
  background:var(--saved-bg);
  color:var(--ink-muted);
}
.links-calendar-note > span { display:grid; width:26px; height:26px; flex:none; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--saved) 14%,white); color:var(--primary); font-size:.85rem; font-weight:900; }
.links-calendar-note p { margin:0; font-size:.78rem; line-height:1.45; }
.links-calendar-note b { color:var(--ink); }
.link-groups { display:grid; gap:2.7rem; }
.link-group > header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:.7rem; }
.link-group > header > div { min-width:0; }
.link-group h3 { margin:0; color:var(--ink); font-size:clamp(1.5rem,2.2vw,1.85rem); font-weight:800; letter-spacing:-.04em; line-height:1.08; }
.link-group > header > span { flex:none; color:var(--ink-muted); font-size:.72rem; font-weight:800; }
.link-list { border-top:1px solid var(--line); }
.link-list-empty { min-height:88px; margin:0; border-bottom:1px solid var(--line); padding:1.2rem .15rem; color:var(--ink-muted); font-size:.84rem; line-height:1.5; }
.link-row { display:grid; min-height:92px; grid-template-columns:46px minmax(0,1fr) auto auto; align-items:center; gap:1rem; border-bottom:1px solid var(--line); padding:1rem .15rem; }
.link-row-icon { display:grid; width:42px; height:42px; place-items:center; border-radius:13px; background:var(--saved-bg); color:var(--primary); }
.link-row-icon svg,.link-kind-mark svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.link-row-copy { display:grid; min-width:0; gap:.14rem; }
.link-row-copy strong { overflow-wrap:anywhere; color:var(--ink); font-size:1rem; font-weight:760; line-height:1.25; }
.link-row-copy small { overflow-wrap:anywhere; color:var(--ink-muted); font-size:.78rem; line-height:1.4; }
.link-row-copy > span { overflow:hidden; color:var(--saved); font-size:.69rem; font-weight:760; text-overflow:ellipsis; white-space:nowrap; }
.link-row-kind { border-radius:999px; padding:.38rem .65rem; background:#f0f4f2; color:var(--ink-muted); font-size:.65rem; font-weight:850; white-space:nowrap; }
.link-row-actions { display:flex; align-items:center; gap:.15rem; }
.link-row-actions > a,.link-row-actions > button,.link-row-menu summary { display:grid; min-height:44px; align-items:center; border:0; border-radius:999px; padding:.55rem .65rem; background:transparent; color:var(--primary); font-size:.7rem; font-weight:850; text-decoration:none; }
.link-row-actions > a { display:flex; gap:.2rem; white-space:nowrap; }
.link-row-actions > a:hover,.link-row-actions > button:hover,.link-row-menu summary:hover { background:var(--surface-soft); }
.link-row-menu { position:relative; }
.link-row-menu summary { width:44px; place-items:center; padding:0; cursor:pointer; list-style:none; }
.link-row-menu summary::-webkit-details-marker { display:none; }
.link-row-menu > div { position:absolute; z-index:20; top:calc(100% + .25rem); right:0; display:grid; width:154px; border:1px solid var(--line); border-radius:12px; padding:.3rem; background:var(--surface); box-shadow:0 14px 34px rgba(18,49,48,.14); }
.link-row-menu > div > a,.link-row-menu > div > button { display:flex; min-height:44px; align-items:center; justify-content:space-between; border:0; border-radius:9px; padding:.62rem .7rem; background:transparent; color:var(--primary); font-size:.7rem; font-weight:800; text-align:left; text-decoration:none; }
.link-row-menu > div > :is(a,button):hover { background:var(--surface-soft); }
.link-row-menu .link-row-remove { color:var(--danger); }
.link-row-menu-mobile { display:none!important; }

.link-form-backdrop {
  position:fixed;
  z-index:240;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  visibility:hidden;
  background:rgba(18,49,48,.3);
  opacity:0;
  backdrop-filter:blur(2px);
  transition:opacity .2s ease,visibility .2s ease;
}
.link-form-backdrop[hidden],.link-form-drawer[hidden] { display:none!important; }
.link-form-backdrop.is-open { visibility:visible; opacity:1; }
.link-form-drawer {
  position:fixed;
  z-index:250;
  inset:0 0 0 auto;
  width:min(520px,calc(100vw - 76px));
  height:100dvh;
  overflow:hidden;
  border-left:1px solid var(--line);
  background:#fffdfa;
  box-shadow:-20px 0 62px rgba(18,49,48,.18);
  opacity:.72;
  transform:translateX(36px);
  transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.link-form-drawer.is-open { opacity:1; transform:none; }
.link-form-drawer.is-closing { opacity:0; transform:translateX(30px); }
.link-form-drawer > form { display:grid; width:100%; height:100%; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; }
.link-drawer-header { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:1rem; border-bottom:1px solid var(--line); padding:1.65rem 1.5rem 1.35rem; background:rgba(255,253,250,.97); }
.link-drawer-header h3 { margin:0; outline:0; color:var(--ink); font-size:2rem; letter-spacing:-.05em; line-height:1.05; }
.link-drawer-header p:last-child { max-width:390px; margin:.65rem 0 0; color:var(--ink-muted); font-size:.84rem; line-height:1.5; }
.link-drawer-close { display:grid; width:44px; height:44px; place-items:center; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font-size:1.45rem; }
.link-drawer-close:hover { background:var(--surface-soft); }
.link-drawer-body { display:grid; min-height:0; align-content:start; gap:1.25rem; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:1.45rem 1.5rem 2rem; }
.link-drawer-body > label { position:relative; display:grid; gap:.42rem; color:#365453; font-size:.74rem; font-weight:800; }
.link-drawer-body > label .optional { position:absolute; top:0; right:0; color:var(--ink-muted); font-size:.63rem; font-weight:650; }
.link-drawer-body input,.link-drawer-body textarea { width:100%; min-width:0; min-height:48px; border:1px solid color-mix(in srgb,var(--ink) 16%,white); border-radius:12px; padding:.75rem .85rem; background:var(--surface); color:var(--ink); font-size:16px; font-weight:500; }
.link-drawer-body textarea { min-height:120px; resize:vertical; line-height:1.5; }
.link-drawer-body .field-help { color:var(--ink-muted); font-size:.68rem; font-weight:500; line-height:1.4; }
.link-kind-choice { margin:0; border:0; padding:0; }
.link-kind-choice legend { margin-bottom:.65rem; color:#365453; font-size:.74rem; font-weight:800; }
.link-kind-choice > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.link-kind-choice label { position:relative; display:grid; min-height:106px; place-items:center; align-content:center; gap:.22rem; border:1px solid var(--line); border-radius:15px; padding:.65rem .4rem; background:var(--surface); color:var(--ink); text-align:center; }
.link-kind-choice input { position:absolute; width:1px; height:1px; min-height:0; overflow:hidden; opacity:0; pointer-events:none; }
.link-kind-choice label:has(input:checked) { border-color:var(--saved); background:var(--saved-bg); box-shadow:inset 0 0 0 1px var(--saved); }
.link-kind-choice label:has(input:focus-visible) { outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent); outline-offset:2px; }
.link-kind-choice b { font-size:.7rem; line-height:1.2; }
.link-kind-choice small { color:var(--ink-muted); font-size:.6rem; font-weight:700; }
.link-kind-mark { display:grid; width:28px; height:28px; place-items:center; color:var(--primary); }
.link-drawer-actions { display:grid; min-height:76px; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:.65rem; border-top:1px solid var(--line); padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom)); background:rgba(255,253,250,.98); backdrop-filter:blur(14px); }
.link-drawer-actions .form-message { min-width:0; margin:0; color:var(--ink-muted); font-size:.69rem; line-height:1.35; }
.link-drawer-actions button { min-height:44px; }
.link-drawer-actions .soft-button { border:1px solid var(--line); border-radius:999px; padding-inline:1rem; background:var(--surface); color:var(--primary); }
#link-form[aria-busy="true"] { cursor:wait; }
.link-form-drawer :is(button,a,input,textarea,summary):focus-visible,.link-row :is(button,a,summary):focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 26%,transparent); outline-offset:2px; }
.preview-link-row { color:var(--ink); text-decoration:none; }
.preview-link-row:hover { color:var(--primary); }
.preview-link-row small { max-width:270px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-transform:none; }
body.link-drawer-open .organizer-canvas { overflow:hidden; }

@media (min-width:1101px) {
  .link-form-drawer { width:520px; }
}

@media (max-width:760px) {
  .links-page-header { display:grid; align-items:start; gap:1.35rem; padding:.15rem 0 1.4rem; }
  .links-page-header h2 { font-size:clamp(2.35rem,10vw,3.15rem); }
  .links-page-header > div > p:last-child { font-size:.9rem; }
  .link-add-button { width:100%; }
  .links-calendar-note { margin:1rem 0 2.25rem; }
  .link-group > header { align-items:end; }
  .link-group h3 { font-size:1.45rem; }
}

@media (max-width:720px) {
  body.link-drawer-open { overflow:hidden!important; touch-action:none; }
  .links-page { padding-bottom:3rem; }
  .link-groups { gap:2.4rem; }
  .link-row { min-height:0; grid-template-columns:44px minmax(0,1fr) 44px; gap:.7rem; padding:1rem 0; }
  .link-row-kind { grid-column:2; justify-self:start; }
  .link-row-actions { grid-column:3; grid-row:1 / 3; align-self:center; }
  .link-row-actions > a,.link-row-actions > button { display:none; }
  .link-row-menu-mobile { display:flex!important; }
  .link-row-menu > div { width:164px; }
  .link-row-copy small { white-space:normal; }
  .link-form-backdrop { background:rgba(18,49,48,.18); }
  .link-form-drawer { inset:0; width:100dvw; max-width:100dvw; height:100dvh; max-height:100dvh; border:0; box-shadow:none; opacity:.82; transform:translateY(24px); }
  .link-form-drawer.is-open { opacity:1; transform:none; }
  .link-form-drawer.is-closing { opacity:0; transform:translateY(18px); }
  .link-drawer-header { padding:calc(.95rem + env(safe-area-inset-top)) 1rem .9rem; }
  .link-drawer-header h3 { font-size:1.55rem; }
  .link-drawer-header p:last-child { margin-top:.4rem; font-size:.76rem; }
  .link-drawer-body { padding:1.1rem 1rem 1.5rem; }
  .link-kind-choice > div { gap:.4rem; }
  .link-kind-choice label { min-height:98px; padding:.55rem .25rem; }
  .link-drawer-actions { grid-template-columns:minmax(0,1fr) auto auto; padding-right:1rem; padding-left:1rem; }
  .link-drawer-actions .form-message:not(:empty) { grid-column:1 / -1; grid-row:1; }
}

@media (prefers-reduced-motion:reduce) {
  .link-form-drawer,.link-form-backdrop { transition:none; }
}

/* Shared Costs: exact expense and person ledgers with contextual tracking. */
.organizer-canvas .editor-panel.payment-panel { width:100%; max-width:none; padding-bottom:4rem; color:var(--ink); }
.payment-page-header {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  align-items:end;
  gap:clamp(2rem,7vw,7rem);
  border-bottom:1px solid var(--line);
  padding:.35rem 0 clamp(1.7rem,3vw,2.35rem);
}
.payment-page-header > div:first-child { display:grid; gap:.75rem; }
.payment-page-header .eyebrow,.payment-ledger-heading .eyebrow,.payment-detail-header .eyebrow,.payment-detail-tracking .eyebrow,.payment-composer-header .eyebrow {
  margin:0;
  color:var(--accent);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.payment-page-header h2 {
  max-width:800px;
  margin:0;
  color:var(--ink);
  font-size:clamp(3rem,5.5vw,5.25rem);
  font-weight:850;
  letter-spacing:-.072em;
  line-height:.92;
}
.payment-page-intro { display:grid; justify-items:start; gap:1.25rem; padding-bottom:.15rem; }
.payment-page-intro p { max-width:450px; margin:0; color:var(--ink-muted); font-size:.96rem; line-height:1.65; }
.payment-add-expense,.payment-empty-state .button {
  min-height:46px;
  border-radius:999px;
  padding:.75rem 1.15rem;
  background:var(--primary);
  box-shadow:0 10px 22px rgba(6,100,96,.14);
  font-size:.78rem;
  font-weight:850;
}
.payment-add-expense:hover,.payment-add-expense:focus-visible,.payment-empty-state .button:hover,.payment-empty-state .button:focus-visible { background:var(--primary-hover); }

.payment-metrics {
  display:grid;
  grid-template-columns:minmax(230px,1.22fr) minmax(180px,1fr) minmax(180px,1fr) minmax(110px,.48fr);
  margin:clamp(1.55rem,3vw,2.5rem) 0 clamp(1.75rem,3vw,2.6rem);
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
  box-shadow:0 14px 34px rgba(18,49,48,.045);
}
.payment-metric { position:relative; display:grid; min-width:0; min-height:134px; align-content:center; gap:.3rem; padding:1.35rem clamp(1.1rem,2vw,1.65rem); }
.payment-metric + .payment-metric { border-left:1px solid var(--line); }
.payment-metric > span { color:var(--ink-muted); font-size:.68rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.payment-metric > strong { overflow-wrap:anywhere; color:var(--ink); font-size:clamp(1.85rem,3vw,2.8rem); font-weight:820; letter-spacing:-.055em; line-height:1; }
.payment-metric > small { color:var(--ink-muted); font-size:.68rem; line-height:1.4; }
.payment-metric.is-outstanding { background:var(--surface-warm); }
.payment-metric.is-outstanding::before,.payment-metric.is-collected::before { position:absolute; inset:0 0 auto; height:3px; content:""; background:var(--accent); }
.payment-metric.is-outstanding > strong { color:#b65b49; }
.payment-metric.is-collected { background:#f5fbf8; }
.payment-metric.is-collected::before { background:var(--saved); }
.payment-metric.is-collected > strong { color:var(--saved); }
.payment-metric.is-count { place-content:center; justify-items:center; text-align:center; }
.payment-metric.is-count > strong { font-size:3.1rem; }
.payment-metric.is-count > span { letter-spacing:.04em; text-transform:none; }

.payment-ledger-workspace { width:100%; }
.payment-ledger-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding:0 0 1.25rem; }
.payment-ledger-heading > div { display:grid; gap:.45rem; }
.payment-ledger-heading h3 { margin:0; color:var(--ink); font-size:clamp(1.7rem,3vw,2.45rem); font-weight:820; letter-spacing:-.055em; line-height:1.03; }
.payment-ledger-heading > small { max-width:350px; padding-bottom:.15rem; color:var(--ink-muted); font-size:.72rem; line-height:1.45; text-align:right; }
.payment-view-tabs {
  display:flex;
  width:min(100%,520px);
  margin:0 0 1.15rem;
  border-bottom:1px solid rgba(18,49,48,.16);
}
.payment-view-tabs button {
  position:relative;
  min-width:118px;
  min-height:44px;
  border:0;
  padding:.72rem 1rem .68rem;
  background:transparent;
  color:var(--ink-muted);
  font-size:.69rem;
  font-weight:850;
}
.payment-view-tabs button::after { position:absolute; right:0; bottom:-1px; left:0; height:3px; border-radius:3px 3px 0 0; background:transparent; content:""; transform:scaleX(.35); transition:background-color .18s ease,transform .2s cubic-bezier(.2,.8,.2,1); }
.payment-view-tabs button:hover,.payment-view-tabs button:focus-visible { color:var(--primary); }
.payment-view-tabs button[aria-selected="true"] { color:var(--primary); }
.payment-view-tabs button[aria-selected="true"]::after { background:var(--primary); transform:scaleX(1); }
.payment-view-tabs button:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 23%,transparent); outline-offset:2px; }
#payment-panel-expenses[hidden],#payment-panel-people[hidden],.payment-unassigned-callout[hidden],.payment-detail-actions[hidden] { display:none!important; }
.payment-unassigned-callout {
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:start;
  gap:.8rem;
  margin:0 0 1rem;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:14px;
  padding:.9rem 1rem;
  background:var(--surface-warm);
}
.payment-unassigned-callout > span { display:grid; width:30px; height:30px; place-items:center; border-radius:50%; background:#fff4ec; color:#a95041; font-size:.75rem; font-weight:900; }
.payment-unassigned-callout > div { display:grid; gap:.2rem; }
.payment-unassigned-callout strong { color:var(--ink); font-size:.76rem; }
.payment-unassigned-callout p { margin:0; color:var(--ink-muted); font-size:.68rem; line-height:1.45; }
.payment-ledger-columns,.payment-ledger-row {
  display:grid;
  grid-template-columns:minmax(230px,2.1fr) minmax(90px,.75fr) minmax(120px,1fr) minmax(86px,.68fr) minmax(118px,.86fr) minmax(145px,1.25fr) 28px;
  align-items:center;
  column-gap:clamp(.65rem,1.5vw,1.25rem);
}
.payment-ledger-columns { min-height:38px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0 1rem; color:var(--ink-muted); font-size:.61rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.payment-ledger-columns[hidden],.payment-empty-state[hidden] { display:none!important; }
.payment-ledger-list { display:grid; }
.payment-ledger-item { position:relative; min-width:0; border-bottom:1px solid var(--line); }
.payment-ledger-item.is-selected { z-index:1; }
.payment-ledger-item.is-selected::before { position:absolute; z-index:1; inset:0 auto 0 0; width:3px; content:""; background:var(--primary); }
.payment-ledger-row {
  width:100%;
  min-height:84px;
  border:0;
  padding:1rem;
  background:transparent;
  color:var(--ink);
  font:inherit;
  text-align:left;
  transition:background .16s ease,transform .16s ease;
}
.payment-ledger-row:hover,.payment-ledger-row:focus-visible,.payment-ledger-item.is-selected .payment-ledger-row { background:var(--surface-soft); }
.payment-ledger-row:focus-visible { position:relative; z-index:2; outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent); outline-offset:-3px; }
.payment-ledger-row > span { min-width:0; }
.payment-ledger-row small { display:none; }
.payment-ledger-row strong { display:block; overflow:hidden; font-size:.78rem; font-weight:720; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.payment-ledger-expense { display:grid; gap:.28rem; }
.payment-ledger-expense strong { font-size:.91rem; font-weight:820; }
.payment-ledger-expense small { display:block; overflow:hidden; color:var(--ink-muted); font-size:.65rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.payment-ledger-due strong,.payment-ledger-recipient strong { color:#3e5c5a; font-weight:620; }
.payment-ledger-total strong { font-size:.88rem; font-weight:850; }
.payment-ledger-share strong { color:var(--ink-muted); font-weight:650; }
.payment-ledger-status { display:grid; gap:.42rem; }
.payment-ledger-status strong { color:#a95041; font-size:.7rem; font-weight:850; }
.payment-ledger-status i,.payment-detail-progress > i { display:block; height:4px; overflow:hidden; border-radius:999px; background:#e5ece9; }
.payment-ledger-status i b,.payment-detail-progress > i b { display:block; height:100%; border-radius:inherit; background:var(--accent); transition:width .24s ease; }
.payment-ledger-status.is-settled strong { color:var(--saved); }
.payment-ledger-status.is-settled i b { background:var(--saved); }
.payment-ledger-status.needs-review strong { color:#7a6660; }
.payment-ledger-status.needs-review i b { background:#aebdb8; }
.payment-ledger-chevron { justify-self:end; color:var(--primary); font-size:1.6rem; font-weight:300; }
.payment-new-label { position:absolute; z-index:3; top:-.55rem; left:.9rem; border-radius:999px; padding:.24rem .52rem; background:var(--saved); color:white; font-size:.55rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.payment-ledger-item.is-new-payment { animation:payment-ledger-arrive .42s cubic-bezier(.2,.8,.2,1) both; }
@keyframes payment-ledger-arrive { from { opacity:0; transform:translateY(12px); } }

.payment-person-columns,.payment-person-row-view {
  display:grid;
  grid-template-columns:minmax(240px,2fr) repeat(4,minmax(100px,.8fr)) 28px;
  align-items:center;
  column-gap:clamp(.65rem,1.5vw,1.25rem);
}
.payment-person-columns { min-height:38px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0 1rem; color:var(--ink-muted); font-size:.61rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.payment-person-list-view { display:grid; }
.payment-person-item { position:relative; min-width:0; border-bottom:1px solid var(--line); }
.payment-person-item.is-selected::before { position:absolute; z-index:1; inset:0 auto 0 0; width:3px; content:""; background:var(--primary); }
.payment-person-row-view { width:100%; min-height:82px; border:0; padding:1rem; background:transparent; color:var(--ink); font:inherit; text-align:left; transition:background .16s ease; }
.payment-person-row-view:hover,.payment-person-row-view:focus-visible,.payment-person-item.is-selected .payment-person-row-view { background:var(--surface-soft); }
.payment-person-row-view:focus-visible { position:relative; z-index:2; outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent); outline-offset:-3px; }
.payment-person-row-view > span { min-width:0; }
.payment-person-name { display:flex; min-width:0; align-items:center; gap:.72rem; }
.payment-person-name > span:last-child { display:grid; min-width:0; gap:.18rem; }
.payment-person-name strong { overflow:hidden; font-size:.86rem; font-weight:820; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-name small { overflow:hidden; color:var(--ink-muted); font-size:.63rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-unpaid small,.payment-person-paid small,.payment-person-open small,.payment-person-due small { display:none; }
.payment-person-unpaid strong,.payment-person-paid strong,.payment-person-open strong,.payment-person-due strong { display:block; overflow:hidden; font-size:.76rem; font-weight:740; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-unpaid strong { color:#a95041; font-size:.84rem; font-weight:850; }
.payment-person-paid strong { color:var(--saved); }
.payment-person-open strong,.payment-person-due strong { color:#3e5c5a; }
.payment-person-empty { display:grid; justify-items:start; gap:.5rem; border:1px dashed var(--line); border-radius:15px; padding:1.25rem; color:var(--ink-muted); }
.payment-person-empty strong { color:var(--ink); }
.payment-person-empty p { margin:0; font-size:.75rem; line-height:1.5; }
.payment-person-empty button { min-height:44px; border:0; padding:.55rem 0; background:transparent; color:var(--primary); font-weight:820; }

.payment-empty-state {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:2rem;
  border:1px solid var(--line);
  border-radius:20px;
  padding:clamp(1.4rem,3vw,2.2rem);
  background:linear-gradient(135deg,var(--surface) 0 66%,var(--surface-soft) 100%);
}
.payment-empty-state > div:first-child { display:grid; gap:.55rem; }
.payment-empty-state > div:first-child > span { color:var(--accent); font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.payment-empty-state h3 { max-width:680px; margin:0; color:var(--ink); font-size:clamp(1.45rem,3vw,2.2rem); letter-spacing:-.05em; line-height:1.08; }
.payment-empty-state p { max-width:620px; margin:0; color:var(--ink-muted); font-size:.88rem; line-height:1.55; }
.payment-empty-state > div:last-child { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.65rem; }
.payment-people-link { min-height:44px; border:0; padding:.65rem .4rem; background:transparent; color:var(--primary); font-size:.75rem; font-weight:820; }

.payment-detail-backdrop,.payment-composer-backdrop {
  position:fixed;
  z-index:254;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  visibility:hidden;
  background:rgba(18,49,48,.12);
  opacity:0;
  transition:opacity .2s ease,visibility .2s ease;
}
.payment-detail-backdrop[hidden],.payment-detail-drawer[hidden],.payment-composer-backdrop[hidden],.payment-composer[hidden] { display:none!important; }
.payment-detail-backdrop.is-open,.payment-composer-backdrop.is-open { visibility:visible; opacity:1; }
.payment-detail-drawer,.payment-composer,.payment-inline-editor {
  position:fixed!important;
  z-index:260!important;
  inset:0 0 0 auto!important;
  width:min(560px,calc(100vw - 76px))!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  border:0!important;
  border-left:1px solid var(--line)!important;
  border-radius:0!important;
  padding:0!important;
  background:#fffdfa!important;
  box-shadow:-20px 0 62px rgba(18,49,48,.17)!important;
  opacity:.72;
  transform:translateX(34px)!important;
  transition:transform .27s cubic-bezier(.2,.8,.2,1),opacity .18s ease!important;
}
.payment-detail-drawer.is-open,.payment-composer.is-open,.payment-inline-editor:not(.is-opening):not(.is-closing),.payment-inline-editor.is-opening.is-open { opacity:1; transform:none!important; }
.payment-detail-drawer.is-closing,.payment-composer.is-closing,.payment-inline-editor.is-closing { pointer-events:none; opacity:0; transform:translateX(30px)!important; animation:none!important; }
.payment-inline-editor::before { position:fixed; z-index:-1; inset:0 560px 0 0; content:""; background:rgba(18,49,48,.12); }
body.payment-composer-open .organizer-canvas,body.payment-detail-open .organizer-canvas,body.payment-edit-open .organizer-canvas { overflow:hidden!important; }

.payment-detail-drawer { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.payment-detail-header,.payment-composer-header,.payment-edit-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:start;
  gap:1rem;
  border-bottom:1px solid var(--line)!important;
  padding:1.35rem 1.5rem 1.15rem!important;
  background:rgba(255,253,250,.97)!important;
}
.payment-detail-header:has(#back-payment-detail:not([hidden])) {
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
}
.payment-detail-header > div,.payment-composer-header > div,.payment-edit-heading > div { display:grid; min-width:0; gap:.35rem; }
.payment-detail-header h3,.payment-composer-header h3,.payment-edit-heading h3 { margin:0; outline:0; overflow-wrap:anywhere; color:var(--ink); font-size:1.7rem; font-weight:820; letter-spacing:-.05em; line-height:1.08; }
.payment-composer-header p:last-child,.payment-edit-heading p { max-width:420px; margin:0; color:var(--ink-muted); font-size:.76rem; line-height:1.48; }
.payment-detail-header > button,.payment-composer-close,.payment-edit-heading > button {
  display:grid;
  width:44px;
  height:44px;
  min-height:44px;
  place-items:center;
  border:0!important;
  border-radius:50%!important;
  padding:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  font-size:1.45rem!important;
}
.payment-detail-header > button:hover,.payment-detail-header > button:focus-visible,.payment-composer-close:hover,.payment-composer-close:focus-visible,.payment-edit-heading > button:hover,.payment-edit-heading > button:focus-visible { background:var(--surface-soft)!important; }
.payment-detail-body { min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:1.25rem 1.5rem 2rem; }
.payment-detail-summary { display:grid; gap:1.3rem; }
.payment-detail-summary dl { display:grid; grid-template-columns:1fr 1fr; margin:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface); }
.payment-detail-summary dl > div { display:grid; min-width:0; gap:.28rem; padding:1rem; }
.payment-detail-summary dl > div:nth-child(even) { border-left:1px solid var(--line); }
.payment-detail-summary dl > div:nth-child(n+3) { border-top:1px solid var(--line); }
.payment-detail-summary dl > div:last-child { grid-column:1 / -1; border-left:0; }
.payment-detail-summary dt { color:var(--ink-muted); font-size:.62rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.payment-detail-summary dd { margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:.86rem; font-weight:760; line-height:1.35; }
.payment-detail-summary .is-outstanding { background:var(--surface-warm); }
.payment-detail-summary .is-outstanding dd { color:#b65b49; }
.payment-detail-progress { display:grid; gap:.55rem; border-radius:14px; padding:1rem; background:var(--surface-soft); }
.payment-detail-progress > div { display:flex; justify-content:space-between; gap:1rem; color:var(--ink-muted); font-size:.68rem; }
.payment-detail-progress > div strong { color:var(--ink); font-weight:780; }
.payment-detail-progress > i { height:6px; }
.payment-detail-progress > i b { background:var(--saved); }
.payment-person-detail-summary { display:grid; gap:.75rem; border-radius:16px; padding:1.05rem; background:var(--surface-soft); }
.payment-person-detail-summary > span { color:var(--primary); font-size:.64rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.payment-person-detail-summary dl { display:grid; grid-template-columns:1fr 1fr; margin:0; overflow:hidden; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.payment-person-detail-summary dl > div { display:grid; gap:.25rem; padding:.85rem; }
.payment-person-detail-summary dl > div + div { border-left:1px solid var(--line); }
.payment-person-detail-summary dt { color:var(--ink-muted); font-size:.59rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.payment-person-detail-summary dd { margin:0; color:var(--saved); font-size:1.2rem; font-weight:850; letter-spacing:-.04em; }
.payment-person-detail-summary .is-outstanding dd { color:#a95041; }
.payment-person-detail-summary p { margin:0; color:var(--ink-muted); font-size:.68rem; }
.payment-person-expense-group { margin-top:1.35rem; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.payment-person-expense-group > header { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:1rem; border-left:3px solid var(--accent); padding:.65rem .8rem; background:var(--surface-warm); }
.payment-person-expense-group.is-paid > header { border-left-color:var(--saved); background:var(--saved-bg); }
.payment-person-expense-group h4 { margin:0; color:var(--ink); font-size:1rem; letter-spacing:-.015em; }
.payment-person-expense-group > header span { display:grid; min-width:26px; height:26px; place-items:center; border:1px solid color-mix(in srgb,var(--ink) 8%,transparent); border-radius:999px; background:var(--surface); color:var(--primary); font-size:.65rem; font-weight:850; }
.payment-person-expense-group > p { margin:0; padding:.85rem; color:var(--ink-muted); font-size:.8rem; line-height:1.5; }
.payment-person-expense-group > div { display:grid; }
.payment-person-expense-group button { display:grid; grid-template-columns:minmax(0,1fr) auto 18px; align-items:center; gap:.7rem; width:100%; min-height:68px; border:0; padding:.75rem .8rem; background:transparent; color:var(--ink); text-align:left; }
.payment-person-expense-group button + button { border-top:1px solid var(--line); }
.payment-person-expense-group button:hover,.payment-person-expense-group button:focus-visible { background:var(--surface-soft); }
.payment-person-expense-group button > span { display:grid; min-width:0; gap:.16rem; }
.payment-person-expense-group button strong { overflow:hidden; font-size:.88rem; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-expense-group button small { overflow:hidden; color:var(--ink-muted); font-size:.78rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-expense-group button b { color:#a95041; font-size:.84rem; }
.payment-person-expense-group.is-paid button b { color:var(--saved); }
.payment-person-expense-group button i { color:var(--primary); font-size:1.25rem; font-style:normal; }
.payment-detail-tracking { margin-top:1.85rem; border-top:1px solid var(--line); padding-top:1.5rem; }
.payment-detail-tracking > header { display:flex; align-items:end; justify-content:space-between; gap:1rem; padding-bottom:1rem; }
.payment-detail-tracking > header > div { display:grid; gap:.35rem; }
.payment-detail-tracking h4 { margin:0; color:var(--ink); font-size:1.2rem; letter-spacing:-.035em; }
.payment-detail-tracking > header > small { color:var(--ink-muted); font-size:.66rem; white-space:nowrap; }
.payment-person-list { display:grid; }
.payment-person-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; border-top:1px solid var(--line); padding:.9rem 0; }
.payment-person-row > div:first-child { display:flex; min-width:0; align-items:center; gap:.65rem; }
.payment-person-avatar { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:50%; background:#e8f1ee; color:var(--primary); font-size:.61rem; font-weight:900; }
.payment-person-row > div:first-child > span:last-child { display:grid; min-width:0; gap:.15rem; }
.payment-person-row strong { overflow:hidden; color:var(--ink); font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }
.payment-person-row small { color:var(--ink-muted); font-size:.62rem; }
.payment-person-status { display:grid; grid-template-columns:repeat(3,auto); overflow:hidden; border:1px solid var(--line); border-radius:10px; }
.payment-person-status button { min-height:44px; border:0; border-left:1px solid var(--line); padding:.55rem .58rem; background:var(--surface); color:var(--ink-muted); font-size:.59rem; font-weight:820; }
.payment-person-status button:first-child { border-left:0; }
.payment-person-status button.is-selected.status-paid { background:var(--saved-bg); color:var(--saved); }
.payment-person-status button.is-selected.status-outstanding { background:var(--surface-warm); color:#b65b49; }
.payment-person-status button.is-selected.status-excluded { background:#edf2f1; color:#59716f; }
.payment-person-status button:focus-visible { position:relative; z-index:1; outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent); outline-offset:-3px; }
.payment-detail-empty { display:grid; justify-items:start; gap:.55rem; border:1px dashed var(--line); border-radius:14px; padding:1rem; color:var(--ink-muted); }
.payment-detail-empty strong { color:var(--ink); }
.payment-detail-empty p { margin:0; font-size:.75rem; line-height:1.5; }
.payment-detail-empty button { min-height:44px; border:0; padding:.6rem 0; background:transparent; color:var(--primary); font-weight:820; }
.payment-detail-actions {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  min-height:76px;
  border-top:1px solid var(--line);
  padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom));
  background:rgba(255,253,250,.98);
}
.payment-detail-actions button { min-height:44px; border-radius:999px; padding:.7rem 1rem; font-size:.72rem; font-weight:820; }
.payment-detail-remove { justify-self:start; border:0; background:transparent; color:var(--danger); }
.payment-detail-edit { min-width:128px; border:0; background:var(--primary); color:white; }

.payment-composer { display:block; }
.payment-composer button { min-height:44px; }
.payment-composer-flow { display:grid!important; width:100%!important; max-width:none!important; height:100%!important; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden!important; border:0!important; border-radius:0!important; padding:0!important; background:#fffdfa!important; box-shadow:none!important; }
.payment-composer-progress { display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; gap:.8rem!important; margin:0!important; padding:.85rem 1.5rem .35rem!important; }
.payment-composer-progress > span { display:none; }
.payment-composer-progress > div { height:4px!important; }
.payment-composer-progress > b { font-size:.62rem!important; }
.payment-composer-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.35rem; padding:.45rem 1.5rem .85rem; }
.payment-composer-steps button { display:grid; min-width:0; min-height:52px; place-items:center; gap:.23rem; border:1px solid transparent; border-radius:12px; padding:.4rem .2rem; background:transparent; color:var(--ink-muted); font-size:.6rem; font-weight:820; }
.payment-composer-steps button i { display:grid; width:23px; height:23px; place-items:center; border-radius:8px; background:#e7efec; color:var(--primary); font-size:.6rem; font-style:normal; }
.payment-composer-steps button.is-current { border-color:color-mix(in srgb,var(--primary) 24%,var(--line)); background:var(--surface); color:var(--ink); box-shadow:0 5px 14px rgba(18,49,48,.05); }
.payment-composer-steps button.is-complete i { background:var(--saved); color:white; }
.payment-composer-steps button:disabled { cursor:not-allowed; opacity:.42; }
.payment-composer-body { min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:1.15rem 1.5rem 1.75rem; }
.payment-composer .guided-step { display:grid!important; min-height:0; align-content:start; gap:1rem!important; animation:none!important; }
.payment-composer .guided-step[hidden] { display:none!important; }
.payment-composer .guided-step > .step-kicker,.payment-composer .guided-step > h3,.payment-composer .guided-step > h3 + p { display:none; }
.payment-composer label,.payment-composer .payment-field-label { display:grid; gap:.4rem; color:#365453; font-size:.73rem; font-weight:820; }
.payment-composer input,.payment-composer select,.payment-composer textarea {
  width:100%;
  min-width:0;
  min-height:48px;
  border:1px solid color-mix(in srgb,var(--ink) 16%,white);
  border-radius:12px;
  padding:.75rem .85rem;
  background:var(--surface);
  color:var(--ink);
  font-size:16px;
  font-weight:500;
}
.payment-composer textarea { min-height:112px; resize:vertical; line-height:1.5; }
.payment-composer input:focus-visible,.payment-composer select:focus-visible,.payment-composer textarea:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 22%,transparent); outline-offset:1px; border-color:var(--primary); }
.payment-composer .payment-name-field { max-width:none!important; }
.payment-suggestions { border:0; border-bottom:1px solid var(--line); border-radius:0!important; padding:.45rem 0 .7rem!important; background:transparent!important; }
.payment-suggestions summary { min-height:38px; padding:.45rem 0!important; color:var(--primary); font-size:.67rem; }
.payment-suggestion-library { display:grid; gap:.55rem!important; padding:.4rem 0 .2rem!important; }
.payment-suggestion-library > div { display:grid; grid-template-columns:70px minmax(0,1fr); align-items:start; gap:.55rem; }
.payment-suggestion-library > div > span { padding-top:.35rem; color:var(--ink-muted); font-size:.58rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.payment-composer .example-chips { gap:.35rem; }
.payment-composer .example-chips button { min-height:44px; border-radius:999px; padding:.5rem .68rem; font-size:.58rem; }
.payment-defaults { display:grid; gap:.75rem; border:0!important; border-radius:0!important; padding:.65rem 0!important; background:transparent!important; }
.payment-default-question { display:grid!important; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; }
.payment-default-question > div { display:grid; gap:.25rem; }
.payment-default-question b { color:var(--ink); font-size:.86rem; }
.payment-default-question small { color:var(--ink-muted); font-size:.75rem; line-height:1.45; }
.payment-default-fields { display:grid; gap:.8rem; border-top:1px solid var(--line); padding-top:.9rem; }
.payment-default-summary { border-top:1px solid var(--line); padding-top:.8rem; }
.payment-split-picker { display:grid; gap:.65rem; }
.payment-split-heading { display:flex; justify-content:space-between; gap:1rem; color:var(--ink-muted); font-size:.68rem; }
.payment-split-heading strong { color:var(--primary); }
.payment-split-people { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.payment-split-people button { display:flex; min-height:44px; align-items:center; gap:.55rem; border:1px solid var(--line); border-radius:11px; padding:.65rem .75rem; background:var(--surface); color:var(--ink); font-size:.7rem; font-weight:720; text-align:left; }
.payment-split-people button > span { display:grid; width:22px; height:22px; flex:none; place-items:center; border-radius:50%; background:#edf2f1; color:var(--primary); }
.payment-split-people button.is-selected { border-color:var(--saved); background:var(--saved-bg); }
.payment-split-people button.is-selected > span { background:var(--saved); color:white; }
.payment-split-empty { display:grid; justify-items:start; gap:.45rem; border:1px dashed var(--line); border-radius:13px; padding:1rem; color:var(--ink-muted); font-size:.7rem; line-height:1.45; }
.payment-split-empty strong { color:var(--ink); font-size:.78rem; }
.payment-split-empty button { min-height:44px; border:0; padding:.55rem 0; background:transparent; color:var(--primary); font-weight:820; }
.payment-composer .calculated-share { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.4rem 1rem; border-radius:14px; padding:1rem; background:var(--surface-warm); }
.payment-composer .calculated-share span { color:var(--ink-muted); font-size:.66rem; font-weight:820; text-transform:uppercase; }
.payment-composer .calculated-share strong { color:var(--ink); font-size:1.25rem; letter-spacing:-.035em; }
.payment-composer .calculated-share input { position:absolute; width:1px; min-height:1px; opacity:0; pointer-events:none; }
.payment-handoff-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
.payment-composer .recipient-picker { gap:.45rem; }
.payment-composer .recipient-picker button { min-height:42px; }
.payment-composer .payment-method-choice .choice-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:.55rem; }
.payment-composer .payment-method-choice .choice-cards label { min-height:54px; border:1px solid var(--line); border-radius:12px; padding:.6rem; background:var(--surface); text-align:center; }
.payment-composer .payment-method-choice .choice-cards label:has(input:checked) { border-color:var(--primary); background:var(--surface-soft); box-shadow:inset 0 0 0 1px var(--primary); color:var(--primary); }
.payment-composer .payment-method-explainer { border:0; border-radius:13px; padding:.9rem; background:var(--surface-soft); }
.payment-composer-actions {
  display:grid!important;
  min-height:76px!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:.7rem!important;
  margin:0!important;
  border-top:1px solid var(--line)!important;
  padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom))!important;
  background:rgba(255,253,250,.98)!important;
}
.payment-composer-actions .form-message { min-width:0; margin:0; color:var(--ink-muted); font-size:.66rem; line-height:1.35; text-align:left; }
.payment-composer-actions .guided-back { min-height:44px; padding:.55rem .3rem; }
.payment-composer-actions .guided-next,.payment-composer-actions .guided-save { min-width:132px; min-height:44px; border-radius:999px; }
.payment-composer-actions [hidden] { display:none!important; }

.payment-inline-editor { display:grid!important; grid-template-rows:auto minmax(0,1fr)!important; animation:none!important; }
.payment-inline-editor { box-shadow:0 0 0 100vmax rgba(18,49,48,.12),-20px 0 62px rgba(18,49,48,.17)!important; }
.payment-edit-heading > div > span { color:var(--accent); font-size:.7rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.payment-inline-editor > form { display:grid; min-height:0; grid-template-rows:minmax(0,1fr) auto; overflow:hidden; padding:0!important; }
.payment-edit-grid { display:grid; min-height:0; align-content:start; gap:0!important; overflow-x:hidden; overflow-y:auto; padding:1.25rem 1.5rem 2rem; }
.payment-edit-section { display:grid; gap:.85rem; border-top:1px solid var(--line)!important; border-radius:0!important; padding:1.25rem 0!important; background:transparent!important; }
.payment-edit-section:first-child { border-top:0!important; padding-top:0!important; }
.payment-edit-section-head { display:grid; gap:.18rem; }
.payment-edit-section-head > span { color:var(--ink); font-size:.78rem; font-weight:850; }
.payment-edit-section-head > small { color:var(--ink-muted); font-size:.65rem; line-height:1.4; }
.payment-edit-fields { gap:.75rem!important; }
.payment-inline-editor label { color:#365453; font-size:.71rem; }
.payment-inline-editor input,.payment-inline-editor select,.payment-inline-editor textarea { min-height:48px; border-color:color-mix(in srgb,var(--ink) 16%,white); border-radius:12px; background:var(--surface); font-size:16px; }
.payment-edit-share { border-radius:13px!important; padding:.9rem!important; background:var(--surface-soft)!important; }
.payment-edit-actions { display:grid!important; min-height:76px; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.8rem; margin:0!important; border-top:1px solid var(--line); padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom))!important; background:rgba(255,253,250,.98)!important; }
.payment-edit-actions .form-message { margin:0; font-size:.66rem; text-align:left; }
.payment-edit-actions .button { min-width:132px; min-height:44px; border-radius:999px; }

@media (max-width:1050px) {
  .payment-page-header { grid-template-columns:minmax(0,1fr) minmax(270px,.72fr); gap:3rem; }
  .payment-metrics { grid-template-columns:1fr 1fr; }
  .payment-metric + .payment-metric { border-left:1px solid var(--line); }
  .payment-metric:nth-child(3) { border-top:1px solid var(--line); border-left:0; }
  .payment-metric:nth-child(4) { border-top:1px solid var(--line); }
  .payment-ledger-columns,.payment-ledger-row { grid-template-columns:minmax(190px,1.65fr) minmax(85px,.7fr) minmax(110px,.9fr) minmax(80px,.62fr) minmax(130px,1.05fr) 24px; }
  .payment-ledger-columns > span:nth-child(5),.payment-ledger-share { display:none; }
  .payment-person-columns,.payment-person-row-view { grid-template-columns:minmax(200px,1.7fr) repeat(3,minmax(90px,.75fr)) 24px; }
  .payment-person-columns > span:nth-child(5),.payment-person-due { display:none; }
}

@media (max-width:760px) {
  .payment-page-header { grid-template-columns:1fr; gap:1rem; padding-top:.15rem; }
  .payment-page-header h2 { font-size:clamp(2.6rem,10.5vw,3.7rem); }
  .payment-page-intro { gap:1rem; }
  .payment-page-intro p { max-width:620px; font-size:.9rem; }
  .payment-ledger-heading { align-items:start; }
  .payment-ledger-heading > small { max-width:240px; }
}

@media (max-width:720px) {
  body.payment-composer-open,body.payment-detail-open,body.payment-edit-open { overflow:hidden!important; touch-action:none; }
  .organizer-canvas .editor-panel.payment-panel { padding-bottom:2rem; }
  .payment-page-header { padding-bottom:1.35rem; }
  .payment-page-header > div:first-child { gap:.55rem; }
  .payment-page-header h2 { font-size:clamp(2.55rem,12vw,3.45rem); line-height:.95; }
  .payment-page-intro p { font-size:.86rem; line-height:1.58; }
  .payment-add-expense { width:100%; justify-content:center; }
  .payment-metrics { grid-template-columns:1fr 1fr; margin:1.25rem 0 2.7rem; border-radius:17px; }
  .payment-metric { min-height:108px; padding:1rem; }
  .payment-metric:first-child { grid-column:1 / -1; min-height:126px; }
  .payment-metric:first-child + .payment-metric { border-left:0; }
  .payment-metric:nth-child(2),.payment-metric:nth-child(3) { border-top:1px solid var(--line); }
  .payment-metric:nth-child(3) { border-left:1px solid var(--line); }
  .payment-metric:nth-child(4) { grid-column:1 / -1; grid-template-columns:auto auto; min-height:72px; place-content:center; gap:.45rem; border-top:1px solid var(--line); border-left:0; }
  .payment-metric > strong { font-size:1.85rem; }
  .payment-metric.is-count > strong { font-size:1.8rem; }
  .payment-ledger-heading { display:grid; gap:.5rem; padding-bottom:.85rem; }
  .payment-ledger-heading h3 { font-size:1.72rem; }
  .payment-ledger-heading > small { max-width:none; padding:0; font-size:.66rem; text-align:left; }
  .payment-ledger-columns { display:none!important; }
  .payment-view-tabs { width:100%; margin-bottom:1rem; }
  .payment-view-tabs button { flex:1 1 0; min-width:0; }
  .payment-unassigned-callout { padding:.8rem; }
  .payment-ledger-item { border:1px solid var(--line); border-radius:15px; margin-bottom:.65rem; overflow:hidden; background:var(--surface); }
  .payment-ledger-item.is-selected::before { width:3px; }
  .payment-ledger-row { grid-template-columns:minmax(0,1fr) auto 20px; grid-template-rows:auto auto; gap:.7rem .65rem; min-height:0; padding:1rem; }
  .payment-ledger-expense { grid-column:1; grid-row:1; }
  .payment-ledger-total { grid-column:2; grid-row:1; align-self:start; text-align:right; }
  .payment-ledger-status { grid-column:1 / 3; grid-row:2; }
  .payment-ledger-chevron { grid-column:3; grid-row:1 / 3; align-self:center; }
  .payment-ledger-due,.payment-ledger-recipient,.payment-ledger-share { display:none; }
  .payment-ledger-row strong { white-space:normal; }
  .payment-ledger-expense strong { font-size:.86rem; }
  .payment-ledger-expense small { white-space:normal; }
  .payment-ledger-total small { display:block; color:var(--ink-muted); font-size:.56rem; text-transform:uppercase; }
  .payment-ledger-status strong { font-size:.66rem; }
  .payment-empty-state { grid-template-columns:1fr; gap:1.25rem; border-radius:17px; padding:1.25rem; }
  .payment-empty-state > div:last-child { display:grid; grid-template-columns:1fr; justify-content:stretch; }
  .payment-empty-state .button,.payment-people-link { width:100%; justify-content:center; }
  .payment-person-columns { display:none!important; }
  .payment-person-item { margin-bottom:.65rem; overflow:hidden; border:1px solid var(--line); border-radius:15px; background:var(--surface); }
  .payment-person-row-view { grid-template-columns:minmax(0,1fr) auto 20px; gap:.65rem; min-height:76px; padding:.9rem 1rem; }
  .payment-person-name { min-width:0; }
  .payment-person-name strong,.payment-person-name small { white-space:normal; }
  .payment-person-unpaid { align-self:start; text-align:right; }
  .payment-person-unpaid small { display:block; color:var(--ink-muted); font-size:.55rem; text-transform:uppercase; }
  .payment-person-paid,.payment-person-open,.payment-person-due { display:none; }
  .payment-detail-backdrop,.payment-composer-backdrop { background:rgba(18,49,48,.18); }
  .payment-detail-drawer,.payment-composer,.payment-inline-editor {
    inset:0!important;
    width:100dvw!important;
    max-width:100dvw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border:0!important;
    box-shadow:none!important;
    opacity:.82;
    transform:translateY(24px)!important;
  }
  .payment-detail-drawer.is-open,.payment-composer.is-open,.payment-inline-editor:not(.is-opening):not(.is-closing),.payment-inline-editor.is-opening.is-open { opacity:1; transform:none!important; }
  .payment-detail-drawer.is-closing,.payment-composer.is-closing,.payment-inline-editor.is-closing { opacity:0; transform:translateY(18px)!important; }
  .payment-inline-editor::before { display:none; }
  .payment-detail-header,.payment-composer-header,.payment-edit-heading { padding:calc(.9rem + env(safe-area-inset-top)) 1rem .85rem!important; }
  .payment-detail-header h3,.payment-composer-header h3,.payment-edit-heading h3 { font-size:1.45rem; }
  .payment-detail-body,.payment-composer-body,.payment-edit-grid { padding-right:1rem; padding-left:1rem; }
  .payment-composer-progress { padding-right:1rem!important; padding-left:1rem!important; }
  .payment-composer-steps { gap:.18rem; padding-right:.7rem; padding-left:.7rem; }
  .payment-composer-steps button { min-height:50px; font-size:.56rem; }
  .payment-composer-actions { grid-template-columns:auto minmax(0,1fr) auto!important; padding-right:1rem!important; padding-left:1rem!important; }
  .payment-composer-actions .form-message { grid-column:1 / -1; grid-row:1; }
  .payment-composer-actions .guided-back { grid-column:1; }
  .payment-composer-actions .guided-next,.payment-composer-actions .guided-save { grid-column:3; }
  .payment-suggestion-library > div { grid-template-columns:1fr; gap:.25rem; }
  .payment-suggestion-library > div > span { padding:0; }
  .payment-split-people { grid-template-columns:1fr; }
  .payment-person-row {
    grid-template-columns:minmax(0,.9fr) minmax(190px,1.35fr);
    gap:.55rem;
    padding:.75rem 0;
  }
  .payment-person-status { grid-template-columns:repeat(3,1fr); }
  .payment-person-status button {
    min-height:48px;
    padding:.45rem .25rem;
    font-size:.68rem;
    line-height:1.15;
  }
  .payment-detail-actions { padding-right:1rem; padding-left:1rem; }
  .payment-edit-fields { grid-template-columns:1fr!important; }
  .payment-edit-actions { padding-right:1rem!important; padding-left:1rem!important; }
}

@media (max-width:430px) {
  .payment-metric { padding:.9rem; }
  .payment-metric > span { font-size:.59rem; }
  .payment-metric > small { font-size:.61rem; }
  .payment-detail-summary dl { grid-template-columns:1fr; }
  .payment-detail-summary dl > div:nth-child(even) { border-left:0; }
  .payment-detail-summary dl > div:nth-child(n+2) { border-top:1px solid var(--line); }
  .payment-detail-summary dl > div:last-child { grid-column:auto; }
  .payment-composer-steps button span { font-size:.53rem; }
  .payment-composer-actions .guided-next,.payment-composer-actions .guided-save { min-width:120px; }
  .payment-detail-actions { gap:.5rem; }
  .payment-detail-actions button { padding:.65rem .72rem; }
  .payment-edit-actions .button { min-width:118px; }
}

@media (prefers-reduced-motion:reduce) {
  .payment-ledger-item.is-new-payment { animation:none; }
  .payment-detail-backdrop,.payment-composer-backdrop,.payment-detail-drawer,.payment-composer,.payment-inline-editor,.payment-ledger-row,.payment-person-row-view,.payment-view-tabs button::after,.payment-ledger-status i b,.payment-detail-progress > i b { transition:none!important; animation:none!important; }
}

/* Overview action hub */
.organizer-canvas .editor-panel[data-editor-panel="overview"] {
  display:block;
  width:100%;
  max-width:none;
  min-width:0;
  padding-bottom:4rem;
  color:var(--ink);
}
.organizer-canvas .editor-panel[data-editor-panel="overview"][hidden],
#trip-basics-form.overview-basics-drawer[hidden],
.overview-basics-backdrop[hidden] { display:none!important; }
.overview-page-header {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);
  align-items:end;
  gap:clamp(2rem,5vw,6rem);
  border-bottom:1px solid var(--line);
  padding:.3rem 0 clamp(2rem,4.5vw,3.8rem);
}
.overview-page-header > div { display:grid; min-width:0; gap:.55rem; }
.overview-page-header .eyebrow,
.overview-workspace-heading .eyebrow,
.overview-next-copy .eyebrow,
.overview-basics-drawer .eyebrow { margin:0; }
.overview-page-header h2 {
  max-width:760px;
  margin:0;
  font-family:Georgia,serif;
  font-size:clamp(3rem,5vw,4rem);
  font-weight:500;
  letter-spacing:-.058em;
  line-height:.96;
}
.overview-page-header > p {
  max-width:530px;
  margin:0;
  color:var(--ink-muted);
  font-size:clamp(.92rem,1.1vw,1.05rem);
  line-height:1.65;
}
.overview-command-grid {
  display:grid;
  grid-template-areas:"basics next";
  grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);
  align-items:start;
  gap:clamp(1rem,2vw,1.5rem);
  margin:clamp(1.5rem,3.2vw,2.8rem) 0 clamp(2.8rem,5vw,4.5rem);
}
.overview-next-up {
  grid-area:next;
  display:grid;
  min-width:0;
  min-height:0;
  grid-template-rows:auto auto;
  align-self:start;
  gap:1.1rem;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--clay) 24%,var(--line));
  border-radius:22px;
  padding:clamp(1.3rem,2.3vw,1.8rem);
  background:var(--surface-warm);
  box-shadow:0 18px 40px rgba(18,49,48,.065);
}
.overview-next-up.is-clear {
  border-color:color-mix(in srgb,var(--saved) 30%,var(--line));
  background:var(--surface-soft);
  box-shadow:none;
}
.overview-next-copy { display:grid; min-width:0; align-content:start; gap:.65rem; }
.overview-next-state {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  min-height:28px;
  align-items:center;
  gap:.45rem;
  color:#9a5446;
  font-size:.68rem;
  font-weight:880;
}
.overview-next-state i {
  display:grid;
  width:24px;
  height:24px;
  flex:none;
  place-items:center;
  border-radius:50%;
  background:var(--danger-bg);
  color:var(--danger);
  font-size:.67rem;
  font-style:normal;
}
.overview-next-up.is-clear .overview-next-state { color:var(--saved); }
.overview-next-up.is-clear .overview-next-state i { background:var(--saved-bg); color:var(--saved); }
.overview-next-copy h3 {
  max-width:450px;
  margin:.15rem 0 0;
  overflow-wrap:anywhere;
  font-size:clamp(1.45rem,2vw,1.9rem);
  letter-spacing:-.048em;
  line-height:1.06;
}
.overview-next-copy > p:not(.eyebrow) {
  max-width:520px;
  margin:0;
  color:var(--ink-muted);
  font-size:.9rem;
  line-height:1.55;
}
.overview-next-copy > small { color:var(--ink-muted); font-size:.68rem; line-height:1.45; }
.overview-next-action {
  display:inline-flex;
  width:max-content;
  max-width:100%;
  min-height:44px;
  align-items:center;
  justify-content:center;
  justify-self:start;
  border:0;
  border-radius:999px;
  padding:.7rem 1rem;
  background:var(--primary);
  color:white;
  font-size:.76rem;
  font-weight:850;
  text-align:left;
}
.overview-next-action > span { font-size:1rem; transition:transform .2s ease; }
.overview-next-action:hover { background:var(--primary-hover); }
.overview-next-action:hover > span { transform:translateX(3px); }
.overview-basics-panel {
  grid-area:basics;
  display:grid;
  min-width:0;
  grid-template-rows:auto auto;
  border:1px solid var(--line);
  border-radius:22px;
  padding:clamp(1.3rem,2.3vw,1.8rem);
  background:var(--surface);
  box-shadow:none;
}
.overview-workspace-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
}
.overview-workspace-heading > div { display:grid; min-width:0; gap:.42rem; }
.overview-workspace-heading h3 {
  max-width:660px;
  margin:0;
  font-size:clamp(1.3rem,1.8vw,1.6rem);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.08;
}
.overview-edit-basics {
  min-height:44px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.65rem .9rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.7rem;
  font-weight:850;
  white-space:nowrap;
}
.overview-edit-basics:hover { border-color:color-mix(in srgb,var(--primary) 38%,var(--line)); background:var(--surface-soft); }
.overview-basics-summary { min-width:0; margin-top:1rem; border-top:1px solid var(--line); }
.overview-basics-summary dl { display:grid; min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.overview-basics-summary dl > div {
  display:grid;
  min-width:0;
  align-content:start;
  gap:.38rem;
  border-bottom:1px solid var(--line);
  padding:1.15rem 1rem 1.1rem 0;
}
.overview-basics-summary dl > div:nth-child(even) { border-left:1px solid var(--line); padding-right:0; padding-left:1rem; }
.overview-basics-summary dl > div:nth-last-child(-n+2) { border-bottom:0; }
.overview-basics-summary dt {
  color:var(--ink-muted);
  font-size:.61rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.overview-basics-summary dd {
  min-width:0;
  margin:0;
  overflow-wrap:anywhere;
  white-space:pre-line;
  color:var(--ink);
  font-size:.94rem;
  font-weight:650;
  line-height:1.45;
}
.overview-basics-summary .is-primary dd { font-size:1.04rem; font-weight:800; }
.overview-basics-summary .is-empty dd { color:var(--ink-muted); font-weight:620; }
.overview-sections { min-width:0; }
.overview-sections-heading {
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:1.1rem;
}
.overview-sections-heading > p {
  max-width:470px;
  margin:0;
  color:var(--ink-muted);
  font-size:.76rem;
  line-height:1.5;
  text-align:right;
}
.overview-section-list { display:grid; min-width:0; gap:1rem; }
.overview-status-group { min-width:0; }
.overview-status-group h4 {
  margin:0;
  padding:1rem .15rem .35rem;
  color:var(--ink-muted);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-status-group.is-attention h4 { color:var(--accent); }
.overview-status-group.is-ready h4 { color:var(--saved); }
.overview-status-group > div { border-top:1px solid var(--line); }
.overview-section-row {
  display:grid;
  width:100%;
  min-width:0;
  min-height:62px;
  grid-template-columns:minmax(130px,.45fr) minmax(260px,1.35fr) minmax(132px,auto) 28px;
  align-items:center;
  gap:clamp(.8rem,2vw,1.8rem);
  border:0;
  border-bottom:1px solid var(--line);
  padding:.78rem .15rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
  transition:background .2s ease,padding .2s ease;
}
.overview-section-row:hover { padding-right:.65rem; padding-left:.65rem; background:var(--surface-soft); }
.overview-section-row > strong { min-width:0; font-size:.96rem; letter-spacing:-.02em; }
.overview-row-copy {
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--ink-muted);
  font-size:.76rem;
  line-height:1.45;
}
.overview-row-status {
  display:inline-flex;
  min-width:0;
  align-items:center;
  justify-self:end;
  gap:.45rem;
  color:var(--ink-muted);
  font-size:.66rem;
  font-weight:820;
  text-align:right;
}
.overview-row-status i { width:8px; height:8px; flex:none; border-radius:50%; background:#a8b8b5; }
.overview-row-status.is-review { color:#9a5446; }
.overview-row-status.is-review i { background:var(--danger); }
.overview-row-status.is-visible,.overview-row-status.is-saved { color:var(--saved); }
.overview-row-status.is-visible i,.overview-row-status.is-saved i { background:var(--saved); }
.overview-row-arrow { justify-self:end; color:var(--primary); font-size:1.15rem; transition:transform .2s ease; }
.overview-section-row:hover .overview-row-arrow { transform:translateX(3px); }
.overview-edit-basics:focus-visible,
.overview-next-action:focus-visible,
.overview-section-row:focus-visible,
.overview-basics-drawer button:focus-visible {
  outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent);
  outline-offset:3px;
}

.overview-basics-backdrop {
  position:fixed;
  z-index:249;
  inset:0;
  border:0;
  padding:0;
  background:rgba(18,49,48,.2);
  opacity:0;
  transition:opacity .24s ease;
}
.overview-basics-backdrop.is-open { opacity:1; }
#trip-basics-form.overview-basics-drawer {
  position:fixed;
  z-index:260;
  inset:0 0 0 auto;
  display:grid;
  width:min(520px,calc(100vw - 76px));
  max-width:520px;
  height:100dvh;
  max-height:100dvh;
  grid-template-rows:auto minmax(0,1fr) auto;
  margin:0;
  overflow:hidden;
  border:0;
  border-left:1px solid var(--line);
  border-radius:0;
  padding:0;
  background:#fffdfa;
  box-shadow:-22px 0 64px rgba(18,49,48,.18);
  opacity:.88;
  transform:translateX(34px);
  transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .22s ease;
}
#trip-basics-form.overview-basics-drawer.is-open { opacity:1; transform:none; }
#trip-basics-form.overview-basics-drawer.is-closing { opacity:0; transform:translateX(24px); }
.overview-basics-drawer-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:1.55rem 1.5rem 1.3rem;
  background:rgba(255,253,250,.98);
}
.overview-basics-drawer-header > div { display:grid; min-width:0; gap:.35rem; }
.overview-basics-drawer-header h3 {
  margin:0;
  overflow-wrap:anywhere;
  font-size:1.45rem;
  letter-spacing:-.045em;
  line-height:1.08;
}
.overview-basics-drawer-header p:last-child { max-width:390px; margin:.35rem 0 0; color:var(--ink-muted); font-size:.79rem; line-height:1.5; }
.overview-basics-close {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--ink);
  font-size:1.45rem;
}
.overview-basics-close:hover { background:var(--surface-soft); }
.overview-basics-drawer-body {
  display:grid;
  min-height:0;
  align-content:start;
  gap:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:0 1.5rem 2rem;
}
.overview-basics-drawer-section {
  display:grid;
  min-width:0;
  gap:1rem;
  border-top:1px solid var(--line);
  padding:1.45rem 0;
}
.overview-basics-drawer-section:first-child { border-top:0; }
.overview-basics-drawer-section > div:first-child { display:grid; gap:.28rem; }
.overview-basics-drawer-section h4 { margin:0; font-size:1rem; letter-spacing:-.025em; }
.overview-basics-drawer-section > div:first-child > p:last-child:not(.eyebrow) { margin:.15rem 0 0; color:var(--ink-muted); font-size:.72rem; line-height:1.45; }
.overview-basics-drawer label {
  display:grid;
  min-width:0;
  gap:.42rem;
  color:#365453;
  font-size:.72rem;
  font-weight:820;
}
.overview-basics-drawer input,
.overview-basics-drawer textarea {
  width:100%;
  min-width:0;
  min-height:48px;
  border:1px solid color-mix(in srgb,var(--ink) 16%,white);
  border-radius:12px;
  padding:.76rem .85rem;
  background:var(--surface);
  color:var(--ink);
  font-size:16px;
  font-weight:500;
}
.overview-basics-drawer textarea { min-height:126px; resize:vertical; line-height:1.5; }
.overview-basics-drawer input:focus-visible,
.overview-basics-drawer textarea:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 22%,transparent); outline-offset:1px; border-color:var(--primary); }
.overview-date-fields { display:grid; min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.overview-basics-drawer .date-day { display:block; min-height:1.05rem; color:var(--ink-muted); font-size:.64rem; font-weight:620; }
.overview-basics-drawer-footer {
  display:grid;
  min-height:78px;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:.7rem;
  border-top:1px solid var(--line);
  padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom));
  background:rgba(255,253,250,.98);
}
.overview-basics-drawer-footer .form-message { min-width:0; margin:0; color:var(--ink-muted); font-size:.67rem; line-height:1.35; text-align:left; }
.overview-basics-drawer-footer .form-message.success { color:var(--saved); }
.overview-basics-drawer-footer .button,
.overview-basics-drawer-footer .button-secondary { min-height:44px; border-radius:999px; padding:.67rem .9rem; font-size:.7rem; font-weight:850; }
.overview-basics-drawer-footer .button-secondary { border:1px solid var(--line); background:var(--surface); color:var(--primary); }
.overview-basics-drawer[aria-busy="true"] .overview-basics-close,
.overview-basics-drawer[aria-busy="true"] .button-secondary { opacity:.5; }

@media (max-width:899px) {
  .overview-command-grid {
    grid-template-areas:"next" "basics";
    grid-template-columns:minmax(0,1fr);
  }
  .overview-next-up { width:100%; min-height:0; }
  .overview-basics-summary dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .overview-page-header { grid-template-columns:minmax(0,1fr); gap:1rem; padding-top:.15rem; }
  .overview-page-header h2 { font-size:clamp(2.65rem,10.8vw,3.55rem); }
  .overview-page-header > p { max-width:620px; font-size:.88rem; }
  .overview-sections-heading { grid-template-columns:minmax(0,1fr); align-items:start; }
  .overview-sections-heading > p { max-width:560px; text-align:left; }
  .overview-section-row { grid-template-columns:minmax(110px,.42fr) minmax(0,1fr) minmax(118px,auto) 24px; }
}

@media (max-width:720px) {
  body.overview-basics-open { overflow:hidden!important; touch-action:none; }
  #trip-basics-form.overview-basics-drawer {
    inset:0;
    width:100dvw;
    max-width:100dvw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    box-shadow:none;
    opacity:.82;
    transform:translateY(24px);
  }
  #trip-basics-form.overview-basics-drawer.is-open { opacity:1; transform:none; }
  #trip-basics-form.overview-basics-drawer.is-closing { opacity:0; transform:translateY(18px); }
  .overview-basics-drawer-header { padding:calc(.9rem + env(safe-area-inset-top)) 1rem .85rem; }
  .overview-basics-drawer-body { padding-right:1rem; padding-left:1rem; }
  .overview-basics-drawer-footer { padding-right:1rem; padding-left:1rem; }
}

@media (max-width:620px) {
  .organizer-canvas .editor-panel[data-editor-panel="overview"] { padding-bottom:2.4rem; }
  .overview-page-header { padding-bottom:1.35rem; }
  .overview-page-header h2 { font-size:clamp(2.55rem,12.2vw,3.35rem); }
  .overview-command-grid { gap:.8rem; margin:1rem 0 3.2rem; }
  .overview-next-up { min-height:0; gap:1rem; border-radius:18px; padding:1.15rem; }
  .overview-next-copy { gap:.58rem; }
  .overview-next-copy h3 { font-size:clamp(1.55rem,7vw,2rem); }
  .overview-next-copy > p:not(.eyebrow) { font-size:.83rem; }
  .overview-basics-panel { border-radius:18px; padding:1.15rem; }
  .overview-workspace-heading { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .overview-edit-basics { width:auto; justify-self:end; }
  .overview-next-action { width:100%; }
  .overview-basics-summary dl { grid-template-columns:minmax(0,1fr); }
  .overview-basics-summary dl > div,
  .overview-basics-summary dl > div:nth-child(even) {
    border-bottom:1px solid var(--line);
    border-left:0;
    padding:.92rem 0;
  }
  .overview-basics-summary dl > div:last-child { border-bottom:0; }
  .overview-sections-heading h3 { font-size:1.55rem; }
  .overview-section-row {
    min-height:0;
    grid-template-columns:minmax(0,1fr) auto 22px;
    grid-template-rows:auto auto;
    gap:.4rem .7rem;
    padding:.78rem .1rem;
  }
  .overview-section-row > strong { grid-column:1; grid-row:1; font-size:.9rem; }
  .overview-row-status { grid-column:2; grid-row:1; font-size:.62rem; }
  .overview-row-copy { grid-column:1 / 3; grid-row:2; font-size:.7rem; }
  .overview-row-arrow { grid-column:3; grid-row:1 / 3; align-self:center; }
  .overview-section-row:hover { padding-right:.4rem; padding-left:.4rem; }
  .overview-date-fields { grid-template-columns:minmax(0,1fr); }
  .overview-basics-drawer-footer { grid-template-columns:minmax(0,1fr) auto auto; gap:.5rem; }
  .overview-basics-drawer-footer .form-message { grid-column:1 / -1; grid-row:1; }
  .overview-basics-drawer-footer .button-secondary { grid-column:2; }
  .overview-basics-drawer-footer .button { grid-column:3; }
}

@media (max-width:410px) {
  .overview-basics-drawer-footer .button,
  .overview-basics-drawer-footer .button-secondary { padding:.65rem .7rem; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-basics-backdrop,
  #trip-basics-form.overview-basics-drawer,
  .overview-next-action > span,
  .overview-section-row,
  .overview-row-arrow { transition:none!important; animation:none!important; }
}

/* Organizer modal windows
   Editing stays focused without taking over the edge of the workspace. The
   existing full-screen sheets remain the compact-screen pattern. */
body:is(.overview-basics-open,.stay-editor-open,.people-drawer-open,.payment-composer-open,.payment-detail-open,.payment-edit-open,.link-drawer-open) {
  overflow:hidden;
}
body:is(.overview-basics-open,.stay-editor-open,.people-drawer-open,.payment-composer-open,.payment-detail-open,.payment-edit-open,.link-drawer-open) .organizer-canvas {
  overflow:hidden!important;
}
.payment-edit-backdrop,
#payment-edit-backdrop {
  position:fixed;
  z-index:254;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  visibility:hidden;
  background:rgba(18,49,48,.22);
  opacity:0;
  backdrop-filter:blur(5px);
  transition:opacity .2s ease,visibility .2s ease;
}
.payment-edit-backdrop[hidden],
#payment-edit-backdrop[hidden] { display:none!important; }
.payment-edit-backdrop.is-open,
#payment-edit-backdrop.is-open { visibility:visible; opacity:1; }

.stay-editor-flow:not(:has(.stay-editor-progress)),
.payment-composer-flow:not(:has(.payment-composer-progress)) {
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
}

.payment-edit-count {
  display:flex;
  min-height:48px;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border:1px solid var(--line);
  border-radius:13px;
  padding:.72rem .82rem;
  background:var(--surface-soft);
  color:var(--ink-muted);
  font-size:.7rem;
  line-height:1.35;
}
.payment-edit-count strong { color:var(--ink); font-size:.78rem; }
#back-payment-detail[hidden] { display:none!important; }
.people-sharing-choice[hidden] { display:none!important; }
.placement-selection[hidden] { display:none!important; }

@keyframes organizer-modal-surface-in {
  from { opacity:0; transform:translateY(14px) scale(.985); }
  to { opacity:1; transform:none; }
}
@keyframes organizer-mobile-sheet-in {
  from { opacity:.82; transform:translateY(22px); }
  to { opacity:1; transform:none; }
}

@media (min-width:721px) {
  .overview-basics-backdrop,
  .stay-editor-backdrop,
  .plan-form-backdrop,
  .people-drawer-backdrop,
  .payment-detail-backdrop,
  .payment-composer-backdrop,
  .payment-edit-backdrop,
  #payment-edit-backdrop,
  .link-form-backdrop {
    z-index:1200!important;
    background:rgba(18,49,48,.46)!important;
    backdrop-filter:blur(6px);
  }

  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .plan-form.unified-plan-drawer:not(.event-editor-popover),
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ) {
    position:fixed!important;
    z-index:1210!important;
    inset:50% auto auto 50%!important;
    width:min(var(--organizer-modal-width,680px),calc(100dvw - 2rem))!important;
    max-width:calc(100dvw - 2rem)!important;
    height:min(var(--organizer-modal-height,820px),calc(100dvh - 2rem))!important;
    max-height:calc(100dvh - 2rem)!important;
    overflow:hidden!important;
    border:1px solid rgba(18,49,48,.14)!important;
    border-radius:24px!important;
    padding:var(--organizer-modal-padding,0)!important;
    background:#fffdfa!important;
    box-shadow:0 30px 90px rgba(18,49,48,.3)!important;
    opacity:1!important;
    transform:translate(-50%,-50%) scale(1)!important;
    scale:1;
    translate:0 0;
    animation:none!important;
    transition:opacity .2s ease,scale .28s cubic-bezier(.22,1,.36,1),translate .28s cubic-bezier(.22,1,.36,1)!important;
  }

  @starting-style {
    :is(
      #trip-basics-form.overview-basics-drawer,
      .stay-editor,
      .plan-form.unified-plan-drawer:not(.event-editor-popover),
      .people-drawer,
      .payment-detail-drawer,
      .payment-composer,
      .payment-inline-editor,
      .link-form-drawer
    ) {
      opacity:0!important;
      scale:.985;
      translate:0 14px;
    }
  }

  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .plan-form.unified-plan-drawer:not(.event-editor-popover),
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ).is-closing {
    pointer-events:none;
    opacity:0!important;
    transform:translate(-50%,-50%) scale(1)!important;
    scale:.985;
    translate:0 12px;
    animation:none!important;
  }

  #trip-basics-form.overview-basics-drawer {
    --organizer-modal-width:680px;
    --organizer-modal-height:720px;
  }

  .people-drawer {
    --organizer-modal-width:680px;
    --organizer-modal-height:780px;
  }

  .link-form-drawer {
    --organizer-modal-width:680px;
    --organizer-modal-height:660px;
  }

  .stay-editor {
    --organizer-modal-width:760px;
    --organizer-modal-height:780px;
  }

  .plan-form.unified-plan-drawer:not(.event-editor-popover) {
    --organizer-modal-width:820px;
    --organizer-modal-overflow-x:hidden;
    --organizer-modal-overflow-y:auto;
    --organizer-modal-padding:0 var(--drawer-pad);
  }
  #itinerary-form.plan-form.unified-plan-drawer:not(.event-editor-popover):not(.shared-event-editor) {
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding:0 var(--drawer-pad)!important;
  }

  .payment-detail-drawer,
  .payment-composer,
  .payment-inline-editor { --organizer-modal-width:800px; }

  .payment-inline-editor::before { display:none!important; }

  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .plan-form.unified-plan-drawer:not(.event-editor-popover),
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ) button { min-height:44px; }

  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .plan-form.unified-plan-drawer:not(.event-editor-popover),
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ) :is(button,a,input:not([type="radio"]),select,textarea):focus-visible {
    outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent)!important;
    outline-offset:2px!important;
  }

  .people-drawer .people-role-choice span,
  .people-drawer .people-sharing-choice span { min-height:44px; }

  .payment-detail-header:has(#back-payment-detail:not([hidden])) {
    grid-template-columns:auto minmax(0,1fr) 44px;
  }
  .payment-detail-header:has(#back-payment-detail:not([hidden])) > div { grid-column:2; }
  .payment-detail-header:has(#back-payment-detail:not([hidden])) #close-payment-detail { grid-column:3; }
  #back-payment-detail {
    display:inline-flex;
    width:auto;
    min-width:44px;
    min-height:44px;
    align-items:center;
    justify-content:center;
    border:0!important;
    border-radius:999px!important;
    padding:.55rem .65rem!important;
    background:transparent!important;
    color:var(--primary)!important;
    font-size:1rem!important;
    font-weight:850;
  }
  #back-payment-detail[hidden] { display:none!important; }
  #back-payment-detail:hover,
  #back-payment-detail:focus-visible { background:var(--surface-soft)!important; }

  .preview-shell {
    z-index:1200;
    display:grid;
    place-items:center;
    padding:1rem;
  }
  .preview-backdrop {
    z-index:0;
    background:rgba(18,49,48,.5);
    backdrop-filter:blur(7px);
  }
  .live-preview {
    position:relative;
    z-index:1;
    inset:auto;
    width:min(900px,calc(100dvw - 2rem));
    height:min(880px,calc(100dvh - 2rem));
    max-width:calc(100dvw - 2rem);
    max-height:calc(100dvh - 2rem);
    overflow-x:hidden;
    overflow-y:auto;
    border:1px solid rgba(18,49,48,.14);
    border-radius:26px;
    background:#fffaf4;
    box-shadow:0 30px 90px rgba(18,49,48,.32);
    animation:organizer-modal-surface-in .3s cubic-bezier(.22,1,.36,1) both;
  }
  .live-preview :is(button,a):focus-visible {
    outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);
    outline-offset:2px;
  }

  .room-flow-shell {
    place-items:center!important;
    padding:1rem!important;
  }
  .room-flow-backdrop {
    background:rgba(18,49,48,.46)!important;
    backdrop-filter:blur(6px);
  }
  .room-flow-dialog {
    width:min(760px,calc(100dvw - 2rem));
    max-width:calc(100dvw - 2rem);
    min-height:min(440px,calc(100dvh - 2rem));
    height:auto;
    max-height:calc(100dvh - 2rem);
    border:1px solid rgba(18,49,48,.14);
    border-radius:24px;
    box-shadow:0 30px 90px rgba(18,49,48,.3);
    transform:translateY(14px) scale(.985);
  }
  .room-flow-shell.is-open .room-flow-dialog { transform:none; }
  .room-flow-dialog :is(button,a,input,select,textarea):focus-visible {
    outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent);
    outline-offset:2px;
  }
}

@media (max-width:720px) {
  .live-preview { animation:organizer-mobile-sheet-in .28s cubic-bezier(.22,1,.36,1) both; }
  .preview-content { padding-bottom:calc(1rem + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion:reduce) {
  .payment-edit-backdrop,
  #payment-edit-backdrop { transition:none!important; }
}

@media (min-width:721px) and (prefers-reduced-motion:reduce) {
  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .plan-form.unified-plan-drawer:not(.event-editor-popover),
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ),
  .live-preview,
  .room-flow-dialog,
  .overview-basics-backdrop,
  .stay-editor-backdrop,
  .plan-form-backdrop,
  .people-drawer-backdrop,
  .payment-detail-backdrop,
  .payment-composer-backdrop,
  .link-form-backdrop { animation:none!important; transition:none!important; }
}

/* Modal accessibility and mobile isolation. */
.preview-shell { z-index:1200; }

:is(
  #trip-basics-form.overview-basics-drawer,
  .stay-editor,
  .plan-form.unified-plan-drawer:not(.event-editor-popover),
  .people-drawer,
  .payment-detail-drawer,
  .payment-composer,
  .payment-inline-editor,
  .link-form-drawer,
  .live-preview,
  .room-flow-dialog,
  .confirm-dialog
) button { min-height:44px; }

:is(
  #trip-basics-form.overview-basics-drawer,
  .stay-editor,
  .plan-form.unified-plan-drawer:not(.event-editor-popover),
  .people-drawer,
  .payment-detail-drawer,
  .payment-composer,
  .payment-inline-editor,
  .link-form-drawer,
  .live-preview,
  .room-flow-dialog
) :is(
  .overview-basics-close,
  .stay-editor-close,
  .plan-close,
  .people-drawer-close,
  .payment-composer-close,
  #close-payment-detail,
  .link-drawer-close,
  #close-preview,
  #room-flow-close
) { min-width:44px; min-height:44px; }

:is(
  .stay-type-choice .choice-cards label,
  .plan-type-choice span,
  .plan-status-choice span,
  .people-role-choice span,
  .people-sharing-choice span,
  .link-kind-choice label,
  .yes-no-toggle span
) { min-height:44px; }

.room-inline-editor { grid-template-columns:minmax(110px,1fr) 44px 44px; max-width:320px; }
.room-inline-editor button { width:44px; height:44px; min-height:44px; }
.live-preview :is(a.preview-row,.preview-contact a,.preview-meal-links a) { min-height:44px; }
.preview-contact a { display:inline-flex; align-items:center; }

@media (prefers-reduced-motion:reduce) {
  .live-preview { animation:none!important; transition:none!important; }
}

/* --------------------------------------------------------------------------
   Crisp coastal organizer system
   Scoped to the organizer shell and its non-Itinerary workspaces. Itinerary's
   calendar, discovery tools, and plan editor intentionally keep their current
   component styling.
   -------------------------------------------------------------------------- */

body.organizer-editor-open {
  --canvas:#f4f7f6;
  --surface:#fff;
  --surface-soft:#edf5f3;
  --surface-warm:#fff7ef;
  --ink:#123634;
  --ink-muted:#526e6b;
  --line:#d4e1de;
  --primary:#08645f;
  --primary-hover:#07534f;
  --accent:#e77d67;
  --saved:#238678;
  --saved-bg:#e8f5f1;
  --review:#9a6725;
  --review-bg:#fff4dc;
  --danger:#c76351;
  --danger-bg:#fff0ec;
  --organizer-radius-sm:12px;
  --organizer-radius-md:18px;
  --organizer-radius-lg:22px;
  --organizer-shadow:0 16px 38px rgba(18,54,52,.07);
  background:var(--canvas);
}

.organizer-canvas .editor-panel[data-editor-panel="itinerary"] {
  --canvas:#fbfaf7;
  --surface:#fff;
  --surface-soft:#f2f8f6;
  --surface-warm:#fff7f2;
  --ink:#123130;
  --ink-muted:#56706f;
  --line:#dce5e2;
  --primary:#066460;
  --primary-hover:#075451;
  --accent:#ef856f;
  --saved:#248879;
  --saved-bg:#eaf7f2;
  --danger:#c96856;
  --danger-bg:#fff0ec;
}

body.organizer-editor-open .organizer-shell,
body.organizer-editor-open .organizer-canvas { background:var(--canvas); }

body:is(.overview-basics-open,.stay-editor-open,.people-drawer-open,.payment-composer-open,.payment-detail-open,.payment-edit-open,.link-drawer-open) .organizer-canvas .editor-panel.is-active {
  animation:none!important;
  transform:none!important;
}

body.organizer-editor-open .organizer-sidebar {
  border-right-color:var(--line);
  padding:1.25rem .9rem max(1rem,env(safe-area-inset-bottom));
  box-shadow:8px 0 30px rgba(18,54,52,.025);
}
.organizer-sidebar-header { padding-inline:.65rem; }
.organizer-brand { font-size:1rem; letter-spacing:-.025em; }
.organizer-back { margin-bottom:.9rem; color:var(--primary); }
.organizer-sidebar .editor-nav { gap:.3rem; }
.organizer-sidebar .editor-nav button,
.organizer-sidebar-utilities button {
  min-height:48px;
  border-radius:12px;
  padding:.7rem .8rem;
  color:#516966;
  font-size:.8rem;
}
.organizer-sidebar .editor-nav button:hover,
.organizer-sidebar-utilities button:hover { background:#f4f8f7; color:var(--primary); }
.organizer-sidebar .editor-nav button.is-active {
  background:var(--surface-soft);
  box-shadow:inset 0 0 0 1px rgba(8,100,95,.035);
  color:var(--primary);
}
.organizer-sidebar .editor-nav button.is-active::before { inset:9px auto 9px -15px; width:4px; }
.organizer-account-toggle { border-radius:12px; }

.organizer-canvas .editor-workspace {
  padding:clamp(2rem,3.2vw,3.5rem) clamp(1.75rem,3.6vw,4rem) 4.5rem;
}
.organizer-canvas .editor-panel:is(
  [data-editor-panel="overview"],
  [data-editor-panel="stay"],
  [data-editor-panel="people"],
  [data-editor-panel="payments"],
  [data-editor-panel="links"]
) { width:min(100%,1440px); max-width:1440px; }
.organizer-canvas .editor-panel[data-editor-panel="stay"],
.organizer-canvas .editor-panel[data-editor-panel="links"] { width:min(100%,1200px); }
.organizer-canvas .editor-panel[data-editor-panel="people"],
.organizer-canvas .editor-panel[data-editor-panel="payments"] { width:min(100%,1360px); }

/* One compact page-header rhythm across the organizer. */
.overview-page-header,
.stay-panel-intro,
.people-panel-intro,
.payment-page-header,
.links-page-header {
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)!important;
  align-items:end!important;
  gap:clamp(2rem,5vw,5rem)!important;
  max-width:none!important;
  margin:0!important;
  border-bottom:1px solid var(--line)!important;
  padding:.15rem 0 clamp(1.5rem,2.6vw,2.15rem)!important;
}
:is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) > :first-child {
  display:grid;
  min-width:0;
  gap:.65rem;
}
:is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) .eyebrow {
  margin:0;
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
:is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2 {
  max-width:880px!important;
  margin:0!important;
  color:var(--ink)!important;
  font-family:inherit!important;
  font-size:clamp(3rem,4vw,3.65rem)!important;
  font-weight:830!important;
  letter-spacing:-.062em!important;
  line-height:.96!important;
}
.overview-page-header > p,
.stay-panel-intro > p,
.people-panel-intro > p,
.links-page-header > div > p:last-child,
.payment-page-intro > p {
  max-width:480px!important;
  margin:0!important;
  color:var(--ink-muted)!important;
  font-size:.94rem!important;
  line-height:1.58!important;
}
.payment-page-intro { gap:1rem; padding:0; }
.links-page-header { grid-template-columns:minmax(0,1fr) auto!important; }
.links-page-header > div { max-width:850px; }

/* Overview: only the next action earns elevation. */
.overview-command-grid {
  grid-template-areas:"basics next";
  grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);
  align-items:start;
  gap:1.25rem;
  margin:1.5rem 0 clamp(3rem,5vw,4.5rem);
}
.overview-next-up {
  min-height:0;
  border-radius:var(--organizer-radius-md);
  padding:clamp(1.25rem,2vw,1.65rem);
  background:var(--surface-warm);
  box-shadow:var(--organizer-shadow);
}
.overview-basics-panel {
  border-radius:var(--organizer-radius-md);
  padding:clamp(1.25rem,2vw,1.65rem);
  background:var(--surface);
  box-shadow:none;
}
.overview-next-up.is-clear { background:var(--surface-soft); box-shadow:none; }
.overview-next-copy h3 { font-size:clamp(1.45rem,2vw,1.9rem); }
.overview-workspace-heading h3 { font-size:clamp(1.3rem,1.8vw,1.6rem); }
.overview-section-row {
  min-height:62px;
  grid-template-columns:minmax(125px,.42fr) minmax(240px,1.5fr) minmax(130px,auto) 28px;
  padding:.85rem .2rem;
}
.overview-section-row:hover { padding-inline:.75rem; background:#eef6f4; }
.overview-row-copy { font-size:.78rem; }

@media (max-width:899px) {
  .overview-command-grid {
    grid-template-areas:"next" "basics";
    grid-template-columns:minmax(0,1fr);
  }
}

/* Stay: a centered, bounded brief rather than an undersized left column. */
.stay-panel-intro { margin-bottom:1.5rem!important; }
.stay-brief { width:100%; max-width:1120px; margin-inline:auto; }
.stay-brief-content,
.stay-empty-state,
.stay-separate-state {
  border:1px solid var(--line);
  border-radius:var(--organizer-radius-md);
  padding:clamp(1.35rem,2.6vw,2rem);
  background:var(--surface);
  box-shadow:none;
}
.stay-empty-state,.stay-separate-state { margin-top:1.5rem; }
.stay-brief-heading { padding-bottom:1.35rem; }
.stay-brief-heading h3 { font-size:clamp(1.8rem,2.6vw,2.45rem); }
.stay-brief-heading p { font-size:.94rem; }
.stay-brief-section { padding:1.25rem 0; }
.stay-brief-section:last-child { padding-bottom:0; }
.stay-direction-actions a { border-radius:var(--organizer-radius-sm); }

/* People: structured list rows with quieter repeated warnings. */
.people-panel-intro { margin-bottom:0!important; }
.people-subnav,.people-subpanel { width:100%; max-width:1360px; }
.people-subnav { margin-bottom:2rem; }
.people-roster-toolbar { padding-bottom:1rem; }
.people-roster-toolbar h3 { font-size:clamp(1.55rem,2.1vw,1.95rem); }
.person-row-button {
  min-height:80px;
  grid-template-columns:44px minmax(220px,.78fr) minmax(0,1.5fr) 32px;
  padding:.8rem .35rem;
}
.person-row-button:hover,.person-row-button:focus-visible { background:var(--surface-soft); }
.person-row-statuses { gap:.4rem .85rem; }
.person-row-status { font-size:.67rem; }
.person-row-status.is-missing {
  border-radius:999px;
  padding:.28rem .48rem .28rem .34rem;
  background:var(--review-bg);
  color:var(--review);
}
.person-row-status.is-missing i { color:var(--review); }
.people-empty-state { border-style:solid; background:var(--surface-soft); }

/* Shared Costs: compact totals and a calmer ledger. */
.payment-metrics {
  margin:1.5rem 0 2.35rem;
  border-radius:var(--organizer-radius-md);
  box-shadow:none;
}
.payment-metric { min-height:112px; padding:1rem clamp(1rem,1.7vw,1.4rem); }
.payment-metric > strong { font-size:clamp(1.65rem,2.5vw,2.3rem); }
.payment-metric.is-count > strong { font-size:2.4rem; }
.payment-metric.is-outstanding { background:#fff9f4; }
.payment-metric.is-collected { background:#f4faf8; }
.payment-metric.is-outstanding::before,.payment-metric.is-collected::before { height:2px; }
.payment-ledger-heading { padding-bottom:1rem; }
.payment-ledger-heading h3 { font-size:clamp(1.6rem,2.4vw,2.05rem); }
.payment-ledger-columns { background:#f7faf9; }
.payment-ledger-row { min-height:72px; padding-block:.8rem; }
.payment-ledger-row:hover,.payment-ledger-row:focus-visible,.payment-ledger-item.is-selected .payment-ledger-row { background:var(--surface-soft); }
.payment-detail-summary dl { border-radius:var(--organizer-radius-sm); }
.payment-detail-progress { background:var(--surface-soft); }

/* Useful Links: useful empty states and less instructional chrome. */
.links-page { width:100%; max-width:1200px; padding-bottom:3rem; }
.links-calendar-note {
  margin:1rem 0 2.25rem;
  border:0;
  border-radius:var(--organizer-radius-sm);
  padding:.7rem .85rem;
  background:var(--surface-soft);
}
.link-groups { gap:2.25rem; }
.link-group h3 { font-size:clamp(1.45rem,1.9vw,1.75rem); }
.link-list-empty {
  display:flex;
  min-height:84px;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:1rem .15rem;
}
.link-list-empty p { max-width:620px; margin:0; color:var(--ink-muted); font-size:.82rem; line-height:1.5; }
.link-list-empty button {
  min-height:44px;
  flex:none;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.6rem .85rem;
  background:var(--surface);
  color:var(--primary);
  font-size:.7rem;
  font-weight:820;
}
.link-list-empty button:hover,.link-list-empty button:focus-visible { border-color:var(--primary); background:var(--surface-soft); }

/* Content-sized desktop modals with one independently scrolling body. */
@media (min-width:721px) {
  :is(
    #trip-basics-form.overview-basics-drawer,
    .stay-editor,
    .people-drawer,
    .payment-detail-drawer,
    .payment-composer,
    .payment-inline-editor,
    .link-form-drawer
  ) {
    height:auto!important;
    max-height:min(82dvh,820px)!important;
    border-radius:var(--organizer-radius-lg)!important;
    background:var(--surface)!important;
    box-shadow:0 28px 78px rgba(18,54,52,.26)!important;
  }
  #trip-basics-form.overview-basics-drawer,
  .people-drawer,
  .link-form-drawer { --organizer-modal-width:660px; }
  .stay-editor,.payment-composer,.payment-inline-editor { --organizer-modal-width:760px; }
  .payment-detail-drawer { --organizer-modal-width:820px; }
  .stay-editor,.people-drawer,.payment-detail-drawer,.payment-composer { min-height:min(620px,82dvh); }
  .overview-basics-drawer-header,.people-drawer-header,.link-drawer-header,
  .stay-editor-header,.payment-detail-header,.payment-composer-header,.payment-edit-heading {
    padding:1.15rem 1.25rem 1rem!important;
    background:var(--surface)!important;
  }
  :is(.overview-basics-drawer-header,.people-drawer-header,.link-drawer-header,.stay-editor-header,.payment-detail-header,.payment-composer-header,.payment-edit-heading) h3 {
    font-size:clamp(1.45rem,2.2vw,1.85rem)!important;
  }
  .overview-basics-drawer-body,.people-drawer-body,.link-drawer-body,
  .stay-editor-body,.payment-detail-body,.payment-composer-body,.payment-edit-grid {
    padding:1.1rem 1.25rem 1.5rem!important;
  }
  .overview-basics-drawer-section,.people-drawer-section,.payment-edit-section { padding-block:1rem!important; }
  .overview-basics-drawer-section:first-child,.people-drawer-section:first-child { padding-top:0!important; }
  .overview-basics-drawer-footer,.people-drawer-footer,.link-drawer-actions,
  .stay-editor-actions,.payment-detail-actions,.payment-composer-actions,.payment-edit-actions {
    min-height:68px!important;
    padding:.75rem 1.25rem!important;
    background:rgba(255,255,255,.97)!important;
  }
  .stay-editor-steps,.payment-composer-steps { padding:.4rem 1.25rem .7rem; }
  .stay-editor-steps button,.payment-composer-steps button { min-height:48px; }
  .link-kind-choice label { min-height:88px; border-radius:var(--organizer-radius-sm); }
  .link-drawer-body textarea { min-height:96px; }
}

@media (max-width:1050px) {
  .overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header {
    grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)!important;
    gap:2.5rem!important;
  }
  :is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2 {
    font-size:clamp(2.75rem,5vw,3.35rem)!important;
  }
}

@media (max-width:760px) {
  .overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header {
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:.85rem!important;
  }
  :is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2 {
    font-size:clamp(2.35rem,9vw,3rem)!important;
  }
  .links-page-header .link-add-button { width:100%; }
  .overview-command-grid { grid-template-areas:"next" "basics"; grid-template-columns:1fr; }
  .overview-next-up { min-height:0; }
  .person-row-statuses { justify-content:flex-start; }
}

@media (max-width:720px) {
  body.organizer-editor-open .organizer-canvas { background:#f6f8f7; }
  .organizer-canvas .editor-workspace { padding:1.25rem 1rem 3rem; }
  .overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header { padding-bottom:1.2rem!important; }
  :is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2 {
    font-size:clamp(2.25rem,10.5vw,2.85rem)!important;
    line-height:.98!important;
  }
  .overview-command-grid { margin:1rem 0 2.8rem; }
  .overview-next-up,.overview-basics-panel,.stay-brief-content,.stay-empty-state,.stay-separate-state { border-radius:16px; }
  .overview-section-row { min-height:0; }
  .stay-brief-content { padding:1.15rem; }
  .person-row-button { grid-template-columns:42px minmax(0,1fr) 24px; }
  .person-row-statuses { grid-column:2; }
  .payment-metric { min-height:96px; }
  .payment-metric:first-child { min-height:112px; }
  .link-list-empty { display:grid; justify-items:start; }
  .link-list-empty button { padding-inline:0; border:0; background:transparent; }
}

@media (max-width:620px) {
  .overview-section-row {
    min-height:0;
    grid-template-columns:minmax(0,1fr) 24px;
    grid-template-rows:auto auto auto;
    gap:.3rem .65rem;
    padding:.85rem .1rem;
  }
  .overview-section-row > strong { grid-column:1; grid-row:1; }
  .overview-row-copy { grid-column:1 / -1; grid-row:2; }
  .overview-row-status { grid-column:1; grid-row:3; justify-self:start; margin-top:.15rem; text-align:left; }
  .overview-row-arrow { grid-column:2; grid-row:1; align-self:center; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-section-row,.person-row-button,.link-list-empty button { transition:none!important; }
}

/* Modern shell correction: perceptible navigation hue and compact page type. */
body.organizer-editor-open {
  --canvas:#f7f9f8;
  --nav-surface:#e8f0ee;
  --nav-active:#d6e6e2;
}

body.organizer-editor-open .organizer-sidebar {
  border-right-color:#cadbd7;
  background:var(--nav-surface);
  box-shadow:none;
}
.organizer-sidebar .editor-nav button:hover,
.organizer-sidebar-utilities button:hover { background:rgba(255,255,255,.52); }
.organizer-sidebar .editor-nav button.is-active {
  background:var(--nav-active);
  box-shadow:inset 0 0 0 1px rgba(8,100,95,.06);
}
.organizer-back,
.organizer-sidebar-utilities,
.organizer-account { border-color:#cfdfdb; }
.organizer-avatar { background:rgba(255,255,255,.68); }

:is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2 {
  font-size:clamp(2.5rem,3.4vw,3.1rem)!important;
  letter-spacing:-.055em!important;
  line-height:1!important;
}

.organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .itinerary-page-header {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:2rem!important;
  max-width:none!important;
  margin:0 0 1.25rem!important;
  border-bottom:1px solid var(--line);
  padding:.15rem 0 1.5rem!important;
}
.itinerary-page-header > div:first-child { display:grid; min-width:0; gap:.65rem; }
.itinerary-page-header .eyebrow {
  margin:0!important;
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .itinerary-page-header h2 {
  max-width:780px!important;
  margin:0!important;
  color:var(--ink);
  font-family:inherit;
  font-size:clamp(2.5rem,3.4vw,3.1rem)!important;
  font-weight:830!important;
  letter-spacing:-.055em!important;
  line-height:1!important;
}
.itinerary-page-header .calendar-builder-actions { align-self:end; }
.itinerary-page-header .calendar-add-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; }
.itinerary-page-header .calendar-add-actions button { min-height:44px; }
.itinerary-page-header + .planner-schema-note + .itinerary-builder-message + .itinerary-workspace-tabs { margin-top:0; }
.calendar-view { padding-top:.35rem; }

@media (max-width:1050px) {
  :is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .itinerary-page-header h2 {
    font-size:clamp(2.4rem,4.6vw,2.9rem)!important;
  }
}

@media (max-width:720px) {
  body.organizer-editor-open .organizer-sidebar { background:var(--nav-surface); }
  :is(.overview-page-header,.stay-panel-intro,.people-panel-intro,.payment-page-header,.links-page-header) h2,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .itinerary-page-header h2 {
    font-size:clamp(2.15rem,9vw,2.6rem)!important;
    letter-spacing:-.048em!important;
  }
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .itinerary-page-header {
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:1rem!important;
    margin-bottom:.75rem!important;
    padding-bottom:1.15rem!important;
  }
  .itinerary-page-header .calendar-builder-actions,
  .itinerary-page-header .calendar-add-actions { width:100%; }
  .itinerary-page-header .calendar-add-actions { display:grid; grid-template-columns:1fr 1fr; }
  .itinerary-page-header .calendar-add-actions button { width:100%; }
}

/* Refined Overview command center */
.editor[data-active-section="overview"] .organizer-canvas { background:#f5f7f6; }
.organizer-canvas .editor-panel[data-editor-panel="overview"] {
  width:min(100%,1320px);
  max-width:1320px;
  margin:0 auto;
}
.overview-page-header {
  display:block!important;
  border-bottom:1px solid var(--line)!important;
  padding:.15rem 0 1.35rem!important;
}
.overview-page-header > div { display:grid; max-width:720px; gap:.42rem; }
.overview-page-header h2 {
  max-width:700px!important;
  font-size:clamp(2.4rem,3.3vw,2.85rem)!important;
  letter-spacing:-.052em!important;
  line-height:1!important;
}
.overview-page-header > div > p:last-child {
  max-width:620px;
  margin:0;
  color:var(--ink-muted);
  font-size:.9rem;
  line-height:1.5;
}
.overview-command-grid {
  grid-template-areas:"basics next";
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);
  align-items:stretch;
  gap:1.25rem;
  margin:1.35rem 0 2.35rem;
}
.overview-next-up {
  min-height:276px;
  grid-template-rows:minmax(0,1fr) auto;
  align-self:stretch;
  gap:1rem;
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:15px;
  padding:1.65rem;
  background:var(--surface);
  box-shadow:0 9px 24px rgba(18,49,48,.035);
}
.overview-next-up.is-clear {
  border-color:var(--line);
  border-left-color:var(--saved);
  background:var(--surface);
}
.overview-next-copy { gap:.55rem; }
.overview-next-copy .eyebrow { color:var(--accent); }
.overview-next-copy .eyebrow > span { color:inherit; font-size:.94em; }
.overview-next-state { min-height:25px; gap:.4rem; font-size:.65rem; }
.overview-next-state i { width:22px; height:22px; }
.overview-next-copy h3 {
  margin:.08rem 0 0;
  font-size:clamp(1.45rem,2vw,1.75rem);
  letter-spacing:-.043em;
  line-height:1.08;
}
.overview-next-copy > p:not(.eyebrow) { font-size:.8rem; line-height:1.5; }
.overview-next-action {
  width:max-content;
  min-height:44px;
  border-radius:10px;
  padding:.68rem .95rem;
  font-size:.72rem;
  text-align:center;
}
.overview-basics-panel {
  min-height:276px;
  grid-template-rows:auto 1fr;
  border-radius:15px;
  padding:1.65rem;
  box-shadow:0 9px 24px rgba(18,49,48,.025);
}
.overview-workspace-heading h3 { font-size:1.35rem; letter-spacing:-.035em; line-height:1.1; }
.overview-edit-basics { border-radius:9px; padding:.62rem .85rem; }
.overview-basics-summary { margin-top:1.35rem; border-top:0; }
.overview-basics-summary dl {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:1.45rem 2rem;
  margin:0;
}
.overview-basics-summary dl > div { min-width:0; border:0; padding:0; }
.overview-basics-summary dt {
  margin:0 0 .48rem;
  color:var(--ink-muted);
  font-size:.64rem;
  font-weight:880;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-basics-summary dd {
  margin:0;
  overflow-wrap:anywhere;
  color:var(--ink);
  font-size:.92rem;
  font-weight:760;
  letter-spacing:-.012em;
  line-height:1.35;
}
.overview-basics-summary .is-empty dd { color:var(--ink-muted); font-weight:620; }
.overview-sections-heading { display:block; margin-bottom:.65rem; border-bottom:0; padding:0; }
.overview-sections-heading h3 { font-size:1.5rem; }
.overview-section-list {
  display:block;
  border-top:1px solid var(--line);
}
.overview-status-group + .overview-status-group { border-top:1px solid var(--line); }
.overview-status-group > h4 {
  margin:0;
  border-bottom:1px solid var(--line);
  padding:.82rem .1rem;
  color:var(--ink-muted);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-status-group.is-attention > h4 { color:var(--accent); }
.overview-status-group.is-ready > h4 { color:var(--saved); }
.overview-status-group > h4 span { color:inherit; }
.overview-status-group > div { border-top:0; }
.overview-section-row {
  min-height:62px;
  grid-template-columns:34px minmax(120px,160px) minmax(0,1fr) 24px;
  gap:.8rem;
  border-bottom:1px solid var(--line);
  padding:.68rem .1rem;
  transition:background .2s ease;
}
.overview-status-group > div > .overview-section-row:last-child { border-bottom:0; }
.overview-status-group.is-attention .overview-section-row { min-height:68px; }
.overview-section-row:hover { padding:.68rem 1.15rem; background:var(--surface-soft); }
.overview-row-icon { display:grid; width:32px; height:32px; place-items:center; color:var(--ink); }
.overview-row-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.65; }
.overview-row-label { min-width:0; font-size:.88rem; font-weight:820; letter-spacing:-.012em; }
.overview-row-summary { display:grid; min-width:0; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:.7rem; }
.overview-row-summary > span { display:flex; min-width:0; align-items:baseline; gap:.45rem; overflow-wrap:anywhere; }
.overview-row-summary strong { color:var(--ink-muted); font-size:.74rem; font-weight:760; }
.overview-row-summary small { color:var(--ink-muted); font-size:.7rem; line-height:1.4; }
.overview-row-summary small::before { margin-right:.45rem; content:"·"; }
.overview-row-summary em { color:var(--ink); font-size:.75rem; font-style:normal; font-weight:850; white-space:nowrap; }
.overview-row-summary em.is-attention { color:#b65343; }
.overview-row-arrow { justify-self:end; color:var(--primary); font-size:1.08rem; transition:transform .2s ease; }
.overview-section-row:hover .overview-row-arrow { transform:translateX(3px); }
.overview-edit-basics:focus-visible,
.overview-next-action:focus-visible,
.overview-section-row:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent); outline-offset:-2px; }

@media (max-width:899px) {
  .overview-command-grid { grid-template-areas:"next" "basics"; grid-template-columns:minmax(0,1fr); }
  .overview-next-up,.overview-basics-panel { width:100%; min-height:0; }
}

@media (max-width:760px) {
  .overview-page-header h2 { font-size:clamp(2.25rem,7vw,2.65rem)!important; }
  .overview-page-header > div > p:last-child { max-width:620px; font-size:.84rem; }
}

@media (max-width:620px) {
  .overview-page-header { padding-bottom:1.05rem!important; }
  .overview-page-header h2 { font-size:clamp(2.08rem,10.8vw,2.5rem)!important; }
  .overview-command-grid { gap:.75rem; margin:.9rem 0 2.2rem; }
  .overview-next-up { gap:.9rem; min-height:0; border-radius:13px; padding:1.05rem; }
  .overview-next-copy h3 { font-size:clamp(1.4rem,6.6vw,1.7rem); }
  .overview-next-copy > p:not(.eyebrow) { font-size:.78rem; }
  .overview-next-action { width:max-content; }
  .overview-basics-panel { min-height:0; border-radius:13px; padding:1.05rem; }
  .overview-basics-summary dl {
    grid-template-columns:minmax(0,1fr);
    gap:1rem;
  }
  .overview-basics-summary dl > div,
  .overview-basics-summary dl > div:nth-child(even) { border:0; padding:0; }
  .overview-sections-heading h3 { font-size:1.35rem; }
  .overview-status-group > h4 { padding:.68rem .1rem; }
  .overview-section-row {
    min-height:78px;
    grid-template-columns:32px minmax(0,1fr) 22px;
    grid-template-rows:auto auto;
    gap:.28rem .65rem;
    padding:.75rem .1rem;
  }
  .overview-status-group.is-attention .overview-section-row { min-height:82px; }
  .overview-section-row:hover { padding:.75rem .85rem; }
  .overview-row-icon { grid-column:1; grid-row:1 / 3; align-self:start; }
  .overview-row-label { grid-column:2; grid-row:1; }
  .overview-row-summary { grid-column:2 / 4; grid-row:2; grid-template-columns:minmax(0,1fr); gap:.22rem; }
  .overview-row-summary > span { display:block; }
  .overview-row-summary small { display:inline; }
  .overview-row-summary em { justify-self:start; }
  .overview-row-arrow { grid-column:3; grid-row:1 / 3; align-self:center; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-section-row,.overview-row-arrow,.overview-map-marker { transition:none!important; animation:none!important; }
}

/* Overview map hub */
.overview-dashboard-layout {
  display:grid;
  min-width:0;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);
  grid-template-areas:
    "basics map"
    "status-heading status-heading"
    "attention attention"
    "ready ready"
    "optional optional";
  align-items:stretch;
  gap:0 1.25rem;
  margin:1.35rem 0 0;
}
.overview-dashboard-layout > .overview-basics-panel { grid-area:basics; min-height:350px; }
.overview-dashboard-layout > .overview-map-panel { grid-area:map; }
.overview-dashboard-layout > .overview-sections,
.overview-dashboard-layout .overview-section-list { display:contents; }
.overview-dashboard-layout .overview-sections-heading { grid-area:status-heading; margin:2.5rem 0 .65rem; }
.overview-dashboard-layout .overview-status-group.is-attention { grid-area:attention; }
.overview-dashboard-layout .overview-status-group.is-ready { grid-area:ready; }
.overview-dashboard-layout .overview-status-group.is-optional { grid-area:optional; }

.overview-map-panel {
  display:grid;
  min-width:0;
  min-height:350px;
  grid-template-rows:auto auto minmax(220px,1fr);
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
  box-shadow:0 9px 24px rgba(18,49,48,.025);
}
.overview-map-heading {
  display:flex;
  min-width:0;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.25rem 1.35rem .9rem;
}
.overview-map-heading > div { display:grid; min-width:0; gap:.28rem; }
.overview-map-heading .eyebrow { margin:0; }
.overview-map-heading h3 { margin:0; font-size:1.35rem; letter-spacing:-.035em; line-height:1.1; }
.overview-map-status {
  max-width:180px;
  color:var(--ink-muted);
  font-size:.66rem;
  font-weight:700;
  line-height:1.35;
  text-align:right;
}
.overview-map-filters {
  display:flex;
  min-width:0;
  overflow-x:auto;
  gap:.35rem;
  border-top:0;
  border-bottom:1px solid var(--line);
  padding:.28rem .65rem;
  scrollbar-width:none;
}
.overview-map-filters::-webkit-scrollbar { display:none; }
.overview-map-filters[hidden] { display:none; }
.overview-map-filter-group { display:flex; flex:none; gap:.12rem; }
.overview-map-filter-group + .overview-map-filter-group { border-left:0; padding-left:.28rem; }
.overview-map-filter-group button {
  min-height:44px;
  border:1px solid transparent;
  border-radius:999px;
  padding:.3rem .58rem;
  background:transparent;
  color:var(--ink-muted);
  font:inherit;
  font-size:.7rem;
  font-weight:780;
  white-space:nowrap;
  cursor:pointer;
}
.overview-map-filter-group button[aria-pressed="true"] { border-color:color-mix(in srgb,var(--primary) 12%,var(--line)); background:var(--surface-soft); color:var(--primary); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 4%,transparent); }
.overview-map-filter-group button:hover { color:var(--primary); }
.overview-map-filter-group button:focus-visible,
.overview-map-fallback-actions button:focus-visible,
.overview-map-popover button:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent); outline-offset:2px; }
.overview-map-viewport,
.overview-map-fallback { min-width:0; min-height:220px; grid-column:1; grid-row:3; }
.overview-map-viewport { background:var(--surface-soft); }
.overview-map-fallback {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-content:center;
  gap:.85rem;
  padding:1.25rem 1.35rem;
  background:
    radial-gradient(circle at 82% 24%,rgba(36,136,121,.12) 0 3px,transparent 4px),
    radial-gradient(circle at 28% 72%,rgba(239,133,111,.14) 0 4px,transparent 5px),
    linear-gradient(135deg,var(--surface-soft),#f8fbfa);
}
.overview-map-fallback-mark {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border-radius:50%;
  background:var(--surface);
  color:var(--primary);
  box-shadow:0 5px 14px rgba(18,49,48,.08);
}
.overview-map-fallback-mark svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.overview-map-fallback strong { display:block; color:var(--ink); font-size:.9rem; line-height:1.3; }
.overview-map-fallback p { max-width:420px; margin:.35rem 0 0; color:var(--ink-muted); font-size:.72rem; line-height:1.5; }
.overview-map-fallback-actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.75rem; }
.overview-map-fallback-actions:empty { display:none; }
.overview-map-fallback-actions button {
  min-height:44px;
  border:1px solid var(--line);
  border-radius:9px;
  padding:.5rem .72rem;
  background:var(--surface);
  color:var(--primary);
  font:inherit;
  font-size:.68rem;
  font-weight:820;
  cursor:pointer;
}
.overview-map-panel[data-map-state="ready"] .overview-map-fallback { display:none; }
.overview-map-panel[data-map-state="filtering"] .overview-map-fallback { display:none; }
.overview-map-panel[data-map-state="unavailable"] .overview-map-viewport,
.overview-map-panel[data-map-state="idle"] .overview-map-viewport { visibility:hidden; }
.overview-map-panel[data-map-state="loading"] .overview-map-fallback { opacity:.92; }
.overview-map-panel[data-map-state="loading"] .overview-map-fallback-mark { animation:overview-map-pulse 1.4s ease-in-out infinite; }
@keyframes overview-map-pulse { 50% { transform:translateY(-3px); box-shadow:0 9px 20px rgba(18,49,48,.13); } }

.overview-map-marker {
  position:relative;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:3px solid var(--surface);
  border-radius:50% 50% 50% 8px;
  background:var(--primary);
  color:#fff;
  box-shadow:0 5px 15px rgba(18,49,48,.28);
  transform:rotate(-45deg);
  transition:opacity .2s ease,filter .2s ease;
}
.overview-map-marker-anchor {
  display:grid;
  border:0;
  padding:0;
  background:transparent;
  font:inherit;
  cursor:pointer;
  opacity:1;
  transform:translateY(0) scale(1);
  transform-origin:50% 100%;
  transition:opacity 180ms ease,transform 220ms cubic-bezier(.2,.8,.2,1);
}
.overview-map-marker-anchor.is-filtering-out {
  opacity:0;
  transform:translateY(5px) scale(.92);
  pointer-events:none;
}
.overview-map-marker-anchor.is-filtering-in {
  opacity:0;
  transform:translateY(-4px) scale(.94);
  pointer-events:none;
}
.overview-map-marker-anchor:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 32%,transparent); outline-offset:5px; }
.overview-map-marker.is-muted { opacity:.34; filter:grayscale(.78) saturate(.38); }
.overview-map-marker.is-focused { opacity:1; filter:none; }
.overview-map-marker.is-selected {
  box-shadow:0 0 0 4px color-mix(in srgb,var(--saved) 24%,transparent),0 7px 18px rgba(18,49,48,.3);
}
.overview-map-marker:not(.is-labeled) > * { transform:rotate(45deg); }
.overview-map-marker svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.overview-map-marker.is-destination { width:30px; height:30px; background:var(--accent); }
.overview-map-marker.is-destination span { font-size:.65rem; }
.overview-map-marker.is-meal { background:#bd684f; }
.overview-map-marker.is-stay { background:var(--saved); }
.overview-map-marker.is-labeled {
  display:flex;
  width:min(184px,42vw);
  height:auto;
  min-height:46px;
  align-items:center;
  justify-content:flex-start;
  gap:.55rem;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.32rem .7rem .32rem .34rem;
  background:var(--surface);
  color:var(--ink);
  text-align:left;
  transform:none;
}
.overview-map-marker-anchor.is-popup-open .overview-map-marker.is-labeled {
  display:grid;
  width:38px;
  height:38px;
  min-height:38px;
  place-items:center;
  gap:0;
  border:3px solid var(--surface);
  border-radius:50% 50% 50% 8px;
  padding:0;
  background:var(--primary);
  color:#fff;
  transform:rotate(-45deg);
}
.overview-map-marker-anchor.is-popup-open .overview-map-marker.is-labeled.is-meal { background:#bd684f; }
.overview-map-marker-anchor.is-popup-open .overview-map-marker.is-labeled .overview-map-marker-icon {
  width:auto;
  height:auto;
  border-radius:0;
  background:transparent;
  transform:rotate(45deg);
}
.overview-map-marker-anchor.is-popup-open .overview-map-marker.is-labeled .overview-map-marker-copy { display:none; }
.overview-map-marker-icon { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:10px; background:var(--primary); color:#fff; }
.overview-map-marker.is-meal .overview-map-marker-icon { background:#bd684f; }
.overview-map-marker-icon svg { width:18px; height:18px; }
.overview-map-marker-copy { display:grid; min-width:0; gap:.1rem; }
.overview-map-marker-copy strong { overflow:hidden; font-size:.68rem; font-weight:800; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.overview-map-marker-copy small { color:var(--ink-muted); font-size:.57rem; font-weight:820; line-height:1.2; }
.overview-map-marker.is-morning .overview-map-marker-copy small { color:var(--review); }
.overview-map-marker.is-afternoon .overview-map-marker-copy small { color:var(--saved); }
.overview-map-marker.is-evening .overview-map-marker-copy small { color:#626395; }
.overview-map-popover-header {
  display:grid;
  min-width:0;
  max-width:238px;
  gap:.14rem;
  padding:0 2.15rem 0 0;
  color:var(--ink);
  font-family:inherit;
}
.overview-map-popover-header > span { color:var(--accent); font-size:.56rem; font-weight:850; letter-spacing:.1em; line-height:1.2; text-transform:uppercase; }
.overview-map-popover-header strong { font-size:1rem; letter-spacing:-.018em; line-height:1.18; }
.overview-map-popover { display:grid; min-width:0; max-width:238px; gap:.34rem; padding:.3rem 0 0; color:var(--ink); font-family:inherit; }
.overview-map-popover-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .45rem; }
.overview-map-popover-day { color:var(--ink); font-size:.65rem; font-weight:780; }
.overview-map-popover-period { display:inline-flex; min-height:20px; align-items:center; border-radius:999px; padding:.16rem .4rem; background:#eef2f1; color:var(--ink-muted); font-size:.57rem; font-weight:820; line-height:1; }
.overview-map-popover-period.is-morning { background:#fff4dc; color:#8d5d13; }
.overview-map-popover-period.is-afternoon { background:var(--saved-bg); color:var(--saved); }
.overview-map-popover-period.is-evening { background:#efeffa; color:#55588c; }
.overview-map-popover-time { color:var(--ink-muted); font-size:.62rem; font-weight:720; }
.overview-map-popover-footer {
  display:flex;
  min-width:0;
  min-height:36px;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.overview-map-popover-footer > span {
  overflow:hidden;
  color:var(--ink-muted);
  font-size:.64rem;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.overview-map-popover .overview-map-popover-action {
  display:inline-flex;
  min-height:36px;
  align-items:center;
  flex:none;
  gap:.26rem;
  border:0;
  padding:.2rem 0 .2rem .35rem;
  background:transparent;
  color:var(--primary);
  font:inherit;
  font-size:.64rem;
  font-weight:820;
  cursor:pointer;
}
.overview-map-popover-action i { font-style:normal; transition:transform .15s ease; }
.overview-map-popover-action:hover i { transform:translateX(2px); }
@media (pointer:coarse) {
  .overview-map-popover .overview-map-popover-action { min-height:44px; }
}

@media (max-width:899px) {
  .overview-dashboard-layout {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "basics"
      "map"
      "status-heading"
      "attention"
      "ready"
      "optional";
    gap:.85rem 0;
  }
  .overview-dashboard-layout > .overview-basics-panel { min-height:0; }
  .overview-dashboard-layout .overview-sections-heading { margin:1.75rem 0 0; }
  .overview-map-panel { min-height:380px; }
}

@media (max-width:720px) {
  .overview-dashboard-layout {
    grid-template-areas:
      "map"
      "basics"
      "status-heading"
      "ready"
      "optional";
    margin-top:.9rem;
  }
  .overview-dashboard-layout.has-attention {
    grid-template-areas:
      "status-heading"
      "attention"
      "map"
      "basics"
      "ready"
      "optional";
  }
  .overview-dashboard-layout .overview-sections-heading { margin:.35rem 0 0; }
  .overview-map-panel { min-height:355px; border-radius:13px; }
  .overview-map-heading { padding:1rem 1rem .8rem; }
  .overview-map-heading h3 { font-size:1.2rem; }
  .overview-map-status { max-width:130px; font-size:.62rem; }
  .overview-map-filters { padding-inline:.65rem; }
  .overview-map-viewport,.overview-map-fallback { min-height:235px; }
  .overview-map-fallback { padding:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-map-panel[data-map-state="loading"] .overview-map-fallback-mark { animation:none; }
  .overview-map-marker,
  .overview-map-marker-anchor { transition:none; }
}

/* Overview section insight strips */
.overview-sections-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
}
.overview-sections-heading > span {
  color:var(--ink-muted);
  font-size:.7rem;
  font-weight:720;
  letter-spacing:.02em;
}
.overview-insight-row {
  min-height:86px;
  grid-template-columns:34px minmax(108px,138px) minmax(270px,1.1fr) minmax(210px,.85fr) minmax(170px,.72fr) 24px;
  align-items:center;
  gap:.8rem;
  padding:.82rem .1rem;
}
.overview-status-group.is-attention .overview-insight-row { min-height:86px; }
.overview-insight-row:hover { padding:.82rem 1rem; }
.overview-insight-kpis {
  display:grid;
  min-width:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:.8rem;
}
.overview-insight-kpi {
  display:grid;
  min-width:0;
  gap:.14rem;
}
.overview-insight-kpi strong {
  overflow:hidden;
  color:var(--ink);
  font-size:.76rem;
  font-weight:790;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.overview-insight-kpi small {
  color:var(--ink-muted);
  font-size:.6rem;
  font-weight:680;
  line-height:1.25;
}
.overview-insight-kpi.is-attention strong { color:#b65343; }
.overview-insight-kpi.is-ready strong { color:var(--saved); }
.overview-insight-visual {
  display:grid;
  min-width:0;
  gap:.35rem;
  color:var(--ink-muted);
}
.overview-insight-visual small { font-size:.56rem; font-weight:670; line-height:1.2; }
.overview-insight-visual.is-empty { align-content:center; }
.overview-insight-visual.is-empty:empty { min-height:1px; }
.overview-insight-visual.is-segments > span,
.overview-insight-visual.is-progress > span {
  display:flex;
  width:100%;
  height:4px;
  overflow:hidden;
  gap:3px;
  border-radius:999px;
  background:var(--line);
}
.overview-insight-visual.is-segments i { display:block; min-width:5px; border-radius:999px; }
.overview-insight-visual.is-progress i { display:block; border-radius:999px; }
.overview-insight-visual.is-segments i.is-ready,
.overview-insight-visual.is-progress i { background:var(--saved); }
.overview-insight-visual.is-segments i.is-attention { background:var(--accent); }
.overview-insight-visual.is-checks {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.45rem;
}
.overview-insight-visual.is-checks > span {
  display:grid;
  grid-template-columns:15px minmax(0,1fr);
  align-items:center;
  gap:.25rem;
  border-bottom:3px solid var(--line);
  padding-bottom:.28rem;
}
.overview-insight-visual.is-checks i {
  display:grid;
  width:15px;
  height:15px;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:.5rem;
  font-style:normal;
  line-height:1;
}
.overview-insight-visual.is-checks .is-complete { border-color:var(--saved); color:var(--saved); }
.overview-insight-visual.is-checks .is-incomplete { color:var(--ink-muted); }
.overview-insight-visual.is-dual {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
}
.overview-insight-visual.is-dual.is-single { grid-template-columns:minmax(0,1fr); }
.overview-insight-visual.is-dual > span { display:grid; min-width:0; gap:.28rem; }
.overview-insight-visual.is-dual small { display:flex; justify-content:space-between; gap:.3rem; }
.overview-insight-visual.is-dual small b { color:var(--ink); font-weight:800; }
.overview-insight-visual.is-dual i {
  display:block;
  height:4px;
  overflow:hidden;
  border-radius:999px;
  background:var(--line);
}
.overview-insight-visual.is-dual i b { display:block; height:100%; border-radius:inherit; background:var(--saved); }
.overview-insight-action {
  justify-self:end;
  color:var(--ink-muted);
  font-size:.68rem;
  font-weight:790;
  line-height:1.35;
  text-align:right;
}
.overview-insight-action.is-attention { color:#b65343; }
.overview-insight-action.is-ready { color:var(--saved); }
.overview-insight-action.is-neutral { color:var(--primary); }

@media (max-width:1199px) {
  .overview-insight-row {
    grid-template-columns:34px minmax(96px,125px) minmax(240px,1fr) minmax(170px,.75fr) minmax(145px,.62fr) 24px;
    gap:.65rem;
  }
  .overview-insight-kpis { gap:.55rem; }
}

@media (max-width:899px) {
  .overview-insight-row {
    min-height:120px;
    grid-template-columns:34px minmax(110px,145px) minmax(0,1fr) 24px;
    grid-template-rows:auto auto;
    gap:.65rem .75rem;
  }
  .overview-status-group.is-attention .overview-insight-row { min-height:120px; }
  .overview-insight-row .overview-row-icon { grid-column:1; grid-row:1 / 3; align-self:start; }
  .overview-insight-row .overview-row-label { grid-column:2; grid-row:1; align-self:start; }
  .overview-insight-kpis { grid-column:3; grid-row:1; }
  .overview-insight-visual { grid-column:2 / 4; grid-row:2; }
  .overview-insight-action { grid-column:3; grid-row:2; align-self:end; max-width:180px; padding-left:1rem; }
  .overview-insight-row .overview-row-arrow { grid-column:4; grid-row:1 / 3; }
  .overview-insight-visual:not(.is-empty) { padding-right:190px; }
}

@media (max-width:620px) {
  .overview-sections-heading { align-items:center; }
  .overview-insight-row,
  .overview-status-group.is-attention .overview-insight-row {
    min-height:0;
    grid-template-columns:32px minmax(0,1fr) 22px;
    grid-template-rows:auto auto auto auto;
    gap:.55rem .65rem;
    padding:.9rem .1rem;
  }
  .overview-insight-row:hover { padding:.9rem .65rem; }
  .overview-insight-row .overview-row-icon { grid-column:1; grid-row:1 / 5; }
  .overview-insight-row .overview-row-label { grid-column:2; grid-row:1; font-size:.84rem; }
  .overview-insight-kpis { grid-column:2 / 4; grid-row:2; gap:.65rem; }
  .overview-insight-kpi strong { font-size:.76rem; }
  .overview-insight-kpi small { font-size:.58rem; }
  .overview-insight-visual { grid-column:2 / 4; grid-row:3; padding-right:0!important; }
  .overview-insight-action { grid-column:2; grid-row:4; justify-self:start; max-width:none; padding:0; text-align:left; }
  .overview-insight-row .overview-row-arrow { grid-column:3; grid-row:1 / 5; }
  .overview-insight-visual.is-checks { gap:.3rem; }
  .overview-insight-visual.is-checks > span { grid-template-columns:13px minmax(0,1fr); gap:.2rem; }
  .overview-insight-visual.is-checks i { width:13px; height:13px; }
}

/* People: direct record page and focused status dialogs. */
.people-person-page[hidden],
.person-status-backdrop[hidden],
.person-status-dialog[hidden] { display:none!important; }

body.person-status-open { overflow:hidden; }

.people-panel.is-person-page-open > .people-panel-intro,
.people-panel.is-person-page-open > .people-subnav,
.people-panel.is-person-page-open > .people-subpanel { display:none!important; }

.people-person-page {
  display:grid;
  width:min(100%,1360px);
  min-height:calc(100dvh - 9rem);
  grid-template-rows:auto minmax(0,1fr) auto;
  margin:0 auto;
}
.people-person-page-header {
  display:grid;
  gap:1.25rem;
  border-bottom:1px solid var(--line);
  padding:.2rem 0 1.75rem;
}
.people-person-page-header > button {
  justify-self:start;
  min-height:44px;
  border:0;
  padding:.55rem 0;
  background:transparent;
  color:var(--primary);
  font-size:.75rem;
  font-weight:850;
}
.people-person-page-header > button:hover,
.people-person-page-header > button:focus-visible { color:var(--ink); }
.people-person-page-header > div { display:grid; max-width:900px; gap:.38rem; }
.people-person-page-header span,
.person-status-header > div > span {
  color:var(--accent);
  font-size:.7rem;
  font-weight:880;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.people-person-page-header h3 {
  margin:0;
  outline:0;
  color:var(--ink);
  font-size:clamp(2.5rem,4vw,3.25rem);
  letter-spacing:-.06em;
  line-height:.96;
}
.people-person-page-header p {
  margin:0;
  color:var(--ink-muted);
  font-size:.88rem;
  line-height:1.5;
}
.people-person-page-body { min-width:0; padding:1.5rem 0 2rem; }
.person-page-detail-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 2rem;
  margin-top:1.1rem;
}
.person-page-detail-grid [data-person-detail-section="payments"] { grid-column:1 / -1; }
.people-person-page-footer {
  position:sticky;
  bottom:0;
  z-index:2;
  display:flex;
  justify-content:flex-end;
  gap:.6rem;
  border-top:1px solid var(--line);
  padding:1rem 0 max(1rem,env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--canvas) 94%,transparent);
  backdrop-filter:blur(12px);
}
.people-person-page-footer button { min-height:44px; }

.person-row {
  cursor:pointer;
  transition:background-color .15s ease;
}
.person-row:hover { background:var(--surface-soft); }
.person-row:focus-within { background:color-mix(in srgb,var(--surface-soft) 82%,var(--surface)); }
.person-row-button {
  grid-template-columns:44px minmax(0,1fr)!important;
  cursor:pointer;
}
.person-row-statuses { position:relative; z-index:1; }
.person-row-status { cursor:pointer; }
.person-row-chevron { display:none!important; }

.person-status-backdrop {
  position:fixed;
  inset:0;
  z-index:840;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  background:rgba(10,38,36,.42);
  opacity:0;
  cursor:default;
  backdrop-filter:blur(3px);
  transition:opacity .18s ease;
}
.person-status-backdrop.is-open { opacity:1; }
.person-status-dialog {
  position:fixed;
  top:50%;
  left:50%;
  z-index:850;
  display:grid;
  width:min(680px,calc(100vw - 2rem));
  max-height:min(82dvh,760px);
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--primary) 16%,var(--line));
  border-radius:24px;
  background:var(--surface);
  box-shadow:0 28px 80px rgba(9,44,42,.25);
  opacity:0;
  transform:translate(-50%,-46%) scale(.985);
  transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease;
}
.person-status-dialog.is-open { opacity:1; transform:translate(-50%,-50%) scale(1); }
.person-status-dialog.is-closing { opacity:0; transform:translate(-50%,-47%) scale(.99); }
.person-status-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:start;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:1.3rem 1.4rem 1.15rem;
}
.person-status-header > div { display:grid; min-width:0; gap:.3rem; }
.person-status-header h3 {
  margin:0;
  outline:0;
  color:var(--ink);
  font-size:clamp(1.75rem,3vw,2.15rem);
  letter-spacing:-.05em;
  line-height:1.02;
}
.person-status-header p {
  margin:.1rem 0 0;
  color:var(--ink-muted);
  font-size:.8rem;
  line-height:1.45;
}
.person-status-header > button {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--primary);
  font-size:1.25rem;
}
.person-status-header > button:hover,
.person-status-header > button:focus-visible { border-color:var(--primary); background:var(--surface-soft); }
#person-status-form {
  display:grid;
  min-height:0;
  grid-template-rows:minmax(0,1fr) auto;
}
.person-status-body {
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:1.35rem 1.4rem 1.6rem;
}
.person-status-footer {
  display:flex;
  min-height:72px;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
  border-top:1px solid var(--line);
  padding:.85rem 1.4rem max(.85rem,env(safe-area-inset-bottom));
  background:var(--surface);
}
.person-status-footer .form-message {
  min-width:0;
  flex:1;
  margin:0;
  color:#a14f3e;
  font-size:.72rem;
}
.person-status-footer button { min-height:44px; white-space:nowrap; }
.person-status-cost-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  margin-bottom:1.2rem;
}
.person-status-cost-summary > div {
  display:grid;
  min-width:0;
  gap:.28rem;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.85rem;
  background:var(--surface-soft);
}
.person-status-cost-summary span {
  color:var(--ink-muted);
  font-size:.65rem;
  font-weight:750;
}
.person-status-cost-summary strong {
  overflow:hidden;
  color:var(--ink);
  font-size:1.25rem;
  letter-spacing:-.035em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.person-status-cost-summary strong.is-unpaid { color:#b75f45; }
.person-status-room-list { display:grid; gap:.7rem; }
.person-status-room-list article {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:.85rem;
  border:1px solid var(--line);
  border-radius:16px;
  padding:1rem;
  background:var(--surface-soft);
}
.person-status-room-list article > span {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border-radius:50%;
  background:var(--surface);
  color:var(--primary);
  font-size:1.2rem;
}
.person-status-room-list article > div { display:grid; min-width:0; gap:.2rem; }
.person-status-room-list strong { color:var(--ink); font-size:1rem; }
.person-status-room-list p { margin:0; color:var(--ink); font-size:.8rem; }
.person-status-room-list small { color:var(--ink-muted); font-size:.7rem; }
.person-status-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.person-status-fields label { display:grid; gap:.45rem; color:var(--ink); font-size:.72rem; font-weight:800; }
.person-status-fields input {
  width:100%;
  min-height:48px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.72rem .8rem;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
}
.person-status-fields input:focus { border-color:var(--primary); outline:3px solid color-mix(in srgb,var(--primary) 14%,transparent); }
.person-status-publish-choice {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:.8rem;
  border:1px solid var(--line);
  border-radius:16px;
  padding:1rem;
  background:var(--surface-soft);
}
.person-status-publish-choice input { width:20px; height:20px; margin:.1rem 0 0; accent-color:var(--primary); }
.person-status-publish-choice span { display:grid; gap:.2rem; }
.person-status-publish-choice b { color:var(--ink); font-size:.85rem; }
.person-status-publish-choice small { color:var(--ink-muted); font-size:.72rem; line-height:1.4; }
.person-status-sharing-choice {
  margin:1rem 0 0;
  border:0;
  padding:0;
}
.person-status-sharing-choice[hidden] { display:none!important; }
.person-status-sharing-choice legend {
  margin-bottom:.6rem;
  color:var(--ink-muted);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.person-status-sharing-choice > div {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem;
}
.person-status-sharing-choice label {
  display:flex;
  min-height:44px;
  align-items:center;
  gap:.5rem;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.65rem .75rem;
  color:var(--ink);
  font-size:.72rem;
  font-weight:760;
}
.person-status-sharing-choice label:has(input:checked) {
  border-color:var(--primary);
  background:var(--surface-soft);
}
.person-status-sharing-choice input { accent-color:var(--primary); }

@media (max-width:720px) {
  .people-person-page { min-height:calc(100dvh - 74px); }
  .people-person-page-header { gap:.8rem; padding:0 0 1.15rem; }
  .people-person-page-header h3 { font-size:clamp(2.15rem,10vw,2.5rem); }
  .people-person-page-header p { font-size:.78rem; }
  .people-person-page-body { padding:1rem 0; }
  .person-page-detail-grid { grid-template-columns:1fr; gap:0; margin-top:.65rem; }
  .person-page-detail-grid [data-person-detail-section="payments"] { grid-column:auto; }
  .people-person-page-footer { padding:.85rem 0 max(.85rem,env(safe-area-inset-bottom)); }
  .person-row { grid-template-columns:1fr!important; }
  .person-row-button {
    min-height:68px;
    grid-template-columns:40px minmax(0,1fr)!important;
    padding:.75rem 0 .35rem;
  }
  .person-row-statuses { grid-column:1!important; padding:.1rem 0 .7rem 3.25rem; }
  .person-status-dialog {
    top:auto;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    max-height:min(82dvh,720px);
    border-width:1px 0 0;
    border-radius:24px 24px 0 0;
    transform:translateY(24px);
  }
  .person-status-dialog.is-open { transform:none; }
  .person-status-dialog.is-closing { transform:translateY(18px); }
  .person-status-header { padding:1.15rem 1rem .95rem; }
  .person-status-header h3 { font-size:clamp(1.65rem,7.5vw,2rem); }
  .person-status-body { padding:1.1rem 1rem 1.35rem; }
  .person-status-footer { flex-wrap:wrap; padding:.8rem 1rem max(.8rem,env(safe-area-inset-bottom)); }
  .person-status-footer .form-message { flex-basis:100%; }
  .person-status-cost-summary { gap:.45rem; }
  .person-status-cost-summary > div { padding:.7rem .6rem; }
  .person-status-cost-summary span { font-size:.58rem; }
  .person-status-cost-summary strong { font-size:1rem; }
  .person-status-fields,
  .person-status-sharing-choice > div { grid-template-columns:1fr; }
}

@media (max-width:420px) {
  .people-person-page-footer .button-secondary { display:none; }
  .person-status-footer { display:grid; grid-template-columns:1fr 1fr; }
  .person-status-footer .form-message { grid-column:1 / -1; }
  .person-status-footer #person-status-secondary { grid-column:1 / -1; }
  .person-status-footer #person-status-primary:only-child { grid-column:1 / -1; }
}

@media (prefers-reduced-motion:reduce) {
  .person-status-backdrop,
  .person-status-dialog,
  .person-row { transition:none!important; }
}

/* People: Add Person stays a centered task window on small screens. */
@media (max-width:720px) {
  #people-form.people-profile {
    top:50%;
    left:50%;
    width:calc(100% - 2rem);
    height:auto;
    max-height:min(82dvh,760px);
    border:1px solid color-mix(in srgb,var(--primary) 16%,var(--line));
    border-radius:24px;
    box-shadow:0 28px 80px rgba(9,44,42,.25);
    transform:translate(-50%,-46%) scale(.985);
  }
  #people-form.people-profile.is-open { transform:translate(-50%,-50%) scale(1); }
  #people-form.people-profile.is-closing { transform:translate(-50%,-47%) scale(.99); }
  #people-form .people-profile-header { padding:1.1rem 1rem .9rem; }
  #people-form .people-profile-body { padding:0 1rem; }
  #people-form .people-profile-footer { padding:.8rem 1rem max(.8rem,env(safe-area-inset-bottom)); }
}

/* Shared organizer introductions and contextual workspace actions. */
.organizer-page-header {
  display:grid!important;
  grid-template-columns:minmax(0,720px) auto!important;
  align-items:end!important;
  justify-content:space-between;
  gap:2rem!important;
  width:100%;
  max-width:none!important;
  margin:0!important;
  border-bottom:1px solid var(--line)!important;
  padding:.15rem 0 1.35rem!important;
}
.organizer-page-header > div:first-child {
  display:grid;
  min-width:0;
  gap:.42rem;
}
.organizer-page-header .eyebrow {
  margin:0!important;
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}
.organizer-page-header h2,
.organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header h2 {
  max-width:700px!important;
  margin:0!important;
  color:var(--ink)!important;
  font-family:inherit!important;
  font-size:clamp(2.4rem,3.3vw,2.85rem)!important;
  font-weight:820!important;
  letter-spacing:-.052em!important;
  line-height:1!important;
}
.organizer-page-header > div:first-child > p:last-child:not(.eyebrow) {
  max-width:620px!important;
  margin:0!important;
  color:var(--ink-muted)!important;
  font-size:.9rem!important;
  font-weight:500;
  line-height:1.5!important;
}
.organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header {
  margin:0 0 1.25rem!important;
}
.organizer-page-header .calendar-builder-actions { align-self:end; }

.payment-ledger-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.5rem;
}
.payment-ledger-heading > div {
  display:grid;
  min-width:0;
  gap:.38rem;
}
.payment-ledger-heading > div > small {
  display:block;
  max-width:520px;
  margin:.08rem 0 0;
  color:var(--ink-muted);
  font-size:.72rem;
  font-weight:500;
  line-height:1.45;
  text-align:left;
}
.payment-ledger-heading > .payment-add-expense {
  min-height:44px;
  flex:none;
  white-space:nowrap;
}

.link-group:first-child > header {
  align-items:flex-end;
  gap:1.5rem;
}
.link-group:first-child > header > div {
  display:grid;
  min-width:0;
  gap:.35rem;
}
.link-group:first-child > header > div > span {
  color:var(--ink-muted);
  font-size:.72rem;
  font-weight:700;
  line-height:1.4;
}
.link-group:first-child .link-add-button {
  min-height:44px;
  flex:none;
  white-space:nowrap;
}

@media (max-width:720px) {
  .organizer-page-header,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header {
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    gap:1rem!important;
    padding-bottom:1.15rem!important;
  }
  .organizer-page-header h2,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header h2 {
    font-size:clamp(2.15rem,9vw,2.6rem)!important;
    letter-spacing:-.048em!important;
  }
  .organizer-page-header > div:first-child > p:last-child:not(.eyebrow) {
    font-size:.84rem!important;
  }
  .organizer-page-header .calendar-builder-actions,
  .organizer-page-header .calendar-add-actions { width:100%; }
  .payment-ledger-heading,
  .link-group:first-child > header {
    display:grid;
    align-items:start;
    gap:.85rem;
  }
  .payment-ledger-heading > .payment-add-expense,
  .link-group:first-child .link-add-button { width:100%; }
}

/* Overview: compact basics, real map, and focused action rail. */
.organizer-canvas .editor-panel[data-editor-panel="overview"] {
  width:100%;
  max-width:none;
  margin:0;
}

.overview-page-header {
  padding-bottom:1.1rem!important;
}
.overview-page-header > div:first-child { gap:.34rem; }
.overview-page-header > div:first-child > p:last-child:not(.eyebrow) {
  font-size:.92rem!important;
}

.overview-basics-panel {
  display:grid;
  min-width:0;
  min-height:0;
  grid-template-columns:minmax(175px,.24fr) minmax(0,1fr);
  grid-template-rows:auto;
  gap:1rem;
  margin:1rem 0 1.35rem;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.92rem 1rem;
  background:var(--surface);
  box-shadow:0 5px 16px rgba(18,49,48,.022);
}
.overview-basics-panel .overview-workspace-heading {
  align-self:start;
  grid-template-columns:minmax(0,1fr) auto;
}
.overview-basics-panel .overview-workspace-heading h3 {
  font-size:1.16rem;
  font-weight:780;
}
.overview-basics-panel .overview-edit-basics {
  min-height:44px;
  padding:.55rem .72rem;
}
.overview-basics-summary {
  align-self:center;
  margin:0;
  border:0;
}
.overview-basics-summary dl {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.overview-basics-summary dl > div,
.overview-basics-summary dl > div:nth-child(even) {
  min-height:50px;
  border:0;
  border-left:1px solid var(--line);
  padding:.15rem 1rem;
}
.overview-basics-summary dt {
  margin:0 0 .34rem;
  font-size:.68rem;
  font-weight:820;
}
.overview-basics-summary dd {
  display:-webkit-box;
  overflow:hidden;
  font-size:.88rem;
  font-weight:680;
  letter-spacing:-.005em;
  line-height:1.35;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.overview-basics-inline-action {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  border:0;
  margin:-.55rem 0;
  padding:.45rem 0;
  background:transparent;
  color:var(--primary);
  font:inherit;
  font-weight:760;
  text-align:left;
}
.overview-basics-inline-action:hover { color:var(--primary-hover); text-decoration:underline; text-underline-offset:3px; }
.overview-basics-inline-action:focus-visible { border-radius:5px; outline:2px solid var(--primary); outline-offset:2px; }

.overview-map-attention-grid {
  display:grid;
  min-width:0;
  grid-template-columns:minmax(0,1.9fr) minmax(340px,.86fr);
  align-items:start;
  gap:1.25rem;
  margin-bottom:1.75rem;
}
.overview-map-attention-grid.is-map-only {
  grid-template-columns:minmax(0,1fr);
}
@media (min-width:900px) {
  .overview-map-attention-grid.has-single-attention {
    grid-template-columns:minmax(0,2.15fr) minmax(330px,.74fr);
  }
}
.overview-map-section,
.overview-attention-panel {
  display:grid;
  min-width:0;
  grid-template-rows:auto minmax(0,1fr);
}
.overview-attention-panel[hidden] { display:none; }
.overview-section-heading {
  display:flex;
  min-height:44px;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  padding:0 .1rem .58rem;
}
.overview-section-heading h3 {
  margin:0;
  font-size:1.5rem;
  font-weight:780;
  letter-spacing:-.035em;
  line-height:1.1;
}
.overview-attention-heading.overview-section-heading {
  min-height:44px;
  align-items:end!important;
  padding:0 .1rem .58rem!important;
}
.overview-attention-meta {
  display:flex;
  flex:none;
  align-items:center;
  gap:.32rem;
  margin:0 0 .04rem;
  color:var(--review);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.08em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-attention-meta strong { font:inherit; }

.overview-map-panel {
  width:100%;
  min-width:0;
  min-height:410px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
  box-shadow:0 9px 24px rgba(18,49,48,.035);
}
.overview-map-panel {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
}
.overview-map-panel.has-schedule {
  grid-template-columns:minmax(0,1fr) clamp(220px,27%,290px);
  transition:grid-template-columns 240ms cubic-bezier(.2,.8,.2,1);
}
.overview-map-panel.has-schedule.schedule-collapsed { grid-template-columns:minmax(0,1fr) 44px; }
@media (min-width:900px) {
  .overview-map-panel.has-schedule {
    height:410px;
    min-height:410px;
  }
}
.overview-map-filters {
  grid-column:1 / -1;
  grid-row:1;
  border-top:0;
}
.overview-map-viewport,
.overview-map-fallback {
  min-height:340px;
  grid-column:1;
  grid-row:2;
}
.overview-map-schedule {
  position:relative;
  display:block;
  min-width:0;
  min-height:0;
  grid-column:2;
  grid-row:2;
  overflow:hidden;
  border-left:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 96%,var(--surface-soft));
}
.overview-map-schedule[hidden] { display:none; }
.overview-map-schedule-toggle {
  position:absolute;
  z-index:4;
  top:0;
  right:0;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:0;
  border-left:1px solid color-mix(in srgb,var(--line) 74%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line) 74%,transparent);
  border-radius:0 0 0 10px;
  padding:0;
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  color:var(--ink-muted);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:background 150ms ease,color 150ms ease;
}
.overview-map-schedule-toggle:hover {
  background:var(--surface-soft);
  color:var(--primary);
}
.overview-map-schedule-toggle:focus-visible {
  outline:2px solid var(--primary);
  outline-offset:-3px;
}
.overview-map-schedule-toggle svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform 220ms cubic-bezier(.2,.8,.2,1);
}
.overview-map-panel.schedule-collapsed .overview-map-schedule-toggle {
  border-left:0;
  border-radius:0;
}
.overview-map-panel.schedule-collapsed .overview-map-schedule-toggle svg {
  transform:rotate(180deg);
}
.overview-map-schedule-list {
  height:100%;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-color:color-mix(in srgb,var(--ink-muted) 28%,transparent) transparent;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  transition:opacity 160ms ease,transform 220ms cubic-bezier(.2,.8,.2,1);
}
.overview-map-panel.schedule-collapsed .overview-map-schedule-list {
  visibility:hidden;
  opacity:0;
  transform:translateX(12px);
  pointer-events:none;
}
.overview-map-schedule-list::-webkit-scrollbar { width:7px; }
.overview-map-schedule-list::-webkit-scrollbar-track { background:transparent; }
.overview-map-schedule-list::-webkit-scrollbar-thumb {
  border:2px solid transparent;
  border-radius:999px;
  background:color-mix(in srgb,var(--ink-muted) 30%,transparent);
  background-clip:padding-box;
}
.overview-map-schedule-day { position:relative; }
.overview-map-schedule-day > h4 {
  position:sticky;
  z-index:2;
  top:0;
  margin:0;
  border-bottom:1px solid var(--line);
  padding:.58rem 3.4rem .5rem .85rem;
  background:color-mix(in srgb,var(--surface) 94%,var(--surface-soft));
  color:var(--ink-muted);
  font-size:.68rem;
  font-weight:860;
  letter-spacing:.09em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-map-schedule-day > p {
  margin:0;
  padding:.85rem;
  color:var(--ink-muted);
  font-size:.78rem;
}
.overview-map-schedule-period > h5 {
  margin:0;
  padding:.58rem .85rem .28rem;
  color:var(--ink-muted);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.095em;
  line-height:1.2;
  text-transform:uppercase;
}
.overview-map-schedule-period > div { padding:0 .55rem .35rem; }
.overview-map-schedule-item {
  display:grid;
  width:100%;
  min-height:54px;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);
  border-radius:9px;
  padding:.48rem .5rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
  transition:background 150ms ease,color 150ms ease,opacity 150ms ease;
}
.overview-map-schedule-item:last-child { border-bottom-color:transparent; }
.overview-map-schedule-item:hover { background:var(--surface-soft); }
.overview-map-schedule-item:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.overview-map-schedule-item.is-selected {
  background:var(--saved-bg);
  color:var(--primary);
}
.overview-map-schedule-item.is-muted { opacity:.42; }
.overview-map-schedule-item.is-muted:hover,
.overview-map-schedule-item.is-muted:focus-visible { opacity:.78; }
.overview-map-schedule-icon {
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  border-radius:8px;
  background:var(--surface-soft);
  color:var(--primary);
}
.overview-map-schedule-item.is-meal .overview-map-schedule-icon {
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
  color:var(--accent);
}
.overview-map-schedule-icon svg {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.overview-map-schedule-item > span:last-child {
  display:grid;
  min-width:0;
  gap:.16rem;
}
.overview-map-schedule-item strong {
  display:-webkit-box;
  overflow:hidden;
  font-size:.78rem;
  font-weight:760;
  letter-spacing:-.006em;
  line-height:1.3;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.overview-map-schedule-item small {
  overflow:hidden;
  color:var(--ink-muted);
  font-size:.68rem;
  font-weight:620;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.overview-map-schedule-item.is-location-missing small { color:var(--review); font-weight:740; }
.overview-map-empty {
  display:grid;
  z-index:3;
  grid-column:1;
  grid-row:2;
  place-self:center;
  gap:.12rem;
  max-width:calc(100% - 2rem);
  border:1px solid color-mix(in srgb,var(--ink) 8%,var(--line));
  border-radius:12px;
  padding:.62rem .78rem;
  background:color-mix(in srgb,var(--surface) 82%,transparent);
  box-shadow:0 4px 14px rgba(18,49,48,.06);
  text-align:center;
  pointer-events:none;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  animation:overview-map-empty-in 180ms ease-out both;
}
.overview-map-empty[hidden] { display:none; }
.overview-map-empty strong {
  color:var(--ink);
  font-size:.7rem;
  font-weight:790;
  line-height:1.3;
}
.overview-map-empty small {
  color:var(--ink-muted);
  font-size:.6rem;
  font-weight:680;
  line-height:1.35;
}
@keyframes overview-map-empty-in {
  from { opacity:0; transform:translateY(4px); }
  to { opacity:1; transform:none; }
}
.overview-map-filter-group button { min-height:44px; }

.overview-next-up {
  grid-area:auto;
  display:block;
  width:100%;
  min-width:0;
  min-height:0;
  grid-template-rows:none;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
  box-shadow:0 7px 20px rgba(18,49,48,.03);
  border-left:1px solid var(--line);
}
.overview-next-up.is-clear { border-color:var(--line); }
.overview-attention-row {
  display:grid;
  width:100%;
  min-height:86px;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:.75rem;
  border:0;
  border-bottom:1px solid var(--line);
  padding:.78rem .9rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
}
.overview-attention-row:last-child { border-bottom:0; }
.overview-attention-row:hover { background:var(--surface-soft); }
.overview-attention-row.is-primary {
  border-bottom-color:color-mix(in srgb,var(--review) 16%,var(--line));
  background:color-mix(in srgb,var(--review-bg) 70%,var(--surface));
}
.overview-attention-row.is-primary:hover { background:var(--review-bg); }
.overview-attention-icon {
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface-soft);
  color:var(--ink-muted);
}
.overview-attention-row.is-primary .overview-attention-icon {
  border-color:color-mix(in srgb,var(--accent) 28%,var(--line));
  background:color-mix(in srgb,var(--accent) 16%,var(--surface));
  color:var(--accent);
}
.overview-attention-icon svg {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.overview-attention-copy {
  display:grid;
  min-width:0;
  gap:.24rem;
}
.overview-attention-copy > strong {
  font-size:.92rem;
  letter-spacing:-.012em;
}
.overview-attention-copy > small {
  color:var(--ink-muted);
  font-size:.76rem;
  line-height:1.35;
}
.overview-attention-row > em {
  color:var(--primary);
  font-size:.75rem;
  font-style:normal;
  font-weight:820;
  text-align:right;
  white-space:nowrap;
}
.overview-attention-row > em i { margin-left:.22rem; font-style:normal; }
.overview-attention-clear {
  display:grid;
  min-height:100%;
  place-content:center;
  justify-items:center;
  gap:.65rem;
  padding:1.5rem;
  text-align:center;
}
.overview-attention-clear > span {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border-radius:50%;
  background:var(--saved-bg);
  color:var(--saved);
  font-weight:900;
}
.overview-attention-clear p { margin:0; color:var(--ink-muted); font-size:.76rem; }
.overview-attention-clear .overview-next-action { width:auto; }

.overview-sections { margin-top:0; }
.overview-sections-heading {
  margin-bottom:.45rem;
}
.overview-section-list { display:block; border-top:1px solid var(--line); }
.overview-section-row {
  display:grid;
  width:100%;
  min-height:62px;
  grid-template-columns:34px minmax(120px,160px) minmax(0,1fr) 24px;
  align-items:center;
  gap:.8rem;
  border:0;
  border-bottom:1px solid var(--line);
  padding:.68rem .1rem;
  background:transparent;
  color:var(--ink);
  text-align:left;
}
.overview-section-row:hover { padding:.68rem .1rem; background:var(--surface-soft); }
.overview-section-row:hover .overview-row-arrow { transform:none; }
.overview-row-icon { display:grid; width:32px; height:32px; place-items:center; color:var(--ink); }
.overview-row-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.65; }
.overview-row-label { min-width:0; font-size:.88rem; font-weight:820; letter-spacing:-.012em; }
.overview-row-summary { display:grid; min-width:0; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:.7rem; }
.overview-row-summary > span { display:flex; min-width:0; align-items:baseline; gap:.45rem; overflow-wrap:anywhere; }
.overview-row-summary strong { color:var(--ink-muted); font-size:.8rem; font-weight:760; }
.overview-row-summary small { color:var(--ink-muted); font-size:.76rem; line-height:1.4; }
.overview-row-summary small::before { margin-right:.45rem; content:"·"; }
.overview-row-summary em { color:var(--ink); font-size:.8rem; font-style:normal; font-weight:850; white-space:nowrap; }
.overview-row-summary em.is-attention { color:#b65343; }
.overview-row-arrow { justify-self:end; color:var(--primary); font-size:1.08rem; }
.overview-status-empty {
  margin:0;
  padding:1rem .1rem;
  color:var(--ink-muted);
  font-size:.72rem;
}

.overview-basics-fields {
  display:grid;
  min-width:0;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.overview-basics-fields > .overview-date-fields,
.overview-basics-fields > .overview-welcome-field { grid-column:1 / -1; }
.overview-basics-drawer textarea { min-height:108px; }

@media (min-width:721px) {
  #trip-basics-form.overview-basics-drawer {
    --organizer-modal-width:720px;
    --organizer-modal-height:760px;
    height:auto!important;
    max-height:min(82dvh,760px)!important;
  }
}

@media (max-width:899px) {
  .overview-basics-panel {
    grid-template-columns:minmax(0,1fr);
    gap:.75rem;
  }
  .overview-basics-summary dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .overview-basics-summary dl > div:nth-child(odd) { border-left:0; padding-left:0; }
  .overview-basics-summary dl > div:nth-child(n+3) { border-top:1px solid var(--line); padding-top:.8rem; }
  .overview-map-attention-grid { grid-template-columns:minmax(0,1fr); }
  .overview-attention-panel { grid-row:1; }
  .overview-map-section { grid-row:2; }
  .overview-map-panel,
  .overview-next-up { min-height:0; }
  .overview-map-panel,
  .overview-map-panel.has-schedule,
  .overview-map-panel.has-schedule.schedule-collapsed {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr) auto;
    transition:none;
  }
  .overview-map-schedule {
    max-height:220px;
    grid-column:1;
    grid-row:3;
    border-top:1px solid var(--line);
    border-left:0;
  }
  .overview-map-schedule-toggle { display:none; }
  .overview-map-panel.schedule-collapsed .overview-map-schedule-list {
    visibility:visible;
    opacity:1;
    transform:none;
    pointer-events:auto;
  }
  .overview-map-schedule-day > h4 { padding-right:.85rem; }
  .overview-next-up { max-height:none; }
  .overview-map-viewport,
  .overview-map-fallback { min-height:340px; }
}

@media (max-width:720px) {
  .overview-basics-fields { grid-template-columns:minmax(0,1fr); }
  .overview-basics-fields > .overview-date-fields,
  .overview-basics-fields > .overview-welcome-field { grid-column:1; }
}

@media (max-width:620px) {
  .overview-basics-panel { gap:.5rem; margin:.9rem 0 1.15rem; padding:.8rem; }
  .overview-basics-summary dl { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
  .overview-basics-summary dl > div,
  .overview-basics-summary dl > div:nth-child(even) { min-height:56px; padding:.5rem .6rem; }
  .overview-basics-summary dl > div:nth-child(odd) { padding-left:0; }
  .overview-basics-summary dl > div:nth-child(even) { padding-right:0; }
  .overview-basics-summary dd { font-size:.77rem; }
  .overview-map-attention-grid { gap:1.15rem; margin-bottom:1.8rem; }
  .overview-map-heading,
  .overview-attention-heading { min-height:48px; align-items:end; }
  .overview-section-heading h3 { font-size:1.2rem; }
  .overview-attention-meta { font-size:.58rem; }
  .overview-map-viewport,
  .overview-map-fallback { min-height:300px; }
  .overview-map-filters { padding:.25rem .5rem; }
  .overview-map-schedule { max-height:200px; }
  .overview-map-schedule-day > h4,
  .overview-map-schedule-period > h5 { padding-inline:.75rem; }
  .overview-attention-row {
    min-height:82px;
    grid-template-columns:40px minmax(0,1fr) 22px;
    gap:.65rem;
    padding:.72rem .8rem;
  }
  .overview-attention-icon { width:38px; height:38px; }
  .overview-attention-row > em { font-size:0; }
  .overview-attention-row > em i { font-size:1rem; }
  .overview-sections-heading h3 { font-size:1.25rem; }
  .overview-section-row {
    min-height:78px;
    grid-template-columns:32px minmax(0,1fr) 22px;
    grid-template-rows:auto auto;
    gap:.28rem .65rem;
    padding:.75rem .1rem;
  }
  .overview-section-row:hover { padding:.75rem .1rem; }
  .overview-row-icon { grid-column:1; grid-row:1 / 3; align-self:start; }
  .overview-row-label { grid-column:2; grid-row:1; }
  .overview-row-summary { grid-column:2; grid-row:2; grid-template-columns:minmax(0,1fr); gap:.22rem; }
  .overview-row-summary > span { display:block; }
  .overview-row-summary small { display:inline; }
  .overview-row-summary em { justify-self:start; }
  .overview-row-arrow { grid-column:3; grid-row:1 / 3; align-self:center; }
}

@media (prefers-reduced-motion:reduce) {
  .overview-map-empty { animation:none; }
  .overview-map-panel.has-schedule,
  .overview-map-schedule-list,
  .overview-map-schedule-toggle svg,
  .overview-attention-row,
  .overview-section-row,
  .overview-map-schedule-item { transition:none!important; }
}

/* Mobile organizer tab bar and More sheet */
.organizer-bottom-nav,
.mobile-more-backdrop,
.mobile-more-sheet { display:none; }
.mobile-more-backdrop[hidden],
.mobile-more-sheet[hidden] { display:none!important; }

@media (max-width:720px) {
  body.organizer-editor-open.mobile-more-open { overflow:hidden; touch-action:none; }
  .organizer-mobile-bar {
    display:flex;
    justify-content:flex-end;
    padding-right:1rem;
    padding-left:1rem;
  }
  .organizer-mobile-bar .organizer-menu-trigger { display:none; }
  #organizer-current-section { display:none; }
  .organizer-mobile-preview { min-height:44px; }
  .organizer-canvas .editor-workspace {
    padding-bottom:calc(6.25rem + env(safe-area-inset-bottom));
  }
  .organizer-canvas .notes-box {
    bottom:calc(5.25rem + env(safe-area-inset-bottom));
  }
  .itinerary-builder-message {
    bottom:calc(5.5rem + env(safe-area-inset-bottom));
  }

  .organizer-bottom-nav {
    position:fixed;
    z-index:195;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    min-height:calc(66px + env(safe-area-inset-bottom));
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:start;
    border-top:1px solid color-mix(in srgb,var(--line) 88%,transparent);
    padding:5px max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left));
    background:rgba(250,252,251,.96);
    box-shadow:0 -10px 30px rgba(18,54,52,.08);
    backdrop-filter:blur(18px) saturate(1.15);
  }
  .organizer-bottom-nav button {
    position:relative;
    display:grid;
    min-width:0;
    min-height:56px;
    place-items:center;
    align-content:center;
    gap:3px;
    border:0;
    border-radius:12px;
    padding:4px 2px;
    background:transparent;
    color:#687d7b;
    font:inherit;
    -webkit-tap-highlight-color:transparent;
  }
  .organizer-bottom-nav button::before {
    position:absolute;
    top:3px;
    width:38px;
    height:29px;
    border-radius:11px;
    background:transparent;
    content:"";
    transition:background 160ms ease,transform 160ms ease;
  }
  .organizer-bottom-nav svg {
    position:relative;
    z-index:1;
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .organizer-bottom-nav span {
    position:relative;
    z-index:1;
    overflow:hidden;
    max-width:100%;
    font-size:.68rem;
    font-weight:760;
    line-height:1.1;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .organizer-bottom-nav button:is(.is-active,[aria-current="page"]) { color:var(--primary); }
  .organizer-bottom-nav button:is(.is-active,[aria-current="page"])::before {
    background:var(--surface-soft);
    transform:scale(1.04);
  }
  .organizer-bottom-nav button:focus-visible {
    outline:2px solid var(--primary);
    outline-offset:-2px;
  }

  .mobile-more-backdrop {
    position:fixed;
    z-index:225;
    inset:0;
    display:block;
    border:0;
    background:rgba(18,49,48,.38);
    opacity:0;
    backdrop-filter:blur(3px);
    transition:opacity 180ms ease;
  }
  .mobile-more-backdrop.is-open { opacity:1; }
  .mobile-more-sheet {
    position:fixed;
    z-index:230;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    max-height:min(78dvh,680px);
    grid-template-rows:auto minmax(0,auto) auto auto;
    overflow-y:auto;
    overscroll-behavior:contain;
    border:1px solid var(--line);
    border-bottom:0;
    border-radius:24px 24px 0 0;
    padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));
    background:var(--surface);
    box-shadow:0 -24px 70px rgba(18,54,52,.2);
    opacity:0;
    transform:translateY(102%);
    transition:transform 240ms cubic-bezier(.2,.8,.2,1),opacity 180ms ease;
  }
  .mobile-more-sheet.is-open { opacity:1; transform:none; }
  .mobile-more-sheet > header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    border-bottom:1px solid var(--line);
    padding:.2rem .15rem .9rem;
  }
  .mobile-more-sheet > header .eyebrow { margin:0 0 .2rem; }
  .mobile-more-sheet > header h2 {
    margin:0;
    color:var(--ink);
    font-size:1.75rem;
    letter-spacing:-.045em;
  }
  .mobile-more-close {
    display:grid;
    width:44px;
    height:44px;
    flex:none;
    place-items:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--surface);
    color:var(--primary);
    font-size:1.35rem;
  }
  .mobile-more-sections { display:grid; padding:.35rem 0; }
  .mobile-more-sections button {
    display:grid;
    min-height:68px;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:.7rem;
    border:0;
    border-bottom:1px solid var(--line);
    padding:.6rem .15rem;
    background:transparent;
    color:var(--ink);
    text-align:left;
  }
  .mobile-more-sections button > svg {
    width:22px;
    height:22px;
    justify-self:center;
    fill:none;
    stroke:var(--primary);
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mobile-more-sections button > span { display:grid; gap:.16rem; }
  .mobile-more-sections button strong { font-size:.91rem; }
  .mobile-more-sections button small {
    color:var(--ink-muted);
    font-size:.73rem;
    line-height:1.35;
  }
  .mobile-more-sections button > b {
    color:#80918f;
    font-size:1.2rem;
    font-weight:500;
  }
  .mobile-more-sections button.is-active { color:var(--primary); }
  .mobile-more-sections button.is-active > svg {
    border-radius:11px;
    padding:8px;
    box-sizing:content-box;
    background:var(--surface-soft);
  }
  .mobile-more-utilities {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
    padding:.75rem 0;
  }
  .mobile-more-utilities button {
    display:flex;
    min-height:48px;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    border:1px solid var(--line);
    border-radius:12px;
    padding:.65rem;
    background:var(--surface-soft);
    color:var(--primary);
    font-size:.76rem;
    font-weight:800;
  }
  .mobile-more-utilities svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mobile-more-sheet > footer {
    display:flex;
    min-height:58px;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    border-top:1px solid var(--line);
    padding:.75rem .1rem 0;
  }
  .mobile-more-sheet > footer > div {
    display:flex;
    min-width:0;
    align-items:center;
    gap:.65rem;
  }
  .mobile-more-sheet > footer > div > span:last-child {
    display:grid;
    min-width:0;
    gap:.08rem;
  }
  .mobile-more-sheet > footer strong { color:var(--ink); font-size:.78rem; }
  .mobile-more-sheet > footer small {
    overflow:hidden;
    max-width:52vw;
    color:var(--ink-muted);
    font-size:.67rem;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mobile-more-sheet > footer > button {
    min-height:44px;
    border:0;
    padding:.5rem;
    background:transparent;
    color:var(--danger);
    font-size:.74rem;
    font-weight:800;
  }
  .mobile-more-sheet button:focus-visible {
    outline:2px solid var(--primary);
    outline-offset:2px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .organizer-bottom-nav button::before,
  .mobile-more-backdrop,
  .mobile-more-sheet { transition:none; }
}

/* Mobile organizer approachability pass. */
.itinerary-mobile-add-trigger,
.itinerary-mobile-add-backdrop,
.itinerary-mobile-add-sheet { display:none; }
.stay-brief-heading small {
  color:var(--ink-muted);
  font-size:.72rem;
  font-weight:650;
  line-height:1.4;
}
.stay-group-label {
  display:block;
  color:var(--ink);
  font-size:.73rem;
  font-weight:800;
}

@media (max-width:720px) {
  .organizer-canvas {
    background:#f4f7f6;
  }
  .organizer-canvas .editor-panel {
    row-gap:0;
  }
  .organizer-page-header,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header {
    gap:.75rem!important;
    margin:0 0 1.2rem!important;
    padding:.1rem 0 1rem!important;
  }
  .organizer-page-header .eyebrow {
    display:block;
    color:var(--accent);
  }
  .organizer-page-header > div:first-child { gap:.42rem; }
  .organizer-page-header h2,
  .organizer-canvas .editor-panel[data-editor-panel="itinerary"] > .organizer-page-header h2 {
    max-width:520px!important;
    font-size:clamp(2.08rem,9vw,2.35rem)!important;
    line-height:.98!important;
  }
  .organizer-page-header > div:first-child > p:last-child:not(.eyebrow) {
    max-width:520px!important;
    font-size:.84rem!important;
    line-height:1.45!important;
  }

  /* Itinerary keeps one clear creation action on a small screen. */
  .calendar-add-actions { display:none!important; }
  .itinerary-mobile-add-trigger {
    display:inline-flex;
    width:100%;
    min-height:48px;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    padding:.75rem 1rem;
    background:var(--primary);
    color:#fff;
    box-shadow:0 10px 24px rgba(6,100,96,.15);
    font-size:.86rem;
    font-weight:850;
  }
  .itinerary-mobile-add-trigger:focus-visible {
    outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);
    outline-offset:3px;
  }
  .itinerary-mobile-add-backdrop {
    position:fixed;
    z-index:235;
    inset:0;
    border:0;
    background:rgba(18,49,48,.38);
    opacity:0;
    backdrop-filter:blur(3px);
    transition:opacity 180ms ease;
  }
  .itinerary-mobile-add-backdrop:not([hidden]) { display:block; }
  .itinerary-mobile-add-backdrop.is-open { opacity:1; }
  .itinerary-mobile-add-sheet {
    position:fixed;
    z-index:240;
    right:0;
    bottom:0;
    left:0;
    max-height:min(68dvh,520px);
    overflow-y:auto;
    border:1px solid var(--line);
    border-bottom:0;
    border-radius:24px 24px 0 0;
    padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));
    background:var(--surface);
    box-shadow:0 -24px 70px rgba(18,54,52,.2);
    opacity:0;
    transform:translateY(102%);
    transition:transform 240ms cubic-bezier(.2,.8,.2,1),opacity 180ms ease;
  }
  .itinerary-mobile-add-sheet:not([hidden]) { display:grid; }
  .itinerary-mobile-add-sheet.is-open { opacity:1; transform:none; }
  .itinerary-mobile-add-sheet > header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    border-bottom:1px solid var(--line);
    padding:.2rem .15rem .9rem;
  }
  .itinerary-mobile-add-sheet > header .eyebrow {
    display:block;
    margin:0 0 .2rem;
  }
  .itinerary-mobile-add-sheet > header h2 {
    margin:0;
    color:var(--ink);
    font-size:1.65rem;
    letter-spacing:-.045em;
    line-height:1.05;
  }
  .itinerary-mobile-add-close {
    display:grid;
    width:44px;
    height:44px;
    flex:none;
    place-items:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--surface);
    color:var(--primary);
    font-size:1.35rem;
  }
  .itinerary-mobile-add-options { display:grid; padding:.35rem 0 0; }
  .itinerary-mobile-add-options > button {
    display:grid;
    min-height:76px;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:.75rem;
    border:0;
    border-bottom:1px solid var(--line);
    padding:.65rem .15rem;
    background:transparent;
    color:var(--ink);
    text-align:left;
  }
  .itinerary-mobile-add-options > button:last-child { border-bottom:0; }
  .itinerary-mobile-add-options > button > span:nth-child(2) { display:grid; gap:.18rem; }
  .itinerary-mobile-add-options strong { font-size:.92rem; }
  .itinerary-mobile-add-options small {
    color:var(--ink-muted);
    font-size:.8rem;
    line-height:1.35;
  }
  .itinerary-mobile-add-icon {
    display:grid;
    width:38px;
    height:38px;
    place-items:center;
    border-radius:12px;
    background:var(--surface-soft);
    color:var(--primary);
    font-size:1.2rem;
  }
  .itinerary-mobile-add-options b { color:var(--primary); font-size:1.25rem; font-weight:500; }
  .itinerary-mobile-add-sheet button:focus-visible {
    outline:2px solid var(--primary);
    outline-offset:2px;
  }

  /* Stay reads as three quick tasks instead of one long document. */
  .stay-brief { margin-top:.15rem; }
  .stay-brief-content {
    gap:.8rem;
    border:0;
    border-radius:0;
    padding:0;
    background:transparent;
  }
  .stay-brief-group {
    border:1px solid var(--line);
    border-radius:16px;
    padding:1rem;
    background:var(--surface);
    box-shadow:0 7px 20px rgba(18,49,48,.025);
  }
  .stay-brief-heading {
    align-items:start;
    gap:.8rem;
    padding:0;
  }
  .stay-brief-heading > div { gap:.32rem; }
  .stay-brief-heading h3 { font-size:1.75rem; }
  .stay-brief-heading p { font-size:.84rem; line-height:1.45; }
  .stay-brief-heading > button {
    min-width:44px;
    padding:.62rem .72rem;
  }
  .stay-directions,
  .stay-missing-section { border-top:0; padding:1rem; }
  .stay-direction-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
  }
  .stay-direction-actions .stay-direction-primary { grid-column:1 / -1; }
  .stay-arrival-group { display:grid; gap:0; }
  .stay-group-label { padding:0 0 .2rem; }
  .stay-arrival-group .stay-brief-section { padding:1rem 0; }
  .stay-arrival-group .stay-arrival-notes { padding-bottom:0; }
  .stay-timing { grid-template-columns:1fr; }
  .stay-timing > div { padding:0 0 .9rem; }
  .stay-timing > div + div {
    border-top:1px solid var(--line);
    border-left:0;
    padding:.9rem 0 0;
  }
  .stay-timing strong,
  .stay-arrival-notes p { font-size:.86rem; line-height:1.5; }

  /* Roster rows carry only the two shortcuts that can require action. */
  .people-subnav { margin-bottom:1.25rem; }
  .people-roster-toolbar { gap:.75rem; padding-bottom:.75rem; }
  .people-roster-toolbar p,
  .people-roster-toolbar small { font-size:.8rem; line-height:1.4; }
  .person-row { padding:.15rem 0; }
  .person-row-button {
    min-height:74px;
    grid-template-columns:42px minmax(0,1fr) 28px;
    gap:.75rem;
    padding:.75rem .1rem .35rem;
  }
  .person-row .person-avatar { width:42px; height:42px; }
  .person-row-copy strong { font-size:.93rem; }
  .person-row-copy small { font-size:.8rem; line-height:1.35; }
  .person-row-statuses {
    display:flex;
    grid-column:1!important;
    justify-content:flex-start;
    gap:.35rem;
    padding:.05rem 0 .65rem 3.25rem;
  }
  .person-row-status:is(.is-visible,.is-paid,.is-room) { display:none; }
  .person-row-status {
    min-height:36px;
    padding:.38rem .52rem;
    font-size:.75rem;
  }
  .person-row-status.is-unpaid { background:#fff5f1; }
  .person-row-status.is-missing { background:var(--review-bg); }

  /* Costs lead with what is unsettled, then compress the bookkeeping context. */
  .payment-metrics {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0;
    margin:.05rem 0 1rem;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--surface);
  }
  .payment-metric {
    min-height:68px;
    border:0!important;
    border-radius:0;
    padding:.68rem .72rem;
    background:var(--surface);
  }
  .payment-metric:first-child {
    order:3;
    grid-column:2;
    min-height:68px;
  }
  .payment-metric.is-outstanding {
    order:1;
    grid-column:1 / 4;
    min-height:94px;
    border-bottom:1px solid var(--line)!important;
  }
  .payment-metric.is-collected {
    order:2;
    grid-column:1;
  }
  .payment-metric.is-count {
    order:4;
    grid-column:3;
    min-height:68px;
    grid-template-columns:1fr;
    place-content:center start;
    justify-items:start;
    gap:.2rem;
    text-align:left;
  }
  .payment-metric:nth-child(1),
  .payment-metric.is-count { border-left:1px solid var(--line)!important; }
  .payment-metric.is-outstanding::before,
  .payment-metric.is-collected::before { display:none; }
  .payment-metric > span { font-size:.64rem; letter-spacing:.06em; }
  .payment-metric > strong { font-size:1.03rem; letter-spacing:-.035em; }
  .payment-metric.is-outstanding > strong { font-size:1.95rem; }
  .payment-metric.is-count > strong { font-size:1.03rem; }
  .payment-metric > small { display:none; }
  .payment-metric.is-outstanding > small {
    display:block;
    font-size:.78rem;
    line-height:1.3;
  }
  .payment-ledger-workspace {
    border-top:8px solid #edf2f1;
    margin-inline:-1rem;
    padding:1rem 1rem 0;
  }
  .payment-ledger-heading > div > small { font-size:.8rem; }

  /* Overview sections use canvas space as structure, while object cards remain cards. */
  .overview-map-attention-grid { gap:1.5rem; margin-bottom:1.8rem; }
  .overview-map-heading,
  .overview-attention-heading { min-height:46px; padding-bottom:.65rem; }
  .overview-map-status,
  .overview-attention-heading > span,
  .overview-attention-row > small,
  .overview-row-copy { font-size:.75rem; }
  .overview-map-panel,
  .overview-next-up,
  .overview-basics-panel { box-shadow:0 7px 20px rgba(18,49,48,.025); }
  .overview-sections-heading { margin-top:1.8rem; }
}

@media (prefers-reduced-motion:reduce) {
  .itinerary-mobile-add-backdrop,
  .itinerary-mobile-add-sheet { transition:none; }
}

/* Stay Details: an arrival workspace with a dedicated home-base map. */
.organizer-canvas .editor-panel[data-editor-panel="stay"] {
  width:100%;
  max-width:none;
  margin:0;
}
.stay-page-header { margin-bottom:0!important; }
.stay-page-action:not([hidden]) {
  display:inline-flex;
  height:44px;
  min-height:44px;
  align-items:center;
  justify-content:center;
  justify-self:end;
  align-self:end;
  white-space:nowrap;
}
.stay-page-layout {
  display:grid;
  min-width:0;
  grid-template-areas:
    "brief map"
    "arrival arrival";
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  align-items:stretch;
  gap:clamp(1.25rem,2.5vw,2rem);
  margin-top:1.5rem;
}
.stay-page-layout[data-stay-state="empty"],
.stay-page-layout[data-stay-state="separate"] {
  grid-template-areas:"brief";
  grid-template-columns:minmax(0,1fr);
}
.stay-page-layout .stay-brief {
  grid-area:brief;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
}
.stay-home-base-card {
  display:grid;
  min-height:420px;
  align-content:start;
  border:1px solid var(--line);
  border-radius:16px;
  padding:clamp(1.5rem,3vw,2.25rem);
  background:var(--surface);
  box-shadow:0 8px 22px rgba(18,49,48,.03);
}
.stay-home-base-card > span,
.stay-map-heading span,
.stay-arrival-details section > span {
  color:var(--accent);
  font-size:.71rem;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1.2;
  text-transform:uppercase;
}
.stay-home-base-card h3 {
  max-width:740px;
  margin:.7rem 0 .35rem;
  color:var(--ink);
  font-size:clamp(2rem,3.1vw,3rem);
  font-weight:790;
  letter-spacing:-.05em;
  line-height:1.02;
}
.stay-home-base-card > small {
  color:var(--ink-muted);
  font-size:.82rem;
  font-weight:650;
  line-height:1.4;
}
.stay-home-address { margin-top:1.65rem; }
.stay-home-address p {
  max-width:620px;
  margin:0;
  color:var(--ink-muted);
  font-size:1rem;
  line-height:1.55;
}
.stay-property-guide {
  align-self:end;
  justify-self:start;
  margin-top:auto;
  padding-top:2rem;
  color:var(--primary);
  font-size:.83rem;
  font-weight:760;
  text-decoration:underline;
  text-decoration-color:color-mix(in srgb,var(--primary) 35%,transparent);
  text-underline-offset:4px;
}
.stay-map-card {
  display:grid;
  min-width:0;
  min-height:420px;
  grid-area:map;
  grid-template-rows:auto minmax(290px,1fr) auto;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  box-shadow:0 8px 22px rgba(18,49,48,.03);
}
.stay-map-card[hidden],
.stay-arrival-band[hidden] { display:none!important; }
.stay-map-heading {
  display:flex;
  min-height:64px;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:.85rem 1rem;
}
.stay-map-heading > div { display:grid; gap:.2rem; }
.stay-map-heading h3 {
  margin:0;
  color:var(--ink);
  font-size:1rem;
  font-weight:790;
  letter-spacing:-.02em;
  line-height:1.25;
}
.stay-map-panel {
  position:relative;
  display:grid;
  min-width:0;
  min-height:290px;
  overflow:hidden;
  background:var(--surface-soft);
}
.stay-map-viewport,
.stay-map-fallback {
  min-width:0;
  min-height:290px;
  grid-column:1;
  grid-row:1;
}
.stay-map-viewport { background:var(--surface-soft); }
.stay-map-fallback {
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:1.35rem;
  background:var(--surface-soft);
}
.stay-map-fallback-mark {
  display:grid;
  width:46px;
  height:46px;
  flex:none;
  place-items:center;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface);
  color:var(--primary);
  box-shadow:0 7px 18px rgba(18,49,48,.06);
}
.stay-map-fallback-mark svg {
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
}
.stay-map-fallback strong {
  display:block;
  color:var(--ink);
  font-size:.9rem;
  line-height:1.35;
}
.stay-map-fallback p {
  max-width:350px;
  margin:.35rem 0 0;
  color:var(--ink-muted);
  font-size:.75rem;
  line-height:1.5;
}
.stay-map-fallback-actions { margin-top:.8rem; }
.stay-map-fallback-actions:empty { display:none; }
.stay-map-fallback-actions button {
  min-height:44px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.6rem .9rem;
  background:var(--surface);
  color:var(--primary);
  font:inherit;
  font-size:.76rem;
  font-weight:800;
}
.stay-map-panel[data-map-state="ready"] .stay-map-fallback { display:none; }
.stay-map-panel[data-map-state="missing"] .stay-map-viewport,
.stay-map-panel[data-map-state="unavailable"] .stay-map-viewport,
.stay-map-panel[data-map-state="idle"] .stay-map-viewport { visibility:hidden; }
.stay-map-panel[data-map-state="loading"] .stay-map-fallback-mark { animation:overview-map-pulse 1.4s ease-in-out infinite; }
.stay-map-marker {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border:3px solid #fff;
  border-radius:14px;
  background:var(--primary);
  color:#fff;
  box-shadow:0 8px 20px rgba(18,49,48,.25);
}
.stay-map-marker svg {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
}
.stay-direction-actions {
  display:grid;
  min-width:0;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:.5rem;
  border-top:1px solid var(--line);
  padding:.7rem;
}
.stay-direction-actions:empty { display:none; }
.stay-direction-actions a {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border-radius:10px;
  padding:.58rem .72rem;
  color:var(--primary);
  font-size:.75rem;
  font-weight:800;
  text-align:center;
}
.stay-direction-actions .stay-direction-primary {
  border:1px solid color-mix(in srgb,var(--primary) 55%,var(--line));
  background:var(--surface);
  text-decoration:none;
}
.stay-direction-primary svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.stay-direction-actions a:hover,
.stay-direction-actions a:focus-visible,
.stay-map-fallback-actions button:hover,
.stay-map-fallback-actions button:focus-visible { background:var(--surface-soft); }
.stay-direction-actions a:focus-visible,
.stay-map-fallback-actions button:focus-visible,
.stay-page-action:focus-visible,
.stay-property-guide:focus-visible {
  outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);
  outline-offset:2px;
}
.stay-arrival-band {
  min-width:0;
  grid-area:arrival;
  border:1px solid var(--line);
  border-radius:16px;
  padding:clamp(1.35rem,2.5vw,2rem);
  background:var(--surface);
  box-shadow:0 8px 22px rgba(18,49,48,.025);
}
.stay-arrival-band > h3 {
  margin:0 0 1.25rem;
  color:var(--ink);
  font-size:clamp(1.45rem,2vw,1.8rem);
  font-weight:780;
  letter-spacing:-.04em;
}
.stay-arrival-details {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.4fr);
}
.stay-arrival-details section {
  display:grid;
  min-width:0;
  align-content:start;
  gap:.65rem;
  padding:.1rem clamp(1rem,2.3vw,2rem);
}
.stay-arrival-details section:first-child { padding-left:0; }
.stay-arrival-details section + section { border-left:1px solid var(--line); }
.stay-arrival-details strong,
.stay-arrival-notes p {
  margin:0;
  color:var(--ink);
  font-size:.92rem;
  font-weight:650;
  line-height:1.5;
}
.stay-arrival-notes p { font-weight:500; }
.stay-arrival-notes a {
  justify-self:start;
  color:var(--primary);
  font-size:.76rem;
  font-weight:760;
}
.stay-add-detail {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-self:start;
  gap:.35rem;
  border:0;
  padding:.45rem 0;
  background:transparent;
  color:var(--primary);
  font:inherit;
  font-size:.84rem;
  font-weight:800;
}
.stay-add-detail:hover { text-decoration:underline; text-underline-offset:3px; }
.stay-add-detail:focus-visible { border-radius:5px; outline:2px solid var(--primary); outline-offset:2px; }
.stay-page-layout .stay-empty-state,
.stay-page-layout .stay-separate-state {
  display:grid;
  width:100%;
  max-width:none;
  min-height:260px;
  align-content:center;
  justify-items:start;
  gap:1.15rem;
  margin:0;
  border:1px solid var(--line);
  border-radius:16px;
  padding:clamp(1.5rem,3vw,2.25rem);
  background:var(--surface);
  box-shadow:none;
}
.stay-page-layout .stay-empty-state > div { display:grid; gap:.55rem; }
.stay-page-layout .stay-empty-state h3,
.stay-page-layout .stay-separate-state h3 { font-size:clamp(1.75rem,2.8vw,2.4rem); }
.stay-page-layout .stay-separate-state { border-left:4px solid var(--saved); }
.stay-page-layout .stay-separate-action {
  min-height:44px;
  border:0;
  padding:.5rem 0;
  background:transparent;
  color:var(--primary);
  font-size:.82rem;
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:color-mix(in srgb,var(--primary) 30%,transparent);
  text-underline-offset:4px;
}

@media (max-width:899px) {
  .stay-page-layout {
    grid-template-areas:
      "brief"
      "map"
      "arrival";
    grid-template-columns:minmax(0,1fr);
  }
  .stay-home-base-card { min-height:0; }
  .stay-map-card { min-height:390px; }
  .stay-map-panel,
  .stay-map-viewport,
  .stay-map-fallback { min-height:280px; }
  .stay-arrival-details { grid-template-columns:1fr 1fr; }
  .stay-arrival-details .stay-arrival-notes {
    grid-column:1 / -1;
    border-top:1px solid var(--line);
    border-left:0;
    margin-top:1.25rem;
    padding:1.25rem 0 0;
  }
}

@media (max-width:720px) {
  .stay-page-header { gap:.85rem!important; }
  .stay-page-action:not([hidden]) { width:100%; justify-self:stretch; }
  .stay-page-layout { gap:1rem; margin-top:1rem; }
  .stay-home-base-card,
  .stay-map-card,
  .stay-arrival-band,
  .stay-page-layout .stay-empty-state,
  .stay-page-layout .stay-separate-state { border-radius:16px; }
  .stay-home-base-card { padding:1.15rem; }
  .stay-home-base-card h3 { margin-top:.55rem; font-size:1.8rem; }
  .stay-home-address { margin-top:1.1rem; }
  .stay-property-guide { margin-top:1.35rem; padding-top:0; }
  .stay-map-card { min-height:0; grid-template-rows:auto auto auto; }
  .stay-map-heading { min-height:58px; padding:.75rem .9rem; }
  .stay-map-panel,
  .stay-map-viewport,
  .stay-map-fallback { min-height:clamp(230px,60vw,260px); }
  .stay-map-fallback { align-items:flex-start; padding:1rem; }
  .stay-map-fallback-mark { width:42px; height:42px; }
  .stay-direction-actions { grid-template-columns:1fr 1fr; gap:.5rem; padding:.65rem; }
  .stay-direction-actions .stay-direction-primary { grid-column:1 / -1; }
  .stay-direction-actions a { font-size:.78rem; }
  .stay-arrival-band { padding:1.15rem; }
  .stay-arrival-band > h3 { margin-bottom:.5rem; font-size:1.5rem; }
  .stay-arrival-details { grid-template-columns:1fr; }
  .stay-arrival-details section,
  .stay-arrival-details section:first-child {
    min-height:86px;
    padding:1rem 0;
  }
  .stay-arrival-details section + section,
  .stay-arrival-details .stay-arrival-notes {
    grid-column:auto;
    border-top:1px solid var(--line);
    border-left:0;
    margin:0;
    padding:1rem 0;
  }
  .stay-arrival-details section:last-child { padding-bottom:0; }
  .stay-page-layout .stay-empty-state,
  .stay-page-layout .stay-separate-state { min-height:0; padding:1.25rem; }
}

@media (prefers-reduced-motion:reduce) {
  .stay-map-panel[data-map-state="loading"] .stay-map-fallback-mark { animation:none; }
}

/* Itinerary Calendar / Map workspace */
.calendar-builder-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem;
}
.itinerary-canvas-switch {
  display:inline-flex;
  min-height:52px;
  align-items:center;
  gap:.15rem;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.2rem;
  background:#edf2f0;
}
.itinerary-canvas-switch button {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  border:0;
  border-radius:999px;
  padding:.48rem .78rem;
  background:transparent;
  color:var(--ink-muted);
  font:inherit;
  font-size:.76rem;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.itinerary-canvas-switch button svg {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
}
.itinerary-canvas-switch button.is-active {
  background:var(--surface);
  color:var(--primary);
  box-shadow:0 3px 10px rgba(18,49,48,.08);
}
.itinerary-canvas-switch button:focus-visible,
.itinerary-map-days button:focus-visible,
.itinerary-map-list-switch button:focus-visible,
.itinerary-map-explore-filters button:focus-visible,
.itinerary-map-stop button:focus-visible,
.itinerary-map-explore-row button:focus-visible,
.itinerary-map-marker-anchor:focus-visible {
  outline:3px solid color-mix(in srgb,var(--primary) 26%,transparent);
  outline-offset:2px;
}

.itinerary-map-view {
  grid-column:1 / -1;
  grid-row:1;
  width:100%;
  min-width:0;
  padding-top:.35rem;
}

@media (min-width:721px) {
  /* Map mode is a focused planning surface. Preserve the Explore/Hit List
     state, but tuck its overlay away until the organizer returns to Calendar. */
  .planner-layout.is-map-canvas-active .itinerary-supporting-shell { display:none!important; }
}
.itinerary-map-toolbar {
  display:flex;
  min-height:62px;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid var(--line);
  padding:.5rem 0 .8rem;
}
.itinerary-map-toolbar > div { min-width:0; }
.itinerary-map-toolbar > .itinerary-map-list-switch { width:220px; flex:0 0 220px; }
.itinerary-map-toolbar > .itinerary-map-days,
.itinerary-map-toolbar > .itinerary-map-explore-controls { flex:1 1 auto; }
.itinerary-map-explore-controls {
  display:flex;
  min-width:0;
  align-items:center;
  gap:.42rem;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
}
.itinerary-map-explore-controls::-webkit-scrollbar { display:none; }
.itinerary-map-explore-controls[hidden] { display:none; }
.itinerary-map-days {
  display:flex;
  min-width:0;
  align-items:stretch;
  gap:.42rem;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
}
.itinerary-map-days::-webkit-scrollbar { display:none; }
.itinerary-map-days button {
  display:grid;
  min-width:106px;
  min-height:44px;
  align-content:center;
  justify-items:start;
  gap:.08rem;
  flex:none;
  border:1px solid var(--line);
  border-radius:11px;
  padding:.5rem .72rem;
  background:var(--surface);
  color:var(--ink-muted);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.itinerary-map-days button span {
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.itinerary-map-days button strong { color:var(--ink); font-size:.8rem; }
.itinerary-map-days button[aria-pressed="true"] {
  border-color:color-mix(in srgb,var(--primary) 40%,var(--line));
  background:var(--primary);
  color:#fff;
  box-shadow:0 5px 14px rgba(8,100,95,.14);
}
.itinerary-map-days button[aria-pressed="true"] strong { color:#fff; }
.itinerary-map-days .itinerary-map-all-days {
  min-width:90px;
  justify-items:center;
  text-align:center;
}
.itinerary-map-shell {
  display:grid;
  min-width:0;
  height:clamp(530px,66vh,720px);
  min-height:clamp(530px,66vh,720px);
  grid-template-columns:minmax(0,1fr) minmax(290px,340px);
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  margin-top:.65rem;
  background:var(--surface);
  box-shadow:0 9px 24px rgba(18,49,48,.045);
}
.itinerary-map-canvas-wrap {
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#e8efec;
}
.itinerary-map-canvas { position:absolute; inset:0; }
.itinerary-map-missing-cue {
  position:absolute;
  z-index:5;
  top:16px;
  left:16px;
  display:grid;
  width:min(410px,calc(100% - 32px));
  min-height:60px;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:.68rem;
  border:1px solid color-mix(in srgb,var(--line) 92%,white);
  border-radius:15px;
  padding:.55rem .68rem;
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 22px rgba(18,49,48,.11);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  color:var(--ink);
}
.itinerary-map-missing-cue[hidden] { display:none; }
.itinerary-map-missing-icon {
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border-radius:10px;
  background:var(--surface-soft);
  color:var(--primary);
}
.itinerary-map-missing-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.itinerary-map-missing-cue > span:nth-child(2) { display:grid; min-width:0; gap:.08rem; }
.itinerary-map-missing-cue strong { overflow:hidden; color:var(--ink); font-size:.77rem; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-missing-cue small { overflow:hidden; color:var(--ink-muted); font-size:.63rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-missing-cue button {
  min-height:44px;
  border:0;
  border-radius:9px;
  padding:.4rem .32rem;
  background:transparent;
  color:var(--primary);
  font:inherit;
  font-size:.66rem;
  font-weight:850;
  white-space:nowrap;
  cursor:pointer;
}
.itinerary-map-missing-cue button:hover { background:transparent; text-decoration:underline; text-underline-offset:.18em; }
.itinerary-map-missing-cue button:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent); outline-offset:2px; }
.itinerary-map-fallback {
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:.42rem;
  padding:2rem;
  background:linear-gradient(135deg,#e7f1ee,#f6f2e8);
  color:var(--ink-muted);
  text-align:center;
}
.itinerary-map-fallback > span {
  display:grid;
  width:46px;
  height:46px;
  place-items:center;
  border-radius:14px;
  background:rgba(255,255,255,.7);
  color:var(--primary);
  font-size:1.35rem;
}
.itinerary-map-fallback strong { color:var(--ink); font-size:.94rem; }
.itinerary-map-fallback small { max-width:270px; font-size:.72rem; line-height:1.45; }
.itinerary-map-shell[data-map-state="ready"] .itinerary-map-fallback,
.itinerary-map-shell[data-map-state="filtering"] .itinerary-map-fallback { display:none; }
.itinerary-map-shell[data-map-state="unavailable"] .itinerary-map-canvas { visibility:hidden; }
.itinerary-map-status {
  min-height:1.2rem;
  margin:.55rem 0 0;
  color:var(--ink-muted);
  font-size:.68rem;
  text-align:right;
}

/* Map editing is a focused task, not the full itinerary form. */
.map-location-backdrop {
  position:fixed;
  z-index:170;
  inset:0;
  border:0;
  background:rgba(18,54,52,.5);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}
.map-location-editor {
  position:fixed;
  z-index:171;
  top:50%;
  left:50%;
  display:grid;
  width:min(520px,calc(100vw - 32px));
  max-height:min(680px,calc(100dvh - 32px));
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line) 90%,white);
  border-radius:22px;
  background:var(--surface);
  box-shadow:0 28px 72px rgba(18,54,52,.24);
  color:var(--ink);
  opacity:1;
  transform:translate(-50%,-50%);
  animation:map-location-open 220ms cubic-bezier(.2,.8,.2,1) both;
}
.map-location-editor[hidden] { display:none; }
.map-location-editor.is-closing { animation:map-location-close 180ms ease both; }
@keyframes map-location-open { from { opacity:0; transform:translate(-50%,calc(-50% + 12px)) scale(.985); } }
@keyframes map-location-close { to { opacity:0; transform:translate(-50%,calc(-50% + 8px)) scale(.99); } }
.map-location-editor-head {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:1rem;
  padding:1.55rem 1.75rem 1.1rem;
}
.map-location-editor-head > div { display:grid; gap:.28rem; min-width:0; }
.map-location-editor-head .eyebrow { margin:0 0 .12rem; }
.map-location-editor-head h3 { margin:0; color:var(--ink); font-size:1.62rem; letter-spacing:-.045em; line-height:1.08; }
.map-location-editor-head p:last-child { margin:0; overflow:hidden; color:var(--ink-muted); font-size:.86rem; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.map-location-editor-head > button {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-size:1.35rem;
  cursor:pointer;
}
.map-location-editor-body {
  display:grid;
  min-height:0;
  gap:1rem;
  overflow-y:auto;
  padding:.55rem 1.75rem 1.25rem;
}
.map-location-editor-body label { display:grid; gap:.42rem; color:var(--ink); font-size:.82rem; font-weight:800; }
.map-location-field-label { display:inline-flex; align-items:baseline; gap:.2rem; }
.map-location-field-label b { color:var(--accent); font:inherit; }
.map-location-editor-body input {
  width:100%;
  min-height:52px;
  border:1px solid var(--line);
  border-radius:13px;
  padding:.75rem .9rem;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-size:.95rem;
  font-weight:550;
}
.map-location-editor-body input:focus { border-color:var(--primary); outline:3px solid color-mix(in srgb,var(--primary) 14%,transparent); }
.map-location-editor-body input::placeholder { color:color-mix(in srgb,var(--ink-muted) 60%,white); }
.map-location-results {
  display:grid;
  max-height:220px;
  gap:0;
  overflow-x:hidden;
  overflow-y:auto;
  border:1px solid var(--line);
  border-radius:13px;
  margin-top:-.7rem;
  background:var(--surface);
  box-shadow:0 12px 26px rgba(18,49,48,.1);
}
.map-location-results[hidden] { display:none; }
.map-location-results button {
  display:grid;
  width:100%;
  min-height:48px;
  gap:.1rem;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  padding:.7rem .85rem;
  background:transparent;
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.map-location-results button:hover,
.map-location-results button:focus-visible { background:color-mix(in srgb,var(--saved-bg) 58%,var(--surface)); }
.map-location-results button strong { overflow:hidden; font-size:.82rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.map-location-results button small { overflow:hidden; color:var(--ink-muted); font-size:.7rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.map-location-results em {
  display:block;
  padding:.45rem .85rem;
  color:var(--ink-muted);
  font-size:.75rem;
  font-style:normal;
  font-weight:400;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
#map-location-help { margin:-.55rem 0 0; color:var(--ink-muted); font-size:.74rem; line-height:1.4; }
#map-location-message { min-height:1rem; margin:-.45rem 0 0; color:var(--danger); font-size:.74rem; line-height:1.4; }
.map-location-editor-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-top:1px solid var(--line);
  padding:1rem 1.75rem 1.2rem;
  background:color-mix(in srgb,var(--surface) 96%,var(--canvas));
}
.map-location-editor-actions button { min-height:44px; border:0; font:inherit; font-size:.82rem; font-weight:850; cursor:pointer; }
#map-location-edit-full { padding:.55rem .25rem; background:transparent; color:var(--primary); }
#map-location-edit-full:hover { text-decoration:underline; text-underline-offset:.18em; }
#map-location-save { min-width:148px; border-radius:999px; padding:.65rem 1rem; background:var(--primary); color:#fff; }
#map-location-save:hover:not(:disabled) { background:var(--primary-hover); }
#map-location-save:disabled { background:color-mix(in srgb,var(--primary) 44%,white); cursor:not-allowed; }
.map-location-editor :is(button,input):focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent); outline-offset:2px; }

@media (max-width:720px) {
  .map-location-backdrop { background:rgba(18,54,52,.42); }
  .map-location-editor {
    top:0;
    left:0;
    width:100%;
    max-height:none;
    min-height:100dvh;
    border:0;
    border-radius:0;
    transform:none;
    animation:map-location-mobile-open 240ms cubic-bezier(.2,.8,.2,1) both;
  }
  .map-location-editor.is-closing { animation:map-location-mobile-close 180ms ease both; }
  @keyframes map-location-mobile-open { from { opacity:0; transform:translateY(18px); } }
  @keyframes map-location-mobile-close { to { opacity:0; transform:translateY(12px); } }
  .map-location-editor-head { padding:calc(1rem + env(safe-area-inset-top)) 1rem 1rem; }
  .map-location-editor-body { align-content:start; padding:1rem; }
  .map-location-editor-actions { padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom)); }
  #map-location-save { min-height:48px; }
}

@media (prefers-reduced-motion:reduce) {
  .map-location-editor,
  .map-location-editor.is-closing { animation:none; }
}
.itinerary-map-shell[data-map-state="ready"] + .itinerary-map-status {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

.itinerary-map-schedule {
  display:grid;
  min-width:0;
  min-height:0;
  grid-template-rows:auto minmax(0,1fr);
  border-left:1px solid var(--line);
  background:var(--surface);
}
.itinerary-map-schedule > header {
  display:grid;
  gap:.72rem;
  border-bottom:1px solid var(--line);
  padding:.85rem 1rem .9rem;
}
.itinerary-map-list-heading { display:grid; gap:.12rem; }
.itinerary-map-schedule > header .itinerary-map-list-heading > span,
.itinerary-map-schedule-group h4 {
  color:var(--accent);
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.itinerary-map-schedule > header strong { color:var(--ink); font-size:1.08rem; line-height:1.12; }
.itinerary-map-schedule > header small { color:var(--ink-muted); font-size:.68rem; line-height:1.35; }
.itinerary-map-list-switch {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.25rem;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.25rem;
  background:var(--surface-soft);
}
.itinerary-map-list-switch button {
  min-height:44px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--ink-muted);
  font:inherit;
  font-size:.78rem;
  font-weight:850;
  cursor:pointer;
}
.itinerary-map-list-switch button.is-active {
  background:var(--surface);
  color:var(--primary);
  box-shadow:0 3px 10px rgba(18,49,48,.08);
}
.itinerary-map-toolbar .itinerary-map-days { width:100%; }
.itinerary-map-toolbar .itinerary-map-days[hidden] { display:none; }
.itinerary-map-toolbar .itinerary-map-days button { min-width:92px; }
.itinerary-map-explore-filters {
  display:flex;
  flex:none;
  gap:.35rem;
  overflow:visible;
}
.itinerary-map-explore-filters[hidden] { display:none; }
.itinerary-map-explore-filters::-webkit-scrollbar { display:none; }
.itinerary-map-explore-filters button {
  min-height:40px;
  flex:none;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.48rem .7rem;
  background:var(--surface);
  color:var(--ink-muted);
  font:inherit;
  font-size:.68rem;
  font-weight:800;
  cursor:pointer;
}
.itinerary-map-explore-filters button.is-active { border-color:var(--primary); background:var(--primary); color:#fff; }
.itinerary-map-explore-subfilters { padding:0 0 0 .42rem; border-left:1px solid var(--line); }
.itinerary-map-explore-subfilters button { min-height:36px; background:var(--surface-soft); font-size:.64rem; }
.itinerary-map-schedule-list {
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-color:color-mix(in srgb,var(--ink-muted) 28%,transparent) transparent;
  scrollbar-width:thin;
  padding:.55rem 1rem 1rem;
}
.itinerary-map-schedule-list::-webkit-scrollbar { width:7px; }
.itinerary-map-schedule-list::-webkit-scrollbar-track { background:transparent; }
.itinerary-map-schedule-list::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:999px; background:color-mix(in srgb,var(--ink-muted) 28%,transparent); background-clip:padding-box; }
.itinerary-map-schedule-group { margin:0; padding:.58rem 0 .1rem; }
.itinerary-map-schedule-group h4 { margin:0 0 .18rem; color:var(--ink-muted); }
.itinerary-map-schedule-group.is-home h4 { color:var(--saved); }
.itinerary-map-schedule-group.is-home .itinerary-map-stop { border-bottom:0; }
.itinerary-map-schedule-group.is-home .itinerary-map-stop > button {
  min-height:60px;
  border-radius:10px;
  padding:.58rem .7rem;
  background:var(--surface-soft);
}
.itinerary-map-schedule-group.is-home .itinerary-map-stop > button:hover,
.itinerary-map-schedule-group.is-home .itinerary-map-stop.is-selected > button { background:color-mix(in srgb,var(--surface-soft) 82%,var(--saved-bg)); }
.itinerary-map-schedule-group.is-saved { border-top:1px solid var(--line); margin-top:.55rem; }
.itinerary-map-schedule-group > p { margin:.55rem 0; color:var(--ink-muted); font-size:.72rem; }
.itinerary-map-stop { border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent); }
.itinerary-map-stop > button {
  display:grid;
  width:100%;
  min-height:56px;
  grid-template-columns:34px minmax(0,1fr) max-content;
  align-items:center;
  gap:.66rem;
  border:0;
  padding:.5rem .35rem;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.itinerary-map-stop > button:hover,
.itinerary-map-stop.is-selected > button { background:color-mix(in srgb,var(--primary) 6%,transparent); }
.itinerary-map-stop-number {
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  font-size:.7rem;
  font-weight:850;
}
.itinerary-map-stop-number svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.75; }
.itinerary-map-stop.is-saved .itinerary-map-stop-number {
  border:1.5px solid var(--primary);
  background:transparent;
  color:var(--primary);
}
.itinerary-map-stop > button > span:nth-child(2) { display:grid; min-width:0; gap:.08rem; }
.itinerary-map-stop > button small { color:var(--accent); font-size:.55rem; font-weight:850; text-transform:uppercase; }
.itinerary-map-stop > button strong { overflow:hidden; color:var(--ink); font-size:.79rem; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-stop > button em { overflow:hidden; color:var(--ink-muted); font-size:.66rem; font-style:normal; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-stop > button > i { color:var(--primary); font-style:normal; font-weight:850; }
.itinerary-map-stop.is-missing-location .itinerary-map-stop-number { border-radius:9px; background:color-mix(in srgb,var(--review-bg) 58%,white); color:var(--primary); }
.itinerary-map-stop.is-missing-location > button em { color:var(--ink-muted); }
.itinerary-map-stop-action { min-height:44px; display:inline-flex; align-items:center; color:var(--primary); font-size:.64rem; font-weight:850; white-space:nowrap; }
.itinerary-map-stop > button:hover .itinerary-map-stop-action { text-decoration:underline; text-underline-offset:.18em; }
.itinerary-map-stop nav { display:flex; flex-wrap:wrap; gap:.65rem; padding:0 .25rem .7rem 2.9rem; }
.itinerary-map-stop nav a { color:var(--primary); font-size:.61rem; font-weight:800; }
.itinerary-map-empty { display:grid; align-content:center; gap:.25rem; min-height:180px; color:var(--ink-muted); text-align:center; }
.itinerary-map-empty strong { color:var(--ink); font-size:.86rem; }
.itinerary-map-empty span { font-size:.7rem; }

.itinerary-map-explore-row {
  position:relative;
  margin:.55rem 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.65rem;
  background:var(--surface);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.itinerary-map-explore-row:hover { border-color:color-mix(in srgb,var(--primary) 28%,var(--line)); box-shadow:0 8px 18px rgba(18,49,48,.07); }
.itinerary-map-explore-row.is-selected { border-color:var(--accent); box-shadow:0 9px 22px rgba(197,101,82,.12); }
.itinerary-map-explore-row.is-saved:not(.is-selected) { border-color:color-mix(in srgb,var(--saved) 26%,var(--line)); }
.itinerary-map-explore-select {
  display:grid;
  width:100%;
  min-height:96px;
  grid-template-columns:96px minmax(0,1fr) 18px;
  align-items:stretch;
  gap:.72rem;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.itinerary-map-explore-select .destination-card-media {
  width:96px;
  height:96px;
  min-height:0;
  align-self:stretch;
  border-radius:10px;
}
.itinerary-map-explore-copy { display:grid; min-width:0; align-content:center; gap:.12rem; padding:.12rem 0; }
.itinerary-map-explore-select small { color:var(--destination-accent,var(--accent)); font-size:.58rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.itinerary-map-explore-select strong { display:-webkit-box; overflow:hidden; color:var(--ink); font-size:.88rem; line-height:1.18; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.itinerary-map-explore-select em { overflow:hidden; color:var(--ink-muted); font-size:.7rem; font-style:normal; line-height:1.28; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-explore-select > i { align-self:center; color:var(--primary); font-size:1rem; font-style:normal; font-weight:900; }
.itinerary-map-explore-pick {
  justify-self:start;
  margin-top:.26rem;
  border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));
  border-radius:999px;
  padding:.24rem .45rem;
  background:color-mix(in srgb,var(--accent) 8%,white);
  color:var(--accent);
  font-size:.58rem;
  font-weight:800;
  line-height:1.15;
}
.itinerary-map-explore-actions { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; padding:.55rem 0 0 6.75rem; }
.itinerary-map-explore-actions .itinerary-map-explore-toggle {
  position:relative;
  display:grid;
  width:44px;
  height:44px;
  min-height:44px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  padding:0;
  background:var(--surface);
  color:var(--primary);
  font:inherit;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.itinerary-map-explore-toggle svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.75; }
.itinerary-map-explore-toggle:hover { border-color:var(--primary); background:var(--surface-soft); transform:translateY(-1px); }
.itinerary-map-explore-toggle.is-active { border-color:var(--saved); background:var(--saved); color:#fff; }
.itinerary-map-explore-toggle.is-active:hover { background:var(--primary-hover); }
.itinerary-map-explore-toggle > span {
  position:absolute;
  top:-4px;
  right:-4px;
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  border:2px solid var(--surface);
  border-radius:50%;
  background:var(--surface);
  box-shadow:0 2px 7px rgba(18,49,48,.18);
  color:var(--saved);
  font-size:.66rem;
  font-weight:950;
  line-height:1;
}
.itinerary-map-explore-row > .destination-google-card-credit { top:.82rem; right:auto; left:.82rem; max-width:88px; overflow:hidden; font-size:.52rem; text-overflow:ellipsis; }

.itinerary-map-marker-anchor {
  position:relative;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
}
.itinerary-map-marker-label {
  position:absolute;
  z-index:0;
  bottom:4px;
  left:27px;
  display:grid;
  width:max-content;
  min-width:132px;
  max-width:220px;
  gap:.08rem;
  border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));
  border-radius:12px;
  padding:.43rem .7rem .43rem 1rem;
  background:linear-gradient(105deg,#fff 0%,rgba(247,251,250,.98) 100%);
  box-shadow:0 7px 20px rgba(18,49,48,.16);
  color:var(--ink);
  text-align:left;
  pointer-events:none;
  transform:translateY(1px);
  transition:box-shadow .16s ease,transform .16s ease;
}
.itinerary-map-marker-label::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:50%;
  left:-9px;
  width:14px;
  height:3px;
  border-radius:999px;
  background:var(--primary);
  transform:translateY(-50%);
}
.itinerary-map-marker-label strong { overflow:hidden; font-size:.76rem; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-map-marker-label small { color:var(--accent); font-size:.55rem; font-weight:850; letter-spacing:.075em; text-transform:uppercase; }
.itinerary-map-marker-anchor.is-label-left .itinerary-map-marker-label {
  right:27px;
  left:auto;
  padding-right:1rem;
  padding-left:.7rem;
  text-align:right;
}
.itinerary-map-marker-anchor.is-label-left .itinerary-map-marker-label::before { right:-9px; left:auto; }
.itinerary-map-marker-anchor.has-label:hover .itinerary-map-marker-label,
.itinerary-map-marker-anchor.has-label:focus-visible .itinerary-map-marker-label {
  box-shadow:0 10px 26px rgba(18,49,48,.22);
  transform:none;
}
.itinerary-map-marker {
  position:relative;
  z-index:1;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:3px solid #fff;
  border-radius:50% 50% 50% 12px;
  background:var(--primary);
  color:#fff;
  box-shadow:0 6px 16px rgba(18,49,48,.28);
  font-size:.72rem;
  font-weight:900;
  transform:rotate(-45deg);
  transition:transform .18s ease,box-shadow .18s ease;
}
.itinerary-map-marker > * { transform:rotate(45deg); }
.itinerary-map-marker > b { font:inherit; }
.itinerary-map-marker.is-meal { background:var(--meal); }
.itinerary-map-marker.is-stay { width:39px; height:39px; border-radius:13px; background:#fff; color:var(--primary); }
.itinerary-map-marker.is-saved { border:2px solid var(--primary); background:#fff; color:var(--primary); }
.itinerary-map-marker.is-explore { border-width:2px; background:var(--primary); }
.itinerary-map-marker.is-explore.is-meal { background:var(--meal); }
.itinerary-map-marker.is-explore.is-muted,
.itinerary-map-marker.is-saved.is-muted,
.itinerary-map-marker.is-itinerary.is-muted { opacity:.42; filter:saturate(.62); transform:rotate(-45deg) scale(.88); }
.itinerary-map-marker.is-selected { opacity:1!important; filter:none!important; }
.itinerary-map-marker svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.itinerary-map-marker-anchor:hover .itinerary-map-marker,
.itinerary-map-marker.is-selected { box-shadow:0 9px 22px rgba(18,49,48,.35); transform:rotate(-45deg) scale(1.12); }
.itinerary-map-popover { display:grid; gap:.42rem; padding:.15rem; }
.itinerary-map-popover > span { color:var(--accent); font-size:.6rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.itinerary-map-popover > strong { color:var(--ink); font-size:.98rem; line-height:1.2; }
.itinerary-map-popover > p { margin:0; color:var(--ink-muted); font-size:.72rem; line-height:1.4; }
.itinerary-map-popover nav { display:flex; flex-wrap:wrap; gap:.6rem; border-top:1px solid var(--line); padding-top:.55rem; }
.itinerary-map-popover nav a { color:var(--primary); font-size:.62rem; font-weight:800; }
.itinerary-map-popover > button { min-height:44px; justify-self:start; border:0; border-radius:999px; padding:.58rem .82rem; background:var(--primary); color:#fff; font:inherit; font-size:.68rem; font-weight:850; cursor:pointer; }
.itinerary-map-popover-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; border-top:1px solid var(--line); padding-top:.58rem; }
.itinerary-map-popover-actions button { min-height:40px; border:1px solid var(--line); border-radius:999px; padding:.48rem .72rem; background:var(--surface); color:var(--primary); font:inherit; font-size:.66rem; font-weight:850; cursor:pointer; }
.itinerary-map-popover-actions button:last-child { border-color:var(--primary); background:var(--primary); color:#fff; }
.itinerary-map-popover-actions span { color:var(--saved); font-size:.66rem; font-weight:800; }
@media (max-width:1050px) {
  .calendar-builder-actions { align-items:flex-end; flex-wrap:wrap; }
  .itinerary-map-shell { height:auto; min-height:0; grid-template-columns:minmax(0,1fr); }
  .itinerary-map-canvas-wrap { min-height:clamp(360px,56vh,520px); }
  .itinerary-map-schedule { max-height:330px; border-top:1px solid var(--line); border-left:0; }
  .itinerary-map-schedule-list { overflow-x:hidden; overflow-y:auto; }
}

@media (max-width:720px) {
  .calendar-builder-actions { display:grid; grid-template-columns:1fr; align-items:stretch; }
  .itinerary-canvas-switch { width:100%; }
  .itinerary-canvas-switch button { flex:1; }
  .itinerary-map-toolbar { display:grid; min-height:0; gap:.6rem; padding:.35rem 0 .7rem; }
  .itinerary-map-toolbar > .itinerary-map-list-switch { width:100%; }
  .itinerary-map-toolbar > :is(.itinerary-map-days,.itinerary-map-explore-controls) { grid-row:2; }
  .itinerary-map-shell { border-radius:14px; margin-top:.65rem; }
  .itinerary-map-canvas-wrap { min-height:clamp(320px,58dvh,480px); }
  .itinerary-map-schedule { max-height:none; }
  .itinerary-map-schedule > header { padding:.8rem; }
  .itinerary-map-schedule-list { display:block; max-height:42dvh; overflow-x:hidden; overflow-y:auto; padding:.35rem .8rem .8rem; }
  .itinerary-map-status { text-align:left; }
  .itinerary-map-missing-cue {
    top:.65rem;
    right:.65rem;
    left:.65rem;
    width:auto;
    grid-template-columns:32px minmax(0,1fr) auto;
    padding:.55rem;
  }
  .itinerary-map-missing-cue button { min-width:44px; padding:.45rem .55rem; font-size:0; }
  .itinerary-map-missing-cue button i { font-size:.9rem; }
}

@media (max-width:420px) {
  .itinerary-map-explore-select { min-height:88px; grid-template-columns:84px minmax(0,1fr) 16px; gap:.62rem; }
  .itinerary-map-explore-select .destination-card-media { width:84px; height:88px; }
  .itinerary-map-explore-actions { padding-left:0; }
  .itinerary-map-explore-actions button { padding-inline:.48rem; font-size:.64rem; }
  .itinerary-map-explore-actions .itinerary-map-explore-toggle { padding:0; }
}

@media (prefers-reduced-motion:reduce) {
  .itinerary-map-marker { transition:none; }
  .itinerary-map-marker-label { transition:none; }
}

/* Mobile map stops and scheduled-event editing stay concise and contextual. */
.itinerary-map-mobile-stop { display:none; }

@media (max-width:720px) {
  .itinerary-map-canvas-wrap { isolation:isolate; }
  .itinerary-map-mobile-stop:not([hidden]) {
    position:absolute;
    z-index:8;
    right:.65rem;
    bottom:.65rem;
    left:.65rem;
    display:grid;
    gap:.35rem;
    border:1px solid color-mix(in srgb,var(--line) 88%,white);
    border-radius:22px;
    padding:1.05rem;
    background:rgba(255,253,250,.98);
    box-shadow:0 18px 46px rgba(18,49,48,.22);
    opacity:0;
    transform:translateY(16px);
    transition:transform 240ms cubic-bezier(.2,.8,.2,1),opacity 180ms ease;
  }
  .itinerary-map-mobile-stop.is-open { opacity:1; transform:none; }
  .itinerary-map-mobile-stop-close {
    position:absolute;
    top:.75rem;
    right:.75rem;
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--surface);
    color:var(--primary);
    font-size:1.25rem;
    cursor:pointer;
  }
  .itinerary-map-mobile-stop-kicker {
    max-width:calc(100% - 52px);
    color:var(--accent);
    font-size:.7rem;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
  }
  .itinerary-map-mobile-stop h3 {
    max-width:calc(100% - 44px);
    margin:.05rem 0 0;
    color:var(--ink);
    font-size:1.35rem;
    letter-spacing:-.04em;
    line-height:1.08;
  }
  .itinerary-map-mobile-stop > p {
    margin:0;
    color:var(--ink-muted);
    font-size:.85rem;
    line-height:1.4;
  }
  .itinerary-map-mobile-stop-status {
    justify-self:start;
    margin-top:.35rem;
    border-radius:999px;
    padding:.42rem .65rem;
    font-size:.72rem;
    font-weight:800;
  }
  .itinerary-map-mobile-stop-status.is-review { background:var(--review-bg); color:var(--review); }
  .itinerary-map-mobile-stop-status.is-visible,
  .itinerary-map-mobile-stop-status.is-supportive { background:var(--saved-bg); color:var(--primary); }
  .itinerary-map-mobile-stop nav {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    margin-top:.45rem;
  }
  .itinerary-map-mobile-stop nav a {
    display:flex;
    min-height:44px;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    border-radius:12px;
    padding:.55rem;
    background:var(--surface);
    color:var(--primary);
    font-size:.72rem;
    font-weight:800;
    text-align:center;
  }
  .itinerary-map-mobile-stop nav a:nth-child(3) { grid-column:1 / -1; }
  .itinerary-map-mobile-stop-primary {
    min-height:48px;
    margin-top:.2rem;
    border:0;
    border-radius:14px;
    padding:.7rem 1rem;
    background:var(--primary);
    color:#fff;
    font-size:.9rem;
    font-weight:850;
    cursor:pointer;
  }
  .itinerary-map-mobile-stop-secondary {
    min-height:44px;
    margin-top:.2rem;
    border:1px solid var(--line);
    border-radius:14px;
    padding:.65rem 1rem;
    background:var(--surface);
    color:var(--primary);
    font-size:.84rem;
    font-weight:850;
    cursor:pointer;
  }

  #itinerary-form.unified-plan-drawer.event-edit-mode {
    --drawer-pad:1rem;
    display:block;
    overflow-x:hidden;
    overflow-y:auto;
    background:var(--surface);
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-form-head {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:.75rem;
    padding:calc(.75rem + env(safe-area-inset-top)) var(--drawer-pad) .75rem;
    background:rgba(255,255,255,.97);
    box-shadow:0 5px 18px rgba(18,49,48,.045);
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-form-head > div:first-child { padding:0; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-form-head .eyebrow { display:none; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-form-head h3 {
    padding:0;
    font-size:1.45rem;
    letter-spacing:-.045em;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-form-head #plan-step-copy {
    display:block;
    margin:.18rem 0 0;
    color:var(--ink-muted);
    font-size:.78rem;
    line-height:1.35;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-head-actions {
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
    grid-column:1 / -1;
    align-items:end;
    gap:.65rem;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-close {
    position:absolute;
    top:calc(.75rem + env(safe-area-inset-top));
    right:var(--drawer-pad);
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-status-choice {
    width:min(100%,280px);
    max-width:none;
    margin-left:auto;
    padding:0;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-status-choice legend { margin:0 0 .3rem; font-size:.6rem; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-status-choice > div { padding:.22rem; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-status-choice span { min-height:44px; padding:.55rem .68rem; font-size:.72rem; }

  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step] {
    gap:.75rem;
    border-bottom:1px solid var(--line);
    padding:1rem 0;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="1"] .plan-question-heading,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-suggestion-library,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-destination-picker,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-type-choice,
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="2"] .plan-question-heading,
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="2"] .placement-suggestion,
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="2"] .placement-category,
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="2"] .placement-calendar,
  #itinerary-form.unified-plan-drawer.event-edit-mode [data-plan-step="2"] .placement-selection,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-location-question .plan-question-heading { display:none!important; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .drawer-placement-fields { grid-template-columns:1fr 1fr; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-detail-questions { gap:.8rem; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-location-question { padding-bottom:0; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-title-field,
  #itinerary-form.unified-plan-drawer.event-edit-mode .drawer-placement-fields label,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-place-field { font-size:.78rem; }
  #itinerary-form.unified-plan-drawer.event-edit-mode :is(input,select,textarea) { min-height:48px; border-radius:13px; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-address-field,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-time-question,
  #itinerary-form.unified-plan-drawer.event-edit-mode .meal-links,
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-photo-manager,
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-note-question { display:none!important; }
  #itinerary-form.unified-plan-drawer.event-edit-mode.show-event-more .plan-address-field,
  #itinerary-form.unified-plan-drawer.event-edit-mode.show-event-more .plan-time-question,
  #itinerary-form.unified-plan-drawer.event-edit-mode.show-event-more .meal-links:not([hidden]),
  #itinerary-form.unified-plan-drawer.event-edit-mode.show-event-more .event-photo-manager:not([hidden]),
  #itinerary-form.unified-plan-drawer.event-edit-mode.show-event-more .plan-note-question { display:grid!important; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-more-toggle {
    display:grid!important;
    min-height:66px;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:.15rem .75rem;
    border:1px solid var(--line);
    border-radius:14px;
    padding:.72rem .85rem;
    background:var(--surface);
    color:var(--ink);
    text-align:left;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-more-toggle > span { font-size:.86rem; font-weight:800; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-more-toggle > small {
    display:block;
    grid-column:1;
    color:var(--ink-muted);
    font-size:.72rem;
    font-weight:500;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-more-toggle > svg { grid-column:2; grid-row:1 / span 2; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-wizard-actions {
    grid-template-columns:minmax(0,1fr) minmax(160px,1.4fr);
    padding:.78rem var(--drawer-pad) calc(.78rem + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.98);
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode .plan-wizard-actions .form-message { grid-column:1 / -1; }
  #itinerary-form.unified-plan-drawer.event-edit-mode .event-delete {
    min-height:44px;
    justify-self:start;
    padding:.5rem 0;
    font-size:.76rem;
  }
  #itinerary-form.unified-plan-drawer.event-edit-mode #save-plan { min-height:48px; border-radius:999px; }
}

@media (max-width:720px) and (prefers-reduced-motion:reduce) {
  .itinerary-map-mobile-stop:not([hidden]) { transition:none; }
}

/* Full event editor: a calm, focused companion to the lightweight event popover. */
@keyframes full-event-editor-in {
  from { opacity:0; transform:translate(-50%,calc(-50% + 12px)) scale(.985); }
  to { opacity:1; transform:translate(-50%,-50%) scale(1); }
}

@keyframes full-event-editor-out {
  from { opacity:1; transform:translate(-50%,-50%) scale(1); }
  to { opacity:0; transform:translate(-50%,calc(-50% + 8px)) scale(.99); }
}

@media (min-width:721px) {
  #itinerary-form.unified-plan-drawer.full-event-editor {
    --full-editor-pad:clamp(1.35rem,2.5vw,2rem);
    --drawer-pad:var(--full-editor-pad);
    --organizer-modal-width:760px;
    --organizer-modal-height:82dvh;
    position:fixed;
    inset:50% auto auto 50%;
    z-index:1240;
    display:block;
    width:min(760px,calc(100dvw - 3rem));
    max-width:760px;
    height:auto;
    max-height:min(82dvh,820px);
    margin:0;
    padding:0 var(--full-editor-pad);
    overflow-x:hidden;
    overflow-y:auto;
    border:1px solid var(--line);
    border-radius:24px;
    background:var(--surface);
    box-shadow:0 30px 80px rgba(16,52,50,.2),0 8px 24px rgba(16,52,50,.1);
    transform:translate(-50%,-50%);
    animation:full-event-editor-in .22s cubic-bezier(.2,.75,.25,1) both;
    overscroll-behavior:contain;
    scrollbar-gutter:auto;
    -ms-overflow-style:none;
    scrollbar-width:none;
  }

  #itinerary-form.unified-plan-drawer.full-event-editor::-webkit-scrollbar {
    display:none;
    width:0;
    height:0;
  }

  #itinerary-form.unified-plan-drawer.full-event-editor.is-closing {
    animation:full-event-editor-out .18s ease both;
    pointer-events:none;
  }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head {
    position:sticky;
    top:0;
    z-index:5;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:1.25rem;
    width:auto;
    margin:0 calc(var(--full-editor-pad) * -1);
    padding:1.5rem calc(var(--full-editor-pad) + .25rem) 1.3rem var(--full-editor-pad);
    border-bottom:1px solid var(--line);
    background:rgba(255,253,249,.98);
    backdrop-filter:blur(14px);
  }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head > div:first-child { padding:0; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head .eyebrow {
    display:block;
    margin:0 0 .28rem;
    font-size:.67rem;
    letter-spacing:.14em;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head h3 {
    max-width:25ch;
    margin:0;
    font-size:clamp(1.4rem,2.2vw,1.75rem);
    line-height:1.04;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor #plan-step-copy {
    display:block;
    margin-top:.35rem;
    color:var(--ink-muted);
    font-size:.78rem;
    font-weight:600;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-head-actions {
    display:grid;
    grid-template-columns:minmax(260px,280px) 44px;
    align-items:center;
    gap:1rem;
    min-width:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-status-choice {
    width:auto;
    max-width:none;
    margin:0;
    padding:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-status-choice legend {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-status-choice > div {
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    gap:.25rem;
    padding:.25rem;
    border-radius:999px;
    background:#edf3f0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-status-choice label {
    min-width:0;
    margin:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-status-choice span {
    display:flex;
    min-height:40px;
    align-items:center;
    justify-content:center;
    padding:.5rem .9rem;
    border-radius:999px;
    font-size:.75rem;
    white-space:nowrap;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-close {
    position:static;
    inset:auto;
    width:42px;
    height:42px;
    min-width:42px;
    margin:0 .15rem 0 0;
    border-radius:50%;
    transform:none;
  }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-progress,
  #itinerary-form.unified-plan-drawer.full-event-editor .event-edit-placement,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-context-preview,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-suggestion-library,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-destination-picker,
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step] .plan-question-heading,
  #itinerary-form.unified-plan-drawer.full-event-editor .placement-suggestion,
  #itinerary-form.unified-plan-drawer.full-event-editor .placement-category,
  #itinerary-form.unified-plan-drawer.full-event-editor .placement-calendar,
  #itinerary-form.unified-plan-drawer.full-event-editor .placement-selection { display:none!important; }

  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step] {
    position:relative;
    display:grid;
    width:auto;
    margin:0;
    gap:1rem;
    padding:1.35rem 0;
    border:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="1"] { border-bottom:1px solid var(--line); }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="2"] { padding-bottom:.65rem; }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="3"] { padding-top:0; }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="1"]::before,
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="2"]::before,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-note-question::before {
    position:static;
    inset:auto;
    display:block;
    width:auto;
    background:none;
    color:#c56b56;
    font-size:.66rem;
    font-weight:900;
    letter-spacing:.14em;
    line-height:1;
    text-transform:uppercase;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="1"]::before { content:"Essentials"; }
  #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step="2"]::before { content:"Schedule & Place"; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-note-question::before { content:"For Guests"; }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-title-field,
  #itinerary-form.unified-plan-drawer.full-event-editor .drawer-placement-fields label,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-location-question label,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-note-question label {
    gap:.38rem;
    color:var(--ink-muted);
    font-size:.75rem;
    font-weight:800;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor :is(input,select,textarea) {
    min-height:46px;
    border-radius:12px;
    font-size:.95rem;
    scroll-margin-block:6rem 5rem;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor :is(input,select,textarea):focus-visible {
    border-color:color-mix(in srgb,var(--accent) 72%,var(--line));
    outline:0!important;
    outline-offset:0!important;
    box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 48%,transparent),
      0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent);
  }
  #itinerary-form.unified-plan-drawer.full-event-editor textarea { min-height:88px; resize:vertical; }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-type-choice {
    display:block!important;
    margin:0;
    padding:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-type-choice legend {
    margin-bottom:.45rem;
    color:var(--ink-muted);
    font-size:.75rem;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-type-choice > div { gap:.4rem; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-type-choice span {
    min-height:38px;
    padding:.45rem .72rem;
    font-size:.75rem;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .drawer-placement-fields,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-location-question {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    padding:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-location-question { order:1; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-location-question .plan-question-heading { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-address-field { display:grid!important; }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-note-question {
    order:2;
    display:grid!important;
    gap:.85rem;
    margin-top:.55rem;
    padding-top:1.35rem;
    border-top:1px solid var(--line);
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-more-toggle {
    order:3;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    min-height:60px;
    margin:0;
    padding:.7rem .85rem;
    border:1px solid var(--line);
    border-radius:13px;
    background:transparent;
    color:var(--ink);
    text-align:left;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-more-toggle > span { font-size:.82rem; font-weight:850; }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-more-toggle > small {
    grid-column:1;
    color:var(--ink-muted);
    font-size:.72rem;
    font-weight:550;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-more-toggle > svg { grid-column:2; grid-row:1 / span 2; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-time-question { order:4; }
  #itinerary-form.unified-plan-drawer.full-event-editor .meal-links { order:5; }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-photo-manager { order:6; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-time-question,
  #itinerary-form.unified-plan-drawer.full-event-editor .meal-links,
  #itinerary-form.unified-plan-drawer.full-event-editor .event-photo-manager { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .plan-time-question,
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .meal-links:not([hidden]),
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .event-photo-manager:not([hidden]) { display:grid!important; }

  #itinerary-form.unified-plan-drawer.full-event-editor .plan-wizard-actions {
    position:sticky;
    bottom:0;
    z-index:5;
    display:flex;
    align-items:center;
    gap:.65rem;
    width:auto;
    min-height:72px;
    margin:0 calc(var(--full-editor-pad) * -1);
    padding:.8rem var(--full-editor-pad);
    border-top:1px solid var(--line);
    background:rgba(255,253,249,.98);
    backdrop-filter:blur(14px);
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-wizard-actions .form-message {
    flex:1 1 auto;
    margin:0;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .event-delete {
    min-height:44px;
    margin-right:auto;
    padding:.5rem 0;
    color:#c56b56;
    font-size:.76rem;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .full-event-cancel,
  #itinerary-form.unified-plan-drawer.full-event-editor #save-plan {
    min-height:44px;
    padding:.65rem 1rem;
    border-radius:999px;
    white-space:nowrap;
  }
  #itinerary-form.unified-plan-drawer.full-event-editor .full-event-cancel {
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    box-shadow:none;
  }

  /* Creation uses the same calm editor shell as Event Details. Discovery is
     intentionally secondary: useful, visible, and contained within Essentials. */
  #itinerary-form.unified-plan-drawer.full-create-editor {
    --organizer-modal-width:840px;
    width:min(840px,calc(100dvw - 3rem));
    max-width:840px;
    max-height:min(86dvh,880px);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head {
    padding-right:calc(var(--full-editor-pad) + .35rem);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-head-actions {
    grid-template-columns:minmax(250px,270px) 44px;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="1"] {
    grid-template-columns:minmax(0,1fr);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field { order:1; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice { order:2; }
  #itinerary-form.unified-plan-drawer.full-create-editor.is-meal-locked .plan-type-choice { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker:not([hidden]) {
    order:3;
    display:grid!important;
    gap:.75rem;
    margin-top:.25rem;
    border-top:1px solid var(--line);
    padding-top:1.15rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header {
    align-items:center;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header span {
    font-size:.62rem;
    letter-spacing:.13em;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header h4 {
    margin-top:.22rem;
    font-size:1rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header > small {
    font-size:.7rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-browser { gap:.45rem; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-types button {
    min-height:38px;
    font-size:.7rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-categories button {
    min-height:34px;
    padding:.35rem .65rem;
    font-size:.63rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail {
    grid-auto-columns:minmax(210px,31%);
    gap:.7rem;
    padding-bottom:.2rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card {
    grid-template-rows:82px auto;
    border-radius:13px;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card .destination-card-media,
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card .destination-card-photo { min-height:82px; height:82px; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy { padding:.6rem .65rem .35rem; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy strong { font-size:.74rem; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card footer { padding:0 .65rem .6rem; }
  #itinerary-form.unified-plan-drawer.full-create-editor[data-entry-context^="global-"] .placement-suggestion:not([hidden]) {
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin:0;
    border-left:2px solid var(--primary);
    border-radius:0 10px 10px 0;
    padding:.7rem .8rem;
    background:var(--surface-soft);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-save-secondary {
    min-height:44px;
    margin-left:auto;
    border:1px solid var(--line);
    border-radius:999px;
    padding:.65rem 1rem;
    background:#fff;
    color:var(--ink);
    box-shadow:none;
    white-space:nowrap;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor #save-plan {
    min-height:44px;
    border-radius:999px;
    padding:.65rem 1.15rem;
  }
}

@media (max-width:720px) {
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head h3 { font-size:1.35rem; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head .eyebrow { display:block; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-type-choice { display:block!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-address-field,
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-note-question { display:grid!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor .plan-time-question,
  #itinerary-form.unified-plan-drawer.full-event-editor .meal-links,
  #itinerary-form.unified-plan-drawer.full-event-editor .event-photo-manager { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .plan-time-question,
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .meal-links:not([hidden]),
  #itinerary-form.unified-plan-drawer.full-event-editor.show-event-more .event-photo-manager:not([hidden]) { display:grid!important; }
  #itinerary-form.unified-plan-drawer.full-event-editor .full-event-cancel { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-suggestion-library { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker:not([hidden]) {
    display:grid!important;
    margin-top:.25rem;
    border-top:1px solid var(--line);
    padding-top:1rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor.is-meal-locked .plan-type-choice { display:none!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-save-secondary,
  #itinerary-form.unified-plan-drawer.full-create-editor #save-plan { border-radius:999px; }
}

@media (prefers-reduced-motion:reduce) {
  #itinerary-form.unified-plan-drawer.full-event-editor,
  #itinerary-form.unified-plan-drawer.full-event-editor.is-closing { animation:none; }
}

/* Intent-first itinerary composer
   The organizer begins with one idea, can borrow a curated place, and then
   makes an explicit location decision before choosing when it happens. */
#itinerary-form.unified-plan-drawer.full-create-editor {
  display:flex!important;
  flex-direction:column;
  gap:0;
  --full-editor-pad:clamp(1.15rem,2.2vw,2rem);
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head { order:0; }
#itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="1"] { order:1; }
#itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="3"] { order:2; }
#itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="2"] { order:3; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-wizard-actions { order:10; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-progress,
#itinerary-form.unified-plan-drawer.full-create-editor .plan-suggestion-library { display:none!important; }
#itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step] {
  flex:0 0 auto;
  gap:.9rem;
  padding:1.35rem 0;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading {
  display:grid!important;
  order:1;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field { order:2; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results { order:3; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice { order:4; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker { order:5; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading h4 {
  font-size:clamp(1.2rem,2vw,1.55rem);
  letter-spacing:-.035em;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading .event-section-label {
  font-size:.68rem;
  letter-spacing:.14em;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field > span { font-size:.72rem; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field input {
  min-height:58px;
  padding:.85rem 1rem;
  border-radius:15px;
  font-size:1.05rem;
  font-weight:720;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results:not([hidden]) {
  display:grid;
  overflow:hidden;
  margin-top:-.45rem;
  border:1px solid rgba(18,49,48,.12);
  border-radius:14px;
  background:#fff;
  box-shadow:0 16px 36px rgba(18,49,48,.1);
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button {
  display:grid;
  width:100%;
  min-height:54px;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.12rem .8rem;
  align-items:center;
  border:0;
  border-bottom:1px solid rgba(18,49,48,.08);
  border-radius:0;
  padding:.65rem .8rem;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button:hover,
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button:focus-visible { background:#f2f8f6; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button:last-of-type { border-bottom:0; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button span {
  overflow:hidden;
  font-size:.78rem;
  font-weight:820;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button small {
  overflow:hidden;
  color:var(--muted);
  font-size:.66rem;
  font-weight:560;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button i {
  grid-column:2;
  grid-row:1 / span 2;
  color:#52706e;
  font-size:.58rem;
  font-style:normal;
  font-weight:760;
  white-space:nowrap;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results > em {
  display:block;
  padding:.38rem .8rem;
  color:#718785;
  font-size:.75rem;
  font-style:normal;
  font-weight:400;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice legend { font-size:.67rem; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice > div {
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice label span {
  min-height:38px;
  padding:.48rem .72rem;
  font-size:.68rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker:not([hidden]) {
  margin-top:.25rem;
  padding-top:1.1rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.2rem 1rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header h4 {
  font-size:1.05rem;
  letter-spacing:-.025em;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header > small {
  align-self:end;
  color:var(--muted);
  font-size:.66rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail {
  scroll-padding-inline:.1rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(18,49,48,.18) transparent;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card {
  box-shadow:0 8px 20px rgba(18,49,48,.045);
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-detail-questions {
  gap:0;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-question { order:1; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-note-question { order:2; }
#itinerary-form.unified-plan-drawer.full-create-editor #event-more-details { order:3; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-time-question { order:4; }
#itinerary-form.unified-plan-drawer.full-create-editor .meal-links { order:5; }
#itinerary-form.unified-plan-drawer.full-create-editor .event-photo-manager { order:6; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-question {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-question > .plan-question-heading,
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode,
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results,
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-status {
  grid-column:1 / -1;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-field[hidden],
#itinerary-form.unified-plan-drawer.full-create-editor #plan-address-field[hidden] { display:none!important; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode {
  margin:0;
  border:0;
  padding:0;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode > div {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button {
  display:grid;
  min-height:66px;
  grid-template-columns:28px minmax(0,1fr);
  gap:.05rem .55rem;
  align-content:center;
  border:1px solid rgba(18,49,48,.14);
  border-radius:14px;
  padding:.62rem .7rem;
  background:#fff;
  color:var(--ink);
  text-align:left;
  box-shadow:none;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button > span {
  grid-row:1 / span 2;
  align-self:center;
  color:var(--primary);
  font-size:1rem;
  text-align:center;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button b {
  font-size:.72rem;
  line-height:1.2;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button small {
  color:var(--muted);
  font-size:.59rem;
  font-weight:560;
  line-height:1.3;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button:hover { border-color:rgba(14,119,119,.38); }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button.is-selected {
  border-color:rgba(14,119,119,.48);
  background:#edf7f4;
  box-shadow:inset 3px 0 0 var(--primary);
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results:not([hidden]) {
  display:grid;
  overflow:hidden;
  border:1px solid rgba(18,49,48,.12);
  border-radius:12px;
  background:#fff;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results button {
  display:grid;
  gap:.15rem;
  border:0;
  border-bottom:1px solid rgba(18,49,48,.08);
  border-radius:0;
  padding:.6rem .75rem;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results button:hover { background:#f2f8f6; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results button span { font-size:.72rem; font-weight:800; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results button small { color:var(--muted); font-size:.62rem; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results > em {
  display:block;
  padding:.38rem .75rem;
  color:#718785;
  font-size:.75rem;
  font-style:normal;
  font-weight:400;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-place-results > :last-child { border-bottom:0; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-status {
  min-height:1em;
  margin:0;
  color:var(--muted);
  font-size:.64rem;
  line-height:1.4;
}
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-status.is-ready { color:#17735f; font-weight:720; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-location-status.is-warning { color:#9a6415; font-weight:720; }
#itinerary-form.unified-plan-drawer.full-create-editor .plan-note-question { padding-top:1.2rem; }
#itinerary-form.unified-plan-drawer.full-create-editor .event-more-toggle {
  margin-top:1rem;
  border-radius:14px;
}
#itinerary-form.unified-plan-drawer.full-create-editor .placement-step { padding-top:1.25rem; }
#itinerary-form.unified-plan-drawer.full-create-editor .drawer-placement-fields { gap:.7rem; }

/* Session-only Google Places photo enrichment. Curated and organizer-owned
   media still render first; these styles only support lazily hydrated gaps. */
.destination-card-media.is-google-photo-pending .destination-card-fallback {
  opacity:.8;
}
.destination-google-card-credit,
.google-photo-attribution,
.destination-owned-photo-credit {
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:.12rem;
  color:#fff;
  font-size:.75rem;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
}
.destination-google-card-credit {
  position:absolute;
  z-index:4;
  top:.45rem;
  right:.45rem;
  max-width:calc(100% - .9rem);
  border-radius:999px;
  padding:.22rem .4rem;
  background:rgba(18,49,48,.78);
  box-shadow:0 2px 8px rgba(18,49,48,.12);
  backdrop-filter:blur(8px);
}
.destination-google-card-credit a,
.google-photo-attribution a {
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.destination-google-card-credit a:focus-visible,
.google-photo-attribution a:focus-visible {
  border-radius:2px;
  outline:2px solid #fff;
  outline-offset:2px;
}
.destination-detail-gallery {
  display:grid;
  width:100%;
  min-width:0;
  grid-auto-columns:100%;
  grid-auto-flow:column;
  gap:.55rem;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  border-radius:16px;
  scroll-snap-type:x mandatory;
  scrollbar-color:rgba(18,49,48,.22) transparent;
  scrollbar-width:thin;
}
.destination-detail-slide {
  position:relative;
  min-width:0;
  overflow:hidden;
  border-radius:16px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.destination-detail-slide .destination-detail-photo {
  width:100%;
  max-height:none;
  aspect-ratio:16 / 8;
  border-radius:inherit;
}
.destination-detail-slide.is-fallback {
  min-height:150px;
  background:linear-gradient(145deg,#e7f3f0,#f7f1ec);
}
.destination-detail-slide.is-fallback .destination-detail-photo {
  height:100%;
  min-height:150px;
  aspect-ratio:16 / 8;
}
.destination-detail-slide .google-photo-attribution,
.destination-detail-slide .destination-owned-photo-credit {
  position:absolute;
  z-index:2;
  right:.55rem;
  bottom:.5rem;
  left:.55rem;
  width:max-content;
  max-width:calc(100% - 1.1rem);
  border-radius:999px;
  padding:.26rem .45rem;
  background:rgba(18,49,48,.78);
  backdrop-filter:blur(8px);
}
.plan-picker-popover .destination-detail-media { margin:0; }
.plan-picker-popover .destination-detail-gallery { border-radius:13px; }
.plan-picker-popover .destination-detail-slide,
.plan-picker-popover .destination-detail-slide .destination-detail-photo {
  border-radius:13px;
}
.plan-picker-popover .destination-detail-slide .destination-detail-photo {
  height:150px;
  aspect-ratio:auto;
}
.plan-picker-popover .destination-detail-slide.is-fallback,
.plan-picker-popover .destination-detail-slide.is-fallback .destination-detail-photo {
  min-height:150px;
}

@media (min-width:1120px) {
  .destination-selection-detail.is-compact-card-detail .destination-detail-media { display:block; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-gallery { width:128px; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-slide,
  .destination-selection-detail.is-compact-card-detail .destination-detail-slide .destination-detail-photo {
    height:100px;
    min-height:100px;
    border-radius:12px;
  }
  .destination-selection-detail.is-compact-card-detail .google-photo-attribution,
  .destination-selection-detail.is-compact-card-detail .destination-owned-photo-credit {
    right:.35rem;
    bottom:.35rem;
    left:.35rem;
    max-width:calc(100% - .7rem);
    padding:.18rem .3rem;
  }
  .destination-selection-detail.is-compact-card-detail .google-photo-attribution {
    font-size:.75rem;
  }
  .destination-selection-detail.is-compact-card-detail .destination-owned-photo-credit {
    font-size:.55rem;
  }
  .destination-selection-detail.is-expanded-spotlight .destination-detail-gallery,
  .destination-selection-detail.is-expanded-spotlight .destination-detail-slide,
  .destination-selection-detail.is-expanded-spotlight .destination-detail-slide .destination-detail-photo {
    aspect-ratio:4 / 3;
  }
}

@media (prefers-reduced-motion:reduce) {
  .destination-card-media.is-google-photo-pending .destination-card-fallback { transition:none; }
}

@media (min-width:721px) {
  #itinerary-form.unified-plan-drawer.full-create-editor {
    --organizer-modal-width:900px;
    --organizer-modal-height:880px;
    width:min(900px,calc(100dvw - 2rem))!important;
    max-width:min(900px,calc(100dvw - 2rem))!important;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head,
  #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step],
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-wizard-actions {
    padding-right:var(--full-editor-pad);
    padding-left:var(--full-editor-pad);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head,
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-wizard-actions {
    margin-right:calc(var(--drawer-pad) * -1);
    margin-left:calc(var(--drawer-pad) * -1);
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail { grid-auto-columns:minmax(220px,31%); }
}

@media (max-width:720px) {
  #itinerary-form.unified-plan-drawer.full-create-editor {
    width:100dvw!important;
    max-width:100dvw!important;
    height:100dvh!important;
    max-height:100dvh!important;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step] { padding:1.1rem 0; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading h4 { font-size:1.2rem; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results button { min-height:52px; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header {
    grid-template-columns:1fr;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header > small { display:none; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail { grid-auto-columns:minmax(230px,78%); }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode > div { grid-template-columns:1fr; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-location-mode button { min-height:58px; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-location-question { grid-template-columns:1fr; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-location-question > * { grid-column:1!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .drawer-placement-fields { grid-template-columns:1fr 1fr; }
}
/* Guest Preview Studio: a secondary utility beside the trip summary. */
.overview-summary-grid { display:grid; min-width:0; grid-template-columns:minmax(0,2.05fr) minmax(280px,.72fr); align-items:end; gap:1.25rem; margin:1rem 0 1.35rem; }
.overview-summary-grid.has-single-attention { grid-template-columns:minmax(0,2.2fr) minmax(290px,.7fr); }
.overview-basics-section { display:grid; min-width:0; grid-template-rows:auto minmax(0,1fr); }
.overview-basics-heading.overview-section-heading { align-items:end; }
.overview-basics-heading .overview-edit-basics {
  min-width:44px;
  min-height:44px;
  margin:0 -.25rem -.08rem 0;
  border:0;
  border-radius:8px;
  padding:.5rem .25rem;
  background:transparent;
  box-shadow:none;
}
.overview-basics-heading .overview-edit-basics:hover { border:0; background:var(--surface-soft); }
.overview-basics-heading .overview-edit-basics:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.overview-summary-grid .overview-basics-panel { grid-area:auto; height:100%; grid-template-columns:minmax(0,1fr); margin:0; }
.overview-summary-grid .overview-basics-summary dl { grid-template-columns:repeat(4,minmax(0,1fr)); }
.overview-guest-preview { display:grid; width:100%; min-width:0; grid-template-columns:32px minmax(0,1fr); align-items:center; gap:.75rem; margin:0; border:1px solid var(--line); border-radius:14px; padding:.92rem 1rem; background:color-mix(in srgb,var(--surface) 96%,var(--surface-soft)); box-shadow:0 5px 16px rgba(18,49,48,.022); color:var(--ink); text-align:left; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.overview-guest-preview:hover { border-color:color-mix(in srgb,var(--primary) 24%,var(--line)); background:var(--surface); box-shadow:0 9px 22px rgba(18,49,48,.055); }
.overview-guest-preview:focus-visible { outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent); outline-offset:2px; }
.overview-guest-preview-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:9px; background:var(--surface-soft); color:var(--primary); }
.overview-guest-preview-icon svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.overview-guest-preview-copy { display:grid; min-width:0; gap:.22rem; }
.overview-guest-preview-copy small { color:var(--ink-muted); font-size:.68rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.overview-guest-preview-copy em { color:var(--ink-muted); font-size:.76rem; font-style:normal; font-weight:620; line-height:1.4; }
.overview-guest-preview-copy strong { display:flex; align-items:center; gap:.35rem; margin-top:.12rem; color:var(--primary); font-size:.76rem; line-height:1.35; }

.overview-map-label-control { margin-left:auto; }
.overview-map-label-control button { width:44px; padding:0!important; }
.overview-map-label-control button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

.preview-open { overflow:hidden; }
.preview-shell { position:fixed; z-index:1400; inset:0; background:#edf2f0; }
.preview-shell[hidden],.preview-upgrade-shell[hidden] { display:none!important; }
.live-preview.preview-studio { position:absolute; inset:0; display:grid; width:100%; height:100dvh; grid-template-rows:auto minmax(0,1fr); overflow:hidden; background:#edf2f0; box-shadow:none; animation:preview-studio-in .24s cubic-bezier(.2,.8,.2,1) both; }
.preview-studio-toolbar { position:relative; z-index:5; display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid #d5dfdc; padding:.75rem 1rem; background:rgba(255,255,255,.96); box-shadow:0 6px 24px rgba(18,54,52,.06); backdrop-filter:blur(12px); }
.preview-studio-title { display:flex; min-width:0; align-items:center; gap:.8rem; }
.preview-studio-title > button { display:grid; width:44px; height:44px; flex:none; place-items:center; border:1px solid #d4dfdc; border-radius:50%; background:#fff; color:#123634; font-size:1.1rem; }
.preview-studio-title > div { display:grid; min-width:0; gap:.05rem; }
.preview-studio-title span { color:#ef856f; font-size:.62rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.preview-studio-title h2 { overflow:hidden; margin:0; color:#123634; font-size:1.08rem; text-overflow:ellipsis; white-space:nowrap; }
.preview-studio-actions { display:flex; align-items:center; gap:.7rem; }
.preview-publication-status { display:inline-flex; min-height:34px; align-items:center; border-radius:999px; padding:.4rem .7rem; background:#fff6df; color:#8b5f20; font-size:.67rem; font-weight:800; }
.preview-publish-button { min-height:44px; border:0; border-radius:999px; padding:.65rem 1rem; background:#066460; color:#fff; font-size:.75rem; font-weight:850; }
.preview-publish-button:disabled { background:#cbd6d3; color:#687d7a; cursor:not-allowed; }
.preview-studio-body { display:grid; min-height:0; grid-template-columns:286px minmax(0,1fr); }
.preview-studio-controls { overflow-y:auto; border-right:1px solid #d5dfdc; padding:1.25rem 1rem 2rem; background:#f8faf9; }
.preview-studio-controls > section { margin-bottom:1.5rem; }
.preview-control-kicker { color:#ef856f; font-size:.62rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.preview-studio-controls h3 { margin:.3rem 0 .35rem; color:#123634; font-size:1rem; }
.preview-studio-controls section > p { margin:0 0 .8rem; color:#617875; font-size:.72rem; line-height:1.5; }
.preview-theme-list { display:grid; gap:.5rem; }
.preview-theme-list > button { display:grid; grid-template-columns:48px minmax(0,1fr) 18px; width:100%; align-items:center; gap:.7rem; border:1px solid #d6e1de; border-radius:14px; padding:.7rem; background:#fff; color:#123634; text-align:left; transition:border-color .15s ease,box-shadow .15s ease; }
.preview-theme-list > button.is-selected { border-color:#248879; box-shadow:0 0 0 2px rgba(36,136,121,.13); }
.preview-theme-list > button > span:nth-child(2) { display:grid; gap:.12rem; }
.preview-theme-list b { font-size:.76rem; }
.preview-theme-list small { color:#617875; font-size:.63rem; line-height:1.35; }
.preview-theme-list > button > i { color:#248879; font-style:normal; font-weight:900; }
.preview-theme-swatches { display:grid; width:46px; height:36px; grid-template-columns:1fr 1fr; overflow:hidden; border-radius:9px; }
.preview-theme-swatches i { background:var(--theme-swatch); }
.preview-theme-swatches i:first-child { grid-row:1/3; }
.preview-theme-message { min-height:20px; margin:.4rem 0 0!important; color:#248879!important; }
.preview-quality-summary { display:grid; gap:.2rem; margin:.75rem 0 .5rem; border-radius:12px; padding:.75rem; background:#edf5f3; }
.preview-quality-summary strong { color:#123634; font-size:.72rem; }
.preview-quality-summary span { color:#56706f; font-size:.62rem; line-height:1.45; }
.preview-snapshot-status { margin:0 0 .7rem!important; color:#248879!important; font-size:.62rem!important; font-weight:750; }
.preview-readiness { display:grid; gap:.8rem; }
.preview-readiness-group { display:grid; border-top:1px solid #dce5e2; }
.preview-readiness-group h4 { margin:0; padding:.55rem 0 .3rem; color:#718582; font-size:.57rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.preview-readiness-group > button { display:grid; width:100%; grid-template-columns:22px minmax(0,1fr) auto; min-height:42px; align-items:center; gap:.4rem; border:0; border-bottom:1px solid #dce5e2; padding:0; background:transparent; color:#123634; text-align:left; }
.preview-readiness-group > button:not(:disabled) { cursor:pointer; }
.preview-readiness-group > button:not(:disabled):hover,.preview-readiness-group > button:not(:disabled):focus-visible { background:#fff7ef; }
.preview-readiness span { display:grid; width:19px; height:19px; place-items:center; border-radius:50%; background:#eaf7f2; color:#248879; font-size:.62rem; font-weight:900; }
.preview-readiness b { font-size:.68rem; }
.preview-readiness small { color:#718582; font-size:.58rem; }
.preview-readiness .is-missing span { background:#fff6df; color:#9b671e; }
.preview-readiness .is-optional span { background:#eef2f1; color:#7d8d8a; }
.preview-private-note { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:start; gap:.7rem; border:1px solid #c9e3dc; border-radius:16px; padding:.85rem; background:#edf8f5; box-shadow:inset 3px 0 0 #248879; }
.preview-private-note > span { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:#d9efe9; color:#066460; }
.preview-private-note > span svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.preview-private-note > div { display:grid; gap:.2rem; min-width:0; }
.preview-private-note b { color:#123634; font-size:.7rem; line-height:1.35; }
.preview-private-note p { margin:0!important; color:#56706f!important; font-size:.63rem!important; line-height:1.5!important; }
.guest-visibility-choice { display:flex!important; min-height:58px; align-items:center; gap:.7rem; border:1px solid #c9e3dc; border-radius:13px; padding:.75rem!important; background:#f2faf7; }
.guest-visibility-choice input { width:18px!important; height:18px!important; flex:none; margin:0; accent-color:#066460; }
.guest-visibility-choice > span { display:grid; gap:.12rem; }
.guest-visibility-choice b { color:#123634; font-size:.74rem; }
.guest-visibility-choice small { color:#56706f; font-size:.64rem; font-weight:500; line-height:1.4; }
.organizer-page-actions { display:flex; align-items:center; gap:.65rem; }
.guest-output-link { display:inline-flex; min-height:44px; align-items:center; gap:.4rem; border:1px solid #c9ddd8; border-radius:999px; padding:.55rem .8rem; background:#fff; color:#066460; font-size:.7rem; font-weight:850; white-space:nowrap; }
.guest-output-link:hover,.guest-output-link:focus-visible { border-color:#248879; background:#edf8f5; }
.preview-live-access[hidden] { display:none; }
.preview-live-access > div { display:flex; gap:.35rem; }
.preview-live-access input { width:100%; min-width:0; min-height:40px; border:1px solid #cbd9d5; border-radius:11px; padding:.6rem .65rem; background:#fff; color:#123634; font-size:.64rem; }
.preview-live-access button { min-height:40px; flex:none; border:1px solid #cbd9d5; border-radius:999px; padding:.5rem .65rem; background:#fff; color:#066460; font-size:.65rem; font-weight:850; }
.preview-stage { min-width:0; min-height:0; overflow:auto; padding:1.25rem; background:radial-gradient(circle at 50% 0,#f8fbfa,#e7eeec 68%); }
.preview-device-switch { display:none; width:max-content; margin:0 auto 1rem; border:1px solid #cfdad7; border-radius:999px; padding:.25rem; background:#fff; }
.preview-device-switch button { min-height:38px; border:0; border-radius:999px; padding:.45rem .8rem; background:transparent; color:#617875; font-size:.7rem; font-weight:800; }
.preview-device-switch button.is-active { background:#066460; color:#fff; }
.preview-device-grid { display:grid; min-width:850px; grid-template-columns:minmax(560px,1fr) 286px; align-items:start; gap:1.25rem; }
.preview-device { overflow:hidden; border:1px solid #bdcbc7; border-radius:18px; background:#fff; box-shadow:0 22px 60px rgba(18,54,52,.14); }
.preview-device > header { display:flex; height:38px; align-items:center; justify-content:space-between; border-bottom:1px solid #dce5e2; padding:0 .75rem; background:#f8faf9; color:#6d817e; }
.preview-device > header > span { display:flex; gap:.3rem; }
.preview-device > header i { display:block; width:7px; height:7px; border-radius:50%; background:#d2ddda; }
.preview-device > header b { font-size:.6rem; letter-spacing:.04em; text-transform:uppercase; }
.preview-device-screen { height:clamp(560px,calc(100dvh - 155px),760px); overflow:auto; background:#f6f4ee; }
.preview-device-mobile { width:286px; justify-self:center; border-width:7px; border-color:#193e3c; border-radius:30px; }
.preview-device-mobile > header { background:#193e3c; color:#fff; }
.preview-device-mobile .preview-device-screen { width:100%; height:auto; aspect-ratio:390/806; }
.preview-device-mobile .guest-experience { width:100%; }

.preview-upgrade-shell { position:absolute; z-index:20; inset:0; display:grid; place-items:center; padding:1rem; }
.preview-upgrade-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(18,54,52,.54); backdrop-filter:blur(8px); }
.preview-upgrade-dialog { position:relative; width:min(560px,100%); border:1px solid rgba(255,255,255,.25); border-radius:26px; padding:2rem; background:#fff; box-shadow:0 32px 100px rgba(18,54,52,.35); }
.preview-upgrade-dialog > button:first-child { position:absolute; top:1rem; right:1rem; display:grid; width:44px; height:44px; place-items:center; border:1px solid #dce5e2; border-radius:50%; background:#fff; color:#123634; font-size:1.25rem; }
.preview-upgrade-dialog > span { color:#ef856f; font-size:.68rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.preview-upgrade-dialog h2 { max-width:440px; margin:.6rem 0 .8rem; color:#123634; font-size:2rem; letter-spacing:-.045em; line-height:1; }
.preview-upgrade-dialog > p { color:#56706f; line-height:1.6; }
.preview-upgrade-dialog ul { display:grid; gap:.55rem; margin:1.2rem 0; padding:0; list-style:none; }
.preview-upgrade-dialog li { display:flex; gap:.5rem; color:#123634; font-size:.78rem; font-weight:750; }
.preview-upgrade-dialog li::before { color:#248879; content:"✓"; }
.preview-upgrade-dialog > div { display:flex; align-items:center; gap:.7rem; }
.preview-upgrade-dialog .button:disabled { opacity:1; background:#dce5e2; color:#617875; cursor:not-allowed; }
.preview-publish-dialog label { display:grid; gap:.4rem; margin:1.2rem 0; color:#123634; font-size:.75rem; font-weight:800; }
.preview-publish-dialog label[hidden],.preview-publish-result[hidden] { display:none; }
.preview-publish-dialog label input { min-height:48px; border:1px solid #c8d8d4; border-radius:13px; padding:.75rem .85rem; color:#123634; font-size:16px; }
.preview-publish-dialog label small { color:#718582; font-size:.64rem; font-weight:500; }
.preview-publish-result { display:grid; gap:.4rem; margin:1.2rem 0; }
.preview-publish-result > span { color:#248879; font-size:.65rem; font-weight:850; text-transform:uppercase; }
.preview-publish-result > div { display:flex; gap:.45rem; }
.preview-publish-result input { width:100%; min-width:0; min-height:46px; border:1px solid #c8d8d4; border-radius:12px; padding:.7rem .8rem; background:#f5f8f7; color:#123634; }
.preview-publish-result button { min-height:46px; flex:none; border:1px solid #c8d8d4; border-radius:999px; padding:.6rem .8rem; background:#fff; color:#066460; font-size:.72rem; font-weight:850; }
.preview-publish-message { min-height:22px; margin:.4rem 0 .8rem!important; color:#b55445!important; font-size:.72rem; }
.preview-publish-message.success { color:#248879!important; }

@keyframes preview-studio-in { from { opacity:.75; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (max-width:1100px) {
  .overview-summary-grid { grid-template-columns:minmax(0,1.9fr) minmax(280px,.82fr); }
  .overview-summary-grid .overview-basics-panel { grid-template-columns:minmax(0,1fr); gap:.65rem; }
  .overview-summary-grid .overview-basics-summary dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .overview-summary-grid .overview-basics-summary dl > div:nth-child(odd) { border-left:0; padding-left:0; }
  .overview-summary-grid .overview-basics-summary dl > div:nth-child(n+3) { border-top:1px solid var(--line); padding-top:.8rem; }
  .preview-studio-body { grid-template-columns:250px minmax(0,1fr); }
  .preview-device-switch { display:flex; }
  .preview-device-grid { min-width:0; grid-template-columns:minmax(0,1fr); }
  .preview-device-grid[data-active-device="desktop"] .preview-device-mobile,.preview-device-grid[data-active-device="mobile"] .preview-device-desktop { display:none; }
  .preview-device-mobile { width:min(320px,100%); }
}
@media (max-width:899px) {
  .overview-summary-grid,.overview-summary-grid.has-single-attention { grid-template-columns:minmax(0,1fr); gap:.85rem; }
}
@media (max-width:720px) {
  .organizer-page-actions { width:100%; justify-content:space-between; }
  .guest-output-link { min-height:42px; }
  .overview-guest-preview { display:none; }
  .preview-studio-toolbar { min-height:68px; padding-top:calc(.55rem + env(safe-area-inset-top)); }
  .preview-studio-title h2 { font-size:.88rem; }
  .preview-studio-title span,.preview-publication-status { display:none; }
  .preview-publish-button { padding:.55rem .75rem; font-size:.68rem; }
  .preview-studio-body { display:block; overflow-y:auto; }
  .preview-studio-controls { overflow:visible; border:0; border-bottom:1px solid #d5dfdc; padding:1rem; }
  .preview-studio-controls > section:nth-child(2),.preview-private-note { display:none; }
  .preview-theme-list { display:flex; overflow-x:auto; margin-right:-1rem; padding-right:1rem; }
  .preview-theme-list > button { min-width:230px; }
  .preview-stage { overflow:visible; min-height:720px; padding:1rem; }
  .preview-device-screen { height:680px; }
  .preview-device-mobile .preview-device-screen { height:auto; aspect-ratio:390/806; }
  .preview-device-mobile { width:100%; max-width:320px; }
  .preview-upgrade-dialog { max-height:calc(100dvh - 1rem); overflow-y:auto; border-radius:22px; padding:1.5rem; }
  .preview-upgrade-dialog h2 { font-size:1.7rem; }
  .preview-upgrade-dialog > div { display:grid; }
}
@media (prefers-reduced-motion:reduce) {
  .overview-guest-preview,.live-preview.preview-studio { animation:none; transition:none; }
}
/* Itinerary task windows and anchored discovery details.
   These final rules intentionally replace the earlier drawer-era geometry. */
@media (min-width:721px) {
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) {
    --full-editor-pad:clamp(1.25rem,3vw,2rem);
    position:fixed!important;
    inset:50% auto auto 50%!important;
    width:min(780px,calc(100dvw - 2rem))!important;
    max-width:min(780px,calc(100dvw - 2rem))!important;
    height:auto!important;
    max-height:min(84dvh,900px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border:1px solid rgba(18,49,48,.13)!important;
    border-radius:24px!important;
    padding:0!important;
    background:#fffdfa!important;
    box-shadow:0 28px 90px rgba(18,49,48,.3)!important;
    transform:translate(-50%,-50%)!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-form-head {
    position:sticky;
    z-index:8;
    top:0;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:1rem;
    margin:0!important;
    border-bottom:1px solid var(--line);
    padding:1.2rem var(--full-editor-pad)!important;
    background:rgba(255,253,250,.97);
    backdrop-filter:blur(12px);
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-form-head h3 {
    margin:.2rem 0 0;
    font-size:1.55rem;
    letter-spacing:-.04em;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-head-actions { gap:.75rem; }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-status-choice > div {
    min-height:48px;
    gap:.25rem;
    padding:.25rem;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-status-choice label span {
    min-width:132px;
    min-height:40px;
    padding:.6rem .85rem;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-close {
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    margin:0!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) [data-plan-step],
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .event-edit-placement,
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-context-preview {
    width:auto!important;
    margin:0 var(--full-editor-pad)!important;
    padding:1.25rem 0!important;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="1"]::before { content:none!important; }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading {
    display:block!important;
    margin-bottom:.75rem;
  }
  #itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading h4 { margin:.2rem 0 0; }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) :is(input,select,textarea):focus-visible {
    outline:3px solid rgba(239,133,111,.32)!important;
    outline-offset:2px!important;
    box-shadow:none!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-location-mode > div {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.6rem!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-location-mode button {
    min-height:70px!important;
    border:1px solid rgba(18,49,48,.14)!important;
    border-radius:14px!important;
    padding:.7rem .8rem!important;
    background:#fff!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-location-mode button.is-selected {
    border-color:#2a8f86!important;
    background:#edf7f4!important;
    box-shadow:inset 3px 0 0 #2a8f86!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-wizard-actions {
    position:sticky!important;
    z-index:8;
    bottom:0;
    width:auto!important;
    margin:0!important;
    border-top:1px solid var(--line);
    padding:1rem var(--full-editor-pad)!important;
    background:rgba(255,253,250,.97);
    backdrop-filter:blur(12px);
  }
}

@media (min-width:1120px) {
  .destination-selection-detail.is-open.is-compact-card-detail {
    position:fixed!important;
    z-index:1250!important;
    inset:var(--destination-popover-top,16px) auto auto var(--destination-popover-left,16px)!important;
    display:block!important;
    width:min(500px,calc(100dvw - 32px))!important;
    max-width:min(500px,calc(100dvw - 32px))!important;
    height:auto!important;
    max-height:min(620px,calc(100dvh - 32px))!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .destination-selection-detail.is-open.is-compact-card-detail .destination-selection-backdrop,
  .destination-selection-detail.is-open.is-compact-card-detail .destination-detail-back {
    display:none!important;
  }
  .destination-selection-detail.is-open.is-compact-card-detail .destination-selection-close {
    position:absolute!important;
    z-index:4!important;
    top:.8rem!important;
    right:.8rem!important;
    width:38px!important;
    height:38px!important;
    border-radius:50%!important;
  }
  .destination-selection-detail.is-open.is-compact-card-detail .destination-detail-content {
    display:block!important;
    min-height:0!important;
    overflow-y:auto!important;
    padding:1rem 1.1rem .9rem!important;
  }
  .destination-selection-detail.is-open.is-compact-card-detail .destination-detail-content > header {
    padding-right:2.8rem;
  }
  .destination-selection-detail.is-open.is-compact-card-detail .destination-detail-panel > footer {
    position:static!important;
    display:flex!important;
    min-height:64px;
    align-items:center!important;
    justify-content:flex-end!important;
    padding:.75rem 1rem!important;
  }
  .planner-layout.is-supporting-open .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-bottom .destination-selection-detail.is-open,
  .planner-layout.is-supporting-open .layout-side .destination-selection-detail.is-open {
    position:fixed!important;
    z-index:1250!important;
    inset:var(--destination-popover-top,16px) auto auto var(--destination-popover-left,16px)!important;
    display:block!important;
    width:min(500px,calc(100dvw - 32px))!important;
    height:auto!important;
    max-height:min(620px,calc(100dvh - 32px))!important;
    overflow:visible!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-selection-backdrop,
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-back { display:none!important; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-panel,
  .destination-selection-detail.is-compact-card-detail .destination-detail-panel {
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:min(620px,calc(100dvh - 32px))!important;
    flex-direction:column;
    overflow:hidden!important;
    border:1px solid rgba(18,49,48,.15)!important;
    border-radius:20px!important;
    padding:0!important;
    background:#fffdfa!important;
    box-shadow:0 24px 70px rgba(18,49,48,.24)!important;
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-selection-close {
    top:.8rem!important;
    right:.8rem!important;
    width:38px!important;
    height:38px!important;
    border-radius:50%!important;
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-content {
    display:block!important;
    min-height:0!important;
    overflow-y:auto!important;
    padding:1rem 1.1rem .9rem!important;
  }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-content > header { padding-right:2.8rem; }
  .planner-layout.is-supporting-open .destination-selection-detail .destination-detail-panel > footer {
    position:static!important;
    display:flex!important;
    min-height:64px;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:.5rem!important;
    margin:0!important;
    border-top:1px solid var(--line)!important;
    padding:.75rem 1rem!important;
    background:#fffdfa!important;
  }
  .destination-selection-detail.is-compact-card-detail .destination-detail-media { display:block!important; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-gallery { width:100%!important; }
  .destination-selection-detail.is-compact-card-detail .destination-detail-slide,
  .destination-selection-detail.is-compact-card-detail .destination-detail-slide .destination-detail-photo {
    width:100%!important;
    height:210px!important;
    min-height:210px!important;
    border-radius:14px!important;
  }
}

/* Final itinerary task-window sizing. Kept at the end of the cascade so
   legacy drawer geometry cannot turn these surfaces back into side sheets. */
@media (min-width:721px) {
  body #itinerary-form.unified-plan-drawer.full-event-editor,
  body #itinerary-form.unified-plan-drawer.full-create-editor {
    inset:50% auto auto 50%!important;
    width:min(880px,calc(100dvw - 40px))!important;
    max-width:min(880px,calc(100dvw - 40px))!important;
    height:auto!important;
    max-height:min(88dvh,860px)!important;
    transform:translate(-50%,-50%)!important;
    border-radius:24px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  body #itinerary-form.unified-plan-drawer.full-event-editor {
    width:min(720px,calc(100dvw - 40px))!important;
    max-width:min(720px,calc(100dvw - 40px))!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head,
  body #itinerary-form.unified-plan-drawer.full-event-editor .plan-form-head {
    padding:1rem 1.4rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step],
  body #itinerary-form.unified-plan-drawer.full-event-editor [data-plan-step] {
    margin-inline:1.4rem!important;
    padding-block:1rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker {
    padding-top:.9rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header {
    margin-bottom:.65rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail {
    grid-auto-columns:minmax(210px,30%)!important;
    gap:.65rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card {
    min-height:214px!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card-media {
    height:88px!important;
    min-height:88px!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card-body {
    padding:.7rem!important;
  }
  body #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-wizard-actions {
    padding:.8rem 1.4rem!important;
  }
}

.destination-photo-viewer { position:relative; margin:0 0 1rem; }
.destination-photo-viewer .destination-detail-gallery { overflow:hidden!important; scrollbar-width:none; }
.destination-photo-viewer .destination-detail-gallery::-webkit-scrollbar { display:none; }
.destination-photo-viewer .destination-detail-slide { display:none; width:100%; }
.destination-photo-viewer .destination-detail-slide.is-active,
.destination-photo-viewer .destination-detail-slide.is-google-photo-pending:only-child { display:block; }
.destination-photo-control {
  position:absolute;
  z-index:5;
  top:50%;
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border:1px solid rgba(18,49,48,.14);
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#123634;
  box-shadow:0 6px 18px rgba(18,49,48,.18);
  font-size:1.35rem;
  transform:translateY(-50%);
}
.destination-photo-control.is-prev { left:.65rem; }
.destination-photo-control.is-next { right:.65rem; }

/* Guest Preview is a first-class organizer page. These final rules retire the
   former viewport overlay while preserving modals for publish-only actions. */
body .organizer-canvas .editor-panel[data-editor-panel="preview"] {
  position:static;
  z-index:auto;
  inset:auto;
  width:min(100%,1440px);
  max-width:1440px;
  min-height:0;
  overflow:visible;
  background:transparent;
}
body .organizer-canvas .editor-panel[data-editor-panel="preview"][hidden] { display:none!important; }
body .guest-preview-panel .live-preview.preview-studio {
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none;
}
.preview-page-header.preview-studio-toolbar {
  position:static;
  z-index:auto;
  display:grid;
  min-height:0;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  justify-content:normal;
  gap:1.25rem;
  margin:0 0 1.5rem;
  border:0;
  border-bottom:1px solid var(--line);
  padding:0 0 1.35rem;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.preview-page-header .preview-studio-title,
.preview-page-header .preview-studio-title > div { display:grid; min-width:0; gap:.45rem; }
.preview-page-header .preview-studio-title .eyebrow { display:block; margin:0; color:var(--coral); }
.preview-page-header .preview-studio-title h2 {
  overflow:visible;
  margin:0;
  color:var(--ink);
  font-family:Georgia,serif;
  font-size:clamp(2rem,3.1vw,3.35rem);
  font-weight:500;
  letter-spacing:-.055em;
  line-height:.98;
  text-overflow:clip;
  white-space:normal;
}
.preview-page-header .preview-studio-title p:last-child {
  max-width:44rem;
  margin:0;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.55;
}
.guest-preview-panel .preview-studio-body {
  display:grid;
  min-height:620px;
  grid-template-columns:minmax(240px,286px) minmax(0,1fr);
  overflow:hidden;
  border:1px solid #d5dfdc;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 50px rgba(18,54,52,.08);
}
.guest-preview-panel .preview-studio-controls {
  overflow:visible;
  border-right:1px solid #d5dfdc;
  padding:1.25rem 1rem 2rem;
}
.guest-preview-panel .preview-stage {
  min-height:620px;
  overflow:hidden;
  padding:1.25rem;
}
.guest-preview-panel .preview-device-grid {
  min-width:0;
  grid-template-columns:minmax(0,1fr) minmax(220px,260px);
}
.guest-preview-panel .preview-device-mobile { width:100%; max-width:260px; }
.guest-preview-panel .preview-device-screen { height:clamp(520px,62dvh,700px); }
.guest-preview-panel .preview-device-mobile .preview-device-screen {
  height:auto;
  aspect-ratio:390 / 806;
}
.guest-preview-panel .preview-upgrade-shell {
  position:fixed;
  z-index:1600;
  inset:0;
}

@media (min-width:1500px) {
  .guest-preview-panel .preview-device-grid { grid-template-columns:minmax(0,1fr) 286px; }
  .guest-preview-panel .preview-device-mobile { max-width:286px; }
}

@media (max-width:1100px) {
  .guest-preview-panel .preview-studio-body { grid-template-columns:250px minmax(0,1fr); }
  .guest-preview-panel .preview-device-grid { min-width:0; }
}

@media (max-width:720px) {
  .preview-page-header.preview-studio-toolbar {
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    gap:1rem;
    margin-bottom:1rem;
    padding:0 0 1rem;
  }
  .preview-page-header .preview-studio-title h2 { font-size:clamp(2rem,10vw,2.65rem); }
  .preview-page-header .preview-studio-title .eyebrow,
  .preview-page-header .preview-publication-status { display:inline-flex; }
  .preview-page-header .preview-studio-actions { width:100%; justify-content:space-between; }
  .guest-preview-panel .preview-studio-body {
    display:block;
    min-height:0;
    overflow:hidden;
    border-radius:16px;
  }
  .guest-preview-panel .preview-studio-controls { border-right:0; }
  .guest-preview-panel .preview-stage { min-height:0; overflow:visible; }
  .guest-preview-panel .preview-device-screen { height:620px; }
  .guest-preview-panel .preview-device-mobile {
    width:min(292px,100%);
    max-width:292px;
  }
  .guest-preview-panel .preview-device-mobile .preview-device-screen {
    height:auto;
    aspect-ratio:390 / 806;
  }
}

/* Compact create composer: the idea and its type stay primary; local picks are
   a short optional accelerator instead of taking over the task window. */
@media (min-width:721px) {
  body #itinerary-form.unified-plan-drawer.full-create-editor {
    --full-editor-pad:1.35rem;
    width:min(800px,calc(100dvw - 40px))!important;
    max-width:min(800px,calc(100dvw - 40px))!important;
    max-height:min(86dvh,780px)!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head {
    padding:.9rem 1.35rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head > div:first-child > p:last-child {
    max-width:30rem;
    margin-top:.15rem;
    font-size:.76rem;
    line-height:1.35;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-form-head h3 {
    font-size:1.42rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-status-choice > div {
    min-height:42px;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-status-choice label span {
    min-width:112px;
    min-height:34px;
    padding:.45rem .7rem;
    font-size:.7rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor [data-plan-step="1"] {
    display:flex!important;
    flex-direction:column!important;
    gap:.72rem!important;
    margin-inline:1.35rem!important;
    padding-block:1rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-question-main > .plan-question-heading {
    display:none!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field {
    order:1!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field > span {
    font-size:.72rem;
    font-weight:780;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-title-field input {
    min-height:52px;
    padding:.75rem .9rem;
    font-size:1rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-smart-results {
    order:2!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice {
    order:3!important;
    margin:0;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice > div {
    gap:.35rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-type-choice label span {
    min-height:34px;
    padding:.4rem .68rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker:not([hidden]) {
    order:4!important;
    display:grid!important;
    gap:.55rem!important;
    margin-top:.15rem!important;
    border-top:1px solid var(--line)!important;
    padding-top:.85rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header {
    align-items:end;
    margin:0!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header span {
    font-size:.61rem;
    letter-spacing:.13em;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header h4 {
    margin:.12rem 0 0;
    font-size:.94rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-destination-picker > header > small {
    font-size:.62rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-browser {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor :is(.plan-pick-types,.plan-pick-categories) {
    display:flex;
    flex-wrap:nowrap;
    gap:.25rem;
    margin:0;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor :is(.plan-pick-types,.plan-pick-categories) button {
    min-height:32px;
    padding:.35rem .65rem;
    font-size:.65rem;
    white-space:nowrap;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail-wrap {
    min-height:0;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail {
    grid-auto-columns:minmax(205px,31%)!important;
    gap:.55rem!important;
    padding:0 .1rem .15rem!important;
    scrollbar-width:none!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-rail::-webkit-scrollbar {
    display:none;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card {
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    min-height:138px!important;
    max-height:138px!important;
    overflow:hidden;
    border-radius:14px!important;
    background:#fff!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card-media {
    grid-column:1;
    grid-row:1 / span 2;
    width:72px!important;
    height:100%!important;
    min-height:138px!important;
    border-radius:0!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy {
    min-width:0;
    padding:.62rem .65rem .25rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy small {
    font-size:.52rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy strong {
    display:-webkit-box;
    overflow:hidden;
    margin-top:.08rem;
    font-size:.76rem;
    line-height:1.12;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-copy p {
    display:-webkit-box;
    overflow:hidden;
    margin-top:.22rem;
    font-size:.62rem;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card footer {
    grid-column:2;
    grid-row:2;
    gap:.3rem;
    padding:.3rem .6rem .58rem!important;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-pick-card footer button {
    min-height:30px;
    padding:.35rem .55rem;
    font-size:.6rem;
  }
  body #itinerary-form.unified-plan-drawer.full-create-editor .plan-wizard-actions {
    padding:.72rem 1.35rem!important;
  }
}
.destination-photo-viewer > figcaption {
  position:absolute;
  z-index:6;
  right:.65rem;
  bottom:.6rem;
  left:.65rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  color:#fff;
  font-size:.62rem;
  font-weight:800;
  pointer-events:none;
}
.destination-photo-viewer > figcaption > * {
  border-radius:999px;
  padding:.3rem .5rem;
  background:rgba(18,49,48,.78);
  backdrop-filter:blur(8px);
}
.destination-photo-viewer > figcaption a { color:#fff; pointer-events:auto; text-decoration:none; }

@media (max-width:720px) {
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) {
    padding-right:max(0px,env(safe-area-inset-right))!important;
    padding-left:max(0px,env(safe-area-inset-left))!important;
  }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-form-head { padding:calc(.85rem + env(safe-area-inset-top)) 1rem .85rem!important; }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) [data-plan-step] { padding-right:1rem!important; padding-left:1rem!important; }
  #itinerary-form.unified-plan-drawer:is(.full-event-editor,.full-create-editor) .plan-wizard-actions { padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom))!important; }
}

/* --------------------------------------------------------------------------
   Shared event task window — final authority
   Add Plan, Add Meal, and Edit Event intentionally share this one structure.
   Keep this block last so older composer and popover experiments cannot leak in.
   -------------------------------------------------------------------------- */
body #itinerary-form.shared-event-editor {
  position:fixed!important;
  z-index:10020!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  left:50%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;
  width:min(1040px,calc(100dvw - 48px))!important;
  min-width:0!important;
  max-width:1040px!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(18,54,52,.14)!important;
  border-radius:12px!important;
  background:#fffdfa!important;
  box-shadow:0 26px 70px rgba(18,49,48,.28)!important;
  transform:translate(-50%,-50%)!important;
  opacity:1!important;
}
body #itinerary-form.shared-event-editor > :is(.plan-form-head,.shared-event-editor-main,.shared-event-picker-view,.plan-wizard-actions) {
  grid-column:1!important;
  width:100%!important;
}
body #itinerary-form.shared-event-editor[hidden] { display:none!important; }
body #itinerary-form.shared-event-editor > :is(.plan-progress,[data-plan-step],.event-edit-placement,.plan-context-preview) { display:none!important; }
body #itinerary-form.shared-event-editor .plan-form-head {
  position:relative!important;
  inset:auto!important;
  z-index:3!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  min-height:76px!important;
  margin:0!important;
  padding:12px 24px!important;
  border:0!important;
  border-bottom:1px solid #dce5e2!important;
  background:#fffdfa!important;
}
body #itinerary-form.shared-event-editor .plan-form-head .eyebrow {
  margin:0 0 5px!important;
  color:#c56451!important;
  font-size:.66rem!important;
  font-weight:850!important;
  letter-spacing:.15em!important;
  text-transform:uppercase!important;
}
body #itinerary-form.shared-event-editor #plan-form-title {
  max-width:470px!important;
  overflow:hidden!important;
  margin:0!important;
  color:#123634!important;
  font-size:1.48rem!important;
  font-weight:780!important;
  line-height:1.1!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor #plan-step-copy {
  display:block!important;
  margin-top:5px!important;
  color:#56706f!important;
  font-size:.78rem!important;
  font-weight:520!important;
}
body #itinerary-form.shared-event-editor .plan-head-actions {
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice { margin:0!important; padding:0!important; border:0!important; }
body #itinerary-form.shared-event-editor .plan-status-choice legend { display:none!important; }
body #itinerary-form.shared-event-editor .plan-status-choice > div {
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  min-width:230px!important;
  min-height:42px!important;
  padding:3px!important;
  overflow:hidden!important;
  border:1px solid #dce5e2!important;
  border-radius:10px!important;
  background:#edf4f2!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice label { margin:0!important; }
body #itinerary-form.shared-event-editor .plan-status-choice label span {
  display:grid!important;
  min-width:0!important;
  min-height:34px!important;
  padding:0 12px!important;
  place-items:center!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#56706f!important;
  font-size:.76rem!important;
  font-weight:760!important;
  line-height:1!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .plan-status-choice input:checked + span {
  border-color:#dce5e2!important;
  background:#fff!important;
  color:#075f5c!important;
  box-shadow:0 3px 10px rgba(18,54,52,.08)!important;
}
body #itinerary-form.shared-event-editor .plan-close {
  display:grid!important;
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  margin:0!important;
  padding:0!important;
  place-items:center!important;
  border:1px solid #dce5e2!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#123634!important;
  font-size:1.28rem!important;
  line-height:1!important;
}
body #itinerary-form.shared-event-editor .shared-event-editor-main,
body #itinerary-form.shared-event-editor .shared-event-picker-view {
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0 24px!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
  overscroll-behavior:auto!important;
  scrollbar-gutter:auto!important;
  background:#fffdfa!important;
}
body #itinerary-form.shared-event-editor .shared-event-section {
  margin:0!important;
  padding:12px 0!important;
  border:0!important;
  border-bottom:1px solid #dce5e2!important;
  background:transparent!important;
}
body #itinerary-form.shared-event-editor .shared-event-section > header { margin:0 0 8px!important; }
body #itinerary-form.shared-event-editor .shared-event-section > header p,
body #itinerary-form.shared-event-editor .shared-event-picker-head p {
  margin:0!important;
  color:#c56451!important;
  font-size:.62rem!important;
  font-weight:850!important;
  letter-spacing:.15em!important;
  line-height:1.2!important;
  text-transform:uppercase!important;
}
body #itinerary-form.shared-event-editor .shared-event-grid,
body #itinerary-form.shared-event-editor .drawer-placement-fields,
body #itinerary-form.shared-event-editor .shared-event-location-fields {
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(270px,.9fr)!important;
  gap:14px!important;
  align-items:start!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
body #itinerary-form.shared-event-editor :is(.plan-title-field,.drawer-placement-fields label,.plan-place-field,.plan-address-field,.plan-note-question label) {
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  color:#486461!important;
  font-size:.72rem!important;
  font-weight:760!important;
}
body #itinerary-form.shared-event-editor :is(input,select,textarea) {
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border:1px solid #cfdad7!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#123634!important;
  box-shadow:none!important;
  outline:none!important;
}
body #itinerary-form.shared-event-editor :is(input,select) { min-height:40px!important; padding:7px 12px!important; font-size:.86rem!important; }
body #itinerary-form.shared-event-editor textarea { min-height:64px!important; padding:9px 12px!important; font-size:.84rem!important; resize:vertical!important; }
body #itinerary-form.shared-event-editor :is(input,select,textarea):focus-visible {
  border-color:#08716c!important;
  box-shadow:0 0 0 3px rgba(8,113,108,.14)!important;
}
body #itinerary-form.shared-event-editor .plan-smart-results { max-width:100%!important; }
body #itinerary-form.shared-event-editor .plan-type-choice { min-width:0!important; margin:0!important; padding:0!important; border:0!important; }
body #itinerary-form.shared-event-editor .plan-type-choice legend { margin:0 0 6px!important; color:#486461!important; font-size:.72rem!important; font-weight:760!important; }
body #itinerary-form.shared-event-editor .plan-type-choice > div {
  display:flex!important;
  flex-flow:row nowrap!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid #d5dfdc!important;
  border-radius:9px!important;
  background:#fff!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label { min-width:0!important; margin:0!important; }
body #itinerary-form.shared-event-editor .plan-type-choice label { flex:1 1 0!important; }
body #itinerary-form.shared-event-editor .plan-type-choice label[hidden] { display:none!important; }
body #itinerary-form.shared-event-editor .plan-type-choice label span {
  display:grid!important;
  min-width:0!important;
  min-height:40px!important;
  padding:0 6px!important;
  place-items:center!important;
  border:0!important;
  border-right:1px solid #dce5e2!important;
  border-radius:0!important;
  background:#fff!important;
  color:#56706f!important;
  font-size:.68rem!important;
  font-weight:720!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .plan-type-choice label:last-child span { border-right:0!important; }
body #itinerary-form.shared-event-editor .plan-type-choice input:checked + span {
  background:#eaf4f2!important;
  color:#075f5c!important;
  box-shadow:inset 0 0 0 1px #08716c!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode { width:100%!important; margin:0!important; padding:0!important; border:0!important; }
body #itinerary-form.shared-event-editor .plan-location-mode > div {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button {
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 16px!important;
  grid-template-rows:auto auto!important;
  align-content:center!important;
  min-width:0!important;
  min-height:58px!important;
  margin:0!important;
  padding:8px 12px!important;
  border:1px solid #d5dfdc!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#123634!important;
  text-align:left!important;
  box-shadow:none!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button > span { grid-row:1 / span 2!important; align-self:center!important; font-size:1rem!important; }
body #itinerary-form.shared-event-editor .plan-location-mode button b {
  grid-column:2!important;
  overflow:hidden!important;
  font-size:.76rem!important;
  line-height:1.2!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button small {
  grid-column:2!important;
  overflow:hidden!important;
  color:#637b78!important;
  font-size:.64rem!important;
  line-height:1.25!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button::after {
  grid-column:3!important;
  grid-row:1 / span 2!important;
  align-self:center!important;
  width:15px!important;
  height:15px!important;
  border:1px solid #9eb2ae!important;
  border-radius:50%!important;
  content:""!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button.is-selected {
  border-color:#08716c!important;
  background:#eef8f6!important;
  box-shadow:inset 3px 0 #08716c!important;
}
body #itinerary-form.shared-event-editor .plan-location-mode button.is-selected::after { border:4px solid #08716c!important; }
body #itinerary-form.shared-event-editor .shared-event-location-fields { margin-top:10px!important; }
body #itinerary-form.shared-event-editor :is(#plan-place-results,#shared-event-place-search-results) {
  z-index:8!important;
  width:100%!important;
  max-height:230px!important;
  overflow:auto!important;
  border:1px solid #d5dfdc!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 14px 32px rgba(18,54,52,.14)!important;
}
body #itinerary-form.shared-event-editor .plan-location-status { margin:8px 0 0!important; color:#56706f!important; font-size:.7rem!important; }
body #itinerary-form.shared-event-editor .plan-note-question,
body #itinerary-form.shared-event-editor .plan-note-question label { margin:0!important; padding:0!important; border:0!important; }
body #itinerary-form.shared-event-editor .plan-note-question > .plan-question-heading { display:none!important; }
body #itinerary-form.shared-event-editor .shared-event-optional { margin:0!important; padding:10px 0 12px!important; border:0!important; }
body #itinerary-form.shared-event-editor .event-more-toggle {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  width:100%!important;
  min-height:44px!important;
  margin:0!important;
  padding:8px 12px!important;
  border:1px solid #d5dfdc!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#123634!important;
  box-shadow:none!important;
  text-align:left!important;
}
body #itinerary-form.shared-event-editor .event-more-toggle small { display:block!important; color:#637b78!important; font-size:.66rem!important; }
body #itinerary-form.shared-event-editor .event-more-toggle svg { grid-column:2!important; grid-row:1 / span 2!important; width:18px!important; align-self:center!important; fill:none!important; stroke:currentColor!important; stroke-width:2!important; }
body #itinerary-form.shared-event-editor :is(#plan-time-question,#meal-links,#event-photo-manager) { display:none!important; }
body #itinerary-form.shared-event-editor.show-event-more :is(#plan-time-question,#meal-links,#event-photo-manager) {
  display:block!important;
  margin:14px 0 0!important;
  padding:14px 0 0!important;
  border:0!important;
  border-top:1px solid #dce5e2!important;
}
body #itinerary-form.shared-event-editor .plan-question-heading { display:none!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions {
  position:relative!important;
  inset:auto!important;
  z-index:4!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  min-height:58px!important;
  margin:0!important;
  padding:8px 24px!important;
  border:0!important;
  border-top:1px solid #dce5e2!important;
  background:#fffdfa!important;
}
body #itinerary-form.shared-event-editor .plan-wizard-actions .event-delete { margin-right:auto!important; color:#b65343!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions .form-message { margin-right:auto!important; }
body #itinerary-form.shared-event-editor .plan-wizard-actions button {
  min-height:42px!important;
  margin:0!important;
  padding:0 18px!important;
  border-radius:9px!important;
  font-size:.76rem!important;
  font-weight:760!important;
}
body #itinerary-form.shared-event-editor #save-plan { border:1px solid #075f5c!important; background:#075f5c!important; color:#fff!important; }
body #itinerary-form.shared-event-editor :is(#save-plan-to-hit-list,.full-event-cancel) { border:1px solid #d5dfdc!important; background:#fff!important; color:#075f5c!important; }
body #itinerary-form.shared-event-editor .shared-event-picker-view { padding-bottom:24px!important; }
body #itinerary-form.shared-event-editor .shared-event-picker-view {
  max-height:calc(100dvh - 160px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
}

@media (min-width:721px) {
  body #itinerary-form.shared-event-editor.show-event-more {
    grid-template-rows:auto minmax(0,1fr) auto!important;
    max-height:calc(100dvh - 24px)!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more .shared-event-editor-main {
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more #plan-time-question {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more .plan-time-range {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
}
body #itinerary-form.shared-event-editor .shared-event-picker-head {
  position:sticky!important;
  z-index:5!important;
  top:0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  margin:0!important;
  padding:18px 0 13px!important;
  border-bottom:1px solid #dce5e2!important;
  background:#fffdfa!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-head button {
  min-height:38px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid #d5dfdc!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#075f5c!important;
  font-weight:750!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-head h4 { margin:3px 0 0!important; color:#123634!important; font-size:1.25rem!important; }
body #itinerary-form.shared-event-editor .shared-event-place-search { position:relative!important; display:grid!important; gap:6px!important; margin:16px 0!important; color:#486461!important; font-size:.72rem!important; font-weight:760!important; }
body #itinerary-form.shared-event-editor #shared-event-place-search-results { position:absolute!important; top:calc(100% + 6px)!important; right:0!important; left:0!important; }
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-destination-picker {
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-destination-picker > header { display:none!important; }
body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-pick-rail { grid-auto-columns:minmax(210px,31%)!important; }

@media (max-width:720px) {
  body #itinerary-form.shared-event-editor {
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:none!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-form-head { min-height:0!important; padding:calc(12px + env(safe-area-inset-top)) 16px 12px!important; gap:10px!important; }
  body #itinerary-form.shared-event-editor #plan-form-title { max-width:40vw!important; font-size:1.18rem!important; }
  body #itinerary-form.shared-event-editor #plan-step-copy { font-size:.68rem!important; }
  body #itinerary-form.shared-event-editor .plan-head-actions { gap:7px!important; }
  body #itinerary-form.shared-event-editor .plan-status-choice > div { min-width:0!important; }
  body #itinerary-form.shared-event-editor .plan-status-choice label span { min-height:38px!important; padding:0 8px!important; font-size:.66rem!important; }
  body #itinerary-form.shared-event-editor .plan-close { width:38px!important; min-width:38px!important; height:38px!important; }
  body #itinerary-form.shared-event-editor .shared-event-editor-main,
  body #itinerary-form.shared-event-editor .shared-event-picker-view { padding:0 16px!important; }
  body #itinerary-form.shared-event-editor .shared-event-section { padding:16px 0!important; }
  body #itinerary-form.shared-event-editor .shared-event-grid,
  body #itinerary-form.shared-event-editor .drawer-placement-fields,
  body #itinerary-form.shared-event-editor .shared-event-location-fields { grid-template-columns:1fr!important; gap:12px!important; }
  body #itinerary-form.shared-event-editor .plan-type-choice > div { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode > div { grid-template-columns:1fr!important; }
  body #itinerary-form.shared-event-editor .plan-location-mode button { min-height:62px!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions { padding:10px 16px calc(10px + env(safe-area-inset-bottom))!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions .form-message { display:none!important; }
  body #itinerary-form.shared-event-editor .plan-wizard-actions :is(#save-plan,#save-plan-to-hit-list,.full-event-cancel) { flex:1 1 auto!important; padding-inline:10px!important; }
  body #itinerary-form.shared-event-editor .shared-event-picker-view .plan-pick-rail { grid-auto-columns:minmax(220px,82%)!important; }
}

@media (prefers-reduced-motion:reduce) {
  body #itinerary-form.shared-event-editor { transition:none!important; }
}

/* Shared event editor parity.
   The approved desktop reference is one calm vertical task window. Only
   intrinsically related controls (day + part of day) share a row. */
@media (min-width:721px) {
  body #itinerary-form.shared-event-editor {
    width:min(820px,calc(100dvw - 40px))!important;
    max-width:820px!important;
    max-height:calc(100dvh - 32px)!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
  }
  body #itinerary-form.shared-event-editor .plan-form-head {
    min-height:104px!important;
    padding:20px 28px 18px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-editor-main {
    display:block!important;
    padding:0 28px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scrollbar-gutter:stable!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-section {
    padding:14px 0!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-essentials-grid {
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  body #itinerary-form.shared-event-editor .drawer-placement-fields {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-location-fields {
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-location-fields label[hidden] {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode {
    margin-top:8px!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode > div {
    display:flex!important;
    align-items:center!important;
    gap:24px!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button[data-plan-location-mode="place"],
  body #itinerary-form.shared-event-editor .plan-location-mode button[data-plan-location-mode="later"] {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button {
    display:inline-grid!important;
    grid-template-columns:22px auto!important;
    grid-template-rows:auto!important;
    min-height:34px!important;
    width:auto!important;
    padding:4px 0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button > span {
    grid-column:1!important;
    grid-row:1!important;
    font-size:.95rem!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button b {
    grid-column:2!important;
    grid-row:1!important;
    font-size:.76rem!important;
    font-weight:700!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button small,
  body #itinerary-form.shared-event-editor .plan-location-mode button::after {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor .plan-location-mode button.is-selected {
    color:#075f5c!important;
    background:transparent!important;
    box-shadow:none!important;
    text-decoration:underline!important;
    text-underline-offset:3px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-guests {
    border-bottom:0!important;
  }
  body #itinerary-form.shared-event-editor textarea {
    min-height:62px!important;
  }
  body #itinerary-form.shared-event-editor .shared-event-optional {
    padding:0 0 14px!important;
  }
  body #itinerary-form.shared-event-editor .plan-wizard-actions {
    min-height:70px!important;
    padding:12px 28px!important;
  }
  body #itinerary-form.shared-event-editor:has(input[name="category"][value="meal"]:checked) .plan-type-choice {
    display:none!important;
  }
}

body #itinerary-form.shared-event-editor .shared-event-location-summary {
  display:grid!important;
  grid-template-columns:36px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  min-height:64px!important;
  padding:10px 12px!important;
  border:1px solid #cfe1dc!important;
  border-radius:10px!important;
  background:#eef8f6!important;
  color:#123634!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary[hidden] {
  display:none!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary > span {
  display:grid!important;
  width:34px!important;
  height:34px!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#075f5c!important;
  font-size:1rem!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary > div {
  display:grid!important;
  gap:3px!important;
  min-width:0!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary strong,
body #itinerary-form.shared-event-editor .shared-event-location-summary small {
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary strong {
  font-size:.84rem!important;
  font-weight:760!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary small {
  color:#56706f!important;
  font-size:.7rem!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-summary button {
  min-width:72px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid #bdd6d0!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#075f5c!important;
  font-size:.74rem!important;
  font-weight:760!important;
}
body #itinerary-form.shared-event-editor.has-selected-location :is(.shared-event-location-fields,.plan-location-mode,#plan-location-status) {
  display:none!important;
}

@media (max-width:720px) {
  body #itinerary-form.shared-event-editor .shared-event-location-summary {
    grid-template-columns:34px minmax(0,1fr) auto!important;
    gap:10px!important;
    padding:9px 10px!important;
  }
  body #itinerary-form.shared-event-editor .plan-wizard-actions :is(#save-plan,#save-plan-to-hit-list,.full-event-cancel) {
    flex:1 1 0!important;
    min-width:0!important;
    padding-inline:10px!important;
    white-space:nowrap!important;
  }
  body #itinerary-form.shared-event-editor .plan-wizard-actions #save-plan {
    flex-grow:1.45!important;
  }
}

/* Keep dirty-close confirmation above the event task window. */
body .confirm-shell {
  z-index:11050!important;
}

/* The shared composer infers its type from Add Plan/Add Meal and uses one
   address lookup instead of separate location modes and address fields. */
body #itinerary-form.shared-event-editor :is(.plan-type-choice,.plan-location-mode,#plan-address-field,.shared-event-location-summary) {
  display:none!important;
}
body #itinerary-form.shared-event-editor .shared-event-location-fields {
  grid-template-columns:minmax(0,1fr)!important;
}

/* Content-fit desktop composer.
   The default create/edit task stays in one column and grows with its content;
   expanded details retain a bounded scroll area for photos and links. */
@media (min-width:721px) {
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor) > .plan-step.plan-question.plan-question-main[data-plan-step="1"] {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) {
    width:min(820px,calc(100dvw - 32px))!important;
    max-width:820px!important;
    max-height:none!important;
    grid-template-rows:auto auto auto!important;
    gap:0!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-form-head {
    min-height:68px!important;
    padding:10px 18px!important;
    gap:14px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) #plan-form-title {
    font-size:1.3rem!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) #plan-step-copy {
    margin-top:3px!important;
    font-size:.72rem!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-status-choice > div {
    min-width:210px!important;
    min-height:38px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-status-choice label span {
    min-width:0!important;
    min-height:30px!important;
    padding:0 10px!important;
    font-size:.7rem!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-editor-main {
    display:block!important;
    padding:0 20px!important;
    overflow:visible!important;
    scrollbar-gutter:auto!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-section {
    padding:8px 0!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-section > header {
    margin-bottom:6px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-optional {
    padding:8px 0!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-guests {
    border-bottom:0!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) :is(input,select) {
    min-height:36px!important;
    padding:5px 10px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-title-field input {
    min-height:40px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-type-choice label span {
    min-height:36px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-guests textarea {
    height:50px!important;
    min-height:50px!important;
    padding:7px 10px!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .shared-event-location-fields {
    margin-top:0!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode {
    margin-top:4px!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode > div {
    display:flex!important;
    align-items:center!important;
    gap:18px!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button[data-plan-location-mode="place"],
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button[data-plan-location-mode="later"] {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button {
    display:inline-grid!important;
    grid-template-columns:20px auto!important;
    grid-template-rows:auto!important;
    width:auto!important;
    min-height:36px!important;
    padding:4px 0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button > span {
    grid-column:1!important;
    grid-row:1!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button b {
    grid-column:2!important;
    grid-row:1!important;
  }
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button small,
  body #itinerary-form.shared-event-editor.unified-plan-drawer:is(.full-event-editor,.full-create-editor):not(.show-event-more) .plan-location-mode button::after {
    display:none!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-wizard-actions {
    position:relative!important;
    bottom:auto!important;
    width:100%!important;
    min-height:54px!important;
    padding:6px 18px!important;
    backdrop-filter:none!important;
  }
  body #itinerary-form.shared-event-editor:not(.show-event-more) .plan-wizard-actions button {
    min-height:40px!important;
    padding-inline:15px!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more {
    width:min(820px,calc(100dvw - 32px))!important;
    max-height:calc(100dvh - 24px)!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
  }
  body #itinerary-form.shared-event-editor.show-event-more .shared-event-editor-main {
    display:block!important;
    overflow-y:auto!important;
  }
}
