/* =========================================================
   ITBMO · TRAVEL GLASS CLEAN · v73
   CLEAN CONSOLIDATED STYLESHEET
   ---------------------------------------------------------
   - No legacy visual layers.
   - Keeps current HTML / JS contracts intact.
   - Two-column desktop Planner + Itinerary.
   - Responsive date/time controls at 100% zoom.
   - Fixed Info Chat CTA on desktop; modal opens below it.
   - Loading overlay always visible in current viewport.
   - Monetization surface emphasized without looking like an ad.
========================================================= */

:root{
  --ink:#071f3d;
  --ink-2:#153653;
  --muted:#6d7f91;

  --blue:#0877f9;
  --blue-dark:#0564d8;
  --cyan:#35bfd1;
  --teal:#0a9799;
  --teal-dark:#08757c;
  --indigo:#6d78ee;
  --violet:#8a70e8;
  --mint:#37b98e;
  --rose:#d85891;
  --amber:#d79a16;

  --surface:#ffffff;
  --surface-soft:#f7fbfd;
  --surface-blue:#f0f7ff;
  --surface-teal:#effafa;
  --surface-indigo:#f3f4ff;

  --line:rgba(35,75,112,.13);
  --line-strong:rgba(34,107,157,.24);

  --radius-sm:.75rem;
  --radius-md:1rem;
  --radius-lg:1.4rem;
  --radius-xl:1.75rem;

  --shadow:0 2px 5px rgba(5,31,61,.025),0 16px 42px rgba(18,55,90,.07);
  --shadow-up:0 4px 10px rgba(5,31,61,.035),0 24px 56px rgba(18,55,90,.105);

  --ease:cubic-bezier(.22,1,.36,1);
}

/* =========================================================
   ITBMO · ASTRA GUIDED LUXURY UX · v74
   Surgical overrides for guided setup, calendar, time selectors,
   confirmations, downloads and resizable Info Chat.
========================================================= */

