/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --spacing: 0.25rem;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html,
  :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
    vertical-align: middle;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea,
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or
    (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit,
  ::-webkit-datetime-edit-year-field,
  ::-webkit-datetime-edit-month-field,
  ::-webkit-datetime-edit-day-field,
  ::-webkit-datetime-edit-hour-field,
  ::-webkit-datetime-edit-minute-field,
  ::-webkit-datetime-edit-second-field,
  ::-webkit-datetime-edit-millisecond-field,
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,
  input:where([type="button"], [type="reset"], [type="submit"]),
  ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .relative {
    position: relative;
  }
  .start {
    inset-inline-start: var(--spacing);
  }
  .inline {
    display: inline;
  }
  .table {
    display: table;
  }
}
:root {
  --ink: #10271d;
  --green: #123f2c;
  --lime: #d8f04a;
  --paper: #f2f1e9;
  --muted: #66736b;
}

.flight-board-section{background:#e5e8da}.flight-board-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.flight-board-title h2{margin-bottom:5px}.flight-board-title p{font-size:13px;line-height:1.6;color:var(--muted)}.refresh-flights{flex:none;margin-top:4px;padding:10px 13px;border:1px solid #153d2d;border-radius:999px;font-size:12px;font-weight:800;cursor:pointer}.flight-sync{display:flex;align-items:center;gap:9px;padding:11px 14px;margin-bottom:12px;border-radius:12px;background:#fff9;font-size:12px;color:#607067}.flight-sync span{width:8px;height:8px;border-radius:50%;background:#c9a935}.flight-sync.ready span{background:#4fa36b}.flight-sync.error span{background:#d75c52}.traveler-flights{display:grid;gap:10px}.traveler-card{border:1px solid #c8cec1;border-radius:17px;background:#f8f8f2;overflow:hidden}.traveler-head{width:100%;display:grid;grid-template-columns:31px 1fr auto 24px;align-items:center;gap:9px;padding:16px;text-align:left;cursor:pointer}.traveler-head span{font:700 11px/1 ui-monospace;color:#819087}.traveler-head b{font-size:17px}.traveler-head small{padding:4px 8px;border-radius:999px;background:#e1e5da;color:#68746c;font-size:10px}.traveler-head i{font-style:normal;font-size:20px;transition:.2s}.traveler-card.open .traveler-head i{transform:rotate(45deg)}.traveler-body{display:none;padding:0 14px 15px}.traveler-card.open .traveler-body{display:block}.flight-results{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.flight-empty,.flight-summary{min-height:96px;padding:12px;border-radius:13px;background:#eaede4;color:#7a867e;font-size:11px}.flight-summary{background:#123f2c;color:#fff}.flight-summary-top{display:flex;justify-content:space-between;gap:6px;align-items:center}.flight-status{padding:3px 6px;border-radius:99px;background:#d8f04a;color:#173324;font-size:9px}.flight-status.delayed,.flight-status.cancelled{background:#ff9b80}.flight-number{margin:8px 0 5px;font-size:19px;font-weight:900}.flight-route{display:flex;align-items:center;justify-content:space-between;gap:5px}.flight-route div{display:flex;flex-direction:column}.flight-route b{font-size:10px;color:#c5d2ca}.flight-route strong{font-size:14px}.flight-summary>small{display:block;margin-top:8px;color:#aabbb1;font-size:8px;line-height:1.35}.traveler-body form{display:grid;gap:10px}.traveler-body fieldset{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;padding:10px;border:1px solid #d4d8ce;border-radius:12px}.traveler-body legend{padding:0 5px;font-size:11px;font-weight:800;color:#516158}.traveler-body label{display:grid;gap:4px;font-size:10px;color:#6c776f}.traveler-body input{width:100%;min-width:0;padding:10px;border:1px solid #cbd0c6;border-radius:9px;background:white;font-size:13px;color:#173225}.save-flight{padding:12px;border-radius:11px;background:#d8f04a;font-size:13px;font-weight:900;cursor:pointer}.save-flight:disabled{opacity:.55}.form-message{min-height:17px;color:#a34e43;font-size:11px;text-align:center}.flight-data-note{margin-top:13px;padding:14px;border-radius:13px;background:#123f2c;color:white}.flight-data-note b{font-size:12px;color:#d8f04a}.flight-data-note p{margin-top:5px;font-size:11px;line-height:1.65;color:#c5d1ca}
.flight-summary-table{margin-bottom:18px}.summary-empty{padding:18px;border-top:1px solid #bcc4b8;border-bottom:1px solid #bcc4b8;color:#6c786f;font-size:12px;text-align:center}.table-caption{display:flex;justify-content:space-between;align-items:end;padding:13px 2px 9px;border-bottom:2px solid #173d2d}.table-caption b{font-size:17px}.table-caption span{font-size:10px;color:#6a776e}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.flight-summary-table table{width:100%;min-width:610px;border-collapse:collapse;background:transparent}.flight-summary-table th{padding:10px 8px;border-bottom:1px solid #b7c0b5;color:#657269;font-size:10px;font-weight:700;text-align:left;white-space:nowrap}.flight-summary-table td{padding:13px 8px;border-bottom:1px solid #c6cdc2;font-size:12px;white-space:nowrap}.flight-summary-table td:first-child b{font-size:14px}.flight-summary-table td:nth-child(2){min-width:116px}.flight-summary-table td:nth-child(2) small,.flight-summary-table td:nth-child(2) span{display:block}.flight-summary-table td:nth-child(2) small{color:#6c786f;font-size:9px}.flight-summary-table td:nth-child(2) span{margin-top:3px;font-weight:700}.flight-summary-table td:nth-child(3) strong{font-size:14px;letter-spacing:.02em}.table-status{display:inline-block;padding:4px 7px;border-radius:99px;background:#d8f04a;color:#173324;font-size:9px;font-style:normal;font-weight:800}.table-status.delayed,.table-status.cancelled{background:#ff9b80}.table-source{padding:8px 2px 0;color:#738078;font-size:9px}
@media(max-width:480px){.table-scroll{overflow:visible}.flight-summary-table table{min-width:0;table-layout:fixed}.flight-summary-table th,.flight-summary-table td{padding:10px 3px;font-size:10px}.flight-summary-table th:nth-child(1){width:15%}.flight-summary-table th:nth-child(2){width:27%}.flight-summary-table th:nth-child(3){width:17%}.flight-summary-table th:nth-child(4),.flight-summary-table th:nth-child(5){width:13%}.flight-summary-table th:nth-child(6){width:15%}.flight-summary-table td:first-child b{font-size:11px}.flight-summary-table td:nth-child(2){min-width:0}.flight-summary-table td:nth-child(2) small{font-size:8px}.flight-summary-table td:nth-child(2) span{font-size:9px}.flight-summary-table td:nth-child(3) strong{font-size:11px}.table-status{padding:3px 4px;font-size:8px}}
.photo-carousel{position:relative;height:225px;background:#d9ddd5;overflow:hidden}.carousel-track{display:flex;width:100%;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.carousel-track::-webkit-scrollbar{display:none}.carousel-track figure{position:relative;flex:0 0 100%;height:100%;scroll-snap-align:start}.carousel-track img{width:100%;height:100%;object-fit:cover}.carousel-track figcaption{position:absolute;left:12px;bottom:12px;padding:5px 9px;border-radius:999px;background:#10271dcc;color:#fff;font-size:10px;font-weight:700}.carousel-prev,.carousel-next{position:absolute;top:50%;width:34px;height:34px;margin-top:-17px;border-radius:50%;background:#fffdd9;color:#173d2d;font-size:24px;line-height:1;box-shadow:0 2px 10px #0003;cursor:pointer}.carousel-prev{left:10px}.carousel-next{right:10px}.carousel-dots{position:absolute;left:50%;bottom:13px;display:flex;gap:5px;transform:translateX(-50%)}.carousel-dots i{width:5px;height:5px;border-radius:50%;background:#ffffff88}.carousel-dots i.active{width:14px;border-radius:5px;background:#d8f04a}.swipe-hint{position:absolute;right:10px;top:10px;padding:4px 7px;border-radius:99px;background:#10271dbb;color:#fff;font-size:8px}
.carousel-count{position:absolute;left:10px;top:10px;padding:4px 8px;border-radius:99px;background:#10271dcc;color:#fff;font-size:9px;font-weight:800}.photo-carousel:has(.carousel-dots i:nth-child(n+8)) .carousel-dots{gap:3px}.photo-carousel:has(.carousel-dots i:nth-child(n+8)) .carousel-dots i{width:4px;height:4px}.photo-carousel:has(.carousel-dots i:nth-child(n+8)) .carousel-dots i.active{width:11px}
.tips li:nth-child(5){display:none}
.meal-row time{color:#8b5d18}.meal-row p{font-weight:700}.meal-row.featured{background:#eef8ae;margin:0 -10px;padding:10px;border-radius:10px}.dining-section{background:#ede9dc}.dining-intro{margin:-4px 0 18px;color:#67736b;font-size:13px;line-height:1.7}.restaurant-card{margin-bottom:16px;border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 10px 30px #1b352115}.restaurant-card>img{width:100%;height:225px;object-fit:cover}.restaurant-body{padding:19px}.restaurant-body>span{display:block;margin-bottom:5px;color:#6e7b72;font-size:10px;font-weight:800;letter-spacing:.08em}.restaurant-body h3{font-size:23px;font-weight:900;line-height:1.25}.restaurant-body>p{margin-top:8px;color:#68736c;font-size:12px;line-height:1.7}.dish-list{margin-top:15px;padding-top:13px;border-top:1px solid #d9ddd5}.dish-list>b{font-size:11px}.dish-list ul{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.dish-list li{padding:6px 9px;border-radius:999px;background:#eef0e8;font-size:10px;font-weight:700}.restaurant-body>a{display:inline-block;margin-top:15px;padding-bottom:2px;border-bottom:1px solid currentColor;color:#194331;font-size:11px;font-weight:800}.restaurant-card.dark{background:#133f2d;color:#fff}.restaurant-card.dark .restaurant-body>span,.restaurant-card.dark .restaurant-body>p{color:#bdcbc2}.restaurant-card.dark .dish-list{border-color:#ffffff2b}.restaurant-card.dark .dish-list li{background:#ffffff15}.restaurant-card.dark .restaurant-body>a{color:#d8f04a}.dining-note{color:#748078;font-size:9px;line-height:1.6}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
html.trip-started .top-reminder,
html.trip-started .flight-section,
html.trip-started .tips {
  display: none;
}
body {
  margin: 0;
  background: #d9d9d2;
  color: var(--ink);
  font-family: "Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
main {
  width: min(100%,480px);
  margin: 0 auto;
  background: var(--paper);
  min-height: 100vh;
  overflow: hidden;
  box-shadow: 0 0 50px #0002;
}
.hero {
  position: relative;
  min-height: 690px;
  padding: 30px 24px 28px;
  background: var(--green);
  color: white;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.hero:before {
  content: "";
  position: absolute;
  left: -110px;
  bottom: 55px;
  width: 470px;
  height: 260px;
  border: 1px solid #ffffff18;
  border-radius: 50%;
  transform: rotate(-18deg);
}
.hero:after {
  content: "";
  position: absolute;
  right: -110px;
  bottom: 110px;
  width: 390px;
  height: 180px;
  border: 1px solid #ffffff12;
  border-radius: 50%;
  transform: rotate(26deg);
}
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
}
.orb-a {
  width: 210px;
  height: 210px;
  right: -75px;
  top: 130px;
  background: radial-gradient(circle at 35% 35%,#d8f04a,#779427 58%,#123f2c 72%);
}
.orb-b {
  width: 130px;
  height: 130px;
  left: -52px;
  bottom: 90px;
  background: #1a5039;
  border: 1px solid #ffffff10;
}
.hero-top {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1;
}
.eyebrow {
  font-size: 10px;
  letter-spacing: .2em;
  font-weight: 700;
  color: #dff3e6;
}
.count {
  font-size: 11px;
  padding: 7px 11px;
  border: 1px solid #ffffff35;
  border-radius: 99px;
}
.hero h1 {
  position: relative;
  z-index: 1;
  margin: 103px 0 12px;
  font-family: Georgia,"Noto Serif SC",serif;
  font-size: 58px;
  line-height: 1.05;
  letter-spacing: -.04em;
  font-weight: 500;
}
.hero h1 em {
  color: var(--lime);
  font-style: normal;
}
.lead {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #d8e6dd;
  font-size: 14px;
  letter-spacing: .11em;
}
.hero-date {
  position: relative;
  z-index: 1;
  margin-top: auto;
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: center;
  justify-content: start;
  gap: 11px;
}
.hero-date strong {
  font: 400 27px/1 Georgia,serif;
}
.hero-date>span {
  opacity: .4;
}
.hero-date small {
  grid-column: 1/4;
  margin-top: 6px;
  color: #a9c2b2;
  letter-spacing: .18em;
}
.hero-cta {
  position: relative;
  z-index: 1;
  margin-top: 28px;
  background: var(--lime);
  color: var(--ink);
  height: 52px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  font-size: 13px;
  font-weight: 800;
}
.hero-cta span {
  font-size: 20px;
}
.quick-strip {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  background: #e1e5d0;
  padding: 21px 10px;
  border-bottom: 1px solid #ccd0bf;
}
.quick-strip div {
  text-align: center;
  border-right: 1px solid #bec5b4;
}
.quick-strip div:last-child {
  border: 0;
}
.quick-strip b {
  display: block;
  font: 500 24px/1 Georgia,serif;
}
.quick-strip span {
  display: block;
  margin-top: 6px;
  font-size: 10px;
  color: #647066;
}
.section {
  padding: 66px 20px;
}
.section-kicker {
  font-size: 9px;
  letter-spacing: .24em;
  color: #668071;
  font-weight: 900;
}
.section-kicker:before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 1px;
  background: currentColor;
  vertical-align: middle;
  margin-right: 9px;
}
.section-kicker.pale {
  color: #b9cfc0;
}
h2 {
  margin: 11px 0 30px;
  font-family: Georgia,"Noto Serif SC",serif;
  font-size: 36px;
  font-weight: 500;
  letter-spacing: -.03em;
}
.timeline {
  position: relative;
}
.timeline:before {
  content: "";
  position: absolute;
  left: 48px;
  top: 22px;
  bottom: 35px;
  width: 1px;
  background: #cad0c5;
}
.day-card {
  position: relative;
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 10px;
  margin-bottom: 30px;
}
.day-date {
  position: relative;
  z-index: 1;
  width: 58px;
  background: var(--paper);
  padding: 7px 0;
}
.day-date:after {
  content: "";
  position: absolute;
  right: 3px;
  top: 15px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lime);
  border: 3px solid var(--green);
}
.day-date b {
  font: 500 18px/1 Georgia,serif;
}
.day-date span {
  display: block;
  margin-top: 6px;
  font-size: 10px;
  color: var(--muted);
}
.day-content {
  background: white;
  border-radius: 7px;
  padding: 17px 16px;
  box-shadow: 0 8px 24px #0c2d1c0c;
}
.day-heading span {
  font-size: 8px;
  letter-spacing: .17em;
  color: #87958c;
}
.day-heading h3 {
  margin: 5px 0 17px;
  font-size: 18px;
}
.day-row {
  display: grid;
  grid-template-columns: 87px 1fr;
  gap: 7px;
  border-top: 1px solid #edf0ea;
  padding: 11px 0;
}
.day-row time {
  font-size: 10px;
  color: #597064;
  font-weight: 800;
}
.day-row p {
  margin: 0;
  font-size: 11px;
  line-height: 1.55;
  color: #46544b;
}
.flight-section {
  background: #0f2f22;
  color: white;
}
.flight-section h2 {
  color: white;
}
.flight-intro {
  color: #b8c9bf;
  font-size: 12px;
  line-height: 1.75;
  margin: -14px 0 24px;
}
.flight-card {
  position: relative;
  background: #f4f2e9;
  color: var(--ink);
  border-radius: 10px;
  padding: 24px 18px;
}
.tag {
  position: absolute;
  right: 16px;
  top: 0;
  transform: translateY(-50%);
  background: var(--lime);
  font-size: 9px;
  font-weight: 900;
  padding: 7px 12px;
  border-radius: 2px;
}
.route {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  text-align: center;
  align-items: center;
  border-bottom: 1px solid #d8ddd3;
  padding-bottom: 19px;
}
.route div:first-child {
  text-align: left;
}
.route div:last-child {
  text-align: right;
}
.route b {
  font: 500 30px/1 Georgia,serif;
}
.route div>span {
  display: block;
  font-size: 9px;
  color: #728076;
  margin-top: 5px;
}
.route-line {
  color: #7a887d;
}
.route-line i {
  display: block;
  font-size: 8px;
  font-style: normal;
}
.route-line>span {
  font-size: 16px !important;
  position: relative;
}
.route-line>span:before,.route-line>span:after {
  content: "";
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1px;
  background: #acb5aa;
}
.route-line>span:before {
  right: 60%;
}
.route-line>span:after {
  left: 60%;
}
.flight-leg {
  padding: 17px 0;
  border-bottom: 1px solid #d8ddd3;
}
.flight-leg>span {
  font-size: 9px;
  color: #728076;
  display: block;
}
.flight-leg strong {
  display: block;
  margin: 5px 0;
  font-size: 15px;
}
.flight-leg small {
  font-size: 10px;
  line-height: 1.55;
  color: #627067;
}
.flight-actions {
  display: grid;
  gap: 8px;
  padding: 15px 0;
}
.flight-actions a,.stay-card a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-weight: 800;
  color: #24523b;
}
.notice {
  margin: 4px 0 0;
  background: #e9eadf;
  padding: 11px;
  font-size: 9px;
  line-height: 1.6;
  color: #617065;
}
.stay-section {
  padding-bottom: 45px;
}
.stay-card {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  background: #dfe7d2;
  padding: 23px 18px;
  margin-bottom: 12px;
  border-radius: 7px;
}
.stay-card.dark {
  background: #173b2c;
  color: white;
}
.stay-no {
  font: 500 21px/1 Georgia,serif;
  color: #738678;
}
.stay-date {
  font-size: 9px;
  letter-spacing: .08em;
  color: #62766a;
}
.stay-card.dark .stay-date {
  color: #afc4b7;
}
.stay-card h3 {
  font: 500 21px/1.35 Georgia,"Noto Serif SC",serif;
  margin: 7px 0 11px;
}
.stay-card p {
  font-size: 10px;
  line-height: 1.7;
  color: #526158;
  margin: 0;
}
.stay-card.dark p {
  color: #c8d4cc;
}
.stay-card.dark a {
  color: var(--lime);
  margin-top: 14px;
}
.booking-card {
  margin-top: 26px;
  border: 1px solid #ccd3c8;
  padding: 18px;
  border-radius: 7px;
  background: #f7f6f0;
}
.booking-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #d8ddd4;
  padding-bottom: 13px;
  font-size: 13px;
  font-weight: 800;
}
.booking-head b {
  font-size: 9px;
  color: #38573f;
  background: var(--lime);
  padding: 5px 9px;
  border-radius: 20px;
}
.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 8px;
  padding: 18px 0;
}
.booking-grid small {
  display: block;
  font-size: 8px;
  color: #7e8a81;
}
.booking-grid strong {
  font-size: 12px;
}
.booking-card>p {
  border-top: 1px solid #d8ddd4;
  margin: 0;
  padding-top: 13px;
  font-size: 9px;
  line-height: 1.65;
  color: #737f76;
}
.people-section {
  background: #e4e9d6;
}
.people-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #bfc8b8;
}
.people-grid div {
  height: 66px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #bfc8b8;
}
.people-grid div:nth-child(odd) {
  border-right: 1px solid #bfc8b8;
}
.people-grid span {
  font: 500 12px Georgia,serif;
  color: #869587;
  margin: 0 13px 0 5px;
}
.people-grid b {
  font: 500 15px "Noto Serif SC",serif;
}
.tips {
  padding: 62px 20px;
  background: #16392a;
  color: white;
}
.tips h2 {
  color: white;
}
.tips ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tips li {
  display: grid;
  grid-template-columns: 34px 1fr;
  border-top: 1px solid #ffffff1f;
  padding: 18px 0;
}
.tips li>span {
  font: 500 13px Georgia,serif;
  color: var(--lime);
}
.tips p {
  margin: 0;
  color: #b9c9bf;
  font-size: 10px;
  line-height: 1.65;
}
.tips p b {
  display: block;
  color: white;
  font-size: 13px;
  margin-bottom: 3px;
}
footer {
  background: #0a2419;
  color: white;
  text-align: center;
  padding: 60px 20px;
}
footer>span {
  font-size: 8px;
  letter-spacing: .32em;
  color: var(--lime);
}
footer p {
  font: 500 25px Georgia,"Noto Serif SC",serif;
  margin: 10px 0 35px;
}
footer small {
  font-size: 8px;
  color: #759082;
}
@media (min-width:481px) {
  body {
    padding: 24px 0;
  }
}
@media (max-width:480px) {
  .day-row p { font-size: 12.5px; line-height: 1.65; }
  .day-row time { font-size: 11px; }
  .flight-intro { font-size: 13px; }
  .flight-leg small { font-size: 11.5px; line-height: 1.7; }
  .flight-actions a, .stay-card a { font-size: 12px; }
  .notice { font-size: 10.5px; line-height: 1.7; }
  .stay-card p { font-size: 11.5px; line-height: 1.75; }
  .booking-grid small { font-size: 9.5px; }
  .booking-grid strong { font-size: 13px; }
  .booking-card>p { font-size: 10.5px; line-height: 1.75; }
  .tips p { font-size: 11.5px; line-height: 1.7; }
}
@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }
}

