/* Avelune v0.4.0 Home component */

/* Avelune v0.3.24 — Home dashboard */
.aveluneDashboard{
  min-height:100dvh;
  background:
    radial-gradient(circle at 82% 18%,rgb(var(--avelune-gold-rgb)/.08),transparent 27rem),
    var(--avelune-blue);
  color:var(--avelune-ivory);
}
.dashboardHeader .dashboardActions{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
}
.dashboardIntro{padding-bottom:22px!important}
.dashboardTripBar{
  width:min(1320px,calc(100% - 48px));
  margin:0 auto 12px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
}
.dashboardTripBar h3{
  margin:3px 0 0;
  font:700 26px/1.05 Georgia,serif;
  color:var(--avelune-ivory);
}
.avelunePastTrips{
  height:40px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid rgba(215,168,86,.62);
  background:rgba(255,250,240,.04);
  color:#e7c27a;
  font-weight:800;
}
.avelunePastTrips:disabled{opacity:.38}

.tripCarouselShell{
  position:relative;
  width:min(1380px,100%);
  margin:0 auto;
  padding:0 40px 34px;
  box-sizing:border-box;
}
.aveluneTripGrid{
  display:flex!important;
  grid-template-columns:none!important;
  gap:20px!important;
  width:100%;
  overflow-x:auto!important;
  overflow-y:visible!important;
  padding:4px max(2px,calc((100% - 570px)/2)) 18px!important;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
.aveluneTripGrid::-webkit-scrollbar{display:none}
.aveluneTripCard{
  flex:0 0 min(570px,82vw)!important;
  width:min(570px,82vw)!important;
  min-width:0!important;
  border:1px solid rgba(225,204,168,.86)!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:var(--avelune-ivory)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.18)!important;
  scroll-snap-align:center;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}