.traveler-profile-actions{
  position:sticky;
  bottom:.35rem;
  z-index:4;
  display:flex;
  justify-content:flex-end;
  gap:.65rem;
  margin-top:.9rem;
  padding:.65rem;
  border:1px solid rgba(12,166,192,.18);
  border-radius:1rem;
  background:linear-gradient(135deg,rgba(248,253,255,.96),rgba(232,250,249,.96));
  box-shadow:0 12px 28px rgba(9,61,89,.10);
  backdrop-filter:blur(12px);
}
.traveler-control{
  min-width:118px;
  min-height:44px;
  border-radius:999px!important;
  font-weight:850!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
.traveler-control--add{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(135deg,#087df1,#08aeb4)!important;
  box-shadow:0 10px 24px rgba(8,126,211,.26)!important;
}
.traveler-control--remove{
  color:#075b72!important;
  border-color:rgba(8,126,177,.24)!important;
  background:rgba(255,255,255,.96)!important;
}
.traveler-control:not(:disabled):hover{transform:translateY(-2px);filter:saturate(1.08)}
.traveler-control:disabled{opacity:.42!important;box-shadow:none!important}

.city-row .date-wrapper{gap:.28rem!important}
.city-row input.baseDatePicker{
  width:100%;
  min-height:48px;
  color:var(--ink);
  font-weight:750;
  cursor:pointer;
  color-scheme:light;
}
.city-row input.baseDatePicker::-webkit-calendar-picker-indicator{
  width:20px;height:20px;cursor:pointer;opacity:.72;
}
.date-format{color:#71869b!important;font-size:.68rem!important}
.date-summary{
  display:none!important;
  min-height:1.05rem;
  color:#087b92;
  font-size:.7rem;
  font-weight:800;
  line-height:1.35;
}

.hours-block{
  position:relative;
  padding-top:.8rem!important;
}
.same-schedule-toggle{
  display:flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  max-width:100%;
  margin:.2rem 0 .8rem;
  padding:.5rem .7rem;
  border:1px solid rgba(7,148,171,.18);
  border-radius:999px;
  color:#0b6076;
  background:rgba(236,251,251,.88);
  font-size:.72rem!important;
  font-weight:800!important;
  cursor:pointer;
}
.same-schedule-toggle>input{position:absolute;opacity:0;pointer-events:none}
.same-schedule-ui{
  position:relative;
  width:34px;height:20px;flex:0 0 34px;
  border-radius:999px;
  background:#b8c9d2;
  transition:.2s ease;
}
.same-schedule-ui::after{
  content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;
  box-shadow:0 2px 6px rgba(0,24,48,.22);transition:.2s ease;
}
.same-schedule-toggle>input:checked+.same-schedule-ui{background:linear-gradient(135deg,#087df1,#08aeb4)}
.same-schedule-toggle>input:checked+.same-schedule-ui::after{transform:translateX(14px)}
.same-schedule-toggle>input:focus-visible+.same-schedule-ui{outline:3px solid rgba(16,132,255,.2);outline-offset:2px}
.time-selector{
  display:grid;
  grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);
  align-items:center;
  gap:.32rem;
  min-width:0;
}
.time-selector>span{color:#6d8294;font-weight:900;text-align:center}
.time-selector select{
  width:100%;
  min-width:0;
  min-height:46px;
  padding:.45rem .5rem!important;
  border:1px solid rgba(33,76,111,.16)!important;
  border-radius:.75rem!important;
  color:var(--ink)!important;
  background:#fff!important;
  font-weight:750!important;
  text-align:center;
}
.hours-block.is-same-schedule .hours-day:not(:first-of-type){opacity:.72}
.hours-block.is-same-schedule .hours-day:not(:first-of-type) select{background:#edf5f7!important;cursor:not-allowed}

.itbmo-decision-overlay{
  position:fixed;inset:0;z-index:61000;display:grid;place-items:center;padding:20px;
  background:rgba(2,22,43,.58);backdrop-filter:blur(12px);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;
}
.itbmo-decision-overlay.active{opacity:1;visibility:visible}
.itbmo-decision-card{
  width:min(94vw,560px);padding:1.6rem;border:1px solid rgba(255,255,255,.72);border-radius:28px;
  color:var(--ink);background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(238,251,251,.98));
  box-shadow:0 34px 100px rgba(1,23,45,.34);transform:translateY(14px) scale(.985);transition:transform .22s ease;
}
.itbmo-decision-overlay.active .itbmo-decision-card{transform:none}
.itbmo-decision-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;color:#fff;background:linear-gradient(135deg,#1388f4,#05aeb5);box-shadow:0 12px 26px rgba(10,145,194,.28);font-size:1.3rem}
.itbmo-decision-eyebrow{margin-top:.9rem;color:#08778d;font-size:.66rem;font-weight:900;letter-spacing:.13em}
.itbmo-decision-card h3{margin:.35rem 0 .55rem;font-size:1.42rem;letter-spacing:-.035em}
.itbmo-decision-card p{margin:0;color:#536d82;font-size:.88rem;line-height:1.62}
.itbmo-decision-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:.7rem;margin-top:1.25rem}
.itbmo-decision-actions .btn{min-height:48px;border-radius:14px;font-weight:850}
.itbmo-decision-pay{color:#082b59!important;border-color:#ffbf29!important;background:linear-gradient(135deg,#ffd25a,#ffb91f)!important;box-shadow:0 12px 28px rgba(244,169,0,.23)!important}

.astra-guide-replay{
  position:fixed;left:16px;bottom:16px;z-index:45000;display:none!important;align-items:center;gap:.42rem;
  min-height:38px;padding:.46rem .72rem;border:1px solid rgba(255,255,255,.72);border-radius:999px;
  color:#075f77;background:rgba(250,254,255,.93);box-shadow:0 10px 30px rgba(5,43,70,.16);
  backdrop-filter:blur(14px);font:800 .7rem/1 Inter,sans-serif;cursor:pointer;
}
.astra-guide-replay span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#158af1,#05adb4)}
.astra-coach{
  position:fixed;z-index:60000;display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;
  width:min(340px,calc(100vw - 24px));padding:.9rem;border:1px solid rgba(130,220,229,.5);border-radius:20px;
  color:var(--ink);background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(235,251,251,.98));
  box-shadow:0 24px 65px rgba(2,40,68,.25);opacity:0;transform:translateY(8px) scale(.985);pointer-events:auto;
  transition:opacity .18s ease,transform .18s ease;
}
.astra-coach.is-visible{opacity:1;transform:none}
.astra-coach__avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;color:#fff;background:linear-gradient(135deg,#1288f2,#04adb4);box-shadow:0 9px 20px rgba(10,145,194,.24)}
.astra-coach__content small{display:block;margin-bottom:.18rem;color:#078098;font-size:.56rem;font-weight:900;letter-spacing:.12em}
.astra-coach__content strong{display:block;font-size:.83rem;line-height:1.25}
.astra-coach__content p{margin:.3rem 0 0;color:#587083;font-size:.7rem;line-height:1.45}
.astra-coach__close{align-self:start;width:26px;height:26px;padding:0;border:0;border-radius:50%;color:#60798c;background:rgba(221,238,242,.72);font-size:1rem;cursor:pointer}

.preferences-help-button{
  box-shadow:0 13px 30px rgba(7,129,170,.13)!important;
  transform:translateZ(0);
}
.preferences-help-button--guide{border-color:rgba(10,160,182,.34)!important;background:linear-gradient(135deg,#f4feff,#ddf8f7)!important}
.preferences-help-button--unsure{border-color:rgba(81,101,225,.26)!important;background:linear-gradient(135deg,#f7f9ff,#eef1ff)!important}
.preferences-help-button:hover{transform:translateY(-2px)!important;box-shadow:0 18px 38px rgba(7,110,156,.2)!important}

.info-chat-modal:not(.is-minimized){
  resize:both;
  overflow:hidden!important;
  min-width:360px;
  min-height:430px;
  max-width:calc(100vw - 20px)!important;
  max-height:calc(100vh - 20px)!important;
}
.info-chat-modal:not(.is-minimized) .info-chat-panel{width:100%;height:100%;min-height:0!important}
.info-chat-modal:not(.is-minimized) .chat-messages{min-height:120px;overflow-y:auto!important}
.info-chat-modal:not(.is-minimized)::after{
  content:"";position:absolute;right:5px;bottom:5px;width:15px;height:15px;pointer-events:none;
  background:linear-gradient(135deg,transparent 0 48%,#0794a9 49% 57%,transparent 58% 68%,#0794a9 69% 77%,transparent 78%);
  opacity:.7;
}

.itbmo-download-actions{display:grid;gap:.62rem;width:100%;margin:.9rem 0}
.itbmo-download-actions .btn{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:.65rem;width:100%;min-height:48px;text-align:left;border-radius:14px}
.itbmo-download-actions .btn>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#08748c;background:rgba(255,255,255,.82);font-size:.65rem;font-weight:900}
.itbmo-download-actions .btn.is-complete{background:linear-gradient(135deg,#0b9f87,#09aeb4)!important}
.itbmo-download-actions .btn.is-complete::after{content:"✓";justify-self:end;margin-right:.25rem;font-weight:900}
#start-planning.is-busy{position:relative;cursor:progress;opacity:.82}

@media(max-width:760px){
  .traveler-profile-actions{position:sticky;justify-content:stretch}
  .traveler-control{flex:1;min-width:0}
  .hours-header{display:none!important}
  .hours-day{grid-template-columns:58px 1fr!important;gap:.5rem!important}
  .hours-day>.time-selector{grid-column:2}
  .same-schedule-toggle{width:100%;border-radius:14px}
  .itbmo-decision-actions{grid-template-columns:1fr}
  .itbmo-decision-actions .itbmo-decision-confirm{grid-row:1}
  .astra-guide-replay{left:10px;bottom:10px}
  .info-chat-modal:not(.is-minimized){resize:none;min-width:0;min-height:0;max-width:none!important;max-height:none!important}
}

@media(prefers-reduced-motion:reduce){
  .astra-coach,.itbmo-decision-card,.traveler-control{transition:none!important}
}

/* =========================================================
   BASE
========================================================= */
*{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  background:#f4fafc;
}

body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:
    radial-gradient(760px 430px at -5% 10%,rgba(53,191,209,.15),transparent 66%),
    radial-gradient(900px 500px at 104% 4%,rgba(109,120,238,.12),transparent 66%),
    radial-gradient(720px 480px at 74% 92%,rgba(32,170,167,.07),transparent 68%),
    linear-gradient(180deg,#f5fbfd 0%,#fbfcff 48%,#f3f9fb 100%);
}

input,
select,
textarea,
button{font:inherit}

button,
a{-webkit-tap-highlight-color:transparent}

::selection{
  background:rgba(8,119,249,.18);
  color:var(--ink);
}

/* =========================================================
   TOPBAR
========================================================= */
.topbar{
  position:sticky;
  top:0;
  z-index:5000;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.82rem 1.2rem;
  color:#fff;
  background:
    radial-gradient(560px 160px at 100% 0%,rgba(58,201,202,.18),transparent 70%),
    linear-gradient(108deg,#0b5fa8 0%,#087fa5 48%,#0aa7a5 100%);
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 30px rgba(9,92,132,.14);
}

.topbar .brand{
  color:#fff;
  font-weight:800;
}

.topbar .brand.brand-logo{
  display:flex;
  flex-direction:column;
  gap:.08rem;
  line-height:1.02;
}

.topbar .brand.brand-logo .brand-line-1{
  color:#fff;
  font-size:1.62rem;
  font-weight:900;
  letter-spacing:-.05em;
}

.topbar .brand.brand-logo .brand-line-2{
  color:rgba(240,250,252,.84);
  font-size:.94rem;
  font-weight:750;
}

.topbar .lang a{
  margin-left:.6rem;
  color:rgba(255,255,255,.78);
  font-weight:700;
  text-decoration:none;
}

.topbar .lang a.active{color:#fff}

/* =========================================================
   MAIN WORKSPACE
========================================================= */
#planner-grid{
  display:grid;
  width:min(calc(100% - 28px),1900px);
  max-width:1900px;
  grid-template-columns:minmax(490px,42.5%) minmax(0,57.5%);
  gap:1.1rem;
  align-items:start;
  margin:0 auto;
  padding:1.25rem 0 2.25rem;
}

.sidebar,
.main{
  width:100%;
  min-width:0;
  max-width:none;
}

.sidebar,
.main > .box,
.itinerary-section{
  position:relative;
  min-width:0;
  border:1px solid rgba(31,74,112,.115);
  border-radius:var(--radius-xl);
  background:
    radial-gradient(480px 220px at 100% 0%,rgba(62,166,210,.045),transparent 70%),
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,251,253,.90));
  box-shadow:var(--shadow);
  backdrop-filter:blur(20px) saturate(122%);
  -webkit-backdrop-filter:blur(20px) saturate(122%);
}

.sidebar{
  padding:1.25rem;
  max-height:none;
  overflow:visible;
}

.main > .box,
.itinerary-section{
  padding:1.25rem;
}

.sidebar::before,
.main > .box::before,
.itinerary-section::before{
  content:"";
  position:absolute;
  left:0;
  top:28px;
  bottom:28px;
  width:2px;
  border-radius:0 999px 999px 0;
  pointer-events:none;
  background:linear-gradient(180deg,var(--cyan),var(--indigo));
}

.sidebar > h2,
.itinerary-head h2{
  margin:.05rem 0 1rem;
  color:var(--ink);
  font-size:1.72rem;
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.05em;
}

/* Planner locked state */
.sidebar.disabled{
  opacity:.55;
  filter:grayscale(.03);
  pointer-events:none;
}

.sidebar.disabled #reset-planner,
.sidebar.disabled #start-planning{
  opacity:1!important;
  pointer-events:auto!important;
  cursor:pointer;
}

/* =========================================================
   SECTION CARDS
========================================================= */
.box{
  position:relative;
  margin-bottom:1rem;
  padding:1.05rem;
  overflow:visible;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
  box-shadow:0 2px 6px rgba(6,31,60,.022),0 9px 24px rgba(18,55,90,.04);
  transition:border-color .28s ease,box-shadow .38s var(--ease),transform .38s var(--ease);
}

.sidebar > section.box:nth-of-type(1),
.account-box{
  background:
    radial-gradient(420px 190px at 100% 100%,rgba(32,170,167,.15),transparent 68%),
    linear-gradient(145deg,#fff 35%,#effafa 100%);
  border-color:rgba(21,148,151,.20);
}

.sidebar > section.box:nth-of-type(2){
  background:
    radial-gradient(420px 190px at 100% 100%,rgba(42,141,245,.13),transparent 68%),
    linear-gradient(145deg,#fff 35%,#f0f7ff 100%);
  border-color:rgba(52,126,205,.18);
}

.sidebar > section.box:nth-of-type(3){
  background:
    radial-gradient(430px 200px at 100% 100%,rgba(109,120,238,.14),transparent 68%),
    linear-gradient(145deg,#fff 35%,#f3f4ff 100%);
  border-color:rgba(95,109,218,.18);
}

.sidebar > section.box:nth-of-type(4){
  background:
    radial-gradient(430px 210px at 100% 100%,rgba(53,191,209,.13),transparent 70%),
    linear-gradient(145deg,#fff 35%,#effafd 100%);
  border-color:rgba(48,158,183,.17);
}

.box:hover{
  border-color:rgba(24,130,158,.24);
  box-shadow:var(--shadow-up);
  transform:none;
}

.box h3{
  margin:.05rem 0 .85rem;
  color:var(--ink-2);
  font-size:1rem;
  font-weight:820;
  letter-spacing:-.02em;
}

.row-actions{
  display:flex;
  gap:.5rem;
  margin-top:.6rem;
}

/* =========================================================
   FORM CONTROLS
========================================================= */
.city-row input,
.city-row select,
input.start,
input.end,
.special-conditions textarea,
#traveler-mode,
#traveler-solo-panel select,
#traveler-group-panel select,
.chat-input input,
.chat-input > textarea,
.info-chat-modal .chat-input textarea,
.account-form-grid input,
.account-form-grid select{
  width:100%;
  min-width:0;
  color:var(--ink);
  background:rgba(255,255,255,.97);
  border:1px solid rgba(33,76,115,.15);
  border-radius:.82rem;
  box-shadow:0 1px 2px rgba(5,31,61,.025),inset 0 1px 0 rgba(255,255,255,.96);
  outline:none;
  transition:border-color .2s ease,box-shadow .22s ease,background .2s ease;
}

.city-row input,
.city-row select,
input.start,
input.end,
#traveler-mode,
#traveler-solo-panel select,
#traveler-group-panel select,
.account-form-grid input,
.account-form-grid select{
  min-height:44px;
  padding:.62rem .7rem;
}

.city-row input:hover,
.city-row select:hover,
input.start:hover,
input.end:hover,
.special-conditions textarea:hover,
#traveler-mode:hover,
#traveler-solo-panel select:hover,
#traveler-group-panel select:hover,
.chat-input input:hover,
.chat-input > textarea:hover,
.info-chat-modal .chat-input textarea:hover,
.account-form-grid input:hover,
.account-form-grid select:hover{
  border-color:rgba(20,124,173,.28);
  background:#fff;
}

.city-row input:focus,
.city-row select:focus,
input.start:focus,
input.end:focus,
.special-conditions textarea:focus,
#traveler-mode:focus,
#traveler-solo-panel select:focus,
#traveler-group-panel select:focus,
.chat-input input:focus,
.chat-input > textarea:focus,
.info-chat-modal .chat-input textarea:focus,
.account-form-grid input:focus,
.account-form-grid select:focus{
  border-color:rgba(8,119,249,.58);
  box-shadow:0 0 0 4px rgba(8,119,249,.08),0 8px 20px rgba(18,80,139,.055);
}

.city-row label,
.hours-header{
  color:#5e7185;
  font-weight:720;
}

/* =========================================================
   DESTINATIONS
========================================================= */
.city-row{
  display:grid;
  width:100%;
  min-width:0;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.90fr) minmax(48px,.40fr) minmax(0,1.28fr) 32px;
  column-gap:.46rem;
  row-gap:.6rem;
  align-items:end;
  margin:0 0 .8rem;
  padding:.9rem;
  border:1px solid rgba(36,79,119,.12);
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.78);
  box-shadow:0 5px 16px rgba(45,59,90,.03);
  animation:fadeIn .35s ease both;
}

.city-row > *,
.city-row label,
.city-row label > *,
.city-row .date-wrapper,
.city-row input,
.city-row select{
  min-width:0;
  max-width:100%;
}

.city-row label{
  display:flex;
  flex-direction:column;
  gap:.28rem;
  font-size:.88rem;
}

.city-row select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

.city-row .date-wrapper{
  display:flex;
  width:100%;
  min-width:0;
  max-width:100%;
  align-items:center;
  gap:.25rem;
}

.city-row .date-label{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.city-row .date-wrapper select.baseDay{
  width:45px;
  padding:.35rem .28rem;
  font-size:.78rem;
}

.city-row .date-wrapper select.baseMonth{
  width:75px;
  padding:.35rem .28rem;
  font-size:.78rem;
}

.city-row .date-wrapper input.baseYear{
  width:50px;
  padding:.35rem .28rem;
  text-align:center;
  font-size:.78rem;
}

.city-row .date-wrapper .date-format,
.city-row label:has(> .baseDate)::after{
  display:none;
}

.city-row .remove{
  width:30px;
  height:30px;
  align-self:end;
  justify-self:center;
  padding:0;
  color:#6f8193;
  background:#f5f9fb;
  border:1px solid rgba(35,75,112,.14);
  border-radius:999px;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease;
}

.city-row .remove:hover{
  color:#38566f;
  background:#edf5f7;
  transform:scale(1.07);
}

/* Container-aware safeguard */
.sidebar{container-type:inline-size}

@container (max-width:525px){
  .city-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }

  .city-row > label:nth-of-type(3){grid-column:1}
  .city-row > label:nth-of-type(4){grid-column:2}
  .city-row .remove{
    grid-column:2;
    justify-self:end;
  }
}

/* =========================================================
   HOURS
========================================================= */
.hours-block{
  grid-column:1 / -1;
  display:flex;
  width:100%;
  min-width:0;
  max-width:100%;
  flex-direction:column;
  gap:.45rem;
  margin-top:.6rem;
}

.hours-header,
.hours-day{
  display:grid;
  width:100%;
  min-width:0;
  max-width:100%;
  grid-template-columns:minmax(66px,.34fr) minmax(0,1fr) minmax(0,1fr);
  gap:.48rem;
}

.hours-header{
  padding-bottom:.2rem;
  font-size:.84rem;
  font-weight:720;
}

.hours-day{
  align-items:center;
  font-size:.9rem;
}

.hours-header > *,
.hours-day > *{
  min-width:0;
  max-width:100%;
}

input.start,
input.end,
.hours-day input[type="time"]{
  display:block;
  width:100%;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box;
  padding-left:.45rem;
  padding-right:.45rem;
  text-align:center;
  color:var(--ink);
}

input.start.invalid,
input.end.invalid{
  border-color:#dc4d59;
  background:#fff1f2;
}

.time-hint{
  display:block;
  margin:.25rem 0 .5rem;
  color:rgba(12,132,142,.72);
  font-size:.84rem;
  font-style:italic;
  animation:fadeIn .35s ease both;
}

.time-hint strong{color:var(--teal)}

/* =========================================================
   PREFERENCES
========================================================= */
.special-conditions{
  position:relative;
}

.special-conditions::before{
  content:"✍️  Write your preferences, restrictions and special conditions here";
  display:flex;
  align-items:center;
  gap:.45rem;
  width:max-content;
  max-width:100%;
  margin:.1rem 0 .65rem;
  padding:.42rem .72rem;
  color:#0b6276;
  background:linear-gradient(180deg,#effbfc,#e7f7f8);
  border:1px solid rgba(13,143,153,.18);
  border-radius:999px;
  box-shadow:0 4px 12px rgba(12,100,119,.05);
  font-size:.78rem;
  line-height:1.25;
  font-weight:850;
  letter-spacing:-.005em;
}

.special-conditions textarea{
  width:100%;
  min-height:500px;
  padding:1rem;
  resize:vertical;
  white-space:pre-wrap;
  line-height:1.62;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(249,253,254,.96));
  border:1px solid rgba(8,119,249,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 8px 22px rgba(18,55,90,.045);
}

.special-conditions textarea:hover{
  border-color:rgba(8,119,249,.30);
}

.special-conditions textarea:focus{
  background:#fff;
  border-color:rgba(8,119,249,.62);
  box-shadow:
    0 0 0 4px rgba(8,119,249,.08),
    0 10px 26px rgba(18,80,139,.065);
}

/* =========================================================
   TRAVELERS
========================================================= */
#traveler-mode{
  width:100%;
}

#traveler-solo-panel,
#traveler-group-panel{
  animation:fadeIn .25s ease;
}

#traveler-group-panel .traveler-profile{
  padding:.85rem;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:#fff;
  box-shadow:0 3px 12px rgba(20,52,80,.04);
}

#traveler-group-panel #traveler-add,
#traveler-group-panel #traveler-remove{
  border-radius:999px;
}

/* =========================================================
   ACCOUNT
========================================================= */
.account-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.8rem;
}

.account-head h3{margin:0}

.account-subtitle{
  margin:.35rem 0 0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.45;
}

.account-mode-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.65rem;
}

.account-mode-btn{
  width:100%;
  font-weight:800;
}

.account-panel{
  margin-top:.85rem;
  padding:.9rem;
  border:1px solid rgba(8,119,249,.16);
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.88);
  animation:fadeIn .25s ease;
}

.account-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem;
}

.account-form-grid label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:.3rem;
  font-size:.88rem;
  font-weight:700;
}

.account-form-grid small{
  color:var(--muted);
  font-size:.76rem;
  font-weight:500;
  line-height:1.35;
}

.account-check{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  margin:.85rem 0;
  color:var(--ink);
  font-size:.82rem;
  line-height:1.45;
}

.account-check.optional{color:var(--muted)}

.account-check input{
  flex:0 0 auto;
  margin-top:.2rem;
}

.account-check a{
  color:var(--blue);
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
}

.account-message{
  min-height:1.15rem;
  margin-top:.65rem;
  font-size:.82rem;
  line-height:1.4;
  font-weight:700;
}

.account-message.error{color:#c73e4c}
.account-message.success{color:#16866b}

.account-authenticated{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.85rem .95rem;
  border:1px solid rgba(22,150,143,.18);
  border-radius:var(--radius-md);
  background:linear-gradient(135deg,#effafa,#f6fbfc);
}

.account-authenticated strong{font-size:.96rem}

.account-authenticated p{
  margin:.25rem 0 0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.4;
}

.account-user-badge{
  flex:0 0 auto;
  padding:.35rem .65rem;
  color:#fff;
  background:linear-gradient(135deg,#0c8d92,#168caa);
  border-radius:999px;
  box-shadow:0 5px 14px rgba(10,120,135,.15);
  font-size:.78rem;
  font-weight:900;
}

#save-destinations:disabled{
  opacity:.46;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

/* =========================================================
   BUTTONS
========================================================= */
.btn{
  min-height:42px;
  padding:.65rem .95rem;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:.8rem;
  box-shadow:0 2px 6px rgba(20,52,80,.035);
  cursor:pointer;
  font-weight:730;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
}

.btn:hover{
  background:#f3f8fa;
  border-color:rgba(18,128,139,.24);
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(20,58,84,.075);
}

.btn:active{transform:scale(.98)}

.btn.primary,
#save-destinations,
#start-planning{
  color:#fff;
  background:linear-gradient(180deg,#1687ff 0%,#0877f9 58%,#0565d8 100%);
  border:1px solid rgba(5,95,207,.34);
  box-shadow:0 1px 1px rgba(255,255,255,.28) inset,0 8px 20px rgba(8,119,249,.20);
}

.btn.primary:hover,
#save-destinations:hover,
#start-planning:hover{
  color:#fff;
  background:linear-gradient(180deg,#0f7ff8 0%,#066ee9 58%,#055dc8 100%);
  box-shadow:0 1px 1px rgba(255,255,255,.30) inset,0 13px 27px rgba(8,119,249,.25);
  transform:translateY(-2px);
}

.btn.ghost{
  color:#11677c;
  background:linear-gradient(180deg,#f7ffff,#e9f9fa);
  border-color:rgba(13,143,153,.24);
}

/* Add City is a primary planning action until the 3-city cap is reached. */
#add-city-btn{
  color:#fff;
  background:linear-gradient(110deg,#0877f9 0%,#0b97bf 48%,#0aa7a5 100%);
  border:1px solid rgba(7,119,173,.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 10px 24px rgba(8,119,249,.17),
    0 5px 16px rgba(10,167,165,.11);
  font-weight:850;
}

#add-city-btn:hover:not(:disabled){
  color:#fff;
  background:linear-gradient(110deg,#066fe9 0%,#078caf 48%,#079b9a 100%);
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 14px 30px rgba(8,119,249,.22),
    0 7px 19px rgba(10,167,165,.14);
}

#add-city-btn:disabled{
  color:#6f8493;
  background:linear-gradient(180deg,#f3f7f8,#e9f0f2);
  border-color:rgba(35,75,112,.12);
  box-shadow:none;
  opacity:.72;
  cursor:not-allowed;
  transform:none;
}

.btn.warn,
#reset-planner{
  color:#66798c;
  background:#f7fafb;
  border-color:rgba(35,75,112,.13);
}

.btn.warn:hover,
#reset-planner:hover{
  color:#3b5972;
  background:#edf5f7;
}

.btn[disabled]{
  opacity:.48;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.w-100{width:100%}

#reset-planner{
  display:block;
  width:100%;
  margin-top:.5rem;
  padding:.65rem .95rem;
  border-radius:.8rem;
  font-weight:700;
  cursor:pointer;
}

/* =========================================================
   ITINERARY HEADER + INFO CHAT CTA
========================================================= */
.itinerary-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.65rem;
}

.itinerary-head h2{margin:0}

.itinerary-actions{margin-bottom:.85rem}

.info-chat-floating{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-width:236px;
  min-height:58px;
  padding:.82rem 1.4rem;
  color:#fff;
  background:
    radial-gradient(120% 190% at 15% -30%,rgba(116,222,217,.31),transparent 45%),
    linear-gradient(105deg,#092844 0%,#0a6171 50%,#0b9b9b 100%);
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  box-shadow:0 1px 0 rgba(255,255,255,.30) inset,0 13px 30px rgba(5,87,104,.22);
  cursor:pointer;
  font-size:1rem;
  font-weight:900;
  letter-spacing:-.01em;
  z-index:19050;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}

.info-chat-floating:hover{
  background:
    radial-gradient(120% 190% at 15% -30%,rgba(132,235,229,.34),transparent 45%),
    linear-gradient(105deg,#07243d 0%,#095869 50%,#099192 100%);
  transform:translateY(-3px) scale(1.018);
  box-shadow:0 1px 0 rgba(255,255,255,.30) inset,0 17px 36px rgba(5,87,104,.25);
}

.info-chat-floating::before,
.info-chat-floating::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:-1;
  border-radius:999px;
}

.info-chat-floating::before{
  inset:-7px;
  background:radial-gradient(ellipse at center,rgba(40,189,190,.24),rgba(72,125,223,.08) 52%,transparent 72%);
  filter:blur(7px);
  opacity:.42;
  animation:infoAura 3.8s ease-in-out infinite;
}

.info-chat-floating::after{
  inset:-3px;
  border:1px solid rgba(81,206,205,.33);
  animation:infoRing 3.1s ease-out infinite;
}

@keyframes infoAura{
  0%,100%{opacity:.26;transform:scale(.985)}
  50%{opacity:.50;transform:scale(1.025)}
}

@keyframes infoRing{
  0%{opacity:.42;transform:scale(.995)}
  70%{opacity:.08;transform:scale(1.065)}
  100%{opacity:0;transform:scale(1.08)}
}

/* Desktop placement is defined in the final responsive section below. */

/* =========================================================
   MAIN CHAT
========================================================= */
.chat{
  display:flex;
  width:100%;
  max-width:none;
  height:315px;
  min-height:315px;
  flex-direction:column;
  margin:.8rem 0 1rem;
  overflow:hidden;
  background:
    radial-gradient(500px 200px at 100% 0%,rgba(53,191,209,.055),transparent 70%),
    #fbfdfe;
  border:1px solid var(--line);
  border-radius:1.15rem;
  box-shadow:0 8px 24px rgba(18,55,90,.045);
}

.chat-messages{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:.7rem;
  overflow:auto;
  padding:1rem;
}

.chat-message{
  max-width:85%;
  padding:.72rem .95rem;
  color:var(--ink);
  border-radius:1rem;
  font-size:.9rem;
  line-height:1.48;
  box-shadow:0 4px 14px rgba(20,52,80,.045);
  animation:fadeIn .28s ease both;
}

.chat-message.user{
  align-self:flex-end;
  background:linear-gradient(135deg,#eaf8f8,#edf4ff);
  border-bottom-right-radius:.35rem;
}

.chat-message.ai{
  align-self:flex-start;
  background:#fff;
  border:1px solid rgba(35,75,112,.08);
  border-bottom-left-radius:.35rem;
}

.chat-input{
  display:flex;
  align-items:flex-end;
  gap:.5rem;
  padding:.7rem;
  background:#fff;
  border-top:1px solid var(--line);
}

.chat-input input,
.chat-input textarea{
  flex:1;
  padding:.65rem .75rem;
}

.chat-input textarea{
  min-height:4.35rem;
  max-height:10.5rem;
  resize:none;
  overflow-y:hidden;
  line-height:1.45;
}

.chat-input textarea.is-scrollable{
  overflow-y:auto;
}

.chat-message.ai.typing .dot{
  display:inline-block;
  margin:0 3px;
  color:rgba(7,31,61,.55);
  font-size:2rem;
  line-height:1;
  opacity:.3;
  animation:thinkingDots 1.5s infinite;
}

.chat-message.ai.typing .dot:nth-child(2){animation-delay:.3s}
.chat-message.ai.typing .dot:nth-child(3){animation-delay:.6s}

/* =========================================================
   CITY TABS
========================================================= */
.city-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:.8rem 0;
}

.city-tab{
  padding:.5rem .85rem;
  color:#31516d;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  box-shadow:0 2px 8px rgba(20,52,80,.035);
  cursor:pointer;
  font-weight:680;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}

.city-tab:nth-child(5n+1){background:#edf8ff}
.city-tab:nth-child(5n+2){background:#eefaf8}
.city-tab:nth-child(5n+3){background:#f2f1ff}
.city-tab:nth-child(5n+4){background:#eef8fc}
.city-tab:nth-child(5n+5){background:#f2faf7}

.city-tab:hover{
  transform:translateY(-1px);
  box-shadow:0 7px 16px rgba(20,52,80,.075);
}

.city-tab.active{
  color:#fff;
  background:linear-gradient(180deg,#1687ff,#0877f9);
  border-color:rgba(5,95,207,.34);
  box-shadow:0 7px 17px rgba(8,119,249,.18);
}

/* =========================================================
   ITINERARY TABLE
========================================================= */
#itinerary-container{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}

table.itinerary{
  width:100%;
  max-width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  margin:.5rem 0 1rem;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:1rem;
  box-shadow:0 9px 28px rgba(20,52,80,.045);
  font-size:.83rem;
}

table.itinerary th,
table.itinerary td{
  min-width:0;
  padding:.62rem .46rem;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
  text-align:center;
  vertical-align:top;
  border:0;
  border-right:1px solid rgba(35,75,112,.08);
  border-bottom:1px solid rgba(35,75,112,.08);
  line-height:1.38;
}

table.itinerary th:last-child,
table.itinerary td:last-child{border-right:0}

table.itinerary tbody tr:last-child td{border-bottom:0}

table.itinerary th{
  color:#143653;
  background:linear-gradient(180deg,#e9f5f8,#e4f0f4);
  font-size:.72rem;
  font-weight:780;
}

table.itinerary tbody tr:nth-child(even){background:#f8fbfc}

table.itinerary tbody tr:hover{
  background:#eef8f8;
  box-shadow:inset 3px 0 0 var(--teal);
}

table.itinerary td:first-child,
table.itinerary td:nth-child(2){
  white-space:nowrap;
  color:#294966;
  font-weight:720;
  font-variant-numeric:tabular-nums;
}

/* Eight-column itinerary proportions */
table.itinerary th:nth-child(1),
table.itinerary td:nth-child(1){width:8%}
table.itinerary th:nth-child(2),
table.itinerary td:nth-child(2){width:8%}
table.itinerary th:nth-child(3),
table.itinerary td:nth-child(3){width:14%}
table.itinerary th:nth-child(4),
table.itinerary td:nth-child(4){width:13%}
table.itinerary th:nth-child(5),
table.itinerary td:nth-child(5){width:13%}
table.itinerary th:nth-child(6),
table.itinerary td:nth-child(6){width:15%}
table.itinerary th:nth-child(7),
table.itinerary td:nth-child(7){width:13%}
table.itinerary th:nth-child(8),
table.itinerary td:nth-child(8){width:16%}

/* =========================================================
   PAGER
========================================================= */
.pager{
  display:flex;
  justify-content:center;
  gap:.38rem;
  margin:.8rem 0;
}

.pager button{
  min-width:34px;
  min-height:34px;
  padding:.35rem .55rem;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:.65rem;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}

.pager button:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(20,52,80,.08);
}

.pager button.active{
  color:#fff;
  background:linear-gradient(180deg,#1687ff,#0877f9);
  border-color:rgba(5,95,207,.34);
  box-shadow:0 6px 16px rgba(8,119,249,.18);
}

.pager .ghost{
  opacity:.5;
  pointer-events:none;
}

/* =========================================================
   EXPORT TOOLBAR
========================================================= */
.toolbar{
  display:none;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.6rem;
  width:100%;
  max-width:none;
  margin-top:.9rem;
}

.toolbar.itbmo-toolbar-ready{
  display:grid;
  animation:toolbarReveal .4s var(--ease) both;
}

.toolbar #btn-pdf,
.toolbar #btn-csv,
.toolbar #btn-email{
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 24px rgba(15,45,78,.12);
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);
}

.toolbar #btn-pdf{
  background:linear-gradient(135deg,#ef476f 0%,#df3562 100%);
}

.toolbar #btn-csv{
  background:linear-gradient(135deg,#20b486 0%,#079b78 100%);
}

.toolbar #btn-email{
  background:linear-gradient(135deg,#9a6cf3 0%,#7b55e7 100%);
}

.toolbar #btn-pdf:hover,
.toolbar #btn-csv:hover,
.toolbar #btn-email:hover{
  color:#fff;
  border-color:transparent;
  transform:translateY(-2px);
  filter:saturate(1.08) brightness(1.03);
  box-shadow:0 14px 30px rgba(15,45,78,.18);
}

.toolbar #btn-maps,
.toolbar #btn-transport,
.toolbar #btn-weather,
.toolbar #btn-clothing,
.toolbar #btn-restaurants,
.toolbar #btn-gas,
.toolbar #btn-bathrooms,
.toolbar #btn-lodging,
.toolbar #btn-localinfo{
  display:none!important;
}

#confirm-itinerary{display:none!important}

@keyframes toolbarReveal{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* =========================================================
   LOADING OVERLAY
========================================================= */
#loading-overlay{
  position:fixed;
  inset:0;
  z-index:45000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
  padding:12px 10px;
  pointer-events:all;
  background:
    radial-gradient(900px 620px at 4% 0%,rgba(57,183,187,.12),transparent 68%),
    radial-gradient(900px 620px at 96% 100%,rgba(91,125,221,.095),transparent 68%),
    rgba(244,249,251,.93);
  backdrop-filter:blur(20px) saturate(122%);
  -webkit-backdrop-filter:blur(20px) saturate(122%);
}

#loading-overlay .loader{
  display:grid;
  width:min(96vw,1260px);
  max-width:1260px;
  height:820px;
  min-height:720px;
  max-height:calc(100dvh - 24px);
  grid-template-rows:auto auto minmax(0,1fr);
  align-content:stretch;
  justify-content:stretch;
  margin:0 auto;
  padding:.95rem 1.15rem 1rem;
  overflow:hidden;
  text-align:center;
  background:
    radial-gradient(620px 300px at 0% 0%,rgba(53,191,209,.10),transparent 68%),
    radial-gradient(620px 330px at 100% 100%,rgba(109,120,238,.09),transparent 68%),
    #fff;
  border:1px solid rgba(35,75,112,.12);
  border-radius:1.85rem;
  box-shadow:0 4px 10px rgba(5,31,61,.04),0 32px 82px rgba(15,49,80,.15);
}

.hourglass{
  position:relative;
  display:inline-grid;
  width:72px;
  height:72px;
  place-items:center;
  margin:0 auto;
  color:var(--teal);
  background:linear-gradient(145deg,#fff,#f1f9fa);
  border:1px solid rgba(15,137,146,.18);
  border-radius:1.35rem;
  box-shadow:
    0 12px 30px rgba(24,105,125,.11),
    0 0 0 7px rgba(238,248,249,.72);
  isolation:isolate;
  animation:loaderFloat 2.8s ease-in-out infinite;
}

.hourglass::before{
  content:"✦";
  position:relative;
  z-index:2;
  font-size:2rem;
  line-height:1;
  animation:loaderStar 1.8s ease-in-out infinite;
}

.hourglass::after{
  content:"";
  position:absolute;
  inset:-8px;
  z-index:-1;
  border-radius:1.75rem;
  background:
    conic-gradient(
      from 0deg,
      rgba(8,119,249,0) 0deg,
      rgba(8,119,249,.95) 78deg,
      rgba(53,191,209,.85) 148deg,
      rgba(10,151,153,.18) 214deg,
      rgba(109,120,238,.82) 292deg,
      rgba(8,119,249,0) 360deg
    );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  padding:3px;
  animation:loaderSpin 1.25s linear infinite;
}

@keyframes loaderSpin{
  to{transform:rotate(360deg)}
}

@keyframes loaderFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}

@keyframes loaderStar{
  0%,100%{transform:scale(.92);opacity:.72}
  50%{transform:scale(1.12);opacity:1}
}

#loading-overlay p{
  width:min(92vw,840px);
  max-width:840px;
  margin:.72rem auto 0;
  padding:0 1rem;
  color:var(--ink);
  font-size:1.04rem;
  line-height:1.38;
  font-weight:900;
  text-align:center;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
}

#loading-overlay p::after{
  content:"";
  display:block;
  width:min(330px,48%);
  height:4px;
  margin:.75rem auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,#3b94e7,#23a5ad,#117e87,#3b94e7);
  background-size:220% 100%;
  animation:progressFlow 2.4s linear infinite;
}

@keyframes progressFlow{
  to{background-position:220% 0}
}

/* =========================================================
   THINKING INDICATORS
========================================================= */
#thinking-indicator,
#thinking-indicator-info{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:3000;
  display:none;
  padding:10px 14px;
  background:rgba(7,31,61,.92);
  border-radius:999px;
  box-shadow:0 10px 24px rgba(5,31,61,.16);
  backdrop-filter:blur(10px);
}

#thinking-indicator span,
#thinking-indicator-info span{
  display:inline-block;
  width:6px;
  height:6px;
  margin:0 2px;
  background:#fff;
  border-radius:50%;
  opacity:.3;
  animation:thinkingDots 1.5s infinite;
}

#thinking-indicator span:nth-child(2),
#thinking-indicator-info span:nth-child(2){animation-delay:.3s}

#thinking-indicator span:nth-child(3),
#thinking-indicator-info span:nth-child(3){animation-delay:.6s}

@keyframes thinkingDots{
  0%,100%{opacity:.3;transform:translateY(0)}
  50%{opacity:1;transform:translateY(-4px)}
}

/* =========================================================
   INFO CHAT MODAL
========================================================= */
.info-chat-modal{
  position:fixed!important;
  top:166px;
  right:30px;
  bottom:auto;
  left:auto;
  z-index:40000;
  display:flex;
  width:min(650px,calc(100vw - 60px));
  max-width:none;
  max-height:calc(100dvh - 188px);
  flex-direction:column;
  overflow:hidden;
  visibility:hidden;
  pointer-events:none;
  opacity:0;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(27,88,126,.16);
  border-radius:1.55rem;
  box-shadow:0 5px 13px rgba(5,31,61,.045),0 30px 78px rgba(12,47,76,.18);
  transform:translateY(-8px) scale(.985);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}

.info-chat-modal.active{
  visibility:visible;
  pointer-events:auto;
  opacity:1;
  transform:translateY(0) scale(1);
}

.info-chat-panel{
  position:relative;
  display:flex;
  min-height:300px;
  height:auto;
  max-height:100%;
  flex-direction:column;
}

.info-chat-header{
  display:flex;
  min-height:78px;
  align-items:center;
  justify-content:space-between;
  padding:1rem 1.15rem;
  color:#fff;
  background:
    radial-gradient(120% 190% at 100% 0%,rgba(78,205,201,.30),transparent 48%),
    linear-gradient(105deg,#071f3b 0%,#0b4960 48%,#0a9091 100%);
}

.info-chat-header h3{
  margin:0;
  color:#fff;
  font-size:1.02rem;
  font-weight:860;
}

.info-chat-header{cursor:grab;touch-action:none}
.info-chat-modal.is-dragging .info-chat-header{cursor:grabbing}
.info-chat-window-actions{display:flex;align-items:center;gap:.45rem;flex:0 0 auto}
#info-chat-minimize,
#info-chat-close{
  width:46px;
  height:46px;
  padding:0;
  color:#fff;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.18);
  border-radius:.85rem;
  box-shadow:none;
}

#info-chat-minimize:hover,
#info-chat-close:hover{
  color:#fff;
  background:rgba(255,255,255,.20);
}

.info-chat-modal.is-minimized{
  width:min(360px,calc(100vw - 40px));
  max-height:78px;
  cursor:pointer;
}
.info-chat-modal.is-minimized .info-chat-panel{min-height:0;height:78px;overflow:hidden}
.info-chat-modal.is-minimized .info-chat-header{height:78px;min-height:78px;border-radius:1.55rem}
.info-chat-modal.is-minimized .info-chat-entitlement,
.info-chat-modal.is-minimized .info-chat-usage,
.info-chat-modal.is-minimized .chat-messages,
.info-chat-modal.is-minimized .chat-input,
.info-chat-modal.is-minimized .info-chat-inline-notice{display:none!important}
.info-chat-modal.is-minimized #info-chat-minimize{display:none}

.info-chat-inline-notice{
  position:absolute;
  inset:78px 0 0;
  z-index:25;
  display:grid;
  place-items:center;
  padding:1rem;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:rgba(248,252,253,.78);
  backdrop-filter:blur(10px) saturate(120%);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  transition:opacity .18s ease,visibility .18s ease;
}
.info-chat-inline-notice.is-visible{visibility:visible;opacity:1;pointer-events:auto}
.info-chat-inline-notice__card{
  width:min(420px,100%);
  padding:1.15rem;
  text-align:center;
  color:var(--ink);
  background:rgba(255,255,255,.98);
  border:1px solid rgba(39,103,146,.14);
  border-radius:1.25rem;
  box-shadow:0 20px 54px rgba(8,38,67,.16);
}
.info-chat-inline-notice__symbol{display:grid;width:42px;height:42px;place-items:center;margin:0 auto .65rem;border-radius:.9rem;color:#fff;background:linear-gradient(135deg,var(--blue),var(--teal));font-weight:900}
.info-chat-inline-notice__card h4{margin:.1rem 0 .45rem;font-size:1.12rem;letter-spacing:-.025em}
.info-chat-inline-notice__card p{margin:0 0 .85rem;color:#587187;font-size:.88rem;line-height:1.5}
.info-chat-inline-notice__card .btn{min-width:130px}

.info-chat-modal .chat-messages{
  flex:1 1 auto;
  min-height:170px;
  max-height:520px;
  overflow-y:auto;
  padding:.95rem 1rem;
  background:
    radial-gradient(500px 210px at 100% 0%,rgba(57,184,199,.065),transparent 68%),
    linear-gradient(180deg,#fff,#f8fbfd);
}

.info-chat-modal .chat-input{
  display:flex;
  align-items:flex-end;
  gap:.55rem;
  padding:.7rem .8rem;
  background:#fff;
  border-top:1px solid var(--line);
}

.info-chat-modal .chat-input textarea{
  flex:1;
  width:100%;
  min-height:44px;
  max-height:220px;
  padding:.72rem .82rem;
  overflow-y:hidden;
  resize:none;
  font-family:inherit;
  font-size:.95rem;
  line-height:1.45;
}

.info-chat-modal #info-chat-send{
  flex:0 0 auto;
  min-width:78px;
  min-height:44px;
}

/* =========================================================
   RESET MODAL
========================================================= */
.reset-overlay{
  position:fixed;
  inset:0;
  z-index:50000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  padding:20px 12px;
  opacity:0;
  pointer-events:none;
  background:rgba(7,31,61,.38);
  backdrop-filter:blur(8px);
  transition:opacity .25s ease;
}

.reset-overlay.active{
  opacity:1;
  pointer-events:auto;
}

.reset-modal{
  width:min(90%,420px);
  padding:1.6rem;
  text-align:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:1.2rem;
  box-shadow:0 24px 65px rgba(7,31,61,.18);
  animation:fadeIn .25s ease both;
}

.reset-modal h3{
  margin:0 0 .9rem;
  color:var(--ink);
}

.reset-modal .btn{
  width:100%;
  margin-top:.8rem;
}

/* =========================================================
   ITBMO NOTICE MODAL · scope / quota messages
========================================================= */
.itbmo-notice-overlay{
  position:fixed;
  inset:0;
  z-index:60000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  padding:20px 12px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:rgba(7,31,61,.38);
  backdrop-filter:blur(16px) saturate(118%);
  -webkit-backdrop-filter:blur(16px) saturate(118%);
  transition:opacity .22s ease,visibility .22s ease;
}

.itbmo-notice-overlay.active{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

.itbmo-notice-card{
  position:relative;
  width:min(92vw,520px);
  padding:1.35rem;
  text-align:center;
  color:var(--ink);
  background:
    radial-gradient(480px 220px at 100% 0%,rgba(53,191,209,.11),transparent 70%),
    rgba(255,255,255,.98);
  border:1px solid rgba(39,103,146,.15);
  border-radius:1.55rem;
  box-shadow:0 30px 82px rgba(8,38,67,.22),0 4px 14px rgba(8,38,67,.05);
  transform:translateY(10px) scale(.985);
  transition:transform .24s var(--ease);
}

.itbmo-notice-overlay.active .itbmo-notice-card{
  transform:translateY(0) scale(1);
}

.itbmo-notice-symbol{
  display:grid;
  width:46px;
  height:46px;
  place-items:center;
  margin:0 auto .7rem;
  color:#fff;
  background:linear-gradient(135deg,#1687ff,#0aa7a5);
  border-radius:1rem;
  box-shadow:0 9px 22px rgba(8,119,180,.18);
  font-size:1.1rem;
  font-weight:950;
}

.itbmo-notice-card h3{
  margin:.15rem 2rem .55rem;
  color:var(--ink);
  font-size:1.38rem;
  line-height:1.08;
  letter-spacing:-.04em;
}

.itbmo-notice-card p{
  margin:0 auto 1rem;
  color:#557086;
  font-size:.93rem;
  line-height:1.55;
}

.itbmo-notice-close{
  position:absolute;
  top:.8rem;
  right:.8rem;
  width:40px;
  height:40px;
  padding:0;
  color:#517087;
  background:rgba(245,250,252,.94);
  border:1px solid rgba(35,75,112,.12);
  border-radius:.8rem;
  cursor:pointer;
}

.itbmo-notice-ok{
  min-width:150px;
}

/* =========================================================
   UPSELL
========================================================= */
.upsell{
  position:fixed;
  inset:0;
  z-index:35000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  padding:20px 12px;
  background:rgba(7,31,61,.35);
}

.upsell-card{
  width:min(92%,380px);
  padding:1.1rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:1rem;
  box-shadow:var(--shadow-up);
}

.upsell-card h3{margin:.25rem 0 .5rem}

/* =========================================================
   FOOTER
========================================================= */
.footer{
  margin-top:1rem;
  padding:1rem;
  color:var(--muted);
  background:transparent;
  border-top:1px solid rgba(35,75,112,.09);
  text-align:center;
  font-size:.85rem;
}

.footer a{
  margin:0 .25rem;
  color:var(--ink);
  text-decoration:none;
}

/* =========================================================
   ANIMATIONS
========================================================= */
@keyframes fadeIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}

/* =========================================================
   RESPONSIVE
========================================================= */

/* Keep two columns for normal desktop widths. */
@media(max-width:1080px){
  #planner-grid{
    grid-template-columns:1fr;
    width:min(calc(100% - 20px),1120px);
  }
}

/* Info Chat remains fixed above the content even when the planner stacks. */
@media(min-width:769px){
  .info-chat-floating,
  .itinerary-head .info-chat-floating{
    position:fixed;
    top:94px;
    right:30px;
  }
}

/* ITBMO · v93 · CTA visible para planificar otro viaje */
.new-planning-cta{
  display:none;
  align-items:center;
  justify-content:flex-start;
  gap:.78rem;
  width:100%;
  margin-top:.78rem;
  padding:.7rem .76rem .7rem .82rem;
  color:#173f5c;
  background:linear-gradient(135deg,rgba(231,247,255,.96) 0%,rgba(229,251,249,.96) 100%);
  border:1px solid rgba(8,133,177,.22);
  border-radius:1rem;
  box-shadow:0 9px 24px rgba(5,83,123,.08);
  font-size:.88rem;
  font-weight:820;
}
.new-planning-cta.is-ready{
  display:flex;
  animation:toolbarReveal .4s var(--ease) both;
}
.new-planning-icon{
  display:grid;
  flex:0 0 34px;
  width:34px;
  height:34px;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#087df0,#00a9a5);
  border-radius:999px;
  box-shadow:0 7px 16px rgba(5,115,191,.22);
  font-size:1.15rem;
  font-weight:900;
}
#new-planning-copy{
  flex:1 1 auto;
  line-height:1.25;
}
.new-planning-button{
  flex:0 0 auto;
  min-height:44px;
  padding:.68rem 1.05rem;
  color:#fff;
  background:linear-gradient(135deg,#0567e8 0%,#0789f5 52%,#02a6b4 100%);
  border:1px solid rgba(2,79,178,.46);
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 10px 23px rgba(5,103,210,.24);
  cursor:pointer;
  font:inherit;
  font-weight:950;
  text-shadow:0 1px 1px rgba(0,35,80,.2);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.new-planning-button:hover{
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 15px 30px rgba(5,103,210,.32);
  filter:saturate(1.1) brightness(1.04);
  transform:translateY(-2px);
}
.new-planning-button:focus-visible{
  outline:3px solid rgba(8,125,240,.32);
  outline-offset:3px;
}
@media(max-width:760px){
  .new-planning-cta.is-ready{
    align-items:flex-start;
    flex-direction:column;
    gap:.58rem;
    padding:.82rem;
  }
  .new-planning-icon{display:none}
  #new-planning-copy{width:100%;text-align:center}
  .new-planning-button{width:100%}
}

@media(max-width:900px){
  #loading-overlay{
    align-items:flex-start;
    overflow:auto;
    padding:6px;
  }

  #loading-overlay .loader{
    width:100%;
    height:auto;
    min-height:calc(100dvh - 12px);
    max-height:none;
    grid-template-rows:auto auto auto;
    overflow:visible;
    border-radius:1.35rem;
  }
}

@media(max-width:768px){
  #planner-grid{
    width:calc(100% - 14px);
    padding:.8rem 0 1.25rem;
  }

  .sidebar,
  .main > .box,
  .itinerary-section{
    border-radius:1.25rem;
  }

  .itinerary-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .info-chat-floating,
  .itinerary-head .info-chat-floating{
    position:sticky;
    top:82px;
    right:auto;
    left:auto;
    width:100%;
    min-width:0;
    z-index:19050;
  }

  .info-chat-modal{
    top:148px;
    right:10px;
    width:calc(100% - 20px);
    max-height:calc(100dvh - 166px);
  }

  .account-form-grid,
  .account-mode-actions{
    grid-template-columns:1fr;
  }

  .account-head{
    flex-direction:column;
  }

  .toolbar.itbmo-toolbar-ready{
    grid-template-columns:1fr;
  }
}

@media(max-width:640px){
  .city-row{
    grid-template-columns:1fr 1fr;
  }

  .city-row .date-wrapper,
  .hours-block{
    grid-column:1 / -1;
  }

  .hours-header,
  .hours-day{
    grid-template-columns:minmax(54px,.34fr) minmax(0,1fr) minmax(0,1fr);
    gap:.35rem;
  }

  .special-conditions textarea{
    min-height:520px;
  }

  #traveler-solo-panel label,
  #traveler-group-panel label{
    width:100%;
    min-width:unset!important;
  }

  table.itinerary{
    font-size:.74rem;
  }

  table.itinerary th,
  table.itinerary td{
    padding:.5rem .32rem;
  }
}

/* =========================================================
   ACCESSIBILITY / REDUCED MOTION
========================================================= */
@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
  }

  .info-chat-floating::before,
  .info-chat-floating::after,
  .hourglass,
  .hourglass::before,
  .hourglass::after,
  .toolbar.itbmo-toolbar-ready{
    animation:none!important;
    transition:none!important;
  }
}


/* =========================================================
   ITBMO · TRAVEL GLASS CLEAN · v69
   PREMIUM RESPONSIVE REFINEMENT
   ---------------------------------------------------------
   - Fluid Destinations at 100% browser zoom.
   - No zoom-detection JS: container queries + fluid sizing.
   - Consolidated overrides: superseded desktop CTA placement removed.
   - Brighter, more harmonious Info Chat CTA and header.
   - Slightly more compact Astra chat.
   - Monetization cards gain controlled emphasis.
   - Loading overlay flight area uses space more efficiently.
========================================================= */

/* ---------- 1. DESTINATIONS: FLUID BEFORE WRAPPING ---------- */
.city-row{
  container-type:inline-size;
  --itbmo-autocomplete-reserve:0px;
  margin-bottom:calc(.8rem + var(--itbmo-autocomplete-reserve));
  transition:margin-bottom .16s ease;
  grid-template-columns:
    minmax(82px,1.08fr)
    minmax(72px,.92fr)
    minmax(52px,.48fr)
    minmax(92px,1.22fr)
    28px;
  gap:clamp(.3rem,.72cqi,.46rem);
  padding:clamp(.68rem,1.35cqi,.9rem);
}

.city-row label{
  gap:.22rem;
  font-size:clamp(.72rem,1.72cqi,.86rem);
}

.city-row input,
.city-row select{
  min-height:clamp(39px,7.7cqi,44px);
  padding:
    clamp(.48rem,1.2cqi,.62rem)
    clamp(.48rem,1.35cqi,.7rem);
  font-size:clamp(.74rem,1.82cqi,.90rem);
}

.city-row .remove{
  width:clamp(27px,5.5cqi,30px);
  height:clamp(27px,5.5cqi,30px);
}

/* Date and hour rows scale with the real panel width. */
.hours-header,
.hours-day{
  grid-template-columns:
    minmax(54px,.30fr)
    minmax(0,1fr)
    minmax(0,1fr);
  gap:clamp(.3rem,.8cqi,.48rem);
}

.hours-header{
  font-size:clamp(.72rem,1.7cqi,.84rem);
}

.hours-day{
  font-size:clamp(.78rem,1.9cqi,.9rem);
}

input.start,
input.end,
.hours-day input[type="time"]{
  min-height:clamp(39px,7.7cqi,44px);
  font-size:clamp(.78rem,1.9cqi,.9rem);
}

/* Keep all destination fields on one row longer.
   Only truly narrow panels move to a 2×2 form. */
@container (max-width:400px){
  .city-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }

  .city-row > label:nth-of-type(3){grid-column:1}
  .city-row > label:nth-of-type(4){grid-column:2}
  .city-row .remove{
    grid-column:2;
    justify-self:end;
  }

  .hours-block{grid-column:1 / -1}
}

/* Override the older 525px fallback from v67. */
@container (min-width:401px) and (max-width:525px){
  .city-row{
    grid-template-columns:
      minmax(78px,1.08fr)
      minmax(68px,.90fr)
      minmax(50px,.46fr)
      minmax(88px,1.20fr)
      26px;
  }

  .city-row > label:nth-of-type(3),
  .city-row > label:nth-of-type(4),
  .city-row .remove{
    grid-column:auto;
  }
}

/* ---------- 2. INFO CHAT CTA: BRIGHTER AND BETTER INTEGRATED ---------- */
.info-chat-floating,
.itinerary-head .info-chat-floating{
  color:#fff;
  background:
    radial-gradient(125% 190% at 12% -35%,rgba(150,234,255,.30),transparent 44%),
    linear-gradient(105deg,#116fcb 0%,#0a8fc1 50%,#0ca9a8 100%);
  border:1px solid rgba(255,255,255,.30);
  box-shadow:
    0 1px 0 rgba(255,255,255,.35) inset,
    0 12px 28px rgba(12,119,166,.20),
    0 0 0 1px rgba(19,159,190,.07);
}

.info-chat-floating:hover,
.itinerary-head .info-chat-floating:hover{
  background:
    radial-gradient(125% 190% at 12% -35%,rgba(169,244,255,.34),transparent 44%),
    linear-gradient(105deg,#0d68c3 0%,#0884b6 50%,#099c9d 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.38) inset,
    0 16px 34px rgba(12,119,166,.24),
    0 0 0 5px rgba(46,182,211,.055);
}

.info-chat-floating::before{
  background:
    radial-gradient(
      ellipse at center,
      rgba(67,193,225,.23),
      rgba(66,137,232,.08) 52%,
      transparent 72%
    );
}

.info-chat-floating::after{
  border-color:rgba(82,204,223,.32);
}

/* ---------- 3. INFO CHAT MODAL: REMOVE THE HEAVY DARK HEADER ---------- */
.info-chat-header{
  color:#fff;
  background:
    radial-gradient(120% 180% at 100% 0%,rgba(119,228,235,.30),transparent 48%),
    linear-gradient(108deg,#1888d8 0%,#109bc3 50%,#10aaa7 100%);
  border-bottom:1px solid rgba(255,255,255,.16);
}

#info-chat-close{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.26);
}

#info-chat-close:hover{
  background:rgba(255,255,255,.25);
}

/* Give the modal a lighter, more open visual field. */
.info-chat-modal{
  border-color:rgba(45,130,178,.16);
  box-shadow:
    0 4px 12px rgba(5,31,61,.035),
    0 26px 68px rgba(24,86,123,.15);
}

.info-chat-modal .chat-messages{
  background:
    radial-gradient(520px 220px at 100% 0%,rgba(82,200,219,.075),transparent 68%),
    linear-gradient(180deg,#fff,#f7fbfd);
}

/* ---------- 4. MAIN ASTRA CHAT: COMPACT BUT COMFORTABLE ---------- */
.chat{
  height:285px;
  min-height:285px;
}

.chat-messages{
  padding:.85rem;
  gap:.58rem;
}

.chat-message{
  max-width:88%;
  padding:.64rem .82rem;
  font-size:.88rem;
  line-height:1.45;
}

.chat-input{
  padding:.62rem;
}

/* Slightly stronger card hierarchy{
  border-color:rgba(38,87,135,.15);
  box-shadow:
    0 2px 6px rgba(6,31,60,.025),
    0 11px 27px rgba(18,65,102,.055);
}

/* ---------- 6. DESKTOP FLUIDITY ---------- */
/* As browser zoom increases, the CSS viewport gets narrower.
   Rather than collapse early, rebalance the two panels smoothly. */
@media(min-width:1081px) and (max-width:1450px){
  #planner-grid{
    grid-template-columns:minmax(470px,46%) minmax(0,54%);
    gap:.9rem;
  }

  .sidebar,
  .main > .box,
  .itinerary-section{
    padding:clamp(.95rem,1.35vw,1.2rem);
  }

  .sidebar > h2,
  .itinerary-head h2{
    font-size:clamp(1.5rem,2vw,1.7rem);
  }
}

/* Only stack when the actual CSS viewport truly cannot sustain both panels. */
@media(max-width:1080px){
  #planner-grid{
    grid-template-columns:1fr;
  }
}

/* Info Chat stays anchored to the Itinerary header, never over the chat body. */
@media(min-width:769px){
  .info-chat-floating,
  .itinerary-head .info-chat-floating{
    position:absolute;
    top:52px;
    right:24px;
    left:auto;
    bottom:auto;
    margin:0;
  }

  .itinerary-section{
    padding-top:1.25rem;
  }

  .itinerary-actions{
    padding-right:min(250px,34%);
  }
}

/* ---------- 7. REDUCED MOTION ---------- */
@media(prefers-reduced-motion:reduce){
  .info-chat-floating,
  .info-chat-floating::before,
  .info-chat-floating::after{
    animation:none!important;
  }
}


/* =========================================================
   ITBMO · COMMERCE + CUSTOMER CARE · v70
   Integrated with Travel Glass. No legacy color layer added.
========================================================= */

/* Need Help — intentionally quieter than Astra Info Chat */
.need-help-floating{
  position:fixed;
  right:28px;
  bottom:24px;
  z-index:18500;
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:46px;
  padding:.55rem .85rem .55rem .58rem;
  color:#214a67;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(31,121,157,.18);
  border-radius:999px;
  box-shadow:0 10px 26px rgba(20,78,111,.10),inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  cursor:pointer;
  font-weight:850;
  letter-spacing:-.01em;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.need-help-floating:hover{
  transform:translateY(-2px);
  border-color:rgba(11,145,168,.30);
  box-shadow:0 14px 30px rgba(20,78,111,.14),inset 0 1px 0 rgba(255,255,255,.95);
}
.need-help-icon{
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#198ed6,#17aaa8);
  border-radius:999px;
  box-shadow:0 6px 14px rgba(20,137,166,.18);
  font-size:.92rem;
  font-weight:950;
}

/* Shared modal glass */
.support-modal,
.checkout-modal{
  position:fixed;
  inset:0;
  z-index:50000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  padding:20px 18px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:rgba(10,37,64,.34);
  backdrop-filter:blur(18px) saturate(118%);
  -webkit-backdrop-filter:blur(18px) saturate(118%);
  transition:opacity .22s ease,visibility .22s ease;
}
.support-modal.active,
.checkout-modal.active{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}

/* Modal layer hierarchy: checkout above support; notices above everything. */
.support-modal{z-index:50000;}
.checkout-modal{z-index:55000;}
.support-card,
.checkout-card{
  position:relative;
  width:min(94vw,620px);
  max-height:calc(100dvh - 36px);
  overflow:auto;
  padding:1.25rem;
  color:var(--ink);
  background:
    radial-gradient(560px 250px at 100% 0%,rgba(53,191,209,.10),transparent 70%),
    radial-gradient(460px 240px at 0% 100%,rgba(109,120,238,.07),transparent 70%),
    rgba(255,255,255,.97);
  border:1px solid rgba(39,103,146,.14);
  border-radius:1.65rem;
  box-shadow:0 35px 90px rgba(8,38,67,.20),0 4px 14px rgba(8,38,67,.05);
  transform:translateY(12px) scale(.985);
  transition:transform .26s var(--ease);
}
.support-modal.active .support-card,
.checkout-modal.active .checkout-card{
  transform:translateY(0) scale(1);
}
.support-close,
.checkout-close{
  position:absolute;
  top:.85rem;
  right:.85rem;
  width:40px;
  height:40px;
  padding:0;
  color:#517087;
  background:rgba(245,250,252,.92);
  border:1px solid rgba(35,75,112,.12);
  border-radius:.8rem;
  cursor:pointer;
}

/* Customer support */
.support-card{width:min(94vw,520px);text-align:center}
.support-symbol,
.checkout-symbol{
  display:grid;
  width:48px;
  height:48px;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#1687ff,#0aa7a5);
  border-radius:1rem;
  box-shadow:0 9px 22px rgba(8,119,180,.18);
  font-size:1.15rem;
  font-weight:950;
}
.support-symbol{margin:0 auto .75rem}
.support-eyebrow,
.checkout-eyebrow{
  color:#25809a;
  font-size:.68rem;
  line-height:1.2;
  font-weight:950;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.support-card h3{
  margin:.25rem 0 .45rem;
  color:var(--ink);
  font-size:1.55rem;
  letter-spacing:-.045em;
}
.support-card > p{
  margin:.35rem auto;
  max-width:420px;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.5;
}
.support-help-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.45rem;
  margin:1rem 0;
  text-align:left;
}
.support-help-grid div{
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.58rem .7rem;
  color:#34566f;
  background:rgba(245,250,252,.86);
  border:1px solid rgba(35,75,112,.09);
  border-radius:.8rem;
  font-size:.8rem;
}
.support-help-grid span{color:#0aa17d;font-weight:950}
.support-email-button{width:100%;margin-top:.35rem}
.support-footnote{font-size:.72rem!important}

/* Checkout */
.checkout-card{width:min(94vw,650px)}
.checkout-brand-row{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding-right:2.6rem;
}
.checkout-brand-row h3{
  margin:.22rem 0 0;
  color:var(--ink);
  font-size:1.42rem;
  line-height:1.08;
  font-weight:920;
  letter-spacing:-.045em;
}
.checkout-subtitle{
  margin:.85rem 0 1rem;
  color:var(--muted);
  font-size:.88rem;
}
.checkout-offer{
  position:relative;
  padding:1rem;
  overflow:hidden;
  background:
    radial-gradient(380px 160px at 100% 0%,rgba(53,191,209,.15),transparent 70%),
    linear-gradient(145deg,#f0f8ff,#effcf9);
  border:1px solid rgba(24,141,174,.17);
  border-radius:1.2rem;
}
.checkout-offer-badge{
  display:inline-flex;
  padding:.3rem .55rem;
  color:#096f7d;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(11,144,156,.15);
  border-radius:999px;
  font-size:.62rem;
  font-weight:950;
  letter-spacing:.06em;
}
.checkout-price-row{
  display:flex;
  align-items:baseline;
  gap:.7rem;
  margin:.55rem 0 .15rem;
}
.checkout-price-old{
  color:#7a8b9b;
  font-size:1.05rem;
  font-weight:750;
  text-decoration:line-through;
}
.checkout-price-new{
  color:#0877f9;
  font-size:2.15rem;
  line-height:1;
  font-weight:950;
  letter-spacing:-.055em;
}
.checkout-price-note{color:#5f7588;font-size:.75rem;font-weight:680}
.checkout-promo{margin-top:.85rem;padding-top:.8rem;border-top:1px solid rgba(24,141,174,.12)}
.checkout-promo label{display:block;margin-bottom:.4rem;color:#31566f;font-size:.72rem;font-weight:850}
.checkout-promo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
.checkout-promo-row input{min-width:0;height:42px;padding:0 .75rem;border:1px solid rgba(32,85,116,.18);border-radius:.75rem;background:rgba(255,255,255,.92);color:#173f57;font-size:.78rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;outline:none}
.checkout-promo-row input:focus{border-color:rgba(8,126,209,.48);box-shadow:0 0 0 3px rgba(8,126,209,.08)}
.checkout-promo-row button{height:42px;padding:0 .9rem;border:0;border-radius:.75rem;background:linear-gradient(135deg,#087ed1,#0a9db5);color:#fff;font-size:.74rem;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(8,126,177,.14)}
.checkout-promo-row button:disabled{opacity:.55;cursor:wait;box-shadow:none}
.checkout-promo-message{min-height:1rem;margin-top:.38rem;color:#617a8b;font-size:.68rem;font-weight:700}
.checkout-promo-message.error{color:#b54242}
.checkout-promo-message.success{color:#087f69}
.checkout-promo-summary{margin-top:.45rem;padding:.5rem .6rem;border:1px solid rgba(10,161,125,.15);border-radius:.7rem;background:rgba(238,252,247,.82);color:#226b5d;font-size:.7rem;font-weight:800}
.checkout-includes{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.45rem;
  margin:.85rem 0;
}
.checkout-includes div{
  display:flex;
  align-items:flex-start;
  gap:.42rem;
  padding:.55rem;
  color:#3c5c74;
  background:#fbfdfe;
  border:1px solid rgba(35,75,112,.09);
  border-radius:.75rem;
  font-size:.72rem;
  font-weight:700;
}
.checkout-includes div > span:first-child{color:#0aa17d;font-weight:950}
.checkout-methods{display:grid;gap:.55rem}
.checkout-method{
  display:flex;
  width:100%;
  min-height:58px;
  align-items:center;
  gap:.72rem;
  padding:.72rem .85rem;
  color:#203f5c;
  background:#fff;
  border:1px solid rgba(35,75,112,.14);
  border-radius:.95rem;
  box-shadow:0 5px 14px rgba(20,52,80,.045);
  cursor:pointer;
  text-align:left;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.checkout-method:hover{
  transform:translateY(-2px);
  border-color:rgba(8,119,249,.26);
  box-shadow:0 10px 22px rgba(18,80,145,.08);
}
.checkout-method-icon{font-size:1.25rem}
.checkout-method strong{display:block;font-size:.86rem}
.checkout-method small{display:block;margin-top:.12rem;color:#748799;font-size:.68rem}
.checkout-method-arrow{margin-left:auto;color:#0877f9;font-size:1.15rem;font-weight:950}
.checkout-method-paypal{
  min-height:56px;
  background:linear-gradient(145deg,#fff,#f3f8ff);
  border-color:rgba(38,103,195,.16);
}
.checkout-paypal-wordmark{
  color:#123f85;
  font-size:1.05rem;
  font-weight:950;
  font-style:italic;
  letter-spacing:-.04em;
}
.checkout-paypal-wrap{width:100%}
#paypal-button-container:empty{display:none}
.checkout-preview-continue{
  width:100%;
  padding:.55rem .7rem;
  color:#557286;
  background:transparent;
  border:1px dashed rgba(35,75,112,.18);
  border-radius:.8rem;
  cursor:pointer;
  font-size:.72rem;
  font-weight:760;
}
.checkout-status{
  min-height:0;
  margin:.45rem 0 0;
  color:#4e6a80;
  font-size:.75rem;
  font-weight:700;
}
.checkout-status.error{color:#c84451}
.checkout-status.success{color:#128066}
.checkout-trust{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  margin-top:.85rem;
  padding:.75rem;
  background:linear-gradient(145deg,#f8fcfd,#f3faf9);
  border:1px solid rgba(30,137,149,.12);
  border-radius:.9rem;
}
.checkout-lock{
  display:grid;
  width:34px;
  height:34px;
  flex:0 0 34px;
  place-items:center;
  background:#fff;
  border-radius:.7rem;
  box-shadow:0 5px 12px rgba(20,100,120,.06);
}
.checkout-trust strong{color:#1f5265;font-size:.78rem}
.checkout-trust p{margin:.15rem 0 0;color:#718696;font-size:.68rem;line-height:1.4}
.checkout-trust-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.5rem .8rem;
  margin:.7rem 0 0;
  color:#668092;
  font-size:.65rem;
}
.checkout-legal{
  display:flex;
  justify-content:center;
  gap:.35rem;
  margin:.65rem 0 0;
  color:#8493a0;
  font-size:.66rem;
}
.checkout-legal a{color:#52758d;text-decoration:none}
.checkout-support-link{
  display:block;
  width:100%;
  margin:.6rem 0 0;
  padding:.2rem;
  color:#117e97;
  background:transparent;
  border:0;
  cursor:pointer;
  font-size:.7rem;
  font-weight:850;
}
.checkout-method.is-disabled{
  opacity:.46;
  cursor:not-allowed;
  pointer-events:none;
}
.checkout-provider-note{
  display:block;
  margin:.2rem 0 0;
  color:#8293a1;
  text-align:center;
  font-size:.64rem;
}

@media(max-width:768px){
  .need-help-floating{
    right:12px;
    bottom:12px;
  }
  .support-modal,
  .checkout-modal{
    align-items:flex-end;
    padding:8px;
  }
  .support-card,
  .checkout-card{
    width:100%;
    max-height:calc(100dvh - 16px);
    border-radius:1.35rem;
  }
  .checkout-includes{grid-template-columns:1fr}
}


/* =========================================================
   ITBMO · EMAIL EXPORT · COMING SOON · v71
   Visible after generation, intentionally unavailable for MVP.
========================================================= */
.toolbar #btn-email.email-coming-soon,
.toolbar #btn-email:disabled{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.48rem;
  min-height:44px;
  color:#66598d;
  background:
    linear-gradient(135deg,rgba(244,240,255,.98),rgba(236,244,255,.96));
  border:1px solid rgba(126,97,202,.20);
  box-shadow:0 7px 18px rgba(65,55,112,.07);
  opacity:1;
  filter:none;
  cursor:not-allowed;
  transform:none;
}

.toolbar #btn-email.email-coming-soon:hover,
.toolbar #btn-email:disabled:hover{
  color:#66598d;
  background:
    linear-gradient(135deg,rgba(244,240,255,.98),rgba(236,244,255,.96));
  border-color:rgba(126,97,202,.20);
  box-shadow:0 7px 18px rgba(65,55,112,.07);
  transform:none;
  filter:none;
}

.toolbar #btn-email .email-action-label{
  font-weight:850;
}

.toolbar #btn-email .coming-soon-badge{
  display:inline-flex;
  align-items:center;
  padding:.20rem .42rem;
  color:#735bb6;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(126,97,202,.16);
  border-radius:999px;
  font-size:.58rem;
  line-height:1;
  font-weight:950;
  letter-spacing:.035em;
  text-transform:uppercase;
  white-space:nowrap;
}

/* =========================================================
   INFO CHAT · PAYMENT ENTITLEMENT + 10-QUERY LIMIT · v67
   Surgical layer only. Existing modal geometry is preserved.
   ========================================================= */
.info-chat-floating.is-locked,
.info-chat-floating:disabled{
  cursor:not-allowed;
  opacity:.62!important;
  filter:saturate(.55);
  box-shadow:none!important;
  pointer-events:none;
}
.info-chat-floating.is-unlocked{
  cursor:pointer;
  opacity:1!important;
  filter:none;
}
.info-chat-heading{
  display:flex;
  flex-direction:column;
  gap:.28rem;
  min-width:0;
}
.info-chat-entitlement{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  gap:.32rem;
  padding:.25rem .46rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:800;
  line-height:1.2;
}
.info-chat-entitlement.is-locked{
  color:#776f5a;
  background:#fff7df;
  border:1px solid rgba(215,154,22,.18);
}
.info-chat-entitlement.is-unlocked{
  color:#176d5f;
  background:#eaf8f3;
  border:1px solid rgba(55,185,142,.16);
}
.info-chat-entitlement.is-exhausted{
  color:#7a5361;
  background:#fff0f4;
  border:1px solid rgba(216,88,145,.16);
}
.info-chat-usage{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:.2rem 0 .65rem;
  padding:.48rem .62rem;
  border-radius:.78rem;
  color:#60798e;
  background:rgba(245,250,252,.90);
  border:1px solid rgba(35,75,112,.08);
  font-size:.7rem;
}
.info-chat-usage strong{
  color:#31536b;
  white-space:nowrap;
}
.info-chat-modal textarea:disabled,
.info-chat-modal button:disabled{
  cursor:not-allowed;
}
.info-chat-modal textarea:disabled{
  color:#8293a1;
  background:#f5f8fa;
}

.itbmo-download-overlay{position:fixed;inset:0;z-index:70000;display:grid;place-items:start center;padding:clamp(18px,5vh,54px) 18px;background:rgba(5,25,45,.56);backdrop-filter:blur(18px);opacity:0;transition:opacity .22s ease;overflow:auto}
.itbmo-download-overlay.active{opacity:1}
.itbmo-download-card{width:min(94vw,620px);padding:1.35rem;border:1px solid rgba(255,255,255,.7);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,251,252,.97));box-shadow:0 30px 90px rgba(4,27,49,.26);text-align:center;transform:translateY(12px) scale(.985);transition:transform .22s ease}
.itbmo-download-overlay.active .itbmo-download-card{transform:none}
.itbmo-download-spark{width:52px;height:52px;display:grid;place-items:center;margin:0 auto .6rem;border-radius:16px;background:linear-gradient(135deg,#0d8f91,#37b9c7);color:#fff;font-size:1.35rem;font-weight:950;box-shadow:0 12px 28px rgba(13,143,145,.22)}
.itbmo-download-eyebrow{font-size:.58rem;font-weight:950;letter-spacing:.12em;color:#0c858a}
.itbmo-download-card h3{margin:.25rem 0 .45rem;color:var(--ink);font-size:1.45rem;letter-spacing:-.035em}
.itbmo-download-card>p{margin:0 auto .8rem;max-width:500px;color:var(--text);font-size:.78rem;line-height:1.5}
.itbmo-download-files{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;margin:.7rem 0}
.itbmo-download-files span{padding:.34rem .52rem;border-radius:999px;background:#edf7fa;color:#28647b;font-size:.62rem;font-weight:850}
.itbmo-download-all{width:100%;margin:.2rem 0 .55rem}
.itbmo-download-status{min-height:1.2rem;color:#17756f;font-size:.66rem;font-weight:800}
.itbmo-download-ack{display:flex;gap:.55rem;align-items:flex-start;margin:.7rem 0;padding:.65rem .72rem;border-radius:14px;background:#fff8e6;color:#6e571b;text-align:left;font-size:.67rem;line-height:1.42}
.itbmo-download-ack input{margin-top:.12rem;accent-color:#0c8f91}
.itbmo-download-close{width:100%}
.itbmo-download-close:disabled{opacity:.42;cursor:not-allowed}
.itbmo-download-card>small{display:block;margin-top:.62rem;color:#718697;font-size:.6rem;line-height:1.4}
@media(max-width:560px){.itbmo-download-card{padding:1rem;border-radius:22px}}


/* ITBMO · Info Chat mobile safety */
@media (max-width:760px){
  .info-chat-modal,
  .info-chat-modal.is-minimized{left:12px!important;right:12px!important;top:92px!important;width:auto!important;max-width:none!important}
  .info-chat-header{cursor:default;touch-action:auto}
  .info-chat-inline-notice{inset:78px 0 0}
}

/* =========================================================
   QUIRÚRGICO · LOADING OVERLAY SCROLL FIX · v74
   Permite recorrer todos los afiliados durante la generación
   sin desbloquear el Planner ni perder el overlay.
========================================================= */
#loading-overlay{
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

#loading-overlay .loader{
  height:auto;
  min-height:calc(100dvh - 24px);
  max-height:none;
  overflow:visible;
}

@media (max-width:560px){
  #loading-overlay{
    padding:8px 6px;
  }

  #loading-overlay .loader{
    min-height:calc(100dvh - 16px);
    padding:.8rem .7rem .9rem;
  }
}

/* =========================================================
   QUIRÚRGICO · PLANNING CHAT COMPLETE STATE · v75
   Conserva visible el historial, pero bloquea nuevas entradas
   después de generar el itinerario. La lógica histórica se mantiene.
========================================================= */
#chat-container.is-planning-complete .chat-input{
  opacity:.68;
}

#chat-container.is-planning-complete #chat-input,
#chat-container.is-planning-complete #send-btn{
  cursor:not-allowed;
}

#chat-container.is-planning-complete #send-btn{
  filter:saturate(.55);
}

/* =========================================================
   v76c · PAYMENT RECEIPT BUTTON
   Acción activa secundaria: visible sin competir con PDF / CSV.
========================================================= */
#btn-receipt{
  color:#fff;
  background:linear-gradient(135deg,#0b5fa8 0%,#087fa5 52%,#0a9c9e 100%);
  border:1px solid rgba(8,108,151,.24);
  box-shadow:0 12px 28px rgba(20,104,146,.18);
}

#btn-receipt:hover{
  transform:translateY(-2px);
  border-color:rgba(8,108,151,.34);
  box-shadow:0 18px 36px rgba(20,104,146,.24);
}

#btn-receipt:focus-visible{
  outline:3px solid rgba(8,127,165,.22);
  outline-offset:2px;
}


/* =========================================================
   ITBMO · v76d · POST-PAYMENT PREFERENCES CHECKPOINT
   + MINIMIZED INFO CHAT DRAG POLISH
   ---------------------------------------------------------
   Existing renderer, itinerary tables, overlays and export styles
   remain untouched above.
   ========================================================= */

/* Setup is frozen after Save Destinations without disabling the whole sidebar. */
#account-box.is-setup-locked,
#travelers-box.is-setup-locked,
#destinations-box.is-setup-locked{
  opacity:.62;
  filter:saturate(.92);
  box-shadow:0 2px 6px rgba(6,31,60,.018),0 8px 20px rgba(18,55,90,.028);
}

#account-box.is-setup-locked::after,
#travelers-box.is-setup-locked::after,
#destinations-box.is-setup-locked::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(248,252,253,.08),rgba(248,252,253,.18));
}

/* Hidden until payment/admin entitlement is authoritative. */
.preferences-stage.is-stage-hidden{
  display:none!important;
}

.preferences-stage.is-stage-active{
  display:block;
  border-color:rgba(10,151,153,.25);
  background:
    radial-gradient(520px 250px at 100% 0%,rgba(53,191,209,.13),transparent 70%),
    radial-gradient(420px 220px at 0% 100%,rgba(109,120,238,.08),transparent 72%),
    linear-gradient(145deg,#fff 34%,#effafa 100%);
  box-shadow:
    0 4px 12px rgba(5,31,61,.03),
    0 24px 60px rgba(18,92,120,.10);
  animation:preferencesStageIn .38s var(--ease) both;
}

@keyframes preferencesStageIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}

.preferences-stage-head{
  margin-bottom:.85rem;
}

.preferences-stage-eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-bottom:.52rem;
  padding:.38rem .65rem;
  color:#08717f;
  background:rgba(232,249,249,.90);
  border:1px solid rgba(10,151,153,.14);
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
}

.preferences-stage-head h3{
  margin:.05rem 0 .42rem;
  color:var(--ink);
  font-size:1.28rem;
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.035em;
}

.preferences-stage-intro{
  margin:0;
  color:#5b7387;
  font-size:.83rem;
  line-height:1.58;
}

.preferences-stage-field-title{
  margin:.95rem 0 .45rem;
  color:var(--ink-2);
  font-size:.88rem;
  font-weight:850;
}

.preferences-stage-actions{
  display:flex;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
  margin-top:1rem;
}

.preferences-continue{
  min-width:220px;
  min-height:48px;
  padding:.72rem 1rem;
  border-radius:999px;
  box-shadow:0 14px 32px rgba(8,119,249,.15);
}

.preferences-stage-actions small{
  color:#718697;
  font-size:.72rem;
  line-height:1.4;
}

.preferences-stage.is-confirmed{
  border-color:rgba(55,185,142,.25);
  background:
    radial-gradient(460px 220px at 100% 0%,rgba(55,185,142,.10),transparent 70%),
    linear-gradient(145deg,#fff 38%,#f1fbf7 100%);
}

.preferences-stage.is-confirmed #special-conditions{
  color:#4d6577;
  background:#f6faf8;
  border-color:rgba(55,185,142,.18);
  cursor:default;
}

.preferences-stage.is-confirmed .preferences-continue{
  color:#2c725b;
  background:#e7f7f0;
  border-color:rgba(55,185,142,.20);
  box-shadow:none;
}

/* Drag only changes the cursor after the movement threshold is crossed. */
.info-chat-modal.is-minimized .info-chat-header{
  cursor:grab;
}
.info-chat-modal.is-minimized.is-dragging .info-chat-header{
  cursor:grabbing;
}

@media(max-width:760px){
  .preferences-stage-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .preferences-continue{
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   ITBMO · v76e · COMPACT PREFERENCES EXPERIENCE
   ---------------------------------------------------------
   Visual-only refinements around the existing preferences field.
   No itinerary renderer / generation / export structure is changed.
   ========================================================= */

/* Remove the old generated label because the guidance now lives in two explicit buttons. */
.preferences-stage.special-conditions::before{
  display:none!important;
}

.preferences-stage #special-conditions{
  min-height:92px!important;
  height:92px;
  max-height:260px;
  padding:.82rem .9rem;
  resize:none;
  overflow-y:hidden;
  line-height:1.55;
  border-radius:15px;
  background:rgba(255,255,255,.94);
  transition:
    height .16s ease,
    border-color .2s ease,
    box-shadow .22s ease,
    background .2s ease;
}

.preferences-help-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.42fr) minmax(190px,.72fr);
  gap:.55rem;
  margin:.72rem 0 .78rem;
  align-items:stretch;
}

.preferences-help-item{
  position:relative;
  min-width:0;
}

.preferences-help-button{
  width:100%;
  min-height:66px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.18rem;
  padding:.68rem .78rem;
  text-align:left;
  color:#244a65;
  background:
    radial-gradient(220px 90px at 100% 0%,rgba(53,191,209,.10),transparent 70%),
    rgba(255,255,255,.82);
  border:1px solid rgba(31,105,145,.13);
  border-radius:15px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 8px 22px rgba(18,70,100,.055);
  cursor:pointer;
  transition:transform .2s var(--ease),border-color .2s ease,box-shadow .25s var(--ease),background .2s ease;
}

.preferences-help-button:hover{
  transform:translateY(-2px);
  border-color:rgba(17,131,163,.24);
  background:#fff;
  box-shadow:0 14px 30px rgba(18,70,100,.09);
}

.preferences-help-button[aria-expanded="true"]{
  border-color:rgba(8,119,249,.28);
  box-shadow:0 0 0 3px rgba(8,119,249,.06),0 14px 30px rgba(18,70,100,.10);
}

.preferences-help-button__title{
  color:#123c59;
  font-size:.78rem;
  font-weight:850;
  line-height:1.25;
}

.preferences-help-button__subtitle{
  color:#718899;
  font-size:.64rem;
  font-weight:650;
  line-height:1.35;
}

.preferences-help-button--unsure{
  justify-content:center;
  background:
    radial-gradient(180px 90px at 100% 0%,rgba(109,120,238,.10),transparent 72%),
    linear-gradient(145deg,rgba(255,255,255,.90),rgba(244,247,255,.82));
}

.preferences-help-popover{
  position:absolute;
  z-index:250;
  top:calc(100% + 8px);
  left:0;
  width:min(430px,calc(100vw - 48px));
  max-height:min(430px,62vh);
  overflow:auto;
  padding:1rem;
  border:1px solid rgba(30,96,136,.14);
  border-radius:18px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px) scale(.985);
  transform-origin:top left;
  color:#36566d;
  background:
    radial-gradient(280px 130px at 100% 0%,rgba(53,191,209,.10),transparent 72%),
    rgba(255,255,255,.97);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 24px 60px rgba(8,42,68,.18);
  backdrop-filter:blur(20px) saturate(135%);
  -webkit-backdrop-filter:blur(20px) saturate(135%);
  transition:opacity .18s ease,transform .22s var(--ease),visibility .18s ease;
}

.preferences-help-item:last-child .preferences-help-popover{
  left:auto;
  right:0;
  transform-origin:top right;
}

.preferences-help-popover.is-open{
  opacity:1;
  visibility:visible;
  transform:none;
}

.preferences-help-popover__close{
  position:sticky;
  float:right;
  top:0;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  margin:-.28rem -.28rem .25rem .55rem;
  padding:0;
  color:#527084;
  background:rgba(247,251,253,.96);
  border:1px solid rgba(35,75,112,.10);
  border-radius:999px;
  cursor:pointer;
  font-size:1.1rem;
  line-height:1;
}

.preferences-help-popover__body{
  font-size:.72rem;
  line-height:1.48;
}

.preferences-help-intro{
  margin:0 0 .65rem;
}

.preferences-help-examples{
  display:block;
  margin-bottom:.38rem;
  color:#1c4a66;
}

.preferences-help-list p{
  margin:.32rem 0;
}

.preferences-help-list--compact p{
  margin:.24rem 0;
}

.preferences-help-final{
  margin-top:.72rem;
  padding-top:.68rem;
  border-top:1px solid rgba(35,75,112,.08);
  color:#40647a;
  font-weight:750;
}

.preferences-stage.is-confirmed .preferences-help-row{
  opacity:.55;
  pointer-events:none;
}

.preferences-stage.is-confirmed #special-conditions{
  overflow-y:auto!important;
}

/* Strong visual distinction from disabled Send by Email. */
.toolbar #btn-receipt{
  opacity:1;
  filter:none;
}

@media(max-width:760px){
  .preferences-help-row{
    grid-template-columns:1fr;
  }

  .preferences-help-button{
    min-height:58px;
  }

  .preferences-help-popover,
  .preferences-help-item:last-child .preferences-help-popover{
    left:0;
    right:auto;
    width:min(420px,calc(100vw - 42px));
    max-height:54vh;
    transform-origin:top left;
  }
}


/* =========================================================
   ITBMO · v76f · PREMIUM PREFERENCES + MULTILINGUAL WOW
   ---------------------------------------------------------
   Visual/UX refinements only. Generation, renderer, API and exports
   remain untouched.
   ========================================================= */

/* ---------- ALWAYS-VISIBLE MULTILINGUAL CAPABILITY ---------- */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.planner-language-capability{
  position:relative;
  margin-left:auto;
}

.planner-language-help{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  min-height:38px;
  padding:.48rem .72rem;
  color:#fff;
  background:
    linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    0 8px 22px rgba(2,47,83,.14);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:.72rem;
  font-weight:850;
  cursor:pointer;
  transition:transform .2s var(--ease),background .2s ease,box-shadow .2s var(--ease);
}

.planner-language-help:hover{
  transform:translateY(-1px);
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.12));
  box-shadow:0 12px 28px rgba(2,47,83,.18);
}

.planner-language-popover{
  position:absolute;
  z-index:4000;
  top:calc(100% + 9px);
  right:0;
  width:min(430px,calc(100vw - 28px));
  padding:1rem;
  color:#36566d;
  background:#fff;
  border:1px solid rgba(30,96,136,.14);
  border-radius:18px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px) scale(.985);
  transform-origin:top right;
  box-shadow:0 24px 60px rgba(8,42,68,.22);
  transition:opacity .18s ease,transform .22s var(--ease),visibility .18s ease;
}

.planner-language-popover.is-open{
  opacity:1;
  visibility:visible;
  transform:none;
}

.planner-language-popover__close{
  position:absolute;
  top:.7rem;
  right:.7rem;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  color:#527084;
  background:#f6fafc;
  border:1px solid rgba(35,75,112,.10);
  border-radius:999px;
  cursor:pointer;
  font-size:1.05rem;
}

.planner-language-popover strong{
  display:block;
  padding-right:2.3rem;
  color:#123c59;
  font-size:.88rem;
  font-weight:900;
}

.planner-language-popover p{
  margin:.45rem 0 .75rem;
  color:#58758a;
  font-size:.72rem;
  line-height:1.5;
}

.planner-language-list{
  display:flex;
  flex-wrap:wrap;
  gap:.34rem;
}

.planner-language-list span{
  padding:.34rem .48rem;
  color:#176d82;
  background:#edf9fa;
  border:1px solid rgba(15,130,150,.10);
  border-radius:999px;
  font-size:.62rem;
  font-weight:800;
}

.planner-language-popover small{
  display:block;
  margin-top:.72rem;
  padding-top:.68rem;
  color:#718697;
  border-top:1px solid rgba(35,75,112,.08);
  font-size:.62rem;
  line-height:1.45;
}

/* ---------- PREFERENCES HELP BUTTONS · STRONGER PREMIUM COLOR ---------- */
.preferences-help-row{
  gap:.68rem;
  margin:.78rem 0 .9rem;
}

.preferences-help-button{
  position:relative;
  overflow:hidden;
  min-height:74px;
  padding:.8rem .9rem;
  border-radius:18px;
  border:1px solid rgba(10,135,166,.18);
  background:
    radial-gradient(240px 120px at 100% 0%,rgba(53,191,209,.22),transparent 72%),
    linear-gradient(145deg,#f5fdff 0%,#e8f9fb 52%,#edf5ff 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 12px 28px rgba(16,91,123,.10);
}

.preferences-help-button::after{
  content:"";
  position:absolute;
  width:120px;
  height:120px;
  right:-46px;
  top:-66px;
  border-radius:999px;
  background:rgba(255,255,255,.28);
  pointer-events:none;
}

.preferences-help-button--guide{
  border-color:rgba(8,119,249,.18);
  background:
    radial-gradient(250px 120px at 100% 0%,rgba(53,191,209,.26),transparent 72%),
    linear-gradient(135deg,#edf8ff 0%,#e6fbfa 58%,#edf3ff 100%);
}

.preferences-help-button--unsure{
  border-color:rgba(109,120,238,.20);
  background:
    radial-gradient(230px 120px at 100% 0%,rgba(109,120,238,.18),transparent 72%),
    linear-gradient(135deg,#f4f4ff 0%,#eef8ff 52%,#eafafa 100%);
}

.preferences-help-button:hover{
  transform:translateY(-3px);
  border-color:rgba(8,119,249,.30);
  box-shadow:
    inset 0 1px 0 #fff,
    0 18px 38px rgba(17,87,126,.15);
}

.preferences-help-button__title{
  position:relative;
  z-index:1;
  color:#0f4565;
  font-size:.82rem;
  font-weight:900;
}

.preferences-help-button__subtitle{
  position:relative;
  z-index:1;
  color:#5f7e92;
  font-size:.67rem;
  font-weight:700;
}

/* ---------- HELP WINDOWS · FIXED, OPAQUE, NO BLEED-THROUGH ---------- */
.preferences-help-popover,
.preferences-help-item:last-child .preferences-help-popover{
  position:fixed;
  z-index:12000;
  top:clamp(88px,14vh,150px);
  left:50%;
  right:auto;
  width:min(560px,calc(100vw - 34px));
  max-height:min(470px,58vh);
  padding:1.08rem 1.12rem;
  transform:translate(-50%,-8px) scale(.985);
  transform-origin:top center;
  color:#36566d;
  background:#fff;
  border:1px solid rgba(30,96,136,.15);
  border-radius:22px;
  box-shadow:
    0 30px 80px rgba(6,32,58,.26),
    0 10px 30px rgba(18,92,120,.10);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.preferences-help-popover.is-open{
  transform:translate(-50%,0) scale(1);
}

.preferences-help-popover__body{
  font-size:.76rem;
  line-height:1.52;
}

.preferences-help-popover__close{
  position:sticky;
  top:0;
  z-index:2;
  width:34px;
  height:34px;
  margin:-.22rem -.22rem .2rem .7rem;
  background:#f5fafc;
  box-shadow:0 5px 14px rgba(18,55,90,.07);
}

/* ---------- AGENT CHAT · SLIGHTLY TALLER ---------- */
.chat{
  height:clamp(360px,44vh,405px);
  min-height:360px;
}

.chat-messages{
  padding:1.05rem;
}

.chat-message{
  max-width:88%;
}

/* ---------- MOBILE ---------- */
@media(max-width:760px){
  .topbar{
    gap:.55rem;
  }

  .planner-language-help{
    min-height:34px;
    padding:.4rem .56rem;
    font-size:.64rem;
  }

  .planner-language-popover{
    position:fixed;
    top:72px;
    left:12px;
    right:12px;
    width:auto;
    max-height:55vh;
    overflow:auto;
  }

  .preferences-help-button{
    min-height:64px;
  }

  .preferences-help-popover,
  .preferences-help-item:last-child .preferences-help-popover{
    top:86px;
    left:50%;
    right:auto;
    width:calc(100vw - 24px);
    max-height:56vh;
  }

  .chat{
    height:clamp(350px,48vh,390px);
    min-height:350px;
  }
}


/* =========================================================
   ITBMO · v76g · LANGUAGE CTA + MOBILE PREFERENCES
   ========================================================= */
.planner-language-help{
  min-height:42px;
  padding:.56rem .88rem;
  color:#063c5d;
  background:radial-gradient(100px 60px at 12% 0%,rgba(255,255,255,.95),transparent 78%),linear-gradient(135deg,#ffffff 0%,#e9fbff 48%,#dff7f4 100%);
  border:1px solid rgba(255,255,255,.92);
  box-shadow:inset 0 1px 0 #fff,0 8px 24px rgba(2,47,83,.18),0 0 0 1px rgba(8,132,166,.14);
  font-weight:900;
}
.planner-language-help:hover,.planner-language-help[aria-expanded="true"]{
  color:#052f4b;
  background:linear-gradient(135deg,#fff 0%,#e1f8ff 46%,#d6f5ef 100%);
  border-color:#fff;
  box-shadow:inset 0 1px 0 #fff,0 12px 30px rgba(2,47,83,.24),0 0 0 2px rgba(255,255,255,.28);
}
.planner-language-popover p{margin:.45rem 0 .72rem}
.planner-language-popover small{margin-top:.15rem}

@media(max-width:760px){
  .preferences-help-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:.62rem !important;
    width:100% !important;
    overflow:visible !important;
  }
  .preferences-help-item{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    overflow:visible !important;
  }
  .preferences-help-button{
    display:flex !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:66px !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  .preferences-help-button__title,.preferences-help-button__subtitle{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
  .planner-language-help{
    min-height:38px;
    padding:.46rem .66rem;
    color:#063c5d;
    background:linear-gradient(135deg,#fff,#e4faff);
  }
}
@media(max-width:430px){
  .planner-language-help{font-size:.61rem}
  .preferences-help-button{padding:.72rem .78rem !important}
  .preferences-help-button__title{font-size:.78rem !important;line-height:1.18 !important}
  .preferences-help-button__subtitle{font-size:.64rem !important;line-height:1.3 !important}
}


/* =========================================================
   ITBMO · v76h · PREMIUM GENERATION OVERLAY
   ---------------------------------------------------------
   Visual emphasis only. Generation logic and affiliate surface are unchanged.
   ========================================================= */

#loading-overlay{
  background:
    radial-gradient(980px 680px at 2% -4%,rgba(8,119,249,.19),transparent 68%),
    radial-gradient(980px 680px at 100% 104%,rgba(53,191,209,.18),transparent 68%),
    radial-gradient(700px 440px at 50% 30%,rgba(109,120,238,.07),transparent 72%),
    rgba(239,248,251,.965);
  backdrop-filter:blur(24px) saturate(132%);
  -webkit-backdrop-filter:blur(24px) saturate(132%);
}

#loading-overlay .loader{
  border:1px solid rgba(8,119,249,.18);
  background:
    radial-gradient(680px 320px at 0% 0%,rgba(53,191,209,.13),transparent 68%),
    radial-gradient(680px 350px at 100% 100%,rgba(109,120,238,.11),transparent 68%),
    linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.84) inset,
    0 16px 38px rgba(8,84,125,.10),
    0 38px 96px rgba(15,49,80,.20);
}

#loading-overlay .hourglass{
  width:78px;
  height:78px;
  color:#079aa0;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,255,255,.98),rgba(232,250,251,.94));
  border:1px solid rgba(8,119,249,.18);
  box-shadow:
    0 16px 38px rgba(24,105,125,.16),
    0 0 0 8px rgba(224,247,249,.86),
    0 0 42px rgba(53,191,209,.18);
}

#loading-overlay .hourglass::before{
  font-size:2.15rem;
  text-shadow:0 0 18px rgba(53,191,209,.20);
}

/* Main generation message: unmistakably the focal point */
#loading-overlay .loader > p{
  position:relative;
  width:min(92vw,940px);
  max-width:940px;
  margin:.88rem auto .15rem;
  padding:1rem 1.18rem 1.05rem;
  border:1px solid rgba(8,119,249,.13);
  border-radius:20px;
  background:
    radial-gradient(340px 150px at 0% 0%,rgba(53,191,209,.10),transparent 72%),
    radial-gradient(340px 150px at 100% 100%,rgba(109,120,238,.08),transparent 72%),
    rgba(255,255,255,.88);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 14px 34px rgba(10,82,121,.10);
  font-size:clamp(1.04rem,1.65vw,1.32rem);
  line-height:1.38;
  font-weight:950;
  letter-spacing:-.018em;
  color:transparent;
  background-clip:padding-box;
  -webkit-background-clip:padding-box;
}

/* Gradient is applied to the actual glyphs through a positioned duplicate effect
   without changing the HTML or localization string. */
#loading-overlay .loader > p{
  -webkit-text-fill-color:transparent;
  background-image:
    linear-gradient(100deg,#075fb5 0%,#078eb5 32%,#0a9c9e 64%,#5868d8 100%),
    radial-gradient(340px 150px at 0% 0%,rgba(53,191,209,.10),transparent 72%),
    radial-gradient(340px 150px at 100% 100%,rgba(109,120,238,.08),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(249,253,255,.92));
  -webkit-background-clip:text,padding-box,padding-box,padding-box;
  background-clip:text,padding-box,padding-box,padding-box;
}

/* Preserve a visible card border despite text clipping. */
#loading-overlay .loader > p::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:
    radial-gradient(340px 150px at 0% 0%,rgba(53,191,209,.10),transparent 72%),
    radial-gradient(340px 150px at 100% 100%,rgba(109,120,238,.08),transparent 72%),
    rgba(255,255,255,.94);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 14px 34px rgba(10,82,121,.10);
}

#loading-overlay .loader > p::after{
  width:min(420px,56%);
  height:5px;
  margin:.88rem auto 0;
  box-shadow:0 0 18px rgba(35,165,173,.17);
}

@media(max-width:760px){
  #loading-overlay .loader > p{
    width:calc(100% - 8px);
    padding:.86rem .88rem .92rem;
    border-radius:17px;
    font-size:clamp(.96rem,4.25vw,1.12rem);
  }

  #loading-overlay .hourglass{
    width:68px;
    height:68px;
  }
}


/* =========================================================
   ITBMO · v76i · GENERATION MESSAGE — HIGH CONTRAST PREMIUM
   Only the generation-message card is changed.
   ========================================================= */

#loading-overlay .loader > p{
  border:1px solid rgba(255,255,255,.34);
  background:
    radial-gradient(520px 180px at 8% 0%,rgba(62,196,214,.28),transparent 68%),
    radial-gradient(480px 190px at 100% 100%,rgba(92,112,225,.24),transparent 70%),
    linear-gradient(118deg,#075f96 0%,#087fa2 44%,#079c9c 100%);
  color:#ffffff;
  -webkit-text-fill-color:#ffffff;
  -webkit-background-clip:padding-box;
  background-clip:padding-box;
  text-shadow:0 2px 12px rgba(0,38,72,.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    0 18px 42px rgba(4,74,111,.20),
    0 8px 22px rgba(7,156,156,.12);
}

/* Remove the pale under-card from v76h so the new blue/teal surface is the card itself. */
#loading-overlay .loader > p::before{
  background:transparent;
  box-shadow:none;
}

/* Keep the progress accent visible against the darker card. */
#loading-overlay .loader > p::after{
  background:linear-gradient(90deg,#8ee9f2 0%,#ffffff 48%,#9ee8dc 100%);
  box-shadow:0 0 18px rgba(255,255,255,.34);
}

@media(max-width:760px){
  #loading-overlay .loader > p{
    border-color:rgba(255,255,255,.30);
    text-shadow:0 2px 10px rgba(0,38,72,.20);
  }
}


/* =========================================================
   ITBMO · v77 · IMMERSIVE DAY-BY-DAY ITINERARY
   Presentation-only layer. Existing itinerary state, renderer and exports
   remain intact.
   ========================================================= */

/* Legacy flat renderer stays mounted for compatibility but is no longer visible. */
.itinerary-legacy-flat{
  display:none!important;
}

/* ---------- MAIN PLANNER CTA ---------- */
.itinerary-focus-launch{
  display:none;
  width:100%;
  margin:.95rem 0 .15rem;
}

.itinerary-focus-launch.is-ready{
  display:block;
  animation:itineraryFocusReveal .5s var(--ease) both;
}

@keyframes itineraryFocusReveal{
  from{opacity:0;transform:translateY(10px) scale(.99)}
  to{opacity:1;transform:none}
}

.itinerary-focus-cta{
  position:relative;
  isolation:isolate;
  display:grid;
  width:100%;
  min-height:116px;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  padding:1.08rem 1.12rem;
  overflow:hidden;
  text-align:left;
  color:#fff;
  background:
    radial-gradient(260px 150px at 8% 0%,rgba(255,255,255,.20),transparent 72%),
    radial-gradient(360px 190px at 100% 100%,rgba(109,120,238,.22),transparent 72%),
    linear-gradient(118deg,#0877f9 0%,#078fb0 48%,#0aa7a5 100%);
  border:1px solid rgba(255,255,255,.32);
  border-radius:1.5rem;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.26),
    0 18px 44px rgba(5,94,143,.18),
    0 5px 16px rgba(9,127,153,.10);
  cursor:pointer;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),filter .25s ease;
}

.itinerary-focus-cta::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-90px;
  top:-120px;
  z-index:-1;
  border-radius:999px;
  background:rgba(255,255,255,.13);
}

.itinerary-focus-cta:hover{
  transform:translateY(-3px);
  filter:saturate(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 24px 54px rgba(5,94,143,.23),
    0 8px 20px rgba(9,127,153,.13);
}

.itinerary-focus-cta:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 4px rgba(8,119,249,.16),
    0 24px 54px rgba(5,94,143,.23);
}

.itinerary-focus-cta__icon{
  display:grid;
  width:58px;
  height:58px;
  place-items:center;
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.32);
  border-radius:1.05rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px rgba(4,61,108,.13);
  font-size:1.45rem;
}

.itinerary-focus-cta__copy{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:.15rem;
}

.itinerary-focus-cta__copy strong{
  color:#fff;
  font-size:1.12rem;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.035em;
}

.itinerary-focus-cta__copy small{
  color:rgba(245,253,255,.88);
  font-size:.74rem;
  line-height:1.4;
  font-weight:650;
}

.itinerary-focus-cta__meta{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:.34rem;
  padding:.32rem .55rem;
  color:#064f65;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  font-size:.62rem;
  line-height:1.2;
  font-weight:900;
}

.itinerary-focus-cta__arrow{
  display:grid;
  width:48px;
  height:48px;
  place-items:center;
  color:#07657f;
  background:#fff;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(4,61,108,.15);
  font-size:1.35rem;
  font-weight:900;
  transition:transform .28s var(--ease);
}

.itinerary-focus-cta:hover .itinerary-focus-cta__arrow{
  transform:translateX(4px);
}

/* Toolbar now reads as the action row directly under the immersive itinerary CTA. */
.itinerary-focus-launch.is-ready + .itinerary-legacy-flat + .itinerary-legacy-flat + .toolbar,
.toolbar.itbmo-toolbar-ready{
  margin-top:.72rem;
}

/* ---------- FULL-SCREEN FOCUS MODE ---------- */
body.itinerary-focus-open{
  overflow:hidden!important;
}

.itinerary-focus-modal{
  position:fixed;
  inset:0;
  z-index:62000;
  display:grid;
  place-items:stretch;
  padding:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease;
}

.itinerary-focus-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.itinerary-focus-backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(1000px 700px at 0% 0%,rgba(53,191,209,.18),transparent 66%),
    radial-gradient(1000px 700px at 100% 100%,rgba(109,120,238,.18),transparent 68%),
    rgba(232,243,248,.96);
  backdrop-filter:blur(22px) saturate(125%);
  -webkit-backdrop-filter:blur(22px) saturate(125%);
}

.itinerary-focus-shell{
  position:relative;
  z-index:1;
  display:grid;
  width:100%;
  height:100dvh;
  grid-template-rows:auto auto minmax(0,1fr);
  overflow:hidden;
  color:var(--ink);
  background:
    radial-gradient(900px 470px at -6% 0%,rgba(53,191,209,.11),transparent 70%),
    radial-gradient(900px 470px at 106% 0%,rgba(109,120,238,.10),transparent 70%),
    linear-gradient(180deg,#f8fcfd 0%,#f5fafc 100%);
}

.itinerary-focus-header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  padding:.86rem clamp(1rem,3vw,2rem);
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(35,75,112,.09);
  box-shadow:0 9px 30px rgba(14,52,82,.06);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.itinerary-focus-back,
.itinerary-focus-close{
  border:0;
  cursor:pointer;
}

.itinerary-focus-back{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:42px;
  padding:.5rem .76rem;
  color:#31576f;
  background:#fff;
  border:1px solid rgba(35,75,112,.11);
  border-radius:999px;
  box-shadow:0 7px 18px rgba(15,55,86,.06);
  font-size:.7rem;
  font-weight:850;
}

.itinerary-focus-back:hover{
  color:#0b6e84;
  border-color:rgba(10,151,153,.24);
  transform:translateY(-1px);
}

.itinerary-focus-heading{
  min-width:0;
  text-align:center;
}

.itinerary-focus-eyebrow{
  display:block;
  color:#168396;
  font-size:.58rem;
  line-height:1.1;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.itinerary-focus-heading h2{
  margin:.12rem 0 0;
  color:var(--ink);
  font-size:clamp(1.28rem,2.4vw,1.9rem);
  line-height:1;
  font-weight:950;
  letter-spacing:-.055em;
}

.itinerary-focus-heading p{
  margin:.25rem 0 0;
  color:#668095;
  font-size:.69rem;
  line-height:1.3;
  font-weight:650;
}

.itinerary-focus-close{
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  padding:0;
  color:#45687e;
  background:#fff;
  border:1px solid rgba(35,75,112,.11);
  border-radius:999px;
  box-shadow:0 7px 18px rgba(15,55,86,.06);
  font-size:1.38rem;
  line-height:1;
}

.itinerary-focus-close:hover{
  color:#0a7087;
  transform:rotate(4deg) scale(1.04);
}

.itinerary-focus-cities{
  position:relative;
  z-index:3;
  display:flex;
  justify-content:center;
  gap:.55rem;
  width:100%;
  padding:.78rem 1rem;
  overflow-x:auto;
  background:rgba(247,252,253,.88);
  border-bottom:1px solid rgba(35,75,112,.08);
  scrollbar-width:none;
}

.itinerary-focus-cities::-webkit-scrollbar{display:none}

.itinerary-focus-city-btn{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:.48rem;
  min-height:46px;
  padding:.5rem .78rem;
  color:#31596f;
  background:#fff;
  border:1px solid rgba(35,75,112,.12);
  border-radius:999px;
  box-shadow:0 7px 18px rgba(20,52,80,.05);
  cursor:pointer;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),background .22s ease,color .22s ease;
}

.itinerary-focus-city-btn span{
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  color:#15798b;
  background:#eaf9fa;
  border-radius:999px;
  font-size:.62rem;
  font-weight:950;
}

.itinerary-focus-city-btn strong{
  font-size:.76rem;
  font-weight:900;
}

.itinerary-focus-city-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 11px 24px rgba(20,52,80,.09);
}

.itinerary-focus-city-btn.active{
  color:#fff;
  background:linear-gradient(120deg,#0877f9 0%,#078eb0 48%,#0aa7a5 100%);
  border-color:transparent;
  box-shadow:0 12px 28px rgba(8,119,249,.18);
}

.itinerary-focus-city-btn.active span{
  color:#08738c;
  background:#fff;
}

.itinerary-focus-stage{
  position:relative;
  display:grid;
  min-height:0;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:1rem clamp(.8rem,2.4vw,1.6rem) 1.15rem;
  overflow:hidden;
}

.itinerary-focus-day-card{
  display:grid;
  width:min(100%,1440px);
  height:100%;
  min-height:0;
  grid-template-rows:auto minmax(0,1fr) auto;
  justify-self:center;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(35,75,112,.11);
  border-radius:1.55rem;
  box-shadow:0 4px 10px rgba(5,31,61,.035),0 24px 60px rgba(18,55,90,.10);
}

.itinerary-focus-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 1rem;
  background:
    radial-gradient(320px 130px at 100% 0%,rgba(53,191,209,.10),transparent 70%),
    linear-gradient(180deg,#fff,#f8fcfd);
  border-bottom:1px solid rgba(35,75,112,.08);
}

.itinerary-focus-city-label{
  display:block;
  margin-bottom:.12rem;
  color:#128296;
  font-size:.6rem;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.itinerary-focus-day-head h3{
  margin:0;
  color:var(--ink);
  font-size:1.05rem;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.035em;
}

.itinerary-focus-day-count{
  flex:0 0 auto;
  padding:.35rem .58rem;
  color:#526f84;
  background:#f1f8fa;
  border:1px solid rgba(35,75,112,.08);
  border-radius:999px;
  font-size:.63rem;
  font-weight:850;
}

.itinerary-focus-day-content{
  min-height:0;
  padding:.75rem .85rem;
  overflow:auto;
  overscroll-behavior:contain;
}

.itinerary-focus-table{
  margin:0;
  font-size:.78rem;
}

.itinerary-focus-table th{
  position:sticky;
  top:0;
  z-index:2;
}

.itinerary-focus-dots{
  display:flex;
  justify-content:center;
  gap:.35rem;
  padding:.62rem .8rem .7rem;
  overflow-x:auto;
  border-top:1px solid rgba(35,75,112,.07);
  scrollbar-width:none;
}

.itinerary-focus-dots::-webkit-scrollbar{display:none}

.itinerary-focus-dot{
  display:grid;
  width:29px;
  height:29px;
  flex:0 0 auto;
  place-items:center;
  padding:0;
  color:#6a8091;
  background:#f3f8fa;
  border:1px solid rgba(35,75,112,.10);
  border-radius:999px;
  cursor:pointer;
  font-size:.58rem;
  font-weight:900;
  transition:transform .2s ease,background .2s ease,color .2s ease;
}

.itinerary-focus-dot.active{
  color:#fff;
  background:linear-gradient(135deg,#0877f9,#0aa7a5);
  border-color:transparent;
  transform:scale(1.08);
}

.itinerary-focus-nav{
  display:grid;
  width:54px;
  height:54px;
  place-items:center;
  padding:0;
  color:#08738b;
  background:#fff;
  border:1px solid rgba(35,75,112,.10);
  border-radius:999px;
  box-shadow:0 12px 28px rgba(17,68,104,.10);
  cursor:pointer;
  font-size:2rem;
  line-height:1;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),opacity .2s ease;
}

.itinerary-focus-nav:hover:not(:disabled){
  transform:scale(1.06);
  box-shadow:0 16px 34px rgba(17,68,104,.14);
}

.itinerary-focus-nav:disabled{
  opacity:.28;
  cursor:default;
}

.itinerary-focus-empty{
  margin:1rem;
  color:#6b8192;
  text-align:center;
}

/* ---------- MOBILE: itinerary rows become premium activity cards ---------- */
@media(max-width:760px){
  .itinerary-focus-cta{
    min-height:108px;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:.72rem;
    padding:.92rem;
    border-radius:1.25rem;
  }

  .itinerary-focus-cta__icon{
    width:48px;
    height:48px;
    border-radius:.9rem;
    font-size:1.15rem;
  }

  .itinerary-focus-cta__copy strong{
    font-size:.98rem;
  }

  .itinerary-focus-cta__copy small{
    font-size:.66rem;
  }

  .itinerary-focus-cta__meta{
    font-size:.56rem;
  }

  .itinerary-focus-cta__arrow{
    width:40px;
    height:40px;
    font-size:1.05rem;
  }

  .itinerary-focus-header{
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:.55rem;
    padding:.62rem .68rem;
  }

  .itinerary-focus-back{
    width:40px;
    height:40px;
    justify-content:center;
    padding:0;
  }

  .itinerary-focus-back span:last-child{
    display:none;
  }

  .itinerary-focus-heading p{
    display:none;
  }

  .itinerary-focus-heading h2{
    font-size:1.12rem;
  }

  .itinerary-focus-eyebrow{
    font-size:.5rem;
  }

  .itinerary-focus-close{
    width:40px;
    height:40px;
  }

  .itinerary-focus-cities{
    justify-content:flex-start;
    padding:.62rem .65rem;
  }

  .itinerary-focus-city-btn{
    min-height:42px;
    padding:.42rem .62rem;
  }

  .itinerary-focus-stage{
    grid-template-columns:1fr;
    gap:.55rem;
    padding:.62rem;
  }

  .itinerary-focus-nav{
    position:absolute;
    z-index:5;
    top:50%;
    width:42px;
    height:42px;
    transform:translateY(-50%);
    background:rgba(255,255,255,.94);
    font-size:1.55rem;
  }

  .itinerary-focus-nav:hover:not(:disabled){
    transform:translateY(-50%) scale(1.04);
  }

  .itinerary-focus-nav--prev{left:.38rem}
  .itinerary-focus-nav--next{right:.38rem}

  .itinerary-focus-day-card{
    width:100%;
    height:100%;
    border-radius:1.2rem;
  }

  .itinerary-focus-day-head{
    padding:.68rem .8rem;
  }

  .itinerary-focus-day-head h3{
    font-size:.94rem;
  }

  .itinerary-focus-day-content{
    padding:.62rem;
  }

  .itinerary-focus-table,
  .itinerary-focus-table tbody,
  .itinerary-focus-table tr,
  .itinerary-focus-table td{
    display:block;
    width:100%!important;
  }

  .itinerary-focus-table{
    border:0;
    background:transparent;
    box-shadow:none;
  }

  .itinerary-focus-table thead{
    display:none;
  }

  .itinerary-focus-table tbody{
    display:grid;
    gap:.62rem;
  }

  .itinerary-focus-table tr{
    overflow:hidden;
    background:#fff!important;
    border:1px solid rgba(35,75,112,.10);
    border-radius:1rem;
    box-shadow:0 9px 24px rgba(20,52,80,.055);
  }

  .itinerary-focus-table td{
    display:grid!important;
    grid-template-columns:minmax(84px,.7fr) minmax(0,1.3fr);
    gap:.7rem;
    padding:.52rem .65rem!important;
    text-align:left!important;
    white-space:normal!important;
    border:0!important;
    border-bottom:1px solid rgba(35,75,112,.06)!important;
    font-size:.72rem;
    line-height:1.42;
  }

  .itinerary-focus-table td:last-child{
    border-bottom:0!important;
  }

  .itinerary-focus-table td::before{
    content:attr(data-label);
    color:#19788c;
    font-size:.58rem;
    line-height:1.35;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
  }
}

@media(max-width:430px){
  .itinerary-focus-cta{
    grid-template-columns:auto minmax(0,1fr);
  }

  .itinerary-focus-cta__arrow{
    display:none;
  }

  .itinerary-focus-cta__meta{
    width:100%;
    white-space:normal;
  }

  .itinerary-focus-day-count{
    font-size:.58rem;
  }
}

/* =========================================================
   ITBMO · v77 · GENERATION MESSAGE — CHAMPAGNE GOLD
   ---------------------------------------------------------
   Honest UX choice: use the warm yellow family as a premium highlight,
   but not the same saturated "discount badge" treatment. This keeps
   generation visually important without making it look like an ad/warning.
   ========================================================= */

#loading-overlay .loader > p{
  border:1px solid rgba(200,150,24,.26);
  background:
    radial-gradient(420px 170px at 8% 0%,rgba(255,255,255,.72),transparent 72%),
    radial-gradient(480px 190px at 100% 100%,rgba(255,198,75,.20),transparent 72%),
    linear-gradient(118deg,#fff9df 0%,#ffedaa 50%,#ffe4a0 100%);
  color:#083f63;
  -webkit-text-fill-color:#083f63;
  -webkit-background-clip:padding-box;
  background-clip:padding-box;
  text-shadow:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.94),
    0 18px 42px rgba(130,94,12,.13),
    0 7px 20px rgba(12,104,136,.08);
}

#loading-overlay .loader > p::before{
  background:transparent;
  box-shadow:none;
}

#loading-overlay .loader > p::after{
  background:linear-gradient(90deg,#0877f9 0%,#0aa7a5 48%,#d79a16 100%);
  box-shadow:0 0 17px rgba(10,151,153,.18);
}

/* Focus header: stronger travel-reward moment while preserving readability. */
.itinerary-focus-header{
  background:
    radial-gradient(460px 160px at 15% 0%,rgba(53,191,209,.10),transparent 72%),
    radial-gradient(460px 160px at 85% 0%,rgba(109,120,238,.08),transparent 72%),
    rgba(255,255,255,.93);
}

/* Back to Planner gets clear visual hierarchy and a reassuring return affordance. */
.itinerary-focus-back{
  color:#fff;
  background:linear-gradient(120deg,#0877f9 0%,#078fb0 50%,#0aa7a5 100%);
  border-color:transparent;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 10px 24px rgba(5,99,146,.16);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),filter .22s ease;
}

.itinerary-focus-back:hover{
  color:#fff;
  transform:translateY(-2px);
  filter:saturate(1.04) brightness(1.02);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 14px 30px rgba(5,99,146,.21);
}

.itinerary-focus-back:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 4px rgba(8,119,249,.15),
    0 14px 30px rgba(5,99,146,.21);
}

/* The title deserves color, but not a solid saturated fill.
   Gradient text keeps it premium and coherent with ASTRA. */
.itinerary-focus-heading h2{
  color:transparent;
  background:linear-gradient(100deg,#0877f9 0%,#078fae 48%,#0a9799 100%);
  -webkit-background-clip:text;
  background-clip:text;
}

.itinerary-focus-eyebrow{
  color:#0a8293;
}

/* Day card has more personality without adding noise to the table itself. */
.itinerary-focus-day-head{
  background:
    radial-gradient(360px 145px at 100% 0%,rgba(53,191,209,.16),transparent 70%),
    radial-gradient(300px 130px at 0% 100%,rgba(8,119,249,.07),transparent 70%),
    linear-gradient(180deg,#ffffff 0%,#f2fbfc 100%);
}

.itinerary-focus-day-count{
  color:#6b4b00;
  background:linear-gradient(120deg,#fff5c8 0%,#ffe69a 100%);
  border-color:rgba(185,120,0,.15);
  box-shadow:0 5px 15px rgba(200,143,25,.08);
}

/* Navigation arrows become more discoverable but remain secondary to city tabs. */
.itinerary-focus-nav{
  color:#fff;
  background:linear-gradient(145deg,#0877f9 0%,#0a9e9c 100%);
  border-color:transparent;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.26),
    0 14px 30px rgba(7,105,148,.17);
}

.itinerary-focus-nav:hover:not(:disabled){
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 18px 36px rgba(7,105,148,.22);
}

.itinerary-focus-nav:disabled{
  color:#7ca5b1;
  background:#edf6f8;
  border:1px solid rgba(35,75,112,.08);
  box-shadow:none;
  opacity:.5;
}

/* Small transition between days/cities, intentionally fast. */
.itinerary-focus-day-card{
  animation:itbmoDayCardIn .22s var(--ease) both;
}

@keyframes itbmoDayCardIn{
  from{opacity:.82;transform:translateX(7px)}
  to{opacity:1;transform:none}
}

@media(max-width:760px){

  .itinerary-focus-back{
    background:linear-gradient(135deg,#0877f9,#0aa7a5);
  }

  .itinerary-focus-heading h2{
    font-size:1.14rem;
  }

  .itinerary-focus-nav{
    background:rgba(255,255,255,.96);
    color:#087b94;
    border:1px solid rgba(8,119,249,.14);
    box-shadow:0 10px 24px rgba(17,68,104,.12);
  }

  .itinerary-focus-nav:disabled{
    opacity:.38;
  }
}

@media(prefers-reduced-motion:reduce){
  .itinerary-focus-day-card{
    animation:none;
  }
}

/* =========================================================
   ITBMO · SURGICAL OVERLAY COPY LAYOUT
   Keeps the existing champagne-gold visual treatment.
   ========================================================= */
#loading-overlay .loader > p{
  white-space:pre-line;
  text-wrap:balance;
  max-width:1080px;
  line-height:1.42;
}

/* =========================================================
   ITBMO · ASTRA LOADING OVERLAY · PREMIUM 3-LEVEL COPY FIX
   ---------------------------------------------------------
   Surgical presentation-only override.
   Keeps the existing champagne-gold generation card and
   gives the structured JS markup a real visual hierarchy.
   ========================================================= */

#loading-overlay .loader > p.astra-overlay-copy{
  position:relative;
  display:flex;
  width:min(92vw,1040px);
  max-width:1040px;
  flex-direction:column;
  align-items:center;
  gap:.82rem;

  margin:.88rem auto .15rem;
  padding:1.08rem 1.3rem 1.12rem;

  color:#083f63;
  -webkit-text-fill-color:currentColor;
  font-size:1rem;
  font-weight:600;
  line-height:1.4;
  letter-spacing:normal;
  text-align:center;
  text-shadow:none;
  white-space:normal;

  border:1px solid rgba(200,150,24,.26);
  border-radius:20px;
  background:
    radial-gradient(420px 170px at 8% 0%,rgba(255,255,255,.72),transparent 72%),
    radial-gradient(480px 190px at 100% 100%,rgba(255,198,75,.20),transparent 72%),
    linear-gradient(118deg,#fff9df 0%,#ffedaa 50%,#ffe4a0 100%);
  -webkit-background-clip:padding-box;
  background-clip:padding-box;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.94),
    0 18px 42px rgba(130,94,12,.13),
    0 7px 20px rgba(12,104,136,.08);
}

/* Reset the old global text-fill behavior on every structured child. */
#loading-overlay .loader > p.astra-overlay-copy *{
  -webkit-text-fill-color:currentColor;
}

/* Existing legacy under-card must remain disabled. */
#loading-overlay .loader > p.astra-overlay-copy::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:transparent;
  box-shadow:none;
  pointer-events:none;
}

/* Progress accent stays visually secondary. */
#loading-overlay .loader > p.astra-overlay-copy::after{
  content:"";
  display:block;
  width:min(390px,48%);
  height:5px;
  margin:.08rem auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,#0877f9 0%,#0aa7a5 48%,#d79a16 100%);
  box-shadow:0 0 17px rgba(10,151,153,.18);
}

/* LEVEL 1 · Main message */
#loading-overlay .astra-overlay-hero{
  display:flex;
  max-width:900px;
  flex-direction:column;
  align-items:center;
  gap:.18rem;
}

#loading-overlay .astra-overlay-hero > strong{
  display:block;
  color:#083f63;
  font-size:clamp(1.28rem,2vw,1.72rem);
  line-height:1.14;
  font-weight:950;
  letter-spacing:-.035em;
  text-wrap:balance;
}

#loading-overlay .astra-overlay-hero > span{
  display:block;
  color:#118294;
  font-size:clamp(.88rem,1.18vw,1.02rem);
  line-height:1.25;
  font-weight:850;
  letter-spacing:.015em;
}

