:root{--neutral-50:#fefefb;--neutral-100:#faf8f3;--neutral-200:#f4efe8;--neutral-300:#e7e0d3;--neutral-400:#d4c9b8;--neutral-500:#bfb3a1;--neutral-600:#8c8577;--neutral-700:#6b6459;--neutral-800:#4a453c;--neutral-900:#26221c;--accent-50:#fdf2ee;--accent-100:#fae0d5;--accent-200:#f4c0a8;--accent-300:#ec9c78;--accent-400:#e07b52;--accent-500:#c65f3f;--accent-600:#9c4527;--accent-700:#7a3420;--accent-800:#5a2518;--accent-900:#3d1910;--green-50:#f2fbf6;--green-100:#daf3e8;--green-200:#bbe8d0;--green-300:#90d3b3;--green-400:#5eba92;--green-500:#359c72;--green-600:#277c59;--green-700:#1c5c41;--green-800:#123d2b;--green-900:#082118;--color-bg:var(--neutral-50);--color-surface:var(--neutral-100);--color-surface-raised:#fff;--color-surface-subtle:var(--neutral-200);--color-surface-hover:var(--neutral-200);--color-surface-accent:var(--accent-300);--color-surface-accent-light:var(--accent-200);--color-border:var(--neutral-300);--color-border-hover:var(--neutral-400);--color-border-focus:var(--neutral-500);--color-text:var(--neutral-900);--color-text-secondary:var(--neutral-700);--color-text-muted:var(--neutral-600);--color-text-brand:var(--accent-800);--color-text-brand-secondary:var(--accent-700);--color-text-placeholder:var(--neutral-500);--color-text-inverse:var(--accent-50);--color-cta:var(--accent-300);--color-cta-hover:var(--accent-100);--color-danger:#c0392b;--sans:"Lora", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--space-4xl:4rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-regular:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-weight-light:200;--font-weight-normal:400;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--border-width-thin:1px;--border-width-thick:2px;--border-radius-sm:6px;--border-radius-md:8px;--border-radius-lg:12px;--border-radius-xl:16px;--border-radius-xxl:24px;--border-radius-full:50px;--transition-fast:50ms ease;--transition-normal:.2s ease;--transition-slow:.3s ease;font-size:16px}@media (width<=768px){:root{font-size:17px}}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/lora-variable.woff2)format("woff2")}@font-face{font-family:Lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/lora-variable-italic.woff2)format("woff2")}#root{width:100%;height:100dvh}body{font-family:var(--sans);margin:0}p{margin:0}.app-shell{width:100%;height:100dvh;position:relative;overflow:hidden}.meta-section{background:var(--color-surface);flex-direction:column;display:flex}.meta-section-header{padding:var(--space-lg) 0;background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.meta-section-heading{align-items:center;gap:var(--space-sm);display:flex}.meta-section-icon{color:var(--color-text);flex-shrink:0;align-items:center;display:flex}.meta-section-title{font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em;margin:0}.meta-section-badge{font-family:var(--sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.meta-section-content{padding-bottom:var(--space-lg)}.share-popover{z-index:9999;width:300px;font-family:var(--sans);background:var(--color-surface-raised);border-radius:10px;animation:.16s ease-out both share-in;position:fixed;box-shadow:0 4px 14px #00000024,0 0 0 1px #00000012}@keyframes share-in{0%{opacity:0;transform:translateY(-6px)}}.share-popover-inner{padding:var(--space-lg)}.share-overlay{z-index:100;align-items:flex-end;display:flex;position:fixed;inset:0}.share-backdrop{background:var(--color-ink-a36);animation:.2s both backdrop-in;position:absolute;inset:0}@keyframes backdrop-in{0%{opacity:0}}.share-sheet{width:100%;font-family:var(--sans);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;background:var(--color-surface);animation:.28s cubic-bezier(.22,1,.36,1) both sheet-up;position:relative;box-shadow:0 -4px 24px #15232e2e}@keyframes sheet-up{0%{opacity:0;transform:translateY(60px)}}.share-sheet-handle{width:var(--space-2xl);height:var(--space-xs);background:var(--color-border);margin:var(--space-md) auto var(--space-xs);border-radius:2px}.share-sheet-body{padding:var(--space-sm) var(--space-lg) var(--space-xl)}.share-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.share-title{font-size:var(--font-size-lg);letter-spacing:-.015em;color:var(--color-text);margin:0;font-weight:650}.share-close{width:var(--space-xl);height:var(--space-xl);color:var(--color-text-muted);border:var(--border-width-thin) solid transparent;cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;transition:background .12s,color .12s;display:flex}.share-close:hover{color:var(--color-text);background:var(--color-ink-a07)}.share-close:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px}.share-context{margin:0 0 var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}@media (prefers-reduced-motion:reduce){.share-popover,.share-sheet,.share-backdrop{animation:none}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-pulse{0%,to{opacity:1}50%{opacity:.25}}.spinner{vertical-align:middle;transform-origin:50%;flex-shrink:0;animation:.65s linear infinite spinner-rotate;display:inline-block}.spinner--sm{width:12px;height:12px}.spinner--md{width:15px;height:15px}.spinner-track{stroke:currentColor;stroke-width:2px;opacity:.2}.spinner-arc{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-dasharray:20 18}@media (prefers-reduced-motion:reduce){.spinner{animation:1.1s ease-in-out infinite spinner-pulse}}.share-links{gap:var(--space-sm);flex-direction:column;display:flex}.share-item{gap:var(--space-xs);padding:var(--space-md);border-radius:var(--border-radius-md);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);flex-direction:column;display:flex}.share-item-row{align-items:center;gap:var(--space-sm);display:flex}.share-item-icon{color:var(--color-text-brand);flex-shrink:0;justify-content:center;align-items:center;display:flex}.share-item-icon--admin{color:var(--color-text-brand)}.share-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.share-item-group{gap:var(--space-xs);flex-direction:column;display:flex}.share-item-caveat{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:left;margin:0;line-height:1.45}.share-copy{height:28px;font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;color:var(--color-text-brand);background:var(--color-cta-hover);border:var(--border-width-thin) solid transparent;border-radius:var(--border-radius-md);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;margin-left:auto;padding:0 13px;transition:background .12s,border-color .12s;display:inline-flex}.share-copy:hover{background:var(--color-cta)}.share-copy:focus-visible{outline:2px solid var(--color-cta);outline-offset:1px}.share-copy:disabled{opacity:.6;cursor:default}.navigate{z-index:2;position:relative}.navigate-btn{align-items:center;gap:var(--space-xs);min-height:36px;padding:0 var(--space-md);font-family:var(--sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-brand);border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;display:inline-flex}.navigate-btn:hover,.navigate-btn[aria-expanded=true]{background:var(--color-cta-hover)}.navigate-open{text-decoration:none}.navigate-logo{width:22px;height:22px}@media (width<=720px){.navigate-btn{min-height:44px}}.copy-menu-cta{width:100%}.copy-icon{background-color:currentColor;width:17px;height:17px;display:block;-webkit-mask:url(/Copy.svg) 50%/contain no-repeat;mask:url(/Copy.svg) 50%/contain no-repeat}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.trip-card{border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;width:100%;max-width:100%;max-height:90dvh;padding:var(--space-xl) var(--space-lg);border-bottom:none;border-left:none;border-right:none;inset:auto 0 0;overflow-y:auto;transform:none}}@media (prefers-reduced-motion:reduce){.trip-card-step{animation:none}.trip-card-cta{transition:none}}@media (prefers-reduced-motion:reduce){.utf-toggle,.utf-toggle-thumb{transition:none}}@keyframes trip-status-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.trip-card-status{animation:none}}.ucd-step{padding:var(--space-lg) var(--space-xl) var(--space-xl)}.ucd-heading{margin:var(--space-lg) 0 var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-tight)}.ucd-body{margin:0 0 var(--space-xl);font-size:var(--font-size-regular);color:var(--color-text-muted);line-height:var(--line-height-normal)}.ucd-actions{gap:var(--space-md);flex-direction:column;display:flex}.ucd-discard{width:100%;padding:var(--space-md);font-family:var(--sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-cta);cursor:pointer;text-align:center;transition:color var(--transition-fast);border-radius:var(--border-radius-sm);background:0 0;border:none;display:block}.ucd-discard:hover{background:var(--color-cta-hover)}.ucd-discard:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px;border-radius:var(--border-radius-sm)}.plot-animation{padding:var(--space-lg) 0;justify-content:center;align-items:center;display:flex}.plot-svg{width:120px;height:auto;display:block}@keyframes route-flow{0%{stroke-dashoffset:10px}to{stroke-dashoffset:0}}@keyframes route-dot-move{to{offset-distance:100%}}.route-road{stroke:var(--accent-300);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:5 3.5;animation:.42s linear infinite route-flow}.route-dot{fill:var(--accent-500);offset-path:path("M6,24 C20,24 22,10 38,12 S62,26 78,18 S96,10 114,14");offset-distance:0%;animation:1.6s linear infinite route-dot-move}@media (prefers-reduced-motion:reduce){@keyframes plot-pulse{0%,to{opacity:1}50%{opacity:.35}}.route-road{animation:none}.route-dot{offset-distance:50%;animation:1.4s ease-in-out infinite plot-pulse}}:root{--back-btn-size:32px;--mobile-topbar-height:var(--space-3xl)}.planner{top:calc(var(--space-lg) + var(--back-btn-size) + var(--space-sm));left:var(--space-lg);bottom:var(--space-lg);z-index:2;overscroll-behavior:contain;background:var(--color-surface);width:340px;color:var(--color-text);border:var(--border-width-thin) solid var(--color-border);font-family:var(--sans);border-radius:10px;flex-direction:column;display:flex;position:absolute;overflow-y:auto}.view-header{align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-lg) var(--space-xs) var(--space-lg);display:flex}.view-title-wrap{flex:1;min-width:0}.view-subtitle{margin:var(--space-xs) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.view-subtitle a{color:var(--color-text-brand);text-decoration:underline}.view-title{font-size:var(--font-size-xl);letter-spacing:-.015em;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-weight:650;line-height:1.2;overflow:hidden}.view-header-actions{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.view-header-share{position:relative}.header-icon-btn{width:32px;height:32px;color:var(--color-text-brand);border-radius:var(--border-radius-md);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s;display:flex}.header-icon-btn:hover:not(:disabled),.header-icon-btn--active{background:var(--color-cta-hover)}.header-icon-btn:focus-visible{outline:2px solid var(--color-cta-hover);outline-offset:2px}.header-icon-btn:disabled{opacity:.4;cursor:default}.itinerary--readonly .itinerary-item{grid-template-columns:26px 1fr}.itinerary-nights-static{font-family:var(--sans);font-size:var(--font-size-xs);color:var(--color-text-muted)}.itinerary-controls{align-items:center;column-gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;grid-column:2/-1;display:flex}.view-footer{margin-top:var(--space-lg);text-align:center}.view-footer-cta{width:100%;font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-semibold);color:var(--color-text-brand);padding:var(--space-lg);cursor:pointer;background:0 0;border:none;text-decoration:none}.view-footer-cta:hover{color:var(--color-cta)}.view-footer-cta:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px;border-radius:3px}.planner-search{padding:var(--space-lg);position:relative}.planner-input{box-sizing:border-box;width:100%;padding:var(--space-md);padding-right:calc(var(--space-2xl) + 16px);font-family:var(--sans);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);outline:none;line-height:1.4;transition:border-color .14s}.planner-input::placeholder{color:var(--color-text-muted)}.planner-input:focus-visible{border-color:var(--color-border-focus)}.planner-input-hint{right:var(--space-2xl);font-family:var(--sans);font-size:var(--font-size-sm);color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.planner-search-btn{right:var(--space-2xl);border-radius:var(--border-radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .12s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.planner-search-btn:hover{color:var(--color-text)}.planner-results{left:var(--space-lg);right:var(--space-lg);top:calc(100% - var(--space-sm));overscroll-behavior:contain;z-index:3;max-height:275px;padding:var(--space-xs);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);margin:0;list-style:none;position:absolute;overflow-y:auto}.planner-results>li{transition:opacity var(--transition-normal)}.planner-results--stale>li{opacity:.5}.planner-results-msg{padding:var(--space-sm);color:var(--color-text-muted);font-size:13px}.planner-result{width:100%;padding:var(--space-sm);text-align:left;border-radius:var(--border-radius-sm);cursor:pointer;font-family:var(--sans);background:0 0;border:none;flex-direction:column;gap:2px;display:flex}.planner-result:hover,.planner-result:focus-visible{background:var(--color-surface-subtle);outline:none}.planner-result-name{font-size:var(--font-size-regular);color:var(--color-text);font-weight:550}.planner-result-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.planner-empty{padding:var(--space-sm) var(--space-lg) var(--space-lg);font-size:13px;line-height:var(--line-height-normal);color:var(--color-text-muted);margin:0}.itinerary{padding:var(--space-xs) var(--space-sm) var(--space-sm);margin:0;list-style:none}.itinerary-item{gap:var(--space-md);font-family:var(--sans);padding:var(--space-md);padding-bottom:var(--space-lg);border-radius:var(--border-radius-md);transition:background var(--transition-fast);grid-template-columns:26px 1fr auto;align-items:start;row-gap:0;display:grid;position:relative}.itinerary-item:hover{background:var(--color-surface-hover)}.itinerary-item:not(:last-child):before{content:"";left:calc(var(--space-md) + 13px);top:calc(var(--space-md) + var(--space-sm) + 26px);bottom:calc(-1 * (var(--space-md) + var(--space-sm)));border-left:var(--border-width-thin) dotted var(--color-cta);position:absolute}.itinerary-node{margin-top:var(--space-sm);background:var(--color-surface-accent-light);width:26px;height:26px;color:var(--color-text-brand);font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-medium);z-index:1;border-radius:50%;justify-content:center;align-self:start;align-items:center;display:flex}.itinerary-body{flex-direction:column;gap:1px;min-width:0;padding-top:3px;display:flex}.itinerary-location-btn{gap:var(--space-xs);min-width:0;font-family:var(--sans);text-align:left;cursor:pointer;border-radius:var(--border-radius-sm);transition:opacity var(--transition-fast);background:0 0;border:none;flex-direction:column;padding:0;display:flex}.itinerary-location-btn:after{content:"";border-radius:var(--border-radius-md);position:absolute;inset:0}.itinerary-node{pointer-events:none}.itinerary-item .nights-stepper,.itinerary-item .itinerary-actions{z-index:2;position:relative}.itinerary-item:hover .itinerary-location-btn,.itinerary-location-btn:hover{color:var(--color-text-brand)}.itinerary-location-btn:focus-visible{outline:none}.itinerary-location-btn:focus-visible:after{outline:2px solid var(--color-cta);outline-offset:-2px}.itinerary-name{font-size:var(--font-size-regular);color:var(--color-text);font-weight:550;line-height:1.2}.itinerary-label{font-size:var(--font-size-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.itinerary-actions{gap:2px;padding-top:1px;display:flex}.itinerary-item .itinerary-move-btn{display:none}.itinerary-item--selected .itinerary-move-btn,.itinerary-item:focus-within .itinerary-move-btn{display:flex}.icon-btn{width:var(--space-2xl);height:var(--space-2xl);font-size:var(--font-size-regular);color:var(--color-text);border:var(--border-width-thin) solid transparent;cursor:pointer;background:0 0;border-radius:5px;justify-content:center;align-items:center;line-height:1;display:flex}.icon-btn:hover:not(:disabled){background:var(--color-cta-hover);border-color:var(--color-border)}.icon-btn:focus-visible{outline:2px solid var(--color-cta);outline-offset:1px}.icon-btn:disabled{color:var(--color-text-placeholder);cursor:default}.icon-btn--danger:hover:not(:disabled){background:var(--color-cta-hover)}.nights-stepper{align-items:center;gap:var(--space-xs);display:flex}.nights-btn{width:36px;height:36px;color:var(--color-text-brand);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.nights-btn:hover:not(:disabled){background:var(--color-cta-hover)}.nights-count{font-family:var(--sans);font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;width:3.5rem}.trip{padding:var(--space-xs) var(--space-lg) var(--space-2xl)}.meta-block{padding:0 calc(var(--space-sm) + var(--space-md) - var(--space-lg));background:var(--color-surface);flex-direction:column;display:flex}.meta-block-divider{height:var(--space-sm);margin:var(--space-sm) 0 var(--space-xs);background-color:var(--color-border-hover);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4 Q4 0 8 4 T16 4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") 50%/16px 8px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4 Q4 0 8 4 T16 4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") 50%/16px 8px repeat-x}.planner-error{margin:var(--space-sm) 0 0;border-top:none;padding-top:0}.trip-status,.trip-error{margin:var(--space-md) 0 0;padding-top:var(--space-md);border-top:var(--border-width-thin) solid var(--color-border);font-size:13px}.trip-status{color:var(--color-text-muted)}.trip-error{color:var(--color-text)}.trip-stats-wrap{position:relative}.trip-stats-wrap .plot-animation{background:var(--color-surface-raised);border-radius:var(--border-radius-sm);justify-content:center;align-items:center;padding:0;display:flex;position:absolute;inset:0}.trip-detail{margin-top:var(--space-sm);flex-direction:column;display:flex}.trip-chips{gap:var(--space-sm);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-lg);white-space:nowrap;display:inline-flex}.chip--stat{gap:var(--space-md)}.chip--stat svg{color:var(--color-text-muted);flex-shrink:0}.leg-table{border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);width:100%;overflow:hidden}.leg-row{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-sm);background:var(--color-surface-raised);display:flex}.leg-row+.leg-row{border-top:var(--border-width-thin) solid var(--color-border)}.leg-row--alt{background:var(--color-surface-subtle)}.leg-row-route{min-width:0;font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-overflow:ellipsis;flex:1;overflow:hidden}.leg-row-badges{gap:var(--space-xs);flex-shrink:0;display:flex}.leg-badge{padding:4px var(--space-sm);font-family:var(--sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.legs{margin:0;padding:0;list-style:none}.leg{gap:var(--space-xs);padding:var(--space-sm) 0;border-bottom:var(--border-width-thin) dotted var(--color-border);flex-direction:column;display:flex}.leg:first-child{padding-top:2px}.leg:last-child{border-bottom:none;padding-bottom:2px}.leg-route{font-size:var(--font-size-regular);font-weight:var(--font-weight-regular);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.leg-data{font-family:var(--sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.trip-save{z-index:5;padding:var(--space-md) var(--space-lg);background:var(--color-surface);border-top:var(--border-width-thin) solid var(--color-border);margin-top:auto;position:sticky;bottom:0}.trip-actions{gap:var(--space-sm);display:flex}.trip-cta{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-semibold);color:var(--color-text-brand);background:var(--color-cta);border:var(--border-width-thin) solid var(--color-cta);border-radius:var(--border-radius-md);cursor:pointer;flex:1;transition:background .14s,color .14s;display:inline-flex}.trip-cta:hover:not(:disabled){background:var(--color-cta-hover);border-color:var(--color-cta-hover)}.trip-cta:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px}.trip-cta:disabled{color:var(--color-text-placeholder);background:var(--color-surface-subtle);border-color:var(--color-border);cursor:default}.trip-cta--ghost{color:var(--color-cta);background:0 0}.trip-cta--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-cta);border-color:var(--color-cta)}.trip-save-error{margin-top:var(--space-md);border-top:none;padding-top:0}.planner-unsaved-bar{padding:0 var(--space-lg) var(--space-sm)}.trip-unsaved{align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-surface-subtle);border-radius:var(--border-radius-md);display:flex}.trip-unsaved-label{font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text);flex:1}.trip-unsaved-cta{padding:var(--space-sm);font-family:var(--sans);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;color:var(--color-text);background:var(--color-cta);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;flex-shrink:0;transition:background .12s}.trip-unsaved-cta:hover{background:var(--color-cta-hover)}.trip-unsaved-cta:focus-visible{outline:2px solid var(--color-cta);outline-offset:1px}@media (prefers-reduced-motion:reduce){.planner{scroll-behavior:auto}}.back-btn--wrap{top:var(--space-lg);left:var(--space-lg);z-index:3;position:fixed}.back-btn--wrap .back-btn{width:var(--back-btn-size);height:var(--back-btn-size);background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 2px 8px #0000001f}@media (width<=720px){.planner{box-sizing:border-box;border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;width:100%;transition:height .6s cubic-bezier(.22,1,.36,1);position:fixed;inset:auto 0 0}.planner[data-sheet-state=peek]{height:80px;overflow:hidden}.planner[data-sheet-state=peek] .planner-error,.planner[data-sheet-state=peek] .planner-empty,.planner[data-sheet-state=peek] .itinerary,.planner[data-sheet-state=peek] .trip,.planner[data-sheet-state=peek] .trip-section,.planner[data-sheet-state=peek] .trip-nav,.planner[data-sheet-state=peek] .trip-footer,.planner[data-sheet-state=peek] .meta-block,.planner[data-sheet-state=peek] .trip-save,.planner[data-sheet-state=peek] .planner-unsaved-bar{display:none}.planner-topbar{top:max(var(--space-lg), env(safe-area-inset-top));left:var(--space-lg);right:var(--space-lg);z-index:3;align-items:stretch;gap:var(--space-sm);display:flex;position:fixed}.planner-topbar[data-sheet-state=full]{z-index:1}.planner-topbar .back-btn{width:var(--space-3xl);background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);flex-shrink:0;height:auto;box-shadow:0 2px 8px #0000001f}.planner-search--top{flex:1;min-width:0;padding:0}.planner-search--top .planner-input{height:var(--mobile-topbar-height);background:var(--color-surface);box-shadow:0 2px 8px #0000001f}.planner-search--top .planner-input-hint,.planner-search--top .planner-search-btn{right:var(--space-md)}.planner-search--top .planner-results{left:0;right:0;top:calc(100% + var(--space-xs));max-height:55dvh;box-shadow:0 4px 16px #00000029}.planner-search-error{padding:0 var(--space-lg)}.planner[data-sheet-state=mid]{touch-action:pan-y;overscroll-behavior-y:contain;height:35dvh;overflow-y:auto}.planner[data-sheet-state=full]{touch-action:pan-y;overscroll-behavior-y:contain;height:100dvh;overflow-y:auto}.planner-handle{z-index:10;width:100%;padding:var(--space-md) 0;background:var(--color-surface);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;cursor:grab;touch-action:none;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:sticky;top:0}.planner-handle:active{cursor:grabbing}.planner .view-header{touch-action:none;cursor:grab}.planner .view-header:active{cursor:grabbing}.planner .view-header button{cursor:pointer;touch-action:manipulation}.planner[data-sheet-state=mid] .planner-handle,.planner[data-sheet-state=full] .planner-handle{border-bottom:var(--border-width-thin) dotted var(--color-border)}.planner-handle-grip{width:var(--space-2xl);height:var(--space-xs);background:var(--color-border);border-radius:2px;transition:background .12s}.planner-handle:hover .planner-handle-grip,.planner-handle:active .planner-handle-grip{background:var(--color-text-muted)}.planner-handle:focus-visible{outline:2px solid var(--color-cta);outline-offset:-2px}.icon-btn,.nights-btn{width:44px;height:44px}.itinerary-actions{gap:var(--space-xs)}}@media (width<=720px) and (prefers-reduced-motion:reduce){.planner{transition:none}}.featured{--featured-card-width:11rem;--featured-card-height:6.5rem;--featured-bleed:var(--space-2xl);margin-top:var(--space-md);padding-top:var(--space-lg);border-top:var(--border-width-thin) dotted var(--color-border)}.featured-header{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:var(--space-xl);margin-bottom:var(--space-md);display:flex}.featured-heading{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:var(--line-height-tight);margin:0}.featured-nav{gap:var(--space-xs);display:flex}.featured-nav-btn{width:var(--space-xl);height:var(--space-xl);color:var(--color-text);background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-full);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:flex}.featured-nav-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.featured-nav-btn[aria-disabled=true]{color:var(--color-text-muted);opacity:.5;cursor:default}.featured-nav-btn:focus-visible{outline:var(--border-width-thick) solid var(--color-cta);outline-offset:2px}.featured-scroller{gap:var(--space-md);margin:0 calc(-1 * var(--featured-bleed));padding:var(--space-xs) var(--featured-bleed);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--featured-bleed);scrollbar-width:none;list-style:none;display:flex;overflow-x:auto}.featured-scroller::-webkit-scrollbar{display:none}.featured-item,.featured-skeleton-card{flex:0 0 var(--featured-card-width);height:var(--featured-card-height);scroll-snap-align:start}.featured-skeleton-card,.featured-skeleton-bar{background:var(--color-surface-subtle);animation:1.4s ease-in-out infinite featured-pulse;display:block}.featured-skeleton-card{border-radius:var(--border-radius-lg)}.featured-skeleton-bar--title{width:8rem;height:var(--font-size-lg);border-radius:var(--border-radius-sm)}@keyframes featured-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.featured-skeleton-card,.featured-skeleton-bar{animation:none}}@media (width<=720px){.featured{--featured-bleed:var(--space-lg)}}.welcome-planner{box-sizing:border-box;width:440px;max-width:calc(100vw - var(--space-2xl));z-index:10;background:var(--color-surface);color:var(--color-text);border:var(--border-width-thin) solid var(--color-border);font-family:var(--sans);border-radius:10px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.welcome-body{padding:var(--space-2xl)}.welcome-title{margin:0 0 var(--space-lg);font-size:var(--font-size-xl);letter-spacing:-.015em;color:var(--color-text);font-weight:650;line-height:1.2}.welcome-search{padding-bottom:var(--space-md);position:relative}.welcome-input{box-sizing:border-box;width:100%;padding:var(--space-md);padding-right:calc(var(--space-md) * 2 + 16px);font-family:var(--sans);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);outline:none;line-height:1.4;transition:border-color .14s}.welcome-input::placeholder{color:var(--color-text-muted)}.welcome-input:focus-visible{border-color:var(--color-border-focus)}.welcome-input-hint{right:var(--space-md);top:calc(50% - var(--space-md) / 2);font-family:var(--sans);font-size:var(--font-size-sm);color:var(--color-text-muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.welcome-search-btn{right:var(--space-md);top:calc(50% - var(--space-md) / 2);border-radius:var(--border-radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .12s;display:flex;position:absolute;transform:translateY(-50%)}.welcome-search-btn:hover{color:var(--color-text)}.welcome-results{left:0;right:0;top:calc(100% - var(--space-sm));overscroll-behavior:contain;z-index:3;max-height:275px;padding:var(--space-xs);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);margin:0;list-style:none;position:absolute;overflow-y:auto}.welcome-results-msg{padding:var(--space-sm);color:var(--color-text-muted);font-size:13px}.welcome-result{width:100%;padding:var(--space-sm);text-align:left;border-radius:var(--border-radius-sm);cursor:pointer;font-family:var(--sans);background:0 0;border:none;flex-direction:column;gap:2px;display:flex}.welcome-result:hover,.welcome-result:focus-visible{background:var(--color-surface-subtle);outline:none}.welcome-result-name{font-size:var(--font-size-regular);color:var(--color-text);font-weight:550}.welcome-result-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.welcome-explore-link{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;transition:color var(--transition-fast);text-decoration:none;display:block}.welcome-explore-link:hover{color:var(--color-text);text-decoration:underline}@media (width<=720px){.welcome-planner{border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;border-bottom:none;border-left:none;border-right:none;width:100%;max-width:100%;max-height:none;transition:height .6s cubic-bezier(.22,1,.36,1);inset:auto 0 0;overflow:hidden;transform:none}.welcome-planner[data-sheet-state=peek]{touch-action:pan-y;overscroll-behavior-y:contain;height:260px;overflow-y:auto}.welcome-planner[data-sheet-state=full]{touch-action:pan-y;overscroll-behavior-y:contain;height:92dvh;overflow-y:auto}.welcome-handle{z-index:10;width:100%;padding:var(--space-sm) 0;background:var(--color-surface);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;cursor:grab;touch-action:none;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:sticky;top:0}.welcome-handle:active{cursor:grabbing}.welcome-title{touch-action:none;cursor:grab}.welcome-planner[data-sheet-state=full] .welcome-handle{border-bottom:var(--border-width-thin) dotted var(--color-border)}.welcome-handle-grip{width:var(--space-2xl);height:var(--space-xs);background:var(--color-border);border-radius:2px;transition:background .12s}.welcome-handle:hover .welcome-handle-grip,.welcome-handle:active .welcome-handle-grip{background:var(--color-text-muted)}.welcome-handle:focus-visible{outline:2px solid var(--color-cta);outline-offset:-2px}.welcome-body{padding:var(--space-xl) var(--space-lg)}}@media (width<=720px) and (prefers-reduced-motion:reduce){.welcome-planner{transition:none}}.trip-card{box-sizing:border-box;width:440px;max-width:calc(100vw - var(--space-2xl));max-height:calc(100vh - var(--space-2xl));max-height:calc(100dvh - var(--space-2xl));z-index:10;background:var(--color-surface);color:var(--color-text);border:var(--border-width-thin) solid var(--color-border);font-family:var(--sans);padding:var(--space-2xl);border-radius:10px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.trip-card-step{animation:.2s forwards fadeSlideIn}.trip-card-cta{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);font-family:var(--sans);font-size:var(--font-size-regular);font-weight:var(--font-weight-semibold);color:var(--color-text-brand);background:var(--color-cta);border-radius:var(--border-radius-md);cursor:pointer;border:none;transition:background .14s;display:inline-flex}.trip-card-cta:hover{background:var(--color-cta-hover)}.trip-card-cta:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px}.trip-card-back{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-lg);font-family:var(--sans);font-size:var(--font-size-regular);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.trip-card-back:hover{color:var(--color-text)}.trip-card-back:focus-visible{outline:2px solid var(--color-cta);outline-offset:2px;border-radius:3px}.trip-field{margin-bottom:var(--space-lg)}.trip-label{margin-bottom:var(--space-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text);display:block}.trip-input{appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:var(--space-md);font-family:var(--sans);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);outline:none;line-height:1.4;transition:border-color .14s}.trip-input[type=date]::-webkit-date-and-time-value{text-align:left}.trip-input::placeholder{color:var(--color-text-muted)}.trip-input:focus-visible{border-color:var(--color-border-focus)}.trip-input--error{border-color:var(--color-danger)}.trip-field-error{margin:var(--space-xs) 0 0;font-size:var(--font-size-xs);color:var(--color-danger)}@media (width<=720px){.trip-card{border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;width:100%;max-width:100%;max-height:90dvh;padding:var(--space-xl) var(--space-lg);border-bottom:none;border-left:none;border-right:none;inset:auto 0 0;overflow-y:auto;transform:none}}@media (prefers-reduced-motion:reduce){.trip-card-step{animation:none}.trip-card-cta{transition:none}}.utf-visibility-row{margin-bottom:var(--space-lg);position:relative}.utf-visibility-checkbox{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.utf-visibility-label{justify-content:space-between;align-items:center;gap:var(--space-md);cursor:pointer;padding:var(--space-md);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-surface-raised);transition:border-color var(--transition-fast);display:flex}.utf-visibility-label:hover{border-color:var(--color-border-focus)}.utf-visibility-checkbox:focus-visible+.utf-visibility-label,.utf-visibility-label:focus-within{outline:2px solid var(--color-cta);outline-offset:2px}.utf-visibility-text{gap:var(--space-xs);flex-direction:column;display:flex}.utf-visibility-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:var(--line-height-tight)}.utf-visibility-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--line-height-normal)}.utf-toggle{border-radius:var(--border-radius-full);background:var(--color-border);width:2.25rem;height:1.25rem;transition:background var(--transition-normal);flex-shrink:0;align-items:center;padding:2px;display:inline-flex}.utf-toggle--on{background:var(--color-cta)}.utf-toggle-thumb{background:var(--color-surface);width:1rem;height:1rem;transition:transform var(--transition-normal);border-radius:50%;display:block;box-shadow:0 1px 3px #00000026}.utf-toggle--on .utf-toggle-thumb{transform:translate(1rem)}@media (prefers-reduced-motion:reduce){.utf-toggle,.utf-toggle-thumb{transition:none}}.trip-card-status{margin:0 0 var(--space-lg);color:var(--color-text-muted);text-align:center;font-size:15px}.trip-card-status--error{color:var(--color-text);margin-bottom:var(--space-lg)}a.trip-card-cta--anchor{text-align:center;text-decoration:none;display:block}.trip-card-status:not(.trip-card-status--error){animation:1.6s ease-in-out infinite trip-status-pulse}@media (prefers-reduced-motion:reduce){.trip-card-status{animation:none}}.utf-success{text-align:center;padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);flex-direction:column;align-items:center;display:flex}.utf-saved-stamp{padding:var(--space-md) var(--space-lg);font-family:var(--sans);font-size:13px;font-weight:var(--font-weight-bold);letter-spacing:.28em;color:var(--color-text-brand);background:var(--color-surface-subtle);border:var(--border-width-thick) dashed var(--color-text-brand);border-radius:var(--border-radius-sm);transform-origin:50%;margin-bottom:var(--space-xl);animation:.48s cubic-bezier(.22,1,.36,1) both stamp-thump;display:inline-block;transform:rotate(-3deg)}@keyframes stamp-thump{0%{opacity:0;transform:rotate(-3deg)scale(1.35)}55%{opacity:1;transform:rotate(-3deg)scale(.9)}78%{transform:rotate(-3deg)scale(1.04)}to{opacity:1;transform:rotate(-3deg)scale(1)}}.utf-saved-body{align-items:stretch;gap:var(--space-lg);opacity:0;flex-direction:column;width:100%;animation:.3s .26s both utf-body-in;display:flex}@keyframes utf-body-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.utf-saved-lead{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);text-align:left;margin:0}.utf-saved-sub{font-size:var(--font-size-regular);color:var(--color-text-muted);text-align:left;line-height:var(--line-height-normal);margin:-8px 0 0}.utf-back-cta{margin-top:var(--space-sm)}@media (prefers-reduced-motion:reduce){.utf-saved-stamp,.utf-saved-body{opacity:1;animation:none}}
