:root {
  --sand:#F5EDD6; --terracotta:#C4622D; --deep:#1A1208;
  --moss:#4A5E3A; --gold:#D4A853; --cream:#FBF7EE;
  --muted:#8B7355; --border:#E4D9C4; --white:#FFFFFF;
  /* Dark app tokens */
  --app-bg:#1a1f2e;
  --app-surface:#1f2636;
  --app-border:rgba(196,98,45,0.12);
  --app-text:#f1f5f9;
  --app-muted:#94a3b8;
  --app-faint:rgba(255,255,255,0.04);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--deep);min-height:100vh}

/* ── HERO (landing page wrapper — layout handled by Tailwind) ── */
#hero{display:block}

/* ── APP SHELL ── */
#app{display:none;min-height:100vh;background:var(--app-bg)}
.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}

/* ── SIDEBAR ── */
.sb{
  background:rgba(0,0,0,0.3);
  border-right:1px solid var(--app-border);
  padding:1.75rem 1.25rem;
  position:sticky;top:0;height:100vh;
  overflow-y:auto;
  display:flex;flex-direction:column;
  backdrop-filter:blur(12px);
}
.sb-logo{
  display:flex;align-items:center;gap:12px;
  margin-bottom:1.75rem;
  padding-bottom:1.25rem;
  border-bottom:1px solid var(--app-border);
}
.sl{flex:1;display:flex;flex-direction:column;gap:3px}

/* Sidebar step rows */
.sr{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:10px;
  cursor:pointer;transition:all .2s;
}
.sr:hover:not(.act){background:rgba(196,98,45,0.07)}
.sr.act{
  background:var(--terracotta);
  box-shadow:0 4px 15px rgba(196,98,45,0.3);
}
.sr.dn{background:rgba(196,98,45,0.07)}