/* LEVEL 2 · Time pill */
#loading-overlay .astra-overlay-time{
  display:flex;
  width:min(100%,820px);
  flex-direction:column;
  align-items:center;
  gap:.28rem;
  padding:.62rem 1rem .68rem;

  color:#083f63;
  background:
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.72));
  border:1px solid rgba(178,133,15,.20);
  border-radius:1rem;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 8px 22px rgba(123,91,12,.065);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

#loading-overlay .astra-overlay-time-label{
  color:#7a5906;
  font-size:.76rem;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
}

#loading-overlay .astra-overlay-time-ranges{
  display:block;
  color:#083f63;
  font-size:clamp(.96rem,1.38vw,1.12rem);
  line-height:1.3;
  font-weight:930;
  letter-spacing:-.018em;
  text-wrap:balance;
}

#loading-overlay .astra-overlay-time-ranges i{
  padding:0 .22rem;
  color:#d09510;
  font-style:normal;
}

/* LEVEL 3 · Value + instruction */
#loading-overlay .astra-overlay-value{
  display:block;
  max-width:880px;
  color:#52697b;
  font-size:clamp(.80rem,1.08vw,.94rem);
  line-height:1.48;
  font-weight:630;
  text-wrap:balance;
}

#loading-overlay .astra-overlay-value strong{
  color:#083f63;
  font-weight:930;
}

