:root {
  --primary: #2E8B57;        
  --primary-dark: #1E6140;   
  --secondary: #F4EBD0;      
  --highlight: #FFD700;      
  --text-dark: #2F2F2F;
  --text-light: #7A7A7A;
  --bg: #F9F9F2;
  --white: #ffffff;
  --border: #E0E0D1;
  --shadow: rgba(0, 0, 0, 0.06);
  --radius: 14px;
}

/*
:root {
  --primary: #0077B6;        
  --primary-dark: #023E8A;   
  --secondary: #FF6B6B;      
  --highlight: #FFD166;       
  --text-dark: #1F2937;
  --text-light: #6B7280;
  --bg: #F0F9FF;
  --white: #ffffff;
  --border: #D0EFFF;
  --shadow: rgba(0, 119, 182, 0.08);
  --radius: 14px;
}
:root {
  --primary: #5E60CE;         
  --primary-dark: #3F3D56;   
  --secondary: #00BFA6;      
  --highlight: #FFB703;      
  --text-dark: #212529;
  --text-light: #6C757D;
  --bg: #F8F9FA;
  --white: #ffffff;
  --border: #DEE2E6;
  --shadow: rgba(0, 0, 0, 0.07);
  --radius: 14px;
}
*/

/* RESET & LAYOUT GENERAL */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  height: 100%;
  font-family: sans-serif;
  background-color: var(--bg);
  color: var(--text-dark);
}

body {
  min-height: 100vh;
  display: block;
  flex-direction: column;
  line-height: 1.6;
}

.my-trips-main {
  flex: 1 0 auto;
}

.logo {
  display: flex;
  align-items: center;
  font-weight: bold;
  font-size: 1.5rem;
  color: #3f3d56;
  margin-bottom: 10px;
}

.logo img {
  width: 32px;
  height: 32px;
  margin-right: 0.5rem;
}

.logo a {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  font-weight: bold;
  color: var(--primary);
  text-decoration: none;
  gap: 0.5rem;
}

.logo i {
  font-size: 1.6rem;
  color: var(--primary);
}

.nav-links {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.nav-links a {
  text-decoration: none;
  color: var(--text-dark);
  font-weight: 500;
  transition: color 0.3s ease;
}

.nav-links a:hover {
  color: var(--primary);
}

.signup-btn {
  background: var(--primary);
  color: white;
  padding: 0.7rem 1.2rem;
  border-radius: 30px;
  font-weight: bold;
  border: none;
  transition: background 0.3s ease, transform 0.2s;
}

.signup-btn:hover {
  background: var(--primary-dark);
  transform: scale(1.05);
}

#head2 {
  font-size: 1rem;
  margin-left: 8px; 
}

#PreHead {
  font-size: 1rem;
  margin-left: 8px; 
}

/* MAIN CONTENT */
.main-content {
  min-height: 100vh; /* full screen */
  background: url('/images/travel1.jpg') center center/cover no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 1.5rem 1.5rem 180px; /* bottom padding for scroll space */
  position: relative;
  overflow: visible; /* allow scroll */
}


.main-content::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 0;
}

.main-content > * {
  position: relative;
  z-index: 1;
}

/* Estilos para la barra de pasos */
.step-indicator {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-bottom: 20px;
  font-family: 'Segoe UI', sans-serif;
}

.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: white;
  font-size: 0.9rem;
}

.step .circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  margin-bottom: 4px;
  border: 2px solid white;
  background-color: transparent;
  transition: all 0.3s ease;
}

.step.active .circle {
  background-color: var(--primary);
  border: 2px solid var(--primary);
  box-shadow: 0 0 6px var(--primary-dark, 0.3);
}

.step.completed .circle {
  background-color: #34D399;
  border: 2px solid #34D399;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 10px;
}

.step.completed .circle::after {
  content: "✔";
}

.step .label {
  margin-top: 2px;
  font-weight: 600;
}

/* CONTAINERS */
.planner-container {
  margin: 0 auto;
  background-color: var(--white);
  padding: 2rem;
  border-radius: var(--radius);
  box-shadow: 0 4px 20px var(--shadow);
}

.container2 {
  margin: 0 auto;
  background-color: var(--white);
  padding: 1.5rem;
  border-radius: var(--radius);
  box-shadow: 0 4px 20px var(--shadow);
}

