

/* v0.6.0 unified reservations */
.reservationHubGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.reservationHubCard{appearance:none;text-align:left;border:1px solid rgba(191,145,66,.45);background:rgba(255,255,255,.72);border-radius:18px;padding:18px;min-height:100px;color:#082638;cursor:pointer;box-shadow:0 10px 24px rgba(3,24,39,.06)}
.reservationHubCard:hover{transform:translateY(-1px)}
.reservationHubCard b{display:block;font-size:16px;margin-bottom:5px}
.reservationHubCard small{display:block;color:#667983;line-height:1.3}
.googleTravelPossible{border-style:dashed!important}
.googleTravelPossible .googleTravelSource{color:#9a6e28}
@media(max-width:850px){.reservationHubGrid{grid-template-columns:1fr}.reservationHubCard{min-height:78px;padding:14px}}


/* v0.7.0 Reservation Center */
.reservationActionGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 28px}
.reservationActionCard{appearance:none;border:1px solid rgba(204,160,82,.55);background:linear-gradient(145deg,rgba(255,252,245,.98),rgba(246,239,226,.9));border-radius:22px;padding:18px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;text-align:left;color:#082638;cursor:pointer;box-shadow:0 12px 28px rgba(3,24,39,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.reservationActionCard:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(3,24,39,.12);border-color:#c99642}
.reservationActionCard b{display:block;font-size:15px;line-height:1.15}
.reservationActionCard small{display:block;margin-top:4px;color:#667983;line-height:1.25}
.reservationActionCard em{font-style:normal;font-size:26px;color:#a9782c}
.reservationActionIcon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#082638;color:#d9aa55;font-weight:800;font-size:17px}
.reservationSectionHead{display:flex;align-items:end;justify-content:space-between;margin:8px 2px 10px;border-top:1px solid rgba(169,120,44,.22);padding-top:18px}
.reservationSectionHead h4{font-family:Georgia,serif;font-size:24px;margin:0;color:#082638}
.reservationMiniList{display:grid;gap:10px}
.reservationMiniCard{appearance:none;width:100%;border:1px solid rgba(169,120,44,.3);background:rgba(255,255,255,.72);border-radius:18px;padding:13px 14px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;text-align:left;color:#082638;cursor:pointer;box-shadow:0 7px 18px rgba(3,24,39,.055)}
.reservationMiniCard:hover{border-color:#c99743;background:#fffdf8}
.reservationMiniIcon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#eef3f1;font-size:21px}
.reservationMiniIcon.flight{background:#f7eddb}.reservationMiniIcon.hotel{background:#edf1ea}.reservationMiniIcon.car{background:#edf2f5}.reservationMiniIcon.restaurant{background:#f6eee9}.reservationMiniIcon.ticket,.reservationMiniIcon.tour{background:#f1edf6}
.reservationMiniCopy{min-width:0;display:block}
.reservationMiniTitle{display:block;font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reservationMiniDate{display:block;font-size:13px;font-weight:650;margin-top:3px;color:#405966}
.reservationMiniLocation{display:block;font-size:12px;margin-top:3px;color:#697b84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reservationMiniConfirm{display:block;font-size:11px;margin-top:4px;color:#9a6e28}
.reservationMiniChevron{font-size:25px;color:#b07d2f}
.reservationEmpty{border:1px dashed rgba(169,120,44,.35);border-radius:18px;padding:20px;text-align:center;color:#667983}.reservationEmpty b,.reservationEmpty small{display:block}.reservationEmpty small{margin-top:5px}
@media(max-width:760px){
  .reservationActionGrid{grid-template-columns:1fr;gap:10px;margin:16px 0 22px}
  .reservationActionCard{border-radius:18px;padding:14px;grid-template-columns:40px 1fr auto}
  .reservationActionIcon{width:40px;height:40px;border-radius:13px}
  .reservationMiniCard{grid-template-columns:42px 1fr auto;padding:12px;border-radius:16px}
  .reservationMiniIcon{width:42px;height:42px;border-radius:13px}
  .reservationSectionHead h4{font-size:21px}
}

/* v0.9.0 travel intelligence — useful cue only, no internal reasoning UI */
.travelGuard{display:none!important}
.flightBlockNote{display:none!important}
.travelIntelInline{grid-column:1/-1;margin:0 14px 10px 74px}
.travelIntelCue{display:flex;align-items:center;gap:9px;padding:8px 11px;border-top:1px solid rgba(15,112,120,.15);color:#405966;font-size:12px}
.travelIntelCue b{color:#0b3546;font-size:12px}
.travelIntelCue small{display:block;margin-top:2px;color:#6b7e87;font-size:11px}
.travelIntelIcon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef6f4;color:#0f7078;font-weight:800}
@media(max-width:760px){
  .travelIntelInline{margin:0 10px 8px 54px}
  .travelIntelCue{padding:7px 8px;font-size:11px}
  .travelIntelCue b{font-size:11px}
}


/* v0.9.1 fixed vs flexible timing */
.travelIntelHidden{display:none!important}
.timingChoice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:7px}
.timingChoiceBtn{appearance:none;border:1px solid rgba(169,120,44,.28);background:#fffdf8;border-radius:16px;padding:12px 13px;text-align:left;color:#173747;cursor:pointer}
.timingChoiceBtn b{display:block;font-size:13px}
.timingChoiceBtn small{display:block;margin-top:3px;color:#70818a;font-size:11px;line-height:1.25}
.timingChoiceBtn.active{border-color:#c7933d;box-shadow:0 0 0 2px rgba(199,147,61,.12);background:#fbf5e9}
.timingEditBlock,.timingAutoBlock{margin-top:16px}
.timingFixedBadge{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8a6227;border:1px solid rgba(169,120,44,.35);border-radius:999px;padding:3px 7px;background:#fffaf0}
@media(max-width:760px){.timingChoice{grid-template-columns:1fr}.timingChoiceBtn{padding:11px}}


/* v0.9.2 client-clean itinerary */
.driveTimeBetween,
.driveTime,
.driveSegment,
.routeSegmentRow,
.travelSegment,
.travelSegmentRow{display:none!important}

.timingFixedBadge{display:none!important}

/* Reservation cards stay concise until expanded / info is requested. */
.itineraryCard .travelIntelInline.travelIntelHidden{display:none!important}
.itineraryCard:not(.expanded) .p34Actions{display:none!important}


/* v0.9.3 dynamic manual reservations */
.manualTypeGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 24px}
.manualTypeCard{appearance:none;border:1px solid rgba(169,120,44,.3);background:rgba(255,255,255,.72);border-radius:20px;padding:16px;display:flex;align-items:center;gap:12px;text-align:left;color:#082638;cursor:pointer;box-shadow:0 8px 22px rgba(3,24,39,.06);transition:.18s ease}
.manualTypeCard:hover{transform:translateY(-2px);border-color:#c7923f;box-shadow:0 13px 28px rgba(3,24,39,.1)}
.manualTypeIcon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eef4f2;color:#0f7078;font-size:20px;flex:0 0 auto}
.manualTypeCard b{display:block;font-size:14px}.manualTypeCard small{display:block;margin-top:3px;color:#70818a;font-size:11px;line-height:1.25}
.manualFormHead{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.manualFormHead h3{margin:0}.manualFormHead .meta{margin:3px 0 0}
.manualBackType{appearance:none;border:1px solid rgba(169,120,44,.35);background:#fffaf0;border-radius:12px;width:38px;height:38px;color:#8b6428;font-size:18px;cursor:pointer}
.manualDynamicForm{grid-template-columns:repeat(2,minmax(0,1fr))}
.manualDynamicForm .full{grid-column:1/-1}
.manualSearchRow{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:6px}
.manualPlaceResult{appearance:none;width:100%;border:0;border-top:1px solid rgba(15,112,120,.12);background:transparent;padding:11px 4px;text-align:left;color:#082638;cursor:pointer}
.manualPlaceResult:first-child{margin-top:6px}.manualPlaceResult b,.manualPlaceResult small{display:block}.manualPlaceResult small{margin-top:2px;color:#71818a}
.manualPlaceLocked{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;border:1px solid rgba(15,112,120,.22);border-radius:14px;background:#f2f8f6;color:#173747}
.manualPlaceLocked>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#dcefeb;color:#0f7078;font-weight:800}
.manualPlaceLocked b,.manualPlaceLocked small{display:block}.manualPlaceLocked small{margin-top:2px;color:#6b7e87}
@media(max-width:820px){.manualTypeGrid{grid-template-columns:1fr 1fr}.manualDynamicForm{grid-template-columns:1fr}.manualDynamicForm .full{grid-column:auto}}
@media(max-width:520px){.manualTypeGrid{grid-template-columns:1fr}.manualSearchRow{grid-template-columns:1fr}.manualTypeCard{padding:14px}}


/* v0.10.0 unified reservation editor */
.unifiedReservationEdit{grid-template-columns:repeat(2,minmax(0,1fr))}
.unifiedReservationEdit .full{grid-column:1/-1}
@media(max-width:760px){
  .unifiedReservationEdit{grid-template-columns:1fr}
  .unifiedReservationEdit .full{grid-column:auto}
}


/* v0.11.0 Travel Wallet */
.walletCategoryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 22px}
.walletCategoryCard{appearance:none;border:1px solid rgba(169,120,44,.28);background:rgba(255,255,255,.76);border-radius:20px;padding:15px;display:flex;align-items:center;gap:12px;text-align:left;color:#082638;cursor:pointer;box-shadow:0 8px 20px rgba(3,24,39,.05)}
.walletCategoryCard:hover{transform:translateY(-1px);border-color:#c6923f}
.walletCategoryIcon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#edf5f3;color:#0f7078;font-size:20px;flex:0 0 auto}
.walletCategoryCard b,.walletCategoryCard small{display:block}.walletCategoryCard small{margin-top:3px;color:#71818a;font-size:11px;line-height:1.2}
.walletCategoryCard em{margin-left:auto;font-style:normal;color:#9a6d27;font-weight:800}
.walletActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.walletHead{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.walletHead h3{margin:0}
.walletCardList{display:grid;gap:10px}
.walletMiniCard{appearance:none;width:100%;border:1px solid rgba(169,120,44,.24);background:#fffdf9;border-radius:18px;padding:13px 15px;display:flex;align-items:center;gap:12px;text-align:left;color:#082638;cursor:pointer}
.walletMiniIcon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#eef5f3;color:#0f7078;font-size:18px;flex:0 0 auto}
.walletMiniCopy{min-width:0;flex:1}.walletMiniCopy b,.walletMiniCopy small,.walletMiniCopy em{display:block}.walletMiniCopy small{margin-top:2px;color:#526b77}.walletMiniCopy em{margin-top:2px;color:#809098;font-style:normal;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.walletEmpty{padding:24px;border:1px dashed rgba(169,120,44,.3);border-radius:18px;text-align:center;color:#71818a}
.walletDetail{display:grid;gap:10px}.walletDetailHero{display:flex;align-items:center;gap:14px;padding:17px;border:1px solid rgba(169,120,44,.25);border-radius:20px;background:#fffdf9}.walletDetailHero>span{width:50px;height:50px;border-radius:16px;background:#eef5f3;display:grid;place-items:center;color:#0f7078;font-size:22px}.walletDetailHero b,.walletDetailHero small{display:block}.walletDetailHero small{margin-top:4px;color:#647985}
.walletDetailRow{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:11px 4px;border-bottom:1px solid rgba(15,112,120,.1)}.walletDetailRow span{color:#7a8b93;font-size:12px}.walletDetailRow b{color:#173747}
.walletCode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em}
.walletPassCode{padding:18px;border-radius:18px;background:#082638;color:#fff;text-align:center}.walletPassCode span,.walletPassCode b{display:block}.walletPassCode span{font-size:10px;letter-spacing:.14em;color:#d9bd81}.walletPassCode b{margin-top:6px;font:700 20px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
@media(max-width:820px){.walletCategoryGrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.walletCategoryGrid{grid-template-columns:1fr}.walletDetailRow{grid-template-columns:1fr;gap:3px}}


/* v0.11.1 wallet carousel CSS removed in v0.12.1. */

/* v0.11.4 — Home-style Travel Wallet Lazy Susan */
.walletLoopShell{
  position:relative;
  width:100%;
  min-height:430px;
  padding:18px 62px 28px;
  perspective:2200px;
  perspective-origin:50% 42%;
  overflow:hidden;
  box-sizing:border-box;
}
.walletLoopStage{
  position:relative;
  height:365px;
  width:100%;
  transform-style:preserve-3d;
  touch-action:pan-y;
  user-select:none;
}
.walletLoopCard{
  position:absolute;
  left:50%;
  top:50%;
  width:min(540px,64vw);
  max-width:540px;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(226,204,166,.88);
  border-radius:28px;
  background:#fffaf0;
  box-shadow:0 14px 36px rgba(3,24,39,.12);
  transform-origin:center center;
  transition:
    transform .52s cubic-bezier(.22,.75,.22,1),
    opacity .42s ease,
    filter .42s ease,
    box-shadow .42s ease;
  opacity:calc(1 - min(var(--ad,0),3) * .23);
  filter:
    blur(calc(min(var(--ad,0),3) * 1.15px))
    saturate(calc(1 - min(var(--ad,0),2.5) * .10));
  transform:
    translate(-50%,-50%)
    translateX(calc(var(--d,0) * 56%))
    translateY(calc(min(var(--ad,0),3) * 14px))
    translateZ(calc(var(--ad,0) * -150px))
    rotateY(calc(var(--d,0) * -18deg))
    scale(calc(1 - min(var(--ad,0),2.4) * .085));
  cursor:pointer;
}
.walletLoopCard.is-active{
  opacity:1;
  filter:none;
  transform:
    translate(-50%,-50%)
    translateX(0)
    translateY(-8px)
    translateZ(130px)
    rotateY(0deg)
    scale(1.085);
  box-shadow:0 34px 82px rgba(3,24,39,.30);
}
.walletLoopCard.is-near{opacity:.80}
.walletLoopCard.is-mid{opacity:.48}
.walletLoopCard.is-far{
  opacity:.18;
  pointer-events:none;
}
.walletLoopHero{
  min-height:235px;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    radial-gradient(circle at 83% 18%,rgba(225,176,86,.34),transparent 42%),
    linear-gradient(135deg,#072638,#123b49 66%,#8a7242);
  color:#fffaf0;
}
.walletLoopTopline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.walletLoopTopline small{
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:10px;
  font-weight:850;
  color:#e8c47c;
}
.walletLoopIcon{
  width:56px;height:56px;
  display:grid;place-items:center;
  border-radius:18px;
  background:rgba(255,250,240,.12);
  border:1px solid rgba(255,250,240,.22);
  font-size:24px;
}
.walletLoopHero h4{
  margin:0;
  max-width:88%;
  color:#fffaf0;
  font:700 34px/1.04 Georgia,serif;
}
.walletLoopMeta{
  position:relative;
  min-height:88px;
  padding:17px 54px 17px 22px;
  background:#fffaf0;
  color:#173746;
}
.walletLoopMeta b,.walletLoopMeta small{display:block}
.walletLoopMeta b{font-size:13px}
.walletLoopMeta small{
  margin-top:4px;
  color:#6e818a;
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.walletLoopChevron{
  position:absolute;
  right:20px;top:50%;
  transform:translateY(-50%);
  font-size:30px;
  color:#b47f2f;
}
.walletLoopArrow{
  position:absolute;
  top:48%;
  transform:translateY(-50%);
  z-index:150;
  width:46px;height:46px;
  border-radius:50%;
  border:1px solid rgba(212,165,79,.70);
  background:#fffaf0;
  color:#08283a;
  font-size:32px;
  line-height:1;
  box-shadow:0 10px 26px rgba(3,24,39,.15);
}
.walletLoopPrev{left:8px}
.walletLoopNext{right:8px}
.walletLoopHint{
  text-align:center;
  margin-top:-10px;
  color:#7a8b93;
  font-size:11px;
  letter-spacing:.02em;
}
@media(max-width:760px){
  .walletLoopShell{
    min-height:370px;
    padding:10px 6px 20px;
  }
  .walletLoopStage{height:325px}
  .walletLoopCard{
    width:min(84vw,440px);
    transform:
      translate(-50%,-50%)
      translateX(calc(var(--d,0) * 52%))
      translateY(calc(min(var(--ad,0),3) * 10px))
      translateZ(calc(var(--ad,0) * -94px))
      rotateY(calc(var(--d,0) * -12deg))
      scale(calc(1 - min(var(--ad,0),2.4) * .065));
  }
  .walletLoopCard.is-active{
    transform:
      translate(-50%,-50%)
      translateX(0)
      translateY(-4px)
      translateZ(70px)
      rotateY(0deg)
      scale(1.05);
  }
  .walletLoopHero{min-height:205px;padding:22px}
  .walletLoopHero h4{font-size:28px}
  .walletLoopArrow{display:none}
}


/* v0.11.5 — wallet sizing + slower glide */
.walletLoopShell{
  min-height:390px!important;
  padding-top:12px!important;
}
.walletLoopStage{
  height:330px!important;
}
.walletLoopCard{
  width:min(450px,54vw)!important;
  max-width:450px!important;
  transition:
    transform .68s cubic-bezier(.16,.84,.24,1),
    opacity .56s ease,
    filter .56s ease,
    box-shadow .56s ease!important;
}
.walletLoopCard.is-active{
  transform:
    translate(-50%,-50%)
    translateX(0)
    translateY(-6px)
    translateZ(120px)
    rotateY(0deg)
    scale(1.06)!important;
}
.walletLoopHero{
  min-height:195px!important;
  padding:22px!important;
}
.walletLoopHero h4{
  font-size:29px!important;
}
.walletLoopIcon{
  width:50px!important;
  height:50px!important;
  font-size:21px!important;
}
.walletLoopMeta{
  min-height:76px!important;
  padding:14px 50px 14px 18px!important;
}

/* Desktop arrows stay completely hidden until the carousel itself is hovered. */
.walletLoopArrow{
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .22s ease,transform .22s ease!important;
}
.walletLoopShell:hover .walletLoopArrow,
.walletLoopShell:focus-within .walletLoopArrow{
  opacity:1!important;
  pointer-events:auto!important;
}
.walletLoopShell:hover .walletLoopArrow:hover{
  transform:translateY(-50%) scale(1.06)!important;
}

@media(max-width:760px){
  .walletLoopShell{
    min-height:335px!important;
    padding:8px 4px 16px!important;
  }
  .walletLoopStage{
    height:292px!important;
  }
  .walletLoopCard{
    width:min(76vw,380px)!important;
    max-width:380px!important;
  }
  .walletLoopCard.is-active{
    transform:
      translate(-50%,-50%)
      translateX(0)
      translateY(-3px)
      translateZ(58px)
      rotateY(0deg)
      scale(1.035)!important;
  }
  .walletLoopHero{
    min-height:174px!important;
    padding:19px!important;
  }
  .walletLoopHero h4{
    font-size:25px!important;
  }
  .walletLoopMeta{
    min-height:70px!important;
    padding:13px 44px 13px 16px!important;
  }
  .walletLoopArrow{
    display:none!important;
  }
}


/* v0.12.0 travel intelligence */
.travelIntelInline{
  grid-column:1/-1;
  margin:0 16px 11px 74px;
}
.travelIntelCue{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 4px 2px;
  border-top:1px solid rgba(15,112,120,.14);
}
.travelIntelCue b{
  display:block;
  color:#173746;
  font-size:12px;
  font-weight:800;
}
.travelIntelCue small{
  display:block;
  margin-top:2px;
  color:#6d8089;
  font-size:11px;
}
.travelIntelIcon{
  flex:0 0 auto;
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#edf6f4;
  color:#0f7078;
  font-weight:900;
}
@media(max-width:760px){
  .travelIntelInline{margin:0 10px 8px 54px}
}


/* v0.13.1 permanent travel-time visibility */
.travelIntelInline:not(.travelIntelHidden){
  display:block!important;
}
.travelLeaveByHidden{
  display:none!important;
}
.travelIntelCue{
  min-height:30px;
}
.travelIntelCue.travelIntelNext{
  border-top-color:rgba(169,120,44,.24);
}


/* v0.14.0 centralized travel-leg presentation */
.travelLegNumber{
  appearance:none;
  position:absolute;
  left:-7px;
  top:-7px;
  z-index:6;
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid rgba(178,128,48,.48);
  background:#fffaf0;
  color:#8b6224;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(3,24,39,.10);
}
.p34Lead{position:relative}
.travelLegNumber:hover{transform:scale(1.06);border-color:#b27d2d}
.travelLegMount{
  grid-column:1/-1;
  margin:0 16px 10px 72px;
}
.travelLegMount[hidden]{display:none!important}
.travelLegPanel{
  border-top:1px solid rgba(15,112,120,.14);
  padding:8px 4px 2px;
}
.travelLegPanel.isNext{
  border-top-color:rgba(178,125,45,.28);
}
.travelLegSummary{
  display:flex;
  align-items:center;
  gap:8px;
}
.travelLegSummary b{
  color:#173746;
  font-size:12px;
  font-weight:850;
}
.travelLegSummary span{
  color:#7a8b93;
  font-size:10px;
}
.travelLegMeta{
  margin-top:2px;
  color:#6d8089;
  font-size:11px;
}
.travelLegMeta b{color:#8b6224}
.heroTravelLeg{
  margin-top:7px;
  display:flex;
  align-items:center;
  gap:10px;
  color:#173746;
}
.heroTravelLeg b{
  font-size:12px;
  font-weight:850;
}
.heroTravelLeg span{
  color:#8b6224;
  font-size:11px;
  font-weight:750;
}
@media(max-width:760px){
  .travelLegMount{margin:0 10px 8px 52px}
  .travelLegNumber{width:22px;height:22px;font-size:9px;left:-5px;top:-5px}
  .heroTravelLeg{flex-wrap:wrap;gap:5px 9px}
}


/* v0.14.1 — travel details are part of expanded card UI */
.travelLegNumber{
  display:none!important;
}
.travelLegMount{
  margin:0 28px 12px 170px;
}
.travelLegPanel{
  margin-top:4px;
  padding:12px 0 2px;
  border-top:1px solid rgba(15,112,120,.14);
}
.travelLegPanel.isNext{
  margin-top:2px;
}
.travelLegSummary b{
  font-size:13px;
}
.travelLegMeta{
  font-size:11.5px;
}
@media(max-width:760px){
  .travelLegMount{
    margin:0 14px 10px 116px;
  }
}


/* v0.14.4 — refined Up Next */
#heroNext{
  padding:18px 20px!important;
}
#heroNext .avNextNumber{
  display:none!important;
}
#heroNext .avNextMain{
  display:block!important;
  margin-top:7px!important;
}
#heroNext .avNextContent{
  min-width:0;
  width:100%;
}
#heroNext .avNextTitle{
  color:#fffaf0!important;
  font-size:18px!important;
  line-height:1.12!important;
  font-weight:850!important;
  letter-spacing:-.01em;
  white-space:normal!important;
}
#heroNext .avNextMeta{
  margin-top:5px!important;
  color:rgba(255,250,240,.82)!important;
  font-size:12.5px!important;
  line-height:1.25!important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.avNextDirections{margin-top:9px!important;min-height:36px!important}
#heroNext .avNextEyebrow{
  color:rgba(255,250,240,.78)!important;
  font-size:10px!important;
  letter-spacing:.16em!important;
  font-weight:800!important;
}

/* Travel intelligence gets its own elegant high-contrast bubble. */
#heroNext .heroTravelLeg{
  margin-top:11px!important;
  width:fit-content;
  max-width:100%;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:8px 11px!important;
  border:1px solid rgba(223,190,126,.34)!important;
  border-radius:14px!important;
  background:rgba(12,72,78,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  color:#fff!important;
}
#heroNext .heroTravelLegIcon{
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
  color:#f5cf85!important;
  font-size:13px;
  font-weight:900;
}
#heroNext .heroTravelLegText{
  display:flex;
  align-items:baseline;
  gap:9px;
  min-width:0;
  flex-wrap:wrap;
}
#heroNext .heroTravelLeg b{
  color:#fff!important;
  opacity:1!important;
  font-size:12.5px!important;
  line-height:1.15!important;
  font-weight:850!important;
}
#heroNext .heroTravelLeg span:not(.heroTravelLegIcon){
  color:#f5cf85!important;
  opacity:1!important;
  font-size:12px!important;
  line-height:1.15!important;
  font-weight:850!important;
}
#heroNext .viewOnMap,
#heroNext [data-next-map],
#heroNext .avNextNumber{
  display:none!important;
}

@media(max-width:760px){
  #heroNext{
    padding:16px 17px!important;
  }
  #heroNext .avNextTitle{
    font-size:17px!important;
  }
  #heroNext .avNextMeta{
    font-size:12px!important;
  }
  #heroNext .heroTravelLeg{
    margin-top:10px!important;
    padding:7px 10px!important;
  }
  #heroNext .heroTravelLegText{
    gap:6px 9px;
  }
}


/* v0.14.5 — compact Up Next travel intelligence */
#heroNext .avNextMeta{
  -webkit-line-clamp:1!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  overflow:hidden!important;
}

/* Keep the travel line inside the Up Next card without dominating it. */
#heroNext .heroTravelLeg{
  margin-top:8px!important;
  width:auto!important;
  max-width:100%!important;
  min-height:0!important;
  padding:6px 9px!important;
  border-radius:11px!important;
  gap:7px!important;
  box-sizing:border-box!important;
}
#heroNext .heroTravelLegIcon{
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  font-size:11px!important;
}
#heroNext .heroTravelLegText{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:3px 8px!important;
  min-width:0!important;
}
#heroNext .heroTravelLeg b{
  font-size:11.5px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
#heroNext .heroTravelLeg span:not(.heroTravelLegIcon){
  font-size:11.5px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
@media(max-width:760px){
  #heroNext .heroTravelLeg{
    margin-top:7px!important;
    padding:5px 8px!important;
    border-radius:10px!important;
  }
  #heroNext .heroTravelLegIcon{
    flex-basis:18px!important;
    width:18px!important;
    height:18px!important;
  }
  #heroNext .heroTravelLeg b,
  #heroNext .heroTravelLeg span:not(.heroTravelLegIcon){
    font-size:11px!important;
  }
}


/* v0.15.0 Avenue AI */
.avenueAiDialog{width:min(1040px,94vw);max-width:1040px;border:0;padding:0;background:transparent}.avenueAiDialog::backdrop{background:rgba(3,24,39,.72);backdrop-filter:blur(8px)}.avenueAiCard{position:relative;max-height:90dvh;overflow:auto;background:#fffaf1;border:1px solid #d9c49f;border-radius:26px;padding:28px 30px 32px;color:#113240;box-shadow:0 30px 80px rgba(3,24,39,.28)}.avenueAiClose{position:absolute;right:18px;top:18px;width:42px;height:42px;border:0;border-radius:50%;background:#12343e;color:#fff;font-size:25px}.avenueAiCard>h3{font:700 36px/1 Georgia,serif;margin:7px 0 8px}.avenueAiIntro{color:#667d86;max-width:760px}.avenueAiLoading{min-height:220px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center}.avenueAiLoading>span{width:34px;height:34px;border:3px solid #d6e7e4;border-top-color:#0b7b80;border-radius:50%;animation:spin .8s linear infinite}.avenueAiLoading small{color:#778b92}.avenueAiScope{margin-top:24px;padding:20px;border:1px solid #dfd1b9;border-radius:18px;background:#fff}.avenueAiScope label{display:grid;gap:7px;font-weight:800}.avenueAiScope select{padding:12px;border:1px solid #cddfdc;border-radius:12px;background:#fff}.avenueAiScopeActions{display:flex;gap:10px;margin-top:14px}.avenueAiResults{display:grid;gap:22px;margin-top:22px}.avenueAiDay{display:grid;gap:15px}.avenueAiDayHead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #e4d8c6;padding-bottom:12px}.avenueAiDayHead h4{margin:5px 0 0;font-size:16px;line-height:1.4}.avenueAiEnergy{padding:6px 9px;border-radius:999px;background:#edf6f4;color:#0a7277;font-size:10px;font-weight:850;text-transform:uppercase;white-space:nowrap}.avenueAiWarnings{display:grid;gap:7px}.avenueAiWarnings>div{display:grid;gap:2px;padding:10px 12px;border-left:3px solid #b57a2a;background:#fff7e7;border-radius:8px}.avenueAiWarnings span{color:#6a7e86;font-size:12px}.avenueAiGap{border:1px solid #dfd3c0;border-radius:18px;background:rgba(255,255,255,.74);overflow:hidden}.avenueAiGapHead{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;background:#f7f3eb}.avenueAiGapHead b,.avenueAiGapHead small{display:block}.avenueAiGapHead small{margin-top:2px;color:#7b8b91}.avenueAiGapHead>span{font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#9a6d28}.avenueAiRecommendations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.avenueAiRec{display:flex;flex-direction:column;min-width:0;padding:14px;border:1px solid #d9e4e1;border-radius:15px;background:#fff}.avenueAiRecTop{display:flex;justify-content:space-between;gap:8px}.avenueAiType{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#0b777d;font-weight:850}.avenueAiRec h5{font-size:16px;line-height:1.08;margin:4px 0 0}.avenueAiFit{height:fit-content;padding:4px 6px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;white-space:nowrap}.avenueAiFit.comfortable{background:#e9f6ef;color:#2d7150}.avenueAiFit.good{background:#eef5f4;color:#126d72}.avenueAiFit.tight{background:#fff3de;color:#94631d}.avenueAiMetrics{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:10px;color:#687d85;font-size:9.5px}.avenueAiWhy{margin-top:12px;padding-top:10px;border-top:1px solid #e6eeeb}.avenueAiWhy b{font-size:10px;color:#173c46}.avenueAiWhy p{margin:4px 0;color:#5b727b;font-size:11px;line-height:1.35}.avenueAiWhy small{color:#a06d20;font-weight:800}.avenueAiActions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}.avenueAiActions button{padding:8px 9px;font-size:9.5px}.avenueAiNoOptions{padding:20px;text-align:center;border:1px dashed #d8c9af;border-radius:14px;color:#70838a}.avenueAiNoOptions b,.avenueAiNoOptions span{display:block}.avenueAiNoOptions span{margin-top:4px;font-size:11px}@media(max-width:780px){.avenueAiCard{padding:22px 16px 26px;border-radius:22px}.avenueAiCard>h3{font-size:30px;padding-right:45px}.avenueAiRecommendations{grid-template-columns:1fr}.avenueAiScopeActions{display:grid}.avenueAiDayHead{display:block}.avenueAiEnergy{display:inline-block;margin-top:8px}}

.avenueAiExtraTravel{color:#9a6a25!important;font-weight:800}
\n\n/* v0.15.1 — Avenue AI date-card chooser + staged analysis */
.avenueAiScope{margin-top:22px;padding:0;border:0;background:transparent}
.avenueAiScopeHead{margin-bottom:14px}.avenueAiScopeHead b,.avenueAiScopeHead small{display:block}.avenueAiScopeHead b{font-size:15px;color:#153746}.avenueAiScopeHead small{margin-top:4px;color:#71868e;font-size:11px}
.avenueAiDateGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.avenueAiDateCard{appearance:none;min-height:118px;border:1px solid #dfcfb2;border-radius:18px;background:linear-gradient(180deg,#fff,#fbf6ec);padding:14px;text-align:left;color:#153746;box-shadow:0 7px 18px rgba(3,24,39,.05);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.avenueAiDateCard:hover{transform:translateY(-2px);border-color:#b88637;box-shadow:0 12px 24px rgba(3,24,39,.09)}
.avenueAiDateCard span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#9a6d28;font-weight:850}.avenueAiDateCard b{display:block;margin-top:7px;font:700 31px/1 Georgia,serif;color:#0e303e}.avenueAiDateCard small{display:block;margin-top:7px;color:#70838b;font-size:10px}
@media(max-width:780px){.avenueAiDateGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.avenueAiDateCard{min-height:98px;padding:11px;border-radius:15px}.avenueAiDateCard b{font-size:26px}.avenueAiDateCard small{font-size:8.5px}}

/* v0.15.2 Avenue AI refinement */
.avenueAiGapHead>span{letter-spacing:.10em}.avenueAiGapHead>div>b{font-size:14px}.avenueAiGapHead>div>small{font-size:10px}.avenueAiRecommendations{align-items:stretch}.avenueAiRec{box-shadow:0 7px 18px rgba(8,39,49,.035)}.avenueAiWhy p{font-size:11.5px}.avenueAiMetrics{row-gap:5px}.avenueAiEnergy{opacity:.88}

/* v0.15.5 Avenue AI variety */
.avenueAiMore{display:block;margin:0 12px 12px auto;border:0;background:transparent;color:#8f6423;font-size:10px;font-weight:850;cursor:pointer;padding:5px 3px}.avenueAiMore:hover{text-decoration:underline}.avenueAiMore:disabled{opacity:.55;cursor:default;text-decoration:none}.avenueAiRecommendations{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.avenueAiRecommendations{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.avenueAiRecommendations{grid-template-columns:1fr}}

/* v0.15.6 Avenue AI taxonomy/refill */
.avenueAiRecommendations{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1050px){.avenueAiRecommendations{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.avenueAiRecommendations{grid-template-columns:1fr}}

/* v0.15.8 Avenue Concierge */
.avenueAiCard>h3{letter-spacing:-.025em}.avenueAiGapHead small:empty{display:none}.avenueAiWhy>b{letter-spacing:.01em}

/* ================================================================
   Avelune v0.16.0 — luxury UI refinement
   Progressive disclosure, quieter controls, editorial Avelune AI.
   ================================================================ */
body.aveluneTripMode{background:var(--avelune-cream)}
.aveluneTripBar{background:var(--avelune-navy)!important;border-bottom-color:rgba(255,250,240,.08)!important}
.aveluneTripExplore{background:var(--avelune-gold)!important;color:var(--avelune-navy)!important;border-color:var(--avelune-gold)!important;box-shadow:none!important}
.aveluneTodayTop,.aveluneBack{background:transparent!important;border-color:rgba(255,250,240,.16)!important;color:var(--avelune-ivory)!important}
.aveluneTopMenu{background:transparent!important;border-color:rgba(255,250,240,.16)!important}
.mobileMapToggle{background:var(--avelune-ivory)!important;border-color:var(--avelune-line)!important;color:var(--avelune-text)!important;box-shadow:var(--avelune-shadow-soft)!important}

/* planner controls: primary, secondary, tertiary rather than a row of pills */
.plannerTools,.plannerToolbar,.plannerToolRow{gap:9px!important}
.plannerTool{border-color:var(--avelune-line)!important;background:rgba(255,253,248,.70)!important;box-shadow:none!important;border-radius:var(--avelune-radius-sm)!important}
.plannerTool:hover{background:var(--avelune-ivory-raised)!important;border-color:rgba(16,43,57,.22)!important;transform:translateY(-1px)}
.plannerTool.aiPlanButton{background:transparent!important;border-color:transparent!important;color:var(--avelune-gold-deep)!important;padding-left:8px!important;padding-right:8px!important}
.plannerTool.aiPlanButton .toolIcon{background:transparent!important;color:var(--avelune-gold-deep)!important}

/* itinerary: warm, compact, low-noise */
.itineraryCard{background:var(--avelune-ivory-raised)!important;border-color:var(--avelune-line)!important;border-radius:var(--avelune-radius-md)!important;box-shadow:0 5px 18px rgba(3,24,39,.035)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.itineraryCard:hover{transform:translateY(-1px);box-shadow:0 9px 25px rgba(3,24,39,.065)!important;border-color:rgba(16,43,57,.18)!important}
.itineraryCard.expanded{box-shadow:0 12px 30px rgba(3,24,39,.075)!important}
.travelIntelCue{border-top-color:var(--avelune-line)!important;background:rgba(124,143,122,.055);border-radius:10px;color:#536b75}
.travelIntelIcon{background:rgba(124,143,122,.14)!important;color:#536b61!important}

/* reservation/wallet pickers: less outlined-box repetition */
.manualTypeCard,.walletCategoryCard{background:var(--avelune-ivory-raised)!important;border-color:var(--avelune-line)!important;box-shadow:0 6px 20px rgba(3,24,39,.045)!important}
.manualTypeCard:hover,.walletCategoryCard:hover{border-color:rgba(16,43,57,.22)!important;box-shadow:0 10px 26px rgba(3,24,39,.07)!important}
.manualTypeIcon,.walletCategoryIcon,.walletMiniIcon{background:rgba(124,143,122,.12)!important;color:#536b61!important}
.walletMiniCard,.walletDetailHero{background:var(--avelune-ivory-raised)!important;border-color:var(--avelune-line)!important}
.walletEmpty{border:0!important;background:rgba(124,143,122,.055)!important;color:var(--avelune-muted)!important}

/* Avelune AI — curated concierge, not an AI dashboard */
.avenueAiDialog{width:min(1120px,96vw)!important;max-width:1120px!important}
.avenueAiCard{background:var(--avelune-ivory)!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:var(--avelune-radius-modal)!important;padding:32px 34px 36px!important;box-shadow:var(--avelune-shadow-modal)!important}
.avenueAiCard>h3{font-family:var(--avelune-serif)!important;font-size:clamp(32px,4vw,44px)!important;color:var(--avelune-navy-soft)!important;margin-top:8px!important}
.avenueAiIntro{font-size:13px!important;line-height:1.55!important;max-width:620px!important}
.avenueAiClose{background:var(--avelune-navy-soft)!important}
.avenueAiScopeHead b{font-family:var(--avelune-serif);font-size:20px!important;font-weight:700!important}
.avenueAiDateGrid{gap:12px!important}
.avenueAiDateCard{background:var(--avelune-ivory-raised)!important;border-color:var(--avelune-line)!important;box-shadow:0 6px 20px rgba(3,24,39,.04)!important;border-radius:var(--avelune-radius-md)!important}
.avenueAiDateCard:hover{border-color:rgba(158,114,40,.34)!important;box-shadow:0 12px 30px rgba(3,24,39,.07)!important}
.avenueAiDay{gap:19px!important}
.avenueAiDayHead{border-bottom-color:var(--avelune-line)!important;padding-bottom:15px!important}
.avenueAiDayActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.avenueAiSelectionStatus{font-size:11px;color:var(--avelune-muted);font-weight:700}.avenueAiRec.is-selected{border-color:var(--avelune-gold)!important;box-shadow:0 0 0 2px rgba(203,162,85,.22)}
.avenueAiDayHead h4{font-weight:600!important;color:#526a74!important}
.avenueAiEnergy{background:rgba(124,143,122,.10)!important;color:#596d5b!important;padding:5px 8px!important}
.avenueAiGap{border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;padding-top:4px!important}
.avenueAiGapHead{background:transparent!important;padding:7px 2px 11px!important;border:0!important}
.avenueAiGapHead>div>b{font-family:var(--avelune-serif)!important;font-size:21px!important;color:var(--avelune-navy-soft)!important}
.avenueAiGapHead>span{color:var(--avelune-muted)!important}
.avenueAiRecommendations{display:flex!important;gap:14px!important;padding:2px 2px 10px!important;overflow-x:auto!important;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}
.avenueAiRecommendations::-webkit-scrollbar{display:none}
.avenueAiRec{flex:0 0 min(340px,82vw)!important;scroll-snap-align:center;padding:0!important;overflow:hidden;background:var(--avelune-ivory-raised)!important;border:1px solid var(--avelune-line)!important;border-radius:22px!important;box-shadow:0 10px 30px rgba(3,24,39,.07)!important;transition:transform .22s var(--avelune-ease),box-shadow .22s ease!important}
.avenueAiRec:hover{transform:translateY(-2px);box-shadow:0 15px 38px rgba(3,24,39,.10)!important}
.avenueAiRecMedia{appearance:none;border:0;padding:0;width:100%;height:154px;background:#eee8dc;overflow:hidden;cursor:pointer}
.avenueAiRecMedia img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--avelune-ease)}
.avenueAiRec:hover .avenueAiRecMedia img{transform:scale(1.015)}
.avenueAiRecContent{display:flex;flex-direction:column;min-height:250px;padding:16px 17px 17px}
.avenueAiRec h5{font-family:var(--avelune-serif)!important;font-size:21px!important;line-height:1.06!important;color:var(--avelune-navy-soft)!important;font-weight:700!important}
.avenueAiType{color:var(--avelune-muted)!important}
.avenueAiFit{background:transparent!important;color:#5b7162!important;padding:2px 0!important;font-size:8px!important}
.avenueAiMetrics{font-size:10px!important;color:#637780!important;gap:5px 10px!important}
.avenueAiWhy{border-top-color:var(--avelune-line)!important;margin-top:13px!important;padding-top:12px!important}
.avenueAiWhy b{font-size:10px!important;letter-spacing:.02em}
.avenueAiWhy p{font-size:12px!important;line-height:1.48!important;margin:5px 0!important}
.avenueAiWhy small{color:var(--avelune-gold-deep)!important}
.avenueAiActions{gap:7px!important;padding-top:15px!important}
.avenueAiActions .confirm{flex:1 1 auto!important}
.avenueAiActions .ghost{border:0!important;background:transparent!important;padding-left:5px!important;padding-right:5px!important;color:#526a74!important}
.avenueAiMore{color:var(--avelune-gold-deep)!important;margin:3px 2px 2px auto!important}
.avenueAiNoOptions{border:0!important;background:rgba(124,143,122,.055)!important;border-radius:var(--avelune-radius-md)!important}
.avenueAiWarnings>div{border-left:2px solid rgba(158,114,40,.55)!important;background:rgba(215,168,86,.075)!important}
.avenueAiLoading>span{border-color:rgba(124,143,122,.18)!important;border-top-color:var(--avelune-gold-deep)!important}

/* quieter empty/error surfaces */
.warningBox{border-color:transparent!important;background:rgba(215,168,86,.08)!important;border-radius:var(--avelune-radius-md)!important}
.emptyState{border:0!important;background:rgba(124,143,122,.055)!important;border-radius:var(--avelune-radius-md)!important}

@media(max-width:780px){
  .avenueAiCard{padding:25px 17px 28px!important;border-radius:24px!important}
  .avenueAiRecommendations{margin-left:-2px;margin-right:-2px;padding-right:12vw!important}
  .avenueAiRec{flex-basis:82vw!important}
  .avenueAiRecMedia{height:142px}
  .avenueAiGapHead>div>b{font-size:19px!important}
  .avenueAiEnergy{margin-top:7px!important}
}


/* ================================================================
   Avelune v0.16.1 — calmer trip workspace + editorial AI photography
   Visual-only refinement. No itinerary, travel, map, AI, or reservation logic.
   ================================================================ */
body.aveluneTripMode{
  background:var(--avelune-navy)!important;
}
body.aveluneTripMode .tripWorkspace{
  background:var(--avelune-navy)!important;
  background-image:none!important;
}
body.aveluneTripMode .aveluneTripBar{
  background:var(--avelune-navy)!important;
  background-image:none!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
body.aveluneTripMode .tripWorkspace .heroHeader,
body.aveluneTripMode .tripWorkspace .heroHeader.heroHasPhoto,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoWide,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoStandard,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoTall,
body.aveluneTripMode .tripWorkspace .heroHeader.heroNoPhoto{
  background:var(--avelune-navy)!important;
  background-image:none!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
body.aveluneTripMode .tripWorkspace main{
  background:var(--avelune-navy)!important;
  background-image:none!important;
}

/* Map + itinerary should read as two deliberate surfaces, separated by air. */
@media(min-width:851px){
  body.aveluneTripMode .tripWorkspace main{
    column-gap:30px!important;
    gap:30px!important;
    padding:24px 28px 30px!important;
  }
  body.aveluneTripMode .tripWorkspace .mapPane,
  body.aveluneTripMode .tripWorkspace .panel{
    border-color:rgba(16,43,57,.10)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.12)!important;
  }
}

/* Let typography and space separate itinerary groups rather than extra chrome. */
.day{padding-top:18px!important;padding-bottom:18px!important}
.dayHead{margin-bottom:8px!important}
.itineraryCard{margin-top:10px!important;margin-bottom:10px!important}

/* Toolbar: quieter, with Avelune AI treated as a tertiary concierge action. */
.plannerTool{box-shadow:none!important}
.plannerTool.aiPlanButton{border:0!important;box-shadow:none!important}

/* Recommendation photography: use a true editorial landscape frame instead
   of the shallow banner crop used in v0.16.0. */
.avenueAiRecMedia{
  height:auto!important;
  aspect-ratio:16/9!important;
  min-height:185px!important;
  max-height:220px!important;
  background:#ece7dc!important;
}
.avenueAiRecMedia img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
}
.avenueAiRecContent{
  min-height:244px!important;
  padding:17px 18px 18px!important;
}
.avenueAiRecommendations{
  gap:18px!important;
  padding-top:4px!important;
  padding-bottom:14px!important;
}
.avenueAiRec{
  flex-basis:min(360px,80vw)!important;
}
.avenueAiGapHead{
  padding-top:12px!important;
  padding-bottom:13px!important;
}
.avenueAiDay{gap:22px!important}
.avenueAiMore{margin-top:1px!important}

/* Avoid a technical/dashboard feel around the concierge results. */
.avenueAiEnergy{
  border:0!important;
  box-shadow:none!important;
}
.avenueAiFit{
  letter-spacing:.055em!important;
}

@media(max-width:850px){
  body.aveluneTripMode .tripWorkspace main{
    background:var(--avelune-navy)!important;
  }
  .avenueAiRecMedia{
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:16/10!important;
  }
  .avenueAiRec{flex-basis:84vw!important}
}


/* ================================================================
   Avelune v0.16.2 — balanced trip canvas + Avelune AI emphasis
   ================================================================ */
body.aveluneTripMode,
body.aveluneTripMode .tripWorkspace,
body.aveluneTripMode .aveluneTripBar,
body.aveluneTripMode .tripWorkspace .heroHeader,
body.aveluneTripMode .tripWorkspace .heroHeader.heroHasPhoto,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoWide,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoStandard,
body.aveluneTripMode .tripWorkspace .heroHeader.heroPhotoTall,
body.aveluneTripMode .tripWorkspace .heroHeader.heroNoPhoto,
body.aveluneTripMode .tripWorkspace .avHeroDeck,
body.aveluneTripMode .tripWorkspace main{
  background:var(--avelune-blue)!important;
  background-image:none!important;
}
body.aveluneTripMode .aveluneTripBar{
  border-bottom:1px solid rgba(215,168,86,.52)!important;
  box-shadow:none!important;
}
body.aveluneTripMode .tripWorkspace .heroHeader,
body.aveluneTripMode .tripWorkspace .heroHeader.heroNoPhoto{
  border-bottom:0!important;
  box-shadow:none!important;
}

/* Equal visual weight for map + itinerary; separation comes from air, not a divider. */
@media(min-width:851px){
  body.aveluneTripMode .tripWorkspace main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:40px!important;
    gap:40px!important;
    padding:28px 32px 34px!important;
  }
  body.aveluneTripMode .tripWorkspace .mapPane,
  body.aveluneTripMode .tripWorkspace .panel{
    width:100%!important;
    min-width:0!important;
    border:1px solid rgba(255,250,240,.08)!important;
    box-shadow:0 18px 46px rgba(0,0,0,.16),0 2px 8px rgba(0,0,0,.08)!important;
  }
}

/* The itinerary control row belongs to the document flow; it must not creep
   upward and press against the top edge while the itinerary scrolls. */
.tripWorkspace #content > .plannerToolbar,
.tripWorkspace #content > .p39Toolbar,
.p39Toolbar{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
  transform:none!important;
}

/* Avelune AI is the signature control: same geometry, unmistakable brand state. */
.p39Toolbar .aiPlanButton,
.tripWorkspace #content > .plannerToolbar .aiPlanButton{
  background:var(--avelune-blue)!important;
  border:1.5px solid var(--avelune-gold)!important;
  color:var(--avelune-gold)!important;
  box-shadow:0 7px 20px rgba(0,0,0,.12)!important;
}
.p39Toolbar .aiPlanButton b,
.p39Toolbar .aiPlanButton small,
.p39Toolbar .aiPlanButton .toolIcon,
.tripWorkspace #content > .plannerToolbar .aiPlanButton b,
.tripWorkspace #content > .plannerToolbar .aiPlanButton small,
.tripWorkspace #content > .plannerToolbar .aiPlanButton .toolIcon{
  color:var(--avelune-gold)!important;
}
.p39Toolbar .aiPlanButton .toolIcon{
  background:rgba(215,168,86,.09)!important;
  border:1px solid rgba(215,168,86,.30)!important;
}
.p39Toolbar .aiPlanButton:hover{
  background:#0d2b40!important;
  border-color:#e1b96d!important;
  transform:translateY(-1px)!important;
}

/* Less-aggressive horizontal editorial framing. Landscape photos fill; if
   Avelune cannot find landscape metadata, the fallback is contained rather
   than brutally cropped. */
.avenueAiRecMedia{
  aspect-ratio:3/2!important;
  min-height:0!important;
  max-height:none!important;
  background:#e9e3d8!important;
}
.avenueAiRecMedia img{
  object-fit:cover!important;
  object-position:center 45%!important;
}
.avenueAiRecMedia.aiPhotoFallback img{
  object-fit:contain!important;
  object-position:center!important;
  background:#e9e3d8!important;
}
@media(max-width:850px){
  .avenueAiRecMedia{aspect-ratio:3/2!important}
}


/* ================================================================
   Avelune v0.16.3 — balanced workspace + quieter concierge UI
   ================================================================ */
@media(min-width:851px){
  body.aveluneTripMode .tripWorkspace main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:clamp(44px,4vw,76px)!important;
    gap:clamp(44px,4vw,76px)!important;
    padding-inline:clamp(28px,3.2vw,56px)!important;
  }
  body.aveluneTripMode .tripWorkspace .mapPane,
  body.aveluneTripMode .tripWorkspace .panel{
    box-shadow:0 22px 58px rgba(1,15,25,.18),0 3px 10px rgba(1,15,25,.08)!important;
  }
}
/* Avelune AI remains the single signature control. */
.p39Toolbar .aiPlanButton,
.tripWorkspace #content > .plannerToolbar .aiPlanButton{
  border-width:2px!important;
  border-color:#d9aa55!important;
  box-shadow:0 8px 22px rgba(0,0,0,.14),inset 0 0 0 1px rgba(255,250,240,.025)!important;
}
.p39Toolbar .aiPlanButton small,
.tripWorkspace #content > .plannerToolbar .aiPlanButton small{display:none!important}
/* Customer-facing Avelune AI: no implementation badges or scoring chrome. */
.avenueAiEnergy,.avenueAiFit,.avenueAiExtraTravel{display:none!important}
.avenueAiDayHead{padding-bottom:15px!important}
.avenueAiDayHead h4{font-family:var(--avelune-serif)!important;font-size:18px!important;line-height:1.35!important;font-weight:600!important;max-width:760px}
.avenueAiGapHead{padding:12px 2px 13px!important}
.avenueAiGapHead>div>b{font-size:23px!important;letter-spacing:-.01em}
.avenueAiGapTime{display:block;margin-top:4px;color:#6d8189;font-family:var(--avelune-sans)!important;font-size:11px!important;font-weight:600;letter-spacing:.01em}
.avenueAiRecTop{display:block!important}
.avenueAiMetrics{gap:6px 11px!important}
.avenueAiWhy b{font-family:var(--avelune-sans)!important;font-size:10px!important;letter-spacing:.04em;text-transform:none}
.avenueAiWhy small{font-family:var(--avelune-sans)!important;font-size:11px!important;color:var(--avelune-gold-deep)!important;font-weight:750}
.avenueAiMore{font-family:var(--avelune-sans)!important;font-size:10px!important;font-weight:750!important;letter-spacing:.01em!important}
.avenueAiWarnings>div b{font-size:10px!important;letter-spacing:.03em!important}
@media(max-width:850px){
  .avenueAiDayHead h4{font-size:17px!important}
  .avenueAiGapHead>div>b{font-size:20px!important}
}


/* ================================================================
   Avelune v0.16.4 — cohesive visual refinement
   No itinerary, reservation, wallet, map or AI logic changes.
   ================================================================ */
/* Reservations: editorial choices rather than settings tiles. */
.reservationActionGrid{gap:16px!important;margin:24px 0 30px!important}
.reservationActionCard{
  border-color:rgba(16,43,57,.10)!important;background:#fffdf8!important;
  border-radius:var(--avelune-radius-card)!important;box-shadow:0 8px 22px rgba(3,24,39,.045)!important;
  padding:19px!important;
}
.reservationActionCard:hover{border-color:rgba(215,168,86,.38)!important;box-shadow:var(--avelune-shadow-soft)!important;transform:translateY(-2px)!important}
.reservationActionIcon{background:rgba(215,168,86,.09)!important;color:var(--avelune-gold-deep)!important;border:0!important}
.reservationActionCard em{color:#a8a097!important}

/* Wallet hierarchy + signature movement. */
.walletCategoryCard{border-color:rgba(16,43,57,.10)!important;box-shadow:none!important;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease!important}
.walletCategoryCard.walletCategoryPopulated{background:#fffdf8!important;box-shadow:0 7px 18px rgba(3,24,39,.05)!important}
.walletCategoryCard.walletCategoryEmpty{opacity:.48!important;background:rgba(255,253,248,.52)!important;border-color:rgba(16,43,57,.06)!important}
.walletCategoryCard.walletCategoryEmpty .walletCategoryIcon,.walletCategoryCard.walletCategoryEmpty em{color:#9aa5a8!important}
.walletCategoryCard:hover{opacity:1!important;transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(3,24,39,.07)!important}
.walletLoopCard{transition:transform .46s var(--avelune-ease),opacity .36s ease,filter .36s ease,box-shadow .36s ease!important;box-shadow:0 16px 40px rgba(3,24,39,.10)!important}
.walletLoopCard.is-active{box-shadow:0 24px 60px rgba(3,24,39,.18)!important}
.walletLoopCard.is-near{opacity:.76!important}.walletLoopCard.is-mid{opacity:.42!important}
.walletLoopArrow{opacity:0;transition:opacity .18s ease,background .18s ease!important;background:rgba(3,24,39,.76)!important}
.walletLoopShell:hover .walletLoopArrow{opacity:1}.walletLoopHint{opacity:.55!important}

/* Concierge groups behave as horizontal editorial carousels. */
.avenueAiRecommendations{
  display:flex!important;gap:18px!important;overflow-x:auto!important;overflow-y:visible!important;
  scroll-snap-type:x proximity!important;scrollbar-width:none!important;padding:3px 4px 18px!important;
  overscroll-behavior-inline:contain!important;
}
.avenueAiRecommendations::-webkit-scrollbar{display:none!important}
.avenueAiRecommendations .avenueAiRec{
  flex:0 0 clamp(300px,31.5%,372px)!important;width:auto!important;scroll-snap-align:start!important;
  border-color:rgba(16,43,57,.10)!important;border-radius:var(--avelune-radius-feature)!important;
  box-shadow:0 14px 34px rgba(3,24,39,.07)!important;
}
.avenueAiRecommendations.recCount-1,.avenueAiRecommendations.recCount-2{justify-content:center!important}
.avenueAiRecommendations.recCount-1 .avenueAiRec{flex-basis:min(380px,86%)!important}
.avenueAiRecommendations.recCount-2 .avenueAiRec{flex-basis:min(360px,45%)!important}
.avenueAiRecMedia{border-radius:var(--avelune-radius-feature) var(--avelune-radius-feature) 0 0!important;background:#e8e0d2!important}
.avenueAiRecMediaFallback{display:grid!important;place-items:center!important;align-content:center!important;background:var(--avelune-blue)!important;color:var(--avelune-gold)!important;border:0!important}
.avenueAiFallbackMark{font-family:var(--avelune-serif)!important;font-size:56px!important;font-style:italic!important;line-height:1!important}.avenueAiRecMediaFallback small{margin-top:6px;letter-spacing:.24em;font-size:8px;color:rgba(255,250,240,.58)}
.avenueAiWhy small{font-weight:700!important;letter-spacing:.01em!important}
.avenueAiMore{border:0!important;background:transparent!important;color:var(--avelune-gold-deep)!important;padding-inline:2px!important}

/* Itinerary: calmer rhythm, fewer circles, still compact. */
.planDay{padding-block:15px 22px!important}
.planDay+.planDay{margin-top:10px!important}
.planDay>.dayHead{margin-bottom:12px!important;padding:0 5px!important}
.dayItems{display:grid!important;gap:11px!important}
.itineraryCard{padding-top:13px!important;padding-bottom:13px!important;border-color:rgba(16,43,57,.10)!important;box-shadow:0 5px 14px rgba(3,24,39,.035)!important}
.itineraryCard:hover{box-shadow:0 9px 22px rgba(3,24,39,.055)!important}
.itineraryCard .p34Info{display:none!important}
.itineraryCard .expandChevron{border-color:rgba(16,43,57,.08)!important;background:rgba(239,247,245,.72)!important}
.itineraryCard.expanded .p34Actions{padding-top:13px!important;margin-top:12px!important;border-top:1px solid rgba(16,43,57,.08)!important}
.itineraryCard.expanded .quickBtn{border-color:rgba(16,43,57,.10)!important;background:#fffdf9!important;border-radius:var(--avelune-radius-control)!important}

/* Place details: one signature editorial template. */
#placeDialog .placeDetailFit{border-radius:var(--avelune-radius-modal)!important;box-shadow:var(--avelune-shadow-modal)!important}
#placeDialog .detailGallery{border-radius:22px!important;background:#ebe5da!important}
#placeDialog .placeDetailInfo{padding-top:16px!important}
#placeDialog .placeDetailInfo h2{font-family:var(--avelune-serif)!important;letter-spacing:-.025em!important}
#placeDialog .placePrimaryActions{gap:8px!important;margin-top:17px!important;padding-top:14px!important;border-top:1px solid rgba(16,43,57,.08)!important}
#placeDialog .placePrimaryActions .linkBtn,#placeDialog .placePrimaryActions .confirm{border-radius:var(--avelune-radius-control)!important}
#placeDialog .placeBookingAction{border-color:rgba(215,168,86,.48)!important;color:var(--avelune-gold-deep)!important;background:#fffaf0!important}

/* Map supports the itinerary instead of competing with it. */
.mapLegend{opacity:.82!important;box-shadow:0 8px 20px rgba(3,24,39,.07)!important;border-color:rgba(16,43,57,.08)!important}
.mapLegendTitle{color:#72838a!important}.legendRow{font-size:10px!important}
.mapPane .leaflet-control{filter:saturate(.86);opacity:.90;transition:opacity .15s ease}.mapPane:hover .leaflet-control{opacity:1}
#mapCaption{color:#77878d!important;font-size:10px!important}

/* Navigation density: one dominant action, quiet secondary controls. */
.aveluneTripBar{padding-block:8px!important}.aveluneTripBar button,.aveluneTripBar .aveluneNavButton{min-height:36px!important}
.aveluneTripBar #exploreAdd,.aveluneTripBar .exploreAdd{box-shadow:0 8px 22px rgba(215,168,86,.16)!important}

/* Premium loading / empty states with minimal layout shift. */
.loadingCard,.emptyPlan,.walletEmpty,.reservationEmpty,.avenueAiNoOptions{
  border:0!important;background:rgba(255,253,248,.68)!important;border-radius:var(--avelune-radius-card)!important;
  box-shadow:inset 0 0 0 1px rgba(16,43,57,.06)!important;color:#667b84!important;
}
.avenueAiLoading>span,.aiLoading:before{border-color:rgba(16,43,57,.10)!important;border-top-color:var(--avelune-gold)!important}

@media(max-width:850px){
  .avenueAiRecommendations{padding-inline:1px!important;gap:12px!important}
  .avenueAiRecommendations .avenueAiRec{flex-basis:min(84vw,350px)!important}
  .avenueAiRecommendations.recCount-2{justify-content:flex-start!important}
  .walletLoopArrow{opacity:.72}
  .planDay{padding-block:12px 18px!important}
}


/* ================================================================
   Avelune v0.16.5 — itinerary control shelf + balanced workspace
   ================================================================ */
@media(min-width:851px){
  body.aveluneTripMode .tripWorkspace main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:clamp(54px,5vw,92px)!important;
    gap:clamp(54px,5vw,92px)!important;
    padding-inline:clamp(30px,3.4vw,62px)!important;
  }
}
body.aveluneTripMode .tripWorkspace #content>.p39Toolbar,
body.aveluneTripMode .tripWorkspace #content>.plannerToolbar,
body.aveluneTripMode .tripWorkspace .p39Toolbar{
  position:sticky!important;
  top:0!important;
  z-index:24!important;
  margin-top:0!important;
  padding-top:10px!important;
  padding-bottom:12px!important;
  background:linear-gradient(180deg,rgba(255,253,249,.985) 0%,rgba(255,253,249,.985) 82%,rgba(255,253,249,.92) 100%)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  box-shadow:0 10px 20px rgba(3,24,39,.035)!important;
}
/* The itinerary scrolls beneath the fixed control shelf without touching it. */
body.aveluneTripMode .tripWorkspace #content{
  scroll-padding-top:92px!important;
}
/* Keep the signature Avelune AI pill quiet but unmistakable. */
.p39Toolbar .aiPlanButton,
.tripWorkspace #content>.plannerToolbar .aiPlanButton{
  border-color:#e3b865!important;
  box-shadow:0 8px 22px rgba(0,0,0,.12),inset 0 0 0 1px rgba(227,184,101,.08)!important;
}
/* A little more editorial air between concierge dayparts, not inside each card. */
.avenueAiGap{margin-top:12px!important;margin-bottom:30px!important}
.avenueAiGap+.avenueAiGap{margin-top:34px!important}
.avenueAiDayHead{margin-bottom:18px!important}


/* v0.16.7 Explore & Add / reservation placement */
.v167Explore{width:min(820px,calc(100vw - 28px))}
.v167Explore h3{font-size:clamp(31px,4vw,42px)!important;margin-top:8px!important}
.v167Explore>p{max-width:660px;font-size:14px;line-height:1.5;color:#667b84!important;margin-bottom:20px!important}
.v167Explore .exploreSearchRow{grid-template-columns:minmax(0,1fr) auto;gap:10px}
.v167Explore .exploreSearchRow input{height:54px;border-color:rgba(15,48,61,.14);box-shadow:0 7px 18px rgba(10,35,47,.04)}
.exploreNativeResult{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 4px;border-bottom:1px solid rgba(157,128,79,.18)}
.exploreNativeResult:last-child{border-bottom:0}.exploreResultMain{appearance:none;border:0;background:transparent;text-align:left;display:grid;gap:3px;min-width:0;padding:0;color:#10303e;cursor:pointer}.exploreResultMain b{font-size:16px}.exploreResultMain small{font-size:11px;color:#73858c;overflow-wrap:anywhere}.exploreResultType{font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:#a06b24;font-weight:900}.exploreResultActions{display:flex;gap:7px}.exploreNoResults,.exploreNoFit{padding:20px 6px;display:grid;gap:4px;color:#607780}.exploreNoResults b,.exploreNoFit b{color:#173845}
.explorePlacementIntro{display:grid;gap:4px;margin:4px 0 12px}.explorePlacementIntro b{font:700 20px/1.15 Georgia,serif;color:#12313f}.explorePlacementIntro small{color:#6f8188;line-height:1.4}
.exploreFitGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin:12px 0 18px}.exploreFitCard{appearance:none;border:1px solid rgba(154,118,61,.19);border-radius:15px;background:#fffdf8;padding:12px;text-align:left;display:grid;gap:4px;cursor:pointer;color:#163541;box-shadow:0 7px 18px rgba(5,31,43,.035)}.exploreFitCard:hover,.exploreFitCard.selected{border-color:#c8943c;box-shadow:0 0 0 2px rgba(200,148,60,.09),0 9px 20px rgba(5,31,43,.05)}.exploreFitCard.best,.exploreBookingDay.best{background:linear-gradient(180deg,#fff8e9,#fffdf8);border-color:rgba(180,126,35,.64);box-shadow:inset 3px 0 0 #bd842c,0 8px 19px rgba(88,57,16,.06)}.exploreFitDate{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#8f6b31;font-weight:850}.exploreFitBestBadge{justify-self:start;border-radius:999px;padding:3px 7px;background:#f5e3bd;color:#855619;font-size:8px;letter-spacing:.08em;font-weight:900}.exploreFitCard b{font-size:15px}.exploreFitCard small{color:#607780;font-size:10px;line-height:1.35}.exploreFitCard em{font-style:normal;font-size:9px;color:#a16e28;font-weight:800}.exploreBookingDays{display:grid;gap:10px;margin:12px 0 18px}.exploreBookingDay{display:grid;gap:7px;border:1px solid rgba(154,118,61,.19);border-radius:15px;background:#fffdf8;padding:13px;color:#163541}.exploreBookingDayHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.exploreBookingWindowLabel{font-size:8px;letter-spacing:.1em;color:#8f6b31;font-weight:900}.exploreBookingWindows{display:flex;flex-wrap:wrap;gap:7px}.exploreBookingWindow{appearance:none;border:1px solid rgba(154,118,61,.28);border-radius:999px;background:#fff;padding:7px 9px;color:#23424c;font:800 12px/1.1 inherit;cursor:pointer}.exploreBookingWindow:hover,.exploreBookingWindow.selected{border-color:#bd842c;background:#fff5df;box-shadow:0 0 0 2px rgba(189,132,44,.10)}.exploreBookingDay>small,.exploreBookingDay>p{margin:0;color:#607780;font-size:11px;line-height:1.4}.exploreReservationForm{margin-top:12px}.exploreReservationForm label>small{font-weight:500;color:#879398}.exploreFlowOkay{padding:10px 12px;border-radius:12px;background:#eef6f3;color:#356453;font-size:11px;font-weight:750}.exploreTimingBlock .timingChoiceBtn{min-height:68px}
.explorePlacementActions{display:flex;align-items:center;gap:10px;margin-top:4px}.explorePlacementActions .ghost{margin-left:2px}
@media(max-width:700px){.v167Explore .exploreSearchRow{grid-template-columns:1fr}.exploreNativeResult{grid-template-columns:1fr}.exploreResultActions{width:100%}.exploreResultActions button{flex:1}.exploreFitGrid{grid-template-columns:1fr 1fr}.exploreReservationForm{grid-template-columns:1fr!important}}


/* v0.16.8 — restore compact place details + contained itinerary expansion */
/* Place details return to the compact editorial card proportions used before
   the later visual-system pass, while preserving current reviews/booking logic. */
#placeDialog{
  width:min(820px,88vw)!important;
  max-width:min(820px,88vw)!important;
  height:auto!important;
  max-height:88dvh!important;
}
#placeDialog .sheet.detail{
  height:min(78dvh,680px)!important;
  max-height:min(78dvh,680px)!important;
  overflow:hidden!important;
  padding:12px 14px 14px!important;
  border:0!important;
  border-radius:22px!important;
  background:#fffdf9!important;
  box-shadow:0 24px 64px rgba(1,15,25,.22)!important;
}
#placeDialog #placeBody{height:100%!important;min-height:0!important}
#placeDialog .placeDetailFit{
  position:relative!important;
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:#fffdf9!important;
  box-shadow:none!important;
}
#placeDialog .detailGallery{
  min-height:0!important;
  height:100%!important;
  max-height:none!important;
  margin:0!important;
  border-radius:16px!important;
  background:#f3eee5!important;
}
#placeDialog .detailGallery img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:cover!important;
}
#placeDialog .placeDetailInfo{padding-top:7px!important;min-height:0!important}
#placeDialog .placeDetailInfo h2{
  font-size:clamp(23px,2.5vw,29px)!important;
  margin:4px 0 3px!important;
  letter-spacing:-.025em!important;
}
#placeDialog .placeSummary{
  margin:4px 0!important;
  -webkit-line-clamp:2!important;
  font-size:11px!important;
  line-height:1.34!important;
}
#placeDialog .placeDetailInfo>.meta{margin:3px 0!important;font-size:10px!important}
#placeDialog .rating{font-size:11px!important}
#placeDialog .placePrimaryActions{
  margin-top:8px!important;
  padding-top:9px!important;
  gap:7px!important;
  border-top:1px solid rgba(16,43,57,.07)!important;
}
#placeDialog .placePrimaryActions>*{padding:8px 10px!important;font-size:10px!important}
#placeDialog>.sheet>.x,#placeDialog .sheet>.x{top:11px!important;right:11px!important}

/* Expanded itinerary cards stay inside the itinerary column. The selection
   treatment is inset so opening a card never visually grows beyond its box. */
.item.itineraryCard.expanded,
.itineraryCard.expanded{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  transform:none!important;
  overflow:hidden!important;
  outline:0!important;
  border-color:rgba(15,112,120,.30)!important;
  box-shadow:inset 0 0 0 2px rgba(15,112,120,.11),0 8px 22px rgba(3,24,39,.055)!important;
}
.item.itineraryCard.expanded:focus,
.item.itineraryCard.expanded:focus-visible{outline:0!important}

/* Lock moved into reservation timing in v0.16.7, so the remaining four
   actions now share the full row evenly instead of leaving a fifth empty slot. */
.itineraryCard.expanded .p34Actions,
.p34Card.expanded .p34Actions{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
  align-items:stretch!important;
}
.itineraryCard.expanded .p34Actions .quickBtn,
.p34Card.expanded .p34Actions .quickBtn{
  width:100%!important;
  min-width:0!important;
  flex:none!important;
  justify-content:center!important;
  text-align:center!important;
}
@media(max-width:700px){
  #placeDialog{width:94vw!important;max-width:94vw!important;max-height:92dvh!important}
  #placeDialog .sheet.detail{height:86dvh!important;max-height:86dvh!important;padding:10px!important}
  #placeDialog .placeDetailFit{grid-template-rows:minmax(170px,44dvh) auto!important}
  .itineraryCard.expanded .p34Actions,.p34Card.expanded .p34Actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Batch 5 — compact, equal-height Concierge recommendation collection. */
@media(min-width:761px){
  #avenueAiDialog .avenueAiGap{margin:8px 0 22px!important}
  #avenueAiDialog .avenueAiGapHead{padding:7px 2px 9px!important}
  #avenueAiDialog .avenueAiGapHead>div>b{font-size:19px!important}
  #avenueAiDialog .avenueAiRecommendations{
    --ai-card-width:clamp(286px,31vw,322px);
    align-items:stretch!important;gap:14px!important;
    padding:5px max(42px,calc((100% - var(--ai-card-width))/2)) 12px!important;
    scroll-padding-inline:max(42px,calc((100% - var(--ai-card-width))/2))!important;
  }
  #avenueAiDialog .avenueAiRec{
    position:relative;flex:0 0 var(--ai-card-width)!important;max-width:var(--ai-card-width)!important;
    height:404px!important;min-height:404px!important;align-self:stretch!important;
  }
  #avenueAiDialog .avenueAiRecMedia{height:126px!important;min-height:126px!important}
  #avenueAiDialog .avenueAiRecContent{height:278px!important;min-height:0!important;padding:12px 14px 13px!important}
  #avenueAiDialog .avenueAiRecTop h5{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:19px!important;line-height:1.08!important;min-height:41px}
  #avenueAiDialog .avenueAiMetrics{margin-top:7px!important;max-height:29px;overflow:hidden}
  #avenueAiDialog .avenueAiRecNotices{max-height:28px;overflow:hidden;margin-top:6px!important}
  #avenueAiDialog .avenueAiWhy{margin-top:7px!important;padding-top:7px!important}
  #avenueAiDialog .avenueAiWhy p{-webkit-line-clamp:2!important;line-height:1.32!important;margin:4px 0!important}
  #avenueAiDialog .avenueAiActions{display:grid!important;grid-template-columns:1.35fr .62fr .72fr;align-items:center;margin-top:auto!important;padding-top:9px!important}
  #avenueAiDialog .avenueAiActions>*{width:100%!important;justify-content:center!important;padding:8px 5px!important}
}
#avenueAiDialog .googlePhotoAttribution{position:absolute;z-index:2;top:104px;left:9px;max-width:calc(100% - 18px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 6px;border-radius:999px;background:rgba(3,24,39,.78);color:#fff;font-size:8px;line-height:1.2}
#avenueAiDialog .googlePhotoAttribution a{color:#fff;text-decoration:underline}


/* v0.16.9 — Explore & Add restoration */
#exploreAddDialog{
  width:min(920px,calc(100vw - 36px))!important;
  max-width:min(920px,calc(100vw - 36px))!important;
  margin:auto!important;
  overflow:visible!important;
}
#exploreAddDialog .v167Explore{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding:30px 32px 28px!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:#fffaf1!important;
  box-shadow:0 28px 72px rgba(3,24,39,.24)!important;
}
#exploreAddDialog .exploreClose{top:18px!important;right:18px!important}
#exploreAddDialog .v167Explore h3{font-size:clamp(34px,4.2vw,48px)!important;line-height:1.02!important;max-width:760px!important;margin:8px 52px 8px 0!important}
#exploreAddDialog .v167Explore>p{max-width:700px!important;margin:0 0 22px!important;color:#647982!important;font-size:14px!important;line-height:1.5!important}
#exploreAddDialog .exploreSearchWrap{width:100%!important;min-width:0!important}
#exploreAddDialog .exploreSearchRow{display:grid!important;grid-template-columns:minmax(0,1fr) 110px!important;gap:12px!important;width:100%!important;min-width:0!important}
#exploreAddDialog .exploreSearchRow input{width:100%!important;min-width:0!important;height:54px!important;border:1px solid rgba(16,43,57,.12)!important;border-radius:14px!important;background:#fffdf9!important;padding:0 16px!important}
#exploreAddDialog .exploreSearchRow .confirm{height:54px!important;border-radius:14px!important}
#exploreAddDialog .exploreResults{margin-top:18px!important;display:grid!important;gap:10px!important;min-width:0!important}
#exploreAddDialog .exploreNativeResult{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:18px!important;
  align-items:center!important;
  padding:16px 18px!important;
  border:0!important;
  border-radius:16px!important;
  background:rgba(255,253,249,.92)!important;
  box-shadow:inset 0 0 0 1px rgba(16,43,57,.07),0 7px 18px rgba(3,24,39,.035)!important;
}
#exploreAddDialog .exploreResultMain{display:grid!important;gap:4px!important;min-width:0!important;padding:0!important}
#exploreAddDialog .exploreResultMain b{font:700 18px/1.15 Georgia,serif!important;color:#12313f!important}
#exploreAddDialog .exploreResultMain small{font-size:11px!important;line-height:1.4!important;color:#6d8189!important}
#exploreAddDialog .exploreResultActions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:7px!important;flex-wrap:nowrap!important}
#exploreAddDialog .exploreResultActions button{white-space:nowrap!important;min-height:36px!important;border-radius:11px!important}
#exploreAddDialog .exploreResultActions .confirm{padding-inline:13px!important}
#exploreAddDialog .exploreResultActions .ghost{background:#fffaf1!important}
#exploreAddDialog .addressSuggestions{width:100%!important;max-width:100%!important}
@media(max-width:760px){
  #exploreAddDialog{width:calc(100vw - 18px)!important;max-width:calc(100vw - 18px)!important}
  #exploreAddDialog .v167Explore{padding:24px 18px 20px!important;border-radius:20px!important}
  #exploreAddDialog .v167Explore h3{font-size:32px!important;margin-right:46px!important}
  #exploreAddDialog .exploreSearchRow{grid-template-columns:1fr!important}
  #exploreAddDialog .exploreSearchRow .confirm{width:100%!important}
  #exploreAddDialog .exploreNativeResult{grid-template-columns:1fr!important;gap:12px!important;padding:15px!important}
  #exploreAddDialog .exploreResultActions{width:100%!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #exploreAddDialog .exploreResultActions button{width:100%!important;min-width:0!important;padding-inline:8px!important}
}

/* Booking actions intentionally leave Avelune for provider-owned checkout. */
#placeDialog .placeBookingAction{text-decoration:none!important}


/* v0.17.1 — Avelune AI proven carousel + mobile containment */
.avenueAiDialog{max-width:min(1120px,calc(100vw - 24px))!important;width:min(1120px,calc(100vw - 24px))!important}
.avenueAiCard{overflow-y:auto!important;overflow-x:hidden!important;max-width:100%!important;box-sizing:border-box!important}
.avenueAiResults,.avenueAiDay,.avenueAiGap{min-width:0!important;max-width:100%!important}
.avenueAiCarousel{position:relative;min-width:0;width:100%;max-width:100%}
.avenueAiRecommendations{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth;-webkit-overflow-scrolling:touch!important;touch-action:pan-x!important;overscroll-behavior-x:contain!important;gap:18px!important;padding:8px 42px 16px!important;scroll-padding-inline:42px!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
.avenueAiRecommendations .avenueAiRec{flex:0 0 clamp(290px,31%,350px)!important;min-width:0!important;max-width:350px!important;scroll-snap-align:center!important;scroll-snap-stop:always!important}
.avenueAiRecommendations.recCount-1,.avenueAiRecommendations.recCount-2{justify-content:flex-start!important}
.avenueAiCarouselArrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:38px;height:38px;border:1px solid rgba(216,165,72,.55);border-radius:50%;background:rgba(7,35,52,.92);color:#e0ac4c;font:700 25px/1 Georgia,serif;display:grid;place-items:center;opacity:0;transition:opacity .18s ease,transform .18s ease;cursor:pointer;box-shadow:0 8px 20px rgba(3,24,39,.13)}
.avenueAiCarousel:hover .avenueAiCarouselArrow{opacity:1}.avenueAiCarouselArrow:first-child{left:5px}.avenueAiCarouselArrow:last-child{right:5px}.avenueAiCarouselArrow:hover{transform:translateY(-50%) scale(1.05)}
.avenueAiActions .confirm.added{background:#e8e0d2!important;color:#526a74!important}
@media(max-width:780px){
  .avenueAiDialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;margin:8px auto!important}
  .avenueAiCard{padding:22px 14px 26px!important;border-radius:22px!important;max-height:calc(100dvh - 16px)!important}
  .avenueAiRecommendations{gap:12px!important;padding:8px 9vw 16px!important;scroll-padding-inline:9vw!important;margin:0!important}
  .avenueAiRecommendations .avenueAiRec{flex:0 0 78vw!important;max-width:340px!important}
  .avenueAiCarouselArrow{display:none!important}
  .avenueAiRecContent{min-height:0!important}
  .avenueAiGap{margin-bottom:26px!important}
  .avenueAiDayActions{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin-top:10px!important}
  .avenueAiDayActions .confirm{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;white-space:nowrap!important}
}


/* v0.17.3 reservation reliability UX */
.reservationDropZone{border:1px dashed rgba(169,120,44,.42);border-radius:18px;background:rgba(255,255,255,.52);min-height:150px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;transition:.18s ease}
.reservationDropZone.dragging{background:#fffaf0;border-color:#c99338;box-shadow:0 10px 28px rgba(12,38,52,.08)}
.reservationDropIcon{font-size:28px;color:#a36d1f}.reservationDropZone>b{color:#103447}.reservationDropZone>small{color:#71838b}.reservationFileList{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.reservationFileList span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f3eee4;color:#425c68;font-size:11px}.reservationFileList button{border:0;background:transparent;color:#9a6830;cursor:pointer;font-size:15px;padding:0}
.reservationSwipe{position:relative;overflow:hidden;border-radius:18px}.reservationSwipeDelete{position:absolute;inset:0 0 0 auto;width:92px;border:0;background:#a64437;color:white;font-weight:800;cursor:pointer}.reservationSwipe .reservationMiniCard{position:relative;z-index:2;transition:transform .2s ease;width:100%}.reservationSwipe.revealed .reservationMiniCard{transform:translateX(-92px)}
@media (hover:hover){.reservationSwipe:hover .reservationSwipeDelete{opacity:1}.reservationSwipeDelete{opacity:.78}}
.aveluneActionStatus{position:fixed;left:50%;bottom:28px;z-index:100000;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:#0d3442;color:#fff;border:1px solid rgba(216,164,74,.6);border-radius:999px;padding:10px 16px;font-weight:750;font-size:12px;box-shadow:0 12px 35px rgba(3,24,39,.24);transition:.2s ease}.aveluneActionStatus.show{opacity:1;transform:translate(-50%,0)}
button.confirm.avelunePressed{transform:translateY(1px);filter:brightness(.97)}
@media(max-width:700px){.reservationDropZone{min-height:128px;padding:17px}.aveluneActionStatus{bottom:18px;max-width:calc(100vw - 32px);text-align:center}}

/* v0.19.0 — Ask Avelune unified intelligence */
.askAveluneAnswer,.askAvelunePlanningNote{
  border:1px solid rgba(157,128,79,.18);border-radius:16px;background:#fffdf8;
  padding:18px 20px;display:grid;gap:6px;box-shadow:0 8px 24px rgba(5,31,43,.035)
}
.askAveluneAnswer b{font:700 20px/1.28 Georgia,serif;color:#12313f}
.askAveluneAnswer small,.askAvelunePlanningNote small{color:#6d8189;font-size:11px;line-height:1.45}
.askAvelunePlanningNote{margin-bottom:4px;background:linear-gradient(180deg,#fffaf0,#fffdf8)}
.askAvelunePlanningNote b{color:#173845;font-size:14px}

/* v0.19.4 — concierge boundary notices */
.avenueAiRecNotices{display:flex;flex-wrap:wrap;gap:.35rem;margin:.45rem 0 .1rem;font-size:.74rem;font-weight:700;color:var(--gold,#a66b16)}
.avenueAiRecNotices span{display:inline-flex;align-items:center;padding:.28rem .48rem;border:1px solid rgba(166,107,22,.22);border-radius:999px;background:rgba(218,164,76,.08)}


/* v0.20.33 — Trip Menu responsiveness + Reservations interaction */
.tripMenuTransition{min-height:132px;display:grid;align-content:center;gap:12px;padding:18px 4px}
.tripMenuTransitionRow{display:flex;align-items:center;gap:10px;color:#173845;font-size:14px}
.tripMenuTransitionDot{width:10px;height:10px;border-radius:50%;background:var(--avelune-gold);box-shadow:0 0 0 0 rgb(var(--avelune-gold-rgb)/.35);animation:aveluneMenuPulse 1s ease-out infinite}
@keyframes aveluneMenuPulse{70%{box-shadow:0 0 0 9px rgba(215,168,86,0)}100%{box-shadow:0 0 0 0 rgba(215,168,86,0)}}
.sideMenu .menuList button.tripMenuRowBusy{background:#f7efe2!important;border-color:#eadbc4!important}

.reservationSwipe{position:relative;overflow:hidden;border-radius:18px;background:transparent;touch-action:pan-y}
.reservationSwipeDelete{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:88px!important;border:0!important;border-radius:0 18px 18px 0!important;background:#a64437!important;color:#fff!important;font-weight:800!important;opacity:0!important;pointer-events:none!important;transform:translateX(100%)!important;transition:opacity .18s ease,transform .18s ease!important;z-index:1!important}
.reservationSwipe .reservationMiniCard{position:relative!important;z-index:2!important;width:100%!important;transform:translateX(0)!important;transition:transform .2s ease!important}
.reservationSwipe.revealed .reservationMiniCard{transform:translateX(-88px)!important}
.reservationSwipe.revealed .reservationSwipeDelete{opacity:1!important;pointer-events:auto!important;transform:translateX(0)!important}
.reservationMiniCard{overflow:hidden}
.reservationMiniChevron{color:#9b7436!important;font-size:22px!important}
@media(max-width:700px){
  .reservationSwipe,.reservationMiniCard{border-radius:16px!important}
  .reservationSwipeDelete{width:84px!important;border-radius:0 16px 16px 0!important}
  .reservationSwipe.revealed .reservationMiniCard{transform:translateX(-84px)!important}
  .reservationMiniCard{grid-template-columns:42px minmax(0,1fr) 18px!important;gap:10px!important;padding:12px 13px!important}
  .reservationMiniTitle{font-size:15px!important}
  .reservationMiniDate{font-size:12px!important}
  .reservationMiniLocation{font-size:11px!important}
}


/* v0.20.34 — desktop reservation delete + clean edit surface */
@media(min-width:701px){
  .reservationSwipe .reservationMiniCard{padding-right:118px!important}
  .reservationQuickDelete{
    position:absolute;right:42px;top:50%;z-index:5;transform:translateY(-50%);
    min-width:64px;height:34px;padding:0 12px;border:1px solid rgba(166,68,55,.28);
    border-radius:999px;background:#fff9f7;color:#a64437;font:800 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease;
  }
  .reservationQuickDelete:hover{background:#fff0ec;border-color:rgba(166,68,55,.5);transform:translateY(-50%) translateY(-1px)}
}
@media(max-width:700px){.reservationQuickDelete{display:none!important}}

/* Batch 2 — finite recommendation browsing, compact cards, and calm status language. */
.avenueAiRecommendations{
  --ai-card-width:min(440px,58vw);
  padding-inline:max(42px,calc((100% - var(--ai-card-width))/2))!important;
  scroll-padding-inline:max(42px,calc((100% - var(--ai-card-width))/2))!important;
  overscroll-behavior-x:contain!important;
}
.avenueAiRecommendations .avenueAiRec{flex:0 0 var(--ai-card-width)!important;max-width:var(--ai-card-width)!important}
.avenueAiRecMedia{height:124px!important}
.avenueAiRecContent{min-height:0!important;padding:13px 16px 14px!important}
.avenueAiWhy{margin-top:9px!important;padding-top:9px!important}
.avenueAiWhy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.avenueAiActions{padding-top:10px!important;gap:5px!important;flex-wrap:nowrap!important}
.avenueAiActions>*{min-width:0!important;white-space:nowrap!important}
.avenueAiCarouselArrow[hidden]{display:none!important}
.avenueAiCarousel.at-start .avenueAiCarouselArrow:first-child,.avenueAiCarousel.at-end .avenueAiCarouselArrow:last-child{display:none!important}
.avenueAiRecMediaFallback{display:grid!important;place-items:center!important;align-content:center!important;background:var(--avelune-blue,#081A2F)!important;color:var(--avelune-gold,#CBA255)!important}

.dayHeadRight{display:flex;align-items:center;gap:12px;min-width:0}
.dayWeather{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(203,162,85,.28);border-radius:999px;background:rgba(243,235,221,.72);padding:6px 9px;color:var(--avelune-navy-soft,#273037);cursor:pointer;white-space:nowrap}
.dayWeather[hidden]{display:none!important}
.dayWeather span{font-size:15px;line-height:1}.dayWeather b{font-size:12px}.dayWeather small{font-size:9px;color:#75858d}
.dayWeather:focus-visible{outline:2px solid var(--avelune-gold,#CBA255);outline-offset:2px}
.weeklyWeatherDay.is-focused{border-color:rgba(203,162,85,.72);background:#fffaf0;box-shadow:0 0 0 2px rgba(203,162,85,.12)}
.p34Status{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;font-size:10px;font-weight:750;color:#687b80}
.p34Status span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f3eee4}.p34Status span+span{background:#fffaf0;color:#946b2a}
.p34Status.needsAttention{padding:8px 10px;border:1px solid rgba(131,61,57,.48);border-radius:11px;background:rgba(131,61,57,.055);color:#7e4945}
.p34Status.needsAttention span{background:transparent;padding:0}.p34Status.needsAttention span+span{color:#7e4945}
.p34Card.needsAttention{border-color:rgba(131,61,57,.52)!important;box-shadow:0 9px 24px rgba(112,55,48,.08)!important}
@media(max-width:780px){
  .avenueAiRecommendations{--ai-card-width:78vw;padding-inline:9vw!important;scroll-padding-inline:9vw!important}
  .avenueAiRecommendations .avenueAiRec{flex-basis:var(--ai-card-width)!important;max-width:340px!important}
  .avenueAiRecMedia{height:98px!important}
  .dayHeadRight{gap:7px;align-items:flex-end;flex-direction:column}
  .dayWeather{padding:5px 8px}.dayWeather small{display:none}
}

/* Ask Avelune grows with short result sets, then only its results scroll. */
#exploreAddDialog .exploreAddCard,#actionDialog .actionSheet{
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);
}
#exploreAddDialog .exploreAddCard{display:flex;flex-direction:column;height:auto;overflow:hidden}
#exploreAddDialog .exploreSearchWrap{flex:0 0 auto;min-height:0}
#exploreAddDialog #p34SearchResults{flex:1 1 auto;min-height:0;max-height:42dvh;overflow-y:auto;padding:0 2px 24px 0;scroll-padding-bottom:24px;overscroll-behavior:contain}
#exploreAddDialog .addressSuggestions{position:static!important;inset:auto!important;max-height:min(34dvh,300px);overflow-y:auto;overscroll-behavior:contain;margin:8px 0 10px!important;padding:8px 8px 16px!important;scroll-padding-bottom:16px}
.savedPlacesList{display:grid;gap:12px;margin-top:18px}
.savedPlaceCard{display:grid;gap:14px;padding:17px;border:1px solid var(--avelune-line);border-radius:18px;background:linear-gradient(145deg,#fffdf9,#f8f2e9);box-shadow:0 10px 28px rgba(51,42,31,.06)}
.savedPlaceCard .title{margin-top:5px;font-family:var(--serif);font-size:21px;color:var(--avelune-ink)}
.savedPlaceCard .note{margin-top:5px;color:var(--avelune-muted);line-height:1.45}
.savedPlaceCard .links{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:700px){
  #exploreAddDialog .exploreAddCard{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px)}
  #exploreAddDialog #p34SearchResults{max-height:38dvh;padding-bottom:28px;scroll-padding-bottom:28px}
  #exploreAddDialog .addressSuggestions{max-height:min(32dvh,250px);margin:8px 0 12px!important;padding-bottom:18px!important;scroll-padding-bottom:18px}
}

/* Batch 6A — one premium, finite recommendation rail per trip day. */
#avenueAiDialog .avenueAiUnifiedGap{margin:12px 0 8px!important;padding:0!important}
#avenueAiDialog .avenueAiRecommendations{
  --ai-card-width:clamp(360px,46vw,470px);
  align-items:stretch!important;
  cursor:grab;
  user-select:none;
}
#avenueAiDialog .avenueAiRecommendations.is-dragging{cursor:grabbing;scroll-snap-type:none!important;scroll-behavior:auto!important}
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{
  flex:0 0 var(--ai-card-width)!important;
  width:var(--ai-card-width)!important;
  max-width:var(--ai-card-width)!important;
  height:486px!important;
  min-height:486px!important;
}
#avenueAiDialog .avenueAiRecMedia{height:172px!important;min-height:172px!important}
#avenueAiDialog .avenueAiRecContent{height:314px!important;min-height:0!important;padding:15px 17px 15px!important}
#avenueAiDialog .avenueAiRecTop h5{min-height:46px!important;font-size:22px!important;-webkit-line-clamp:2!important}
#avenueAiDialog .avenueAiWhy p{-webkit-line-clamp:3!important;min-height:48px}
#avenueAiDialog .avenueAiPlacement{margin-top:auto;padding-top:9px;border-top:1px solid var(--avelune-line);color:var(--avelune-gold-deep);font-size:10px;font-weight:850;letter-spacing:.14em}
#avenueAiDialog .avenueAiActions{margin-top:7px!important;padding-top:0!important;grid-template-columns:minmax(0,1.35fr) minmax(0,.62fr) minmax(0,.72fr)!important}
#avenueAiDialog .avenueAiScheduleError{margin:0!important;padding:10px 12px!important;font-size:12px;color:#7e4945}
#avenueAiDialog .avenueAiCarouselArrow:not([hidden]){opacity:1}
@media(max-width:780px){
  #avenueAiDialog .avenueAiRecommendations{--ai-card-width:82%;cursor:auto;user-select:auto}
  #avenueAiDialog .avenueAiRecommendations .avenueAiRec{width:var(--ai-card-width)!important;max-width:none!important}
}

/* Batch 6B — readable recommendation-card regions without changing the rail. */
#avenueAiDialog{max-height:calc(100dvh - 24px)!important}
#avenueAiDialog .avenueAiCard{max-height:calc(100dvh - 24px)!important;overflow-y:auto!important}
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:596px!important;min-height:596px!important}
#avenueAiDialog .avenueAiRecMedia{height:190px!important;min-height:190px!important}
#avenueAiDialog .avenueAiRecContent{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:auto auto auto minmax(72px,1fr) auto auto auto!important;
  gap:7px!important;
  height:406px!important;
  min-height:406px!important;
  padding:16px 18px 16px!important;
}
#avenueAiDialog .avenueAiRecTop h5{min-height:48px!important;margin:3px 0 0!important;font-size:23px!important;line-height:1.06!important;-webkit-line-clamp:2!important}
#avenueAiDialog .avenueAiType{font-size:11px!important;line-height:1.2!important}
#avenueAiDialog .avenueAiMetrics{display:flex!important;flex-wrap:wrap!important;gap:5px 12px!important;max-height:none!important;overflow:visible!important;margin:0!important;font-size:12px!important;line-height:1.3!important}
#avenueAiDialog .avenueAiRecNotices{max-height:none!important;overflow:visible!important;margin:0!important;gap:5px!important}
#avenueAiDialog .avenueAiRecNotices>span{font-size:11px!important;line-height:1.2!important;padding:5px 7px!important}
#avenueAiDialog .avenueAiWhy{min-height:0!important;margin:0!important;padding:10px 0 0!important;align-self:stretch}
#avenueAiDialog .avenueAiWhy>b{font-size:12px!important;line-height:1.2!important}
#avenueAiDialog .avenueAiWhy p{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;min-height:57px!important;margin:6px 0 0!important;font-size:14px!important;line-height:1.38!important}
#avenueAiDialog .avenueAiTiming{color:var(--avelune-gold-deep);font-size:12px;font-weight:750;line-height:1.3}
#avenueAiDialog .avenueAiPlacement{margin:0!important;padding:8px 0 0!important;font-size:11px!important;line-height:1.2!important}
#avenueAiDialog .avenueAiActions{margin:0!important;padding:0!important;align-self:end}
#avenueAiDialog .avenueAiActions>button{min-height:44px!important;font-size:12px!important}
#avenueAiDialog .googlePhotoAttribution{top:166px!important}

@media(max-width:780px){
  #avenueAiDialog{max-height:calc(100dvh - 16px)!important}
  #avenueAiDialog .avenueAiCard{max-height:calc(100dvh - 16px)!important}
}

/* Recommendation v2 correction — primary intent is visually dominant while
   card feedback remains local to the finite carousel. */
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:640px!important;min-height:640px!important;transition:opacity .18s ease,transform .18s ease}
#avenueAiDialog .avenueAiRecContent{height:450px!important;min-height:450px!important}
#avenueAiDialog .avenueAiActions{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
#avenueAiDialog .avenueAiActions>.aiSelectRecommendation{width:100%!important;min-height:48px!important;background:var(--avelune-blue,#081A2F)!important;color:#fffaf0!important;border-color:var(--avelune-gold,#CBA255)!important;font-weight:850!important;letter-spacing:.035em!important}
#avenueAiDialog .avenueAiSecondaryActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0}
#avenueAiDialog .avenueAiSecondaryActions>button{min-width:0!important;min-height:38px!important;padding:6px 4px!important;background:transparent!important;border-color:rgba(8,26,47,.18)!important;color:var(--avelune-navy,#081A2F)!important;font-size:9.5px!important;white-space:nowrap!important}
#avenueAiDialog .avenueAiSecondaryActions>button.is-saved{color:#527060!important;border-color:rgba(82,112,96,.28)!important}
#avenueAiDialog .avenueAiRec.is-removing{opacity:0!important;transform:scale(.975)!important;pointer-events:none!important}
#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback,#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback img{background:#081A2F!important}
#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback img{object-fit:contain!important;object-position:center!important}
.savedPlaceTripNotice{padding:10px 12px;border-left:3px solid var(--avelune-gold,#CBA255);border-radius:8px;background:rgba(203,162,85,.1);color:var(--avelune-muted);font-size:12px;line-height:1.4}
#placeDialog .placeDetailFit{position:relative}
#placeDialog .avenueAiDetail{overflow:hidden;background:#fffaf1}
#placeDialog .avenueAiDetailGoogle{position:absolute;z-index:3;top:14px;right:14px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.94);color:#3c4043;font:700 11px/1.1 Arial,sans-serif;box-shadow:0 2px 10px rgba(8,26,47,.15);white-space:nowrap}
#placeDialog .avenueAiDetailMedia{position:relative;display:grid;place-items:center;min-height:280px;background:#081A2F;overflow:hidden}
#placeDialog .avenueAiDetailMedia img{display:block;width:100%;height:100%;min-height:280px;max-height:52dvh;object-fit:cover}
#placeDialog .avenueAiDetailMedia.aiPhotoFallback img{object-fit:contain;object-position:center;background:#081A2F}
#placeDialog .avenueAiDetailMedia .googlePhotoAttribution{position:absolute;left:12px;bottom:10px;max-width:calc(100% - 24px);padding:5px 7px;border-radius:7px;background:rgba(8,26,47,.78);color:#fff;font-size:10px}
#placeDialog .avenueAiDetailMedia .googlePhotoAttribution a{color:#fff}
#placeDialog .avenueAiDetailFallback{align-content:center;color:#CBA255}
#placeDialog .avenueAiDetailFallback>span{font-family:Georgia,serif;font-size:68px;font-style:italic}
#placeDialog .avenueAiDetailFallback>small{letter-spacing:.24em;color:rgba(255,255,255,.64)}
#placeDialog .avenueAiDetailPrimary{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(16,43,57,.10)}
#placeDialog .avenueAiDetailPrimary .confirm{min-width:0}
#placeDialog .avenueAiDetailUtilities{margin-top:8px}
#avenueAiDialog .avenueAiSecondaryActions [data-ai-more-like]{white-space:nowrap;min-width:110px}
@media(max-width:700px){#placeDialog .avenueAiDetailMedia,#placeDialog .avenueAiDetailMedia img{min-height:210px;max-height:38dvh}#placeDialog .avenueAiDetailGoogle{top:10px;right:10px}#placeDialog .avenueAiDetailPrimary{grid-template-columns:1fr}}

/* Owner correction: concierge reasons are variable-length content, not a fixed card slot. */
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:auto!important;min-height:0!important}
#avenueAiDialog .avenueAiRecContent{height:auto!important;min-height:0!important;grid-template-rows:auto auto auto auto auto auto auto!important}
#avenueAiDialog .avenueAiWhy p{display:block!important;overflow:visible!important;min-height:0!important;-webkit-line-clamp:unset!important}
#avenueAiDialog .avenueAiActions{margin-top:8px!important}

/* Recommendation Details actions are intentionally compact; Saved Details keeps its established layout. */
#placeDialog .avenueAiDetailPrimary{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:7px!important}
#placeDialog .avenueAiDetailPrimary>*{flex:0 0 auto!important;width:auto!important;min-width:0!important;padding:8px 11px!important}
#placeDialog .avenueAiDetailPrimary .confirm{padding-inline:14px!important}
#placeDialog .avenueAiDetailUtilities{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:6px!important}
#placeDialog .avenueAiDetailUtilities .linkBtn{flex:0 0 auto!important;width:auto!important;padding:6px 9px!important;font-size:11px!important}

/* Owner polish: a stable action plane with compliant Google summary attribution. */
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:640px!important;min-height:640px!important;display:flex!important;flex-direction:column!important}
#avenueAiDialog .avenueAiRecContent{height:450px!important;min-height:450px!important;display:flex!important;flex-direction:column!important;box-sizing:border-box!important}
#avenueAiDialog .avenueAiRecMain{display:flex;flex:1 1 auto;flex-direction:column;gap:7px;min-height:0}
#avenueAiDialog .avenueAiWhy,#avenueAiDialog .avenueAiWhySlot{min-height:104px!important;margin:0!important;padding-top:10px!important}
#avenueAiDialog .avenueAiWhy p{display:block!important;overflow:visible!important;min-height:0!important;-webkit-line-clamp:unset!important}
#avenueAiDialog .avenueAiActions{margin-top:auto!important;padding-top:10px!important;align-self:stretch!important}
#avenueAiDialog .googleAiSummaryMeta{display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:7px 17px 10px;border-top:1px solid var(--avelune-line);color:var(--avelune-muted);font:700 9px/1.25 var(--avelune-sans);letter-spacing:.01em}
#avenueAiDialog .googleAiSummaryMeta a{color:inherit;text-decoration:underline;text-underline-offset:2px}
#avenueAiDialog .googleAiSummaryDisclosure{display:block;margin-top:5px;font-size:10px!important;line-height:1.25;color:var(--avelune-gold-deep)!important}
@media(max-width:780px){
  #avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:auto!important;min-height:0!important}
  #avenueAiDialog .avenueAiRecContent{height:auto!important;min-height:0!important}
  #avenueAiDialog .avenueAiWhy,#avenueAiDialog .avenueAiWhySlot{min-height:0!important}
  #avenueAiDialog .avenueAiActions{margin-top:10px!important}
  #avenueAiDialog .googleAiSummaryMeta{padding:8px 16px 12px;font-size:9px;overflow-wrap:anywhere}
}

/* Google Maps attribution remains within each Places-content container. */
#avenueAiDialog .googleAiSummaryMeta{justify-content:flex-end;align-items:center;color:#5e5e5e;font-family:Roboto,Arial,sans-serif!important;font-style:normal!important;font-weight:400!important;font-size:12px!important;line-height:1.3!important;letter-spacing:normal!important}
#avenueAiDialog .googleMapsAttribution{white-space:nowrap}
#avenueAiDialog .avenueAiSecondaryActions [data-ai-more-like].is-loading{cursor:wait}
#avenueAiDialog .avenueAiSecondaryActions [data-ai-more-like].is-noted,#avenueAiDialog .avenueAiSecondaryActions [data-ai-more-like]:disabled{color:#527060!important;border-color:rgba(82,112,96,.28)!important;cursor:default!important;opacity:.72!important}
#placeDialog .avenueAiDetailGoogle{display:none!important}
#placeDialog .avenueAiDetail .googleAiSummaryMeta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 8px;margin-top:14px;padding-top:10px;border-top:1px solid rgba(16,43,57,.10);color:#5e5e5e;font:400 12px/1.3 Roboto,Arial,sans-serif;letter-spacing:normal}
#placeDialog .avenueAiDetail .googleMapsAttribution{white-space:nowrap}
@media(max-width:780px){#avenueAiDialog .googleAiSummaryMeta,#placeDialog .avenueAiDetail .googleAiSummaryMeta{justify-content:flex-start;font-size:12px!important}}

/* The card's fixed media/content plane previously consumed its full height,
   clipping this footer behind overflow:hidden. Reserve a real footer plane. */
#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:640px!important;min-height:640px!important}
#avenueAiDialog .avenueAiContinuation{padding:18px 2px 8px;max-width:480px}
#avenueAiDialog .avenueAiContinuation h4{margin:6px 0;font-family:var(--avelune-serif,Georgia,serif);font-size:clamp(24px,4vw,32px);line-height:1.08;color:var(--avelune-ink,#17343c)}
#avenueAiDialog .avenueAiContinuation p{margin:0;color:var(--avelune-muted,#61717a);line-height:1.5}
#avenueAiDialog .avenueAiContinuationActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
#avenueAiDialog .avenueAiContinuationActions button{min-height:42px}
@media(max-width:780px){#avenueAiDialog .avenueAiContinuation{padding:12px 0 4px}#avenueAiDialog .avenueAiContinuationActions{display:grid;grid-template-columns:1fr}#avenueAiDialog .avenueAiContinuationActions button{width:100%}}
#avenueAiDialog .avenueAiRecMedia{height:180px!important;min-height:180px!important}
#avenueAiDialog .avenueAiRecContent{height:420px!important;min-height:420px!important}
#avenueAiDialog .avenueAiRec>.googleAiSummaryMeta{flex:0 0 40px;min-height:40px;box-sizing:border-box;justify-content:flex-end;padding:8px 17px 10px!important}
@media(max-width:780px){#avenueAiDialog .avenueAiRecommendations .avenueAiRec{height:auto!important;min-height:0!important}#avenueAiDialog .avenueAiRec>.googleAiSummaryMeta{justify-content:flex-start;min-height:38px}}

/* PR #46 retest: fixed desktop cards reserve the action/footer planes without
   creating a nested scrollport. Clip only bounded presentation copy; the rail
   remains the sole scroll owner. */
@media(min-width:781px){
  #avenueAiDialog .avenueAiRecMain{min-height:0!important;overflow:clip!important}
  #avenueAiDialog .avenueAiRecNotices{max-height:56px!important;overflow:clip!important;margin:5px 0 0!important;gap:6px!important}
  #avenueAiDialog .avenueAiWhy,#avenueAiDialog .avenueAiWhySlot{min-height:0!important;max-height:104px!important;overflow:clip!important;padding-top:11px!important}
  #avenueAiDialog .avenueAiWhy p{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:clip!important;margin:6px 0 0!important;line-height:1.34!important}
  #avenueAiDialog .googleAiSummaryDisclosure{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:1!important;overflow:clip!important;margin-top:7px!important}
  #avenueAiDialog .avenueAiActions{gap:8px!important}
  #avenueAiDialog .avenueAiSecondaryActions{gap:6px!important}
}
#avenueAiDialog .avenueAiActions>.aiSelectRecommendation[aria-pressed="true"],
#avenueAiDialog .avenueAiActions>.aiSelectRecommendation.is-selected{
  background:#173c46!important;
  border-color:var(--avelune-gold,#CBA255)!important;
  color:#fffaf0!important;
  box-shadow:inset 0 0 0 1px rgba(203,162,85,.38)!important;
  cursor:pointer!important;
}

/* Final acceptance: on a normal desktop viewport the fixed concierge rail
   fits as one stable plane. Short desktop viewports retain scroll access. */
@media (min-width:781px) and (min-height:880px){
  #avenueAiDialog.avenueAiDialog{max-height:calc(100dvh - 24px)!important;overflow:hidden!important}
  #avenueAiDialog .avenueAiCard.avenueAiCard--results{display:flex!important;flex-direction:column!important;max-height:calc(100dvh - 24px)!important;overflow-y:hidden!important;padding:20px 28px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiIntro{margin:3px 0 0!important}
  #avenueAiDialog .avenueAiCard--results #avenueAiBody{flex:0 0 auto;min-height:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiResults{margin-top:12px!important;gap:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDay{gap:8px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayHead{padding-bottom:8px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayHead h4{margin-top:3px!important;line-height:1.28!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiUnifiedGap{margin:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecommendations{overflow-y:hidden!important}
}
@media (min-width:781px) and (max-height:879px){
  #avenueAiDialog.avenueAiDialog{overflow:auto!important}
  #avenueAiDialog .avenueAiCard.avenueAiCard--results{overflow-y:auto!important}
}

/* Recommendation-card visual polish v2: retain the established rail and
   fixed card plane while concentrating identity, intent, and actions. */
#avenueAiDialog .avenueAiRecTop h5{
  min-height:0!important;
  margin:3px 0 0!important;
  line-height:1.04!important;
}
#avenueAiDialog .avenueAiMetrics{
  margin-top:5px!important;
  gap:4px 9px!important;
}
#avenueAiDialog .avenueAiWhy{
  border-top:1px solid var(--avelune-line)!important;
  padding-top:9px!important;
}
#avenueAiDialog .avenueAiWhy p{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  overflow:clip!important;
  margin:5px 0 0!important;
}
#avenueAiDialog .avenueAiSecondaryActions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
#avenueAiDialog .avenueAiSecondaryActions>button{
  min-width:0!important;
}
#avenueAiDialog .avenueAiRecMedia.aiPhotoLandscape img{
  object-fit:cover!important;
  object-position:center!important;
}
#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback,
#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback img{
  background:var(--avelune-blue,#081A2F)!important;
}
#avenueAiDialog .avenueAiRecMedia.aiPhotoFallback img{
  object-fit:contain!important;
  object-position:center!important;
}
@media(min-width:1000px){
  #avenueAiDialog .avenueAiSecondaryActions{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  #avenueAiDialog .avenueAiSecondaryActions>button{font-size:9px!important}
}
@media(max-width:780px){
  #avenueAiDialog .avenueAiWhy p{-webkit-line-clamp:3!important}
}
#tripWorkspace.historicalTripWorkspace .tripBarActions > *{display:none!important}
#tripWorkspace.historicalTripWorkspace .tripLeftColumn{display:none!important}
#tripWorkspace.historicalTripWorkspace .tripMainLayout{display:block!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:clamp(18px,3vw,36px)!important;overflow:visible!important}
#tripWorkspace.historicalTripWorkspace .tripMainLayout > .panel{max-width:920px!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0 auto!important;overflow:visible!important}
#tripWorkspace.historicalTripWorkspace .panel #content{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
#tripWorkspace.historicalTripWorkspace .historicalTripView{padding:clamp(24px,4vw,56px)}
#tripWorkspace.historicalTripWorkspace .historicalTripView h1{margin:.35rem 0 .25rem}
#tripWorkspace.historicalTripWorkspace .historicalItinerary{margin-top:32px}
#tripWorkspace.historicalTripWorkspace .historicalDay{margin-top:24px}
#tripWorkspace.historicalTripWorkspace .historicalDay .dayHead{position:static}
#tripWorkspace.historicalTripWorkspace .historicalItineraryCard{display:grid!important;grid-template-columns:36px minmax(82px,110px) minmax(0,1fr)!important;gap:12px!important;align-items:start!important;width:100%!important;min-width:0!important;cursor:default;min-height:92px}
#tripWorkspace.historicalTripWorkspace .historicalItineraryCard .itemMain{grid-column:3;min-width:0!important}
#tripWorkspace.historicalTripWorkspace .historicalItineraryCard .time{grid-column:2;min-width:0;white-space:normal}
#tripWorkspace.historicalTripWorkspace .historicalDetailsButton{margin-top:12px}
@media(max-width:760px){
  #tripWorkspace.historicalTripWorkspace{height:auto!important;min-height:100dvh!important;overflow:visible!important}
  #tripWorkspace.historicalTripWorkspace .tripMainLayout{padding:12px!important}
  #tripWorkspace.historicalTripWorkspace .historicalItineraryCard{grid-template-columns:30px minmax(70px,88px) minmax(0,1fr)!important;gap:9px!important}
}

/* Change + Reschedule V2 */
.itineraryCard.expanded .p34Actions,.p34Card.expanded .p34Actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:hidden!important}
.bookingCommitmentStatus{appearance:none;border:0;background:transparent;color:var(--teal);font:900 10px/1.2 inherit;letter-spacing:.09em;padding:2px 0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.bookingCommitmentWarning{border:1px solid rgba(154,118,61,.24);background:linear-gradient(145deg,#fffaf0,#fffdf9);border-radius:16px;padding:16px;margin-top:10px}.bookingCommitmentWarning h3{margin:7px 0}.bookingCommitmentWarning p{line-height:1.5;margin:8px 0}
.changeRescheduleMenu{display:grid;grid-template-columns:1fr 1fr}.changeRescheduleMenu button{width:100%;min-height:44px}.changeCommitmentActions,.changeRescheduleActions,.changeBookingLinks{align-items:stretch}.changeCommitmentActions .linkBtn,.changeRescheduleActions .linkBtn,.changeBookingLinks .linkBtn{display:inline-flex;align-items:center;justify-content:center;text-align:center}
@media(max-width:560px){.changeRescheduleMenu{grid-template-columns:1fr}.changeCommitmentActions>*,.changeRescheduleActions>*,.changeBookingLinks>*{flex:1 1 100%}.bookingCommitmentWarning{padding:13px}.bookingCommitmentStatus{min-height:28px}}

/* PR #90 owner acceptance: compact mobile travel and planning controls. */
.avenueAiMobilePlanBar,.heroTravelLegAction{display:none}
.directionChoicesCompact .directionChoice{appearance:none;width:100%;cursor:pointer;text-align:left;font:inherit}
.rememberDirectionsChoice{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--avelune-muted,#61717a);font-size:13px;cursor:pointer}
.rememberDirectionsChoice input{width:17px;height:17px;accent-color:var(--avelune-teal,#0b777d)}
@media(max-width:760px){
  #heroNext .avNextDirections{display:none!important}
  #heroNext button.heroTravelLeg{appearance:none;width:100%;border:1px solid rgba(203,162,85,.3);cursor:pointer;text-align:left;font:inherit}
  #heroNext .heroTravelLegAction{display:block;margin-left:auto;color:var(--avelune-gold-deep,#9a6d28);font-size:10px;font-weight:850;letter-spacing:.04em;white-space:nowrap}
  .directionChoicesCompact{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important}
  .directionChoicesCompact .directionChoice{display:flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;padding:10px 8px!important;text-align:center!important}
  .directionChoicesCompact .directionChoice b{font-size:13px!important}

  .itineraryCard.expanded .p34Actions,.p34Card.expanded .p34Actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .itineraryCard.expanded .p34Actions>button,.p34Card.expanded .p34Actions>button{width:100%!important;min-width:0!important;min-height:42px!important}

  #avenueAiDialog .avenueAiCard.avenueAiCard--results{display:flex!important;flex-direction:column!important;height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important;overflow:hidden!important;padding:15px 10px 0!important}
  #avenueAiDialog .avenueAiCard--results>h3{font-size:25px!important;margin:4px 0!important;line-height:1!important}
  #avenueAiDialog .avenueAiCard--results>.avenueAiIntro{margin:2px 0 4px!important;font-size:12px!important}
  #avenueAiDialog .avenueAiCard--results #avenueAiBody{flex:1 1 auto;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;padding-bottom:max(4px,env(safe-area-inset-bottom))}
  #avenueAiDialog .avenueAiCard--results .avenueAiResults{margin-top:6px!important;gap:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDay{gap:7px!important;min-height:100%}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayHead{padding:0 4px 6px!important;margin:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayHead h4{font-size:14px!important;line-height:1.25!important;margin:2px 0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayActions{margin:4px 0 0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiDayActions .confirm{display:none!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiSelectionStatus{font-size:10px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiUnifiedGap{margin:0!important;border-radius:14px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecommendations{--ai-card-width:84%;gap:10px!important;padding:6px 8vw 10px!important;scroll-padding-inline:8vw!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecMedia{height:108px!important;min-height:108px!important}
  #avenueAiDialog .avenueAiCard--results .googlePhotoAttribution{top:86px!important;font-size:7px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecContent{height:auto!important;min-height:0!important;padding:9px 11px 10px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecTop h5{font-size:18px!important;line-height:1.05!important;-webkit-line-clamp:2!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiMetrics{font-size:10px!important;line-height:1.2!important;gap:3px 7px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecNotices{max-height:42px!important;overflow:hidden!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiRecNotices>span{font-size:9px!important;padding:3px 5px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiWhy{padding-top:7px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiWhy p{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;font-size:11px!important;line-height:1.28!important;margin-top:3px!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiActions{gap:5px!important;margin-top:6px!important;padding-top:0!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiActions>.aiSelectRecommendation{min-height:46px!important;height:auto!important;padding:8px 7px!important;font-size:clamp(9px,2.7vw,11px)!important;line-height:1.18!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #avenueAiDialog .avenueAiCard--results .avenueAiSecondaryActions>button{min-height:34px!important;font-size:8.5px!important}
  #avenueAiDialog .avenueAiCard--results .googleAiSummaryMeta{min-height:0!important;padding:5px 11px 7px!important;font-size:9px!important}
  #avenueAiDialog .avenueAiMobilePlanBar{position:sticky;z-index:8;display:flex;justify-content:center;bottom:0;margin:0 -10px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(255,250,241,.86),#fffaf1 24%);border-top:1px solid rgba(203,162,85,.24);box-shadow:0 -8px 18px rgba(3,24,39,.06)}
  #avenueAiDialog .avenueAiMobilePlanBar .confirm{width:min(320px,100%);min-height:46px}
}