/* Mobile: preserve hierarchy without making the card too tall. */
@media(max-width:760px){
  #loading-overlay .loader > p.astra-overlay-copy{
    width:calc(100% - 8px);
    gap:.64rem;
    padding:.88rem .74rem .94rem;
    border-radius:17px;
  }

  #loading-overlay .astra-overlay-hero > strong{
    font-size:clamp(1.02rem,5vw,1.28rem);
  }

  #loading-overlay .astra-overlay-hero > span{
    font-size:.82rem;
  }

  #loading-overlay .astra-overlay-time{
    width:100%;
    padding:.55rem .62rem .6rem;
    border-radius:.9rem;
  }

  #loading-overlay .astra-overlay-time-label{
    font-size:.69rem;
  }

  #loading-overlay .astra-overlay-time-ranges{
    max-width:330px;
    font-size:.86rem;
    line-height:1.38;
  }

  #loading-overlay .astra-overlay-value{
    max-width:350px;
    font-size:.76rem;
    line-height:1.43;
  }

  #loading-overlay .astra-overlay-value br{
    display:none;
  }

#loading-overlay .loader > p.astra-overlay-copy::after{
    width:min(260px,62%);
    height:4px;
  }
}

/* Final precedence guard for the v79 guided controls. */
.traveler-profile-actions{position:sticky;bottom:.35rem;z-index:12}
.time-selector{display:grid!important;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr)!important}
.info-chat-modal:not(.is-minimized){resize:both!important;overflow:hidden!important;min-width:360px;min-height:430px;max-width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)!important}
.info-chat-modal:not(.is-minimized) .info-chat-panel{width:100%!important;height:100%!important;min-height:0!important}
.info-chat-modal:not(.is-minimized) .chat-messages{min-height:120px!important;overflow-y:auto!important}
@media(max-width:760px){
  .info-chat-modal:not(.is-minimized){resize:none!important;min-width:0;min-height:0;max-width:none!important;max-height:none!important}
  .time-selector{grid-template-columns:minmax(58px,1fr) auto minmax(58px,1fr)!important}
}