.flight-group{margin:18px 0 26px;border:1px solid #ffffff20;border-radius:10px;overflow:hidden;background:#173b2c}
.flight-group-head{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#0a271b;border-bottom:1px solid #ffffff18}
.flight-group-head span{font-size:11px;color:#c4d4ca}.flight-group-head b{font:500 14px Georgia,serif;letter-spacing:.08em}
.flight-option{display:grid;grid-template-columns:43px 64px 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 7px;padding:14px 13px;border-bottom:1px solid #ffffff14}
.flight-option:last-child{border:0}.flight-option.recommended{background:#d8f04a;color:#10271d}.flight-rank{grid-row:1/3;font-size:9px;border:1px solid currentColor;border-radius:20px;padding:4px 0;text-align:center;opacity:.8}
.flight-option b{font:700 13px/1.2 Arial,sans-serif}.flight-option strong{font:500 16px/1.2 Georgia,serif;text-align:right}.flight-option small{grid-column:2/4;font-size:9.5px;color:#aebfb4}.flight-option.recommended small{color:#4d614f}
.flight-section .flight-actions{margin:8px 0}.flight-section .flight-actions a{background:#f2f1e9;color:#173b2c;padding:13px;border-radius:5px}
.map-section{background:#e6eadb}.map-intro{font-size:12px;line-height:1.7;color:#607066;margin:-15px 0 20px}
.map-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}.map-tab{border:1px solid #b8c2b5;border-radius:99px;padding:9px 0;font-size:11px;color:#53675a;cursor:pointer}.map-tab.active{background:#173b2c;color:white;border-color:#173b2c}
#trip-map{height:350px;border-radius:10px;overflow:hidden;background:#d7dfd4;box-shadow:0 10px 30px #15352114;z-index:0}
.trip-marker-wrap{background:transparent;border:0}.trip-marker{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#173b2c;color:white;font:700 11px Arial,sans-serif;border:3px solid white;box-shadow:0 3px 10px #0004}.trip-marker.active{background:#d8f04a;color:#173b2c}
.leaflet-popup-content{font:12px/1.5 "PingFang SC",sans-serif}.leaflet-popup-content span{color:#647368;font-size:10px}
.route-panel{margin-top:12px;background:white;border-radius:9px;padding:18px}.route-panel h3{margin:0 0 12px;font-size:15px}
.route-step{display:grid;grid-template-columns:31px 1fr;gap:8px;padding:11px 0;border-top:1px solid #e7ebe4}.route-step>span{font:500 11px Georgia,serif;color:#849185}.route-step b{display:block;font-size:12px}.route-step small{display:block;margin-top:3px;font-size:10px;color:#708076}
.map-note{font-size:9.5px;line-height:1.6;color:#7a887f;margin:12px 3px 0}
@media (max-width:480px){.flight-option strong{font-size:15px}.flight-option small{font-size:10px}.map-intro{font-size:12.5px}.route-step b{font-size:13px}.route-step small{font-size:11px}}

.top-reminder{padding:22px 20px;color:#10271d;background:#d8f04a;border-bottom:1px solid #b9ce36}
.reminder-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.reminder-title>span{display:grid;width:34px;height:34px;place-items:center;flex:0 0 auto;border-radius:50%;color:#d8f04a;background:#153426;font:800 18px/1 Arial,sans-serif}
.reminder-title b,.reminder-title small{display:block}.reminder-title b{font-size:17px}.reminder-title small{margin-top:3px;color:#476027;font-size:10px}
.top-reminder ul{overflow:hidden;margin:0;padding:0;list-style:none;border-radius:9px;background:#ffffff85}
.top-reminder li{display:grid;grid-template-columns:48px 1fr;gap:8px;padding:11px 12px;border-top:1px solid #15342621}
.top-reminder li:first-child{border-top:0}.top-reminder li b{padding-top:2px;font-size:10px;letter-spacing:.08em}.top-reminder li span{font-size:12px;font-weight:650;line-height:1.55}
.flight-callout{margin:0;padding:13px;color:#294333;background:#f1f5d0;font-size:10.5px;line-height:1.65}
.flight-callout.warning{color:#6b4b14;background:#fff0cf}
.route-visual{position:relative;overflow:hidden;height:320px;color:white;border-radius:10px;background:radial-gradient(circle at 72% 34%,#d8f04a26,transparent 32%),radial-gradient(circle at 26% 74%,#589d7738,transparent 30%),#102f22}
.route-map-head{position:absolute;z-index:1;top:15px;right:16px;left:16px;display:flex;justify-content:space-between;pointer-events:none}
.route-map-head span{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.route-map-head b{color:#c4d4ca;font-size:9px}
#route-svg{display:block;width:100%;height:100%}
.route-step em{grid-column:2/3;justify-self:start;margin-top:3px;padding:5px 8px;color:#2b5a40;border-radius:20px;background:#eef3e9;font-size:9.5px;font-style:normal}

#route-map{width:100%;height:100%;background:#dce4d7}
.route-map-head{z-index:500;padding:8px 10px;border-radius:7px;background:#173b2ce0;backdrop-filter:blur(5px)}
.route-marker-wrap{border:0;background:transparent}
.route-marker{display:grid;width:30px;height:30px;place-items:center;color:#173b2c;border:3px solid #fff;border-radius:50%;background:#d8f04a;box-shadow:0 3px 12px #0005;font:800 11px/1 Arial,sans-serif}
.leaflet-control-zoom{margin-top:67px!important;border:0!important;box-shadow:0 3px 14px #173b2c2b!important}
.leaflet-control-zoom a{color:#173b2c!important;background:#f7f7f0!important}
.leaflet-popup-content{margin:12px 14px;font:12px/1.55 "PingFang SC","Noto Sans SC",sans-serif}
.leaflet-popup-content b{color:#173b2c}.leaflet-popup-content span{color:#718076;font-size:10px}
.leaflet-control-attribution{font-size:8px!important;background:#ffffffd9!important}

.groups-section{color:#f4f3ea;background:#102f22}
.groups-section h2{color:#fff}.groups-intro{margin:-15px 0 22px;color:#b6c8bd;font-size:11px;line-height:1.7}
.groups-list{display:grid;gap:13px}
.group-card{overflow:hidden;border:1px solid #ffffff21;border-radius:11px;background:#173b2c;box-shadow:0 12px 28px #071b1230}
.group-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:17px 15px;border-bottom:1px solid #ffffff18}
.group-card-head span{display:block;margin-bottom:5px;color:#d8f04a;font-size:9px;font-weight:800;letter-spacing:.1em}
.group-card-head h3{margin:0;color:#fff;font:500 16px/1.3 "Noto Serif SC",serif}
.group-card-head>b{flex:0 0 auto;color:#c9d5cd;font:500 12px/1 Georgia,serif}
.group-pair{display:grid;grid-template-columns:1fr 1fr}
.group-pair>div{padding:15px 13px}.group-pair>div+div{border-left:1px solid #ffffff18}
.group-pair small{display:block;margin-bottom:9px;color:#9fb2a7;font-size:9px;font-weight:700}
.group-pair p{margin:0;color:#fff;font-size:11px;line-height:1.9;white-space:nowrap}
.group-pair strong{color:#d8f04a;font-weight:800}
@media(max-width:360px){.group-pair p{font-size:10px}.group-card-head h3{font-size:15px}}