.container3 {
  margin: 0 auto;
  background-color: var(--white);
  padding: 1rem;
  border-radius: var(--radius);
  box-shadow: 0 4px 20px var(--shadow);
}

.container {
  max-width: var(--max-width);
}

/* HEADINGS */
h1 {
  color: var(--text-dark);
  font-size: 1.5rem;
  margin-bottom: 0.2rem;
}

h1 {
  font-size: 1.2rem;
}

.step-subtitle {
  margin-top: 0.5rem;
  color: #6b7280; /* subtle gray */
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}

/* INPUT GROUP */
.planner-input-group {
  position: relative;
  margin-bottom: 1.25rem;
}

.planner-input-icon { position: relative; }   

.planner-input-icon input,
.planner-input-icon select {
  width: 100%;
  padding: 12px 14px 12px 40px;
  font-size: 1rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background-color: var(--white);
  color: var(--text-dark);
  box-sizing: border-box;
  transition: border-color 0.3s;
}

.planner-input-icon input:focus,
.planner-input-icon select:focus {
  border-color: var(--primary);
  outline: none;
}

/* Optional: lock a consistent input height */
.planner-input-icon input {
  min-height: 44px;   /* tweak to your exact feel (44–48px) */
}

/* --- DATE FIELD --- */
.planner-input-group #travelDatesWrap { 
  position: relative;
  display: block;
  width: 100%;
}

/* Make the date input fill the row and leave room for the left icon */
#travelDatesWrap [data-input] {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px 12px 40px; 
  font-size: 1rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background: var(--white);
}

/* keep the calendar icon on the left with no border */
#travelDatesWrap .icon-button {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  padding: 0;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}

#travelDatesWrap .icon-button i.fas.fa-calendar-days {
  font-size: 1rem;
  color: var(--primary);
}

/* Ensure generic icon rule doesn't interfere with the date field */
.planner-input-icon i { position: static; }        /* reset the broad rule */
#startLocation + i.icon,
#endLocation + i.icon {
  position: absolute;
  top: 50%;
  left: 14px;
  transform: translateY(-50%);
  color: var(--primary);
  font-size: 1rem;
  pointer-events: none;
}

.end-field-wrap[hidden] { display:none !important; }
.end-field-wrap { animation: fadeIn .18s ease-out; }
.field-hint { display:block; margin-top: .4rem; color: var(--text-light); font-size:.9rem; }

.toggle-end-wrap .button { width: 100%; justify-content:center; }

#toggleEndField .txt-add[hidden],
#toggleEndField .txt-hide[hidden] {
  display: none !important;
}

input::placeholder {
  color: var(--text-light);
}

.checkbox-group-pet{
  display: flex;
  justify-content: center;
  margin: 0.7rem;
  gap: 1rem;
}

/* BUTTONS */
.button,
.btn {
  background-color: white;
  color: var(--text-dark);
  padding: 12px 20px;
  border: 2px solid var(--primary-dark);
  border-radius: var(--radius);
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s;  
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.button:hover,
.btn:hover {
  background-color: var(--primary);
  color: var(--white);
}

.buttons-panel {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin-top: 35px;
  gap: 5px;
}

.clear-button {
  background-color: #f8fafc;
  color: var(--text-dark);
  padding: 10px 20px;
  border: 2px solid #e2e8f0;
  border-radius: var(--radius);
  font-size: 0.9rem;
  cursor: pointer;
  transition: background-color 0.3s;
  display: flex;
}

.button-secondary {
  background-color: #f8fafc;
  color: var(--text-dark);
  padding: 10px 20px;
  border: 2px solid #e2e8f0;
  border-radius: var(--radius);
  font-size: 0.9rem;
  cursor: pointer;
  transition: background-color 0.3s;
  display: flex;
}

.button-secondary:hover {
  background-color: white;
  color: var(--primary-dark);
  border-color: var(--primary-dark);
}

.button-secondary:hover .buttondetalle {
  color: var(--primary-dark);
}

.buttondetalle {
  color: var(--text-light);
  font-size: 0.8rem;
  margin-top: 0.5rem;
}

.fa-dollar-sign {
  color: var(--text-dark);
}

.button.selected .fa-dollar-sign {
  color: white;
}

.button.selected .buttondetalle {
  color: white;
}

.wizard-footer{
  display:flex; align-items:center; margin-top:12px;
}
.end-group{ margin-left:auto; display:flex; align-items:center; gap:20px; }

/* Token pill */
.token-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 16px; border-radius:999px;
  background:rgba(34,197,94,0.10);
  border:1px solid rgba(34,197,94,0.35);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  font-weight:700; line-height:1;
}