/* =========================================================
   ITBMO · v88 · Non-guide UX improvements
   The existing ASTRA coach styles above remain untouched.
========================================================= */
.hours-block.is-same-schedule .hours-day:not(:first-of-type){opacity:1!important}
.hours-block.is-same-schedule .hours-day:not(:first-of-type) select{background:#fff!important;cursor:pointer!important}

.btn.primary:not(:disabled),
#save-destinations:not(:disabled),
#start-planning:not(:disabled),
#continue-with-astra:not(:disabled),
#send-btn:not(:disabled),
#info-chat-send:not(:disabled){
  color:#fff!important;
  border:1px solid rgba(2,79,178,.52)!important;
  background:linear-gradient(135deg,#0567e8 0%,#0789f5 52%,#02a6b4 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 13px 30px rgba(5,103,210,.30)!important;
  text-shadow:0 1px 1px rgba(0,35,80,.22);
}
.btn.primary:not(:disabled):hover,
#save-destinations:not(:disabled):hover,
#start-planning:not(:disabled):hover,
#continue-with-astra:not(:disabled):hover{
  filter:saturate(1.12) brightness(1.04);
  transform:translateY(-3px)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 18px 38px rgba(5,103,210,.38)!important;
}
#add-city-btn:not(:disabled),.traveler-control--add:not(:disabled){
  color:#fff!important;
  border-color:rgba(0,105,128,.45)!important;
  background:linear-gradient(135deg,#0879ef 0%,#04a8bc 55%,#08a878 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 13px 30px rgba(3,135,170,.29)!important;
}
.traveler-control--remove:not(:disabled),#reset-planner:not(:disabled),.btn.ghost:not(:disabled){
  color:#075d7a!important;
  border:2px solid rgba(5,128,166,.42)!important;
  background:#fff!important;
  box-shadow:0 8px 20px rgba(7,77,111,.11)!important;
}
.preferences-help-button--guide,
.preferences-help-button--unsure{
  border:1px solid rgba(255,255,255,.45)!important;
}
.preferences-help-button--guide{
  border-color:rgba(0,106,154,.48)!important;
  background:linear-gradient(135deg,#006fd6 0%,#009ab4 52%,#00a78f 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 14px 32px rgba(0,112,151,.27)!important;
}
.preferences-help-button--unsure{
  border-color:rgba(98,34,174,.48)!important;
  background:linear-gradient(135deg,#6226b8 0%,#8b2fc2 48%,#c72c82 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.27),0 14px 32px rgba(104,35,158,.26)!important;
}
.preferences-help-button__title,.preferences-help-button__subtitle{color:#fff!important;text-shadow:0 1px 1px rgba(0,30,70,.24)}
.preferences-help-button:hover{filter:saturate(1.12) brightness(1.05);transform:translateY(-3px)!important}

@media(prefers-reduced-motion:no-preference){
  #save-destinations:not(:disabled),#start-planning:not(:disabled),#continue-with-astra:not(:disabled){animation:itbmoCtaBreath 2.8s ease-in-out infinite}
  @keyframes itbmoCtaBreath{0%,100%{filter:brightness(1)}50%{filter:brightness(1.07)}}
}

.date-picker-shell{
  position:relative;
  display:block;
  width:100%;
}
.date-picker-placeholder{
  position:absolute;
  inset:0 2.7rem 0 .9rem;
  display:flex;
  align-items:center;
  color:#557187;
  font-size:.78rem;
  font-weight:800;
  pointer-events:none;
  transition:opacity .16s ease;
}
.date-wrapper.has-value .date-picker-placeholder{opacity:0}
.date-wrapper:not(.has-value) .baseDatePicker{
  color:transparent!important;
  background:linear-gradient(180deg,#fff,#f7fcfd)!important;
  box-shadow:inset 0 0 0 1px rgba(8,133,177,.15),0 7px 18px rgba(4,83,123,.08)!important;
}
.date-wrapper:not(.has-value) .baseDatePicker:focus{
  box-shadow:inset 0 0 0 2px rgba(8,125,241,.58),0 0 0 5px rgba(8,165,183,.10)!important;
}

.hours-header{display:none!important}
.time-selector{
  display:flex!important;
  min-width:0;
  flex-direction:column;
  gap:.22rem!important;
  padding:.42rem .48rem .46rem;
  border:1px solid rgba(29,82,120,.18);
  border-radius:.9rem;
  background:linear-gradient(180deg,#fff,#f8fcfd);
  box-shadow:0 5px 14px rgba(5,63,96,.055);
}
.time-selector-label{
  display:block;
  color:#49677e!important;
  font-size:.62rem;
  line-height:1.1;
  font-weight:850!important;
  text-align:left!important;
}
.time-selector-inputs{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  align-items:center;
  gap:.12rem!important;
  width:100%;
}
.time-selector-inputs select{
  min-height:34px!important;
  padding:.22rem 1.18rem .22rem .28rem!important;
  border:0!important;
  border-radius:.5rem!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:.82rem!important;
  text-align:center;
}
.time-selector-colon{
  color:#547086!important;
  font-size:.88rem;
  font-weight:950!important;
  text-align:center!important;
}

@media(max-width:760px){
  .hours-day{grid-template-columns:54px minmax(0,1fr)!important;gap:.42rem!important;align-items:start}
  .hours-day>.time-selector{grid-column:2!important;width:100%}
  .time-selector{padding:.38rem .44rem .42rem}
  .time-selector-label{font-size:.66rem}
  .time-selector-inputs select{min-height:36px!important;font-size:.86rem!important}
  .date-picker-placeholder{font-size:.76rem}
}

/* ITBMO · v89 · CTA principal para continuar la planificación */
#start-planning:not(:disabled){
  isolation:isolate;
  width:min(100%,520px);
  min-height:60px;
  padding:.94rem 1.35rem!important;
  border:1px solid rgba(255,255,255,.58)!important;
  border-radius:18px!important;
  color:#fff!important;
  background:linear-gradient(135deg,#034fc5 0%,#087df0 48%,#00a9a5 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 17px 38px rgba(3,79,197,.28)!important;
  font-size:clamp(.98rem,1.5vw,1.1rem)!important;
  font-weight:950!important;
  letter-spacing:-.015em;
  line-height:1.15;
  text-align:center;
  text-shadow:0 1px 2px rgba(0,39,94,.22);
}
#start-planning:not(:disabled)::before{
  content:"✦";
  display:inline-block;
  margin-right:.5rem;
  color:#dffcff;
  font-size:1.05em;
  filter:drop-shadow(0 1px 2px rgba(0,48,91,.24));
}
#start-planning:not(:disabled):hover{
  transform:translateY(-3px) scale(1.01)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 22px 48px rgba(3,79,197,.36)!important;
  filter:saturate(1.08) brightness(1.04);
}
#start-planning:not(:disabled):active{
  transform:translateY(-1px) scale(.995)!important;
}
#start-planning:not(:disabled):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(8,125,240,.42),0 20px 44px rgba(3,79,197,.34)!important;
}

@media(max-width:760px){
  #start-planning:not(:disabled){
    width:100%;
    min-height:58px;
    padding:.9rem 1rem!important;
  }
}

/* ITBMO · v90 · Separación segura entre Planificación e Info Chat */
@media(min-width:769px){
  .itinerary-actions{
    width:calc(100% - 270px);
    padding-right:0!important;
  }
  #start-planning:not(:disabled){
    width:100%;
    max-width:520px;
  }
  .itinerary-head .info-chat-floating{
    width:236px;
    min-width:236px;
    max-width:236px;
  }
}

/* ITBMO · País → Destino autocomplete (surgical UX layer) */
.city-row input.country.is-valid-country{
  padding-right:2.2rem;
}
.city-row input.city:disabled{
  opacity:.68;
  cursor:not-allowed;
}
.city-row input.itbmo-field-error{
  outline:2px solid rgba(220,38,38,.22);
  border-color:#dc2626!important;
}


/* =========================================================
   ITBMO · País → Destino · autocomplete multiplataforma
   Sustituye el datalist nativo para una UX consistente en
   desktop, tablet y móvil. No modifica la lógica del Planner.
========================================================= */
.city-row .itbmo-autocomplete-field{
  position:relative;
  z-index:2;
}
.city-row .itbmo-autocomplete-field:focus-within{
  z-index:40;
}
.itbmo-autocomplete-menu{
  position:absolute;
  z-index:80;
  top:calc(100% + .38rem);
  left:0;
  width:max(100%,220px);
  max-width:min(340px,calc(100vw - 32px));
  max-height:260px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:.34rem;
  border:1px solid rgba(39,91,128,.16);
  border-radius:14px;
  background:#fff;
  box-shadow:0 16px 38px rgba(17,51,83,.18),0 3px 10px rgba(17,51,83,.08);
  -webkit-overflow-scrolling:touch;
}
.itbmo-autocomplete-menu[hidden]{display:none!important}
.itbmo-autocomplete-option{
  display:block;
  width:100%;
  min-height:42px;
  padding:.62rem .72rem;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#17324f;
  font:inherit;
  font-size:.86rem;
  font-weight:720;
  line-height:1.28;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}
.itbmo-autocomplete-option:hover,
.itbmo-autocomplete-option:focus-visible{
  outline:none;
  background:#edf8fb;
  color:#075f79;
}
.itbmo-autocomplete-empty{
  padding:.7rem .76rem;
  color:#60798d;
  font-size:.80rem;
  font-weight:650;
  line-height:1.4;
}
@media(max-width:760px){
  .itbmo-autocomplete-menu{
    width:100%;
    min-width:0;
    max-width:100%;
    max-height:min(240px,42vh);
  }
  .itbmo-autocomplete-option{
    min-height:46px;
    padding:.72rem .76rem;
    font-size:.9rem;
  }
}


/* =========================================================
   ITBMO · SAVE DESTINATIONS MICRO-TRANSITION
   Compact premium hourglass. No external assets.
========================================================= */
.itbmo-save-transition-overlay{
  position:fixed;
  inset:0;
  z-index:47000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  background:rgba(244,249,251,.54);
  backdrop-filter:blur(6px) saturate(110%);
  -webkit-backdrop-filter:blur(6px) saturate(110%);
  transition:opacity .18s ease,visibility .18s ease;
}
.itbmo-save-transition-overlay.active{
  opacity:1;
  visibility:visible;
  pointer-events:all;
}
.itbmo-save-transition-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(72vw,184px);
  min-height:116px;
  padding:16px 18px 15px;
  border:1px solid rgba(14,164,122,.14);
  border-radius:18px;
  background:rgba(255,255,255,.97);
  box-shadow:0 16px 42px rgba(16,24,40,.12),0 2px 8px rgba(16,24,40,.04);
  text-align:center;
}
.itbmo-hourglass-loader{
  display:grid;
  place-items:center;
  width:48px;
  height:58px;
  margin:0 auto 9px;
  animation:itbmoHourglassFlip 2.2s cubic-bezier(.65,0,.35,1) infinite;
  transform-origin:50% 50%;
  filter:drop-shadow(0 5px 7px rgba(16,24,40,.10));
}
.itbmo-hourglass{display:block;width:42px;height:auto;overflow:visible}
.itbmo-hourglass-frame{
  fill:none;
  stroke:#176d88;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.itbmo-hourglass-glass{
  fill:rgba(225,247,249,.58);
  stroke:rgba(23,109,136,.24);
  stroke-width:1;
}
.itbmo-hourglass-sand-top,
.itbmo-hourglass-sand-bottom,
.itbmo-hourglass-stream{fill:#0EA47A}
.itbmo-hourglass-sand-top{animation:itbmoSandTop 2.2s ease-in-out infinite;transform-origin:24px 17px}
.itbmo-hourglass-sand-bottom{animation:itbmoSandBottom 2.2s ease-in-out infinite;transform-origin:24px 46px}
.itbmo-hourglass-stream{animation:itbmoSandStream 2.2s ease-in-out infinite}
.itbmo-save-transition-title{
  color:#101828;
  font-size:.89rem;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-.015em;
}
.itbmo-save-transition-subtitle{display:none!important}
html.itbmo-save-transition-open,
html.itbmo-save-transition-open body{overflow:hidden!important}
@keyframes itbmoHourglassFlip{
  0%,82%{transform:rotate(0deg)}
  100%{transform:rotate(180deg)}
}
@keyframes itbmoSandTop{
  0%,8%{transform:scaleY(1);opacity:1}
  72%,100%{transform:scaleY(.12);opacity:.72}
}
@keyframes itbmoSandBottom{
  0%,8%{transform:scaleY(.18);opacity:.66}
  72%,100%{transform:scaleY(1);opacity:1}
}
@keyframes itbmoSandStream{
  0%,8%,76%,100%{opacity:0}
  14%,68%{opacity:1}
}
@media (max-width:760px){
  .itbmo-save-transition-card{width:min(70vw,174px);min-height:110px;padding:15px 16px 14px}
  .itbmo-hourglass-loader{width:45px;height:54px;margin-bottom:8px}
  .itbmo-hourglass{width:39px}
}
@media (prefers-reduced-motion:reduce){
  .itbmo-hourglass-loader,
  .itbmo-hourglass-sand-top,
  .itbmo-hourglass-sand-bottom,
  .itbmo-hourglass-stream{animation:none}
  .itbmo-save-transition-overlay{transition:none}
}


/* =========================================================
   ITBMO AUTH — hierarchy + guest account upgrade
   Surgical additions for Registered / Sign in / Guest flow.
========================================================= */
#account-login-toggle:not(:disabled){
  color:#075d7a!important;
  border:2px solid rgba(4,158,181,.40)!important;
  background:linear-gradient(135deg,#f0fdff 0%,#e6f9fb 100%)!important;
  box-shadow:0 9px 22px rgba(4,123,154,.12)!important;
}
#account-guest-toggle:not(:disabled){
  color:#334b92!important;
  border:2px solid rgba(83,101,206,.32)!important;
  background:linear-gradient(135deg,#f7f9ff 0%,#eef2ff 100%)!important;
  box-shadow:0 9px 22px rgba(62,77,160,.10)!important;
}
.account-authenticated{
  display:flex;
  flex-direction:column;
  gap:.8rem;
  align-items:stretch;
}
.account-authenticated-copy{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  width:100%;
}
.account-authenticated-text{
  flex:1 1 auto;
  min-width:0;
}
.account-authenticated-copy p{
  margin:.35rem 0 0;
}
.account-logout{
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:#6b7f90;
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  padding:.28rem .18rem;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:rgba(107,127,144,.35);
  text-underline-offset:3px;
}
.account-logout:hover{
  color:#36566b;
  text-decoration-color:currentColor;
}
.account-guest-upgrade{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  padding:.95rem 1rem;
  border:1px solid rgba(22,150,143,.15);
  border-radius:16px;
  background:rgba(255,255,255,.48);
}
.account-guest-upgrade-text{
  flex:1 1 auto;
  min-width:0;
}
.account-guest-upgrade-text strong{
  display:block;
  margin:0 0 .25rem;
  color:#102c47;
  font-size:.92rem;
}
.account-guest-upgrade p{
  margin:0;
  max-width:680px;
  font-size:.82rem;
  line-height:1.45;
}
#account-upgrade-toggle{
  flex:0 0 auto;
  white-space:nowrap;
  padding:.72rem 1.05rem;
}
.account-upgrade-email-hint{
  display:block;
  margin-top:.38rem;
  color:#667f92;
  font-size:.72rem;
  font-weight:600;
  line-height:1.35;
}
#account-email[readonly]{
  background:#f3f7fa;
  color:#4e6678;
  cursor:not-allowed;
}
@media(max-width:720px){
  .account-authenticated-copy{
    gap:.65rem;
  }
  .account-logout{
    font-size:.74rem;
  }
  .account-guest-upgrade{
    align-items:flex-start;
    flex-direction:column;
    gap:.7rem;
    padding:.85rem;
  }
  #account-upgrade-toggle{width:100%;}
}


/* =========================================================
   ITBMO · v79 · TRIP WORKSPACE PHASE 1
   Presentation-only evolution of the immersive itinerary.
   Keeps the generated itinerary state, APIs and exports intact.
   ========================================================= */