.sr-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
  color:rgba(241,245,249,0.25);
  transition:color .2s;
}
.sr.act .sr-icon,.sr.dn .sr-icon{color:#fff}
.sr.dn .sr-icon{color:var(--terracotta)}

.sn{
  width:18px;height:18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;flex-shrink:0;
  background:transparent;color:transparent;
  transition:all .2s;
}
.sr.dn .sn{background:var(--moss);color:#fff}
.sr.act .sn{background:rgba(255,255,255,0.25);color:#fff}

.st{flex:1;min-width:0}
.st b{
  display:block;font-size:13px;font-weight:600;
  color:rgba(241,245,249,0.3);
  transition:color .2s;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sr.act .st b{color:#fff;font-weight:700}
.sr.dn .st b{color:rgba(241,245,249,0.55)}
.st small{font-size:11px;color:rgba(241,245,249,0.18)}
.sr.act .st small{color:rgba(255,255,255,0.7)}
.sr.dn .st small{color:rgba(241,245,249,0.3)}

.ssum{
  border:1px solid var(--app-border);
  border-radius:12px;padding:.875rem;
  margin-top:1.25rem;
  background:rgba(196,98,45,0.05);
}
.ssum h5{
  font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.5rem;font-weight:700;
}
.chip{
  display:inline-block;
  background:rgba(196,98,45,0.15);
  color:var(--terracotta);
  border:1px solid rgba(196,98,45,0.25);
  border-radius:100px;padding:3px 10px;
  font-size:11px;margin:2px;font-weight:600;
}

/* ── PANEL ── */
.panel{padding:2.5rem 3rem;background:var(--app-bg);animation:fi .35s ease;min-height:100vh}
@keyframes fi{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* Step header */
.ptag{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
  margin-bottom:10px;
}
.ptag::before{content:'';display:block;width:24px;height:2px;background:var(--gold);border-radius:2px}
.phead{
  font-family:'Playfair Display',serif;
  font-size:clamp(26px,3.5vw,42px);
  line-height:1.1;margin-bottom:10px;
  color:var(--app-text);font-weight:700;
}
.pdesc{
  font-size:15px;color:var(--app-muted);
  line-height:1.65;margin-bottom:2rem;max-width:540px;
}
.pdesc strong{color:var(--app-text)}

/* ── INPUTS ── */
.fl{
  font-size:11px;font-weight:700;
  color:var(--app-muted);
  letter-spacing:.06em;text-transform:uppercase;
  margin-bottom:8px;display:block;
}
.ti{
  width:100%;
  border:1.5px solid rgba(255,255,255,0.08) !important;
  border-radius:10px !important;
  padding:12px 16px;
  font-family:'DM Sans',sans-serif;font-size:16px;
  background:rgba(255,255,255,0.04) !important;
  outline:none;color:var(--app-text) !important;
  transition:border-color .2s,background .2s;
  box-shadow:none !important;
}
.ti:focus{border-color:var(--terracotta) !important;background:rgba(196,98,45,0.05) !important}
.ti::placeholder{color:rgba(241,245,249,0.22)}
input[type="date"].ti{cursor:pointer;color-scheme:dark}
.cust-sel{position:relative}
.cust-sel-btn{display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}
.cust-sel-list{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#1a1f2e;border:1.5px solid rgba(255,255,255,0.1);border-radius:10px;z-index:99;overflow:hidden}
.cust-sel-list.open{display:block}
.cust-sel-item{padding:11px 16px;font-size:14px;color:#f1f5f9;cursor:pointer;transition:background .15s}
.cust-sel-item:hover{background:rgba(196,98,45,0.18);color:var(--terracotta)}
.div{height:1px;background:rgba(255,255,255,0.06);margin:2rem 0}

/* ── FLATPICKR DARK THEME OVERRIDES ── */
.flatpickr-calendar{
  background:#1f2636 !important;
  border:1px solid rgba(196,98,45,0.25) !important;
  border-radius:14px !important;
  box-shadow:0 24px 48px rgba(0,0,0,0.6),0 0 0 1px rgba(196,98,45,0.1) !important;
  font-family:'DM Sans',sans-serif !important;
  overflow:hidden;
}
.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{display:none}
.flatpickr-months{
  background:#161d2e !important;
  border-radius:14px 14px 0 0 !important;
  padding:8px 0 !important;
}
.flatpickr-months .flatpickr-month{
  background:transparent !important;
  color:#f1f5f9 !important;
  height:42px !important;
}
.flatpickr-current-month{
  font-size:15px !important;
  font-weight:700 !important;
  color:#f1f5f9 !important;
  padding-top:8px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months{
  background:#161d2e !important;
  color:#f1f5f9 !important;
  font-weight:700 !important;
  border:none !important;
  appearance:none;
  -webkit-appearance:none;
}
.flatpickr-current-month input.cur-year{
  color:#f1f5f9 !important;
  font-weight:700 !important;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month{
  color:#c4622d !important;
  fill:#c4622d !important;
  padding:10px 14px !important;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover{
  color:#fff !important;
}
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg{fill:#fff !important}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg{fill:#c4622d !important}
.flatpickr-weekdays{
  background:#1f2636 !important;
  border-bottom:1px solid rgba(255,255,255,0.05) !important;
}
span.flatpickr-weekday{
  background:transparent !important;
  color:rgba(196,98,45,0.8) !important;
  font-weight:800 !important;
  font-size:10.5px !important;
  letter-spacing:.05em !important;
}
.dayContainer{
  background:#1f2636 !important;
  padding:6px !important;
}
.flatpickr-days{background:#1f2636 !important}
.flatpickr-day{
  color:#cbd5e1 !important;
  border-radius:8px !important;
  height:36px !important;
  line-height:36px !important;
  font-size:13.5px !important;
  border:1px solid transparent !important;
  transition:background .15s, color .15s !important;
}
.flatpickr-day:hover{
  background:rgba(196,98,45,0.18) !important;
  border-color:rgba(196,98,45,0.3) !important;
  color:#f1f5f9 !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover{
  background:#c4622d !important;
  border-color:#c4622d !important;
  color:#fff !important;
  font-weight:700 !important;
  box-shadow:0 4px 12px rgba(196,98,45,0.4) !important;
}
.flatpickr-day.today{
  border-color:rgba(196,98,45,0.6) !important;
  color:#c4622d !important;
  font-weight:700 !important;
}
.flatpickr-day.today:hover{
  background:rgba(196,98,45,0.18) !important;
  color:#f1f5f9 !important;
}
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay{
  color:rgba(241,245,249,0.18) !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{
  color:rgba(241,245,249,0.12) !important;
  background:transparent !important;
  cursor:not-allowed !important;
}

/* ── CHOICE CARDS ── */
.bc{
  display:flex;align-items:center;gap:16px;
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:12px;
  padding:1.1rem 1.4rem;
  cursor:pointer;transition:all .2s;
  background:rgba(255,255,255,0.03);
  margin-bottom:10px;
}
.bc:hover,.bc.sel{
  border-color:var(--terracotta);
  background:rgba(196,98,45,0.08);
}
.bc .bci{font-size:28px;flex-shrink:0}
.bc h4{font-size:15px;font-weight:600;color:var(--app-text)}
.bc p{font-size:12px;color:var(--app-muted);margin-top:3px}

/* ── INTEREST GRID CARDS ── */
.cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:1.5rem}
.ci-card{
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:12px;padding:1.1rem .9rem;
  cursor:pointer;text-align:center;
  background:rgba(255,255,255,0.03);
  transition:all .2s;
}
.ci-card:hover,.ci-card.sel{
  border-color:var(--terracotta);
  background:rgba(196,98,45,0.1);
}
.ci-card .ico{font-size:30px;margin-bottom:8px}
.ci-card b{font-size:13px;font-weight:600;display:block;color:var(--app-text)}
.ci-card small{font-size:11px;color:var(--app-muted)}

/* ── DESTINATION ── */
.dsw{position:relative;margin-bottom:1rem}
#dsugg,#nsugg,#dcsugg{
  position:absolute;top:100%;left:0;right:0;
  background:#1f2636;
  border:1.5px solid var(--terracotta);
  border-top:none;border-radius:0 0 10px 10px;
  z-index:50;max-height:220px;overflow-y:auto;display:none;
}
.sgi{padding:10px 16px;font-size:14px;cursor:pointer;color:var(--app-text);transition:background .15s}
.sgi:hover{background:rgba(196,98,45,0.12)}
.cc{display:flex;flex-direction:column;gap:10px;margin-top:.5rem}
.ccard{
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:12px;padding:1rem 1.25rem;
  background:rgba(255,255,255,0.03);
  flex-wrap:wrap;gap:10px;
}
.ccard-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.ccard .ccl{display:flex;align-items:center;gap:12px}
.ccard .cflag{font-size:28px}
.ccard h4{font-size:15px;font-weight:600;color:var(--app-text)}
.ccard small{font-size:12px;color:var(--app-muted)}
.dc{display:flex;align-items:center;gap:10px}
.db{
  width:30px;height:30px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.12);
  background:none;cursor:pointer;font-size:16px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;color:var(--app-text);
}
.db:hover{border-color:var(--terracotta);color:var(--terracotta)}
.dv{font-size:18px;font-weight:600;width:36px;text-align:center;color:var(--app-text)}
.dx{background:none;border:none;cursor:pointer;color:rgba(241,245,249,0.22);font-size:18px;padding:0 0 0 8px;transition:color .2s}
.dx:hover{color:#f87171}
.tdb{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;
  background:rgba(196,98,45,0.08);
  border:1px solid rgba(196,98,45,0.2);
  border-radius:10px;margin-top:1rem;
  color:var(--app-text);font-size:14px;
}
.tdb strong{color:var(--gold);font-size:18px}
.frow{display:flex;gap:1rem;margin-bottom:1.25rem}
.frow .fcol{flex:1;min-width:0}
.trav-ctr{
  display:flex;align-items:center;gap:10px;height:46px;
  background:rgba(255,255,255,0.04);
  border:1.5px solid rgba(255,255,255,0.08);
  border-radius:10px;padding:0 14px;
}
.trav-val{font-size:18px;font-weight:700;color:var(--app-text);min-width:24px;text-align:center}
.trav-lbl{font-size:13px;color:var(--app-muted);margin-left:4px}

/* ── CITY SELECTION ── */
.city-section{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,0.06)}
.city-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted);display:block;margin-bottom:8px}
.city-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.city-chip{
  border:1.5px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.04);
  color:var(--app-text);border-radius:100px;
  padding:5px 13px;font-size:12px;
  font-family:'DM Sans',sans-serif;
  cursor:pointer;transition:all .18s;
}
.city-chip:hover{border-color:var(--terracotta);color:var(--terracotta)}
.city-chip.sel{background:var(--terracotta);border-color:var(--terracotta);color:#fff;font-weight:600}
.city-custom-input{
  width:100%;
  border:1.5px dashed rgba(255,255,255,0.12);
  border-radius:8px;padding:8px 14px;
  font-size:16px;font-family:'DM Sans',sans-serif;
  background:transparent;color:var(--app-text);outline:none;
  margin-top:4px;transition:border-color .2s;
}
.city-custom-input::placeholder{color:rgba(241,245,249,0.2)}
.city-custom-input:focus{border-color:var(--terracotta);border-style:solid}
.city-selected-summary{font-size:12px;color:#6ee7b7;font-weight:600;margin-top:8px}

/* ── VISA ── */
.voc{
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:14px;padding:1.4rem;
  background:rgba(255,255,255,0.03);
  cursor:pointer;transition:all .25s;margin-bottom:12px;
}
.voc:hover,.voc.sel{border-color:var(--terracotta);background:rgba(196,98,45,0.08)}
.voh{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.voi{font-size:28px}
.voc h3{font-size:17px;font-weight:600;color:var(--app-text)}
.voc p{font-size:13px;color:var(--app-muted);line-height:1.6}

/* ── CONSULTANT FORM ── */
.cform{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;padding:1.75rem;margin-top:1rem;
}
.cform h3{font-family:'Playfair Display',serif;font-size:20px;margin-bottom:4px;color:var(--app-text)}
.cform p{font-size:13px;color:var(--app-muted);margin-bottom:1.5rem}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fg{display:flex;flex-direction:column;gap:5px}

/* ── PROVIDER CARDS ── */
.pcard{
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:14px;padding:1.25rem 1.5rem;
  background:rgba(255,255,255,0.03);
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:10px;flex-wrap:wrap;gap:12px;
  transition:border-color .2s;
}
.pcard:hover{border-color:rgba(196,98,45,0.4)}
.pcl{display:flex;align-items:center;gap:14px}
.picon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.picon.sky{background:#00B2F5}.picon.book{background:#003580;color:#fff}.picon.air{background:#FF5A5F}.picon.grab{background:#00B14F}
.pcard h4{font-size:15px;font-weight:600;color:var(--app-text)}
.pcard p{font-size:12px;color:var(--app-muted);margin-top:2px}
.phint{font-size:11px;color:#6ee7b7;font-weight:600;margin-top:3px}
.obtn{
  background:var(--terracotta);color:#fff;
  border:none;cursor:pointer;
  padding:10px 22px;border-radius:100px;
  font-size:13px;font-weight:600;
  font-family:'DM Sans',sans-serif;
  transition:all .2s;white-space:nowrap;
  text-decoration:none;display:inline-block;
}
.obtn:hover{background:rgba(196,98,45,0.85);transform:translateY(-1px)}
.obtn.sec{background:transparent;border:1.5px solid rgba(255,255,255,0.12);color:var(--app-text)}
.obtn.sec:hover{border-color:var(--terracotta);color:var(--terracotta)}

/* ── AI RESULT BOX ── */
.aib{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;
  padding:2rem;margin:1.25rem 0;
  position:relative;
}
.aib::after{content:'✦';position:absolute;top:1.25rem;right:1.5rem;color:var(--gold);font-size:15px}

/* ── FORMATTED AI CONTENT ── */
.aic{font-size:14.5px;line-height:1.75;color:#cbd5e1}

/* Country heading */
.aic h2.country-h{
  font-family:'Playfair Display',serif;
  font-size:22px;font-weight:700;
  color:var(--app-text);
  margin:2rem 0 .875rem;
  padding-bottom:.75rem;
  border-bottom:1px solid rgba(255,255,255,0.08);
  display:flex;align-items:center;gap:10px;
}
.aic h2.country-h:first-child{margin-top:0}

/* Section heading */
.aic h3.section-h{
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
  color:var(--app-muted);margin:1.5rem 0 .5rem;
}

/* Day card heading (non-day h4 fallback) */
.aic h4.sub-h{
  font-size:14px;font-weight:700;
  color:var(--app-text);margin:1.5rem 0 .6rem;
  padding:9px 14px;
  background:rgba(196,98,45,0.1);
  border-radius:8px;
  border-left:3px solid var(--terracotta);
  letter-spacing:.01em;
}

/* ── Day Timeline Card ── */
.day-card{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;padding:20px 22px;
  margin:1.25rem 0;
}
.day-card-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:18px;
}
.day-card-title{
  font-family:'Playfair Display',serif;
  font-size:17px;font-weight:700;color:var(--app-text);
}
.day-card-date{
  font-size:11.5px;font-weight:700;
  color:var(--terracotta);letter-spacing:.07em;
}
.day-card-timeline{display:flex;flex-direction:column}
.itin-entry{display:flex;gap:14px}
.itin-col{
  display:flex;flex-direction:column;align-items:center;
  width:72px;flex-shrink:0;
}
.itin-time{
  font-size:10.5px;font-weight:600;color:var(--app-muted);
  margin-bottom:5px;white-space:nowrap;text-align:center;
}
.itin-dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--terracotta);flex-shrink:0;
}
.itin-line{
  flex:1;width:1px;background:rgba(196,98,45,0.22);
  min-height:12px;margin-top:4px;
}
.itin-entry:last-of-type .itin-line{display:none}
.itin-body{flex:1;padding-bottom:18px}
.itin-entry:last-of-type .itin-body{padding-bottom:0}
.itin-place{font-size:13.5px;font-weight:700;color:var(--app-text);margin-bottom:3px}
.itin-desc{font-size:12px;color:var(--app-muted);line-height:1.5}
.day-total{
  margin-top:14px;padding-top:12px;
  border-top:1px solid rgba(255,255,255,0.06);
  font-size:12px;font-weight:700;color:var(--terracotta);
}

/* ── Visa Status Badges ── */
.aic .visa-badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 18px;border-radius:100px;
  font-size:13px;font-weight:700;letter-spacing:.02em;
}
.badge-free {background:rgba(74,222,128,0.12);color:#4ade80;border:1px solid rgba(74,222,128,0.25)}
.badge-voa  {background:rgba(251,191,36,0.12);color:#fbbf24;border:1px solid rgba(251,191,36,0.25)}
.badge-evisa{background:rgba(96,165,250,0.12);color:#60a5fa;border:1px solid rgba(96,165,250,0.25)}
.badge-req  {background:rgba(251,146,60,0.12);color:#fb923c;border:1px solid rgba(251,146,60,0.25)}
.badge-hard {background:rgba(248,113,113,0.12);color:#f87171;border:1px solid rgba(248,113,113,0.25)}

/* ── Info rows ── */
.aic .info-row{
  display:flex;align-items:flex-start;
  padding:11px 0;border-bottom:1px solid rgba(255,255,255,0.05);
  gap:12px;
}
.aic .info-row:last-of-type{border-bottom:none}
.aic .ir-label{
  font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;color:var(--app-muted);
  flex-shrink:0;width:120px;padding-top:3px;line-height:1.3;
}
.aic .ir-val{font-size:14px;color:#e2e8f0;line-height:1.6;flex:1;font-weight:500}
.aic .ir-val a{
  color:var(--terracotta);font-weight:700;
  text-decoration:underline;text-underline-offset:3px;
}
.aic .ir-val a:hover{opacity:.8}

/* Apply button */
.aic .apply-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 14px;
  background:rgba(196,98,45,0.1);
  border:1px solid rgba(196,98,45,0.35);
  color:var(--terracotta) !important;
  border-radius:8px;font-size:12.5px;font-weight:700;
  text-decoration:none !important;
  transition:background .15s,border-color .15s;
  letter-spacing:.01em;
}
.aic .apply-btn:hover{background:rgba(196,98,45,0.2);border-color:rgba(196,98,45,0.55)}

/* Cost pills */
.aic .cost-pill{display:inline-block;font-weight:700;font-size:14px;padding:3px 12px;border-radius:8px}
.cost-free{background:rgba(74,222,128,0.12);color:#4ade80}
.cost-paid{background:rgba(251,146,60,0.12);color:#fb923c}

/* ── Warning / Tip boxes ── */
.aic .warn-box{
  background:rgba(196,98,45,0.08);
  border-left:3px solid var(--terracotta);
  border-radius:0 10px 10px 0;
  padding:10px 14px;margin:10px 0;
  font-size:13.5px;line-height:1.65;color:#f1c4a0;
}
.aic .tip-box{
  background:rgba(74,94,58,0.15);
  border-left:3px solid var(--moss);
  border-radius:0 10px 10px 0;
  padding:10px 14px;margin:10px 0;
  font-size:13.5px;line-height:1.65;color:#a8c9a0;
}

/* ── Budget / Data Table ── */
.aic .table-wrap{
  border-radius:12px;overflow:hidden;
  border:1px solid rgba(255,255,255,0.07);
  margin:1.25rem 0;
  box-shadow:0 4px 20px rgba(0,0,0,0.25);
}
.aic .itin-table{width:100%;border-collapse:collapse;font-size:13.5px}
.aic .itin-table th{
  background:rgba(196,98,45,0.15);
  color:var(--app-text);padding:11px 14px;
  font-weight:700;font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;
  border-bottom:1px solid rgba(196,98,45,0.2);
}
.aic .itin-table th:first-child{text-align:left}
.aic .itin-table th.num{text-align:right}
.aic .itin-table td{
  padding:10px 14px;
  border-bottom:1px solid rgba(255,255,255,0.04);
  color:#cbd5e1;font-size:13.5px;
}
.aic .itin-table td.num{text-align:right;font-variant-numeric:tabular-nums;color:#e2e8f0}
.aic .itin-table tr:nth-child(even) td{background:rgba(255,255,255,0.02)}
.aic .itin-table tr.total-row td{
  background:rgba(196,98,45,0.12) !important;
  border-top:1.5px solid rgba(196,98,45,0.3);
  border-bottom:none;
  font-weight:700;color:var(--app-text);
  font-size:14px;
}
.aic .itin-table tr.total-row td.num{color:var(--terracotta)}

/* ── Section divider ── */
.aic .visa-divider{height:1px;background:rgba(255,255,255,0.07);margin:1.75rem 0}

/* ── Travel Essentials card grid ── */
.ess-aib{padding:1.5rem}
.aic.ess-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}
.ess-card{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:14px;
  padding:16px 18px;
  transition:border-color .2s,box-shadow .2s;
}
.ess-card:hover{border-color:rgba(196,98,45,0.3);box-shadow:0 2px 16px rgba(0,0,0,0.18)}

/* Scams & Tourist Traps — red accent */
.ess-card.ess-danger{border-color:rgba(220,60,60,0.25);background:rgba(220,60,60,0.04)}
.ess-card.ess-danger:hover{border-color:rgba(220,60,60,0.45)}
.ess-card.ess-danger h3.section-h{color:#f87171 !important;border-bottom-color:rgba(220,60,60,0.2) !important}
.ess-card.ess-danger li::marker{color:#f87171}
.ess-card.ess-danger li strong{color:#fca5a5}

/* Hidden Costs — amber accent */
.ess-card.ess-money{border-color:rgba(234,179,8,0.25);background:rgba(234,179,8,0.04)}
.ess-card.ess-money:hover{border-color:rgba(234,179,8,0.45)}
.ess-card.ess-money h3.section-h{color:#fbbf24 !important;border-bottom-color:rgba(234,179,8,0.2) !important}
.ess-card.ess-money li::marker{color:#fbbf24}
.ess-card.ess-money li strong{color:#fde68a}

/* Emergency — blue accent */
.ess-card.ess-sos{border-color:rgba(59,130,246,0.25);background:rgba(59,130,246,0.04)}
.ess-card.ess-sos:hover{border-color:rgba(59,130,246,0.45)}
.ess-card.ess-sos h3.section-h{color:#60a5fa !important;border-bottom-color:rgba(59,130,246,0.2) !important}
.ess-card.ess-sos li::marker{color:#60a5fa}

/* eSIM & Connectivity — violet */
.ess-card.ess-esim{border-color:rgba(167,139,250,0.25);background:rgba(167,139,250,0.04)}
.ess-card.ess-esim:hover{border-color:rgba(167,139,250,0.45)}
.ess-card.ess-esim h3.section-h{color:#a78bfa !important;border-bottom-color:rgba(167,139,250,0.2) !important}
.ess-card.ess-esim li::marker{color:#a78bfa}
.ess-card.ess-esim li strong{color:#c4b5fd}

/* Health & Vaccines — green */
.ess-card.ess-health{border-color:rgba(74,222,128,0.25);background:rgba(74,222,128,0.04)}
.ess-card.ess-health:hover{border-color:rgba(74,222,128,0.45)}
.ess-card.ess-health h3.section-h{color:#4ade80 !important;border-bottom-color:rgba(74,222,128,0.2) !important}
.ess-card.ess-health li::marker{color:#4ade80}
.ess-card.ess-health li strong{color:#86efac}

/* Money & ATMs — gold */
.ess-card.ess-cash{border-color:rgba(212,168,83,0.25);background:rgba(212,168,83,0.04)}
.ess-card.ess-cash:hover{border-color:rgba(212,168,83,0.45)}
.ess-card.ess-cash h3.section-h{color:#d4a853 !important;border-bottom-color:rgba(212,168,83,0.2) !important}
.ess-card.ess-cash li::marker{color:#d4a853}
.ess-card.ess-cash li strong{color:#f0cc7a}

/* Airport Transfers — cyan */
.ess-card.ess-airport{border-color:rgba(34,211,238,0.25);background:rgba(34,211,238,0.04)}
.ess-card.ess-airport:hover{border-color:rgba(34,211,238,0.45)}
.ess-card.ess-airport h3.section-h{color:#22d3ee !important;border-bottom-color:rgba(34,211,238,0.2) !important}
.ess-card.ess-airport li::marker{color:#22d3ee}
.ess-card.ess-airport li strong{color:#67e8f9}

/* Etiquette & Customs — terracotta */
.ess-card.ess-etiq{border-color:rgba(196,98,45,0.25);background:rgba(196,98,45,0.04)}
.ess-card.ess-etiq:hover{border-color:rgba(196,98,45,0.45)}
.ess-card.ess-etiq h3.section-h{color:var(--terracotta) !important;border-bottom-color:rgba(196,98,45,0.2) !important}
.ess-card.ess-etiq li::marker{color:var(--terracotta)}
.ess-card.ess-etiq li strong{color:#e8925a}

/* Must-Have Apps — indigo */
.ess-card.ess-apps{border-color:rgba(129,140,248,0.25);background:rgba(129,140,248,0.04)}
.ess-card.ess-apps:hover{border-color:rgba(129,140,248,0.45)}
.ess-card.ess-apps h3.section-h{color:#818cf8 !important;border-bottom-color:rgba(129,140,248,0.2) !important}
.ess-card.ess-apps li::marker{color:#818cf8}
.ess-card.ess-apps li strong{color:#a5b4fc}

/* Packing List — teal */
.ess-card.ess-pack{border-color:rgba(45,212,191,0.25);background:rgba(45,212,191,0.04)}
.ess-card.ess-pack:hover{border-color:rgba(45,212,191,0.45)}
.ess-card.ess-pack h3.section-h{color:#2dd4bf !important;border-bottom-color:rgba(45,212,191,0.2) !important}
.ess-card.ess-pack li::marker{color:#2dd4bf}
.ess-card.ess-pack li strong{color:#5eead4}

/* Card heading shared */
.ess-card h3.section-h{
  font-size:12px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.07em !important;
  color:var(--app-text) !important;
  margin:0 0 12px !important;
  padding-bottom:9px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.ess-card ul{padding-left:1.25rem;margin:0}
.ess-card li{
  font-size:13px;line-height:1.7;
  color:#94a3b8;margin:6px 0;padding-left:2px;
}
.ess-card li::marker{color:var(--terracotta)}
.ess-card li strong{color:#cbd5e1}
@media(max-width:640px){.aic.ess-grid{grid-template-columns:1fr}}

/* ── Lists ── */
.aic ul,.aic ol{padding-left:1.4rem;margin:.5rem 0}
.aic li{font-size:14px;line-height:1.7;color:#cbd5e1;margin:5px 0;padding-left:3px}
.aic ul li::marker{color:var(--terracotta)}
.aic ol li::marker{color:var(--app-muted);font-weight:600}

/* ── Paragraph & inline ── */
.aic p{margin:.6rem 0;font-size:14px;color:#cbd5e1;line-height:1.75}
.aic strong{color:var(--app-text);font-weight:700}
.aic em{font-style:italic;color:var(--app-muted)}
.aic code{background:rgba(255,255,255,0.07);border-radius:4px;padding:1px 6px;font-size:12.5px;font-family:monospace;color:var(--app-text)}
.aic hr{border:none;border-top:1px solid rgba(255,255,255,0.07);margin:1.5rem 0}
/* All links in AI content — clearly visible as terracotta underline */
.aic a{
  color:var(--terracotta) !important;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1.5px;
}
.aic a:hover{opacity:.75}

/* ── Visa accuracy disclaimer ── */
.visa-disclaimer{
  display:flex;align-items:flex-start;gap:10px;
  background:rgba(212,168,83,0.07);
  border:1px solid rgba(212,168,83,0.25);
  border-left:3px solid #d4a853;
  border-radius:10px;padding:12px 16px;
  font-size:12.5px;color:#c8a84b;
  margin-bottom:1rem;line-height:1.55;
}
.visa-disclaimer .material-symbols-outlined{
  font-size:17px;flex-shrink:0;margin-top:1px;
}
.visa-disclaimer strong{color:#d4a853}

/* ── Affiliate Sections ── */
.aff-section{margin:1.5rem 0 0}
.aff-section h4{
  font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;color:var(--app-muted);
  margin-bottom:10px;display:flex;align-items:center;gap:6px;
}
.aff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.aff-card{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:12px;padding:14px;
  display:flex;flex-direction:column;gap:8px;
  transition:border-color .2s;
}
.aff-card:hover{border-color:rgba(196,98,45,0.3)}
.aff-card-icon{width:32px;height:32px;object-fit:contain;border-radius:6px;display:block}
.aff-card-label{font-size:12.5px;font-weight:700;color:var(--app-text)}
.aff-card-sub{font-size:11px;color:var(--app-muted);line-height:1.4;flex:1}
.aff-card-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;
  padding:6px 10px;border-radius:7px;font-size:12px;font-weight:700;
  background:rgba(196,98,45,0.12);border:1px solid rgba(196,98,45,0.3);
  color:var(--terracotta);text-decoration:none;
  transition:background .15s;
}
.aff-card-btn::after{
  content:'5% OFF';
  background:#16a34a;color:#fff;
  font-size:9px;font-weight:800;letter-spacing:.3px;
  padding:2px 5px;border-radius:4px;
  flex-shrink:0;
}
.aff-card-btn:hover{background:rgba(196,98,45,0.22)}
.aff-inline{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center;
}
.aff-inline-label{font-size:11.5px;color:var(--app-muted);font-weight:600;margin-right:2px}
.aff-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);
  color:#e2e8f0;text-decoration:none;transition:border-color .15s,background .15s;
}
.aff-pill:hover{border-color:rgba(196,98,45,0.4);background:rgba(196,98,45,0.08);color:var(--terracotta)}
.aff-pill::after{
  content:'5% OFF';
  background:#16a34a;color:#fff;
  font-size:8px;font-weight:800;letter-spacing:.3px;
  padding:1px 4px;border-radius:3px;
  flex-shrink:0;
}

/* ── Info / Loading ── */
.ibox{
  background:rgba(212,168,83,0.08);
  border:1px solid rgba(212,168,83,0.2);
  border-radius:10px;padding:12px 16px;
  font-size:13px;color:#d4a853;margin:1rem 0;line-height:1.5;
}
.ibox a{color:var(--terracotta);text-decoration:underline}
.dots{display:flex;gap:6px;padding:.5rem 0}
.dots span{width:8px;height:8px;border-radius:50%;background:var(--terracotta);animation:bop 1.2s infinite}
.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
@keyframes bop{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-8px);opacity:1}}

/* ── Buttons ── */
.nbtn{
  background:var(--terracotta);color:#fff;
  border:none;cursor:pointer;
  padding:14px 40px;border-radius:100px;
  font-family:'DM Sans',sans-serif;
  font-size:14px;font-weight:700;
  letter-spacing:.03em;transition:all .25s;
  margin-top:1.75rem;
  box-shadow:0 4px 15px rgba(196,98,45,0.3);
}
.nbtn:hover:not(:disabled){
  background:rgba(196,98,45,0.85);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(196,98,45,0.4);
}
.nbtn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}

/* ── Utility ── */
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:1.25rem}
.ibtn{display:inline-flex;align-items:center;gap:6px}
.icon-sm{font-size:15px}
.icon-md{font-size:16px}

/* ── Range slider ── */
.rw{margin:.75rem 0 1.25rem}
.rv{font-size:26px;font-weight:700;color:var(--terracotta);text-align:center;margin-bottom:10px}
input[type=range]{width:100%;accent-color:var(--terracotta)}
.re{display:flex;justify-content:space-between;font-size:11px;color:var(--app-muted);margin-top:4px}

/* ── Success box ── */
.sbox{
  background:rgba(196,98,45,0.08);
  border:1px solid rgba(196,98,45,0.2);
  border-radius:16px;padding:2.5rem;
  text-align:center;margin-top:2rem;
}
.sbox h2{font-family:'Playfair Display',serif;color:var(--app-text);font-size:30px;margin:1rem 0 .5rem}
.sbox p{color:var(--app-muted);font-size:14px;margin-bottom:1.5rem;line-height:1.65}

/* ── Mobile sidebar overlay + burger ── */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:199;}
.burger-btn{display:none;position:fixed;top:14px;right:14px;z-index:200;
  background:var(--terracotta);color:#fff;border:none;border-radius:8px;
  padding:8px 12px;cursor:pointer;font-size:18px;line-height:1;
  box-shadow:0 2px 12px rgba(196,98,45,0.4);}

/* ── Responsive ── */
@media(max-width:768px){
  .sb{position:fixed;top:0;left:0;height:100vh;z-index:201;
      transform:translateX(-110%);transition:transform .3s ease;width:280px;}
  .sb.open{transform:translateX(0);}
  .burger-btn{display:flex;align-items:center;justify-content:center;}
  .shell{display:block;}
  .panel{padding:1.25rem;}
  .fr{grid-template-columns:1fr;}
}

/* ── AI Error box ── */
.ai-error{display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:2rem;border-left:3px solid var(--terracotta);border-radius:10px;
  background:rgba(196,98,45,0.06);text-align:center;}
.ai-error-icon{font-size:32px;}
.ai-error-msg{font-size:14px;color:var(--app-muted);line-height:1.6;max-width:360px;}

/* ── Onboarding Tour ── */
.tour-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:900;pointer-events:all;}
.tour-tooltip{position:fixed;z-index:901;background:var(--app-surface);
  border:1px solid rgba(196,98,45,0.3);border-radius:16px;padding:1.5rem;
  width:300px;box-shadow:0 16px 48px rgba(0,0,0,0.5);}
.tour-tooltip h4{font-family:'Playfair Display',serif;font-size:18px;
  color:var(--app-text);margin-bottom:8px;}
.tour-tooltip p{font-size:13.5px;color:var(--app-muted);line-height:1.6;margin-bottom:1.25rem;}
.tour-actions{display:flex;gap:10px;justify-content:flex-end;}
.tour-skip{background:none;border:none;color:var(--app-muted);
  font-size:13px;cursor:pointer;padding:6px 10px;}
.tour-skip:hover{color:var(--app-text);}
.tour-dots{display:flex;gap:6px;align-items:center;margin-right:auto;}
.tour-dot{width:7px;height:7px;border-radius:50%;background:rgba(196,98,45,0.25);transition:background .2s;}
.tour-dot.act{background:var(--terracotta);}

/* ── Shared trip banner ── */
.shared-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 16px;border-radius:10px;background:rgba(196,98,45,0.1);
  border:1px solid rgba(196,98,45,0.25);font-size:13px;color:var(--app-muted);
  margin-bottom:1rem;}
.shared-banner strong{color:var(--terracotta);}
.shared-banner button{background:none;border:none;color:var(--app-muted);cursor:pointer;font-size:16px;}

/* ── Place Photo Hover ── */
.place-tag{
  color:var(--terracotta);font-weight:700;
  text-decoration:underline;text-decoration-style:dotted;
  text-underline-offset:3px;cursor:pointer;
  transition:opacity .15s;
}
.place-tag:hover{opacity:.75}
#placePopup{
  position:fixed;z-index:9999;
  background:var(--app-surface);
  border:1px solid var(--app-border);
  border-radius:14px;padding:12px;
  width:296px;
  box-shadow:0 24px 60px rgba(0,0,0,0.65),0 0 0 1px rgba(196,98,45,0.08);
  pointer-events:auto;
}
.pp-name{
  font-size:10.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.09em;color:var(--app-muted);margin-bottom:10px;
}
.pp-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pp-grid img{
  width:100%;height:90px;object-fit:cover;
  border-radius:8px;background:rgba(255,255,255,.04);
  display:block;transition:opacity .2s;
}
.pp-grid img.pp-wide{grid-column:span 2;height:140px}
.pp-loading{padding:18px 0;display:flex;justify-content:center}
.pp-none{font-size:12px;color:var(--app-muted);text-align:center;padding:12px 0}

/* ── Auth Modal ── */
.em-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:1000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.em-box{background:var(--app-surface);border:1px solid var(--app-border);border-radius:20px;padding:40px 36px;max-width:420px;width:90%;text-align:center;box-shadow:0 40px 80px rgba(0,0,0,0.5);position:relative}
.em-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--app-muted);font-size:18px;cursor:pointer}
.em-icon{font-size:48px;margin-bottom:16px}
.em-box h3{font-family:'Playfair Display',serif;font-size:22px;font-weight:800;color:var(--app-text);margin-bottom:8px}
.em-box p{font-size:14px;color:var(--app-muted);margin-bottom:20px}
.em-btn{width:100%;margin-bottom:10px;margin-top:10px}

/* Auth Tabs */
.auth-tabs{display:flex;border-bottom:1px solid var(--app-border);margin-bottom:1.5rem}
.auth-tab{
  flex:1;background:none;border:none;border-bottom:2px solid transparent;
  padding:10px 0;margin-bottom:-1px;
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;
  color:var(--app-muted);cursor:pointer;transition:all .2s;
}
.auth-tab.act{color:var(--terracotta);border-bottom-color:var(--terracotta)}
.auth-tab:hover:not(.act){color:var(--app-text)}
.auth-form{text-align:left}
.auth-error{min-height:18px;font-size:12.5px;color:#f87171;margin-bottom:8px}
.auth-google-btn{
  width:100%;background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1);border-radius:100px;
  padding:10px 20px;font-family:'DM Sans',sans-serif;
  font-size:13px;font-weight:600;color:var(--app-text);
  cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.auth-google-btn:hover{border-color:rgba(255,255,255,0.25);background:rgba(255,255,255,0.07)}

/* ── Sidebar User Block (top, below logo) ── */
.sb-user-block{
  padding:.75rem 0 .875rem;
  margin-bottom:.5rem;
  border-bottom:1px solid var(--app-border);
}
.sb-journeys-btn{
  display:flex;align-items:center;gap:8px;width:100%;
  background:rgba(196,98,45,0.08);border:1px solid rgba(196,98,45,0.2);
  border-radius:10px;padding:9px 12px;
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;
  color:var(--terracotta);cursor:pointer;transition:all .2s;
  margin-top:8px;
}
.sb-journeys-btn:hover{background:rgba(196,98,45,0.16)}
.sb-user{display:flex;align-items:center;gap:8px}
.sb-avatar{
  width:30px;height:30px;border-radius:50%;
  background:var(--terracotta);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;color:#fff;flex-shrink:0;
}
.sb-name{flex:1;font-size:13px;font-weight:600;color:var(--app-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-logout{
  background:none;border:none;color:var(--app-muted);
  font-size:11px;font-weight:600;cursor:pointer;
  padding:4px 8px;border-radius:6px;transition:all .2s;white-space:nowrap;
}
.sb-logout:hover{color:#f87171;background:rgba(248,113,113,0.08)}

/* ── Navbar Auth Area ── */
.nav-user-menu{position:relative}
.nav-user-badge{
  display:flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:100px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
  cursor:pointer;transition:border-color .2s;
  font-family:'DM Sans',sans-serif;
}
.nav-user-badge:hover{border-color:rgba(255,255,255,0.2)}
.nav-avatar{
  width:26px;height:26px;border-radius:50%;
  background:var(--terracotta);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:#fff;flex-shrink:0;
}
.nav-user-name{font-size:13px;font-weight:600;color:#f1f5f9}
.nav-dropdown{
  display:none;position:absolute;top:calc(100% + 10px);right:0;
  background:#1e2433;border:1px solid rgba(255,255,255,0.1);
  border-radius:14px;padding:6px;min-width:170px;
  box-shadow:0 12px 32px rgba(0,0,0,0.5);z-index:200;
}
.nav-dropdown.open{display:block}
.nav-dd-item{
  display:flex;align-items:center;gap:9px;width:100%;
  padding:9px 12px;border:none;background:none;
  color:#e2e8f0;font-size:13px;font-weight:600;
  border-radius:9px;cursor:pointer;transition:background .15s;
  font-family:'DM Sans',sans-serif;text-align:left;
}
.nav-dd-item:hover{background:rgba(255,255,255,0.06)}
.nav-dd-logout:hover{color:#f87171;background:rgba(248,113,113,0.08)!important}
.nav-dd-divider{height:1px;background:rgba(255,255,255,0.07);margin:4px 0}
.nav-login-btn{
  background:none;border:1.5px solid var(--terracotta);
  border-radius:100px;padding:7px 20px;
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:700;
  color:var(--terracotta);cursor:pointer;transition:all .2s;
}
.nav-login-btn:hover{background:var(--terracotta);color:#fff}

/* ── Journey Cards ── */
.jrn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:1rem}
.jrn-card{
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;padding:1.5rem;
  transition:border-color .2s,box-shadow .2s;
}
.jrn-card:hover{border-color:rgba(196,98,45,0.3);box-shadow:0 4px 20px rgba(0,0,0,0.2)}
.jrn-flags{font-size:32px;margin-bottom:10px}
.jrn-title{font-size:17px;font-weight:700;color:var(--app-text);margin-bottom:8px}
.jrn-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.jrn-chip{
  display:inline-block;background:rgba(196,98,45,0.1);color:var(--terracotta);
  border:1px solid rgba(196,98,45,0.2);border-radius:100px;
  padding:3px 10px;font-size:12px;font-weight:600;
}
.jrn-saved{font-size:11px;color:var(--app-muted);margin-bottom:14px}
.jrn-actions{display:flex;gap:8px}
.jrn-empty{text-align:center;padding:5rem 2rem;color:var(--app-muted)}
.jrn-empty h2{font-family:'Playfair Display',serif;font-size:26px;color:var(--app-text);margin:1rem 0 .5rem}
.jrn-empty p{font-size:14px;line-height:1.65;margin-bottom:2rem}

/* ── Trip View Overlay ── */
.trip-view-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.78);
  z-index:2000;overflow-y:auto;
  display:flex;align-items:flex-start;justify-content:center;
  padding:2rem 1rem;backdrop-filter:blur(4px);
}
.trip-view-box{
  background:var(--app-surface);border:1px solid var(--app-border);
  border-radius:20px;width:100%;max-width:820px;overflow:hidden;
  box-shadow:0 40px 80px rgba(0,0,0,0.6);
}
.trip-view-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:2rem;border-bottom:1px solid var(--app-border);
}
.trip-view-header h2{font-family:'Playfair Display',serif;font-size:24px;color:var(--app-text);margin:8px 0 4px}
.trip-view-header p{font-size:13px;color:var(--app-muted)}
.trip-view-content{padding:2rem;max-height:72vh;overflow-y:auto}
.tv-section-title{
  font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gold);margin:2rem 0 1rem;padding-bottom:8px;
  border-bottom:1px solid var(--app-border);
}
.tv-section-title:first-child{margin-top:0}

/* ── Step Progress Bar ── */
.pgbar{height:4px;background:var(--app-border);position:relative;border-radius:2px;margin-bottom:1.5rem}
.pgfill{height:100%;background:var(--terracotta);border-radius:2px;transition:width .4s ease}
.pglabel{position:absolute;right:0;top:8px;font-size:11px;color:var(--app-muted);font-weight:700;letter-spacing:.05em}

/* ── Welcome Back Screen ── */
.wc-screen{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:80vh;text-align:center;padding:2rem;
}
.wc-greeting h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(28px,4vw,42px);font-weight:700;
  color:var(--app-text);margin-bottom:.5rem;
}
.wc-greeting p{font-size:15px;color:var(--app-muted);margin-bottom:2.5rem}
.wc-cards{
  display:flex;flex-wrap:wrap;gap:16px;
  justify-content:center;max-width:760px;
}
.wc-card{
  flex:1;min-width:200px;max-width:240px;
  background:rgba(255,255,255,0.03);
  border:1.5px solid rgba(255,255,255,0.07);
  border-radius:18px;padding:2rem 1.5rem;
  cursor:pointer;transition:all .22s;
  text-align:center;
}
.wc-card:hover{
  border-color:var(--terracotta);
  background:rgba(196,98,45,0.08);
  transform:translateY(-3px);
  box-shadow:0 8px 28px rgba(196,98,45,0.18);
}
.wc-icon{font-size:40px;margin-bottom:14px;color:var(--terracotta)}
.wc-card h3{font-size:16px;font-weight:700;color:var(--app-text);margin-bottom:6px}
.wc-card p{font-size:12.5px;color:var(--app-muted);line-height:1.5}

/* ── Print / Save PDF ── */
@media print{
  #hero,.sb,.pgbar,.nbtn,.obtn,.aff-section,.visa-disclaimer,
  .aff-pill,.pcard,[onclick]{display:none !important}
  .shell{display:block !important}
  .panel{padding:16px !important;overflow:visible !important;background:white !important}
  body{background:white !important;color:#111 !important}
  .aic,.aic *{color:#111 !important}
  .aic .country-h,.aic .section-h,.aic .sub-h{color:#c4622d !important}
  .aic .warn-box{border-left:3px solid #c4622d;background:#fff5f0}
  .aic .tip-box{border-left:3px solid #4a5e3a;background:#f5f9f0}
  .aic .itin-table{width:100%;border-collapse:collapse}
  .aic .itin-table th,.aic .itin-table td{border:1px solid #ddd;padding:6px}
  .ess-grid{grid-template-columns:1fr 1fr}
  .ess-card{background:white;border:1px solid #eee}
  .ess-card.ess-danger{background:#fff5f5;border-color:#fca5a5}
  .ess-card.ess-danger h3.section-h{color:#dc2626 !important}
  .ess-card.ess-money{background:#fffbeb;border-color:#fde68a}
  .ess-card.ess-money h3.section-h{color:#d97706 !important}
  .ess-card.ess-sos{background:#eff6ff;border-color:#bfdbfe}
  .ess-card.ess-sos h3.section-h{color:#2563eb !important}
  .ess-card.ess-esim{background:#f5f3ff;border-color:#ddd6fe}
  .ess-card.ess-esim h3.section-h{color:#7c3aed !important}
  .ess-card.ess-health{background:#f0fdf4;border-color:#bbf7d0}
  .ess-card.ess-health h3.section-h{color:#16a34a !important}
  .ess-card.ess-cash{background:#fffbeb;border-color:#fde68a}
  .ess-card.ess-cash h3.section-h{color:#b45309 !important}
  .ess-card.ess-airport{background:#ecfeff;border-color:#a5f3fc}
  .ess-card.ess-airport h3.section-h{color:#0891b2 !important}
  .ess-card.ess-etiq{background:#fff7f5;border-color:#fed7c3}
  .ess-card.ess-etiq h3.section-h{color:#c4622d !important}
  .ess-card.ess-apps{background:#eef2ff;border-color:#c7d2fe}
  .ess-card.ess-apps h3.section-h{color:#4338ca !important}
  .ess-card.ess-pack{background:#f0fdfa;border-color:#99f6e4}
  .ess-card.ess-pack h3.section-h{color:#0d9488 !important}
}

/* ── MODE SELECTOR ── */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:520px){
  .mode-grid{grid-template-columns:1fr}
  .btn-row{flex-direction:column;align-items:stretch}
  .btn-row .nbtn,.btn-row .obtn{width:100%;justify-content:center;margin-top:0}
}
.mode-card{
  background:var(--app-surface);
  border:1.5px solid var(--app-border);
  border-radius:14px;padding:1.5rem;
  cursor:pointer;transition:all .2s;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  user-select:none;
}
.mode-card:hover,.mode-card:active{border-color:var(--terracotta);transform:translateY(-2px);box-shadow:0 8px 24px rgba(196,98,45,0.15)}
.mode-card-featured{border-color:rgba(196,98,45,0.4);background:rgba(196,98,45,0.05)}
.mode-card-featured:hover{background:rgba(196,98,45,0.1)}
.mode-icon{font-size:36px;margin-bottom:.75rem;color:var(--terracotta)}
.mode-card h3{font-size:16px;font-weight:700;color:var(--app-text);margin-bottom:.4rem}
.mode-card p{font-size:13px;color:var(--app-muted);line-height:1.5;margin-bottom:.75rem}
.mode-steps{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--terracotta);background:rgba(196,98,45,0.1);
  padding:3px 8px;border-radius:20px;display:inline-block;
}
.sb-back-btn{
  margin-top:1rem;background:none;
  border:1px solid var(--app-border);border-radius:8px;
  color:var(--app-muted);font-size:12px;padding:7px 12px;
  cursor:pointer;transition:all .2s;width:100%;
}
.sb-back-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}