/* size/weight tweaks */
.token-amount{ font-size:1.05rem; }
.token-label{ font-size:.95rem; color:#205e2b; opacity:.95; }

/* optional tiers */
.token-pill.is-1{ background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.35); }
.token-pill.is-2{ background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.35); }
.token-pill.is-3{ background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.35);  }

/* bump anim */
.token-pill.bump{ animation: token-bump .35s ease; }
@keyframes token-bump{
  0%{ transform:scale(1); }
  30%{ transform:scale(1.08); }
  100%{ transform:scale(1); }
}

.token-cost-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  background: rgba(0,0,0,.06);
  color: #333;
  align-self: center;
}

/* optional: color by tier */
.token-cost-badge.is-1 { background: rgba(76,175,80,.12);  color: #2e7d32; }  /* 1 token */
.token-cost-badge.is-2 { background: rgba(255,152,0,.12);  color: #2e7d32; }  /* 2 tokens */
.token-cost-badge.is-3 { background: rgba(239,83,80,.12);  color: #2e7d32; }  /* 3 tokens */


/* SELECTED BUTTON STATE */
.buttons-container .button.selected {
  color: white;
  background-color: var(--primary);
  border: 2px solid var(--primary-dark);
}

/* Notification system */
.notification {
  position: fixed;
  top: 20px;
  right: 20px;
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: 0 4px 20px var(--shadow);
  padding: var(--spacing-md);
  z-index: 1000;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  max-width: 350px;
}

.notification.show {
  transform: translateX(0);
}

.notification-content {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.notification-icon {
  font-size: 1.2rem;
}

.notification-message {
  color: var(--text-dark);
  font-weight: 500;
  padding: 8px;
}

.notification-success {
  border-left: 4px solid #10b981;
}

.notification-error {
  border-left: 4px solid #ef4444;
}

.notification-info {
  border-left: 4px solid #3b82f6;
}

.notification-message{
  color: var(--text-dark);
  font-weight: 500;
  flex: 1;             
}

.notification-close{
  margin-left: auto;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0;
  opacity: 0.65;
  color: var(--text-dark);
}

.notification-close:hover{
  opacity: 1;
}

#toast-root{
  position: fixed !important;
  top: 20px;
  right: 20px;
  z-index: 110000 !important; 
  display: flex;
  padding: var(--spacing-md);
  flex-direction: column;
  gap: 12px;                 /* space between toasts */
  pointer-events: none;      /* clicks pass through except on toasts */
}

/* Override per-toast positioning when inside the container */
#toast-root .notification{
  position: relative;        /* cancel fixed */
  top: auto;
  right: auto;
  margin: 0;                 /* stacking handled by gap */
  pointer-events: auto;      /* allow hover/close if you add it later */
}

/* Keep your slide-in animation when stacked */
#toast-root .notification.show{
  transform: translateX(0);
}

/* DROPDOWN */
.dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--white);
  border: 2px solid var(--border);
  border-top: none;
  max-height: 200px;
  overflow-y: auto;
  width: 100%;
  z-index: 1000;
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
  display: none;
}

.dropdown.show {
  display: block;
}

.dropdown-item {
  padding: 12px 14px;
  cursor: pointer;
  border-bottom: 1px solid #f0f0f0;
}

.dropdown-item:last-child {
  border-bottom: none;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: #f0f0f0;
  outline: none;
}

/* MODAL */
.modal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background-color: rgba(27, 31, 34, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}

.modal-content {
  background-color: var(--white);
  padding: 2rem;
  border-radius: var(--radius);
  box-shadow: 0 4px 10px var(--shadow);
  max-width: 400px;
  width: 90%;
  text-align: center;
}

.modal-content label {
  display: block;
  margin: 1rem 0;
  font-size: 1rem;
  cursor: pointer;
}

.modal-actions {
  margin-top: 1rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
}

.error-text {
  color: red;
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

/* GROUP INPUTS */
.group-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.input-pair {
  flex: 1;
}

.peopleinput {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-dark);
}

#groupDetails {
  display: flex;
  flex-wrap: wrap;
  align-items: center; 
  margin-inline: auto; 
  gap: 0.5rem;
  overflow: hidden;
  margin-top: 1rem;
  justify-content: center;
}