.itinerary-focus-shell{
  grid-template-rows:auto auto auto auto minmax(0,1fr);
  background:
    radial-gradient(980px 520px at -8% -4%,rgba(38,190,196,.10),transparent 68%),
    radial-gradient(980px 520px at 108% -4%,rgba(81,102,224,.08),transparent 68%),
    linear-gradient(180deg,#fbfdfe 0%,#f4f8fa 100%);
}

.itinerary-focus-cities{
  background:rgba(252,254,255,.92);
  border-bottom:0;
  padding:.72rem 1rem .48rem;
}

.itinerary-focus-city-btn{
  min-height:42px;
  padding:.42rem .72rem;
  box-shadow:none;
  border-color:rgba(27,66,94,.10);
}

.itinerary-focus-city-btn.active{
  color:#102f42;
  background:#fff;
  border-color:rgba(10,151,153,.30);
  box-shadow:0 5px 18px rgba(24,80,105,.08),inset 0 0 0 1px rgba(10,151,153,.08);
}

.itinerary-focus-city-btn.active span{
  color:#fff;
  background:linear-gradient(135deg,#0877f9,#0aa7a5);
}

.itinerary-focus-workspace-nav{
  display:flex;
  justify-content:center;
  gap:.28rem;
  width:max-content;
  max-width:calc(100% - 2rem);
  margin:.08rem auto .52rem;
  padding:.28rem;
  background:rgba(229,237,241,.82);
  border:1px solid rgba(31,73,101,.07);
  border-radius:999px;
  box-shadow:inset 0 1px 2px rgba(25,58,79,.035);
}

.itinerary-focus-mode-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  min-width:138px;
  min-height:39px;
  padding:.5rem .88rem;
  color:#647989;
  background:transparent;
  border:0;
  border-radius:999px;
  cursor:pointer;
  font-size:.7rem;
  font-weight:850;
  letter-spacing:-.01em;
  transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}

.itinerary-focus-mode-btn.active{
  color:#17384b;
  background:#fff;
  box-shadow:0 3px 11px rgba(20,58,82,.10),inset 0 1px 0 rgba(255,255,255,.9);
}

.itinerary-focus-mode-btn:hover{transform:translateY(-1px)}
.itinerary-focus-mode-icon{font-size:.78rem;color:#0b8993}

.itinerary-focus-days{
  display:flex;
  justify-content:center;
  gap:.42rem;
  width:100%;
  min-height:48px;
  padding:.2rem 1rem .62rem;
  overflow-x:auto;
  scrollbar-width:none;
}
.itinerary-focus-days::-webkit-scrollbar{display:none}
.itinerary-focus-days[hidden]{display:none!important}

.itinerary-focus-day-btn{
  flex:0 0 auto;
  min-width:76px;
  min-height:38px;
  padding:.45rem .72rem;
  color:#728493;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:.72rem .72rem .2rem .2rem;
  cursor:pointer;
  font-size:.68rem;
  font-weight:850;
  transition:color .18s ease,background .18s ease,border-color .18s ease;
}

.itinerary-focus-day-btn:hover{color:#28576d;background:rgba(255,255,255,.72)}
.itinerary-focus-day-btn.active{
  color:#087d91;
  background:#fff;
  border-bottom-color:#0aa7a5;
  box-shadow:0 5px 16px rgba(22,73,100,.06);
}

.itinerary-focus-stage{
  align-items:stretch;
  gap:1rem;
  padding:.55rem clamp(.9rem,3.1vw,2.4rem) 1.35rem;
}

.itinerary-focus-day-card{
  width:min(100%,1120px);
  border-radius:1.7rem;
  box-shadow:0 3px 9px rgba(5,31,61,.025),0 22px 60px rgba(18,55,90,.08);
}

.itinerary-focus-day-head{
  padding:1.05rem 1.35rem .92rem;
  background:#fff;
  border-bottom:1px solid rgba(35,75,112,.07);
}

.itinerary-focus-day-head h3{font-size:1.12rem;font-weight:900;letter-spacing:-.035em}
.itinerary-focus-day-count{
  color:#557183;
  background:#f4f8fa;
  border-color:rgba(35,75,112,.07);
  box-shadow:none;
}

.itinerary-focus-day-content{
  padding:1.2rem clamp(1rem,3vw,2rem) 1.45rem;
  background:linear-gradient(180deg,#fff 0%,#fcfefe 100%);
}

.itinerary-focus-timeline{
  width:min(100%,900px);
  margin:0 auto;
}

.itinerary-focus-activity{
  display:grid;
  grid-template-columns:74px 22px minmax(0,1fr);
  gap:.45rem;
  position:relative;
}

.itinerary-focus-activity-time{
  padding:.92rem .15rem 1.35rem 0;
  text-align:right;
}
.itinerary-focus-activity-time strong{
  display:block;
  color:#183d51;
  font-size:.77rem;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.02em;
}
.itinerary-focus-activity-time span{
  display:block;
  margin-top:.22rem;
  color:#9aabb6;
  font-size:.6rem;
  font-weight:750;
}

.itinerary-focus-activity-rail{
  position:relative;
  min-height:100%;
}
.itinerary-focus-activity-rail::before{
  content:"";
  position:absolute;
  top:1.42rem;
  bottom:-.02rem;
  left:50%;
  width:1px;
  background:linear-gradient(180deg,rgba(10,167,165,.32),rgba(94,124,145,.12));
}
.itinerary-focus-activity:last-child .itinerary-focus-activity-rail::before{display:none}
.itinerary-focus-activity-rail span{
  position:absolute;
  z-index:1;
  top:1.12rem;
  left:50%;
  width:11px;
  height:11px;
  transform:translateX(-50%);
  background:#fff;
  border:3px solid #0a9b9e;
  border-radius:999px;
  box-shadow:0 0 0 4px rgba(10,155,158,.08);
}

.itinerary-focus-activity-card{
  margin:0 0 .72rem;
  padding:.9rem 1rem .82rem;
  background:#fff;
  border:1px solid rgba(32,74,101,.085);
  border-radius:1.15rem;
  box-shadow:0 6px 22px rgba(20,55,78,.045);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.itinerary-focus-activity-card:hover{
  transform:translateY(-1px);
  border-color:rgba(10,151,153,.17);
  box-shadow:0 9px 28px rgba(20,55,78,.065);
}
.itinerary-focus-activity-main h4{
  margin:0;
  color:#18394c;
  font-size:.9rem;
  line-height:1.32;
  font-weight:900;
  letter-spacing:-.025em;
}
.itinerary-focus-activity-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.38rem;
  margin-top:.48rem;
}
.itinerary-focus-activity-meta span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:.28rem .48rem;
  color:#5f7888;
  background:#f3f8f9;
  border-radius:999px;
  font-size:.59rem;
  line-height:1.2;
  font-weight:750;
  white-space:pre-line;
}

.itinerary-focus-detail-toggle{
  display:inline-flex;
  align-items:center;
  gap:.34rem;
  margin-top:.62rem;
  padding:.28rem 0;
  color:#078695;
  background:transparent;
  border:0;
  cursor:pointer;
  font-size:.62rem;
  font-weight:850;
}
.itinerary-focus-detail-toggle i{font-style:normal;font-size:.78rem;font-weight:500}
.itinerary-focus-activity-details{
  margin-top:.58rem;
  padding:.72rem .8rem;
  background:#f8fbfc;
  border:1px solid rgba(35,75,112,.06);
  border-radius:.8rem;
}
.itinerary-focus-activity-details[hidden]{display:none!important}
.itinerary-focus-detail-row{
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  gap:.65rem;
  padding:.22rem 0;
}
.itinerary-focus-detail-row span,
.itinerary-focus-detail-note>span{
  color:#8a9ca8;
  font-size:.56rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.itinerary-focus-detail-row strong{
  color:#526c7b;
  font-size:.65rem;
  line-height:1.4;
  font-weight:750;
}
.itinerary-focus-detail-note{margin-top:.35rem;padding-top:.48rem;border-top:1px solid rgba(35,75,112,.06)}
.itinerary-focus-detail-note p{margin:.25rem 0 0;color:#526c7b;font-size:.67rem;line-height:1.55;font-weight:600}

.itinerary-focus-prepare-shell{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(100%,720px);
  min-height:320px;
  margin:0 auto;
  padding:2.4rem 1.4rem;
  text-align:center;
}
.itinerary-focus-prepare-mark{
  display:grid;
  width:52px;
  height:52px;
  place-items:center;
  margin-bottom:.9rem;
  color:#fff;
  background:linear-gradient(135deg,#0877f9,#0aa7a5);
  border-radius:1rem;
  box-shadow:0 12px 28px rgba(8,119,249,.16);
}
.itinerary-focus-prepare-city{color:#0a8491;font-size:.58rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.itinerary-focus-prepare-shell h4{margin:.38rem 0 .55rem;color:#17384b;font-size:1.35rem;line-height:1.1;font-weight:900;letter-spacing:-.045em}
.itinerary-focus-prepare-shell p{max-width:590px;margin:0;color:#667d8c;font-size:.74rem;line-height:1.65;font-weight:600}
.itinerary-focus-prepare-preview{display:flex;gap:.55rem;margin:1.2rem 0 .9rem}
.itinerary-focus-prepare-preview span{display:grid;width:40px;height:40px;place-items:center;background:#f1f7f8;border:1px solid rgba(35,75,112,.07);border-radius:.85rem;font-size:.92rem}
.itinerary-focus-prepare-shell small{color:#8a9ba6;font-size:.59rem;font-weight:650}

@media(max-width:760px){
  .itinerary-focus-shell{grid-template-rows:auto auto auto auto minmax(0,1fr)}
  .itinerary-focus-workspace-nav{margin-bottom:.35rem}
  .itinerary-focus-mode-btn{min-width:118px;min-height:37px;padding:.45rem .65rem;font-size:.65rem}
  .itinerary-focus-days{justify-content:flex-start;padding:.15rem .68rem .5rem}
  .itinerary-focus-day-btn{min-width:68px;min-height:36px;padding:.42rem .58rem;font-size:.63rem}
  .itinerary-focus-stage{padding:.42rem .56rem .7rem}
  .itinerary-focus-day-card{border-radius:1.25rem}
  .itinerary-focus-day-head{padding:.78rem .9rem .7rem}
  .itinerary-focus-day-content{padding:.82rem .68rem 1rem}
  .itinerary-focus-activity{grid-template-columns:55px 17px minmax(0,1fr);gap:.28rem}
  .itinerary-focus-activity-time{padding:.8rem .08rem 1.15rem 0}
  .itinerary-focus-activity-time strong{font-size:.68rem}
  .itinerary-focus-activity-time span{font-size:.54rem}
  .itinerary-focus-activity-rail span{top:1rem;width:9px;height:9px;border-width:2px}
  .itinerary-focus-activity-rail::before{top:1.25rem}
  .itinerary-focus-activity-card{padding:.78rem .82rem .72rem;border-radius:1rem}
  .itinerary-focus-activity-main h4{font-size:.79rem}
  .itinerary-focus-activity-meta span{font-size:.54rem}
  .itinerary-focus-detail-row{grid-template-columns:70px minmax(0,1fr)}
  .itinerary-focus-nav{top:54%;width:38px;height:38px}
  .itinerary-focus-nav--prev{left:.15rem}
  .itinerary-focus-nav--next{right:.15rem}
  .itinerary-focus-dots{padding:.5rem .6rem .58rem}
  .itinerary-focus-prepare-shell{min-height:260px;padding:1.5rem .9rem}
  .itinerary-focus-prepare-shell h4{font-size:1.15rem}
}

@media(max-width:430px){
  .itinerary-focus-mode-icon{display:none}
  .itinerary-focus-mode-btn{min-width:112px}
  .itinerary-focus-activity{grid-template-columns:48px 15px minmax(0,1fr)}
  .itinerary-focus-activity-card{padding:.72rem .72rem .68rem}
  .itinerary-focus-detail-row{grid-template-columns:1fr;gap:.12rem}
}


/* =========================================================
   ITBMO · TRIP WORKSPACE PHASE 2 · PREMIUM TWO-LEVEL UX
========================================================= */
.itinerary-focus-shell{grid-template-rows:auto minmax(0,1fr)}
.itinerary-workspace-overview{min-height:0;overflow:auto;padding:clamp(1.2rem,3vw,2.5rem) clamp(1rem,5vw,5rem) 3rem;scrollbar-width:thin}
.itinerary-workspace-hero{max-width:980px;margin:0 auto 1.8rem;text-align:center}
.itinerary-workspace-kicker{display:inline-flex;padding:.38rem .7rem;border:1px solid rgba(8,145,164,.15);border-radius:999px;background:rgba(255,255,255,.72);color:#07899b;font-size:.62rem;font-weight:950;letter-spacing:.12em}
.itinerary-workspace-hero h3{margin:.6rem 0 .35rem;font-size:clamp(2rem,4vw,3.6rem);line-height:.98;letter-spacing:-.06em;color:#092b49;font-weight:950}
.itinerary-workspace-hero p{max-width:720px;margin:0 auto;color:#60798c;font-size:clamp(.84rem,1.3vw,1rem);font-weight:650;line-height:1.55}
.itinerary-workspace-summary{display:inline-flex;margin-top:.85rem;padding:.46rem .75rem;border-radius:999px;background:#eaf8fa;color:#177489;font-size:.68rem;font-weight:900}
.itinerary-workspace-city-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:1rem;max-width:1240px;margin:0 auto}
.itinerary-workspace-city-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr auto;gap:.65rem 1rem;min-height:210px;padding:1.35rem;text-align:left;overflow:hidden;border:1px solid rgba(26,81,111,.10);border-radius:1.7rem;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,252,253,.96));box-shadow:0 18px 50px rgba(22,61,88,.09);cursor:pointer;transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s ease}
.itinerary-workspace-city-card:before{content:"";position:absolute;width:180px;height:180px;right:-70px;top:-80px;border-radius:50%;background:radial-gradient(circle,rgba(8,166,167,.16),transparent 68%);pointer-events:none}
.itinerary-workspace-city-card:hover{transform:translateY(-7px);border-color:rgba(8,154,169,.24);box-shadow:0 26px 70px rgba(17,74,105,.15)}
.itinerary-workspace-city-card__number{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:linear-gradient(135deg,#0877f9,#08aaa4);color:#fff;font-size:.7rem;font-weight:950;box-shadow:0 10px 24px rgba(8,135,188,.20)}
.itinerary-workspace-city-card__body{align-self:center;min-width:0}.itinerary-workspace-city-card__body small{display:block;color:#7890a0;font-size:.65rem;font-weight:800}.itinerary-workspace-city-card__body strong{display:block;margin:.18rem 0;font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1;color:#092b49;font-weight:950;letter-spacing:-.05em}.itinerary-workspace-city-card__body span{color:#4e7186;font-size:.72rem;font-weight:750}
.itinerary-workspace-city-card__cta{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:.8rem;border-top:1px solid rgba(35,75,112,.08);color:#087e94;font-size:.76rem;font-weight:950}.itinerary-workspace-city-card__cta i{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#e7f8f8;font-style:normal;font-size:1rem;transition:transform .25s ease}.itinerary-workspace-city-card:hover .itinerary-workspace-city-card__cta i{transform:translateX(4px)}
.itinerary-workspace-trip-tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;max-width:1240px;margin:1rem auto 0;padding:1rem 1.2rem;border:1px solid rgba(35,75,112,.09);border-radius:1.35rem;background:rgba(255,255,255,.68);box-shadow:0 12px 34px rgba(20,62,91,.05)}
.itinerary-workspace-trip-tools__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:#eaf9fa;color:#078a9b;font-size:1.1rem}.itinerary-workspace-trip-tools small,.itinerary-workspace-trip-tools span:first-child{color:#138094;font-size:.56rem;font-weight:950;letter-spacing:.1em}.itinerary-workspace-trip-tools h4{margin:.08rem 0;color:#163b55;font-size:.88rem}.itinerary-workspace-trip-tools p{margin:0;color:#718696;font-size:.68rem}.itinerary-workspace-coming{padding:.38rem .58rem;border-radius:999px;background:#f0f6f8;color:#718696;font-size:.58rem;font-weight:850}
.itinerary-city-focus{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0;overflow:hidden}
.itinerary-city-focus-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.65rem clamp(1rem,3vw,2rem);border-bottom:1px solid rgba(35,75,112,.07);background:rgba(249,253,254,.86)}
.itinerary-city-focus-back{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border:1px solid rgba(35,75,112,.11);border-radius:999px;background:#fff;color:#31576f;font-size:.68rem;font-weight:900;cursor:pointer;box-shadow:0 6px 16px rgba(15,55,86,.05)}
.itinerary-city-focus-identity{text-align:center}.itinerary-city-focus-identity span{display:block;color:#1590a0;font-size:.54rem;font-weight:950;letter-spacing:.12em}.itinerary-city-focus-identity strong{display:block;margin-top:.05rem;color:#0b2d49;font-size:clamp(1.2rem,2.3vw,1.75rem);line-height:1;font-weight:950;letter-spacing:-.045em}.itinerary-city-focus-spacer{width:94px}
.itinerary-city-focus-controls{display:flex;align-items:center;justify-content:center;gap:1rem;min-height:68px;padding:.55rem 1rem;border-bottom:1px solid rgba(35,75,112,.07);background:rgba(246,251,252,.92)}
.itinerary-focus-workspace-nav{margin:0!important;flex:0 0 auto}.itinerary-focus-days{margin:0!important;padding:0!important;border:0!important;background:transparent!important;justify-content:flex-start!important;max-width:min(720px,55vw)}
.itinerary-city-focus-canvas{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;min-height:0;padding:.8rem clamp(.75rem,2vw,1.4rem) 1rem;overflow:hidden}
.itinerary-city-focus-canvas .itinerary-focus-day-card{width:min(100%,1560px);border-radius:1.35rem}.itinerary-city-focus-canvas .itinerary-focus-day-content{padding:1rem clamp(1rem,2.5vw,2rem)}
.itinerary-focus-timeline{max-width:1180px;margin:0 auto}.itinerary-focus-activity{grid-template-columns:78px 24px minmax(0,1fr)!important}.itinerary-focus-activity__card{padding:1rem 1.15rem!important;border-radius:1.15rem!important}.itinerary-focus-activity__card h4{font-size:clamp(.9rem,1.4vw,1.05rem)!important}
.itinerary-focus-prepare-shell{max-width:900px!important;margin:2rem auto!important}.itinerary-focus-prepare-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;width:100%;margin:1.2rem 0}.itinerary-focus-prepare-categories span{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .5rem;border:1px solid rgba(35,75,112,.09);border-radius:1rem;background:#f8fcfd;color:#31576f;font-size:1.15rem}.itinerary-focus-prepare-categories b{font-size:.65rem}
@media(max-width:760px){.itinerary-focus-header{grid-template-columns:auto 1fr auto;padding:.65rem}.itinerary-focus-heading p{display:none}.itinerary-focus-heading h2{font-size:1.05rem}.itinerary-focus-back span:last-child{display:none}.itinerary-focus-back{width:40px;height:40px;justify-content:center;padding:0}.itinerary-workspace-overview{padding:1rem .8rem 2rem}.itinerary-workspace-hero{margin-bottom:1rem}.itinerary-workspace-hero h3{font-size:2rem}.itinerary-workspace-city-grid{grid-template-columns:1fr}.itinerary-workspace-city-card{min-height:170px;padding:1rem;border-radius:1.35rem}.itinerary-workspace-trip-tools{grid-template-columns:auto 1fr}.itinerary-workspace-coming{display:none}.itinerary-city-focus-topbar{padding:.55rem .7rem}.itinerary-city-focus-spacer{width:40px}.itinerary-city-focus-back span:last-child{display:none}.itinerary-city-focus-back{width:40px;height:40px;justify-content:center;padding:0}.itinerary-city-focus-controls{display:grid;gap:.45rem;min-height:auto;padding:.5rem .65rem}.itinerary-focus-workspace-nav{justify-self:center}.itinerary-focus-days{max-width:100%;width:100%}.itinerary-city-focus-canvas{grid-template-columns:1fr;padding:.55rem}.itinerary-city-focus-canvas .itinerary-focus-nav{position:absolute;z-index:8;bottom:.9rem;width:42px;height:42px;font-size:1.5rem}.itinerary-city-focus-canvas .itinerary-focus-nav--prev{left:1rem}.itinerary-city-focus-canvas .itinerary-focus-nav--next{right:1rem}.itinerary-city-focus-canvas .itinerary-focus-day-card{border-radius:1rem}.itinerary-focus-activity{grid-template-columns:58px 18px minmax(0,1fr)!important}.itinerary-focus-prepare-categories{grid-template-columns:repeat(2,1fr)}}
/* =========================================================
   ITBMO · PLANNER PHASE 4 · STANDALONE PREMIUM
   Visual-only architecture. Existing functional selectors remain intact.
========================================================= */
:root{
  --itbmo-ink:#101828;
  --itbmo-muted:#667085;
  --itbmo-brand:#0B8FB9;
  --itbmo-brand-deep:#086987;
  --itbmo-mint:#e3f5f9;
  --itbmo-surface:#f5fafc;
  --itbmo-line:rgba(16,24,40,.09);
  --itbmo-shadow:0 24px 80px rgba(16,24,40,.10);
}

html,body{min-height:100%;background:#f5fafc;}
body{
  margin:0;
  color:var(--itbmo-ink);
  background:
    radial-gradient(circle at 8% 5%,rgba(10,146,223,.12),transparent 27rem),
    radial-gradient(circle at 94% 20%,rgba(10,166,181,.11),transparent 31rem),
    linear-gradient(180deg,#fbfdff 0%,#f4f9fc 48%,#f8fbfd 100%);
}

.topbar{
  position:sticky;
  top:0;
  z-index:120;
  min-height:72px;
  padding:0 3.5vw;
  border-bottom:1px solid rgba(16,24,40,.07);
  background:rgba(251,253,252,.84);
  backdrop-filter:blur(22px) saturate(145%);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  box-shadow:none;
}
.planner-home-link{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-width:84px;
  color:#475467;
  text-decoration:none;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.01em;
}
.planner-home-link:hover{color:var(--itbmo-brand-deep);}
.topbar .brand-logo{margin-left:auto;margin-right:auto;}
.planner-my-trips{
  border:1px solid rgba(14,164,122,.20);
  background:rgba(255,255,255,.78);
  color:#08785c;
  border-radius:999px;
  padding:.62rem .9rem;
  font:inherit;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
}
.planner-language-capability{margin-left:.4rem;}

#planner-grid{
  width:min(1540px,94vw);
  margin:0 auto;
  padding:38px 0 72px;
  gap:32px;
  align-items:start;
  grid-template-columns:minmax(390px,460px) minmax(0,1fr);
}
.sidebar{
  position:relative;
  top:auto;
  height:auto;
  max-height:none;
  overflow:visible;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.sidebar>h2{display:none;}
.planner-builder-intro{
  position:relative;
  overflow:hidden;
  padding:28px 30px 26px;
  margin-bottom:18px;
  border-radius:30px;
  color:#fff;
  background:
    radial-gradient(circle at 88% 10%,rgba(255,255,255,.19),transparent 10rem),
    linear-gradient(145deg,#08785c 0%,#0ea47a 58%,#35bd93 100%);
  box-shadow:0 24px 60px rgba(8,120,92,.19);
}
.planner-builder-intro::after{
  content:"";
  position:absolute;
  width:170px;height:170px;
  right:-70px;bottom:-105px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(255,255,255,.05),0 0 0 58px rgba(255,255,255,.035);
}
.planner-builder-intro__eyebrow{
  display:block;
  margin-bottom:12px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.18em;
  opacity:.78;
}
.planner-builder-intro h1{
  margin:0;
  max-width:360px;
  font-size:clamp(1.7rem,2.3vw,2.35rem);
  line-height:1.02;
  letter-spacing:-.045em;
}
.planner-builder-intro p{
  margin:14px 0 20px;
  max-width:380px;
  font-size:.91rem;
  line-height:1.55;
  color:rgba(255,255,255,.84);
}
.planner-progress-rail{display:flex;gap:7px;width:150px;}
.planner-progress-rail span{height:4px;flex:1;border-radius:999px;background:rgba(255,255,255,.25);}
.planner-progress-rail span.is-active{background:#fff;}

.sidebar>.box,
.sidebar>#save-destinations,
.sidebar>#reset-planner{
  margin-left:4px;
  margin-right:4px;
}
.sidebar>.box{
  border:1px solid rgba(16,24,40,.075);
  border-radius:24px;
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 34px rgba(16,24,40,.055);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.sidebar>.box:hover{
  border-color:rgba(14,164,122,.17);
  box-shadow:0 16px 40px rgba(16,24,40,.075);
}
#account-box{border-radius:26px;}
#destinations-box{position:relative;overflow:hidden;}
#destinations-box::before{
  content:"";
  position:absolute;left:0;top:20px;bottom:20px;width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,#0ea47a,rgba(14,164,122,.08));
}
#add-city-btn{
  border-style:dashed!important;
  border-color:rgba(14,164,122,.34)!important;
  color:#08785c!important;
  background:#f1fbf7!important;
}
#save-destinations{
  min-height:52px;
  border-radius:17px!important;
  box-shadow:0 12px 28px rgba(14,164,122,.16);
}
#reset-planner{
  border-radius:17px!important;
  background:transparent!important;
  border-color:rgba(16,24,40,.09)!important;
  color:#667085!important;
}

.main{
  min-width:0;
  padding:0;
  background:transparent;
}
.planner-canvas-intro{
  position:relative;
  min-height:300px;
  overflow:hidden;
  padding:54px clamp(32px,5vw,72px);
  margin-bottom:20px;
  border:1px solid rgba(14,164,122,.11);
  border-radius:36px;
  background:
    radial-gradient(circle at 78% 42%,rgba(14,164,122,.13),transparent 17rem),
    radial-gradient(circle at 100% 0%,rgba(135,229,201,.22),transparent 22rem),
    rgba(255,255,255,.79);
  box-shadow:0 24px 70px rgba(16,24,40,.075);
}
.planner-canvas-intro__eyebrow{
  display:block;
  margin-bottom:16px;
  color:#0b8664;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.17em;
}
.planner-canvas-intro h2{
  position:relative;z-index:2;
  margin:0;
  max-width:650px;
  font-size:clamp(2.6rem,5.2vw,5.4rem);
  line-height:.91;
  letter-spacing:-.065em;
  color:#101828;
}
.planner-canvas-intro h2 span{color:#0ea47a;}
.planner-canvas-intro p{
  position:relative;z-index:2;
  max-width:520px;
  margin:24px 0 0;
  color:#667085;
  font-size:1.02rem;
  line-height:1.6;
}
.planner-canvas-orbit{
  position:absolute;
  right:5%;
  top:50%;
  width:230px;height:230px;
  transform:translateY(-50%);
  opacity:.95;
}
.planner-canvas-orbit__ring{
  position:absolute;inset:16px;
  border:1px solid rgba(14,164,122,.18);
  border-radius:50%;
  box-shadow:0 0 0 35px rgba(14,164,122,.035),0 0 0 70px rgba(14,164,122,.025);
}
.planner-canvas-orbit__core{
  position:absolute;left:50%;top:50%;
  display:grid;place-items:center;
  width:64px;height:64px;
  transform:translate(-50%,-50%);
  border-radius:22px;
  color:#fff;
  font-size:1.55rem;
  background:linear-gradient(145deg,#08785c,#0ea47a);
  box-shadow:0 18px 45px rgba(14,164,122,.28);
}
.planner-canvas-orbit__dot{
  position:absolute;width:10px;height:10px;border-radius:50%;background:#0ea47a;
  box-shadow:0 0 0 7px rgba(14,164,122,.10);
}
.planner-canvas-orbit__dot--1{left:26px;top:90px;}
.planner-canvas-orbit__dot--2{right:32px;top:46px;}
.planner-canvas-orbit__dot--3{right:54px;bottom:32px;}

.itinerary-section{
  border:1px solid rgba(16,24,40,.075)!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 20px 60px rgba(16,24,40,.065)!important;
  padding:clamp(24px,3vw,42px)!important;
}
.itinerary-head{
  padding-bottom:18px;
  border-bottom:1px solid rgba(16,24,40,.07);
}
.itinerary-head h2{font-size:1.65rem;letter-spacing:-.035em;}
#start-planning{min-height:50px;border-radius:16px;}
#chat-container{border-radius:24px!important;overflow:hidden;}
.itinerary-focus-cta{border-radius:24px!important;}

.journey-home{
  position:relative;
  min-height:calc(100vh - 72px);
  overflow:hidden;
  padding:clamp(44px,7vw,96px) 4vw 90px;
}
.journey-home[hidden]{display:none!important;}
.journey-home__aurora{
  position:absolute;border-radius:50%;filter:blur(12px);pointer-events:none;
}
.journey-home__aurora--one{
  width:620px;height:620px;left:-250px;top:-220px;
  background:radial-gradient(circle,rgba(10,146,223,.17),rgba(10,146,223,0) 68%);
}
.journey-home__aurora--two{
  width:720px;height:720px;right:-280px;top:80px;
  background:radial-gradient(circle,rgba(10,166,181,.14),rgba(10,166,181,0) 68%);
}
.journey-home__shell{position:relative;z-index:2;width:min(1280px,92vw);margin:0 auto;}
.journey-home__intro{max-width:830px;margin-bottom:42px;}
.journey-home__eyebrow,
.journey-history__eyebrow{
  display:block;margin-bottom:14px;color:#087e9d;font-size:.72rem;font-weight:900;letter-spacing:.18em;
}
.journey-home__intro h1{
  margin:0;
  font-size:clamp(3rem,6.5vw,6.5rem);
  line-height:.91;
  letter-spacing:-.07em;
}
.journey-home__intro p{
  max-width:690px;margin:24px 0 0;color:#667085;font-size:1.05rem;line-height:1.65;
}
.journey-home__primary-grid{
  display:grid;grid-template-columns:1.18fr .82fr;gap:20px;
}
.journey-home-card{
  position:relative;
  min-height:310px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  padding:34px;
  border-radius:32px;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.journey-home-card:hover{transform:translateY(-4px);}
.journey-home-card--resume{
  color:#fff;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 88% 8%,rgba(255,255,255,.17),transparent 13rem),
    linear-gradient(145deg,#075b86 0%,#087da5 50%,#0ba3b5 100%);
  box-shadow:0 28px 75px rgba(7,100,142,.24);
}
.journey-home-card--new{
  color:#101828;
  border:1px solid rgba(16,24,40,.08);
  background:rgba(255,255,255,.84);
  box-shadow:0 22px 65px rgba(16,24,40,.08);
}
.journey-home-card__glow{
  position:absolute;width:320px;height:320px;right:-120px;bottom:-170px;
  border:1px solid rgba(255,255,255,.20);border-radius:50%;
  box-shadow:0 0 0 45px rgba(255,255,255,.045),0 0 0 90px rgba(255,255,255,.025);
}
.journey-home-card__icon{
  display:grid;place-items:center;width:50px;height:50px;margin-bottom:auto;border-radius:17px;
  font-size:1.15rem;font-weight:900;
}
.journey-home-card--resume .journey-home-card__icon{background:rgba(255,255,255,.14);}
.journey-home-card--new .journey-home-card__icon{background:#e6f6fb;color:#08718f;}
.journey-home-card__kicker{margin-top:30px;font-size:.67rem;font-weight:900;letter-spacing:.16em;opacity:.72;}
.journey-home-card strong{
  display:block;margin-top:9px;max-width:520px;font-size:clamp(1.65rem,3vw,2.75rem);line-height:1.02;letter-spacing:-.045em;
}
.journey-home-card__meta{display:block;margin-top:12px;max-width:520px;font-size:.9rem;line-height:1.5;opacity:.75;}
.journey-home-card__action{display:block;margin-top:25px;font-size:.82rem;font-weight:900;}
.journey-home-card__action i{font-style:normal;margin-left:.35rem;}

.journey-history{margin-top:58px;}
.journey-history__head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;}
.journey-history__head h2{margin:0;font-size:2rem;letter-spacing:-.045em;}
.journey-history__count{color:#667085;font-size:.82rem;font-weight:700;}
.journey-history__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.journey-trip-card{
  position:relative;
  min-height:190px;
  padding:24px;
  border:1px solid rgba(16,24,40,.075);
  border-radius:25px;
  background:rgba(255,255,255,.78);
  box-shadow:0 12px 38px rgba(16,24,40,.055);
  cursor:pointer;
  text-align:left;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.journey-trip-card:hover{
  transform:translateY(-3px);
  border-color:rgba(10,146,223,.24);
  box-shadow:0 18px 45px rgba(16,24,40,.085);
}
.journey-trip-card__number{display:block;color:#98a2b3;font-size:.68rem;font-weight:900;letter-spacing:.12em;}
.journey-trip-card strong{display:block;margin-top:22px;font-size:1.3rem;line-height:1.08;letter-spacing:-.035em;}
.journey-trip-card small{display:block;margin-top:8px;color:#667085;line-height:1.45;}
.journey-trip-card__open{display:block;margin-top:24px;color:#087b9a;font-size:.78rem;font-weight:900;}

body.journey-home-open #planner-grid{display:none!important;}
body.journey-home-open .astra-guide-replay{display:none!important;}

@media (max-width:1120px){
  #planner-grid{grid-template-columns:380px minmax(0,1fr);width:min(96vw,1400px);gap:22px;}
  .planner-canvas-orbit{opacity:.45;right:-3%;}
  .journey-history__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:860px){
  .topbar{padding:0 18px;}
  .planner-home-link__label{display:none;}
  .planner-my-trips span:last-child{display:none;}
  #planner-grid{display:block;width:min(94vw,720px);padding-top:20px;}
  .sidebar{width:auto!important;max-width:none!important;}
  .main{margin-top:22px;}
  .planner-canvas-intro{min-height:250px;padding:38px 28px;}
  .planner-canvas-orbit{right:-80px;opacity:.28;}
  .journey-home{padding:46px 20px 70px;}
  .journey-home__shell{width:100%;}
  .journey-home__primary-grid{grid-template-columns:1fr;}
  .journey-home-card{min-height:260px;}
}
@media (max-width:620px){
  .topbar .brand-logo{margin-left:10px;margin-right:auto;}
  .planner-language-help-label{display:none;}
  .planner-builder-intro{border-radius:25px;padding:25px 24px;}
  .sidebar>.box{border-radius:21px;}
  .planner-canvas-intro{border-radius:26px;}
  .planner-canvas-intro h2{font-size:2.65rem;}
  .itinerary-section{border-radius:24px!important;padding:20px!important;}
  .journey-home__intro h1{font-size:3.25rem;}
  .journey-home__primary-grid{gap:14px;}
  .journey-home-card{min-height:245px;padding:26px;border-radius:26px;}
  .journey-history__grid{grid-template-columns:1fr;}
}
/* =========================================================
   ITBMO · PHASE 4.2 · TRAVEL BUILDER WORKSPACE
   Full-page sequential planning experience.
   Existing functional IDs and generation/export contracts are preserved.
========================================================= */

body {
  background:
    radial-gradient(circle at 8% 2%, rgba(14,164,122,.09), transparent 31rem),
    radial-gradient(circle at 96% 18%, rgba(28,166,208,.08), transparent 34rem),
    linear-gradient(180deg,#fbfdfc 0%,#f6faf8 52%,#f8fafc 100%);
}

.planner-experience-hero {
  width: min(1320px, 92vw);
  margin: 34px auto 0;
}

.planner-experience-hero .planner-canvas-intro {
  min-height: 360px;
  margin: 0;
  padding: clamp(50px,6vw,82px);
  border-radius: 40px;
  box-shadow: 0 30px 90px rgba(16,24,40,.08);
}

#planner-grid {
  display: block !important;
  width: min(1320px,92vw) !important;
  margin: 0 auto !important;
  padding: 22px 0 84px !important;
}

.sidebar.planner-builder-workspace {
  display: flex !important;
  flex-direction: column;
  width: 100% !important;
  max-width: none !important;
  gap: 22px;
  padding: 0 !important;
  overflow: visible !important;
}

.planner-stage-nav {
  position: sticky;
  top: 82px;
  z-index: 70;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: fit-content;
  max-width: calc(100vw - 40px);
  margin: 0 auto 4px;
  padding: 10px 14px;
  border: 1px solid rgba(16,24,40,.08);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 38px rgba(16,24,40,.07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.planner-stage-nav__item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #667085;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}

.planner-stage-nav__item b {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 9px;
  color: #08785c;
  background: #eaf8f3;
  font-size: .68rem;
}

.planner-stage-nav__item.is-active { color: #101828; }
.planner-stage-nav__item.is-active b {
  color: #fff;
  background: linear-gradient(145deg,#08785c,#0ea47a);
  box-shadow: 0 7px 18px rgba(14,164,122,.20);
}
.planner-stage-nav__line {
  width: 30px;
  height: 1px;
  background: linear-gradient(90deg,rgba(14,164,122,.25),rgba(16,24,40,.09));
}

.planner-builder-intro--compact {
  display: flex !important;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  min-height: 0 !important;
  margin: 8px 0 0 !important;
  padding: 30px 34px !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 94% 10%,rgba(255,255,255,.15),transparent 14rem),
    linear-gradient(145deg,#075e49 0%,#0b8664 48%,#12aa80 100%) !important;
}
.planner-builder-intro--compact h1 {
  font-size: clamp(1.75rem,3vw,2.7rem) !important;
  max-width: 620px !important;
}
.planner-builder-intro--compact p {
  max-width: 510px !important;
  margin: 0 !important;
  text-align: right;
}

.planner-stage-card,
.sidebar > .box {
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: clamp(28px,3vw,42px) !important;
  border: 1px solid rgba(16,24,40,.075) !important;
  border-radius: 32px !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 20px 60px rgba(16,24,40,.065) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.planner-stage-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 32px 0 0 32px;
  background: linear-gradient(180deg,#0ea47a,rgba(14,164,122,.05));
}

.planner-stage-card__number {
  position: absolute;
  top: 24px;
  right: 28px;
  color: rgba(14,164,122,.13);
  font-size: 3.8rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.08em;
  pointer-events: none;
}

.planner-stage-card__head {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 28px;
}

.planner-stage-card__index {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 17px;
  color: #ffffff;
  background: linear-gradient(145deg,#08785c,#0ea47a);
  box-shadow: 0 10px 24px rgba(8,120,92,.18);
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
}

.planner-stage-card__eyebrow {
  display: block;
  margin-bottom: 6px;
  color: #08785c;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .17em;
}

.planner-stage-card__head h3,
.planner-stage-card__head h2 {
  margin: 0;
  color: #101828;
  font-size: clamp(1.55rem,2.4vw,2.25rem);
  line-height: 1.05;
  letter-spacing: -.045em;
}

.planner-stage-card__head p {
  max-width: 780px;
  margin: 10px 0 0;
  color: #667085;
  font-size: .96rem;
  line-height: 1.6;
}

.planner-inline-guide {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 24px;
  padding: 16px 18px;
  border: 1px solid rgba(14,164,122,.14);
  border-radius: 18px;
  background: linear-gradient(135deg,rgba(232,248,242,.80),rgba(248,252,250,.90));
}
.planner-inline-guide__icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg,#08785c,#0ea47a);
}
.planner-inline-guide strong { display:block; color:#101828; font-size:.88rem; }
.planner-inline-guide p { margin:4px 0 0; color:#667085; font-size:.82rem; line-height:1.5; }

.planner-route-tip {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: -6px 0 24px;
  padding: 15px 17px;
  border-radius: 17px;
  color: #475467;
  background: #f8fbfa;
  border: 1px solid rgba(16,24,40,.06);
}
.planner-route-tip > span {
  color:#0ea47a;
  font-size:1rem;
  margin-top:1px;
}
.planner-route-tip p {
  margin:0;
  font-size:.82rem;
  line-height:1.55;
}

#account-box { order: 0; }
#destinations-box { order: 1; }
#travelers-box { order: 2; }
.planner-stage-transition--save { order: 3; }
#preferences-stage { order: 4; }
#reset-planner { order: 5; }

.account-head {
  align-items: center !important;
  padding-right: 78px;
}
#account-authenticated .account-authenticated-copy {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
#account-authenticated .account-authenticated-text p {
  margin-bottom: 0;
}
.account-form-grid {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 16px !important;
}
#account-guest,
#account-authenticated {
  max-width: 1000px;
}

#destinations-box {
  overflow: visible !important;
}
#destinations-box::before { display:none !important; }

#city-list {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: start;
  gap: 18px !important;
  width: 100%;
}

.city-row {
  position: relative;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  align-items: start !important;
  min-width: 0;
  margin: 0 !important;
  padding: 22px !important;
  border: 1px solid rgba(16,24,40,.075) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 100% 0%,rgba(14,164,122,.08),transparent 11rem),
    linear-gradient(180deg,#ffffff 0%,#fbfdfc 100%) !important;
  box-shadow: 0 14px 36px rgba(16,24,40,.055);
}

.city-row::before {
  content: "DESTINO";
  grid-column: 1 / -1;
  width: fit-content;
  color: #0b8664;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .17em;
}

.city-row > label {
  min-width: 0;
  margin: 0 !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  color: #475467 !important;
}

.city-row input,
.city-row select,
.city-row .date-picker-shell {
  min-height: 46px;
  border-radius: 13px !important;
}

.city-row .itbmo-autocomplete-field,
.city-row .date-label {
  width: 100%;
}

.city-row .remove {
  position: absolute !important;
  top: 17px !important;
  right: 17px !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 10px !important;
  opacity: .72;
}

.city-row .hours-block {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 3px;
  padding-top: 16px;
  border-top: 1px solid rgba(16,24,40,.07);
}

.city-row .time-hint {
  margin: 0 0 12px !important;
  color: #667085 !important;
  font-size: .76rem !important;
  line-height: 1.5 !important;
}

.city-row .same-schedule-toggle {
  width: fit-content;
  margin: 0 0 14px !important;
  padding: 8px 11px !important;
  border-radius: 999px !important;
  background: #f1faf7 !important;
}

.city-row .hours-header {
  grid-template-columns: 42px minmax(0,1fr) minmax(0,1fr) !important;
  gap: 8px !important;
}
.city-row .hours-day {
  grid-template-columns: 42px minmax(0,1fr) minmax(0,1fr) !important;
  gap: 8px !important;
}
.city-row .time-selector {
  min-width: 0;
}
.city-row .time-selector-inputs {
  min-width: 0;
}
.city-row .time-hour,
.city-row .time-minute {
  min-width: 0 !important;
  padding-left: 7px !important;
  padding-right: 7px !important;
}

#destinations-box .row-actions {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}
#add-city-btn {
  min-width: 220px;
  min-height: 50px;
  border-radius: 16px !important;
  font-weight: 850 !important;
}

#travelers-box > label {
  max-width: 620px;
  font-size: .83rem !important;
}
#traveler-mode {
  min-height: 52px;
  margin-top: 7px;
  border-radius: 15px !important;
}
#traveler-group-panel > .box {
  padding: 22px !important;
  border-radius: 22px !important;
  background: #fbfdfc !important;
}
#traveler-profiles {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 14px !important;
}
.traveler-profile {
  border-radius: 18px !important;
  background: #fff !important;
}

.planner-stage-transition {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 24px 28px;
  border: 1px solid rgba(14,164,122,.13);
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 0%,rgba(14,164,122,.09),transparent 14rem),
    rgba(255,255,255,.82);
  box-shadow: 0 14px 38px rgba(16,24,40,.05);
}
.planner-stage-transition > div > span {
  display:block;
  margin-bottom:5px;
  color:#0b8664;
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.15em;
}
.planner-stage-transition > div > strong {
  display:block;
  font-size:1rem;
  color:#101828;
}
.planner-stage-transition #save-destinations {
  width: auto !important;
  min-width: 240px;
  min-height: 52px;
  border-radius: 16px !important;
  margin: 0 !important;
}

#preferences-stage {
  overflow: hidden;
}
#preferences-stage .preferences-stage-head {
  max-width: 820px;
}
#preferences-stage textarea {
  min-height: 138px;
  padding: 18px !important;
  border-radius: 18px !important;
  font-size: .94rem;
  line-height: 1.55;
  resize: vertical;
}


.preferences-stage-actions {
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:18px !important;
}
.preferences-continue {
  min-width:260px;
  min-height:50px;
  border-radius:16px !important;
}

#reset-planner {
  width: auto !important;
  align-self: center;
  min-width: 220px;
  margin: 0 auto !important;
  border-radius: 15px !important;
}

.main {
  width: 100%;
  margin-top: 22px;
}

.itinerary-section.planner-stage-card--create {
  padding: clamp(30px,3.5vw,48px) !important;
  border-radius: 34px !important;
  overflow: visible;
}

.planner-stage-card__head--create {
  margin-bottom: 22px;
}

.itinerary-section .itinerary-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding: 18px 0 16px;
  margin-top: 8px;
  border-top:1px solid rgba(16,24,40,.07);
  border-bottom:1px solid rgba(16,24,40,.07);
}
.itinerary-section .itinerary-head > h2 {
  display:none;
}
.planner-create-status {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#667085;
  font-size:.82rem;
  font-weight:700;
}
.planner-create-status__dot {
  width:9px;height:9px;border-radius:50%;
  background:#d0d5dd;
  box-shadow:0 0 0 5px rgba(208,213,221,.22);
}
.itinerary-actions {
  display:flex;
  justify-content:flex-start;
  padding-top:20px;
}
#start-planning {
  min-width: 310px;
  min-height: 54px;
  border-radius: 17px !important;
  font-weight: 850 !important;
  box-shadow: 0 14px 30px rgba(14,164,122,.14);
}

#chat-container {
  margin-top: 18px;
  border-radius: 24px !important;
}

.astra-coach,
.astra-guide-replay {
  display: none !important;
}

@media (max-width: 1080px) {
  .planner-experience-hero,
  #planner-grid { width:min(94vw,900px) !important; }
  #city-list { grid-template-columns:1fr !important; }
  .city-row { grid-template-columns:1fr 1fr !important; }
  #traveler-profiles { grid-template-columns:1fr !important; }
}

@media (max-width: 760px) {
  .planner-experience-hero { margin-top:18px; }
  .planner-experience-hero .planner-canvas-intro {
    min-height: 300px;
    padding: 36px 26px;
    border-radius: 28px;
  }
  .planner-stage-nav {
    top: 74px;
    width: calc(100% - 10px);
    justify-content: space-between;
    gap: 5px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .planner-stage-nav::-webkit-scrollbar { display:none; }
  .planner-stage-nav__line { width: 10px; }
  .planner-stage-nav__item span { display:none; }
  .planner-builder-intro--compact {
    display:block !important;
    padding:25px 24px !important;
    border-radius:24px !important;
  }
  .planner-builder-intro--compact p {
    margin-top:12px !important;
    text-align:left;
  }
  .planner-stage-card,
  .sidebar > .box {
    padding: 24px 20px !important;
    border-radius: 25px !important;
  }
  .planner-stage-card__head { gap:12px; }
  .planner-stage-card__index {
    width:40px;height:40px;border-radius:13px;
  }
  .account-form-grid { grid-template-columns:1fr !important; }
  .city-row {
    grid-template-columns:1fr !important;
    padding:20px 16px !important;
  }
  .city-row::before,
  .city-row .hours-block { grid-column:1; }
  .city-row .hours-header {
    grid-template-columns:34px minmax(0,1fr) minmax(0,1fr) !important;
  }
  .city-row .hours-day {
    grid-template-columns:34px minmax(0,1fr) minmax(0,1fr) !important;
  }
  .planner-stage-transition {
    display:block;
    padding:22px 20px;
  }
  .planner-stage-transition #save-destinations {
    width:100% !important;
    min-width:0;
    margin-top:16px !important;
  }
  .preferences-stage-actions {
    display:block !important;
  }
  .preferences-continue {
    width:100%;
    min-width:0;
  }
  .preferences-stage-actions small {
    display:block;
    margin-top:10px;
  }
  .itinerary-section .itinerary-head {
    align-items:flex-start;
    flex-direction:column;
  }
  #info-chat-floating {
    align-self:stretch;
    width:100%;
  }
  #start-planning {
    width:100%;
    min-width:0;
  }
}

/* =========================================================
   ITBMO · PHASE 4.3 · PREMIUM SEQUENTIAL FLOW
   Corrects excessive whitespace, stage jumps and CTA placement.
========================================================= */

:root {
  --planner-content: 1220px;
  --planner-radius-xl: 30px;
  --planner-radius-lg: 24px;
  --planner-shadow-soft: 0 18px 54px rgba(16,24,40,.06);
}

/* Tighter, editorial hero: premium without consuming a full screen. */
.planner-experience-hero {
  width: min(var(--planner-content), 92vw) !important;
  margin-top: 24px !important;
}

.planner-experience-hero .planner-canvas-intro {
  min-height: 285px !important;
  padding: clamp(42px,5vw,64px) !important;
  border-radius: 34px !important;
}

#planner-grid {
  width: min(var(--planner-content),92vw) !important;
  padding-top: 18px !important;
  padding-bottom: 56px !important;
}

.sidebar.planner-builder-workspace {
  gap: 18px !important;
}

.planner-stage-nav {
  top: 78px !important;
  margin-bottom: 0 !important;
}

/* More compact intro strip. */
.planner-builder-intro--compact {
  min-height: 0 !important;
  padding: 24px 28px !important;
  border-radius: 24px !important;
}

/* Cards use whitespace deliberately rather than expansively. */
.planner-stage-card,
.sidebar > .box {
  padding: clamp(24px,2.5vw,34px) !important;
  border-radius: var(--planner-radius-xl) !important;
  box-shadow: var(--planner-shadow-soft) !important;
}

.planner-stage-card__head {
  margin-bottom: 22px !important;
}

/* Account becomes a compact utility band instead of a giant stage. */
#account-box {
  padding: 22px 26px !important;
}
#account-box .planner-inline-guide--account {
  margin-bottom: 14px !important;
  padding: 12px 14px !important;
}
#account-box .planner-stage-card__number {
  display:none !important;
}
#account-authenticated .account-authenticated-copy {
  min-height: 58px;
}
#account-authenticated .account-authenticated-text {
  max-width: 760px;
}

/* Enforce the actual sequential order. */
#account-box { order:0 !important; }
#travelers-box { order:1 !important; }
#destinations-box { order:2 !important; }
#preferences-stage { order:3 !important; }
#planner-inline-info-slot { order:4 !important; }
#planner-agent-flow { order:5 !important; }
#reset-planner { order:6 !important; }

/* Travelers: compact two-column stage on desktop. */
#travelers-box {
  display:grid !important;
  grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr);
  column-gap: 48px;
  align-items:center;
}
#travelers-box .planner-stage-card__head {
  grid-column:1;
  margin:0 !important;
}
#travelers-box > label,
#traveler-group-panel,
#traveler-grid {
  grid-column:2;
}
#travelers-box > label {
  width:100%;
  max-width:none !important;
}
#traveler-mode {
  width:100%;
}
#traveler-group-panel {
  margin-top:14px;
}