.aveluneTripCard:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 58px rgba(0,0,0,.24)!important;
}
.aveluneTripCard:focus-visible{outline:3px solid var(--avelune-border-focus);outline-offset:4px}
.tripCardVisual{
  position:relative;
  min-height:270px!important;
  padding:34px 34px!important;
  display:flex!important;
  align-items:flex-end!important;
  background:
    radial-gradient(circle at 86% 18%,rgba(215,168,86,.45),transparent 48%),
    linear-gradient(135deg,#08283a,#123c4b 62%,#8e713e)!important;
  background-size:cover!important;
  background-position:center!important;
  box-sizing:border-box;
}
.tripCardVisual.hasImage{background-size:cover!important;background-position:center!important}
.tripCardVisual h3{
  width:min(470px,92%);
  margin:0!important;
  color:var(--avelune-ivory)!important;
  font:700 clamp(30px,3.3vw,48px)/1.05 Georgia,serif!important;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.tripCardVisual>span,.tripCardVisual>p,.tripCardVisual>div{display:none!important}
.tripCardFooter{
  min-height:82px!important;
  padding:0 28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  background:var(--avelune-ivory)!important;
  color:#1f3a48!important;
  font-weight:750!important;
}
.tripCardFooter button{display:none!important}
.tripCarouselArrow{
  position:absolute;
  top:50%;
  transform:translateY(-55%);
  z-index:5;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(215,168,86,.72);
  background:var(--avelune-ivory);
  color:#08283a;
  font-size:34px;
  line-height:1;
  box-shadow:0 9px 26px rgba(0,0,0,.18);
}
.tripCarouselArrow.prev{left:10px}
.tripCarouselArrow.next{right:10px}

/* Account + past trips use the same centered luxury pop-out language as Explore & Add */
.dashboardPopout{
  width:min(780px,calc(100vw - 28px));
  max-width:780px;
  max-height:92dvh;
  border:0;
  padding:0;
  background:transparent;
}
.dashboardPopout::backdrop{
  background:rgba(3,24,39,.72);
  backdrop-filter:blur(7px);
}
.dashboardPopoutCard{
  position:relative;
  width:100%;
  max-height:90dvh;
  overflow:auto;
  box-sizing:border-box;
  padding:30px;
  border-radius:26px;
  border:1px solid #dfc89f;
  background:linear-gradient(180deg,#fffdf8,#fff7e9);
  color:#102b39;
  box-shadow:0 32px 100px rgba(0,0,0,.34);
}
.dashboardPopoutClose{
  position:absolute;
  top:20px;
  right:20px;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid #d8c7aa;
  background:#fff;
  color:#102b39;
  font-size:23px;
}
.accountPopupHead{
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding-right:52px;
  margin-bottom:22px;
}
.accountAvatar{
  width:66px;height:66px;border-radius:20px;
  display:grid;place-items:center;
  background:var(--avelune-blue);color:var(--avelune-gold);
  font:700 24px Georgia,serif;
}
.accountPopupHead h2,.dashboardPopoutCard>h2{
  margin:4px 0 5px;
  font:700 38px/1.05 Georgia,serif;
  color:var(--avelune-blue);
}
.accountPopupHead p,.dashboardPopoutIntro{margin:0;color:#667b84}
.accountPopupSections{display:grid;gap:14px}
.accountSection{
  border:1px solid #e2d3bb;
  border-radius:18px;
  background:#fff;
  padding:18px;
}
.accountSectionHead h3,.googleIntegrationCopy h3{margin:3px 0 5px;font-size:18px;color:#102b39}
.accountSectionHead p,.googleIntegrationCopy p{margin:0;color:#708087;font-size:12px}
.accountFormGrid{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
}
.accountFormGrid label{display:grid;gap:5px;font-size:11px;font-weight:850;color:#6b604f}
.accountFormGrid input{
  width:100%;height:46px;box-sizing:border-box;
  border:1px solid #d9ccb8;border-radius:12px;
  background:#fffdf9;color:#102b39;padding:0 12px;
}
.accountSave{margin-top:14px;border-radius:999px!important}
.googleIntegrationCard{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
}
.googleIntegrationIcon{
  width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;background:#f3eee5;
  color:#1b6bd1;font-size:20px;font-weight:900;
}
.googleIntegrationCopy small{display:block;margin-top:7px;color:#9a7d4d;font-weight:750}
.accountPopupFooter{
  margin-top:18px;padding-top:16px;border-top:1px solid #e4d8c7;
  display:flex;justify-content:flex-end;
}
.accountSignOut{
  border:0;background:transparent;color:#a14335;font-weight:850;padding:10px 4px;
}
@media(max-width:760px){
  .dashboardHeader{
    padding-left:16px!important;padding-right:16px!important;
  }
  .dashboardHeader .authBrand.compact p{display:none}
  .dashboardActions{gap:6px!important}
  .dashboardActions button{padding-left:11px!important;padding-right:11px!important;font-size:11px!important}
  .dashboardIntro{padding-left:20px!important;padding-right:20px!important}
  .dashboardTripBar{
    width:calc(100% - 36px);
    margin-bottom:8px;
  }
  .tripCarouselShell{width:100%;padding:0 0 26px}
  .aveluneTripGrid{
    padding:3px 9vw 16px!important;
    gap:14px!important;
  }
  .aveluneTripCard{
    flex:0 0 82vw!important;
    width:82vw!important;
    border-radius:21px!important;
  }
  .tripCardVisual{min-height:235px!important;padding:25px!important}
  .tripCardVisual h3{font-size:34px!important}
  .tripCardFooter{min-height:68px!important;padding:0 20px!important}
  .tripCarouselArrow{display:none}
  .dashboardPopoutCard{padding:23px 16px}
  .accountPopupHead{grid-template-columns:54px minmax(0,1fr);padding-right:42px}
  .accountAvatar{width:52px;height:52px;border-radius:16px;font-size:19px}
  .accountPopupHead h2,.dashboardPopoutCard>h2{font-size:30px}
  .accountFormGrid{grid-template-columns:1fr}
  .googleIntegrationCard{grid-template-columns:45px minmax(0,1fr)}
  .googleIntegrationCard button{grid-column:1/-1;width:100%;border-radius:999px}
}

.pastTripsPage{min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 78% 5%,rgba(203,162,85,.13),transparent 30rem),linear-gradient(180deg,#081a2f 0,#0b2636 31rem,#f4efe6 31rem);color:var(--avelune-ivory)}
.pastTripsHeader{width:min(1320px,calc(100% - 48px));height:86px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.pastTripsHeader .aveluneBack{justify-self:start}.pastTripsHeader img{width:148px}
html.avelunePastTripsMode,body.avelunePastTripsMode{height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important}
body.avelunePastTripsMode #aveluneShell{height:auto!important;min-height:100dvh!important;overflow:visible!important}
.pastTripsMain{position:relative!important;inset:auto!important;display:block!important;width:min(1240px,calc(100% - 48px))!important;max-width:1240px!important;height:auto!important;margin:0 auto!important;padding:44px 0 72px!important;overflow:visible!important}
.pastTripsIntro{max-width:720px;margin-bottom:32px}.pastTripsIntro h1{margin:8px 0 12px;font:700 clamp(42px,6vw,72px)/.98 Georgia,serif;letter-spacing:-.035em}.pastTripsIntro p{max-width:620px;color:rgba(255,250,240,.72);font-size:16px;line-height:1.65}
.pastTripsSearchRow{display:flex;align-items:center;gap:18px;margin-bottom:28px}.pastTripsSearch{flex:1;max-width:720px;min-height:58px;display:flex;align-items:center;gap:12px;padding:0 16px 0 20px;border:1px solid rgba(223,200,159,.68);border-radius:18px;background:rgba(255,250,240,.10);box-shadow:0 16px 34px rgba(0,0,0,.13);backdrop-filter:blur(12px)}.pastTripsSearch>span{font-size:26px;color:#e7c27a}.pastTripsSearch input{flex:1;min-width:0;border:0!important;outline:0;background:transparent!important;color:#fffaf0!important;font-size:16px}.pastTripsSearch input::placeholder{color:rgba(255,250,240,.58)}.pastTripsSearch button{border:0;background:transparent;color:#e7c27a;font-weight:800}.pastTripsSearchRow>small{color:rgba(255,250,240,.62);white-space:nowrap}
.pastTripGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px;color:#102b39}.pastTripGrid .aveluneTripCard{width:100%!important;flex:none!important;border-radius:22px!important}.pastTripGrid .tripCardVisual{min-height:220px!important;padding:25px!important}.pastTripGrid .tripCardVisual h3{font-size:clamp(28px,3vw,38px)!important}.pastTripGrid .tripCardFooter{min-height:78px!important;padding:0 22px!important}.pastTripGrid .tripCardFooter div{display:flex;min-width:0;flex-direction:column;gap:5px}.pastTripGrid .tripCardFooter b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#102b39;font-size:14px}.pastTripGrid .tripCardFooter span{color:#60727a;font-size:12px;letter-spacing:.02em}
.pastTripsEmpty{padding:72px 24px;text-align:center;border:1px solid rgba(223,200,159,.72);border-radius:24px;background:#fffaf0;color:#102b39;box-shadow:0 22px 60px rgba(4,25,39,.14)}.pastTripsEmpty h2{margin:8px 0 10px;font:700 clamp(30px,4vw,44px)/1.05 Georgia,serif}.pastTripsEmpty p{max-width:550px;margin:0 auto 20px;color:#64757c;line-height:1.6}
@media(max-width:760px){.pastTripsHeader{width:calc(100% - 32px);height:72px}.pastTripsHeader img{width:126px}.pastTripsMain{width:calc(100% - 32px)!important;padding:28px 0 50px!important}.pastTripsIntro{margin-bottom:24px}.pastTripsIntro h1{font-size:43px}.pastTripsSearchRow{align-items:stretch;flex-direction:column;gap:9px}.pastTripsSearchRow>small{padding-left:4px}.pastTripGrid{grid-template-columns:1fr;gap:18px}.pastTripGrid .tripCardVisual{min-height:210px!important}}


/* Avelune v0.3.25 — smaller home trip cards + bottom Past Trips */
.dashboardTripBar{
  align-items:end!important;
}
.dashboardBottomActions{
  width:min(1320px,calc(100% - 48px));
  margin:6px auto 34px;
  display:flex;
  justify-content:center;
}
.dashboardBottomActions .avelunePastTrips{
  min-width:160px;
}

/* About 20% smaller than v0.3.24 */
.aveluneTripGrid{
  padding-left:max(2px,calc((100% - 456px)/2))!important;
  padding-right:max(2px,calc((100% - 456px)/2))!important;
}
.aveluneTripCard{
  flex-basis:min(456px,66vw)!important;
  width:min(456px,66vw)!important;
}
.tripCardVisual{
  min-height:216px!important;
  padding:27px!important;
}
.tripCardVisual h3{
  width:min(390px,92%)!important;
  font-size:clamp(25px,2.65vw,38px)!important;
}
.tripCardFooter{
  min-height:66px!important;
  padding:0 22px!important;
}

/* Custom trip art always wins over the stock Avelune gradient. */
.tripCardVisual.hasImage{
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}

@media(max-width:760px){
  .dashboardBottomActions{
    width:calc(100% - 36px);
    margin-top:4px;
    margin-bottom:28px;
  }
  .aveluneTripGrid{
    padding-left:12vw!important;
    padding-right:12vw!important;
  }
  .aveluneTripCard{
    flex-basis:66vw!important;
    width:66vw!important;
  }
  .tripCardVisual{
    min-height:188px!important;
    padding:20px!important;
  }
  .tripCardVisual h3{
    font-size:28px!important;
  }
  .tripCardFooter{
    min-height:58px!important;
    padding:0 16px!important;
    font-size:12px!important;
  }
}


/* v0.3.26 — mobile Home account access */
.aveluneBottomAccount{
  display:none;
}
@media(max-width:760px){
  .dashboardActions #dashboardAccount{
    display:none!important;
  }
  .dashboardBottomActions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    align-items:center!important;
    justify-items:stretch!important;
  }
  .dashboardBottomActions .avelunePastTrips,
  .dashboardBottomActions .aveluneBottomAccount{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    height:44px!important;
    padding:0 14px!important;
    border-radius:999px!important;
    font-weight:850!important;
  }
  .dashboardBottomActions .aveluneBottomAccount{
    border:1px solid rgba(215,168,86,.62)!important;
    background:rgba(255,250,240,.04)!important;
    color:#e7c27a!important;
  }
}

/* v0.3.30 — Family + notifications in Account */
.familyAccountList,.notificationAccountList{display:grid;gap:7px;margin-top:13px}
.accountFamilyRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:9px;align-items:center;padding:12px 0;border-top:1px solid #eee5d8}
.accountFamilyRow>div{display:grid;gap:2px}.accountFamilyRow small{color:#748087}.accountFamilyRow select{height:36px;border:1px solid #d9cbb5;border-radius:999px;background:#fffaf0;padding:0 9px}
.alwaysShareToggle{display:flex!important;grid-auto-flow:column!important;align-items:center;gap:5px!important;white-space:nowrap}.alwaysShareToggle input{width:16px!important;height:16px!important}.alwaysShareToggle span{font-size:10px;color:#6e604d}
.familyAddRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:12px}.familyAddRow input,.familyAddRow select{height:42px;border:1px solid #d9cbb5;border-radius:12px;background:#fffdf9;padding:0 10px}
.notificationHeading{display:flex;align-items:center;justify-content:space-between;gap:10px}.notificationHeading button{white-space:nowrap}
.notificationAccountList{max-height:330px;overflow:auto}
.notificationRow{width:100%;display:grid;grid-template-columns:9px minmax(0,1fr);gap:9px;text-align:left;border:0;border-top:1px solid #eee5d8;background:transparent;padding:10px 4px;color:#102b39}.notificationRow span:last-child{display:grid;gap:2px}.notificationRow small{color:#708087}.notificationRow em{font-style:normal;font-size:9px;color:#9b9182}.notificationDot{width:7px;height:7px;border-radius:50%;background:transparent;margin-top:5px}.notificationRow.unread .notificationDot{background:var(--avelune-gold)}.notificationRow.unread b{font-weight:900}
.accountEmptyState{margin:8px 0;color:#7c898d}
.familyConnection{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#718087}.familyConnection.connected{color:#16735f}.familyInviteChoice{display:flex!important;grid-auto-flow:column;justify-content:start!important;align-items:center;gap:8px!important}.familyInviteChoice input{width:18px!important;height:18px!important}.invitationEntryActions{display:grid;gap:8px;margin:12px 0}.guestTripReadOnly{display:grid;gap:14px;max-height:48vh;overflow:auto;margin:16px 0}.guestTripReadOnly section{display:grid;gap:7px}.guestItineraryItem{display:grid;grid-template-columns:70px 1fr;gap:10px;padding:9px 0;border-top:1px solid #eee5d8}.guestItineraryItem span{display:grid;gap:2px}.guestItineraryItem small{color:#718087}
@media(max-width:760px){.accountFamilyRow{grid-template-columns:minmax(0,1fr) auto}.accountFamilyRow .alwaysShareToggle{grid-column:1}.accountFamilyRow .familyRemove{grid-column:2}.familyAddRow{grid-template-columns:1fr 1fr}.familyAddRow input{grid-column:1/-1}.familyAddRow button{width:100%}}


/* v0.3.31 — notification badge + luxury Lazy Susan carousel */
.accountBadgeButton{
  position:relative!important;
  overflow:visible!important;
}
.notificationBadge{
  position:absolute;
  top:-7px;
  right:-7px;
  z-index:20;
  min-width:18px;
  height:18px;
  padding:0 5px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:2px solid #071e2c;
  background:#cf3f36;
  color:#fff;
  font:900 10px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow:0 3px 9px rgba(0,0,0,.28);
}
.notificationBadge[hidden]{display:none!important}

.tripCarouselShell{
  perspective:1500px!important;
  perspective-origin:50% 42%!important;
  overflow:visible!important;
}
.aveluneTripGrid{
  position:relative!important;
  align-items:center!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  padding-top:28px!important;
  padding-bottom:38px!important;
  perspective:1300px!important;
  transform-style:preserve-3d!important;
}
.aveluneTripCard{
  position:relative!important;
  z-index:2;
  transform-origin:center center!important;
  transform-style:preserve-3d!important;
  transition:
    transform .48s cubic-bezier(.22,.75,.22,1),
    opacity .42s ease,
    filter .42s ease,
    box-shadow .42s ease!important;
  opacity:calc(1 - min(var(--carousel-distance,0),1.8) * .28)!important;
  filter:blur(calc(min(var(--carousel-distance,0),2) * 1.7px)) saturate(calc(1 - min(var(--carousel-distance,0),1.8) * .12))!important;
  transform:
    translateY(calc(min(var(--carousel-distance,0),2) * 16px))
    translateZ(calc(min(var(--carousel-distance,0),2) * -115px))
    rotateY(calc(var(--carousel-turn,0) * -18deg))
    scale(calc(1 - min(var(--carousel-distance,0),1.7) * .075))!important;
  box-shadow:0 15px 36px rgba(0,0,0,.16)!important;
}
.aveluneTripCard.carouselCenter{
  z-index:9!important;
  opacity:1!important;
  filter:none!important;
  transform:translateY(0) translateZ(55px) rotateY(0) scale(1.03)!important;
  box-shadow:0 28px 70px rgba(0,0,0,.28)!important;
}
.aveluneTripCard.carouselNear{
  z-index:5!important;
}
.aveluneTripCard.carouselFar{
  z-index:1!important;
  opacity:.38!important;
}
.aveluneTripCard.carouselFar .tripCardVisual{
  transform:scaleX(-1);
}
.aveluneTripCard.carouselFar .tripCardVisual h3{
  transform:scaleX(-1);
}
.aveluneTripCard:not(.carouselCenter) .tripCardFooter{
  opacity:.82;
}
.tripCarouselArrow{
  top:47%!important;
  z-index:40!important;
  backdrop-filter:blur(8px);
}
.tripCarouselArrow:hover{
  transform:translateY(-55%) scale(1.06)!important;
}

@media(max-width:760px){
  .notificationBadge{
    top:-6px;
    right:-4px;
    border-color:var(--avelune-blue);
  }
  .tripCarouselShell{
    perspective:1050px!important;
  }
  .aveluneTripGrid{
    padding-top:20px!important;
    padding-bottom:28px!important;
  }
  .aveluneTripCard{
    opacity:calc(1 - min(var(--carousel-distance,0),1.6) * .22)!important;
    filter:blur(calc(min(var(--carousel-distance,0),1.8) * 1px))!important;
    transform:
      translateY(calc(min(var(--carousel-distance,0),1.8) * 9px))
      translateZ(calc(min(var(--carousel-distance,0),1.8) * -65px))
      rotateY(calc(var(--carousel-turn,0) * -11deg))
      scale(calc(1 - min(var(--carousel-distance,0),1.5) * .045))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:translateY(0) translateZ(25px) rotateY(0) scale(1)!important;
  }
  .aveluneTripCard.carouselFar .tripCardVisual,
  .aveluneTripCard.carouselFar .tripCardVisual h3{
    transform:none;
  }
}

/* v0.3.32 — stronger rotating carousel + city-first trip creation */
.dashboardBottomActions{display:flex!important;visibility:visible!important;opacity:1!important;position:relative;z-index:25;padding-top:10px;border-top:1px solid rgba(215,168,86,.18)}
.dashboardBottomActions .avelunePastTrips{display:flex!important;visibility:visible!important;opacity:1!important;align-items:center;justify-content:center}
@media(min-width:761px){
  .tripCarouselShell{min-height:390px;perspective:2100px!important}
  .aveluneTripGrid{perspective:1900px!important;padding-top:45px!important;padding-bottom:58px!important}
  .aveluneTripCard{
    transform:translateX(var(--carousel-shift,0px)) translateY(calc(min(var(--carousel-distance,0),2) * 20px)) translateZ(calc(min(var(--carousel-distance,0),2) * -225px)) rotateY(calc(var(--carousel-turn,0) * -52deg)) scale(calc(1 - min(var(--carousel-distance,0),1.8) * .105))!important;
    opacity:calc(1 - min(var(--carousel-distance,0),1.9) * .36)!important;
    filter:blur(calc(min(var(--carousel-distance,0),2) * 2.35px)) saturate(calc(1 - min(var(--carousel-distance,0),1.8) * .16)) brightness(calc(1 - min(var(--carousel-distance,0),1.8) * .10))!important
  }
  .aveluneTripCard.carouselCenter{transform:translateX(0) translateY(0) translateZ(110px) rotateY(0) scale(1.055)!important;opacity:1!important;filter:none!important;z-index:20!important}
  .aveluneTripCard.carouselNear{z-index:7!important}
  .aveluneTripCard.carouselFar{z-index:1!important;opacity:.22!important;filter:blur(5px) saturate(.72) brightness(.78)!important}
}
@media(max-width:760px){
  .aveluneTripCard{transform:translateX(calc(var(--carousel-shift,0px) * .28)) translateY(calc(min(var(--carousel-distance,0),1.8) * 9px)) translateZ(calc(min(var(--carousel-distance,0),1.8) * -70px)) rotateY(calc(var(--carousel-turn,0) * -13deg)) scale(calc(1 - min(var(--carousel-distance,0),1.5) * .05))!important}
}
.cityCreateTripCard{max-width:700px!important}
.cityBuilderLabel{display:grid;gap:3px;margin-top:3px;color:#102b39;font-weight:850}.cityBuilderLabel small{font-weight:500;color:#728087}
.newCityRows{display:grid;gap:10px}.citySearchBlock{display:grid;gap:6px}
.citySearchLine{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto auto;gap:7px;align-items:center}
.cityOrder{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef4f2;color:#0d6f73;font-weight:900;font-size:12px}
.citySearchLine input{height:46px;border:1px solid #d9ccb8;border-radius:12px;background:#fffdf9;color:#102b39;padding:0 12px;min-width:0}
.citySearchButton,.cityPlusButton,.cityRemoveButton{height:42px;border-radius:999px;font-weight:850}
.citySearchButton{padding:0 14px;border:1px solid var(--avelune-border-accent);background:var(--avelune-ivory);color:var(--avelune-blue)}.cityPlusButton{width:42px;border:1px solid var(--avelune-gold);background:var(--avelune-gold);color:var(--avelune-blue);font-size:20px}.cityRemoveButton{width:42px;border:1px solid #e6cbc2;background:#fff7f4;color:#a64a38;font-size:18px}
.citySearchResults{display:grid;gap:5px;margin-left:37px}.cityResult{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;text-align:left;border:1px solid #e1d6c5;background:#fff;border-radius:12px;padding:9px 11px;color:#102b39}
.cityResult:hover{border-color:var(--avelune-gold);background:var(--avelune-surface-elevated)}.cityResult span:last-child{display:grid;gap:2px}.cityResult small{color:#718087;font-size:10px}
.selectedCity{margin-left:37px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 11px;border-radius:12px;background:#edf6f4;color:#102b39}.selectedCity>div{display:grid;gap:2px}.selectedCity small{color:#637b83}.selectedCity em{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#9b722e;font-weight:900}
.citySearchLoading,.citySearchMessage{margin-left:37px;color:#718087;font-size:11px}.citySearchMessage.error{color:#a54b3b}
@media(max-width:650px){.citySearchLine{grid-template-columns:28px minmax(0,1fr) 42px 42px}.citySearchButton{grid-column:2/5;width:100%}.cityRemoveButton{grid-column:5}.citySearchResults,.selectedCity,.citySearchLoading,.citySearchMessage{margin-left:35px}}


/* v0.3.33 — stable luxury carousel
   The featured trip is always face-on. Only surrounding trips rotate away. */
.aveluneTripGrid{
  box-sizing:border-box!important;
  scroll-padding-inline:50%!important;
}
.aveluneTripCard{
  backface-visibility:visible!important;
  -webkit-backface-visibility:visible!important;
  will-change:transform,opacity,filter;
}
@media(min-width:761px){
  .tripCarouselShell{
    min-height:410px!important;
    overflow:visible!important;
    perspective:2200px!important;
  }
  .aveluneTripGrid{
    overflow-x:auto!important;
    overflow-y:visible!important;
    transform-style:preserve-3d!important;
    perspective:2000px!important;
  }
  .aveluneTripCard{
    transform:
      translateX(var(--carousel-shift,0px))
      translateY(calc(var(--carousel-distance,0) * 15px))
      translateZ(calc(var(--carousel-distance,0) * -205px))
      rotateY(calc(var(--carousel-turn,0) * -68deg))
      scale(calc(1 - var(--carousel-distance,0) * .075))!important;
    opacity:calc(1 - var(--carousel-distance,0) * .31)!important;
    filter:
      blur(calc(var(--carousel-distance,0) * 2.2px))
      saturate(calc(1 - var(--carousel-distance,0) * .12))
      brightness(calc(1 - var(--carousel-distance,0) * .10))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:translateX(0) translateY(0) translateZ(120px) rotateY(0deg) scale(1.055)!important;
    opacity:1!important;
    filter:none!important;
    z-index:30!important;
    pointer-events:auto!important;
  }
  .aveluneTripCard.carouselNear{
    z-index:8!important;
    opacity:.58!important;
  }
  .aveluneTripCard.carouselFar{
    z-index:2!important;
    opacity:.24!important;
    filter:blur(4.5px) saturate(.72) brightness(.72)!important;
  }
  .aveluneTripCard.carouselFar .tripCardVisual{
    transform:scaleX(-1)!important;
  }
  .aveluneTripCard.carouselFar .tripCardVisual h3{
    transform:scaleX(-1)!important;
  }
}

/* Keep mobile swipe clean and stable; use only a subtle depth cue there. */
@media(max-width:760px){
  .aveluneTripCard{
    transform:
      translateX(calc(var(--carousel-shift,0px) * .10))
      translateY(calc(var(--carousel-distance,0) * 6px))
      translateZ(calc(var(--carousel-distance,0) * -36px))
      rotateY(calc(var(--carousel-turn,0) * -7deg))
      scale(calc(1 - var(--carousel-distance,0) * .025))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:none!important;
    opacity:1!important;
    filter:none!important;
  }
}


/* v0.3.34 — true circular Home carousel
   This is a staged carousel, not a finite horizontal scroller. */
.tripCarouselShell{
  position:relative!important;
  overflow:visible!important;
}
.aveluneTripGrid{
  position:relative!important;
  display:block!important;
  overflow:visible!important;
  width:100%!important;
  padding:0!important;
  scroll-snap-type:none!important;
  perspective:1800px!important;
  transform-style:preserve-3d!important;
}
.aveluneTripCard{
  position:absolute!important;
  left:50%!important;
  top:28px!important;
  margin:0!important;
  transform-origin:center center!important;
  transform-style:preserve-3d!important;
  transform:
    translateX(calc(-50% + var(--carousel-x,0px)))
    translateZ(var(--carousel-z,0px))
    rotateY(var(--carousel-rotate,0deg))
    scale(var(--carousel-scale,1))!important;
  opacity:var(--carousel-opacity,1)!important;
  filter:blur(var(--carousel-blur,0px))!important;
  transition:
    transform .68s cubic-bezier(.2,.76,.2,1),
    opacity .52s ease,
    filter .52s ease!important;
  backface-visibility:visible!important;
  -webkit-backface-visibility:visible!important;
}
.aveluneTripGrid.carouselInstant .aveluneTripCard{transition:none!important}
.aveluneTripCard.carouselCenter{
  pointer-events:auto!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:0 30px 78px rgba(0,0,0,.29)!important;
}
.aveluneTripCard:not(.carouselCenter){
  pointer-events:auto!important;
}
.aveluneTripCard.carouselFar .tripCardVisual{
  transform:scaleX(-1)!important;
}
.aveluneTripCard.carouselFar .tripCardVisual h3{
  transform:scaleX(-1)!important;
}
.desktopPastTrips{display:flex!important;align-items:center;justify-content:center;white-space:nowrap}

@media(min-width:761px){
  .tripCarouselShell{
    min-height:355px!important;
    padding-bottom:0!important;
  }
  .aveluneTripGrid{
    height:330px!important;
  }
  .tripCarouselArrow{
    top:48%!important;
    z-index:60!important;
  }
  .dashboardBottomActions{
    width:min(1320px,calc(100% - 48px))!important;
    margin:0 auto 22px!important;
    padding-top:0!important;
    border-top:0!important;
  }
  /* Desktop now has Past Trips beside the Upcoming heading; don't duplicate it below. */
  .dashboardBottomActions .avelunePastTrips{display:none!important}
  .dashboardBottomActions .aveluneBottomAccount{display:none!important}
}

@media(max-width:760px){
  .desktopPastTrips{display:none!important}
  .dashboardIntro{
    margin:24px 0 10px!important;
    padding:0 20px 8px!important;
  }
  .dashboardIntro h2{margin-top:8px!important;margin-bottom:12px!important}
  .dashboardIntro p{margin-bottom:0!important}
  .dashboardTripBar{
    margin-top:0!important;
    margin-bottom:2px!important;
  }
  .tripCarouselShell{
    min-height:295px!important;
    padding:0!important;
  }
  .aveluneTripGrid{
    height:286px!important;
    padding:0!important;
  }
  .aveluneTripCard{
    top:14px!important;
    width:66vw!important;
    flex-basis:auto!important;
    transform:
      translateX(calc(-50% + var(--carousel-x,0px) * .62))
      translateZ(calc(var(--carousel-z,0px) * .40))
      rotateY(calc(var(--carousel-rotate,0deg) * .42))
      scale(calc(.98 + (var(--carousel-scale,1) - .98) * .55))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:translateX(-50%) translateZ(20px) rotateY(0deg) scale(1)!important;
  }
  .dashboardBottomActions{
    width:calc(100% - 40px)!important;
    margin:-2px auto 18px!important;
    padding-top:10px!important;
    position:relative!important;
    z-index:70!important;
  }
  .dashboardBottomActions .avelunePastTrips,
  .dashboardBottomActions .aveluneBottomAccount{
    display:flex!important;
    min-height:46px!important;
  }
}


/* v0.3.35 — seamless infinite carousel
   Desktop is flat/luxury: blur + transparency only, no 3D rotation. */
.tripCarouselShell{
  position:relative!important;
  overflow:visible!important;
}
.aveluneTripGrid{
  position:relative!important;
  display:flex!important;
  gap:20px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x proximity!important;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  touch-action:pan-y pinch-zoom;
  cursor:grab;
  padding-top:20px!important;
  padding-bottom:28px!important;
}
.aveluneTripGrid.isDragging{
  cursor:grabbing;
  scroll-snap-type:none!important;
  scroll-behavior:auto!important;
  user-select:none;
}
.aveluneTripCard{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  margin:0!important;
  flex:0 0 min(456px,66vw)!important;
  width:min(456px,66vw)!important;
  transform:none!important;
  scale:1!important;
  rotate:none!important;
  translate:none!important;
  transition:
    opacity .35s ease,
    filter .35s ease,
    transform .35s ease,
    box-shadow .35s ease!important;
  opacity:calc(1 - min(var(--carousel-distance,0),1.6) * .30)!important;
  filter:blur(calc(min(var(--carousel-distance,0),1.6) * 2.3px)) brightness(calc(1 - min(var(--carousel-distance,0),1.6) * .06))!important;
}
.aveluneTripCard.carouselCenter{
  opacity:1!important;
  filter:none!important;
  transform:scale(1.025)!important;
  box-shadow:0 28px 68px rgba(0,0,0,.26)!important;
}
.aveluneTripCard.carouselNear{
  opacity:.64!important;
}
.aveluneTripCard.carouselFar{
  opacity:.34!important;
  filter:blur(4px) brightness(.88)!important;
}
.aveluneTripCard.carouselFar .tripCardVisual,
.aveluneTripCard.carouselFar .tripCardVisual h3{
  transform:none!important;
}
.tripCarouselArrow{
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .18s ease,transform .18s ease!important;
}
.tripCarouselShell.showPrevArrow .tripCarouselArrow.prev,
.tripCarouselShell.showNextArrow .tripCarouselArrow.next{
  opacity:1!important;
  pointer-events:auto!important;
}
.tripCarouselShell.showPrevArrow .tripCarouselArrow.prev:hover,
.tripCarouselShell.showNextArrow .tripCarouselArrow.next:hover{
  transform:translateY(-55%) scale(1.05)!important;
}

@media(min-width:761px){
  .tripCarouselShell{
    min-height:0!important;
    padding:0 46px 6px!important;
  }
  .aveluneTripGrid{
    min-height:300px!important;
    padding-left:max(20px,calc((100% - 456px)/2))!important;
    padding-right:max(20px,calc((100% - 456px)/2))!important;
  }
}

@media(max-width:760px){
  .tripCarouselShell{
    min-height:0!important;
    padding:0!important;
  }
  .aveluneTripGrid{
    min-height:270px!important;
    padding-top:10px!important;
    padding-bottom:18px!important;
    gap:14px!important;
    cursor:default;
  }
  .aveluneTripCard{
    flex:0 0 66vw!important;
    width:66vw!important;
    transform:none!important;
    opacity:calc(1 - min(var(--carousel-distance,0),1.4) * .20)!important;
    filter:blur(calc(min(var(--carousel-distance,0),1.4) * 1.1px))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:scale(1)!important;
  }
  .tripCarouselArrow{display:none!important}
}


/* v0.3.36 — center dominance + reliable infinite seam */
@media(min-width:761px){
  .aveluneTripCard{
    transform:scale(.91) translateY(10px)!important;
    transform-origin:center center!important;
  }
  .aveluneTripCard.carouselNear{
    transform:scale(.935) translateY(7px)!important;
    opacity:.62!important;
  }
  .aveluneTripCard.carouselFar{
    transform:scale(.88) translateY(14px)!important;
    opacity:.30!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:scale(1.035) translateY(0)!important;
    opacity:1!important;
    filter:none!important;
    box-shadow:0 30px 72px rgba(0,0,0,.28)!important;
  }
}
@media(max-width:760px){
  .aveluneTripCard:not(.carouselCenter){
    transform:scale(.95) translateY(5px)!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:scale(1) translateY(0)!important;
  }
}


/* v0.3.37 — desktop carousel rebuilt as a controlled infinite stage.
   Mobile keeps its native scrolling carousel. */
@media(min-width:761px){
  .tripCarouselShell{
    min-height:350px!important;
    padding:0 54px 10px!important;
    overflow:visible!important;
  }
  .aveluneTripGrid{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:330px!important;
    min-height:330px!important;
    overflow:hidden!important;
    padding:0!important;
    margin:0!important;
    cursor:grab!important;
    touch-action:pan-y!important;
    scroll-snap-type:none!important;
  }
  .aveluneTripGrid.isDragging{cursor:grabbing!important}
  .aveluneTripCard{
    position:absolute!important;
    left:50%!important;
    top:18px!important;
    width:min(500px,42vw)!important;
    flex:none!important;
    margin:0!important;
    transform:
      translateX(calc(-50% + var(--desktop-x,0px) + var(--desktop-drag,0px)))
      translateY(var(--desktop-y,0px))
      scale(var(--desktop-scale,1))!important;
    opacity:var(--desktop-opacity,1)!important;
    filter:blur(var(--desktop-blur,0px))!important;
    transition:
      transform .52s cubic-bezier(.22,.75,.22,1),
      opacity .42s ease,
      filter .42s ease,
      box-shadow .42s ease!important;
    transform-origin:center center!important;
    pointer-events:auto!important;
  }
  .aveluneTripGrid.isDragging .aveluneTripCard{
    transition:opacity .2s ease,filter .2s ease!important;
  }
  .aveluneTripGrid.carouselInstant .aveluneTripCard{transition:none!important}
  .aveluneTripCard.carouselCenter{
    opacity:1!important;
    filter:none!important;
    box-shadow:0 30px 72px rgba(0,0,0,.30)!important;
  }
  .aveluneTripCard.carouselNear{
    opacity:.58!important;
  }
  .aveluneTripCard.carouselFar{
    opacity:.20!important;
  }
  .aveluneTripCard.carouselFar .tripCardVisual,
  .aveluneTripCard.carouselFar .tripCardVisual h3{
    transform:none!important;
  }
  .tripCarouselArrow{
    opacity:0!important;
    pointer-events:none!important;
    top:48%!important;
    transition:opacity .16s ease,transform .16s ease!important;
    z-index:80!important;
  }
  .tripCarouselShell.showPrevArrow .tripCarouselArrow.prev,
  .tripCarouselShell.showNextArrow .tripCarouselArrow.next{
    opacity:1!important;
    pointer-events:auto!important;
  }
}
@media(max-width:760px){
  .aveluneTripGrid{
    display:flex!important;
    position:relative!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    height:auto!important;
    min-height:270px!important;
    scroll-snap-type:x mandatory!important;
    cursor:default!important;
  }
  .aveluneTripCard{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    flex:0 0 66vw!important;
    width:66vw!important;
    transform:scale(.95) translateY(5px)!important;
    opacity:calc(1 - min(var(--carousel-distance,0),1.4) * .20)!important;
    filter:blur(calc(min(var(--carousel-distance,0),1.4) * 1.1px))!important;
  }
  .aveluneTripCard.carouselCenter{
    transform:scale(1) translateY(0)!important;
    opacity:1!important;
    filter:none!important;
  }
}


/* v0.3.38 — unified overlap carousel rebuild
   No native horizontal scrolling and no clone seam on either platform. */
.tripCarouselShell{
  position:relative!important;
  overflow:visible!important;
}
.aveluneTripGrid{
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  scroll-snap-type:none!important;
  overscroll-behavior:none!important;
  touch-action:pan-y!important;
  user-select:none;
}
.aveluneTripCard{
  position:absolute!important;
  left:50%!important;
  top:18px!important;
  margin:0!important;
  transform:
    translateX(calc(-50% + var(--stage-x,0px) + var(--stage-drag,0px)))
    translateY(var(--stage-y,0px))
    scale(var(--stage-scale,1))!important;
  opacity:var(--stage-opacity,1)!important;
  filter:blur(var(--stage-blur,0px))!important;
  transform-origin:center center!important;
  transition:
    transform .54s cubic-bezier(.22,.76,.2,1),
    opacity .42s ease,
    filter .42s ease,
    box-shadow .42s ease!important;
  pointer-events:auto!important;
}
.aveluneTripGrid.isDragging{cursor:grabbing!important}
.aveluneTripGrid.isDragging .aveluneTripCard{
  transition:opacity .18s ease,filter .18s ease!important;
}
.aveluneTripGrid.carouselInstant .aveluneTripCard{transition:none!important}
.aveluneTripCard.carouselCenter{
  opacity:1!important;
  filter:none!important;
  box-shadow:0 31px 76px rgba(0,0,0,.30)!important;
}
.aveluneTripCard.carouselNear{
  box-shadow:0 14px 36px rgba(0,0,0,.17)!important;
}
.aveluneTripCard.carouselFar .tripCardVisual,
.aveluneTripCard.carouselFar .tripCardVisual h3{
  transform:none!important;
}
.tripCarouselArrow{
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .16s ease,transform .16s ease!important;
  z-index:80!important;
}
.tripCarouselShell.showPrevArrow .tripCarouselArrow.prev,
.tripCarouselShell.showNextArrow .tripCarouselArrow.next{
  opacity:1!important;
  pointer-events:auto!important;
}

@media(min-width:761px){
  .tripCarouselShell{
    min-height:355px!important;
    padding:0 54px 10px!important;
  }
  .aveluneTripGrid{
    height:335px!important;
    min-height:335px!important;
    cursor:grab!important;
  }
  .aveluneTripCard{
    width:min(500px,42vw)!important;
    flex:none!important;
  }
  .tripCarouselArrow{top:48%!important}
}

@media(max-width:760px){
  .tripCarouselShell{
    min-height:285px!important;
    padding:0!important;
  }
  .aveluneTripGrid{
    height:278px!important;
    min-height:278px!important;
    cursor:default!important;
  }
  .aveluneTripCard{
    width:70vw!important;
    flex:none!important;
    top:10px!important;
  }
  .tripCarouselArrow{display:none!important}
}


/* v0.3.39 — hard-reset carousel layer
   One stage, one index, no clones, no native horizontal scroll, no seam. */
.tripCarouselShell{
  position:relative!important;
  width:100%!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.aveluneTripGrid{
  box-sizing:border-box!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.aveluneTripCard{
  transform-origin:center center!important;
  transition:
    transform .50s cubic-bezier(.2,.78,.2,1),
    opacity .38s ease,
    filter .38s ease,
    box-shadow .38s ease!important;
  cursor:pointer!important;
}
.aveluneTripGrid.isDragging .aveluneTripCard{
  transition:opacity .12s linear,filter .12s linear!important;
}
.aveluneTripGrid.carouselInstant .aveluneTripCard{
  transition:none!important;
}
.aveluneTripCard.carouselCenter{
  box-shadow:0 32px 78px rgba(0,0,0,.30)!important;
}
.aveluneTripCard.carouselNear{
  box-shadow:0 16px 40px rgba(0,0,0,.18)!important;
}
.aveluneTripCard.carouselFar{
  box-shadow:0 10px 24px rgba(0,0,0,.10)!important;
}
.aveluneTripCard.carouselFar .tripCardVisual,
.aveluneTripCard.carouselFar .tripCardVisual h3{
  transform:none!important;
}
.tripCarouselArrow{
  opacity:0!important;
  pointer-events:none!important;
  z-index:100!important;
  transition:opacity .16s ease,transform .16s ease!important;
}
.tripCarouselShell.showPrevArrow .tripCarouselArrow.prev,
.tripCarouselShell.showNextArrow .tripCarouselArrow.next{
  opacity:1!important;
  pointer-events:auto!important;
}
@media(min-width:761px){
  .tripCarouselShell{
    min-height:355px!important;
    padding:0 48px 10px!important;
  }
  .tripCarouselArrow{top:48%!important}
}
@media(max-width:760px){
  .tripCarouselShell{
    min-height:285px!important;
    padding:0!important;
  }
  .tripCarouselArrow{display:none!important}
}

/* v0.3.40 — Edit Trip city controls */
.editCityLine{grid-template-columns:30px minmax(0,1fr) auto auto auto auto auto!important}
.cityMoveButton{
  width:36px;height:36px;border-radius:999px;border:1px solid #d9ccb8;
  background:#fffaf0;color:#0b3344;font-weight:900;line-height:1
}
.cityMoveButton:hover{border-color:var(--avelune-gold);background:var(--avelune-cream)}
@media(max-width:650px){
  .editCityLine{grid-template-columns:28px minmax(0,1fr) 38px 38px!important}
  .editCityLine .citySearchButton{grid-column:2/-1!important}
  .editCityLine .cityMoveButton,.editCityLine .cityPlusButton,.editCityLine .cityRemoveButton{width:38px;height:38px}
}

/* v0.3.41 admin account entry */
.adminConsoleCard{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#0b3344,#102b3a)!important;color:#fff!important}
.adminConsoleCard[hidden]{display:none!important}.adminConsoleCard h3,.adminConsoleCard p{color:#fff!important}.adminConsoleCard .eyebrow{color:var(--avelune-gold)!important}.adminOpenLink{text-decoration:none!important;background:var(--avelune-ivory)!important;color:var(--avelune-blue)!important}


/* v0.3.48 — live desktop trackpad carousel */
@media(min-width:761px){
  .aveluneTripGrid.isTrackpadMoving .aveluneTripCard{
    transition:
      transform .10s linear,
      opacity .10s linear,
      filter .10s linear,
      box-shadow .10s linear!important;
  }
  .aveluneTripGrid:not(.isTrackpadMoving) .aveluneTripCard{
    transition:
      transform .42s cubic-bezier(.2,.78,.2,1),
      opacity .32s ease,
      filter .32s ease,
      box-shadow .32s ease!important;
  }
}


/* v0.3.49 — smooth RAF-driven desktop carousel */
@media(min-width:761px){
  .aveluneTripGrid.isTrackpadMoving .aveluneTripCard{
    transition:none!important;
    will-change:transform,opacity,filter;
  }
  .aveluneTripGrid:not(.isTrackpadMoving) .aveluneTripCard{
    transition:
      transform .34s cubic-bezier(.2,.78,.2,1),
      opacity .26s ease,
      filter .26s ease,
      box-shadow .26s ease!important;
  }
}
\n\n/* v0.3.50 — desktop carousel foundation reset\n   All desktop movement is owned by JS requestAnimationFrame physics. */\n@media(min-width:761px){\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard:hover,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard.carouselCenter,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard.carouselNear,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard.carouselFar{\n    transition:none!important;\n    animation:none!important;\n    perspective:none!important;\n    backface-visibility:hidden!important;\n    -webkit-backface-visibility:hidden!important;\n    transform-style:flat!important;\n    will-change:transform,opacity,filter!important;\n  }\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard .tripCardVisual,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard .tripCardVisual h3,\n  .aveluneTripGrid.desktopCarouselV3 .aveluneTripCard .tripCardFooter{\n    transform:none!important;\n    transition:none!important;\n    animation:none!important;\n  }\n}\n

/* v0.3.51 — one-space Avelune background + first-trip card */
:root{--avelune-page:var(--avelune-blue)}
.aveluneDashboard,
.dashboardHeader{
  background:var(--avelune-page)!important;
}
.dashboardHeader{
  border-bottom:1px solid rgba(215,168,86,.34)!important;
  box-shadow:none!important;
}
.tripCardVisual{
  background-color:var(--avelune-page)!important;
}
.tripCardVisual:not(.hasImage),
.firstTripVisual{
  background:var(--avelune-page)!important;
}
.emptyTripGrid{
  position:relative!important;
  display:flex!important;
  justify-content:center!important;
  align-items:flex-start!important;
  height:auto!important;
  min-height:340px!important;
  overflow:visible!important;
  padding:4px 20px 18px!important;
}
.emptyTripGrid .firstTripCard{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  width:min(500px,82vw)!important;
  min-width:0!important;
  transform:none!important;
  opacity:1!important;
  filter:none!important;
  margin:0 auto!important;
  box-shadow:0 24px 62px rgba(0,0,0,.26)!important;
}
.firstTripVisual{
  min-height:245px!important;
  display:flex!important;
  align-items:flex-end!important;
  padding:30px!important;
}
.firstTripVisual .firstTripCopy{
  display:block!important;
}
.firstTripVisual .firstTripCopy .eyebrow{
  display:block!important;
  margin-bottom:10px!important;
  color:var(--avelune-gold)!important;
}
.firstTripVisual .firstTripCopy h3{
  width:auto!important;
  margin:0 0 9px!important;
  font-size:38px!important;
}
.firstTripVisual .firstTripCopy p{
  display:block!important;
  margin:0!important;
  max-width:410px!important;
  color:rgba(255,250,240,.72)!important;
  line-height:1.45!important;
}
.firstTripFooter{
  justify-content:flex-end!important;
}
.firstTripFooter button{
  display:inline-flex!important;
  border-radius:999px!important;
}
@media(max-width:760px){
  .emptyTripGrid{min-height:300px!important;padding:2px 9vw 14px!important}
  .emptyTripGrid .firstTripCard{width:82vw!important}
  .firstTripVisual{min-height:220px!important;padding:24px!important}
  .firstTripVisual .firstTripCopy h3{font-size:32px!important}
}


/* v0.13.0 traveler profile */
.accountFormGrid .full{grid-column:1/-1}
.accountFieldHint{margin:3px 0 8px;color:#75858d;font-size:12px}
.accountAddressSearch{display:grid;grid-template-columns:1fr auto;gap:9px}
.accountAddressResults{display:grid;gap:6px;margin-top:7px}
.accountAddressResult{appearance:none;border:1px solid rgba(15,112,120,.14);background:#fff;border-radius:13px;padding:10px 12px;text-align:left;color:#173746}
.accountAddressResult b,.accountAddressResult small{display:block}.accountAddressResult small{margin-top:2px;color:#75858d}
.accountAddressSelected{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:13px;background:#eef7f4;color:#173746}
.accountAddressSelected>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#d9ede8;color:#0f7078;font-weight:900}
.accountAddressSelected b,.accountAddressSelected small{display:block}.accountAddressSelected small{color:#6f8189}
.travelerVaultSection{position:relative}
.vaultLockMark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff7e8;color:#a4762d;border:1px solid rgba(174,128,55,.28)}
.travelerVaultLocked{display:grid;gap:13px;padding:15px;border-radius:16px;background:#faf7f0;border:1px solid rgba(174,128,55,.18)}
.travelerVaultLocked b,.travelerVaultLocked small{display:block}.travelerVaultLocked small{margin-top:3px;color:#75858d}
.vaultUnlockRow{display:grid;grid-template-columns:1fr auto;gap:9px}
.travelerVaultForm[hidden]{display:none!important}
.loyaltyVaultHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px}
.loyaltyVaultHead b,.loyaltyVaultHead small{display:block}.loyaltyVaultHead small{margin-top:3px;color:#75858d}
.loyaltyVaultRows{display:grid;gap:8px}
.loyaltyVaultRow{display:grid;grid-template-columns:1fr 1fr 36px;gap:8px}
.loyaltyRemove{border:0;background:transparent;font-size:20px;color:#8d6a35}
.vaultSaveRow{display:flex;align-items:center;gap:12px;margin-top:16px}
@media(max-width:650px){
  .accountAddressSearch,.vaultUnlockRow,.loyaltyVaultRow{grid-template-columns:1fr}
  .loyaltyRemove{justify-self:end}
}

/* Avelune v0.16.0 — home refinement; preserve existing carousel geometry */
.aveluneDashboard{background:var(--avelune-navy)!important}
.dashboardIntro{padding-top:clamp(48px,7vh,84px)!important;padding-bottom:clamp(30px,5vh,58px)!important}
.dashboardIntro h2{font-family:var(--avelune-serif)!important;letter-spacing:-.035em!important;line-height:.98!important}
.dashboardIntro p{max-width:610px!important;margin-top:15px!important;color:rgba(255,250,240,.70)!important;font-size:clamp(14px,1.4vw,17px)!important;line-height:1.55!important}
.dashboardTripBar{margin-top:6px!important}
.aveluneTripCard,.tripCardVisual,.tripCardFooter{transition:transform .46s var(--avelune-ease),opacity .36s ease,filter .36s ease,box-shadow .36s ease!important}
.aveluneTripCard.is-active{filter:none!important}
.aveluneTripCard.is-active .tripCardVisual{box-shadow:0 28px 72px rgba(0,0,0,.27)!important}
.avelunePrimary{box-shadow:0 8px 22px rgba(215,168,86,.14)!important}
.aveluneGhost,.avelunePastTrips,.aveluneBottomAccount{border-color:rgba(255,250,240,.20)!important;background:rgba(255,250,240,.055)!important;color:var(--avelune-ivory)!important;backdrop-filter:blur(10px)}
.aveluneGhost:hover,.avelunePastTrips:hover{background:rgba(255,250,240,.10)!important;border-color:rgba(255,250,240,.30)!important}
.dashboardPopoutCard{padding:26px!important}
@media(max-width:760px){.dashboardIntro{padding-top:38px!important;padding-bottom:28px!important}.dashboardIntro p{font-size:13px!important;max-width:330px!important}.dashboardPopoutCard{padding:20px!important}}


/* ================================================================
   Avelune v0.16.1 — continuous home canvas
   Refinement only: preserve carousel/layout geometry and functionality.
   ================================================================ */
.aveluneDashboard{
  background:var(--avelune-navy)!important;
  background-image:none!important;
}
.dashboardHeader{
  background:transparent!important;
  background-image:none!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
.dashboardIntro{
  margin-top:clamp(52px,7vh,76px)!important;
}
.dashboardTripBar{
  margin-top:2px!important;
  margin-bottom:4px!important;
}
/* Keep secondary home chrome quiet against the uninterrupted navy field. */
.avelunePastTrips,
.dashboardHeader .aveluneGhost{
  box-shadow:none!important;
}
@media(max-width:760px){
  .dashboardHeader{background:transparent!important;border-bottom:0!important}
  .dashboardIntro{margin-top:34px!important}
}


/* ================================================================
   Avelune v0.16.2 — intentional header separation on one navy canvas
   ================================================================ */
.aveluneDashboard{
  background:var(--avelune-blue)!important;
  background-image:none!important;
}
.dashboardHeader{
  position:relative!important;
  background:transparent!important;
  border-bottom:1px solid rgba(215,168,86,.52)!important;
  box-shadow:none!important;
  padding-bottom:16px!important;
}
.dashboardHeader::after{display:none!important}


/* ================================================================
   Avelune v0.16.4 — traveler-first home/account refinement
   Shared tokens above remain authoritative; this is a consolidation pass.
   ================================================================ */
@media(min-width:1100px){
  .dashboardIntro{padding-bottom:clamp(22px,4.2vh,48px)!important}
  .dashboardTripBar{margin-top:-2px!important}
}
.dashboardPopoutCard{border-radius:var(--avelune-radius-modal)!important;box-shadow:var(--avelune-shadow-modal)!important}
.accountPopupHead{margin-bottom:18px!important}
.accountProfileNav{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;
  padding:5px;margin:0 0 18px;border-radius:14px;background:#f3eee3;
}
.accountProfileNav button{
  appearance:none;border:0;border-radius:10px;background:transparent;color:#687b83;
  min-height:42px;padding:8px 9px;font-size:10px;font-weight:800;letter-spacing:.02em;cursor:pointer;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.accountProfileNav button.active{background:#fffdf8;color:#123746;box-shadow:0 5px 14px rgba(3,24,39,.07)}
.accountPopupSections{gap:0!important}
.accountSection{
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  padding:4px 1px 18px!important;margin:0!important;
}
.accountSection[data-account-group][hidden]{display:none!important}
.accountSectionHead{padding-bottom:11px;border-bottom:1px solid rgba(16,43,57,.09);margin-bottom:15px}
.accountSectionHead h3,.googleIntegrationCopy h3{font-family:var(--avelune-serif)!important;font-size:22px!important;font-weight:600!important;letter-spacing:-.015em!important}
.accountSectionHead .eyebrow,.googleIntegrationCopy .eyebrow{color:var(--avelune-gold-deep)!important}
.accountFormGrid input,.accountFormGrid select,.accountAddressSearch input,
.familyAddRow input,.familyAddRow select,.vaultUnlockRow input{
  border:1px solid rgba(16,43,57,.13)!important;border-radius:var(--avelune-radius-control)!important;background:#fffdf9!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.googleIntegrationCard{display:grid!important;grid-template-columns:44px 1fr auto!important;align-items:center!important;gap:14px!important;padding:16px 0!important}
.adminConsoleCard{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;
  margin-top:8px!important;padding:13px 2px 0!important;border-top:1px solid rgba(16,43,57,.09)!important;
  opacity:.78;
}
.adminConsoleCard[hidden]{display:none!important}
.adminConsoleCard h3{font-size:13px!important;margin:2px 0!important;font-family:var(--avelune-sans)!important}
.adminConsoleCard p{display:none!important}.adminConsoleCard .eyebrow{font-size:8px!important}.adminOpenLink{font-size:10px!important;padding:7px 10px!important}
.accountPopupFooter{border-top:1px solid rgba(16,43,57,.08)!important;margin-top:12px!important;padding-top:14px!important}
@media(max-width:760px){
  .accountProfileNav{grid-template-columns:repeat(3,1fr);gap:5px}
  .accountProfileNav button{min-height:38px;font-size:9px}
  .adminConsoleCard{align-items:flex-start!important}
}


/* ================================================================
   Avelune v0.16.6 — Traveler Vault functionality restoration
   ================================================================ */
.accountProfileNav button[data-account-view="travel"]{position:relative}
.accountProfileNav button[data-account-view="travel"]::before{content:"⌁";margin-right:5px;color:var(--avelune-gold-deep);font-weight:900}
.travelerVaultSection{display:block;min-height:260px}
.travelerVaultSection[hidden]{display:none!important}
.travelerVaultLocked{padding:18px!important;background:#f8f3e8!important;border:1px solid rgba(170,126,54,.18)!important;box-shadow:none!important}
.vaultUnlockRow{align-items:center}.vaultUnlockRow .aveluneGhost{min-width:92px}
.travelerVaultForm{padding-top:2px}.vaultSaveRow{padding-top:4px;border-top:1px solid rgba(16,43,57,.07)}
#vaultStatus.authError:not(:empty),#vaultSaveMessage.authError:not(:empty){margin-top:7px}

/* v0.17.0 — trip context + traveler profiles */
.createTripCard textarea,.accountFormGrid textarea{width:100%;resize:vertical;min-height:82px}
.tripTravelerBuilder{margin:4px 0 10px}.tripTravelerChoices{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}.tripTravelerChip{display:flex!important;align-items:center;gap:8px;border:1px solid rgba(184,134,55,.24);border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.72);cursor:pointer;transition:.16s ease}.tripTravelerChip:hover{border-color:rgba(184,134,55,.52);transform:translateY(-1px)}.tripTravelerChip input{accent-color:#b88737}.tripTravelerChip span{display:flex;align-items:baseline;gap:6px}.tripTravelerChip b{font-size:12px;color:#0b2c3a}.tripTravelerChip small{font-size:9px;color:#72858c;text-transform:capitalize}.tripTravelerLoading{font-size:11px;color:#72858c;padding:7px 0}
.tripGuestAdd{display:grid;grid-template-columns:minmax(130px,1fr) 110px 150px auto;gap:7px;margin-top:10px}.tripGuestAdd input,.tripGuestAdd select{height:39px;border:1px solid #d9cbb5;border-radius:10px;background:#fffdf9;padding:0 9px}.tripGuestAdd .aveluneGhost{white-space:nowrap}.tripGuestRemove{border:0;background:transparent;color:#8c7a64;font-size:16px;line-height:1;padding:0;cursor:pointer}.familyManagedAdd{grid-template-columns:minmax(120px,1fr) 110px 150px auto}.managedFamilyLabel{color:#72858c;font-size:10px}.familyAccountLink{margin-top:12px;color:#6e604d}.familyAccountLink summary{cursor:pointer;font-size:12px;font-weight:700}
@media(max-width:760px){.tripGuestAdd,.familyManagedAdd{grid-template-columns:1fr 1fr}.tripGuestAdd input:first-child,.familyManagedAdd input:first-child{grid-column:1/-1}.tripGuestAdd .aveluneGhost,.familyManagedAdd .aveluneGhost{grid-column:1/-1;width:100%}}
.accountFormGrid label.full textarea{margin-top:6px}.accountFieldHint{display:block;margin-top:4px;color:#75878d;font-size:9.5px;line-height:1.35}

/* v0.17.2 — tighter home introduction and calmer carousel finish */
.dashboardIntro{
  margin-top:clamp(24px,3vh,36px)!important;
  padding-top:clamp(20px,2.8vh,34px)!important;
}
.dashboardTripBar{align-items:center!important}
.tripCarouselShell{margin-bottom:clamp(44px,6vh,72px)!important}
@media(max-width:760px){
  .dashboardIntro{margin-top:18px!important;padding-top:18px!important}
  .tripCarouselShell{margin-bottom:48px!important}
}

/* Dedicated library cards are grid items, never carousel participants. */
.pastTripsPage .pastTripGrid .aveluneTripCard,
.pastTripsPage .pastTripGrid .aveluneTripCard:hover,
.pastTripsPage .pastTripGrid .aveluneTripCard:not(.carouselCenter){
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  flex:none!important;
  transform:none!important;
  opacity:1!important;
  filter:none!important;
  z-index:auto!important;
}

.pastTripsPage{background:var(--avelune-surface-dark)!important;background-image:none!important}
.pastTripsHeader{width:min(1180px,calc(100% - 48px))!important;height:78px!important}
.pastTripsHeader .pastTripsAccount{justify-self:end;min-width:92px;color:#fffaf0;border-color:rgba(255,250,240,.24);background:rgba(255,250,240,.06)}
.pastTripsMain{width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;padding:42px 0 72px!important}
.pastTripsIntro{max-width:620px;margin-bottom:25px}
.pastTripsIntro h1{margin:6px 0 8px;font:700 clamp(34px,4vw,46px)/1.04 Georgia,serif;letter-spacing:-.025em}
.pastTripsIntro p{max-width:560px;margin:0;color:rgba(255,250,240,.70);font-size:14px;line-height:1.55}
.pastTripsSearchRow{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:end;gap:13px;margin-bottom:25px}
.pastTripsSearch{max-width:none;min-height:48px;padding:0 14px 0 17px;border-radius:13px;box-shadow:none;backdrop-filter:none}
.pastTripsSearch>span{font-size:22px}.pastTripsSearch input{font-size:14px}
.pastTripsSort{display:grid;gap:5px;color:rgba(255,250,240,.66);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.pastTripsSort select{height:48px;min-width:142px;padding:0 34px 0 13px;font:700 12px/1 inherit;color:#fffaf0}
.pastTripsSort select option{color:#102b39;background:#fffaf0}
.pastTripsSearchRow>small{align-self:center;color:rgba(255,250,240,.60)}
.pastTripGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important}
.pastTripsPage .pastTripGrid .aveluneTripCard,.pastTripsPage .pastTripGrid .aveluneTripCard:hover,.pastTripsPage .pastTripGrid .aveluneTripCard:not(.carouselCenter){max-width:380px!important}
.pastTripGrid .tripCardVisual{min-height:205px!important}
.pastTripGrid .tripCardVisual h3{font-size:clamp(26px,2.6vw,34px)!important}
@media(max-width:900px){
  .pastTripsSearchRow{grid-template-columns:minmax(220px,1fr) auto}.pastTripsSearchRow>small{grid-column:1/-1}
  .pastTripGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .avelunePageBounds,.pastTripsHeader,.pastTripsMain{width:calc(100% - 32px)!important}
  .pastTripsHeader{height:70px!important}.pastTripsHeader img{width:112px!important}.pastTripsHeader .pastTripsAccount{min-width:0;padding:9px 10px;font-size:10px}
  .pastTripsMain{padding:28px 0 48px!important}.pastTripsIntro h1{font-size:36px}
  .pastTripsSearchRow{grid-template-columns:1fr}.pastTripsSort select{width:100%}.pastTripsSearchRow>small{grid-column:auto}
  .pastTripGrid{grid-template-columns:1fr!important}.pastTripsPage .pastTripGrid .aveluneTripCard{max-width:100%!important}
}

/* Batch 6B — Past Trips configures the canonical Home header's action slot. */
.pastTripsPage .dashboardActions .aveluneGhost{display:inline-flex!important;align-items:center!important;justify-content:center!important}

/* Batch 5 — Past Trips is a premium grid of the shared Home trip card. */
.pastTripsMain{width:min(1280px,calc(100% - 56px))!important;max-width:1280px!important}
.pastTripsSearchRow{grid-template-columns:minmax(280px,460px) 164px minmax(150px,1fr)!important;align-items:end!important}
.pastTripsSort select{appearance:none;background-color:rgba(255,250,240,.10)!important;background-image:linear-gradient(45deg,transparent 50%,#e7c27a 50%),linear-gradient(135deg,#e7c27a 50%,transparent 50%)!important;background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important;border:1px solid rgba(223,200,159,.55)!important;border-radius:13px!important}
.pastTripsSearchRow>small{justify-self:end!important}
.pastTripGrid{grid-template-columns:repeat(3,minmax(0,360px))!important;justify-content:center!important;align-items:start!important;gap:24px!important}
.pastTripsPage .pastTripGrid .aveluneTripCard{width:100%!important;max-width:360px!important}
.pastTripGrid .tripCardVisual{min-height:0!important;height:auto!important;aspect-ratio:16/9.5!important;padding:24px!important}
.pastTripGrid .tripCardFooter{min-height:72px!important;padding:0 20px!important}
.pastTripGrid .tripCardVisual:not(.hasImage){isolation:isolate;background:radial-gradient(circle at 82% 20%,rgba(215,168,86,.32),transparent 43%),linear-gradient(145deg,#08283a,#123c4b 62%,#765f38)!important}
.pastTripGrid .tripCardVisual:not(.hasImage)::before{content:"A";position:absolute;z-index:-1;right:20px;top:3px;color:rgba(231,194,122,.16);font:italic 700 132px/1 Georgia,serif}
@media(max-width:980px){
  .pastTripsSearchRow{grid-template-columns:minmax(240px,1fr) 164px!important}.pastTripsSearchRow>small{grid-column:1/-1;justify-self:start!important}
  .pastTripGrid{grid-template-columns:repeat(2,minmax(0,360px))!important}
}
@media(max-width:620px){
  .pastTripsMain{width:calc(100% - 32px)!important}.pastTripsSearchRow{grid-template-columns:1fr!important}.pastTripsSearchRow>small{grid-column:auto!important}
  .pastTripGrid{grid-template-columns:minmax(0,440px)!important}.pastTripsPage .pastTripGrid .aveluneTripCard{max-width:440px!important}
}