#groupDetails input[type="number"] {
  width: 60px;
  padding: 0.4rem;
  font-size: 1rem;
  border-radius: 6px;
  border: 1px solid #ccc;
}

/* BUTTON GROUP y SELECTABLE BUTTONS */
.button-group,
.buttons-container {
    display: flex;
    gap: 0.7rem;
    margin: 1.2rem;
    justify-content: space-around;
}


.button-group-s4 {
  display: grid;
  gap: 0.7rem;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 0.8rem;
}

.selectable-button {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 16px;
  border: 2px solid #e2e8f0;
  border-radius: var(--radius);
  background-color: var(--bg);
  color: var(--text-dark);
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.25s ease;
  font-weight: 500;
}

.selectable-button:hover {
  border-color: var(--primary-dark);
}

.selectable-button.selected {
  background-color: var(--primary);
  color: white;
  border-color: var(--primary-dark);
}

/* TABS */
.tabs {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.tab-button {
  padding: 0.75rem 1.25rem;
  background-color: var(--white);
  color: var(--primary);
  border: 2px solid var(--primary);
  border-radius: var(--radius);
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s;
}

.tab-button:hover {
  background-color: var(--primary-dark);
  color: var(--white);
}

.tab-button.active {
  background-color: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}

/* NAVIGATION BUTTONS */
.navigation-buttons {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
}

.planner-input-wrapper {
  display: flex;
  flex-direction: column;
}

.error-message {
  color: red;
  font-size: 0.85em;
  margin-bottom: 4px;
  display: none;
}

.trip-scope-heading {
  margin-bottom: 1.5rem; /* Adjust as needed */
}

.scope-buttons {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}

.highlight-city {
  display: inline-block;
  font-weight: bold;
  color: #00bfff; /* Light blue for pop */
  font-size: 0.9rem;
  margin-right: -5px;
}

.my-trips-main {
  flex: 1;  /* pushes footer to bottom */
}

/* Footer shell */
.site-footer{
  background:#1b1b1f; color:#b9bbc6;
  border-top:1px solid rgba(255,255,255,.06);
}
.site-footer .footer-inner{
  max-width:1100px; margin:0 auto; padding:18px 16px 24px;
  display:grid; gap:10px;
}

/* Links row */
.footer-links{
  display:flex; flex-wrap:wrap; gap:14px;
  justify-content:center;
}
.footer-links a{
  color:#cfd1da; text-decoration:none; font-size:.95rem;
  padding:6px 8px; border-radius:8px;
}
.footer-links a:hover{ color:#fff; text-decoration:underline; }
.footer-links a:focus-visible{ outline:2px solid #8aa3ff; outline-offset:2px; }

/* “Manage cookies” as a subtle button-link */
.cookie-link{
  background:transparent; color:#cfd1da; border:1px solid rgba(255,255,255,.14);
  padding:6px 10px; border-radius:10px; cursor:pointer; font-size:.92rem;
}
.cookie-link:hover{ color:#fff; border-color:rgba(255,255,255,.28); }
.cookie-link:focus-visible{ outline:2px solid #8aa3ff; outline-offset:2px; }

/* Meta row */
.footer-meta{
  display:flex; gap:10px; justify-content:center; font-size:.9rem; opacity:.8;
}
.footer-meta .dot{ opacity:.6; }

/* Light theme fallback (optional) */
@media (prefers-color-scheme: light){
  .site-footer{ background:#f7f7f9; color:#444; border-top:1px solid #e9e9ef; }
  .footer-links a{ color:#3a3a42; }
  .cookie-link{ border-color:#d7d7e0; color:#3a3a42; }
  .cookie-link:hover{ border-color:#bfc1cd; }
}

/* Preserva tu estilo */
.budget {
  display: block;
}

.content-block1, .content-block2{
  display: flex !important;
  justify-content: space-around;
}


/* Make it a bit bigger on larger screens */
@media (min-width: 640px){
  .token-pill{ padding:12px 16px; }
}

/* “Value changed” micro-animation */
.token-pill.bump{
  animation: token-bump .35s ease;
}
@keyframes token-bump{
  0%{ transform:scale(1); }
  30%{ transform:scale(1.08); }
  100%{ transform:scale(1); }
}

/* spacing + cell height knobs */
:root { --fp-gap: 4px; --fp-cell: 38px; }

/* outer popup */
#travelDatesWrap .flatpickr-calendar.multiMonth {
  width: 625px !important;    
}

/* inner grid must match the same width */
#travelDatesWrap .flatpickr-calendar.multiMonth .flatpickr-days {
  width: 625px !important;
}

#travelDates {
  width: 507px !important;
}

/* two months side-by-side (keep what you already have) */
.flatpickr-days { display:flex !important; gap:16px; }
.flatpickr-days .dayContainer { flex:1 1 0 !important; display:block !important; }

.flatpickr-calendar .flatpickr-weekdays { 
  gap: 25px;         
}

/* exact 7-column grid inside each month */
.flatpickr-days .dayContainer .flatpickr-day{
  display: inline-block !important;
  vertical-align: top;
  box-sizing: border-box !important;

  /* 7 cells + 6 gaps per row -> fits 100% exactly */
  width: calc((100% - (6 * var(--fp-gap))) / 7) !important;
  margin: 0 var(--fp-gap) var(--fp-gap) 0 !important;

  height: var(--fp-cell) !important;
  line-height: var(--fp-cell) !important;
  text-align: center;
}

/* no gap after the 7th column */
.flatpickr-days .dayContainer .flatpickr-day:nth-child(7n){
  margin-right: 0 !important;
}

/* optional: keep adjacent-month days visible but dim */
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay{
  opacity: .35 !important;
  pointer-events: none;
}

.selectable-button .emoji { margin-right: 2px; margin-bottom: 3px; font-size: 1.05em; }

/* Align items perfectly on the first line */
.scope-line {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.scope-line i { margin-right: 2px; } /* optional, with gap this can be 0 */

html[data-auth="no"] #tokenCostBadge { display:none; }

/* generation overlay (uses your palette vars) */
.gen-modal { position: fixed; inset: 0; z-index: 10000; display: none; place-items: center; background: rgba(0,0,0,.45); backdrop-filter: blur(2px); }
.gen-modal.show { display: grid; }
.gen-card { width: min(560px, calc(100% - 32px)); background: var(--white); border: 1.5px solid var(--border); border-radius: var(--radius); box-shadow: 0 20px 60px var(--shadow); padding: 18px; }
.gen-head { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.gen-title { font-size:1.05rem; font-weight:800; color: var(--text-dark); }
.gen-sub { color: var(--text-light); font-size:.95rem; }
.gen-progress { margin-top:14px; height:10px; width:100%; background:#f3f3ea; border:1px solid var(--border); border-radius:999px; overflow:hidden; }
.gen-bar { height:100%; width:0%; background: linear-gradient(90deg, var(--primary), var(--primary-dark)); transition: width .25s ease; }
.gen-meta { display:flex; justify-content:space-between; margin-top:8px; font-size:.9rem; color: var(--text-light); }
.gen-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:14px; }
.gen-btn { appearance:none; border-radius:999px; padding:10px 14px; font-weight:800; border:2px solid var(--primary-dark); background: var(--primary); color:#fff; cursor:pointer; }
.gen-btn.secondary { background:#d9534f; color: #fff;  border:2px solid #e2e8f0; }
.gen-btn[disabled]{ opacity:.6; cursor:default; }
.gen-state-error .gen-card{ border-color:#ffd0d0; }
.gen-state-error .gen-bar{ background: linear-gradient(90deg, #ef4444, #b91c1c); }

.btn-dots{display:inline-flex;align-items:center;gap:.5rem}
.btn-dot{
  width:6px;height:6px;border-radius:50%;
  background:currentColor;display:inline-block;
  animation:btnDots 1.2s infinite ease-in-out
}
.btn-dot:nth-child(2){animation-delay:.2s}
.btn-dot:nth-child(3){animation-delay:.4s}
@keyframes btnDots{0%,80%,100%{transform:scale(.6);opacity:.35}40%{transform:scale(1);opacity:1}}

/* Recommended tag on Flexible transport option */
.transport-buttons .button {
  position: relative; /* anchor badge */
}

.recommend-badge {
  position: absolute;
  top: -18px;                 /* a bit above the button */
  left: 50%;                  /* center above the flexible button */
  transform: translateX(-50%);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;

  padding: 2px 10px;
  border-radius: 999px;

  background: #F4EBD0;   
  color: #2F2F2F;
  font-size: 11px;
  font-weight: 600;

  white-space: nowrap;        /* ⬅ prevents wrapping */
  max-width: none;            /* just in case */
  pointer-events: auto;
  z-index: 20;   
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
}

/* Tooltip bubble */
.recommend-badge::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 120%;               /* below the pill */
  padding: 6px 10px;
  border-radius: 6px;
  background: #111;
  color: #fff;
  font-size: 11px;
  line-height: 1.3;
  white-space: nowrap;
  
  min-width: 140px;
  max-width: 240px;     
  white-space: normal; 
  text-align: left;

  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease-in-out;
  z-index: 9999;  
}

/* Show on hover OR when clicked (via .show-tip class) */
.recommend-badge:hover::after,
.recommend-badge.show-tip::after {
  opacity: 1;
}

.recommend-badge .star {
  font-size: 11px;
  margin-bottom: 3px;
}

/* Slight extra emphasis on the recommended choice */
.transport-buttons .button.is-recommended {
  box-shadow: 0 0 0 2px rgba(27,122,74,0.18),
              0 12px 24px rgba(0,0,0,0.12);
}

.reset-layout {
  min-height: calc(100vh - 80px); /* leave room for header */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}

.reset-card {
  max-width: 420px;
  width: 100%;
  background: #ffffff;
  border-radius: 18px;
  padding: 2.4rem 2.1rem;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.reset-title {
  font-size: 1.9rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 0.5rem;
}

.reset-subtitle {
  font-size: 0.95rem;
  color: #6b7280;
  text-align: center;
  margin-bottom: 1.8rem;
}

.reset-form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.reset-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.reset-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: #374151;
}

.reset-input {
  border-radius: 12px;
  border: 1px solid #d1d5db;
  padding: 0.75rem 0.9rem;
  font-size: 0.95rem;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  width: 100%;
}

.reset-input:focus {
  border-color: #15803d; /* brand green */
  box-shadow: 0 0 0 2px rgba(21, 128, 61, 0.18);
}

.reset-message {
  font-size: 0.85rem;
  min-height: 1.1em;
  margin-top: 0.2rem;
}

.reset-message.success {
  color: #15803d;
}

.reset-message.error {
  color: #b91c1c;
}

.reset-btn {
  margin-top: 0.35rem;
  width: 100%;
  border-radius: 14px;
  padding: 0.85rem 1rem;
  font-size: 0.95rem;
  font-weight: 600;
  border: 1px solid #15803d;
  background: #15803d;
  color: #ffffff;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

.reset-btn:hover {
  background: #166534;
  box-shadow: 0 10px 25px rgba(22, 101, 52, 0.25);
}

.reset-btn:active {
  transform: translateY(1px);
  box-shadow: none;
}

.reset-btn:disabled {
  opacity: 0.6;
  cursor: default;
  box-shadow: none;
}

.reset-helper {
  font-size: 0.8rem;
  color: #9ca3af;
  text-align: center;
  margin-top: 0.25rem;
}

.auth-message {
  display: none;      /* default hidden */
  font-size: 0.85rem;
  margin-top: 0.35rem;
}

.auth-message.success {
  color: #15803d;
}

.auth-message.error {
  color: #b91c1c;
}

@media (max-width: 640px) {
  .reset-card {
    padding: 2rem 1.5rem;
  }
  .reset-title {
    font-size: 1.6rem;
  }
}

/* =========================
   MOBILE OVERRIDES (phones)
   Put at END of file
========================= */

/* 1) Header burger: your page CSS currently hides it */
@media (max-width: 900px) {
  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* 2) Global spacing + typography slightly smaller */
@media (max-width: 600px) {
  html, body { font-size: 15px; }

  .main-content { padding: 1rem 1rem 120px; }

  /* 3) Make panels fit phone width */
  .planner-container,
  .container2,
  .container3 {
    width: 100%;
    max-width: 560px;
    padding: 1rem;
    border-radius: 16px;
  }

  .container { max-width: 100%; }

  /* 4) Step indicator: reduce huge gap */
  .step-indicator { gap: 18px; flex-wrap: wrap; }
  .step { font-size: 0.82rem; }

  /* 5) Button groups: wrap instead of overflowing */
  .button-group,
  .buttons-container {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin: 0.9rem 0.2rem;
  }

  .btn,
  .selectable-button {
    width: 100%;
    justify-content: center;
  }

  .button {
    width: 100%;
    justify-content: center;
    padding: 12px 10px;
  }

  .button-group .button,
  .buttons-container .button,
  .button-group .selectable-button,
  .buttons-container .selectable-button {
    flex: 1 1 48%;
    min-width: 140px;
  }

  /* 6) Inputs: slightly smaller padding */
  .planner-input-icon input,
  .planner-input-icon select,
  #travelDatesWrap [data-input] {
    padding: 10px 12px 10px 38px;
    font-size: 0.95rem;
  }

  /* =========================
     FLATPICKR MOBILE (1 month)
     JS sets showMonths: 1
  ========================= */

  /* remove your fixed widths (625px / 507px) on phones */
  #travelDates { width: 100% !important; max-width: 100% !important; }

  /* keep calendar inside viewport and prevent horizontal overflow */
  #travelDatesWrap .flatpickr-calendar {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    box-sizing: border-box !important;
    left: 12px !important;
    right: 12px !important;
  }

  /* make sure the month header/title is visible and centered */
  #travelDatesWrap .flatpickr-months {
    display: flex !important;
    height: auto !important;
  }
  #travelDatesWrap .flatpickr-current-month {
    position: relative !important;
    left: 0 !important;
    transform: none !important;
    width: 100% !important;
    text-align: center !important;
    padding: 10px 0 !important;
  }

  /* weekdays should be a single 7-col row (no weird "Mon..Sun Mon..Sun") */
  #travelDatesWrap .flatpickr-weekdays { width: 100% !important; }
  #travelDatesWrap .flatpickr-weekdaycontainer {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    width: 100% !important;
  }
  #travelDatesWrap .flatpickr-weekday {
    text-align: center !important;
  }

  /* grid width */
  #travelDatesWrap .flatpickr-days,
  #travelDatesWrap .dayContainer {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
  }

  /* 8) Wizard footer: stack nicely */
  .wizard-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .end-group {
    margin-left: 0;
    justify-content: space-between;
  }

  /* 9) Token pill: shrink */
  .token-pill { padding: 10px 12px; gap: 6px; }
  .token-amount { font-size: 1rem; }
  .token-label { font-size: 0.9rem; }

  /* 10) Recommended badge: keep it readable on mobile */
  .recommend-badge {
    top: -14px;
    font-size: 10px;
    padding: 2px 8px;
  }
}

@media (max-width: 600px) {
  /* Step 3: stop side-by-side columns on mobile */
  .content-block1,
  .content-block2 {
    display: block !important;     /* overrides your display:flex !important */
    width: 100%;
  }

  /* optional: spacing between the two blocks */
  .content-block2 { margin-top: 16px; }

  /* make the preference button grids behave nicely */
  .button-group-s4 {
    display: grid;
    grid-template-columns: 1fr;    /* 1 per row (safe) */
    gap: 10px;
    margin: 0.6rem 0;
  }

  /* if you prefer 2 per row on phones */
  /* .button-group-s4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } */

  .selectable-button {
    width: 100%;
    justify-content: center;
  }
}

/* outer container: NO box, just spacing */
.stay-reco-box{
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(17,17,17,.78);
  font-size: 0.8rem;      /* smaller overall */
  line-height: 1.25;
}

/* small muted label */
.stay-reco__label{
  margin-top: 8px;
  font-size: 0.74rem;      /* smaller */
  font-weight: 600;
  color: rgba(17,17,17,.50);
  margin-bottom: 6px;
}

/* THIS is the subtle box around Min/Optimal/Full */
.stay-reco__pill{
  margin-top: 8px;
  display: inline-flex;          /* stays compact, not full-width */
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--primary) 8%, white);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
}

/* each item */
.stay-reco__pill span{
  display: inline-flex;
  font-size: 0.8rem; 
  gap: 6px;
  align-items: baseline;
  white-space: nowrap;
}

/* Min/Optimal/Full styling (not huge) */
.stay-reco__pill strong{
  font-size: 0.8rem; 
  font-weight: 600;
  color: var(--primary);
}

/* visibility */
.stay-reco-box.hidden{ display:none !important; }
#stayRecoBox[hidden]{ display:none !important; }

/* subtle appear */
.stay-reco-box{
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity .14s ease, transform .14s ease;
}
.stay-reco-box:not(.hidden){
  opacity: 1;
  transform: translateY(0);
}

/* label but inline, inside the pill */
.stay-reco__inline-label{
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--primary-dark);
  white-space: nowrap;
}