/* Route guidance: elegant and contained. */
#destinations-box .planner-route-tip {
  margin: -2px 0 20px !important;
  padding: 14px 16px !important;
}

/* Destination cards are horizontal travel cards, not 1/3-width form tiles. */
#city-list {
  display:flex !important;
  flex-direction:column;
  gap:16px !important;
}

.city-row {
  position:relative;
  display:grid !important;
  grid-template-columns: minmax(330px,.82fr) minmax(0,1.18fr) !important;
  gap:0 !important;
  width:100%;
  min-height:0;
  padding:0 !important;
  overflow:visible !important;
  border-radius:26px !important;
  background:#fff !important;
  box-shadow:0 14px 38px rgba(16,24,40,.055) !important;
}

.city-row::before {
  display:none !important;
}

.city-card-main {
  padding:24px 24px 22px;
  border-right:1px solid rgba(16,24,40,.07);
  background:
    radial-gradient(circle at 100% 0%,rgba(14,164,122,.08),transparent 13rem),
    linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
  border-radius:26px 0 0 26px;
}

.city-card-kicker {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:18px;
  color:#0b8664;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.16em;
}
.city-card-kicker span {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(145deg,#08785c,#0ea47a);
  letter-spacing:0;
  box-shadow:0 7px 18px rgba(14,164,122,.18);
}

.city-card-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.city-card-fields > label {
  min-width:0;
  margin:0 !important;
}
.city-card-fields input,
.city-card-fields select,
.city-card-fields .date-picker-shell {
  min-height:48px !important;
  border-radius:14px !important;
}

.city-card-schedule {
  min-width:0;
  padding:22px 24px;
  border-radius:0 26px 26px 0;
  background:
    radial-gradient(circle at 100% 0%,rgba(28,166,208,.055),transparent 13rem),
    #fcfefe;
}
.city-card-schedule__head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.city-card-schedule__head > span {
  color:#08785c;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.15em;
}
.city-card-schedule__head > small {
  color:#98a2b3;
  font-size:.72rem;
}
.city-card-schedule__body .hours-block {
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.city-card-schedule .time-hint {
  margin:0 0 10px !important;
  font-size:.74rem !important;
}
.city-card-schedule .same-schedule-toggle {
  margin-bottom:12px !important;
}
.city-card-schedule .hours-header,
.city-card-schedule .hours-day {
  grid-template-columns:48px minmax(0,1fr) minmax(0,1fr) !important;
  gap:10px !important;
}
.city-card-schedule .hours-day {
  padding:6px 0;
}

.city-row .remove {
  top:14px !important;
  right:14px !important;
  z-index:5;
}

#destinations-box .row-actions {
  margin:18px 0 0 !important;
}

/* Primary route actions remain physically inside Destinations. */
.planner-route-actions {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,390px);
  gap:24px;
  align-items:center;
  margin-top:20px;
  padding:22px 24px;
  border:1px solid rgba(14,164,122,.13);
  border-radius:22px;
  background:
    radial-gradient(circle at 100% 0%,rgba(14,164,122,.10),transparent 14rem),
    linear-gradient(135deg,#f9fdfb,#f4fbf8);
}
.planner-route-actions__copy span {
  display:block;
  margin-bottom:5px;
  color:#0b8664;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.14em;
}
.planner-route-actions__copy strong {
  display:block;
  color:#101828;
  font-size:1rem;
}
.planner-route-actions__copy small {
  display:block;
  margin-top:6px;
  color:#667085;
  line-height:1.45;
}
.planner-route-actions__buttons {
  display:grid;
  gap:10px;
}
.planner-route-actions__buttons .btn {
  width:100% !important;
  min-height:52px;
  border-radius:16px !important;
  margin:0 !important;
}
.planner-start-cta:not(:disabled) {
  background:linear-gradient(105deg,#08785c,#0ea47a) !important;
  box-shadow:0 14px 28px rgba(14,164,122,.19) !important;
}
.planner-start-cta:disabled {
  background:#e8eef3 !important;
  color:#98a2b3 !important;
  box-shadow:none !important;
}

/* Preferences gets a purposeful action area. */
#preferences-stage {
  margin-top:0 !important;
}
#preferences-stage .preferences-stage-actions {
  margin-top:16px !important;
  padding-top:16px;
  border-top:1px solid rgba(16,24,40,.07);
}
#preferences-stage .preferences-continue {
  min-width:280px;
}

/* Info Chat CTA: intentionally easy to discover, but still product UI—not an ad. */
#info-chat-floating {
  min-width:250px !important;
  min-height:56px !important;
  padding:0 22px !important;
  border-radius:18px !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 95% 0%,rgba(255,255,255,.20),transparent 8rem),
    linear-gradient(105deg,#08785c,#0ea47a 58%,#18a9bd) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:0 16px 36px rgba(14,164,122,.22) !important;
  font-size:1rem !important;
  font-weight:900 !important;
}
#info-chat-floating.is-unlocked {
  animation:itbmoInfoGlow 2.8s ease-in-out infinite;
}
#info-chat-floating.is-locked {
  background:linear-gradient(105deg,#98a2b3,#b6c3cc) !important;
  box-shadow:none !important;
}
@keyframes itbmoInfoGlow {
  0%,100% { transform:translateY(0); box-shadow:0 16px 36px rgba(14,164,122,.18); }
  50% { transform:translateY(-2px); box-shadow:0 19px 42px rgba(14,164,122,.29); }
}

/* Inline Info Chat lives immediately below Personalize. */
.planner-inline-info-slot {
  width:100%;
}
.planner-inline-info-slot:empty {
  display:none;
}
.planner-inline-info-slot .info-chat-modal {
  position:relative !important;
  inset:auto !important;
  z-index:20 !important;
  display:none;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  resize:none !important;
  overflow:hidden !important;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateY(-8px);
  border-radius:28px !important;
  border:1px solid rgba(14,164,122,.14) !important;
  box-shadow:0 20px 58px rgba(16,24,40,.07) !important;
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}
.planner-inline-info-slot .info-chat-modal.active {
  display:flex !important;
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.planner-inline-info-slot .info-chat-panel {
  width:100% !important;
  height:auto !important;
  min-height:390px !important;
  max-height:none !important;
}
.planner-inline-info-slot .info-chat-header {
  cursor:default !important;
  touch-action:auto !important;
  min-height:72px !important;
}
.planner-inline-info-slot .info-chat-modal .chat-messages {
  min-height:220px !important;
  max-height:420px !important;
}
.planner-inline-info-slot .info-chat-modal.is-minimized {
  width:100% !important;
  max-height:78px !important;
}

/* Agent chat appears directly after Personalize; no giant blank final stage. */
.planner-agent-flow {
  width:100%;
}
.planner-agent-flow #chat-container {
  width:100%;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  border-radius:26px !important;
  box-shadow:0 18px 52px rgba(16,24,40,.06);
}
.planner-agent-flow #chat-container[style*="display:none"],
.planner-agent-flow #chat-container[style*="display: none"] {
  display:none !important;
}
.planner-agent-flow #chat-container:not([style*="display:none"]):not([style*="display: none"]) {
  min-height:320px !important;
}

/* Reset is a secondary utility, never a floating stage. */
#reset-planner {
  order:6 !important;
  margin:0 auto !important;
  min-height:46px;
}

/* The lower itinerary surface exists only after real generation. */
.planner-post-generation {
  display:none !important;
  margin-top:18px !important;
}
.planner-post-generation.is-ready {
  display:block !important;
}
.planner-post-generation__intro,
.planner-post-generation__head {
  display:none !important;
}

/* Keep post-generation CTA/export content compact and centered. */
.planner-post-generation.is-ready {
  padding:28px !important;
}

/* Smooth progressive reveal. */
#preferences-stage.is-stage-active,
.planner-inline-info-slot .info-chat-modal.active,
.planner-agent-flow #chat-container:not([style*="display:none"]):not([style*="display: none"]) {
  animation:itbmoStageReveal .34s cubic-bezier(.2,.75,.25,1) both;
}
@keyframes itbmoStageReveal {
  from { opacity:0; transform:translateY(14px); }
  to { opacity:1; transform:translateY(0); }
}

@media (max-width: 980px) {
  #travelers-box {
    display:block !important;
  }
  #travelers-box .planner-stage-card__head {
    margin-bottom:20px !important;
  }
  .city-row {
    grid-template-columns:1fr !important;
  }
  .city-card-main {
    border-right:0;
    border-bottom:1px solid rgba(16,24,40,.07);
    border-radius:24px 24px 0 0;
  }
  .city-card-schedule {
    border-radius:0 0 24px 24px;
  }
  .planner-route-actions {
    grid-template-columns:1fr;
  }
}

@media (max-width: 720px) {
  .planner-experience-hero .planner-canvas-intro {
    min-height:250px !important;
    padding:32px 24px !important;
  }
  .city-card-fields {
    grid-template-columns:1fr !important;
  }
  .city-card-main,
  .city-card-schedule {
    padding:20px 17px;
  }
  .city-card-schedule__head {
    display:block;
  }
  .city-card-schedule__head small {
    display:block;
    margin-top:5px;
  }
  .planner-route-actions {
    padding:19px 17px;
  }
  .planner-route-actions__buttons {
    width:100%;
  }
  #info-chat-floating {
    width:100% !important;
    min-width:0 !important;
  }
  .planner-inline-info-slot .info-chat-panel {
    min-height:330px !important;
  }
}


/* Info Chat discovery callout inside Personalize. */




@media (max-width:720px){

}


/* =========================================================
   ITBMO · PHASE 4.4 · FLOW FIX + PREMIUM MICRO-INTERACTIONS
========================================================= */

/* Travelers: the selector sits beside the explanation; companions then use the
   full width below, preventing a tall narrow stack on the right. */
#travelers-box{
  grid-template-columns:minmax(300px,.72fr) minmax(360px,1.28fr) !important;
  align-items:start !important;
  row-gap:22px !important;
}
#travelers-box .planner-stage-card__head{grid-column:1 !important;grid-row:1 !important;}
#travelers-box > label{grid-column:2 !important;grid-row:1 !important;align-self:center !important;}
#traveler-group-panel,
#traveler-grid{grid-column:1 / -1 !important;grid-row:auto !important;margin-top:0 !important;}
#traveler-group-panel > .box{padding:20px !important;}
#traveler-profiles{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:14px !important;}
.traveler-profile{min-width:0 !important;box-shadow:0 9px 24px rgba(16,24,40,.045) !important;}
.traveler-profile-actions{
  position:static !important;
  grid-column:1 / -1;
  display:flex !important;
  justify-content:flex-end !important;
  gap:10px !important;
  margin-top:14px !important;
  padding:12px !important;
  border-radius:16px !important;
  background:linear-gradient(135deg,#f7fcfa,#f1faf8) !important;
}

/* Saved destination data is frozen, but the route action rail stays fully alive. */
#destinations-box.is-route-data-locked{
  opacity:1 !important;
  filter:none !important;
}
#destinations-box.is-route-data-locked::after{display:none !important;}
#destinations-box.is-route-data-locked .city-row,
#destinations-box.is-route-data-locked .row-actions{
  opacity:.62;
  filter:saturate(.85);
}
#destinations-box.is-route-data-locked .planner-route-actions{
  opacity:1 !important;
  filter:none !important;
}

/* Start CTA: deliberately quiet before Save, unmistakable after Save. */
#start-planning{
  position:relative;
  overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,background .22s ease !important;
}
#start-planning:not(.is-ready){
  background:#e7edf2 !important;
  color:#98a2b3 !important;
  box-shadow:none !important;
}
#start-planning.is-ready{
  min-height:58px !important;
  color:#fff !important;
  background:linear-gradient(105deg,#08785c 0%,#0ea47a 52%,#17a7bb 100%) !important;
  box-shadow:0 17px 38px rgba(14,164,122,.27),0 0 0 1px rgba(14,164,122,.12) !important;
  transform:translateY(-1px);
}
#start-planning.is-ready::after{
  content:"";
  position:absolute;
  inset:-40% auto -40% -30%;
  width:24%;
  transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);
  animation:itbmoStartSheen 2.8s ease-in-out infinite;
}
#start-planning.is-ready:hover{transform:translateY(-3px);filter:saturate(1.05);}
@keyframes itbmoStartSheen{0%,58%{left:-30%}85%,100%{left:125%}}

/* Premium save overlay: route pulse instead of an hourglass. */
.itbmo-save-transition-overlay{
  background:rgba(241,248,247,.66) !important;
  backdrop-filter:blur(12px) saturate(125%) !important;
  -webkit-backdrop-filter:blur(12px) saturate(125%) !important;
}
.itbmo-save-transition-card{
  width:min(90vw,430px) !important;
  min-height:245px !important;
  padding:30px 34px 28px !important;
  border-radius:30px !important;
  border:1px solid rgba(14,164,122,.16) !important;
  background:
    radial-gradient(circle at 85% 10%,rgba(25,174,195,.12),transparent 12rem),
    radial-gradient(circle at 8% 100%,rgba(14,164,122,.10),transparent 13rem),
    rgba(255,255,255,.97) !important;
  box-shadow:0 32px 90px rgba(16,24,40,.16),0 3px 10px rgba(16,24,40,.05) !important;
}
.itbmo-hourglass-loader,.itbmo-hourglass{display:none !important;}
.itbmo-route-loader{
  position:relative;
  width:146px;
  height:76px;
  margin:0 auto 22px;
}
.itbmo-route-loader__halo{
  position:absolute;
  left:50%;top:50%;
  width:68px;height:68px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(14,164,122,.14) 0%,rgba(14,164,122,.05) 48%,transparent 72%);
  animation:itbmoRouteHalo 1.8s ease-in-out infinite;
}
.itbmo-route-loader__line{
  position:absolute;
  left:22px;right:22px;top:37px;height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#8bd8c3,#0ea47a,#53bdd0);
  box-shadow:0 0 18px rgba(14,164,122,.18);
}
.itbmo-route-loader__node{
  position:absolute;top:31px;
  width:15px;height:15px;
  border:4px solid #fff;
  border-radius:50%;
  background:#0ea47a;
  box-shadow:0 5px 14px rgba(14,164,122,.25);
  animation:itbmoRouteNode 1.65s ease-in-out infinite;
}
.itbmo-route-loader__node--1{left:14px;animation-delay:0s}
.itbmo-route-loader__node--2{left:66px;animation-delay:.22s}
.itbmo-route-loader__node--3{right:14px;animation-delay:.44s}
.itbmo-route-loader__star{
  position:absolute;
  left:50%;top:50%;
  display:grid;place-items:center;
  width:40px;height:40px;
  transform:translate(-50%,-50%);
  border-radius:14px;
  color:#fff;
  background:linear-gradient(145deg,#08785c,#0ea47a);
  box-shadow:0 12px 24px rgba(14,164,122,.25);
  font-size:18px;
  animation:itbmoRouteStar 1.8s ease-in-out infinite;
}
.itbmo-save-transition-eyebrow{
  margin-bottom:7px;
  color:#0b8664;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.16em;
}
.itbmo-save-transition-title{
  color:#101828 !important;
  font-size:1.32rem !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:-.035em !important;
}
.itbmo-save-transition-subtitle{
  display:block !important;
  max-width:340px;
  margin:9px auto 0;
  color:#667085;
  font-size:.82rem;
  line-height:1.55;
}
@keyframes itbmoRouteHalo{0%,100%{transform:translate(-50%,-50%) scale(.9);opacity:.65}50%{transform:translate(-50%,-50%) scale(1.18);opacity:1}}
@keyframes itbmoRouteNode{0%,100%{transform:scale(.78);opacity:.55}50%{transform:scale(1.08);opacity:1}}
@keyframes itbmoRouteStar{0%,100%{transform:translate(-50%,-50%) rotate(0deg) scale(.96)}50%{transform:translate(-50%,-50%) rotate(6deg) scale(1.04)}}

@media(max-width:1050px){
  #traveler-profiles{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:760px){
  #travelers-box{display:block !important;}
  #travelers-box > label{margin-top:18px !important;}
  #traveler-group-panel{margin-top:16px !important;}
  #traveler-profiles{grid-template-columns:1fr !important;}
  .itbmo-save-transition-card{width:min(90vw,390px) !important;min-height:225px !important;padding:26px 24px !important;}
}
@media(prefers-reduced-motion:reduce){
  #start-planning.is-ready::after,
  .itbmo-route-loader__halo,
  .itbmo-route-loader__node,
  .itbmo-route-loader__star{animation:none !important;}
}

/* =========================================================
   ITBMO · PHASE 4.5 · PREMIUM ACCOUNT ACCESS
   Topbar access + on-demand account dialog.
   The Planner stays locked until a valid account/guest session exists,
   but account controls no longer consume a full stage in the page flow.
========================================================= */

.planner-topbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
  min-width:0;
}
.planner-auth-nav{
  display:flex;
  align-items:center;
  gap:.42rem;
  min-width:0;
}
.planner-auth-nav__btn{
  min-height:38px;
  padding:0 13px;
  border:1px solid rgba(16,24,40,.10);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:#344054;
  box-shadow:0 5px 16px rgba(16,24,40,.035);
  font-size:.74rem;
  font-weight:850;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.planner-auth-nav__btn:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(14,164,122,.26);
  background:#fff;
  box-shadow:0 9px 22px rgba(14,164,122,.08);
}
.planner-auth-nav__btn--primary{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(105deg,#08785c,#0ea47a 58%,#12a5ba);
  box-shadow:0 8px 20px rgba(14,164,122,.16);
}
.planner-auth-nav__btn--logout{
  color:#08785c;
  border-color:rgba(14,164,122,.20);
  background:#f5fcf9;
}
.planner-auth-nav__btn[hidden]{display:none!important;}

.account-modal-backdrop{
  position:fixed;
  z-index:6190;
  inset:0;
  opacity:0;
  background:rgba(7,24,38,.34);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:opacity .18s ease;
}
.account-modal-backdrop[hidden]{display:none!important;}
.account-modal-backdrop.is-open{opacity:1;}
body.itbmo-auth-dialog-open{overflow:hidden;}

/* Account DOM stays exactly where it was for functional compatibility,
   but is removed from layout until a topbar action opens it. */
#account-box{
  display:none!important;
  position:fixed!important;
  z-index:6200!important;
  top:clamp(78px,10vh,112px)!important;
  left:50%!important;
  width:min(920px,calc(100vw - 34px))!important;
  max-height:calc(100vh - 120px)!important;
  margin:0!important;
  padding:24px 26px 26px!important;
  overflow:auto!important;
  transform:translateX(-50%)!important;
  border:1px solid rgba(16,24,40,.09)!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%)!important;
  box-shadow:0 34px 110px rgba(7,24,38,.24)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
#account-box.is-auth-dialog-open{display:block!important;}
#account-box>.planner-stage-card__number{display:none!important;}
.account-dialog-close{
  position:absolute;
  z-index:3;
  top:14px;
  right:14px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid rgba(16,24,40,.09);
  border-radius:12px;
  color:#475467;
  background:rgba(255,255,255,.92);
  box-shadow:0 6px 18px rgba(16,24,40,.06);
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}
.account-dialog-close:hover{color:#08785c;border-color:rgba(14,164,122,.26);}

#account-box .planner-inline-guide--account{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:14px!important;
  min-height:0!important;
  margin:0 48px 18px 0!important;
  padding:13px 16px!important;
  border:1px solid rgba(14,164,122,.16)!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,#f1fbf7 0%,#f8fcfb 100%)!important;
}
#account-box .planner-inline-guide__icon{
  width:42px!important;height:42px!important;flex:0 0 42px!important;
  border-radius:14px!important;font-size:1.05rem;
  box-shadow:0 9px 22px rgba(14,164,122,.16);
}
.planner-account-guide__copy{min-width:0;}
.planner-account-guide__copy strong{margin:0!important;color:#101828;font-size:1rem!important;line-height:1.25;}
.planner-account-guide__copy p{max-width:760px;margin:4px 0 0!important;color:#667085;font-size:.84rem!important;line-height:1.45!important;}

/* The topbar is now the only primary account navigation surface. */
#account-box #account-mode-actions,
#account-box #account-logout{display:none!important;}

#account-box .account-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center!important;
  gap:18px!important;
  margin:0 0 14px!important;
  padding:0 2px;
}
#account-box .account-head>div:first-child{min-width:0;}
#account-box .account-head h3{margin:0!important;color:#101828;font-size:1.15rem!important;line-height:1.2;letter-spacing:-.025em;}
#account-box .account-subtitle{margin:4px 0 0!important;max-width:760px;color:#667085!important;font-size:.84rem!important;}
#account-box .account-user-badge{
  max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:8px 13px!important;border-radius:999px!important;color:#fff;
  background:linear-gradient(105deg,#08785c,#1194a2)!important;
  box-shadow:0 8px 20px rgba(14,164,122,.14)!important;font-size:.75rem!important;
}

#account-box .account-panel{
  width:min(100%,820px)!important;
  margin:14px auto 0!important;
  padding:20px 22px!important;
  border:1px solid rgba(16,24,40,.07)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff,#fbfdfc)!important;
  box-shadow:0 14px 34px rgba(16,24,40,.045)!important;
}
#account-box .account-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 18px!important;}
#account-box .account-panel input{min-height:50px!important;}
#account-box .account-panel .w-100{min-height:50px!important;border-radius:14px!important;font-size:.9rem!important;}
#account-login-panel,#account-guest-panel,#account-forgot-panel,#account-reset-panel{max-width:760px!important;}

.account-authenticated--premium{display:block;padding:0!important;border:0!important;background:transparent!important;}
#account-authenticated .account-authenticated-copy{
  display:flex!important;align-items:center!important;gap:13px!important;min-height:66px!important;padding:14px 16px!important;
  border:1px solid rgba(14,164,122,.13);border-radius:18px;
  background:linear-gradient(135deg,#fbfefd,#f7fbfc);
}
.account-authenticated-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;color:#08785c;background:#eaf8f3;border:1px solid rgba(14,164,122,.13);font-size:1rem;}
#account-authenticated .account-authenticated-text{max-width:none!important;min-width:0;}
#account-authenticated .account-authenticated-text strong{color:#101828;font-size:.94rem!important;}
#account-authenticated .account-authenticated-text p{margin:3px 0 0!important;color:#667085!important;font-size:.80rem!important;}
#account-guest-upgrade{margin-top:12px!important;padding:14px 16px!important;border-radius:17px!important;background:#fbfdfc!important;}

@media(max-width:1120px){
  .planner-auth-nav__btn{padding:0 10px;font-size:.69rem;}
  .planner-topbar-actions{gap:.38rem;}
}
@media(max-width:860px){
  .topbar{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;padding:9px 14px!important;}
  .topbar .brand-logo{justify-self:center!important;margin:0!important;}
  .planner-topbar-actions{grid-column:1/-1;width:100%;justify-content:flex-start;overflow-x:auto;padding:2px 0 4px;scrollbar-width:none;}
  .planner-topbar-actions::-webkit-scrollbar{display:none;}
  .planner-auth-nav{flex:0 0 auto;}
  .planner-language-capability{flex:0 0 auto;}
  #account-box{top:82px!important;max-height:calc(100vh - 98px)!important;width:min(94vw,760px)!important;padding:20px 18px 22px!important;}
}
@media(max-width:620px){
  .planner-auth-nav__btn{min-height:36px;padding:0 10px;font-size:.68rem;}
  #account-box .planner-inline-guide--account{grid-template-columns:auto minmax(0,1fr)!important;padding:12px!important;}
  .planner-account-guide__copy p{font-size:.77rem!important;}
  #account-box .account-head{grid-template-columns:1fr!important;gap:8px!important;}
  #account-box .account-user-badge{width:fit-content;max-width:100%;}
  #account-box .account-form-grid{grid-template-columns:1fr!important;}
}

/* =========================================================
   ITBMO · CLEAN BASELINE V1 · APPROVED PLANNER UI
   Consolidates former Phase 4.6–4.9 visual overrides.
   No generation/payment/auth/export data contracts are changed.
========================================================= */

/* ---------- STEPS 01–03 ---------- */
#travelers-box,
#destinations-box,
#preferences-stage{
  border-top:3px solid rgba(14,164,122,.26) !important;
}
#travelers-box .planner-stage-card__head h3,
#destinations-box .planner-stage-card__head h3{
  color:#101828 !important;
  font-weight:900 !important;
}
#travelers-box .planner-stage-card__head p,
#destinations-box .planner-stage-card__head p{
  color:#526175 !important;
}

/* ---------- ACCOUNT FORMS ---------- */
#account-box .account-panel{
  width:min(100%,980px) !important;
  margin:14px auto 0 !important;
  padding:20px 22px !important;
  border:1px solid rgba(16,24,40,.07) !important;
  background:linear-gradient(180deg,#fff,#fbfdfc) !important;
  box-shadow:0 14px 34px rgba(16,24,40,.045) !important;
}
#account-box .account-panel .account-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 18px !important;
}
#account-box .account-panel input{min-height:50px !important;}
#account-box .account-panel .w-100{
  min-height:50px !important;
  border-radius:14px !important;
  font-size:.9rem !important;
}
#account-login-panel,
#account-guest-panel,
#account-forgot-panel,
#account-reset-panel{max-width:900px !important;}

/* ---------- PERSONALIZATION STAGE ---------- */
#preferences-stage{
  padding-top:34px !important;
}
#preferences-stage .preferences-stage-head{
  display:block !important;
  max-width:900px !important;
  min-height:0 !important;
  margin:0 0 26px 78px !important;
}
#preferences-stage>.planner-stage-card__index{
  position:absolute !important;
  top:34px !important;
  left:34px !important;
}
#preferences-stage .preferences-stage-eyebrow{
  display:block !important;
  width:auto !important;
  margin:0 0 7px !important;
  padding:0 !important;
  color:#08785c !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  font-size:.72rem !important;
  font-weight:950 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
}
#preferences-stage .preferences-stage-head>h3{
  margin:0 !important;
  color:#101828 !important;
  font-size:clamp(1.85rem,2.7vw,2.5rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.045em !important;
}
#preferences-stage .preferences-stage-intro{
  max-width:760px !important;
  margin:9px 0 0 !important;
  color:#667085 !important;
  font-size:.95rem !important;
  line-height:1.55 !important;
}
#preferences-stage .preferences-stage-field-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  margin:0 0 12px !important;
}
#preferences-stage .preferences-stage-field-title{
  margin:0 !important;
  color:#15324b !important;
  font-size:1rem !important;
  font-weight:900 !important;
}
#preferences-stage #info-chat-floating{
  position:static !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:220px !important;
  min-height:50px !important;
  margin:0 !important;
  padding:0 18px !important;
  border-radius:15px !important;
  box-shadow:0 8px 22px rgba(8,120,92,.10) !important;
}
#preferences-stage .preferences-guidance{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:7px 13px !important;
  margin:0 0 12px !important;
  padding:11px 14px !important;
  border:1px solid rgba(14,164,122,.12) !important;
  border-radius:14px !important;
  background:#f8fcfa !important;
  box-shadow:none !important;
}
#preferences-stage .preferences-guidance__lead{
  margin:0 !important;
  color:#17324a !important;
  font-size:.78rem !important;
  font-weight:850 !important;
}
#preferences-stage .preferences-guidance__summary{
  color:#5d6b7d !important;
  font-size:.76rem !important;
  line-height:1.4 !important;
}
#preferences-stage .preferences-guidance__summary strong{
  color:#25435b !important;
  font-weight:850 !important;
}
#preferences-stage .preferences-guidance__note{
  margin:0 0 0 auto !important;
  color:#08785c !important;
  font-size:.72rem !important;
  font-weight:800 !important;
}
#preferences-stage #special-conditions{
  min-height:190px !important;
  margin-top:0 !important;
  padding:22px 24px !important;
  border:2px solid rgba(14,164,122,.42) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 12px 30px rgba(14,164,122,.08),0 0 0 4px rgba(14,164,122,.035) !important;
  color:#15324b !important;
  font-size:1rem !important;
  line-height:1.55 !important;
}
#preferences-stage #special-conditions:hover{
  border-color:rgba(14,164,122,.58) !important;
}
#preferences-stage #special-conditions:focus{
  border-color:#0ea47a !important;
  box-shadow:0 0 0 5px rgba(14,164,122,.11),0 18px 38px rgba(14,164,122,.09) !important;
}

/* ---------- FLOATING INFO CHAT ---------- */
body > #info-chat-modal.info-chat-modal{
  display:flex;
  position:fixed !important;
  z-index:50000 !important;
  visibility:hidden;
  pointer-events:none;
  opacity:0;
  top:128px;
  right:30px;
  left:auto;
  bottom:auto;
  width:min(650px,calc(100vw - 60px));
  height:min(610px,calc(100vh - 158px));
  min-width:390px;
  min-height:410px;
  max-width:calc(100vw - 20px);
  max-height:calc(100vh - 20px);
  overflow:hidden !important;
  resize:both !important;
  transform:translateY(-8px) scale(.985);
}
body > #info-chat-modal.info-chat-modal.active{
  visibility:visible !important;
  pointer-events:auto !important;
  opacity:1 !important;
  transform:translateY(0) scale(1) !important;
}
body > #info-chat-modal.info-chat-modal:not(.is-minimized) .info-chat-panel{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
}
body > #info-chat-modal.info-chat-modal:not(.is-minimized) .chat-messages{
  flex:1 1 auto !important;
  min-height:110px !important;
  max-height:none !important;
  overflow-y:auto !important;
}
body > #info-chat-modal.info-chat-modal.is-minimized{
  width:min(360px,calc(100vw - 40px)) !important;
  height:78px !important;
  min-width:280px !important;
  min-height:78px !important;
  max-height:78px !important;
  resize:none !important;
}
body > #info-chat-modal .info-chat-header{
  cursor:grab !important;
  user-select:none;
}
body > #info-chat-modal.is-dragging .info-chat-header{
  cursor:grabbing !important;
}
body > #info-chat-modal.info-chat-modal:not(.is-minimized)::after{
  content:"";
  position:absolute;
  right:6px;
  bottom:6px;
  width:15px;
  height:15px;
  pointer-events:none;
  opacity:.48;
  background:
    linear-gradient(135deg,transparent 0 46%,rgba(8,120,92,.55) 47% 55%,transparent 56% 64%,rgba(8,120,92,.38) 65% 73%,transparent 74%);
}

/* ---------- AGENT FLOW ---------- */
#planner-agent-flow{scroll-margin-top:104px !important;}

/* ---------- RESET ---------- */
#reset-planner{
  width:auto !important;
  min-width:0 !important;
  min-height:38px !important;
  padding:0 14px !important;
  margin:8px auto 0 0 !important;
  border:0 !important;
  background:transparent !important;
  color:#667085 !important;
  box-shadow:none !important;
  font-size:.75rem !important;
  text-decoration:underline;
  text-underline-offset:3px;
}
#reset-planner:hover{
  color:#08785c !important;
  background:#f3faf7 !important;
}

/* ---------- MY TRIPS ---------- */
.planner-my-trips:not([hidden]){
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-height:54px !important;
  padding:7px 14px 7px 9px !important;
  color:#fff !important;
  background:linear-gradient(135deg,#0877c9 0%,#0a94bc 52%,#0aa8b1 100%) !important;
  border:1px solid rgba(255,255,255,.45) !important;
  border-radius:18px !important;
  box-shadow:0 14px 34px rgba(5,104,151,.23),inset 0 1px 0 rgba(255,255,255,.25) !important;
  font-size:.88rem !important;
  cursor:pointer !important;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease !important;
}
.planner-my-trips__icon{
  width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;
  border-radius:12px;background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);font-size:1rem;font-weight:900;
}
.planner-my-trips__copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05;}
.planner-my-trips__copy strong{font-size:.9rem;font-weight:900;letter-spacing:-.015em;color:#fff;}
.planner-my-trips__copy small{margin-top:4px;color:rgba(255,255,255,.74);font-size:.58rem;font-weight:750;white-space:nowrap;}
.planner-my-trips__arrow{font-size:1rem;font-weight:900;opacity:.78;transition:transform .2s ease;}
.planner-my-trips:not([hidden]):hover{
  transform:translateY(-2px) !important;
  filter:saturate(1.06) brightness(1.02) !important;
  box-shadow:0 18px 42px rgba(5,104,151,.29),inset 0 1px 0 rgba(255,255,255,.28) !important;
}
.planner-my-trips:not([hidden]):hover .planner-my-trips__arrow{transform:translateX(3px);}
.planner-my-trips:not([hidden]):focus-visible{
  outline:3px solid rgba(10,146,223,.19) !important;
  outline-offset:3px !important;
}
#journey-history{scroll-margin-top:112px !important;}

/* ---------- POST-GENERATION ---------- */
#planner-post-generation.planner-post-generation.is-ready{
  margin-top:28px !important;
  padding:38px !important;
  border:1px solid rgba(14,164,122,.10) !important;
  border-radius:34px !important;
  background:
    radial-gradient(circle at 96% 0%,rgba(29,179,191,.08),transparent 24rem),
    linear-gradient(180deg,#ffffff 0%,#fbfdfd 100%) !important;
  box-shadow:0 2px 6px rgba(16,24,40,.025),0 24px 64px rgba(16,58,78,.065) !important;
}
#planner-post-generation .itinerary-focus-launch{margin:0 !important;}
#planner-post-generation .itinerary-focus-cta{
  min-height:132px !important;
  gap:22px !important;
  padding:24px 26px !important;
  border-radius:28px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 18px 44px rgba(5,94,143,.16),0 4px 12px rgba(9,127,153,.08) !important;
}
#planner-post-generation .itinerary-focus-cta__icon{
  width:62px !important;
  height:62px !important;
  border-radius:18px !important;
}
#planner-post-generation .itinerary-focus-cta__copy{gap:5px !important;}
#planner-post-generation .itinerary-focus-cta__copy strong{
  font-size:1.2rem !important;
  letter-spacing:-.03em !important;
}
#planner-post-generation .itinerary-focus-cta__copy small{
  max-width:760px !important;
  font-size:.78rem !important;
  line-height:1.45 !important;
}
#planner-post-generation .itinerary-focus-cta__meta{margin-top:7px !important;}
#planner-post-generation .itinerary-focus-cta__arrow{
  width:52px !important;
  height:52px !important;
}
#planner-post-generation .toolbar.itbmo-toolbar-ready{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
  margin-top:24px !important;
  padding-top:24px !important;
  border-top:1px solid rgba(16,24,40,.065) !important;
}
#planner-post-generation .toolbar #btn-pdf,
#planner-post-generation .toolbar #btn-csv,
#planner-post-generation .toolbar #btn-receipt{
  position:relative !important;
  min-height:58px !important;
  padding:0 18px !important;
  border-radius:17px !important;
  font-size:.88rem !important;
  font-weight:820 !important;
  text-shadow:none !important;
  box-shadow:0 8px 22px rgba(16,24,40,.05),inset 0 1px 0 rgba(255,255,255,.8) !important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease !important;
}
#planner-post-generation .toolbar #btn-pdf::before,
#planner-post-generation .toolbar #btn-csv::before,
#planner-post-generation .toolbar #btn-receipt::before{
  display:inline-grid;
  width:26px;
  height:26px;
  margin-right:9px;
  place-items:center;
  border-radius:8px;
  font-size:.75rem;
  font-weight:950;
  vertical-align:middle;
}
#planner-post-generation .toolbar #btn-pdf{
  color:#9f2147 !important;
  background:linear-gradient(135deg,#fff,#fff6f8) !important;
  border:1px solid rgba(214,51,101,.17) !important;
}
#planner-post-generation .toolbar #btn-pdf::before{
  content:"PDF";
  color:#c92f58;
  background:#fff1f5;
}
#planner-post-generation .toolbar #btn-csv{
  color:#087659 !important;
  background:linear-gradient(135deg,#fff,#f1fbf6) !important;
  border:1px solid rgba(14,164,122,.18) !important;
}
#planner-post-generation .toolbar #btn-csv::before{
  content:"CSV";
  color:#087b5e;
  background:#ecfaf5;
}
#planner-post-generation .toolbar #btn-receipt{
  color:#086e86 !important;
  background:linear-gradient(135deg,#fff,#f1fafc) !important;
  border:1px solid rgba(20,143,170,.18) !important;
}
#planner-post-generation .toolbar #btn-receipt::before{
  content:"✓";
  color:#08728b;
  background:#ecf8fb;
}
#planner-post-generation .toolbar #btn-pdf:hover,
#planner-post-generation .toolbar #btn-csv:hover,
#planner-post-generation .toolbar #btn-receipt:hover{
  transform:translateY(-1px) !important;
  filter:none !important;
}
#planner-post-generation .toolbar #btn-pdf:hover{
  background:linear-gradient(135deg,#fff,#ffedf2) !important;
  border-color:rgba(214,51,101,.30) !important;
  box-shadow:0 13px 30px rgba(151,32,70,.09) !important;
}
#planner-post-generation .toolbar #btn-csv:hover{
  background:linear-gradient(135deg,#fff,#e8f9f1) !important;
  border-color:rgba(14,164,122,.34) !important;
  box-shadow:0 13px 30px rgba(8,118,89,.09) !important;
}
#planner-post-generation .toolbar #btn-receipt:hover{
  background:linear-gradient(135deg,#fff,#e9f8fb) !important;
  border-color:rgba(20,143,170,.34) !important;
  box-shadow:0 13px 30px rgba(8,110,134,.09) !important;
}
#planner-post-generation .new-planning-cta.is-ready{
  margin-top:28px !important;
  padding:20px 22px !important;
  gap:14px !important;
  border:1px solid rgba(14,164,122,.12) !important;
  border-radius:20px !important;
  background:linear-gradient(135deg,#f8fcfb,#f2faf8) !important;
  box-shadow:none !important;
}
#planner-post-generation .new-planning-icon{
  width:38px !important;
  height:38px !important;
  flex-basis:38px !important;
  color:#08785c !important;
  background:#e8f7f2 !important;
  box-shadow:none !important;
}
#planner-post-generation #new-planning-copy{
  color:#425466 !important;
  font-size:.84rem !important;
  font-weight:760 !important;
}
#planner-post-generation .new-planning-button{
  min-height:48px !important;
  padding:0 20px !important;
  color:#08785c !important;
  background:#fff !important;
  border:1px solid rgba(14,164,122,.24) !important;
  border-radius:13px !important;
  box-shadow:0 5px 14px rgba(16,72,83,.045) !important;
  text-shadow:none !important;
  font-size:.82rem !important;
  font-weight:850 !important;
}
#planner-post-generation .new-planning-button:hover{
  color:#066b52 !important;
  background:#fafffd !important;
  border-color:rgba(14,164,122,.38) !important;
  box-shadow:0 9px 20px rgba(16,72,83,.07) !important;
  transform:translateY(-1px) !important;
  filter:none !important;
}
#itinerary-focus-launch{scroll-margin-top:108px !important;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:820px){
  #planner-post-generation.planner-post-generation.is-ready{
    padding:24px !important;
    border-radius:26px !important;
  }
  #planner-post-generation .itinerary-focus-cta{
    grid-template-columns:auto minmax(0,1fr) !important;
    min-height:0 !important;
    padding:20px !important;
  }
  #planner-post-generation .itinerary-focus-cta__arrow{display:none !important;}
  #planner-post-generation .toolbar.itbmo-toolbar-ready{grid-template-columns:1fr !important;}
  #planner-post-generation .new-planning-cta.is-ready{
    align-items:flex-start !important;
    flex-wrap:wrap !important;
  }
  #planner-post-generation .new-planning-button{
    width:100% !important;
    margin-top:4px !important;
  }
}
@media(max-width:760px){
  #preferences-stage .preferences-stage-head{display:block !important;}
  #preferences-stage .planner-info-chat-callout{margin-top:16px !important;}
  #preferences-stage #info-chat-floating{
    width:100% !important;
    min-width:0 !important;
    margin:14px 0 0 !important;
  }
  #preferences-stage .preferences-guidance__items{grid-template-columns:1fr !important;}
  body > #info-chat-modal.info-chat-modal:not(.is-minimized){
    resize:none !important;
    min-width:0 !important;
    min-height:0 !important;
  }
  .planner-my-trips:not([hidden]){
    min-height:48px !important;
    padding:6px 10px 6px 7px !important;
  }
  .planner-my-trips__icon{width:34px;height:34px;}
  .planner-my-trips__copy small{display:none;}
  #reset-planner{
    margin-left:0 !important;
    margin-right:auto !important;
  }
}
@media(max-width:680px){
  #account-box .account-panel{padding:16px !important;}
  #account-box .account-panel .account-form-grid{grid-template-columns:1fr !important;}
  #preferences-stage #special-conditions{
    min-height:132px !important;
    padding:16px !important;
  }
}


/* =========================================================
   ITBMO · GROWTH V1.1 · PREMIUM NAV ATTENTION
   Brand contrast + deliberate My Trips micro-interaction.
========================================================= */
.topbar .brand.brand-logo .brand-line-1{
  color:#0a6687 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.72),0 8px 22px rgba(8,111,151,.08);
}
.topbar .brand.brand-logo .brand-line-2{
  color:#1685a2 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.68);
}
.planner-my-trips:not([hidden]){position:relative;overflow:hidden;isolation:isolate;}
.planner-my-trips:not([hidden])::before{
  content:"";position:absolute;z-index:-1;inset:-35% auto -35% -42%;width:34%;
  transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  animation:itbmoMyTripsSheen 6.4s cubic-bezier(.22,.61,.36,1) infinite;
}
.planner-my-trips__icon{transform-origin:center;animation:itbmoMyTripsSpark 4.8s cubic-bezier(.22,.61,.36,1) infinite;}
@keyframes itbmoMyTripsSheen{0%,66%{left:-42%;opacity:0}70%{opacity:1}84%{left:120%;opacity:0}100%{left:120%;opacity:0}}
@keyframes itbmoMyTripsSpark{0%,68%,100%{transform:scale(1) rotate(0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 0 rgba(255,255,255,0)}74%{transform:scale(1.16) rotate(8deg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 0 22px rgba(255,255,255,.28)}80%{transform:scale(1.04) rotate(-2deg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 0 10px rgba(255,255,255,.12)}86%{transform:scale(1) rotate(0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 0 rgba(255,255,255,0)}}
@media (prefers-reduced-motion:reduce){.planner-my-trips:not([hidden])::before,.planner-my-trips__icon{animation:none!important}}


/* =========================================================
   ITBMO · AUTH DIALOG MICRO-UX FIX · 2026-09-12
   Surgical sizing/alignment only. No auth/session behavior changes.
========================================================= */
#account-box{
  top:24px !important;
  width:min(1120px,calc(100vw - 28px)) !important;
  max-height:calc(100vh - 48px) !important;
}
#account-box .account-panel{
  width:min(100%,1020px) !important;
}
#account-box .account-check{
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) !important;
  align-items:start !important;
  column-gap:12px !important;
  width:100% !important;
  margin:.9rem 0 !important;
}
#account-box .account-check input[type="checkbox"]{
  width:18px !important;
  height:18px !important;
  min-height:18px !important;
  margin:3px 0 0 0 !important;
  justify-self:start !important;
}
#account-box .account-check > span{
  min-width:0 !important;
  line-height:1.45 !important;
}
@media(max-width:860px){
  #account-box{
    top:16px !important;
    width:min(96vw,900px) !important;
    max-height:calc(100vh - 32px) !important;
  }
}

/* =========================================================
   ITBMO · PREMIUM FLOW V3 · 2026-09-12
   Color rhythm inspired by Home: blue / cyan / teal / indigo /
   warm orange / amber. Glass-first, never flat or neon.
   Visual-only: no planner/session/payment/partner logic changes.
========================================================= */
:root{
  --itbmo-blue:#087BFA;
  --itbmo-cyan:#35BFD1;
  --itbmo-teal:#0AA0A5;
  --itbmo-indigo:#6D78EE;
  --itbmo-orange:#F17C4A;
  --itbmo-gold:#F4B740;
  --itbmo-terracotta:#D96C4C;
  --itbmo-champagne:#FFF4E8;
  --itbmo-slate:#52677D;
  --itbmo-navy:#0B2341;
  --itbmo-line:rgba(32,76,108,.18);
  --itbmo-line-strong:rgba(32,76,108,.29);
  --itbmo-glass:rgba(255,255,255,.82);
  --itbmo-shadow:0 20px 58px rgba(16,56,88,.08);
  --itbmo-shadow-up:0 28px 74px rgba(16,56,88,.12);
}

/* Canvas: luminous, calm, with several quiet color zones instead of one green wash. */
body{
  background:
    radial-gradient(circle at 8% 2%,rgba(8,123,250,.085),transparent 30rem),
    radial-gradient(circle at 88% 10%,rgba(109,120,238,.052),transparent 31rem),
    radial-gradient(circle at 92% 60%,rgba(241,124,74,.040),transparent 30rem),
    radial-gradient(circle at 18% 86%,rgba(53,191,209,.045),transparent 31rem),
    linear-gradient(180deg,#fbfdff 0%,#f4f9fc 48%,#fafbfd 100%)!important;
}

/* Entry / authentication surfaces. */
.planner-canvas-intro,
.planner-builder-intro--compact{
  border-color:var(--itbmo-line)!important;
  background:
    radial-gradient(circle at 94% 0%,rgba(109,120,238,.075),transparent 17rem),
    radial-gradient(circle at 5% 100%,rgba(53,191,209,.065),transparent 20rem),
    linear-gradient(145deg,rgba(255,255,255,.95),rgba(246,251,254,.90) 60%,rgba(255,248,240,.66))!important;
  box-shadow:0 26px 74px rgba(16,56,88,.075),inset 0 1px 0 rgba(255,255,255,.98)!important;
}
.planner-builder-intro--compact h1,.planner-builder-intro--compact p{color:var(--itbmo-navy)!important;text-shadow:none!important;}
.planner-builder-intro--compact p{color:#587087!important;}
.planner-canvas-intro__eyebrow{color:#47799b!important;}
.planner-canvas-intro h2 span{color:#536fd2!important;}

/* Hero orbit is decorative only. Keep it inside the same premium palette. */
.planner-canvas-orbit__ring{
  border-color:rgba(109,120,238,.17)!important;
  box-shadow:0 0 0 35px rgba(8,123,250,.032),0 0 0 70px rgba(53,191,209,.022)!important;
}
.planner-canvas-orbit__core{
  background:linear-gradient(145deg,#5F6FD8 0%,#258FD9 48%,#35BFD1 100%)!important;
  box-shadow:0 18px 45px rgba(65,92,181,.18)!important;
}
.planner-canvas-orbit__dot{
  background:linear-gradient(145deg,#6D78EE,#35BFD1)!important;
  box-shadow:0 0 0 7px rgba(109,120,238,.075)!important;
}

/* Progress navigator: each stage gets a subtle identity; no saturated green. */
.planner-stage-nav{
  border-color:rgba(32,76,108,.15)!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 15px 44px rgba(16,56,88,.06),inset 0 1px 0 rgba(255,255,255,.96)!important;
  backdrop-filter:blur(18px) saturate(120%);
}
.planner-stage-nav__item b{color:#4e7189!important;border:1px solid rgba(32,76,108,.08);background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(239,247,252,.86))!important;}
.planner-stage-nav__item:nth-child(1) b{background:linear-gradient(145deg,rgba(8,123,250,.10),rgba(109,120,238,.075))!important;color:#4b66a8!important;}
.planner-stage-nav__item:nth-child(2) b{background:linear-gradient(145deg,rgba(53,191,209,.11),rgba(8,123,250,.07))!important;color:#32758a!important;}
.planner-stage-nav__item:nth-child(3) b{background:linear-gradient(145deg,rgba(241,124,74,.10),rgba(244,183,64,.12))!important;color:#9d684e!important;}
.planner-stage-nav__item.is-active b{color:#fff!important;background:linear-gradient(135deg,#087BFA 0%,#258FD9 47%,#0AA0A5 100%)!important;box-shadow:0 9px 24px rgba(8,115,184,.19)!important;}
.planner-stage-nav__line{background:linear-gradient(90deg,rgba(8,123,250,.28),rgba(109,120,238,.20),rgba(241,124,74,.16),rgba(244,183,64,.10))!important;}

/* Planner cards: same family, different accents. */
.planner-stage-card,.sidebar > .box{
  border-color:var(--itbmo-line)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(248,252,254,.91))!important;
  box-shadow:var(--itbmo-shadow),inset 0 1px 0 rgba(255,255,255,.97)!important;
}
.planner-stage-card::before{width:3px!important;opacity:.92;}
.planner-stage-card__number{color:rgba(33,78,110,.085)!important;}
.planner-stage-card__eyebrow{color:#53748d!important;}

/* 01 · Viajeros — blue → indigo. */
.planner-stage-card--travelers::before{background:linear-gradient(180deg,#087BFA,#6D78EE 72%,rgba(109,120,238,.06))!important;}
.planner-stage-card--travelers>.planner-stage-card__head .planner-stage-card__index,
.planner-stage-card--travelers>.planner-stage-card__index{background:linear-gradient(135deg,#1A7FDF,#6D78EE)!important;box-shadow:0 10px 25px rgba(74,100,195,.18)!important;}

/* 02 · Destinos — cyan → blue. */
.planner-stage-card--destinations::before{background:linear-gradient(180deg,#35BFD1,#087BFA 72%,rgba(8,123,250,.05))!important;}
.planner-stage-card--destinations>.planner-stage-card__head .planner-stage-card__index,
.planner-stage-card--destinations>.planner-stage-card__index{background:linear-gradient(135deg,#2EB4C7,#258FD9)!important;box-shadow:0 10px 25px rgba(27,133,175,.17)!important;}

/* 03 · Preferencias — warm orange → amber, intentionally restrained. */
.planner-stage-card--preferences::before{background:linear-gradient(180deg,#F17C4A,#F4B740 72%,rgba(244,183,64,.06))!important;}
.planner-stage-card--preferences>.planner-stage-card__index{background:linear-gradient(135deg,#E9855E,#E5B468)!important;box-shadow:0 10px 25px rgba(179,123,70,.15)!important;}

/* 04 · Crear — brand conversion gradient. */
.planner-stage-card--create::before{background:linear-gradient(180deg,#6D78EE,#087BFA 48%,#35BFD1 100%)!important;}
.planner-stage-card--create>.planner-stage-card__head .planner-stage-card__index{background:linear-gradient(135deg,#6575DF,#087BFA 54%,#23AFC3)!important;box-shadow:0 10px 25px rgba(50,100,183,.19)!important;}

/* Account / guide elements. */
.planner-inline-guide,#account-box .planner-inline-guide--account{border-color:rgba(52,91,122,.14)!important;background:linear-gradient(135deg,rgba(239,247,255,.86),rgba(244,242,255,.74) 54%,rgba(255,249,241,.72))!important;}
.planner-inline-guide__icon,#account-box .planner-inline-guide__icon{background:linear-gradient(145deg,#087BFA,#6D78EE)!important;box-shadow:0 9px 22px rgba(67,97,185,.15)!important;}
.planner-route-tip{background:linear-gradient(135deg,#f8fbfe,#f4f7ff)!important;border-color:rgba(65,88,145,.12)!important;}
.planner-route-tip>span{color:#6478b2!important;}

/* Primary product CTA: blue/cyan. Warm CTAs are reserved for preparation/commercial actions. */
#start-planning.is-ready,.planner-auth-nav__btn--primary{
  background:linear-gradient(112deg,#087BFA 0%,#258FD9 46%,#13A9B5 100%)!important;
  box-shadow:0 16px 38px rgba(8,105,178,.22),inset 0 1px 0 rgba(255,255,255,.24)!important;
}
#start-planning.is-ready{min-height:59px!important;}
.planner-auth-nav__btn:hover:not(:disabled){border-color:rgba(65,96,132,.26)!important;box-shadow:0 9px 22px rgba(35,77,110,.08)!important;}
.planner-auth-nav__btn--logout{color:#52677D!important;border-color:rgba(82,103,125,.18)!important;background:linear-gradient(145deg,#fbfdfe,#f2f6f9)!important;}

/* Post-generation frame. */
#planner-post-generation.planner-post-generation.is-ready{
  border-color:var(--itbmo-line)!important;
  background:
    radial-gradient(circle at 95% 3%,rgba(109,120,238,.055),transparent 24rem),
    radial-gradient(circle at 8% 98%,rgba(53,191,209,.05),transparent 25rem),
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,251,254,.93))!important;
}
#planner-post-generation .new-planning-cta.is-ready{border-color:rgba(82,103,125,.15)!important;background:linear-gradient(135deg,#fbfdfe,#f4f7fb)!important;}
#planner-post-generation .new-planning-icon{color:#536fd2!important;background:linear-gradient(145deg,#edf5ff,#f0efff)!important;}
#planner-post-generation .new-planning-button{color:#4e6480!important;border-color:rgba(82,103,125,.22)!important;background:rgba(255,255,255,.94)!important;}
#planner-post-generation .new-planning-button:hover{color:#354f70!important;background:#f8fbfd!important;border-color:rgba(82,103,125,.34)!important;}
#planner-post-generation .toolbar #btn-csv{color:#4d7188!important;background:linear-gradient(135deg,#fff,#f1f7fb)!important;border-color:rgba(82,103,125,.17)!important;}
#planner-post-generation .toolbar #btn-csv::before{color:#087BFA!important;background:#edf6ff!important;}

/* =========================================================
   Workspace 1 · TODAS LAS CIUDADES
   City cards intentionally rotate through three color families.
========================================================= */
.itinerary-workspace-overview{
  background:
    radial-gradient(circle at 4% 0%,rgba(8,123,250,.065),transparent 25rem),
    radial-gradient(circle at 95% 18%,rgba(109,120,238,.045),transparent 23rem),
    radial-gradient(circle at 68% 100%,rgba(241,124,74,.035),transparent 22rem),
    linear-gradient(180deg,rgba(250,253,255,.96),rgba(245,249,252,.94));
}
.itinerary-workspace-kicker{color:#4d6fb0!important;border-color:rgba(109,120,238,.15)!important;background:linear-gradient(145deg,rgba(255,255,255,.83),rgba(241,242,255,.70))!important;}
.itinerary-workspace-summary{background:linear-gradient(135deg,rgba(8,123,250,.075),rgba(109,120,238,.055),rgba(53,191,209,.055))!important;color:#536d86!important;}
.itinerary-workspace-city-card,.itinerary-workspace-trip-tools,.itinerary-focus-day-card,.itinerary-focus-activity-card,.itinerary-focus-activity__card,.itinerary-focus-prepare-categories span{border-color:var(--itbmo-line)!important;}
.itinerary-workspace-city-card{box-shadow:0 19px 54px rgba(20,59,90,.085),inset 0 1px 0 rgba(255,255,255,.96)!important;}
.itinerary-workspace-city-card:hover{border-color:var(--itbmo-line-strong)!important;box-shadow:var(--itbmo-shadow-up),inset 0 1px 0 rgba(255,255,255,.98)!important;}

/* City 1 · blue/cyan */
.itinerary-workspace-city-card:nth-child(3n+1){background:radial-gradient(circle at 94% 5%,rgba(53,191,209,.105),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.97),rgba(239,248,255,.91))!important;}
.itinerary-workspace-city-card:nth-child(3n+1)::before{background:radial-gradient(circle,rgba(8,123,250,.10),transparent 68%)!important;}
.itinerary-workspace-city-card:nth-child(3n+1) .itinerary-workspace-city-card__number{background:linear-gradient(135deg,#087BFA,#35BFD1)!important;box-shadow:0 10px 24px rgba(8,123,200,.18)!important;}
.itinerary-workspace-city-card:nth-child(3n+1) .itinerary-workspace-city-card__cta{color:#197C9D!important;}
.itinerary-workspace-city-card:nth-child(3n+1) .itinerary-workspace-city-card__cta i{background:linear-gradient(145deg,#eaf7ff,#e8fbfb)!important;color:#187f9f!important;}

/* City 2 · indigo/blue */
.itinerary-workspace-city-card:nth-child(3n+2){background:radial-gradient(circle at 94% 5%,rgba(109,120,238,.10),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.97),rgba(244,244,255,.91))!important;}
.itinerary-workspace-city-card:nth-child(3n+2)::before{background:radial-gradient(circle,rgba(109,120,238,.10),transparent 68%)!important;}
.itinerary-workspace-city-card:nth-child(3n+2) .itinerary-workspace-city-card__number{background:linear-gradient(135deg,#6D78EE,#3F83E6)!important;box-shadow:0 10px 24px rgba(83,104,213,.18)!important;}
.itinerary-workspace-city-card:nth-child(3n+2) .itinerary-workspace-city-card__cta{color:#5969BC!important;}
.itinerary-workspace-city-card:nth-child(3n+2) .itinerary-workspace-city-card__cta i{background:linear-gradient(145deg,#f0f0ff,#edf4ff)!important;color:#5C6EC4!important;}

/* City 3 · orange/amber */
.itinerary-workspace-city-card:nth-child(3n){background:radial-gradient(circle at 94% 5%,rgba(241,124,74,.10),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.97),rgba(255,248,239,.91))!important;}
.itinerary-workspace-city-card:nth-child(3n)::before{background:radial-gradient(circle,rgba(244,183,64,.10),transparent 68%)!important;}
.itinerary-workspace-city-card:nth-child(3n) .itinerary-workspace-city-card__number{background:linear-gradient(135deg,#F17C4A,#E3AE61)!important;box-shadow:0 10px 24px rgba(190,123,68,.16)!important;}
.itinerary-workspace-city-card:nth-child(3n) .itinerary-workspace-city-card__cta{color:#9B664E!important;}
.itinerary-workspace-city-card:nth-child(3n) .itinerary-workspace-city-card__cta i{background:linear-gradient(145deg,#fff4ec,#fff7de)!important;color:#A5694D!important;}
.itinerary-workspace-city-card__cta{border-top-color:rgba(32,76,108,.10)!important;}

.itinerary-workspace-trip-tools{background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(244,248,255,.82) 54%,rgba(255,248,239,.70))!important;box-shadow:0 14px 38px rgba(20,62,91,.055),inset 0 1px 0 rgba(255,255,255,.94)!important;}
.itinerary-workspace-trip-tools__icon{background:linear-gradient(145deg,#eef5ff,#f1efff)!important;color:#5d6fc4!important;}

/* =========================================================
   Workspace 2 · ITINERARIO
   Calm content canvas; color is concentrated in navigation and day identity.
========================================================= */
.itinerary-city-focus-topbar,.itinerary-city-focus-controls{border-color:rgba(32,76,108,.12)!important;background:rgba(249,252,254,.86)!important;backdrop-filter:blur(18px) saturate(120%);box-shadow:0 10px 32px rgba(16,56,88,.035);}
.itinerary-city-focus-identity span{color:#5870b5!important;}
.itinerary-focus-day-card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(248,251,254,.94))!important;box-shadow:0 20px 58px rgba(16,42,67,.075),inset 0 1px 0 rgba(255,255,255,.96)!important;}
.itinerary-focus-day-head{background:linear-gradient(90deg,rgba(8,123,250,.055),rgba(109,120,238,.035),rgba(241,124,74,.025))!important;border-bottom-color:rgba(32,76,108,.10)!important;}
.itinerary-focus-day-btn{border-color:rgba(32,76,108,.11)!important;background:rgba(255,255,255,.78)!important;color:#5d7184!important;}
.itinerary-focus-day-btn:nth-child(4n+1).active{background:linear-gradient(135deg,#087BFA,#35BFD1)!important;box-shadow:0 8px 20px rgba(8,123,200,.17)!important;}
.itinerary-focus-day-btn:nth-child(4n+2).active{background:linear-gradient(135deg,#6D78EE,#3F83E6)!important;box-shadow:0 8px 20px rgba(83,104,213,.17)!important;}
.itinerary-focus-day-btn:nth-child(4n+3).active{background:linear-gradient(135deg,#2BAFC1,#4C8FD5)!important;box-shadow:0 8px 20px rgba(39,136,178,.16)!important;}
.itinerary-focus-day-btn:nth-child(4n).active{background:linear-gradient(135deg,#E9855E,#E2B061)!important;box-shadow:0 8px 20px rgba(181,124,73,.15)!important;}
.itinerary-focus-day-btn.active{color:#fff!important;border-color:transparent!important;}
.itinerary-focus-activity-card,.itinerary-focus-activity__card{background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(248,251,253,.93))!important;box-shadow:0 11px 30px rgba(16,42,67,.047)!important;}
.itinerary-focus-prepare-categories{gap:.65rem!important;}
.itinerary-focus-prepare-categories span{background:linear-gradient(145deg,#fbfdff,#f2f6fb)!important;color:#52677D!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.95);}
.itinerary-focus-prepare-categories span:nth-child(3n+1){background:linear-gradient(145deg,#eef8ff,#eff3ff)!important;color:#4f69a9!important;}
.itinerary-focus-prepare-categories span:nth-child(3n+2){background:linear-gradient(145deg,#edfafa,#f0f7ff)!important;color:#39788e!important;}
.itinerary-focus-prepare-categories span:nth-child(3n){background:linear-gradient(145deg,#fff4ec,#fff7e8)!important;color:#9b684f!important;}

/* Home / My Trips within Planner. */
.journey-home-card--new,.journey-trip-card{border-color:var(--itbmo-line)!important;background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(246,250,254,.87))!important;box-shadow:0 18px 52px rgba(16,42,67,.065),inset 0 1px 0 rgba(255,255,255,.95)!important;}
.journey-trip-card:nth-child(3n+1){background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(239,248,255,.84))!important;}
.journey-trip-card:nth-child(3n+2){background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(244,243,255,.84))!important;}
.journey-trip-card:nth-child(3n){background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,248,239,.84))!important;}
.journey-home-card--resume{background:radial-gradient(circle at 90% 8%,rgba(255,255,255,.16),transparent 13rem),linear-gradient(135deg,#225F9B 0%,#4D69BC 50%,#4A8FA1 100%)!important;}

@media(prefers-reduced-motion:reduce){
  .planner-stage-card,.itinerary-workspace-city-card,.itinerary-focus-day-card,.journey-home-card,.journey-trip-card{transition:none!important;}
}
