@import url("https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

:root {
  --navy: #17243a;
  --navy-2: #21334f;
  --teal: #0f7c78;
  --teal-dark: #0b6461;
  --orange: #f28c52;
  --orange-dark: #df7440;
  --cream: #fff8ef;
  --soft: #f4f7f8;
  --white: #ffffff;
  --ink: #273445;
  --muted: #687487;
  --line: #e2e8ec;
  --success: #168563;
  --danger: #b44949;
  --shadow-sm: 0 8px 24px rgba(23, 36, 58, 0.08);
  --shadow-md: 0 18px 48px rgba(23, 36, 58, 0.14);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --container: 1200px;
  --headingFont: "Poppins", sans-serif;
  --bodyFont: "Open Sans", sans-serif;
  --themeRed: #be0000;
  --themeBlack: #0a2230;
  --borderColor: #e0cea9;
  --white: #ffffff;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--white);
  font-family: var(--bodyFont);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
body.no-scroll {
  overflow: hidden;
}
img {
  display: block;
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: inherit;
}
button {
  cursor: pointer;
}
main {
  min-height: 64vh;
}
.container {
  width: min(calc(100% - 40px), var(--container));
  margin-inline: auto;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

h1,
h2,
h3,
h4,
p {
  margin-top: 0;
}
h1,
h2,
h3,
h4 {
  color: var(--navy);
  line-height: 1.12;
  letter-spacing: -0.025em;
}
h1 {
  font-size: clamp(2.45rem, 5vw, 4.8rem);
}
h2 {
  font-size: clamp(2rem, 3.8vw, 3.35rem);
}
h3 {
  font-size: 1.25rem;
}
p {
  color: var(--muted);
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 13px;
  color: var(--teal);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.eyebrow::before {
  width: 22px;
  height: 2px;
  content: "";
  background: currentColor;
  border-radius: 2px;
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 800;
  line-height: 1.2;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}
.button:hover {
  transform: translateY(-2px);
}
.button-primary {
  color: var(--white);
  background: var(--orange);
  box-shadow: 0 10px 24px rgba(242, 140, 82, 0.28);
}
.button-primary:hover {
  background: var(--orange-dark);
}
.button-secondary {
  color: var(--navy);
  background: var(--cream);
  border-color: #ead7c0;
}
.button-secondary:hover {
  border-color: var(--orange);
}
.button-ghost {
  color: var(--navy);
  background: rgba(255, 255, 255, 0.68);
  border-color: rgba(23, 36, 58, 0.16);
}
.button-light {
  color: var(--navy);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
button.button-danger-ghost {
  color: var(--danger);
  border: none;
  min-height: auto;
  background: var(--white);
  padding: 8px 20px;
  height: 30px;
}
button.button-danger-ghost:hover {
  background: #e7c9c9;
  transition: 0.5s;
}
.rp-source-pills a.downloadPdf {
  background: var(--themeBlack);
  transition: 0.5s;
  color: var(--white);
  height: 30px;
  min-height: 30px;
  border-radius: 8px;
  border: none;
  font-size: 14px;
}
.rp-source-pills a.downloadPdf:hover {
  transition: 0.5s;
  background: var(--themeRed);
}
.button-sm {
  min-height: 38px;
  padding: 8px 15px;
  font-size: 0.88rem;
}
.button-lg {
  min-height: 54px;
  padding: 14px 26px;
}
.button-block {
  width: 100%;
}
.text-link {
  color: var(--teal);
  font-weight: 800;
}
.text-link span {
  display: inline-block;
  transition: transform 0.2s ease;
}
.text-link:hover span {
  transform: translateX(4px);
}
.back-link {
  display: inline-flex;
  margin-bottom: 0;
  color: var(--themeBlack);
  font-weight: 600;
  font-size: 0.9rem;
  margin-right: 15px;
  gap: 5px;
}
.afterLogin .back-link {
  color: var(--white);
  position: relative;
}
.afterLogin .sectionTag {
  color: var(--white);
}
.afterLogin .back-link::before {
  background: #94989b;
  width: 4px;
  height: 4px;
  position: absolute;
  top: 50%;
  right: -12px;
  transform: translateY(-50%);
  border-radius: 50%;
  content: "";
}

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(226, 232, 236, 0.9);
  backdrop-filter: blur(14px);
}
.nav-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  flex: 0 0 auto;
}
.brand-mark {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: flex-end;
  justify-content: center;
  gap: 3px;
  padding: 8px;
  border-radius: 13px;
  background: var(--navy);
  transform: rotate(-3deg);
}
.brand-mark span {
  display: block;
  width: 6px;
  border-radius: 4px 4px 2px 2px;
  background: var(--orange);
}
.brand-mark span:nth-child(1) {
  height: 13px;
}
.brand-mark span:nth-child(2) {
  height: 22px;
  background: #fff;
}
.brand-mark span:nth-child(3) {
  height: 17px;
  background: #7fd6cf;
}
.brand-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}
.brand-copy strong {
  color: var(--navy);
  font-size: 1.2rem;
  letter-spacing: -0.04em;
}
.brand-copy small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.61rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.main-nav {
  display: flex;
  align-items: center;
  gap: 27px;
  color: var(--navy);
  font-size: 0.92rem;
  font-weight: 750;
}
.main-nav > a:not(.button):hover,
.nav-link-button:hover {
  color: var(--teal);
}
.nav-form {
  margin: 0;
}
.nav-link-button {
  padding: 0;
  border: 0;
  color: var(--navy);
  background: transparent;
  font-weight: 750;
}
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  border-radius: 12px;
  background: var(--soft);
}
.nav-toggle > span:not(.sr-only) {
  display: block;
  height: 2px;
  margin: 5px 0;
  border-radius: 2px;
  background: var(--navy);
}
.flash-stack {
  position: fixed;
  z-index: 90;
  top: 88px;
  right: 20px;
  width: min(420px, calc(100% - 40px));
}
.flash {
  margin-bottom: 10px;
  padding: 14px 18px;
  border-radius: 14px;
  box-shadow: var(--shadow-md);
  font-weight: 700;
}
.flash-success {
  color: #0e6149;
  background: #e7f7f0;
  border: 1px solid #adddcc;
}
.flash-error {
  color: #8d3535;
  background: #fff0f0;
  border: 1px solid #efc0c0;
}

.hero {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  background: linear-gradient(125deg, #fff8ef 0%, #f8fbfb 58%, #e9f5f3 100%);
}
.hero::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.55;
  background-image: radial-gradient(
    rgba(23, 36, 58, 0.09) 1px,
    transparent 1px
  );
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom, #000 0, transparent 80%);
}
.hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 700px;
  align-items: center;
  grid-template-columns: minmax(0, 1.04fr) minmax(420px, 0.96fr);
  gap: 70px;
  padding-block: 72px 88px;
}
.hero-copy h1 {
  max-width: 760px;
  margin-bottom: 24px;
}
.hero-lead {
  max-width: 700px;
  margin-bottom: 30px;
  font-size: 1.14rem;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
}
.hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
  margin-top: 38px;
}
.hero-proof div {
  display: flex;
  flex-direction: column;
}
.hero-proof strong {
  color: var(--navy);
  font-size: 1.02rem;
}
.hero-proof span {
  color: var(--muted);
  font-size: 0.76rem;
}
.hero-visual {
  position: relative;
  min-height: 560px;
}
.phone-wrap {
  position: absolute;
  top: 22px;
  right: 50px;
  width: min(390px, 80%);
  filter: drop-shadow(0 28px 28px rgba(23, 36, 58, 0.24));
}
.phone-wrap img {
  width: 100%;
}
.floating-card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 17px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(10px);
}
.floating-card small {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
}
.floating-card strong {
  display: block;
  color: var(--navy);
  font-size: 0.9rem;
}
.floating-card-analysis {
  top: 100px;
  left: -16px;
}
.floating-card-analysis b {
  margin-left: 12px;
  color: var(--teal);
}
.status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 6px rgba(15, 124, 120, 0.12);
}
.floating-card-plan {
  right: -10px;
  bottom: 88px;
  display: block;
  width: 218px;
}
.mini-route {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
}
.mini-route::before {
  position: absolute;
  right: 28px;
  bottom: 26px;
  left: 28px;
  height: 2px;
  content: "";
  background: #cfe3e0;
}
.mini-route span {
  position: relative;
  z-index: 1;
  width: 10px;
  height: 10px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 2px var(--teal);
}
.hero-stamp {
  position: absolute;
  right: 8px;
  top: 55px;
  padding: 9px 14px;
  color: #78542b;
  border: 1px dashed #bd9462;
  border-radius: 999px;
  background: #fff5df;
  font-size: 0.72rem;
  font-weight: 800;
  transform: rotate(5deg);
}
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
}
.hero-orb-one {
  width: 340px;
  height: 340px;
  right: -90px;
  top: -80px;
  background: rgba(242, 140, 82, 0.16);
}
.hero-orb-two {
  width: 240px;
  height: 240px;
  left: 45%;
  bottom: 60px;
  background: rgba(15, 124, 120, 0.12);
}
.mountain-strip {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: -1px;
  left: 0;
  width: 100%;
  max-height: 160px;
  object-fit: cover;
  object-position: center bottom;
  opacity: 0.92;
}

.section {
  padding-block: 100px;
}
.section-cream {
  background: var(--cream);
}
.section-soft {
  background: var(--soft);
}
.section-heading {
  max-width: 620px;
  margin-bottom: 45px;
}
.section-heading h2 {
  margin-bottom: 17px;
}
.section-heading.centered {
  margin-inline: auto;
  text-align: center;
}
.section-heading.centered .eyebrow {
  justify-content: center;
}
.section-heading.light h2,
.section-heading.light p {
  color: #fff;
}
.section-heading.light .eyebrow {
  color: #91e2dc;
}
.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.step-card {
  position: relative;
  min-height: 290px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid #ecdcc8;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.84);
}
.step-card > span {
  position: absolute;
  right: 20px;
  top: 11px;
  color: rgba(23, 36, 58, 0.08);
  font-size: 3.4rem;
  font-weight: 900;
}
.step-icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 55px;
  place-items: center;
  color: #fff;
  border-radius: 15px;
  background: var(--teal);
  font-size: 1.2rem;
}
.step-card:nth-child(even) .step-icon {
  background: var(--orange);
}
.step-card h3 {
  margin-bottom: 10px;
}
.step-card p {
  margin-bottom: 0;
  font-size: 0.92rem;
}
.feature-layout {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: 90px;
}
.feature-layout .section-heading {
  position: sticky;
  top: 125px;
}
.feature-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.feature-card {
  min-height: 245px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.feature-card i {
  display: inline-grid;
  width: 42px;
  height: 42px;
  margin-bottom: 35px;
  place-items: center;
  color: var(--teal);
  border-radius: 50%;
  background: #eaf7f5;
  font-style: normal;
  font-weight: 900;
}
.feature-card h3 {
  margin-bottom: 12px;
}
.feature-card p {
  margin-bottom: 0;
  font-size: 0.92rem;
}
.showcase-section {
  background: var(--navy);
}
.destination-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.destination-card {
  position: relative;
  height: 390px;
  overflow: hidden;
  border-radius: 23px;
  background: var(--navy-2);
}
.destination-card::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(to top, rgba(10, 18, 31, 0.85), transparent 60%);
}
.destination-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.destination-card:hover img {
  transform: scale(1.04);
}
.destination-card > div {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: 24px;
  left: 24px;
}
.destination-card span {
  color: #b3e4df;
  font-size: 0.73rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.destination-card h3 {
  margin: 4px 0 0;
  color: #fff;
  font-size: 1.5rem;
}
.cta-band {
  padding-block: 80px;
  background: var(--teal);
}
.cta-band-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.cta-band .eyebrow {
  color: #b7eee9;
}
.cta-band h2 {
  max-width: 760px;
  margin-bottom: 0;
  color: #fff;
}

.site-footer {
  padding-top: 70px;
  color: #d5dce6;
  background: #101a2b;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 0.7fr;
  gap: 55px;
  padding-bottom: 55px;
}
.brand-light .brand-copy strong {
  color: #fff;
}
.brand-light .brand-copy small {
  color: #9eabba;
}
.site-footer p {
  max-width: 430px;
  margin: 18px 0 0;
  color: #9eabba;
  font-size: 0.9rem;
}
.site-footer strong {
  color: #fff;
}
.footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-links a:hover {
  color: #fff;
}
.footer-bottom {
  padding-block: 18px;
  color: #7d8a9b;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.8rem;
}

.auth-page {
  background: var(--soft);
}
.auth-section {
  min-height: calc(100vh - 78px);
  padding-block: 70px 95px;
  background:
    radial-gradient(
      circle at 10% 20%,
      rgba(242, 140, 82, 0.14),
      transparent 35%
    ),
    radial-gradient(
      circle at 90% 70%,
      rgba(15, 124, 120, 0.14),
      transparent 35%
    );
}
.auth-grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 500px);
  gap: 90px;
}
.auth-copy {
  max-width: 620px;
}
.auth-copy h1 {
  margin-bottom: 22px;
  font-size: clamp(2.6rem, 5vw, 4.4rem);
}
.auth-copy > p {
  max-width: 520px;
  font-size: 1.08rem;
}
.auth-visual-card {
  display: flex;
  max-width: 490px;
  flex-direction: column;
  margin-top: 32px;
  padding: 22px;
  border: 1px solid #d4e8e5;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.7);
}
.auth-visual-card strong {
  color: var(--teal);
  font-size: 1.15rem;
}
.auth-visual-card span {
  color: var(--muted);
}
.auth-card {
  padding: 38px;
  border: 1px solid #e5eaed;
  border-radius: 26px;
  background: #fff;
  box-shadow: var(--shadow-md);
}
.auth-card h2 {
  margin-bottom: 9px;
}
.auth-card > p {
  margin-bottom: 25px;
}
.stack-form {
  display: grid;
  gap: 17px;
}
.stack-form .field-label,
.planner-form label {
  display: grid;
  gap: 0px;
  color: var(--navy);
  font-size: 0.86rem;
  font-weight: 400;
}
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  width: 100%;
  min-width: 0;
  color: var(--ink);
  border: 1px solid #ccd5da;
  border-radius: 12px;
  background: #fff;
  outline: none;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
input:not([type="checkbox"]):not([type="radio"]),
select {
  min-height: 40px;
  padding: 10px 13px;
}
textarea {
  padding: 13px;
  resize: vertical;
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 4px rgba(15, 124, 120, 0.1);
}
.form-switch {
  margin: 22px 0 0;
  text-align: center;
  font-size: 0.9rem;
}
.form-switch a {
  color: var(--teal);
  font-weight: 800;
}
.check-list {
  display: grid;
  gap: 12px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}
.check-list li {
  display: flex;
  gap: 10px;
  color: var(--navy);
  font-weight: 700;
}
.check-list li::before {
  display: grid;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  place-items: center;
  content: "✓";
  color: #fff;
  border-radius: 50%;
  background: var(--teal);
  font-size: 0.7rem;
}

.dashboard-hero {
  padding-block: 70px;
  color: #fff;
  background: var(--navy);
}
.dashboard-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
}
.dashboard-hero .eyebrow {
  color: #8edbd5;
}
.dashboard-hero h1 {
  margin-bottom: 11px;
  color: #fff;
  font-size: clamp(2.3rem, 4vw, 3.5rem);
}
.dashboard-hero p {
  max-width: 650px;
  margin-bottom: 0;
  color: #b8c3d0;
}
.trip-list-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 26px;
}
.trip-list-heading h2 {
  margin-bottom: 5px;
  font-size: 2rem;
}
.trip-list-heading p {
  margin-bottom: 0;
}
.trip-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.trip-card {
  display: flex;
  min-width: 0;
  min-height: 315px;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.trip-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.trip-card-top small {
  color: var(--muted);
}
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.status-completed {
  color: #10684f;
  background: #e2f5ed;
}
.status-processing {
  color: #8a6118;
  background: #fff2d9;
}
.status-failed {
  color: #9b3e3e;
  background: #ffebeb;
}
.trip-card-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin: 28px 0 22px;
  place-items: center;
  color: #fff;
  border-radius: 16px;
  background: var(--teal);
  font-size: 1.25rem;
}
.trip-card h3 {
  overflow-wrap: anywhere;
  margin-bottom: 9px;
}
.trip-card p {
  flex: 1;
  margin-bottom: 20px;
  font-size: 0.9rem;
}
.trip-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.icon-action {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--navy);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 0.72rem;
  font-weight: 900;
}
.empty-state {
  max-width: 680px;
  margin: 40px auto;
  padding: 65px 30px;
  text-align: center;
  border: 1px dashed #cbd7db;
  border-radius: 25px;
  background: #fff;
}
.empty-state .eyebrow {
  justify-content: center;
}
.empty-icon {
  display: grid;
  width: 64px;
  height: 64px;
  margin: 0 auto 22px;
  place-items: center;
  color: #fff;
  border-radius: 20px;
  background: var(--teal);
  font-size: 1.8rem;
}
.loader-ring {
  width: 60px;
  height: 60px;
  margin: 0 auto 25px;
  border: 5px solid #dbeae8;
  border-top-color: var(--teal);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.planner-page {
  padding-block: 55px 95px;
  background: var(--soft);
}
.planner-heading {
  max-width: 880px;
  margin-bottom: 35px;
}
.planner-heading h1 {
  margin-bottom: 16px;
  font-size: clamp(2.3rem, 4.2vw, 3.8rem);
}
.planner-heading > p {
  max-width: 760px;
  font-size: 1.03rem;
}
.planner-layout {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 315px;
  gap: 25px;
}
.planner-form {
  min-width: 0;
}
.form-panel {
  position: relative;
  margin-bottom: 20px;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(23, 36, 58, 0.05);
}
.panel-number {
  position: absolute;
  top: 30px;
  left: 30px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: #fff;
  border-radius: 12px;
  background: var(--teal);
  font-weight: 900;
}
.panel-title {
  padding-left: 55px;
  margin-bottom: 27px;
}
.panel-title h2 {
  margin-bottom: 6px;
  font-size: 1.55rem;
}
.panel-title p {
  margin-bottom: 0;
  font-size: 0.9rem;
}
.reel-input-list {
  display: grid;
  gap: 13px;
}
.reel-input-row {
  display: grid !important;
  align-items: center;
  grid-template-columns: 68px minmax(0, 1fr) 62px;
  gap: 12px !important;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fbfcfc;
}
.reel-input-row input {
  border: 0;
  background: transparent;
  box-shadow: none !important;
}
.reel-input-row small {
  color: var(--muted);
  text-align: right;
  font-weight: 600;
}
.form-note {
  margin-top: 16px;
  padding: 13px 15px;
  color: #4b6171;
  border-radius: 12px;
  background: #edf7f6;
  font-size: 0.84rem;
}
.form-grid {
  display: grid;
  gap: 17px;
}
.form-grid.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.choice-fieldset {
  margin: 27px 0 0;
  padding: 0;
  border: 0;
}
.choice-fieldset legend {
  margin-bottom: 10px;
  color: var(--navy);
  font-size: 0.86rem;
  font-weight: 800;
}
.segment-control {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.segment-control input,
.chip-control input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
.segment-control label {
  position: relative;
}
.segment-control span {
  display: flex;
  min-height: 92px;
  flex-direction: column;
  justify-content: center;
  padding: 14px;
  color: var(--navy);
  border: 1px solid #d6dde1;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
}
.segment-control small {
  margin-top: 4px;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.35;
}
.segment-control input:checked + span {
  border-color: var(--teal);
  background: #edf8f6;
  box-shadow: inset 0 0 0 1px var(--teal);
}
.chip-control {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.chip-control span {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  padding: 8px 14px;
  border: 1px solid #d6dde1;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
}
.chip-control input:checked + span {
  color: #fff;
  border-color: var(--teal);
  background: var(--teal);
}
.choice-fieldset + label {
  margin-top: 25px;
}
.planner-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px;
  border-radius: 20px;
  background: var(--navy);
}
.planner-submit > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.planner-submit strong {
  color: #fff;
}
.planner-submit span {
  color: #9eabba;
  font-size: 0.82rem;
}
.trip-error-card {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  margin-top: 16px;
  padding: 20px;
  border: 1px solid #efb8b2;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff7f5, #fff);
  box-shadow: 0 12px 30px rgba(121, 50, 43, 0.08);
}
.trip-error-card[hidden] {
  display: none;
}
.trip-error-icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  color: #fff;
  border-radius: 15px;
  background: var(--danger);
  font-size: 1.35rem;
  font-weight: 900;
}
.trip-error-content {
  min-width: 0;
}
.trip-error-content .eyebrow {
  margin-bottom: 5px;
  color: var(--danger);
}
.trip-error-content h3 {
  margin-bottom: 7px;
  font-size: 1.25rem;
}
.trip-error-content > p {
  margin-bottom: 6px;
  color: #5c4b4a;
}
.trip-error-hint {
  font-size: 0.88rem;
}
.trip-error-content > small {
  display: block;
  margin-top: 9px;
  color: var(--muted);
  font-weight: 700;
}
.trip-error-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 16px;
}
.trip-error-actions .button {
  min-height: 42px;
  padding: 10px 16px;
}
.trip-error-actions .text-link {
  padding: 8px 2px;
  color: var(--navy);
  font-size: 0.84rem;
  font-weight: 800;
}
.planner-aside {
  position: sticky;
  top: 104px;
  display: grid;
  gap: 17px;
}
.aside-card {
  padding: 23px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}
.aside-card p {
  margin-bottom: 0;
  font-size: 0.86rem;
}
.aside-card-dark {
  color: #fff;
  border: 0;
  background: var(--navy);
}
.aside-card-dark .eyebrow {
  color: #8edbd5;
}
.aside-card ul {
  display: grid;
  gap: 10px;
  margin: 8px 0 0;
  padding-left: 18px;
}
.aside-card-dark li {
  color: #c6cfda;
}
.processing-overlay {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(10, 18, 31, 0.82);
  backdrop-filter: blur(8px);
}
.processing-overlay[hidden] {
  display: none;
}
.processing-card {
  width: min(620px, 100%);
  padding: 38px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.34);
}
.processing-logo {
  display: flex;
  justify-content: center;
  margin-bottom: 18px;
}
.processing-card h2 {
  margin-bottom: 9px;
}
.processing-card > p {
  margin-bottom: 24px;
}
.stage-progress {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7edef;
}
.stage-progress span {
  display: block;
  width: 8%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--teal), var(--orange));
  transition: width 0.8s ease;
}
.processing-stages {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 27px 0 20px;
  padding: 0;
  list-style: none;
}
.processing-stages li {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #9aa4af;
  font-size: 0.72rem;
}
.processing-stages i {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #edf1f3;
  font-style: normal;
  font-weight: 900;
}
.processing-stages li.active,
.processing-stages li.done {
  color: var(--navy);
}
.processing-stages li.active i {
  color: #fff;
  background: var(--orange);
  box-shadow: 0 0 0 7px rgba(242, 140, 82, 0.13);
}
.processing-stages li.done i {
  color: #fff;
  background: var(--teal);
}
.processing-card > small {
  color: var(--muted);
}

.trip-detail-page {
  padding-bottom: 100px;
  background: var(--soft);
}
.trip-detail-toolbar {
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.trip-detail-toolbar .back-link {
  margin-bottom: 0;
}
.toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.toolbar-actions form {
  margin: 0;
}
.trip-cover {
  padding-block: 58px;
  color: #fff;
  background:
    radial-gradient(
      circle at 88% 10%,
      rgba(242, 140, 82, 0.28),
      transparent 28%
    ),
    var(--navy);
}
.trip-cover-grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 60px;
}
.trip-cover h1 {
  max-width: 830px;
  margin: 18px 0 16px;
  color: #fff;
  font-size: clamp(2.5rem, 4.5vw, 4.1rem);
}
.trip-cover p {
  max-width: 810px;
  color: #bec8d5;
}
.source-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 23px;
}
.source-pills a {
  max-width: 240px;
  overflow: hidden;
  padding: 8px 12px;
  color: #d8e3ed;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 999px;
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trip-score-card {
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
}
.trip-score-card small,
.trip-score-card span {
  display: block;
  color: #aebac8;
}
.trip-score-card strong {
  display: block;
  margin: 7px 0 10px;
  color: #fff;
  font-size: 2rem;
}
.trip-score-card span {
  font-size: 0.78rem;
  line-height: 1.45;
}
.trip-overview-grid {
  display: grid;
  position: relative;
  z-index: 2;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin-top: -25px;
}
.stat-card {
  padding: 19px 21px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.stat-card span {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.stat-card strong {
  display: block;
  margin-top: 4px;
  color: var(--navy);
  font-size: 1.1rem;
}
.trip-content-layout {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 24px;
  padding-top: 55px;
}
.itinerary-column {
  min-width: 0;
}
.content-heading {
  margin-bottom: 25px;
}
.content-heading h2 {
  margin-bottom: 10px;
  font-size: 2.2rem;
}
.content-heading p {
  margin-bottom: 0;
}
.day-card {
  margin-bottom: 22px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(23, 36, 58, 0.05);
}
.day-card > header {
  display: grid;
  align-items: center;
  grid-template-columns: 78px minmax(0, 1fr) auto;
  gap: 16px;
  padding: 22px 24px;
  background: var(--cream);
  border-bottom: 1px solid #eedecb;
}
.day-number {
  color: var(--orange-dark);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.day-card header h3 {
  margin-bottom: 5px;
}
.day-card header p {
  margin-bottom: 0;
  font-size: 0.82rem;
}
.day-cost {
  text-align: right;
}
.day-cost small {
  display: block;
  color: var(--muted);
  font-size: 0.7rem;
}
.day-cost strong {
  color: var(--navy);
  font-size: 0.88rem;
}
.timeline {
  padding: 5px 24px 12px;
}
.timeline-item {
  display: grid;
  min-width: 0;
  grid-template-columns: 72px 24px minmax(0, 1fr);
  gap: 10px;
  padding-block: 20px;
}
.timeline-item + .timeline-item {
  border-top: 1px solid #edf0f2;
}
.timeline-time {
  padding-top: 3px;
  text-align: right;
}
.timeline-time strong,
.timeline-time span {
  display: block;
  font-size: 0.78rem;
}
.timeline-time strong {
  color: var(--teal);
}
.timeline-time span {
  color: var(--muted);
}
.timeline-marker {
  position: relative;
  display: flex;
  justify-content: center;
}
.timeline-marker::after {
  position: absolute;
  top: 18px;
  bottom: -38px;
  width: 2px;
  content: "";
  background: #dce8e6;
}
.timeline-item:last-child .timeline-marker::after {
  display: none;
}
.timeline-marker span {
  position: relative;
  z-index: 1;
  width: 11px;
  height: 11px;
  margin-top: 7px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 2px var(--teal);
}
.timeline-content {
  min-width: 0;
}
.timeline-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 7px;
}
.type-pill,
.basis-pill {
  display: inline-flex;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.type-pill {
  color: #48606f;
  background: #edf2f4;
}
.basis-pill {
  color: #7a5a29;
  background: #fff2d9;
}
.basis-explicit_from_reel {
  color: #116a51;
  background: #e1f5ed;
}
.basis-inferred_from_reel {
  color: #3e5a8e;
  background: #eaf0fb;
}
.timeline-content h4 {
  margin-bottom: 7px;
  font-size: 1.03rem;
}
.place-name {
  display: block;
  margin-bottom: 6px;
  color: var(--teal);
  font-size: 0.78rem;
}
.timeline-content p {
  margin-bottom: 7px;
  font-size: 0.86rem;
}
.practical-note {
  padding: 9px 11px;
  color: #5a6876;
  border-radius: 9px;
  background: #f6f8f9;
  font-size: 0.75rem;
}
.day-card > footer {
  padding: 16px 24px;
  border-top: 1px solid var(--line);
  background: #fbfcfc;
}
.day-card footer strong {
  color: var(--navy);
  font-size: 0.78rem;
}
.day-card footer p {
  margin: 3px 0 0;
  font-size: 0.78rem;
}
.trip-sidebar {
  position: sticky;
  top: 100px;
  display: grid;
  gap: 17px;
}
.sidebar-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: #fff;
}
.sidebar-card .eyebrow {
  margin-bottom: 8px;
}
.sidebar-card h3 {
  margin-bottom: 10px;
}
.sidebar-card p {
  font-size: 0.84rem;
}
.sidebar-card ul {
  display: grid;
  gap: 9px;
  margin: 10px 0 0;
  padding-left: 18px;
}
.sidebar-card li {
  color: #536273;
  font-size: 0.79rem;
  line-height: 1.45;
}
.budget-card {
  color: #fff;
  border: 0;
  background: var(--teal);
}
.budget-card .eyebrow {
  color: #c5f0ec;
}
.budget-card h3 {
  color: #fff;
}
.budget-card p,
.budget-card li {
  color: #d3f1ee;
}
.mention-card {
  display: flex;
  flex-direction: column;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.mention-card strong {
  color: var(--navy);
  font-size: 0.88rem;
}
.mention-card span,
.mention-card small {
  color: var(--muted);
  font-size: 0.72rem;
}
.failure-panel {
  margin: 65px auto;
  max-width: 780px;
  padding: 42px;
  border: 1px solid #e8c0ba;
  border-radius: 26px;
  background: linear-gradient(145deg, #fff8f6, #fff);
  box-shadow: var(--shadow-sm);
}
.failure-panel-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.failure-panel-icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  place-items: center;
  color: #fff;
  border-radius: 16px;
  background: var(--danger);
  font-size: 1.35rem;
  font-weight: 900;
}
.failure-panel .eyebrow {
  margin-bottom: 3px;
  color: var(--danger);
}
.failure-panel h1 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 2.7rem);
}
.failure-panel > p {
  max-width: 620px;
  margin-bottom: 10px;
}
.failure-hint {
  padding: 13px 15px;
  border-radius: 12px;
  background: #fff0ec;
  font-size: 0.9rem;
}
.failure-reference {
  display: block;
  margin-top: 13px;
  color: var(--muted);
  font-weight: 700;
}
.failure-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 23px;
}

.error-page {
  display: grid;
  min-height: 65vh;
  place-items: center;
  padding-block: 80px;
  text-align: center;
  background: var(--soft);
}
.error-page span {
  color: var(--orange);
  font-size: 5rem;
  font-weight: 900;
  opacity: 0.35;
}
.error-page h1 {
  margin-bottom: 13px;
}
.error-page p {
  max-width: 560px;
  margin-inline: auto;
}

@media (max-width: 1100px) {
  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
    gap: 30px;
  }
  .phone-wrap {
    right: 20px;
  }
  .floating-card-analysis {
    left: -5px;
  }
  .steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .step-card {
    min-height: 245px;
  }
  .step-icon {
    margin-bottom: 35px;
  }
  .trip-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .planner-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
  }
  .trip-content-layout {
    grid-template-columns: minmax(0, 1fr) 290px;
  }
}

@media (max-width: 900px) {
  .nav-toggle {
    display: block;
  }
  .main-nav {
    position: absolute;
    top: 68px;
    right: 20px;
    left: 20px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-md);
  }
  .main-nav.open {
    display: flex;
  }
  .main-nav > a,
  .nav-link-button {
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 10px;
  }
  .main-nav .button {
    justify-content: center;
  }
  .nav-form {
    width: 100%;
  }
  .hero {
    min-height: auto;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    padding-top: 58px;
    padding-bottom: 180px;
    text-align: center;
  }
  .hero-copy {
    max-width: 760px;
    margin-inline: auto;
  }
  .hero-copy h1,
  .hero-lead {
    margin-inline: auto;
  }
  .hero-actions,
  .hero-proof {
    justify-content: center;
  }
  .hero-visual {
    width: min(600px, 100%);
    min-height: 520px;
    margin: 0 auto;
  }
  .phone-wrap {
    right: 50%;
    width: 330px;
    transform: translateX(50%);
  }
  .floating-card-analysis {
    left: 3%;
    top: 100px;
    text-align: left;
  }
  .floating-card-plan {
    right: 3%;
    bottom: 55px;
    text-align: left;
  }
  .hero-stamp {
    right: 7%;
  }
  .mountain-strip {
    max-height: 150px;
  }
  .feature-layout {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .feature-layout .section-heading {
    position: static;
  }
  .destination-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .auth-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .auth-copy {
    text-align: center;
    margin-inline: auto;
  }
  .auth-copy > p,
  .auth-visual-card {
    margin-inline: auto;
  }
  .auth-card {
    width: min(520px, 100%);
    margin-inline: auto;
  }
  .planner-layout {
    grid-template-columns: 1fr;
  }
  .planner-aside {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .trip-cover-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .trip-score-card {
    max-width: 440px;
  }
  .trip-content-layout {
    grid-template-columns: 1fr;
  }
  .trip-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .container {
    width: min(calc(100% - 28px), var(--container));
  }
  .nav-shell {
    min-height: 68px;
  }
  .brand-mark {
    width: 38px;
    height: 38px;
  }
  .brand-copy small {
    display: none;
  }
  .main-nav {
    top: 62px;
    right: 14px;
    left: 14px;
  }
  .section {
    padding-block: 72px;
  }
  .hero-grid {
    padding-top: 44px;
    padding-bottom: 155px;
  }
  .hero-copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.6rem);
  }
  .hero-lead {
    font-size: 1rem;
  }
  .hero-actions {
    flex-direction: column;
  }
  .hero-actions .button {
    width: 100%;
  }
  .hero-proof {
    gap: 18px;
  }
  .hero-proof div {
    min-width: 90px;
  }
  .hero-visual {
    min-height: 455px;
  }
  .phone-wrap {
    width: 285px;
    top: 10px;
  }
  .floating-card {
    padding: 11px 12px;
    border-radius: 14px;
  }
  .floating-card-analysis {
    left: 0;
    top: 80px;
  }
  .floating-card-analysis b {
    display: none;
  }
  .floating-card-plan {
    right: 0;
    bottom: 40px;
    width: 185px;
  }
  .hero-stamp {
    top: 28px;
    right: 0;
  }
  .steps-grid,
  .feature-cards,
  .destination-grid,
  .trip-card-grid {
    grid-template-columns: 1fr;
  }
  .step-card {
    min-height: 230px;
  }
  .destination-card {
    height: 360px;
  }
  .cta-band-inner {
    align-items: stretch;
    flex-direction: column;
    text-align: center;
  }
  .cta-band .eyebrow {
    justify-content: center;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .auth-section {
    padding-block: 45px 30px;
  }
  .auth-copy h1 {
    font-size: 2.5rem;
  }
  .auth-card {
    padding: 26px 20px;
    border-radius: 20px;
  }
  .dashboard-hero-inner {
    align-items: stretch;
    flex-direction: column;
  }
  .dashboard-hero-inner .button {
    align-self: flex-start;
  }
  .planner-page {
    padding-top: 35px;
  }
  .planner-heading h1 {
    font-size: 2.45rem;
  }
  .form-panel {
    padding: 25px 18px;
  }
  .panel-number {
    position: static;
    margin-bottom: 12px;
  }
  .panel-title {
    padding-left: 0;
  }
  .reel-input-row {
    grid-template-columns: 55px minmax(0, 1fr);
  }
  .reel-input-row small {
    display: none;
  }
  .form-grid.two-col {
    grid-template-columns: 1fr;
  }
  .segment-control {
    grid-template-columns: 1fr;
  }
  .segment-control span {
    min-height: 75px;
  }
  .planner-submit {
    align-items: stretch;
    flex-direction: column;
    padding: 20px;
  }
  .planner-submit .button {
    width: 100%;
  }
  .trip-error-card {
    grid-template-columns: 1fr;
    padding: 18px;
  }
  .trip-error-icon {
    width: 42px;
    height: 42px;
  }
  .trip-error-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .trip-error-actions .button,
  .trip-error-actions .text-link {
    width: 100%;
    text-align: center;
  }
  .planner-aside {
    grid-template-columns: 1fr;
  }
  .processing-card {
    padding: 28px 18px;
  }
  .processing-stages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .failure-panel {
    margin-block: 30px;
    padding: 25px 18px;
  }
  .failure-panel-head {
    align-items: flex-start;
  }
  .failure-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .failure-actions .button {
    width: 100%;
  }
  .trip-detail-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding-block: 18px;
  }
  .toolbar-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .toolbar-actions .button {
    width: 100%;
  }
  .trip-cover {
    padding-block: 42px;
  }
  .trip-cover h1 {
    font-size: 2.45rem;
  }
  .trip-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 16px;
  }
  .trip-content-layout {
    padding-top: 38px;
  }
  .day-card > header {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .day-cost {
    text-align: left;
  }
  .timeline {
    padding-inline: 14px;
  }
  .timeline-item {
    grid-template-columns: 57px 18px minmax(0, 1fr);
    gap: 7px;
  }
  .timeline-time {
    text-align: left;
  }
  .trip-sidebar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .container {
    width: min(calc(100% - 22px), var(--container));
  }
  .button-lg {
    padding-inline: 18px;
  }
  .hero-proof {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    gap: 8px;
  }
  .hero-proof div {
    min-width: 0;
  }
  .hero-proof strong {
    font-size: 0.9rem;
  }
  .hero-proof span {
    font-size: 0.66rem;
  }
  .hero-visual {
    min-height: 420px;
  }
  .phone-wrap {
    width: 250px;
  }
  .floating-card-analysis {
    top: 60px;
  }
  .floating-card-plan {
    bottom: 40px;
    width: 165px;
  }
  .floating-card strong {
    font-size: 0.77rem;
  }
  .hero-stamp {
    font-size: 0.62rem;
  }
  .trip-overview-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .stat-card {
    padding: 15px;
  }
  .timeline-item {
    grid-template-columns: 50px 14px minmax(0, 1fr);
  }
  .timeline-content h4 {
    font-size: 0.94rem;
  }
  .source-pills a {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   Batch 1 - Design/authentication foundation
   ============================================================ */
:root {
  --navy: #10233f;
  --navy-2: #173454;
  --teal: #147d79;
  --teal-dark: #0d6662;
  --orange: #ff8a4c;
  --orange-dark: #e96f32;
  --cream: #fff8ef;
  --soft: #f5f7f9;
  --ink: #25354a;
  --muted: #6c7787;
  --line: #e5e9ee;
}

.site-header {
  box-shadow: 0 1px 0 rgba(16, 35, 63, 0.04);
}
.main-nav {
  gap: 23px;
}
.account-menu {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px 5px 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
}
.account-avatar {
  display: grid;
  width: 32px;
  height: 32px;
  overflow: hidden;
  place-items: center;
  color: #fff;
  border-radius: 50%;
  background: var(--teal);
  font-size: 0.78rem;
  font-weight: 900;
}
.account-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.account-name {
  max-width: 110px;
  overflow: hidden;
  color: var(--navy);
  font-size: 18px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-header .main-nav .account-menu {
  display: flex;
  align-items: center;
  padding: 0;
  border: navajowhite;
  background: transparent;
  font-family: var(--bodyFont) !important;
}
.flash-stack {
  right: 22px;
  width: min(390px, calc(100% - 32px));
}
.flash {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 14px 15px 14px 17px;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}
.flash button {
  width: 28px;
  height: 28px;
  padding: 0;
  color: currentColor;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  font-size: 1.15rem;
  line-height: 1;
}
.flash-leaving {
  opacity: 0;
  transform: translateY(-8px);
}

.auth-page {
  background: #f5f7f8;
}
.auth-section {
  position: relative;
  display: grid;
  min-height: calc(100vh - 74px);
  overflow: hidden;
  place-items: center;
  padding: 48px 0 64px;
  background: linear-gradient(135deg, #fff9f1 0%, #f9fbfb 55%, #eef8f6 100%);
}
.auth-section::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.42;
  pointer-events: none;
  background-image: radial-gradient(
    rgba(16, 35, 63, 0.09) 1px,
    transparent 1px
  );
  background-size: 27px 27px;
  mask-image: linear-gradient(120deg, #000, transparent 73%);
}
.auth-backdrop {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(1px);
}
.auth-backdrop-one {
  width: 350px;
  height: 350px;
  right: -115px;
  top: -95px;
  background: rgba(255, 138, 76, 0.15);
}
.auth-backdrop-two {
  width: 310px;
  height: 310px;
  left: -115px;
  bottom: -145px;
  background: rgba(20, 125, 121, 0.13);
}
.auth-shell {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(calc(100% - 40px), 1040px);
  align-items: center;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.75fr);
  gap: clamp(42px, 7vw, 88px);
}
.auth-product-panel {
  max-width: 560px;
}
.auth-product-panel h1 {
  max-width: 570px;
  margin-bottom: 20px;
  font-size: clamp(2.55rem, 5vw, 4.4rem);
}
.auth-product-panel > p {
  max-width: 520px;
  margin-bottom: 0;
  font-size: 1rem;
}
.auth-mini-plan {
  max-width: 500px;
  margin-top: 30px;
  padding: 19px 20px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 19px;
  background: rgba(255, 255, 255, 0.79);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(10px);
}
.auth-mini-plan-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}
.auth-mini-plan-head span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.auth-mini-plan-head strong {
  color: var(--themeBlack);
  font-size: 14px;
  font-weight: 400;
}
.auth-mini-route {
  display: flex;
  align-items: center;
  margin: 17px 0 13px;
}
.auth-mini-route span {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 2px var(--teal);
}
.auth-mini-route i {
  height: 2px;
  flex: 1;
  background: #bcded9;
}
.auth-mini-plan small {
  color: var(--muted);
  font-size: 0.75rem;
}
.auth-benefits {
  display: grid;
  gap: 11px;
  max-width: 480px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.auth-benefits li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(16, 35, 63, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.65);
}
.auth-benefits span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--teal);
  border-radius: 11px;
  background: #e7f5f2;
  font-size: 0.68rem;
  font-weight: 900;
}
.auth-benefits strong {
  color: var(--navy);
  font-size: 0.88rem;
}

.auth-card-compact {
  width: min(100%, 430px);
  padding: 28px 30px;
  border: 1px solid rgba(16, 35, 63, 0.09);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 24px 65px rgba(16, 35, 63, 0.14);
}
.auth-card-heading {
  margin-bottom: 20px;
  text-align: left;
}
.auth-kicker {
  display: inline-flex;
  margin-bottom: 7px;
  color: var(--teal);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.auth-card-heading h2 {
  margin-bottom: 6px;
  font-size: 1.9rem;
}
.auth-card-heading p {
  margin-bottom: 0;
  font-size: 0.88rem;
}
.signCard .auth-card-heading p {
  font-size: 13px;
}
.google-auth-area {
  margin-bottom: 16px;
  width: 100%;
}
.google-button-shell {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  overflow: visible;
  opacity: 1;
  transition: opacity 0.2s ease;
}
.google-button-shell.is-loading {
  opacity: 0.55;
  pointer-events: none;
}
.auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 0;
  color: #8a94a1;
  font-size: 0.69rem;
  font-weight: 400;
}
.auth-divider::before,
.auth-divider::after {
  height: 1px;
  flex: 1;
  content: "";
  background: var(--line);
}
.auth-divider span {
  flex: 0 0 auto;
}
.auth-form {
  gap: 10px;
}
.field-label {
  display: grid;
  min-width: 0;
  gap: 6px;
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
}
.field-label > input,
.password-field input {
  min-height: 45px;
}
.stack-form input:not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-width: 0;
  padding: 7px 13px;
  color: var(--navy);
  border: 1px solid #dce2e8;
  border-radius: 12px;
  outline: none;
  background: #fff;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}
.stack-form input:not([type="checkbox"]):not([type="radio"]):focus {
  border-color: rgba(20, 125, 121, 0.75);
  box-shadow: 0 0 0 4px rgba(20, 125, 121, 0.09);
}
.password-field {
  position: relative;
  display: block;
  min-width: 0;
}
.password-field input {
  padding-right: 68px;
}
.password-toggle {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 32px;
  padding: 4px;
  color: var(--teal);
  border: 0;
  border-radius: 8px;
  background: transparent;
  font-size: 1.15rem;
  cursor: pointer;
  transition:
    color 0.18s ease,
    background-color 0.18s ease;
}
.password-toggle:hover {
  background: #eef8f6;
  color: var(--teal-dark, #0b6461);
}
.field-message {
  min-height: 16px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
}
.field-message-success {
  color: var(--success);
}
.field-message-error {
  color: var(--danger);
}
.auth-form-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 1px 0 2px;
}
.remember-control {
  position: relative;
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 780;
  line-height: 1.25;
  cursor: pointer;
  user-select: none;
}
.remember-control input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-width: 0;
  min-height: 0;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  opacity: 0;
  clip: rect(0 0 0 0);
}
.remember-box {
  position: relative;
  display: inline-grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border: 1.5px solid #b9c5cf;
  border-radius: 5px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease;
}
.remember-control input:checked + .remember-box {
  border-color: var(--teal);
  background: var(--teal);
}
.remember-control input:checked + .remember-box::after {
  width: 8px;
  height: 4px;
  margin-top: -2px;
  content: "";
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
}
.remember-control input:focus-visible + .remember-box {
  box-shadow: 0 0 0 4px rgba(20, 125, 121, 0.13);
}
.auth-helper {
  color: #9099a5;
  font-size: 0.63rem;
  text-align: right;
}
.auth-submit {
  min-height: 48px;
  margin-top: 2px;
}
.auth-submit.is-loading {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}
.auth-terms {
  margin: 14px 0 0 !important;
  color: #8a94a1;
  font-size: 0.66rem !important;
  line-height: 1.45;
  text-align: center;
}
.form-switch {
  margin: 17px 0 0 !important;
  color: var(--muted);
  font-size: 0.78rem;
  text-align: center;
}
.form-switch a {
  color: var(--themeBlack);
  font-weight: 500;
}
.signCard .form-switch a:hover {
  color: var(--themeRed);
  transition: 0.5s;
}

.site-footer .footer-links {
  display: grid;
  gap: 7px;
  margin-top: 10px;
}
.footer-brand-block p {
  max-width: 390px;
}

@media (max-width: 900px) {
  .account-menu {
    width: 100%;
    border: 0;
    border-radius: 10px;
    background: var(--soft);
  }
  .auth-shell {
    width: min(calc(100% - 34px), 560px);
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .auth-product-panel {
    display: none;
  }
  .auth-card-compact {
    width: 100%;
    margin-inline: auto;
  }
}

@media (max-width: 700px) {
  .flash-stack {
    top: 76px;
    right: 14px;
    width: calc(100% - 28px);
  }
  .auth-section {
    min-height: calc(100vh - 68px);
    padding: 30px 0 48px;
    align-items: start;
  }
  .auth-shell {
    width: min(calc(100% - 24px), 500px);
  }
  .auth-card-compact {
    padding: 24px 20px;
    border-radius: 20px;
  }
  .auth-card-heading h2 {
    font-size: 1.7rem;
  }
  .auth-form-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
  .auth-helper {
    text-align: left;
  }
}

@media (max-width: 430px) {
  .auth-section {
    padding-top: 18px;
  }
  .auth-shell {
    width: min(calc(100% - 18px), 460px);
  }
  .auth-card-compact {
    padding: 21px 16px;
    border-radius: 18px;
  }
  .auth-card-heading {
    margin-bottom: 17px;
  }
  .auth-card-heading h2 {
    font-size: 1.55rem;
  }
  .auth-divider {
    font-size: 0.62rem;
  }
  .password-toggle {
    right: 6px;
  }
}

/* Landing-page alignment with the approved HTML direction */
.headline-accent {
  color: var(--teal);
}
.hero-plan-form {
  max-width: 650px;
  margin-top: 28px;
}
.hero-input-shell {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 7px 7px 13px;
  border: 1px solid rgba(16, 35, 63, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 18px 46px rgba(16, 35, 63, 0.1);
}
.hero-input-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: var(--teal);
  border-radius: 50%;
  background: #e8f6f3;
  font-weight: 900;
}
.hero-input-shell input {
  width: 100%;
  min-width: 0;
  padding: 11px 6px;
  color: var(--navy);
  border: 0;
  outline: 0;
  background: transparent;
}
.hero-input-shell input::placeholder {
  color: #929ba7;
}
.hero-input-shell .button {
  min-height: 46px;
  padding-inline: 19px;
  white-space: nowrap;
}
.hero-plan-form > small {
  display: block;
  margin-top: 9px;
  color: #818b98;
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.03em;
}
.hero-actions-secondary {
  align-items: center;
  margin-top: 18px;
}
.text-link-muted {
  color: #7b8795;
  font-size: 0.84rem;
}
.showcase-section .section-heading p {
  color: rgba(255, 255, 255, 0.75);
}
.workspace-preview-section {
  background: #f7f9fa;
}
.workspace-preview-grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(36px, 7vw, 90px);
}
.workspace-preview-grid .section-heading {
  margin-bottom: 0;
}
.workspace-checks {
  display: grid;
  gap: 10px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}
.workspace-checks li {
  position: relative;
  padding-left: 27px;
  color: #4f5e70;
  font-size: 0.92rem;
  font-weight: 700;
}
.workspace-checks li::before {
  position: absolute;
  left: 0;
  top: 1px;
  display: grid;
  width: 18px;
  height: 18px;
  content: "✓";
  place-items: center;
  color: #fff;
  border-radius: 50%;
  background: var(--teal);
  font-size: 0.62rem;
}
.workspace-mock {
  padding: 22px;
  border: 1px solid #e0e5ea;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(16, 35, 63, 0.11);
}
.workspace-mock-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}
.workspace-mock-head span {
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.workspace-mock-head strong {
  color: var(--navy);
  text-align: right;
}
.workspace-day-tabs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin: 17px 0 13px;
}
.workspace-day-tabs span {
  padding: 8px 5px;
  color: var(--muted);
  border-radius: 10px;
  background: #f3f6f7;
  font-size: 0.67rem;
  font-weight: 850;
  text-align: center;
}
.workspace-day-tabs span:first-child {
  color: #fff;
  background: var(--teal);
}
.workspace-timeline-row {
  display: grid;
  grid-template-columns: 48px 18px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 14px 0;
}
.workspace-timeline-row + .workspace-timeline-row {
  border-top: 1px solid #edf0f2;
}
.workspace-timeline-row > b {
  color: var(--teal);
  font-size: 0.73rem;
}
.workspace-timeline-row > i {
  width: 9px;
  height: 9px;
  margin-top: 4px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 4px rgba(255, 138, 76, 0.13);
}
.workspace-timeline-row div {
  display: grid;
  gap: 3px;
}
.workspace-timeline-row strong {
  color: var(--navy);
  font-size: 0.88rem;
}
.workspace-timeline-row small {
  color: var(--muted);
  font-size: 0.69rem;
}

@media (max-width: 900px) {
  .hero-plan-form {
    margin-inline: auto;
  }
  .hero-plan-form > small {
    text-align: center;
  }
  .workspace-preview-grid {
    grid-template-columns: 1fr;
  }
  .workspace-preview-grid .section-heading {
    max-width: 680px;
    margin-inline: auto;
    text-align: center;
  }
  .workspace-checks {
    width: min(460px, 100%);
    margin-inline: auto;
    text-align: left;
  }
  .workspace-mock {
    width: min(620px, 100%);
    margin-inline: auto;
  }
}

@media (max-width: 700px) {
  .hero-input-shell {
    grid-template-columns: 32px minmax(0, 1fr);
    padding: 8px 10px;
    border-radius: 18px;
  }
  .hero-input-shell .button {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 2px;
  }
  .hero-actions-secondary {
    justify-content: center;
  }
  .workspace-mock {
    padding: 17px;
    border-radius: 20px;
  }
}

@media (max-width: 430px) {
  .hero-input-shell {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 5px;
  }
  .hero-input-icon {
    width: 28px;
    height: 28px;
  }
  .workspace-day-tabs {
    grid-template-columns: repeat(2, 1fr);
  }
  .workspace-mock-head {
    flex-direction: column;
  }
  .workspace-mock-head strong {
    text-align: left;
  }
}

/* ============================================================
   Batch 1.1 - Landing/responsive hotfix
   Keeps the approved reference HTML as the visual master while
   making the Flask landing hero deterministic across breakpoints.
   ============================================================ */
.hero {
  min-height: 720px;
  isolation: isolate;
}
.hero-grid {
  min-height: 660px;
  grid-template-columns: minmax(0, 1.02fr) minmax(380px, 0.98fr);
  gap: clamp(38px, 6vw, 76px);
  padding-top: 64px;
  padding-bottom: 104px;
}
.hero-copy {
  min-width: 0;
  position: relative;
  z-index: 3;
}
.hero-copy .eyebrow {
  margin-bottom: 16px;
}
.hero-copy h1 {
  max-width: 720px;
  margin-bottom: 22px;
  overflow: visible;
  text-wrap: balance;
}
.hero-title-main,
.headline-accent {
  display: inline;
  white-space: normal;
}
.hero-lead {
  max-width: 690px;
  margin-bottom: 0;
}
.hero-plan-form {
  width: min(100%, 650px);
  margin-top: 28px;
}
.hero-actions-secondary {
  min-height: 28px;
}
.hero-proof {
  margin-top: 32px;
}
.hero-visual {
  width: 100%;
  min-width: 0;
  min-height: 520px;
  align-self: center;
}
.phone-wrap {
  right: 50%;
  width: min(365px, 82%);
  transform: translateX(50%);
}
.floating-card-analysis {
  left: 0;
}
.floating-card-plan {
  right: 0;
}
.hero-stamp {
  right: 2%;
}
.mountain-strip {
  pointer-events: none;
}
.nav-toggle {
  flex: 0 0 auto;
  margin-left: auto;
}

@media (max-width: 980px) {
  .hero {
    min-height: auto;
  }
  .hero-grid {
    display: grid;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 34px;
    padding-top: 48px;
    padding-bottom: 148px;
    text-align: center;
  }
  .hero-copy {
    width: min(100%, 760px);
    margin-inline: auto;
  }
  .hero-copy h1,
  .hero-lead,
  .hero-plan-form {
    margin-inline: auto;
  }
  .hero-actions-secondary,
  .hero-proof {
    justify-content: center;
  }
  .hero-visual {
    width: min(100%, 560px);
    min-height: 445px;
    margin-inline: auto;
  }
  .phone-wrap {
    top: 0;
    width: min(310px, 72%);
  }
  .floating-card-analysis {
    left: 2%;
    top: 78px;
    text-align: left;
  }
  .floating-card-plan {
    right: 2%;
    bottom: 48px;
    text-align: left;
  }
  .hero-stamp {
    right: 4%;
    top: 18px;
  }
}

@media (max-width: 700px) {
  .hero-grid {
    gap: 24px;
    padding-top: 34px;
    padding-bottom: 118px;
  }
  .hero-copy .eyebrow {
    justify-content: center;
    max-width: 100%;
    margin-bottom: 12px;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }
  .hero-copy h1 {
    margin-bottom: 16px;
    font-size: clamp(2.25rem, 10.8vw, 3.2rem);
    line-height: 1.04;
  }
  .hero-title-main,
  .headline-accent {
    display: block;
  }
  .hero-lead {
    max-width: 610px;
    font-size: 0.98rem;
    line-height: 1.65;
  }
  .hero-plan-form {
    margin-top: 22px;
  }
  .hero-input-shell {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 7px;
    padding: 8px 9px;
    border-radius: 18px;
  }
  .hero-input-shell input {
    min-height: 42px;
    padding: 8px 4px;
  }
  .hero-input-shell .button {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 46px;
    margin-top: 1px;
  }
  .hero-actions-secondary {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
  }
  .hero-proof {
    margin-top: 25px;
  }
  .hero-visual {
    min-height: 370px;
  }
  .phone-wrap {
    width: min(245px, 68%);
  }
  .floating-card {
    max-width: 48%;
    padding: 10px 11px;
  }
  .floating-card-analysis {
    left: 0;
    top: 62px;
  }
  .floating-card-plan {
    right: 0;
    bottom: 38px;
    width: 170px;
  }
  .hero-stamp {
    top: 8px;
    right: 0;
  }
  .mountain-strip {
    max-height: 112px;
  }
}

@media (max-width: 430px) {
  .hero-grid {
    padding-top: 28px;
    padding-bottom: 96px;
  }
  .hero-copy h1 {
    font-size: clamp(2.15rem, 12vw, 2.85rem);
  }
  .hero-lead {
    font-size: 0.92rem;
  }
  .hero-actions-secondary {
    align-items: center;
    flex-direction: column;
    gap: 5px;
  }
  .hero-proof {
    margin-top: 20px;
  }
  .hero-visual {
    min-height: 320px;
  }
  .phone-wrap {
    width: min(210px, 66%);
  }
  .floating-card {
    max-width: 52%;
  }
  .floating-card-analysis {
    top: 54px;
  }
  .floating-card-plan {
    bottom: 28px;
    width: 150px;
  }
  .floating-card small {
    font-size: 0.62rem;
  }
  .floating-card strong {
    font-size: 0.72rem;
  }
  .hero-stamp {
    font-size: 0.58rem;
  }
  .mountain-strip {
    max-height: 90px;
  }
}

/* ============================================================
   Batch 1.2 - Authentication + responsive hardening
   Fixes mobile navigation, auth form controls and deterministic
   layouts across phone/tablet/desktop widths.
   ============================================================ */
.auth-page main {
  min-height: 0;
}
.auth-page .site-header {
  position: fixed;
}
.auth-section {
  min-height: calc(100svh - 78px);
  padding: clamp(34px, 6vh, 64px) 0 clamp(46px, 7vh, 78px);
}
.auth-shell {
  width: min(calc(100% - 40px), 1040px);
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
  gap: clamp(38px, 6vw, 78px);
}
.auth-card-compact {
  width: 100%;
  max-width: 430px;
  min-width: 0;
  padding: 30px;
  position: relative;
}
.freeKicker {
  position: absolute;
  top: 13px;
  background: #930303;
  padding: 8px 15px 8px 30px;
  right: -5px;
  color: #fff !important;
  border-radius: 0 4px 0 0;
  font-weight: 400;
  margin: 0;
  z-index: 3;
}
#trip-form .freeKicker {
  padding-right: 28px;
}
.freeKicker::before {
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  content: "";
  width: 12px;
  height: 100%;
  position: absolute;
  top: 0;
  left: -1px;
  background: #fff;
}
.freeKicker::after {
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  content: "";
  width: 5px;
  height: 5px;
  position: absolute;
  bottom: -5px;
  right: 0;
  background: #690303;
}
.signCard .auth-card-heading h2 {
  color: var(--themeBlack);
  font-size: 22px;
  font-weight: 600;
  font-family: var(--headingFont);
}
.auth-card.auth-card-compact {
  padding: 20px;
  border: none;
}
.auth-card-heading h2 {
  overflow-wrap: anywhere;
}
.google-auth-area,
.google-button-shell {
  max-width: 100%;
}
.google-button-shell > div,
.google-button-shell iframe {
  margin: 0 auto !important;
}
.auth-form {
  width: 100%;
  min-width: 0;
}
.auth-form .field-label,
.password-field {
  width: 100%;
  min-width: 0;
}
.password-field {
  display: block;
}
.password-toggle {
  min-height: 32px;
}
.auth-form-row {
  display: flex;
  min-height: 24px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.auth-helper {
  min-width: 0;
  max-width: 190px;
  line-height: 1.35;
}

/* Collapse navigation before it can squeeze or overflow. */
@media (max-width: 980px) {
  .nav-shell {
    position: relative;
  }
  .nav-toggle {
    display: block;
  }
  .main-nav {
    position: absolute;
    z-index: 80;
    top: calc(100% - 4px);
    right: 0;
    left: auto;
    display: none;
    width: min(360px, calc(100vw - 40px));
    max-height: calc(100vh - 92px);
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow-md);
  }
  .main-nav.open {
    display: flex;
  }
  .main-nav > a,
  .main-nav .nav-link-button {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    padding: 9px 11px;
    border-radius: 10px;
  }
  .main-nav .button {
    justify-content: center;
  }
  .nav-form {
    width: 100%;
  }
  .account-menu {
    width: 100%;
  }

  .auth-shell {
    width: min(calc(100% - 36px), 560px);
    grid-template-columns: 1fr;
    gap: 0;
  }
  .auth-product-panel {
    display: none;
  }
  .auth-card-compact {
    max-width: 520px;
    margin-inline: auto;
  }
}

@media (max-width: 700px) {
  .site-header {
    position: sticky;
  }
  .nav-shell {
    min-height: 66px;
  }
  .main-nav {
    position: fixed;
    top: 72px;
    right: 14px;
    left: 14px;
    width: auto;
    max-height: calc(100dvh - 88px);
  }
  .auth-section {
    min-height: calc(100svh - 66px);
    padding: 24px 0 42px;
    place-items: start center;
  }
  .auth-shell {
    width: min(calc(100% - 28px), 500px);
  }
  .auth-card-compact {
    padding: 24px 22px;
    border-radius: 20px;
    box-shadow: 0 16px 42px rgba(16, 35, 63, 0.12);
  }
  .auth-card-heading {
    margin-bottom: 18px;
  }
  .auth-card-heading h2 {
    font-size: clamp(1.65rem, 7vw, 1.9rem);
  }
  .auth-card-heading p {
    font-size: 0.84rem;
  }
  .auth-form-row {
    align-items: center;
    flex-direction: row;
    gap: 10px;
  }
  .auth-helper {
    max-width: 170px;
    text-align: right;
  }
  .auth-submit {
    min-height: 48px;
  }
}

@media (max-width: 430px) {
  .container {
    width: min(calc(100% - 24px), var(--container));
  }
  .brand {
    min-width: 0;
  }
  .brand-mark {
    width: 38px;
    height: 38px;
  }
  .brand-copy strong {
    font-size: 1.08rem;
  }
  .nav-toggle {
    width: 42px;
    height: 42px;
  }
  .auth-section {
    padding-top: 16px;
  }
  .auth-shell {
    width: calc(100% - 20px);
  }
  .auth-card-compact {
    padding: 22px 18px;
    border-radius: 18px;
  }
  .auth-card-heading h2 {
    font-size: 1.6rem;
  }
  .google-auth-area {
    margin-bottom: 14px;
  }
  .auth-divider {
    margin-top: 14px;
  }
  .auth-form {
    gap: 10px;
  }
  .field-label {
    font-size: 0.76rem;
  }
  .field-label > input,
  .password-field input {
    min-height: 46px;
  }
  .password-field input {
    padding-right: 64px;
  }
  .password-toggle {
    right: 6px;
    min-width: 48px;
  }
  .auth-form-row {
    font-size: 0.73rem;
  }
  .remember-control {
    font-size: 0.73rem;
  }
  .auth-helper {
    max-width: 145px;
    font-size: 0.59rem;
  }
  .form-switch {
    font-size: 0.75rem;
  }
}

@media (max-width: 360px) {
  .auth-card-compact {
    padding-inline: 15px;
  }
  .auth-form-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }
  .auth-helper {
    max-width: none;
    text-align: left;
  }
}

/* ============================================================
   Batch 2 - Planner, itinerary workspace and trip photography
   Namespaced to avoid regressions in Batch 1 authentication UI.
   ============================================================ */
.rp-planner-page,
.rp-trip-page {
  background: #f6f8f8;
}

.rp-planner-page {
  min-height: 82vh;
  padding: 46px 0 96px;
  background:
    radial-gradient(
      circle at 95% 3%,
      rgba(15, 124, 120, 0.09),
      transparent 23%
    ),
    radial-gradient(
      circle at 2% 25%,
      rgba(242, 140, 82, 0.08),
      transparent 24%
    ),
    #f7f9f9;
}
.rp-planner-shell {
  max-width: 1160px;
}
.rp-planner-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 42px;
  margin-bottom: 34px;
}
.rp-planner-header h1 {
  max-width: 770px;
  margin-bottom: 14px;
  font-size: clamp(2.25rem, 4.5vw, 4rem);
}
.rp-planner-header p {
  max-width: 700px;
  margin-bottom: 0;
  font-size: 1.03rem;
}
.rp-planner-mini-proof {
  display: flex;
  gap: 8px;
  padding-bottom: 6px;
}
.afterLogin .rp-planner-mini-proof div {
  flex-grow: 1;
  flex-basis: 0;
  border: none;
}
.rp-planner-mini-proof div {
  min-width: 92px;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--shadow-sm);
}
.rp-planner-mini-proof strong,
.rp-planner-mini-proof span {
  display: block;
}
.rp-planner-mini-proof strong {
  color: var(--navy);
  font-size: 1.02rem;
}
.rp-planner-mini-proof span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.25;
}

.rp-planner-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  align-items: start;
  gap: 24px;
}
.rp-planner-form {
  display: grid;
  gap: 18px;
  min-width: 0;
}
.rp-form-card {
  padding: 28px;
  border: 1px solid #dfe6e8;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(23, 36, 58, 0.055);
}
.rp-form-card-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
  margin-bottom: 22px;
}
.rp-form-card-head h2 {
  margin: 2px 0 5px;
  font-size: 1.35rem;
}
.rp-form-card-head p {
  margin: 0;
  font-size: 12px;
}
.rp-step-number {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: var(--navy);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}
.rp-source-counter {
  align-self: center;
  padding: 7px 11px;
  border-radius: 999px;
  color: var(--muted);
  background: var(--soft);
  font-size: 0.72rem;
  font-weight: 800;
}
.rp-source-counter b {
  color: var(--teal);
  font-size: 0.95rem;
}
.rp-platform-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: -5px 0 17px 56px;
}
.rp-platform-strip span {
  padding: 5px 9px;
  border: 1px solid #e1e7e9;
  border-radius: 999px;
  color: var(--muted);
  background: #fafcfc;
  font-size: 0.67rem;
  font-weight: 800;
}

.rp-source-list {
  display: grid;
  gap: 10px;
}
.rp-source-row[hidden] {
  display: none !important;
}
.rp-source-row-main {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 8px 10px;
  /* border: 1px solid #f7edd8; */
  border-radius: 8px;
  background: #fffaf0;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}
.rp-source-row-main:focus-within {
  border-color: rgba(15, 124, 120, 0.65);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(15, 124, 120, 0.08);
}
.rp-source-index {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 10px;
  color: var(--teal);
  background: #e8f6f4;
  font-size: 0.75rem;
  font-weight: 900;
}
.rp-source-row label {
  min-width: 0;
  flex: 1;
}
.rp-source-row input[type="url"] {
  width: 100%;
  min-width: 0;
  padding: 10px 4px;
  border: 0;
  outline: 0;
  color: var(--navy);
  background: transparent;
  box-shadow: none;
  font-weight: 650;
}
.rp-source-row input[type="url"]::placeholder {
  color: #9aa5af;
  font-weight: 500;
}
.rp-platform-status {
  min-width: 82px;
  padding: 6px 9px;
  border-radius: 999px;
  text-align: center;
  color: var(--muted);
  background: #edf1f3;
  font-size: 0.67rem;
  font-weight: 850;
  white-space: nowrap;
}
.innerPage .rp-platform-status {
  min-width: 82px;
  padding: 6px 20px;
  border-radius: 8px;
  text-align: center;
  color: var(--white);
  background: var(--themeBlack);
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
  height: 38px;
  line-height: 1;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.innerPage .rp-platform-status:hover {
  background: var(--themeRed);
  transition: 0.5s;
}
.rp-platform-status[data-state="valid"] {
  color: var(--white);
  background: var(--themeRed);
}
.rp-platform-status[data-state="invalid"] {
  color: #9b3f3f;
  background: #fff0ef;
}
.rp-remove-source {
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 10px;
  color: #8d5252;
  background: #fff0ef;
  font-size: 1.15rem;
  line-height: 1;
}
.rp-source-feedback {
  display: block;
  min-height: 0px;
  margin: 4px 12px 0 56px;
  color: var(--muted);
  font-size: 0.69rem;
}
.rp-source-feedback[data-state="valid"] {
  color: var(--success);
}
.rp-source-feedback[data-state="invalid"] {
  color: var(--danger);
}
.rp-add-source {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 3px;
  padding: 8px 2px;
  border: 0;
  color: var(--teal);
  background: transparent;
  font-size: 0.82rem;
  font-weight: 850;
}
.rp-add-source[hidden] {
  display: none;
}
.rp-add-source span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #effff4;
  border: 1px solid #d0f3db;
}
.rp-inline-note {
  margin-top: 14px;
  padding: 13px 15px;
  border-left: 3px solid var(--orange);
  border-radius: 0 12px 12px 0;
  color: #596676;
  background: #fff8f1;
  font-size: 0.79rem;
}

.rp-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.rp-field {
  display: grid;
  gap: 0px;
  min-width: 0;
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
}
.rp-field > span small {
  color: var(--muted);
  font-weight: 400;
  font-size: 0.86rem;
}
.rp-field input:not([type="checkbox"]):not([type="radio"]),
.rp-field select,
.rp-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #d9e2e5;
  border-radius: 13px;
  color: var(--navy);
  background: #fbfcfc;
  outline: 0;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}
.rp-field input:not([type="checkbox"]):not([type="radio"]),
.rp-field select,
.providerform .rp-field select {
  min-height: 36px;
  padding: 6px 13px;
  font-weight: 400;
  background: transparent;
  border-radius: 12px;
  border: 1px solid #d9e2e5;
}
.rp-field textarea {
  resize: vertical;
  min-height: 85px;
  padding: 12px;
  line-height: 1.5;
  font-weight: 400;
  background: transparent;
}
.rp-field input:focus,
.rp-field select:focus,
.rp-field textarea:focus {
  border-color: #efe7d8;
  background: #fff;
  box-shadow: 0 0 0 3px rgb(238 230 215 / 25%);
}
.rp-field-full {
  margin-top: 0px;
}
.rp-input-suffix,
.rp-input-prefix {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid #d9e2e5;
  border-radius: 13px;
  background: #fbfcfc;
  overflow: hidden;
}
.rp-input-prefix {
  grid-template-columns: auto minmax(0, 1fr);
}
.rp-input-suffix input,
.rp-input-prefix input {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.rp-input-suffix > span,
.rp-input-prefix > span {
  padding: 0 13px;
  color: var(--muted);
  font-size: 0.83rem;
  font-weight: 400;
}
.rp-choice-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.rp-choice-group + .rp-choice-group {
  margin-top: 22px;
}
.rp-choice-group legend {
  margin-bottom: 9px;
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 850;
}
.rp-segmented {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}
.rp-segmented label,
.rp-check-chip {
  position: relative;
  cursor: pointer;
}
.rp-segmented input,
.rp-check-chip input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.rp-segmented label > span {
  display: grid;
  /* min-height: 78px; */
  align-content: flex-start;
  padding: 10px;
  border: 1px solid #dfe5e7;
  border-radius: 15px;
  background: #fbfcfc;
  transition:
    border 0.2s ease,
    background 0.2s ease,
    box-shadow 0.2s ease;
  height: 100%;
}
.rp-segmented b {
  color: var(--themeBlack);
  font-size: 14px;
  font-weight: 500;
}
.rp-segmented small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.68rem;
}
.rp-segmented input:checked + span {
  border-color: rgba(15, 124, 120, 0.5);
  background: #eaf7f5;
  box-shadow: 0 0 0 3px rgba(15, 124, 120, 0.07);
}
.rp-segmented input:focus-visible + span,
.rp-check-chip input:focus-visible + span {
  outline: 3px solid rgba(15, 124, 120, 0.2);
  outline-offset: 2px;
}
.rp-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.rp-check-chip > span {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 4px 9px;
  border: 1px solid #dfe5e7;
  border-radius: 999px;
  color: #536173;
  background: #fbfcfc;
  font-size: 0.76rem;
  font-weight: 500;
  transition:
    border 0.2s ease,
    color 0.2s ease,
    background 0.2s ease;
}
.rp-check-chip input:checked + span {
  color: #0d6863;
  border-color: rgba(15, 124, 120, 0.45);
  background: #e7f6f4;
}

.rp-planner-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 21px 23px;
  border-radius: 21px;
  background: var(--navy);
  box-shadow: 0 18px 42px rgba(23, 36, 58, 0.16);
}
.rp-planner-submit > div {
  min-width: 0;
}
.rp-planner-submit small,
.rp-planner-submit strong {
  display: block;
}
.rp-planner-submit small {
  color: #8fa0b3;
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.rp-planner-submit strong {
  margin-top: 4px;
  color: var(--themeBlack);
  font-size: 0.84rem;
  font-weight: 400;
}
.rp-planner-submit .button {
  flex: 0 0 auto;
}
.rp-planner-submit .button:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

.rp-planner-aside {
  position: sticky;
  top: 85px;
  display: grid;
  gap: 15px;
  z-index: 5;
}
@media (max-width: 767px) {
  .rp-planner-aside {
    position: static;
  }
}
.rp-aside-card {
  padding: 22px;
  border: 1px solid #dfe6e8;
  border-radius: 21px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(23, 36, 58, 0.05);
}
.rp-aside-card h3 {
  margin-bottom: 17px;
  font-size: 1.25rem;
}
.rp-aside-card p {
  margin-bottom: 0;
  font-size: 0.8rem;
}
.rp-aside-dark {
  color: #fff;
  border-color: transparent;
  background: var(--navy);
}
.rp-aside-dark h3 {
  color: #fff;
}
.rp-aside-dark .eyebrow {
  color: #8fe0d8;
}
.rp-aside-soft {
  background: #fff7ef;
  border-color: #f1ddc7;
}
.rp-aside-soft strong {
  display: block;
  margin-bottom: 5px;
  color: var(--navy);
}
.rp-evidence-key {
  display: grid;
  gap: 14px;
}
.rp-evidence-key > div,
.rp-trip-legend > div {
  display: grid;
  grid-template-columns: 11px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
}
.rp-evidence-key span,
.rp-trip-legend span {
  color: #aebaca;
  font-size: 0.73rem;
  line-height: 1.45;
}
.tripthinksCard div span {
  color: #525252;
}
.rp-evidence-key b,
.rp-trip-legend b {
  display: block;
  color: var(--themeBlack);
  font-size: 14px;
  font-weight: 600;
}
.rp-key-dot {
  width: 9px;
  height: 9px;
  margin-top: 4px;
  border-radius: 50%;
}
.rp-key-reel {
  background: #43c39b;
  box-shadow: 0 0 0 4px rgba(67, 195, 155, 0.12);
}
.rp-key-ai {
  background: var(--orange);
  box-shadow: 0 0 0 4px rgba(242, 140, 82, 0.13);
}
.rp-feature-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rp-feature-list li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  color: #556273;
  font-size: 0.76rem;
  line-height: 1.4;
}
.rp-feature-list li span {
  color: var(--teal);
  font-weight: 900;
}
.rp-aside-card.whatGet {
  border: none;
}
.whatGet .rp-feature-list li {
  grid-template-columns: 10px minmax(0, 1fr);
  font-size: 14px;
}
.whatGet .rp-feature-list li span {
  width: 6px;
  aspect-ratio: 1;
  background: #d1b884;
  display: inline-block;
  border-radius: 50%;
  box-shadow: 0px 0px 0px 2px rgb(249 241 226);
  transform: translateY(6px);
}

.rp-processing-overlay {
  position: fixed;
  z-index: 250;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(11, 20, 34, 0.86);
  backdrop-filter: blur(9px);
}
.rp-processing-overlay[hidden] {
  display: none;
}
.rp-processing-card {
  width: min(690px, 100%);
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 34px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 28px;
  text-align: center;
  background: #fff;
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.38);
}
.rp-processing-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 19px;
  color: var(--navy);
}
.rp-processing-brand .brand-mark {
  width: 37px;
  height: 37px;
  padding: 7px;
}
.rp-processing-card h2 {
  margin-bottom: 8px;
  font-size: clamp(1.6rem, 4vw, 2.15rem);
}
.rp-processing-card > p {
  max-width: 520px;
  margin: 0 auto 20px;
  font-size: 0.88rem;
}
.rp-processing-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 20px auto 22px;
}
.rp-processing-reel,
.rp-processing-route {
  display: grid;
  width: 68px;
  height: 55px;
  place-items: center;
  border-radius: 16px;
  color: #fff;
  background: var(--navy);
  font-size: 0.67rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}
.rp-processing-route {
  background: var(--teal);
}
.rp-processing-flow {
  display: flex;
  gap: 7px;
}
.rp-processing-flow span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--orange);
  animation: rp-flow 1.25s infinite ease-in-out;
}
.rp-processing-flow span:nth-child(2) {
  animation-delay: 0.15s;
}
.rp-processing-flow span:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes rp-flow {
  0%,
  70%,
  100% {
    opacity: 0.28;
    transform: translateY(0);
  }
  35% {
    opacity: 1;
    transform: translateY(-5px);
  }
}
.rp-processing-stages {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rp-processing-stages li {
  display: grid;
  justify-items: center;
  gap: 7px;
  color: #9aa4ae;
  font-size: 0.67rem;
  font-weight: 700;
}
.rp-processing-stages i {
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border-radius: 50%;
  background: #edf1f3;
  font-style: normal;
  font-weight: 900;
}
.rp-processing-stages li.active {
  color: var(--navy);
}
.rp-processing-stages li.active i {
  color: #fff;
  background: var(--orange);
  box-shadow: 0 0 0 6px rgba(242, 140, 82, 0.12);
}
.rp-processing-stages li.done {
  color: var(--teal);
}
.rp-processing-stages li.done i {
  color: #fff;
  background: var(--teal);
}
.rp-processing-line {
  height: 5px;
  margin: 18px 0 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf1f3;
}
.rp-processing-line span {
  display: block;
  width: 12%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--orange), var(--teal));
  transition: width 0.5s ease;
}
.rp-processing-card > small {
  color: var(--muted);
  font-size: 0.72rem;
}

/* Trip workspace */
.rp-trip-page {
  min-height: 80vh;
  padding-bottom: 90px;
}
.rp-trip-toolbar {
  display: flex;
  min-height: 78px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.rp-trip-toolbar .back-link {
  margin: 0;
}
.rp-trip-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}
.rp-trip-toolbar-actions form {
  margin: 0;
}
.rp-trip-hero {
  position: relative;
  min-height: 510px;
  overflow: hidden;
  color: #fff;
  background: var(--navy);
}
.rp-trip-hero-fallback {
  background:
    radial-gradient(
      circle at 82% 10%,
      rgba(242, 140, 82, 0.32),
      transparent 29%
    ),
    radial-gradient(
      circle at 14% 88%,
      rgba(15, 124, 120, 0.45),
      transparent 35%
    ),
    var(--navy);
}
.rp-trip-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rp-trip-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(10, 18, 31, 0.93) 0%,
    rgba(10, 18, 31, 0.79) 48%,
    rgba(10, 18, 31, 0.38) 100%
  );
}
.rp-trip-hero-content {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 510px;
  grid-template-columns: minmax(0, 1fr) 290px;
  align-items: center;
  gap: 56px;
  padding-block: 55px;
}
.rp-trip-hero-copy {
  min-width: 0;
}
.rp-trip-kicker-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}
.rp-confidence-pill {
  padding: 7px 11px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  color: #d5dce4;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.69rem;
  font-weight: 400;
}
.rp-trip-hero h1 {
  max-width: 790px;
  margin: 17px 0 14px;
  color: #fff;
  font-size: clamp(2.45rem, 5vw, 4.4rem);
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.2);
}
.rp-trip-hero-copy > p {
  max-width: 760px;
  margin-bottom: 17px;
  color: #d2dae4;
  font-size: 0.96rem;
}
.rp-source-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.rp-source-pills a {
  padding: 5px 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.68rem;
  font-weight: 400;
}
.rp-photo-credit {
  display: block;
  margin-top: 14px;
  color: #aeb9c6;
  font-size: 0.65rem;
}
.rp-photo-credit a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rp-trip-glance-card {
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 23px;
  background: rgba(17, 31, 50, 0.72);
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(13px);
}
.rp-trip-glance-card .eyebrow {
  color: #8be0d6;
}
.rp-glance-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.rp-glance-grid div {
  padding: 10px 11px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.07);
}
.rp-glance-grid small,
.rp-glance-grid strong {
  display: block;
}
.rp-glance-grid small {
  color: #a9b5c2;
  font-size: 10px;
}
.rp-glance-grid strong {
  margin-top: 2px;
  color: #fff;
  font-size: 0.83rem;
}
.rp-glance-budget {
  margin-top: 12px;
  padding: 14px;
  border-radius: 15px;
  background: rgba(242, 140, 82, 0.14);
}
.rp-glance-budget small,
.rp-glance-budget strong,
.rp-glance-budget span {
  display: block;
}
.rp-glance-budget small {
  color: #c8d0db;
  font-size: 0.65rem;
}
.rp-glance-budget strong {
  margin: 4px 0 3px;
  color: #fff;
  font-size: 1.05rem;
}
.rp-glance-budget span {
  color: #ffbc92;
  font-size: 0.67rem;
  font-weight: 500;
}
.rp-trip-legend {
  display: grid;
  position: relative;
  z-index: 3;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: -20px;
  padding: 17px 20px;
  border: 1px solid #dfe6e8;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-md);
}
.rp-trip-legend span {
  color: var(--muted);
}
.rp-trip-legend b {
  color: var(--navy);
}

.rp-trip-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
  gap: 24px;
  padding-top: 50px;
}
.rp-itinerary-column {
  min-width: 0;
}
.rp-content-heading {
  max-width: 720px;
  margin-bottom: 20px;
}
.rp-content-heading h2 {
  margin-bottom: 10px;
  font-size: clamp(2rem, 3vw, 2.8rem);
}
.rp-content-heading p {
  margin-bottom: 0;
  font-size: 0.9rem;
}
.rp-day-jump {
  display: flex;
  gap: 7px;
  margin-bottom: 19px;
  padding-bottom: 3px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.rp-day-jump a {
  flex: 0 0 auto;
  padding: 7px 11px;
  border: 1px solid #dde4e7;
  border-radius: 999px;
  color: var(--themeBlack);
  background: #fff;
  font-size: 0.72rem;
  font-weight: 400;
}
.rp-day-card {
  margin-bottom: 20px;
  overflow: hidden;
  /* border: 1px solid #dfe6e8; */
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(23, 36, 58, 0.055);
  scroll-margin-top: 95px;
}
.rp-day-photo {
  position: relative;
  height: 235px;
  margin: 0;
  overflow: hidden;
  background: #e8efef;
}
.rp-day-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rp-day-photo::after {
  position: absolute;
  inset: auto 0 0;
  height: 50%;
  content: "";
  pointer-events: none;
  background: linear-gradient(to top, rgba(10, 18, 31, 0.58), transparent);
}
.rp-day-photo figcaption {
  position: absolute;
  z-index: 2;
  right: 14px;
  bottom: 10px;
  color: #e7edf2;
  font-size: 0.6rem;
}
.rp-day-photo figcaption a {
  color: #fff;
  text-decoration: underline;
}
.rp-day-head {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  padding: 20px 22px;
  border-bottom: 1px solid #edf0f2;
}
.rp-day-badge {
  display: grid;
  width: 50px;
  height: 50px;
  align-content: center;
  justify-items: center;
  border-radius: 17px;
  color: #fff;
  background: var(--navy);
}
.rp-day-badge span {
  font-size: 0.56rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rp-day-badge strong {
  font-size: 1.25rem;
  line-height: 1;
}
.rp-day-title {
  min-width: 0;
}
.rp-day-title h3 {
  margin-bottom: 4px;
  font-size: 1.2rem;
}
.rp-day-title p {
  margin: 0;
  font-size: 0.75rem;
}
.rp-day-cost {
  text-align: right;
}
.rp-day-cost small,
.rp-day-cost strong {
  display: block;
}
.rp-day-cost small {
  color: var(--muted);
  font-size: 0.63rem;
}
.rp-day-cost strong {
  margin-top: 2px;
  color: var(--teal);
  font-size: 0.82rem;
  font-weight: 600;
}
.rp-timeline {
  padding: 2px 22px 8px;
}
.rp-timeline-item {
  display: grid;
  grid-template-columns: 30px 22px minmax(0, 1fr);
  gap: 8px;
  padding: 20px 0;
}
.rp-timeline-item + .rp-timeline-item {
  border-top: 1px solid #edf0f2;
}
.rp-timeline-time {
  padding-top: 4px;
  text-align: right;
}
.rp-timeline-time strong,
.rp-timeline-time span {
  display: block;
  font-size: 0.71rem;
}
.rp-timeline-time strong {
  color: var(--teal);
}
.rp-timeline-time span {
  color: var(--muted);
}
.rp-timeline-rail {
  position: relative;
  display: flex;
  justify-content: center;
}
.rp-timeline-rail::after {
  position: absolute;
  top: 18px;
  bottom: -39px;
  width: 2px;
  content: "";
  background: #dce8e6;
}
.rp-timeline-item:last-child .rp-timeline-rail::after {
  display: none;
}
.rp-timeline-rail span {
  position: relative;
  z-index: 1;
  width: 11px;
  height: 11px;
  margin-top: 8px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 2px var(--teal);
}
.rp-timeline-body {
  min-width: 0;
}
.rp-timeline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}
.rp-type-pill,
.rp-origin-pill,
.rp-verify-pill {
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 0.59rem;
  font-weight: 400;
  line-height: 1.2;
}
.rp-type-pill {
  color: #536275;
  background: #edf1f3;
}
.rp-origin-reel {
  color: #0c694f;
  background: #e2f5ed;
}
.rp-origin-ai {
  color: #9a542e;
  background: #fff0e5;
}
.rp-verify-pill {
  color: #795f20;
  background: #fff5d9;
}
.rp-timeline-body h4 {
  margin-bottom: 5px;
  font-size: 1rem;
}
.rp-place-name {
  display: inline-block;
  margin-bottom: 6px;
  color: var(--teal);
  font-size: 0.72rem;
}
.rp-timeline-body > p {
  margin-bottom: 8px;
  font-size: 0.81rem;
  line-height: 1.55;
}
.rp-item-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.rp-practical-note {
  flex: 1;
  padding: 7px 9px;
  border-radius: 9px;
  color: #697586;
  background: #f6f8f8;
  font-size: 0.66rem;
  line-height: 1.4;
}
.rp-item-cost {
  flex: 0 0 auto;
  color: var(--navy);
  font-size: 0.68rem;
  font-weight: 500;
}
.rp-day-notes {
  padding: 14px 22px;
  border-top: 1px solid #edf0f2;
  background: #fbfcfc;
}
.rp-day-notes strong {
  color: var(--navy);
  font-size: 0.71rem;
}
.rp-day-notes p {
  margin: 3px 0 0;
  font-size: 0.7rem;
}

.rp-trip-sidebar {
  position: sticky;
  top: 90px;
  display: grid;
  gap: 15px;
}
.rp-sidebar-card {
  padding: 21px;
  border: 1px solid #dfe6e8;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 11px 31px rgba(23, 36, 58, 0.045);
}
.rp-sidebar-card h3 {
  margin-bottom: 10px;
  font-size: 1.18rem;
}
.rp-sidebar-card p {
  margin-bottom: 10px;
  font-size: 0.75rem;
}
.rp-sidebar-card ul {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding-left: 0px;
  color: #5e6a78;
  font-size: 0.72rem;
}
.rp-budget-card {
  border-color: #f1d6c2;
  background: linear-gradient(145deg, #fff9f3, #fff);
}
.rp-budget-total {
  margin: 12px 0;
  padding: 13px;
  border-radius: 14px;
  background: #ede3d0;
}
.rp-budget-total small,
.rp-budget-total strong {
  display: block;
}
.rp-budget-total small {
  color: #9eabb9;
  font-size: 0.62rem;
}
.rp-budget-total strong {
  margin-top: 4px;
  color: var(--themeBlack);
  font-size: 1rem;
  font-weight: 400;
}
.rp-check-list {
  padding-left: 0 !important;
  list-style: none;
}
.rp-check-list li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 7px;
  align-items: start;
}
.rp-check-list li span {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  color: var(--teal);
  background: #e7f5f2;
  font-weight: 900;
}
.rp-mention-card {
  display: grid;
  gap: 2px;
  padding: 10px 0;
  border-top: 1px solid #edf0f2;
}
.rp-mention-card:first-of-type {
  border-top: 0;
}
.rp-mention-card strong {
  color: var(--navy);
  font-size: 0.79rem;
}
.rp-mention-card span,
.rp-mention-card small {
  color: var(--muted);
  font-size: 0.67rem;
}
.rp-photo-provider {
  background: #f4fbf9;
}
.rp-photo-provider small,
.rp-photo-provider strong,
.rp-photo-provider a {
  display: block;
}
.rp-photo-provider small {
  color: var(--muted);
  font-size: 0.62rem;
}
.rp-photo-provider strong {
  margin: 3px 0 8px;
  color: var(--navy);
  font-size: 0.8rem;
}
.rp-photo-provider a {
  color: var(--teal);
  font-size: 0.7rem;
  font-weight: 850;
}

@media (max-width: 1040px) {
  .rp-planner-grid {
    grid-template-columns: minmax(0, 1fr) 270px;
  }
  .rp-trip-layout {
    grid-template-columns: minmax(0, 1fr) 285px;
  }
  .rp-trip-hero-content {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 32px;
  }
}

@media (max-width: 900px) {
  .rp-planner-page {
    padding-top: 34px;
  }
  .rp-planner-header {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .rp-planner-mini-proof {
    padding-bottom: 0;
  }
  .rp-planner-grid {
    grid-template-columns: 1fr;
  }
  .rp-planner-aside {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-planner-aside .rp-aside-dark {
    grid-row: span 2;
  }
  .rp-trip-hero-content {
    grid-template-columns: 1fr;
    gap: 23px;
  }
  .rp-trip-glance-card {
    max-width: 520px;
  }
  .rp-trip-layout {
    grid-template-columns: 1fr;
  }
  .rp-trip-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .rp-planner-page {
    padding-bottom: 70px;
  }
  .rp-form-card {
    padding: 21px 18px;
    border-radius: 20px;
  }
  .rp-form-card-head {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 11px;
  }
  .rp-step-number {
    width: 38px;
    height: 38px;
  }
  .rp-form-card-head h2 {
    font-size: 1.18rem;
  }
  .rp-platform-strip {
    margin-left: 49px;
  }
  .rp-field-grid {
    grid-template-columns: 1fr;
  }
  .rp-segmented {
    grid-template-columns: 1fr;
  }
  .rp-segmented label > span {
    min-height: 62px;
  }
  .rp-planner-submit {
    align-items: stretch;
    flex-direction: column;
  }
  .rp-planner-submit .button {
    width: 100%;
  }
  .rp-planner-aside {
    grid-template-columns: 1fr;
  }
  .rp-processing-card {
    padding: 27px 18px;
  }
  .rp-processing-stages {
    grid-template-columns: repeat(6, 82px);
    justify-content: start;
    overflow-x: auto;
    padding: 6px 2px;
  }

  .rp-trip-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding-block: 17px;
  }
  .rp-trip-toolbar-actions {
    width: 100%;
    flex-wrap: wrap;
  }
  .rp-trip-toolbar-actions .button {
    flex: 1 1 auto;
  }
  .rp-trip-hero {
    min-height: auto;
  }
  .rp-trip-hero-content {
    min-height: 560px;
    padding-block: 42px;
  }
  .rp-trip-hero-shade {
    background: linear-gradient(
      180deg,
      rgba(10, 18, 31, 0.7),
      rgba(10, 18, 31, 0.94)
    );
  }
  .rp-trip-legend {
    grid-template-columns: 1fr;
    margin-top: 14px;
  }
  .rp-trip-layout {
    padding-top: 35px;
  }
  .rp-trip-sidebar {
    grid-template-columns: 1fr;
  }
  .rp-day-photo {
    height: 210px;
  }
  .rp-day-head {
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: start;
    padding: 17px 0 !important;
  }
  .rp-timeline {
    padding: 2px 0px 8px !important;
  }
  .rp-day-cost {
    grid-column: 2;
    text-align: left;
  }
  .rp-day-badge {
    width: 32px;
    height: 32px;
  }
  .rp-day-badge strong {
    font-size: 13px;
  }
  .rp-timeline {
    padding-inline: 15px;
  }
  .rp-timeline-item {
    grid-template-columns: 54px 18px minmax(0, 1fr);
    gap: 6px;
  }
  .rp-item-bottom {
    align-items: stretch;
    flex-direction: column;
  }
  .rp-item-cost {
    align-self: flex-start;
  }
  .rp-contact-form input:not([type="checkbox"]):not([type="radio"]),
  .rp-contact-form select,
  .rp-contact-form textarea {
    font-size: 14px;
  }
}

@media (max-width: 470px) {
  .rp-planner-header h1 {
    font-size: 2.3rem;
  }
  .rp-planner-mini-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }
  .rp-planner-mini-proof div {
    min-width: 0;
    padding: 9px;
  }
  .rp-form-card-head {
    grid-template-columns: 38px minmax(0, 1fr);
  }
  .rp-source-counter {
    grid-column: 2;
    justify-self: start;
  }
  .rp-platform-strip {
    margin-left: 0;
  }
  .rp-source-row-main {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 6px;
  }
  .rp-platform-status {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    min-width: 0;
  }
  .rp-remove-source {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
  .rp-source-feedback {
    margin-left: 42px;
  }
  .rp-processing-reel,
  .rp-processing-route {
    width: 59px;
    height: 49px;
  }

  .rp-trip-hero-content {
    min-height: 600px;
  }
  .rp-trip-hero h1 {
    font-size: 2.3rem;
  }
  .rp-glance-grid {
    gap: 6px;
  }
  .rp-trip-glance-card {
    padding: 17px;
  }
  .rp-trip-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .rp-trip-toolbar-actions form,
  .rp-trip-toolbar-actions form .button {
    width: 100%;
  }
  .rp-day-photo {
    height: 185px;
  }
  .rp-day-photo figcaption {
    right: 8px;
    bottom: 7px;
    left: 8px;
    text-align: right;
  }
  .rp-timeline-item {
    grid-template-columns: 48px 14px minmax(0, 1fr);
  }
  .rp-timeline-time {
    text-align: left;
  }
  .rp-timeline-body h4 {
    font-size: 0.94rem;
  }
}

@media (max-width: 360px) {
  .rp-planner-page .container,
  .rp-trip-page .container {
    width: min(calc(100% - 24px), var(--container));
  }
  .rp-form-card {
    padding-inline: 14px;
  }
  .rp-planner-mini-proof span {
    font-size: 0.62rem;
  }
  .rp-chip-grid {
    gap: 6px;
  }
  .rp-check-chip > span {
    padding-inline: 10px;
  }
  .rp-day-head {
    padding-inline: 13px;
  }
  .rp-timeline {
    padding-inline: 11px;
  }
  .rp-timeline-item {
    grid-template-columns: 45px 12px minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rp-processing-flow span {
    animation: none;
    opacity: 0.7;
  }
}

/* =========================================================
   ReelsPlan Batch 3 - My Trips, travel readiness, maps, providers
   ========================================================= */
.rp-trips-workspace {
  padding-top: 34px;
}
.rp-trips-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}
.rp-trips-toolbar h2 {
  margin: 0;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}
.rp-trips-toolbar p {
  margin: 4px 0 0;
  color: var(--muted);
}
.rp-view-toggle {
  display: inline-flex;
  padding: 4px;
  border: 1px solid rgba(23, 36, 58, 0.12);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 25px rgba(23, 36, 58, 0.06);
}
.rp-view-toggle a {
  width: 40px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: var(--muted);
  font-size: 1.15rem;
  text-decoration: none;
}
.rp-view-toggle a.active {
  color: var(--navy);
  background: var(--cream);
  box-shadow: inset 0 0 0 1px rgba(23, 36, 58, 0.08);
}
.rp-trip-filters {
  display: grid;
  grid-template-columns:
    minmax(230px, 1.7fr) repeat(4, minmax(125px, 0.8fr))
    auto auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  margin-bottom: 24px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  background: rgba(255, 255, 255, 0.9);
  border-radius: 20px;
  box-shadow: 0 14px 35px rgba(23, 36, 58, 0.055);
}
.rp-trip-filters label {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.rp-trip-filters label > span {
  font-size: 0.77rem;
  font-weight: 800;
  color: var(--muted);
  letter-spacing: 0.02em;
}
.rp-trip-filters input,
.rp-trip-filters select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 1px solid rgba(23, 36, 58, 0.15);
  border-radius: 12px;
  background: #fff;
  padding: 0 12px;
  color: var(--navy);
}
.rp-trip-collection {
  display: grid;
  gap: 18px;
}
.rp-trip-collection-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rp-saved-trip-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  /* border: 1px solid rgba(23, 36, 58, 0.1); */
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(23, 36, 58, 0.07);
}
.rp-saved-trip-cover {
  position: relative;
  display: block;
  height: 180px;
  overflow: hidden;
  background: linear-gradient(135deg, #e6f2f1, #fff2e9);
  text-decoration: none;
}
.rp-saved-trip-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.rp-saved-trip-card:hover .rp-saved-trip-cover img {
  transform: scale(1.025);
}
.rp-saved-trip-cover .status-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
}
.rp-saved-trip-cover-fallback {
  height: 100%;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 7px;
  padding: 20px;
  text-align: center;
  color: var(--navy);
}
.rp-saved-trip-cover-fallback span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.75);
  font-size: 1.3rem;
}
.rp-saved-trip-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 13px;
  padding: 18px;
}
.rp-saved-trip-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.rp-saved-trip-heading small {
  color: var(--teal);
  font-weight: 800;
}
.rp-saved-trip-heading h3 {
  margin: 3px 0 0;
  font-size: 1.15rem;
  line-height: 1.28;
}
.rp-saved-trip-heading time {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.75rem;
}
.rp-saved-trip-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rp-saved-trip-facts span {
  padding: 7px 9px;
  border-radius: 999px;
  background: var(--cream);
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1;
}
.rp-saved-trip-facts b {
  color: var(--navy);
}
.rp-trip-status-copy {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.55;
}
.rp-saved-trip-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
}
.rp-trip-collection-list {
  grid-template-columns: 1fr;
}
.rp-trip-collection-list .rp-saved-trip-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
}
.rp-trip-collection-list .rp-saved-trip-card {
  grid-template-columns: 300px minmax(0, 1fr);
}
.rp-trip-collection-list .rp-saved-trip-cover {
  height: 100%;
  min-height: 170px;
}
.rp-trip-collection-list .rp-saved-trip-body {
  padding: 20px 22px;
}

.rp-readiness-section,
.rp-map-section,
.rp-provider-section {
  margin-top: 38px;
}
.rp-readiness-heading {
  max-width: 820px;
}
.rp-readiness-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
.rp-readiness-card {
  position: relative;
  min-width: 0;
  padding: 22px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(23, 36, 58, 0.06);
}
.rp-readiness-card .rp-card-icon {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--cream);
  color: var(--teal);
  font-weight: 900;
}
.rp-readiness-card > div:first-of-type {
  padding-right: 48px;
}
.rp-readiness-card small {
  color: var(--teal);
  font-weight: 800;
}
.rp-readiness-card h3 {
  margin: 5px 0 12px;
  font-size: 1.08rem;
  line-height: 1.42;
}
.rp-readiness-card ul {
  margin: 12px 0 0;
  padding-left: 18px;
  color: var(--muted);
}
.rp-readiness-card li {
  margin: 7px 0;
  line-height: 1.45;
}
.rp-season-list {
  display: grid;
  gap: 10px;
  margin-top: 15px;
}
.rp-season-list > div {
  padding: 12px;
  border-radius: 14px;
  background: var(--cream);
}
.rp-season-list strong,
.rp-season-list span {
  display: block;
}
.rp-season-list span {
  margin-top: 2px;
  color: var(--teal);
  font-size: 0.8rem;
  font-weight: 800;
}
.rp-season-list p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}
.rp-intel-note {
  margin: 13px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(23, 36, 58, 0.08);
  color: var(--muted);
  font-size: 0.85rem;
}
.rp-entry-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0;
}
.rp-entry-badges span {
  padding: 6px 9px;
  border-radius: 999px;
  background: #eef8f6;
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 800;
}
.rp-official-link {
  display: inline-flex;
  margin-top: 12px;
  color: var(--teal);
  font-size: 0.83rem;
  font-weight: 850;
  text-decoration: none;
}
.rp-gear-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.rp-gear-item {
  padding: 12px;
  border-radius: 14px;
  background: #f8fafb;
  border: 1px solid rgba(23, 36, 58, 0.07);
}
.rp-gear-item strong {
  display: block;
  margin-top: 5px;
}
.rp-gear-item p {
  margin: 5px 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}
.rp-gear-item small {
  color: var(--muted);
  font-weight: 600;
}
.rp-gear-priority {
  display: inline-flex;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.02em;
}
.rp-gear-must_take {
  background: #fff0ec;
  color: #b64b2d;
}
.rp-gear-recommended {
  background: #eef8f6;
  color: var(--teal);
}
.rp-gear-optional {
  background: #f2f3f6;
  color: var(--muted);
}
.rp-readiness-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  background: var(--navy);
  color: #fff;
}
.rp-readiness-notes strong {
  display: block;
  margin-bottom: 7px;
}
.rp-readiness-notes ul {
  margin: 0;
  padding-left: 18px;
  color: rgba(255, 255, 255, 0.8);
}
.rp-readiness-notes li {
  margin: 5px 0;
}
.rp-intel-disclaimer {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.45;
}

.rp-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 18px;
  margin-top: 18px;
  align-items: stretch;
}
.rp-map-frame {
  min-height: 430px;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  background: #eef1f2;
  box-shadow: 0 16px 40px rgba(23, 36, 58, 0.06);
}
.rp-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  border: 0;
}
.rp-google-places {
  display: grid;
  align-content: start;
  gap: 9px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(23, 36, 58, 0.06);
}
.rp-google-attribution {
  margin: 1px 3px 4px;
  font-family: Roboto, Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #5e5e5e;
  white-space: nowrap;
}
.rp-google-place-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 10px;
  padding: 12px;
  border: 1px solid rgba(23, 36, 58, 0.08);
  border-radius: 14px;
  color: var(--navy);
  text-decoration: none;
}
.rp-google-place-card:hover {
  border-color: rgba(17, 127, 121, 0.35);
  background: #fbfdfd;
}
.rp-google-place-card strong,
.rp-google-place-card span {
  display: block;
}
.rp-google-place-card span {
  color: var(--muted);
  font-size: 0.75rem;
}
.rp-google-place-card p {
  grid-column: 1/-1;
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}
.rp-rating {
  text-align: right;
}
.rp-rating b {
  display: block;
  color: #a86900;
}
.rp-rating small {
  color: var(--muted);
  font-size: 0.68rem;
}
.rp-map-open {
  align-self: center;
  color: var(--teal) !important;
  font-weight: 800;
}
.rp-google-policy-note {
  margin: 4px 2px 0;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.4;
}

.rp-provider-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.rp-provider-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 15px 38px rgba(23, 36, 58, 0.055);
}
.rp-provider-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.rp-provider-head span {
  color: var(--teal);
  font-size: 0.75rem;
  font-weight: 850;
}
.rp-provider-head b {
  padding: 5px 7px;
  border-radius: 999px;
  background: #fff0e8;
  color: #b95f2f;
  font-size: 0.66rem;
}
.rp-provider-card h3 {
  margin: 9px 0 7px;
}
.rp-provider-card > p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.5;
}
.rp-provider-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.rp-provider-meta span {
  padding: 6px 8px;
  border-radius: 999px;
  background: var(--cream);
  color: var(--muted);
  font-size: 0.72rem;
}
.rp-provider-rating {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid rgba(23, 36, 58, 0.08);
}
.rp-provider-rating span {
  font-family: Roboto, Arial, sans-serif;
  color: #5e5e5e;
  font-size: 12px;
}
.rp-provider-rating b {
  margin-left: auto;
  color: #a86900;
}
.rp-provider-rating small {
  color: var(--muted);
  font-size: 0.68rem;
}
.rp-provider-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}
.rp-provider-actions a {
  padding: 7px 9px;
  border-radius: 10px;
  background: #eef8f6;
  color: var(--teal);
  font-size: 0.75rem;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 1180px) {
  .rp-trip-filters {
    grid-template-columns:
      minmax(220px, 1.4fr) repeat(2, minmax(130px, 1fr))
      repeat(2, minmax(120px, 0.8fr));
  }
  .rp-trip-filters .button {
    min-height: 44px;
  }
  .rp-trip-collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-provider-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .rp-trip-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-filter-search {
    grid-column: 1/-1;
  }
  .rp-map-layout {
    grid-template-columns: 1fr;
  }
  .rp-map-frame,
  .rp-map-frame iframe {
    min-height: 380px;
  }
  .rp-trip-collection-list .rp-saved-trip-card {
    grid-template-columns: 180px minmax(0, 1fr);
  }
}
@media (max-width: 700px) {
  .rp-trips-toolbar {
    align-items: center;
  }
  .rp-trip-filters {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .rp-filter-search {
    grid-column: auto;
  }
  .rp-trip-collection-grid {
    grid-template-columns: 1fr;
  }
  .rp-trip-collection-list .rp-saved-trip-card {
    grid-template-columns: 1fr;
  }
  .rp-trip-collection-list .rp-saved-trip-cover {
    height: 180px;
    min-height: 0;
  }
  .rp-readiness-grid,
  .rp-readiness-notes,
  .rp-provider-grid {
    grid-template-columns: 1fr;
  }
  .rp-map-frame,
  .rp-map-frame iframe {
    min-height: 330px;
  }
}
@media (max-width: 430px) {
  .rp-trips-toolbar {
    gap: 12px;
  }
  .rp-trips-toolbar h2 {
    font-size: 1.55rem;
  }
  .rp-view-toggle a {
    width: 36px;
  }
  .rp-saved-trip-cover {
    height: 160px;
  }
  .rp-saved-trip-heading {
    display: block;
  }
  .rp-saved-trip-heading time {
    display: block;
    margin-top: 5px;
  }
  .rp-readiness-card {
    padding: 18px;
    border-radius: 18px;
  }
  .rp-readiness-card .rp-card-icon {
    width: 32px;
    height: 32px;
    top: 15px;
    right: 15px;
  }
  .rp-map-frame,
  .rp-map-frame iframe {
    min-height: 280px;
  }
}
.rp-intel-unavailable {
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border: 1px dashed rgba(23, 36, 58, 0.18);
  border-radius: 18px;
  background: #fff;
}
.essentialsWrapper {
  border: none !important;
  background: radial-gradient(
    29.11% 73.27% at 64.04% 47.13%,
    #654b15 0%,
    #402e0b 100%
  );
}
.essentialsWrapper .btnPrimary {
  font-size: 14px;
  padding: 10px 12px;
}
.rp-intel-unavailable strong {
  display: block;
  margin-top: 4px;
  max-width: 720px;
  font-weight: 400;
  color: #fff;
}
.rp-itinerary-column .rp-day-card:last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 700px) {
  .rp-intel-unavailable {
    align-items: stretch;
    flex-direction: column;
  }
  .rp-intel-unavailable .button {
    width: 100%;
  }
}

/* Batch 3 - provider admin foundation */
.rp-admin-shell {
  padding-top: 42px;
  padding-bottom: 72px;
}

.rp-admin-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.rp-admin-heading h1 {
  margin: 4px 0 8px;
}

.rp-admin-heading p {
  max-width: 720px;
  margin: 0;
  color: var(--muted);
}

.rp-admin-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

.rp-admin-stats article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px;
  box-shadow: var(--shadow-soft);
}

.rp-admin-stats strong {
  display: block;
  font-size: clamp(1.65rem, 3vw, 2.3rem);
  line-height: 1;
  color: var(--navy);
  margin-bottom: 7px;
}

.rp-admin-stats span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 700;
}

.rp-admin-panel,
.rp-admin-table-wrap,
.rp-admin-form .rp-form-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
}

.rp-admin-panel {
  padding: 24px;
}

.rp-admin-panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.rp-admin-panel-head h2 {
  margin: 4px 0 0;
}

.rp-admin-provider-preview {
  display: grid;
}

.rp-admin-provider-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--line);
  color: inherit;
}

.rp-admin-provider-row:last-child {
  border-bottom: 0;
}

.rp-admin-provider-row strong,
.rp-admin-provider-row span {
  display: block;
}

.rp-admin-provider-row div > span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.84rem;
}

.rp-status-pill,
.rp-mini-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border-radius: 999px;
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
}

.rp-status-pill {
  padding: 7px 10px;
}

.rp-status-pill.is-success {
  background: #e9f7f2;
  color: #14785f;
  font-weight: 500;
}

.rp-status-pill.is-muted {
  background: #eef1f4;
  color: #647184;
}

.rp-mini-badge {
  margin-left: 7px;
  padding: 5px 7px;
  background: #fff1e8;
  color: #b85c28;
}

.rp-admin-filter {
  margin-bottom: 20px;
}

.rp-admin-table-wrap {
  overflow-x: auto;
}

.rp-admin-table {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
}

.rp-admin-table th,
.rp-admin-table td {
  padding: 15px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.rp-admin-table th {
  color: var(--muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.rp-admin-table td small {
  display: block;
  max-width: 340px;
  margin-top: 4px;
  color: var(--muted);
}

.rp-admin-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.rp-admin-actions form {
  margin: 0;
}

.link-button {
  border: 0;
  padding: 0;
  background: none;
  color: var(--teal);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.rp-empty-compact {
  padding: 15px 2px 8px;
}
.rp-empty-compact strong {
  font-weight: 500;
}

.rp-empty-compact p {
  color: var(--muted);
}

.rp-admin-form {
  display: grid;
  gap: 18px;
}

.rp-admin-form .rp-form-card {
  padding: 24px;
}

.rp-admin-form .rp-form-card-head {
  margin-bottom: 18px;
}

.rp-admin-form .rp-form-card-head h2 {
  margin: 4px 0 0;
}

.rp-admin-form .rp-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px;
  margin-top: 15px;
}

.rp-admin-form .rp-field {
  display: grid;
  gap: 0px;
}

.rp-admin-form .rp-field > span {
  color: var(--themeBlack);
  font-size: 14px;
  font-weight: 400;
}

.rp-admin-form .rp-field-full {
  grid-column: 1 / -1;
}

.rp-admin-form .rp-field input,
.rp-admin-form .rp-field select,
.rp-admin-form .rp-field textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d9e2e5;
  border-radius: 13px;
  padding: 6px 13px;
  background: #fff;
  color: var(--navy);
  font: inherit;
  font-weight: 400;
}

.providerform .rp-field input:not([type="checkbox"]):not([type="radio"]),
.providerform .rp-field select {
  min-height: 36px !important;
  height: 36px !important;
  padding: 5px 13px !important;
}

.rp-admin-form .rp-field textarea {
  min-height: 86px;
  resize: vertical;
}

.rp-admin-form .rp-field small {
  color: var(--muted);
  font-weight: 500;
}

.rp-admin-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 4px 2px 0;
}

.rp-admin-checks {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
}

.rp-admin-checks label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
}

.rp-admin-checks input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--themeBlack);
}

@media (max-width: 800px) {
  .rp-admin-shell {
    padding-top: 28px;
  }

  .rp-admin-heading,
  .rp-admin-form-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .rp-admin-heading .button,
  .rp-admin-form-footer .button {
    width: 100%;
    justify-content: center;
  }

  .rp-admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rp-admin-form .rp-form-grid {
    grid-template-columns: 1fr;
  }

  .rp-admin-form .rp-field-full {
    grid-column: auto;
  }
}

@media (max-width: 430px) {
  .rp-admin-stats {
    gap: 10px;
  }

  .rp-admin-stats article,
  .rp-admin-panel,
  .rp-admin-form .rp-form-card {
    border-radius: 16px;
    padding: 16px;
  }

  .rp-admin-checks {
    display: grid;
    gap: 12px;
  }
}

/* ============================================================
   Batch 3.1 - compact post-itinerary utilities
   ============================================================ */
.rp-failed-hidden-link {
  display: inline-flex;
  margin-top: 5px;
  color: var(--danger);
  font-size: 0.84rem;
  font-weight: 800;
}
.rp-saved-trip-actions form {
  margin: 0;
}
.rp-saved-trip-actions .button-danger-ghost {
  white-space: nowrap;
}

.rp-travel-essentials-wrap {
  margin-top: 34px;
}
.rp-travel-essentials {
  overflow: hidden;
  border: none;
  border-radius: 20px;
  background: var(--themeBlack);
  box-shadow: 0 12px 34px rgba(23, 36, 58, 0.06);
}
.rp-travel-essentials > summary {
  display: flex;
  min-height: 86px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 20px;
  list-style: none;
  cursor: default;
}
.rp-travel-essentials > summary::-webkit-details-marker {
  display: none;
}
.rp-travel-essentials > summary::after {
  display: none;
}
.rp-essentials-summary-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.rp-essentials-summary-main b {
  display: block;
  color: var(--white);
  font-size: 1.05rem;
}
.rp-essentials-summary-main small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
}
.rp-essentials-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #764f06;
  background: #ffecc9;
  font-weight: 900;
}
.rp-essentials-chips {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  background: #2f434f;
  padding: 5px;
  border-radius: 44px;
  gap: 10px;
}
.collapsetoggleBtn {
  width: 28px;
  height: 28px;
  background: #2f434f;
  display: inline-grid;
  place-content: center;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  flex: 0 0 auto;
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.2s ease;
  user-select: none;
}
.collapsetoggleBtn:hover {
  background: #3d5666;
}
.collapsetoggleBtn.collapsed {
  transform: rotate(180deg);
}
.rp-essentials-chips span {
  padding: 6.5px 15px;
  border-radius: 999px;
  color: var(--white);
  background: #ffffff33;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  line-height: 1;
  border: 1px solid transparent;
}
.rp-essentials-chips span:hover {
  background: #d4f2ef;
  color: #004d4d;
}
.rp-essentials-chips span.active {
  background: var(--white);
  color: var(--themeBlack);
  border-color: var(--white);
  box-shadow: 0 2px 8px rgba(0, 128, 128, 0.25);
}
.rp-essentials-body {
  display: grid;
  grid-template-rows: 1fr;
  transition:
    grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.25s ease,
    border-color 0.35s ease;
  overflow: hidden;
  border-top: 1px solid var(--line);
  padding: 20px;
  opacity: 1;
}
.rp-essentials-body-inner {
  min-height: 0;
  overflow: hidden;
}
.rp-essentials-body.collapsed {
  grid-template-rows: 0fr;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  opacity: 0;
  border-top-color: transparent;
}
.rp-essentials-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.rp-essentials-grid.single-tab-mode {
  grid-template-columns: 1fr;
}
.rp-essentials-grid > section {
  padding: 16px;
  border-radius: 16px;
  background: #1e303d;
  min-width: 0;
}
.rp-essentials-grid > section > small {
  color: var(--teal);
  font-weight: 850;
}
.rp-essentials-grid h3 {
  margin: 0px 0 9px;
  line-height: 1.42;
  color: #f0debe;
  font-weight: 500;
  font-size: 16px;
}
.rp-essentials-grid p,
.rp-essentials-grid li {
  font-size: 14px;
  line-height: 1.5;
  color: #dbdbdb;
  margin-bottom: 5px;
}
.rp-essentials-grid li {
  position: relative;
}
.rp-essentials-grid li strong {
  font-weight: 600;
}
.rp-essentials-grid li::before {
  content: "";
  position: absolute;
  top: 8px;
  left: -15px;
  width: 6px;
  height: 6px;
  background: #7093aa;
  border-radius: 50%;
}
.rp-compact-checks li::before {
  display: none;
}
.rp-essentials-grid ul {
  margin: 8px 0;
  padding-left: 18px;
  color: var(--muted);
}
.rp-season-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 15px;
}
.rp-season-inline span {
  padding: 4px 7px;
  border-radius: 10px;
  background: rgb(148 143 13 / 15%);
  color: #c9b78e;
  font-size: 12px;
}
.rp-season-inline span b {
  font-weight: 600;
}
.rp-official-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}
.rp-official-links a {
  color: #7093aa;
  font-size: 12px;
  font-weight: 600;
  background: #ffffff1f;
  display: inline-block;
  padding: 5px 15px;
  line-height: 1;
  border-radius: 44px;
  transition: 0.5s;
}
.rp-official-links a:hover {
  background: var(--themeRed);
  color: var(--white);
  transition: 0.5s;
}
.rp-compact-checks {
  list-style: none;
  padding: 0 !important;
}
.rp-compact-checks li {
  margin: 6px 0;
}
.mandatoryList li {
  display: flex;
  gap: 10px;
}
.rp-compact-checks li b {
  width: 18px;
  display: inline-grid;
  height: 18px;
  place-content: center;
  background: #ffffff17;
  border-radius: 50%;
  font-size: 12px;
  transform: translateY(3px);
}
.rp-compact-checks li span {
  flex: 1;
}
.rp-compact-gear {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.rp-compact-gear > span {
  display: grid;
  gap: 1px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
}
.rp-compact-gear b {
  color: var(--navy);
  font-size: 0.9rem;
}
.rp-compact-gear small {
  color: var(--muted);
  font-weight: 500;
}
.rp-essentials-footnotes {
  display: grid;
  gap: 7px;
  margin-top: 14px;
  color: #dbdbdb;
  font-size: 0.83rem;
}
.rp-intel-disclaimer {
  color: #dbdbdb;
}
.rp-intel-unavailable-compact {
  margin-top: 34px;
  border-radius: 18px;
}

.rp-booking-search,
.rp-map-compact-section,
.rp-provider-section-compact {
  margin-top: 38px;
}
.rp-section-title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 15px;
}
.rp-section-title-row h2,
section .rp-contact-us h2 {
  margin: 10px 0 15px;
  font-size: 24px;
}
.rp-section-title-row p {
  margin: 0;
  max-width: 720px;
}
.rp-live-search-note {
  flex: 0 0 auto;
  padding: 7px 10px;
  padding-right: 20px;
  border-radius: 999px;
  color: #000000;
  background: #efefef;
  font-size: 0.76rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.rp-travel-search-fields {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 0.8fr 0.8fr;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: var(--soft);
}
.rp-travel-search-fields label {
  min-width: 0;
}
.rp-travel-search-fields span {
  display: block;
  margin-bottom: 0px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
}
.rp-travel-search-fields input {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #d8e0e5;
  border-radius: 11px;
  outline: 0;
  color: var(--navy);
  background: #fff;
}
.rp-travel-search-fields input:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(15, 124, 120, 0.09);
}
.rp-travel-search-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 13px;
}
.rp-travel-search-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 12px 14px;
  padding: 17px;
  /* border: 1px solid rgba(23, 36, 58, 0.1); */
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(23, 36, 58, 0.05);
}
.rp-search-card-icon {
  grid-row: span 2;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: #0d9488;
  font-size: 1.15rem;
  font-weight: 900;
}
.rp-travel-search-card small {
  color: var(--muted);
  font-weight: 400;
}
.travelCardTop {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 15px;
}
.rp-travel-search-card h3 {
  margin: 2px 0 5px;
  font-size: 1.03rem;
}
.rp-travel-search-card p {
  margin: 0;
  font-size: 13px;
  margin-bottom: 15px;
}
.rp-travel-search-card > .button {
  grid-column: 2;
  justify-self: start;
  margin-top: 2px;
}
.rp-hotel-mentions,
.rp-hotel-providers-mini {
  grid-column: 1 / -1;
  display: grid;
  gap: 7px;
}
.rp-hotel-mentions a,
.rp-hotel-providers-mini > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border-radius: 11px;
  background: var(--soft);
}
.rp-hotel-mentions a {
  display: grid;
}
.rp-hotel-mentions b,
.rp-hotel-providers-mini b {
  color: var(--navy);
  font-size: 0.88rem;
}
.rp-hotel-mentions span,
.rp-hotel-providers-mini small {
  color: var(--muted);
  font-size: 0.77rem;
}
.rp-hotel-providers-mini > div > span {
  display: grid;
  min-width: 0;
}
.rp-hotel-providers-mini a {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 0.78rem;
  font-weight: 800;
}
.rp-travel-search-disclaimer {
  display: block;
  margin-top: 9px;
  color: var(--muted);
  font-size: 0.76rem;
}

.rp-map-title-row {
  align-items: center;
}
.rp-map-title-row > small {
  max-width: 300px;
  color: var(--muted);
  text-align: right;
}
.rp-map-compact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(250px, 0.75fr);
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: var(--soft);
}
.rp-map-compact-layout.rp-map-only {
  grid-template-columns: 1fr;
}
.rp-map-frame-compact {
  min-height: 270px;
  border-radius: 14px;
  overflow: hidden;
  background: #e8eef0;
}
.rp-map-frame-compact iframe {
  width: 100%;
  height: 270px;
  display: block;
  border: 0;
}
.rp-google-places-compact {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
}
.rp-google-places-compact > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 11px;
  background: #fff;
  border: 1px solid rgba(23, 36, 58, 0.07);
}
.rp-google-places-compact > a > span {
  display: grid;
  min-width: 0;
}
.rp-google-places-compact b {
  overflow: hidden;
  color: var(--navy);
  font-size: 0.86rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rp-google-places-compact small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rp-google-places-compact > a > strong {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 0.82rem;
}
.rp-google-places-compact .rp-google-policy-note {
  white-space: normal;
  line-height: 1.35;
}
.rp-provider-section-compact .rp-provider-grid {
  margin-top: 0;
}

@media (max-width: 900px) {
  .rp-essentials-chips {
    display: none;
  }
  .rp-travel-essentials .rp-essentials-chips {
    display: flex;
    overflow-x: auto;
  }
  .rp-travel-search-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-travel-search-cards {
    grid-template-columns: 1fr;
  }
  .rp-map-compact-layout {
    grid-template-columns: 1fr;
  }
  .rp-map-frame-compact,
  .rp-map-frame-compact iframe {
    min-height: 245px;
    height: 245px;
  }
  .rp-google-places-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-google-places-compact .rp-google-attribution,
  .rp-google-places-compact .rp-google-policy-note {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .rp-travel-essentials > summary {
    min-height: 76px;
    padding: 14px;
  }
  .rp-essentials-summary-main small {
    font-size: 0.78rem;
  }
  .rp-essentials-body {
    padding: 13px;
  }
  .rp-essentials-grid {
    grid-template-columns: 1fr;
  }
  .rp-section-title-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }
  .rp-live-search-note {
    align-self: flex-start;
  }
  .rp-travel-search-fields {
    grid-template-columns: 1fr;
  }
  .rp-travel-search-card {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 14px;
  }
  .rp-travel-search-card > .button {
    grid-column: 1 / -1;
    width: 100%;
  }
  .rp-google-places-compact {
    grid-template-columns: 1fr;
  }
  .rp-google-places-compact .rp-google-attribution,
  .rp-google-places-compact .rp-google-policy-note {
    grid-column: auto;
  }
  .rp-map-title-row > small {
    max-width: none;
    text-align: left;
  }
  .rp-map-frame-compact,
  .rp-map-frame-compact iframe {
    min-height: 220px;
    height: 220px;
  }
  .rp-saved-trip-actions {
    flex-wrap: wrap;
  }
}

/* ============================================================
   Batch 4 - admin operations + itinerary contact enquiries
   ============================================================ */
.rp-admin-nav {
  display: flex;
  gap: 7px;
  margin: 0 0 20px;
  padding: 7px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  scrollbar-width: none;
}
.rp-admin-nav::-webkit-scrollbar {
  display: none;
}
.rp-admin-nav a {
  flex: 0 0 auto;
  padding: 9px 13px;
  border-radius: 11px;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}
.rp-admin-nav a:hover,
.rp-admin-nav a.active {
  color: #fff !important;
  background: var(--navy);
}

.rp-admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 11px;
  margin-bottom: 20px;
}
.rp-admin-kpi-grid article {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(23, 36, 58, 0.09);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(23, 36, 58, 0.045);
}
.rp-admin-kpi-grid small,
.rp-admin-kpi-grid span {
  display: block;
  color: var(--muted);
}
.rp-admin-kpi-grid small {
  margin-bottom: 6px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.rp-admin-kpi-grid strong {
  display: block;
  overflow: hidden;
  color: var(--navy);
  font-size: clamp(1.45rem, 3vw, 2rem);
  text-overflow: ellipsis;
}
.rp-admin-kpi-grid span {
  margin-top: 5px;
  font-size: 0.72rem;
  line-height: 1.35;
}
.rp-admin-kpi-grid.rp-admin-kpi-small {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.rp-admin-kpi-grid .rp-kpi-date,
.rp-admin-kpi-grid .rp-kpi-text {
  font-size: 1rem;
  line-height: 1.3;
}

.rp-admin-health-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.rp-admin-health-grid > div {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 11px;
  border-radius: 13px;
  background: var(--soft);
}
.rp-admin-health-grid i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #aab3ba;
}
.rp-admin-health-grid i.ready {
  background: #1b9b75;
}
.rp-admin-health-grid i.warn {
  background: #e39a30;
}
.rp-admin-health-grid span {
  display: grid;
  min-width: 0;
}
.rp-admin-health-grid b {
  color: var(--navy);
  font-size: 0.82rem;
}
.rp-admin-health-grid small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rp-admin-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.rp-admin-list {
  display: grid;
}
.rp-admin-list > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
  min-width: 0;
  padding: 6px 2px;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
}
.rp-admin-list > a:last-child {
  border-bottom: 0;
}
.rp-admin-list > a > span:first-child {
  display: grid;
  min-width: 0;
}
.rp-admin-list b,
.rp-admin-list small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rp-admin-list b {
  font-size: 0.88rem;
}
.rp-admin-list small {
  margin-top: 0px;
  color: var(--muted);
  font-size: 0.73rem;
}
.rp-status-pill.is-alert {
  color: #9c4d15;
  background: #fff0e5;
}

.rp-admin-dl {
  display: grid;
  grid-template-columns: minmax(90px, 0.55fr) 1.5fr;
  gap: 8px 12px;
  margin: 0;
}
.rp-admin-dl dt {
  color: var(--muted);
  font-size: 0.77rem;
  font-weight: 800;
}
.rp-admin-dl dd {
  margin: 0;
  color: var(--navy);
  font-size: 0.86rem;
}
.rp-source-admin-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.rp-source-admin-list a {
  padding: 7px 9px;
  border-radius: 10px;
  color: var(--teal);
  background: #edf8f7;
  font-size: 0.75rem;
  font-weight: 800;
}
.rp-mini-day-list {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}
.rp-mini-day-list span {
  display: grid;
  gap: 1px;
  padding: 9px 10px;
  border-radius: 10px;
  background: var(--soft);
  color: var(--muted);
  font-size: 0.78rem;
}
.rp-mini-day-list b {
  color: var(--navy);
}
.rp-admin-error-panel {
  margin-top: 16px;
}
.rp-admin-error-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.rp-admin-error-grid small {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-weight: 800;
}
.rp-admin-error-grid pre {
  max-height: 320px;
  margin: 0;
  overflow: auto;
  padding: 13px;
  border-radius: 12px;
  color: #562219;
  background: #fff1ed;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 0.74rem;
  line-height: 1.5;
}

.rp-contact-message {
  margin: 14px 0;
  padding: 15px;
  border-radius: 14px;
  background: var(--soft);
  color: var(--navy);
  line-height: 1.6;
  white-space: pre-wrap;
}
.rp-contact-admin-form {
  display: grid;
  gap: 12px;
}
.rp-contact-admin-form label {
  display: grid;
  gap: 6px;
}
.rp-contact-admin-form label > span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}
.rp-contact-admin-form select,
.rp-contact-admin-form textarea {
  width: 100%;
  padding: 10px 11px;
  border: 1px solid #d7e0e4;
  border-radius: 11px;
  color: var(--navy);
  background: #fff;
}

.rp-contact-us {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr);
  gap: 26px;
  margin-top: 42px;
  margin-bottom: 8px;
  padding: 28px;
  border: 1px solid rgba(23, 36, 58, 0.1);
  border-radius: 24px;
  background: linear-gradient(135deg, #f7fbfb 0%, #fff8f1 100%);
  box-shadow: 0 15px 38px rgba(23, 36, 58, 0.06);
}
.rp-contact-us-copy h2 {
  margin: 5px 0 10px;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
}
.rp-contact-us-copy p {
  max-width: 560px;
  margin: 0;
}
.rp-contact-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 17px;
}
.rp-contact-trust span {
  padding: 7px 15px;
  border-radius: 999px;
  color: var(--teal-dark);
  background: rgb(148 143 13 / 15%);
  color: #c9b78e;
  font-size: 12px;
  font-weight: 400;
}
.rp-contact-trust span i {
  margin-right: 5px;
}
.rp-contact-form {
  padding: 17px;
  border: 1px solid #1e303d;
  border-radius: 18px;
  background: #1e303d;
}
.rp-contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}
.rp-contact-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.rp-contact-form label > span {
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
}
.rp-contact-form input,
.rp-contact-form select,
.rp-contact-form textarea {
  width: 100%;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #d5dfe4;
  border-radius: 11px;
  outline: 0;
  color: var(--navy);
  background: #fff;
}
.rp-contact-form input:focus,
.rp-contact-form select:focus,
.rp-contact-form textarea:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(15, 124, 120, 0.08);
}
.rp-contact-message-field {
  grid-column: 1 / -1;
}
.rp-contact-form textarea {
  resize: vertical;
}
.rp-contact-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 12px;
}
.rp-contact-submit small {
  max-width: 400px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.72rem;
  line-height: 1.4;
}

@media (max-width: 1100px) {
  .rp-admin-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .rp-admin-health-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .rp-admin-two-col,
  .rp-admin-error-grid,
  .rp-contact-us {
    grid-template-columns: 1fr;
  }
  .rp-admin-kpi-grid.rp-admin-kpi-small {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-health-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-contact-us {
    gap: 18px;
    padding: 20px;
  }
}
@media (max-width: 680px) {
  .rp-admin-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-table-wrap {
    overflow: visible;
  }
  .rp-admin-responsive-table thead {
    display: none !important;
  }
  .rp-admin-responsive-table,
  .rp-admin-responsive-table tbody,
  .rp-admin-responsive-table tr,
  .rp-admin-responsive-table td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .rp-admin-responsive-table tr {
    padding: 12px 14px;
    margin-bottom: 10px;
    border: 1px solid var(--line, #e2e8f0);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
  }
  .rp-admin-responsive-table td {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0 !important;
    border: 0 !important;
    text-align: right;
  }
  .rp-admin-responsive-table td[data-label]::before,
  .rp-admin-responsive-table td::before {
    content: attr(data-label);
    color: var(--muted, #64748b);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: left;
    flex: 0 0 auto;
  }
  .rp-contact-form-grid {
    grid-template-columns: 1fr;
  }
  .rp-contact-message-field {
    grid-column: auto;
  }
  .rp-contact-submit {
    align-items: stretch;
    flex-direction: column;
  }
  .rp-contact-submit .button {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .rp-admin-kpi-grid,
  .rp-admin-kpi-grid.rp-admin-kpi-small,
  .rp-admin-health-grid {
    grid-template-columns: 1fr;
  }
  .rp-contact-us {
    padding: 15px;
    border-radius: 18px;
  }
  .rp-contact-form {
    padding: 13px;
  }
}

/* ============================================================
   Batch 4.1 - compact admin UI, filters, generated-result view,
   and tracked trip-result banners
   ============================================================ */
.admin-page {
  background: #f7f9fa;
}
.admin-page .rp-admin-shell {
  padding-top: 24px;
  padding-bottom: 64px;
}
/* .admin-page .rp-admin-shell.adminPannel {
  padding-top: 90px;
} */
.adminBanner {
  padding-top: 50px;
  position: relative;
}
.adminBanner img {
  height: 200px;
  width: 100%;
  object-fit: cover;
}
.adminBannerContent {
  position: absolute;
  width: 100%;
  top: 56%;
  left: 0%;
  transform: translateY(-50%);
}
.adminBannerContent p {
  color: #bbbbbb;
}
.adminBannerContent .hero-title {
  margin-bottom: 10px;
  line-height: 1.3;
  margin-top: 0;
}
.dashNav .rp-admin-nav {
  margin-bottom: 0 !important;
  display: inline-flex;
  margin: 0 auto 0 !important;
  transform: translateY(-25px);
}
.dashNav {
  position: sticky;
  top: 103px;
}

.admin-page .rp-page-heading,
.admin-page .rp-admin-heading {
  margin-bottom: 16px;
}
.admin-page .rp-page-heading h1,
.admin-page .rp-admin-heading h1,
.admin-page .rp-admin-heading-compact h1 {
  margin: 2px 0 5px;
  font-size: clamp(1.85rem, 3vw, 2.45rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
}
.admin-page .rp-page-heading p,
.admin-page .rp-admin-heading p,
.admin-page .rp-admin-heading-compact p {
  max-width: 760px;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
}
.admin-page .eyebrow {
  margin-bottom: 6px;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
}
.admin-page .eyebrow::before {
  width: 18px;
}
.rp-admin-heading-compact {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.rp-admin-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}
.admin-page .button {
  min-height: 36px;
  padding: 8px 15px;
  font-size: 0.84rem;
}
.admin-page .button-sm {
  min-height: 36px;
  padding: 7px 13px;
  font-size: 0.8rem;
}

.admin-page .rp-admin-nav {
  gap: 4px;
  margin: 0 0 18px;
  padding: 5px;
  border: none;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--rr-shadow-soft);
}
.admin-page .rp-admin-nav a {
  min-height: 36px;
  padding: 8px 13px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 400;
  font-family: var(--headingFont);
  color: var(--themeBlack);
  display: inline-flex;
  align-items: center;
}

.rp-admin-kpi-grid.rp-admin-kpi-grid-compact {
  gap: 5px;
  margin-bottom: 16px;
}
.rp-admin-kpi-grid.rp-admin-kpi-grid-compact article {
  min-height: 103px;
  padding: 15px 10px;
  border-radius: 16px;
  /* box-shadow: none; */
  border: none;
}
.tripssourceInfo.rp-admin-kpi-grid.rp-admin-kpi-grid-compact article {
  min-height: auto;
}
.bg-yellow {
  background: #fff4de !important;
}
.bg-yellow strong {
  color: #ff947a;
}
.bg-pink {
  background: #ffcfda !important;
}
.bg-pink strong {
  color: #e3627b;
}
.bg-blue {
  background: #cfdcff !important;
}
.bg-blue strong {
  color: #626be3;
}
.bg-green {
  background: #d0ffcf !important;
}
.bg-green strong {
  color: #369f3a;
}
.bg-violet {
  background: #f3cfff !important;
}
.bg-violet strong {
  color: #a969bf;
}
.bg-seablue {
  background: #cffff2 !important;
}
.bg-seablue strong {
  color: #61c3a8;
}
.rp-admin-kpi-grid.rp-admin-kpi-grid-compact small {
  margin-bottom: 6px;
  font-size: 0.66rem;
  font-weight: 500;
  color: var(--themeBlack);
}
.rp-admin-kpi-grid.rp-admin-kpi-grid-compact strong {
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  line-height: 1.05;
}
.rp-admin-kpi-grid.rp-admin-kpi-grid-compact span {
  margin-top: 7px;
  font-size: 0.7rem;
}
.rp-admin-kpi-grid .rp-kpi-highlight {
  border-color: rgba(15, 124, 120, 0.22);
  background: linear-gradient(180deg, #fff, #f3fbfa);
}
.rp-admin-kpi-grid .rp-kpi-highlight strong {
  color: var(--teal-dark);
}

.rp-admin-panel.rp-admin-panel-compact {
  padding: 17px;
  border-radius: 17px;
  border: none;
}
.secnewTag {
  font-size: 12px;
  text-transform: uppercase;
  color: var(--muted);
}
.rp-admin-panel.rp-admin-panel-compact .rp-admin-panel-head {
  align-items: center;
  padding-bottom: 11px;
}
.rp-admin-panel.rp-admin-panel-compact .rp-admin-panel-head h2,
.admin-page .rp-admin-panel-head h2,
.admin-page .rp-form-card-head h2 {
  margin: 2px 0 0;
  font-size: 1.05rem;
  line-height: 1.25;
}
.rp-admin-panel-head > a,
.rp-inline-action {
  color: var(--teal);
  font-size: 0.75rem;
  font-weight: 500;
}
.rp-admin-panel-head > a {
  background: var(--themeBlack);
  color: #fff;
  padding: 7px 22px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  transition: 0.5s;
}
.rp-admin-two-col .status-completed,
td .status-completed {
  color: #38b331;
  background: #cff9c857;
  border: none;
  font-weight: 500;
  transition: 0.5s;
}
.rp-admin-two-col .status-completed:hover {
  background: #38b331;
  color: var(--white);
  transition: 0.5s;
}
.rp-admin-panel-head > a:hover {
  background: var(--themeRed);
  transition: 0.5s;
}
.rp-admin-top-panels {
  margin-top: 0;
}
.rp-admin-health-grid.rp-admin-health-grid-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}
.rp-admin-health-grid.rp-admin-health-grid-compact > div {
  min-height: 55px;
  padding: 9px 10px;
  border-radius: 11px;
  align-items: flex-start;
}
.rp-admin-health-grid.rp-admin-health-grid-compact i {
  transform: translateY(5px);
}
.rp-admin-health-grid.rp-admin-health-grid-compact b {
  font-size: 14px;
  font-weight: 500;
}
.rp-admin-health-grid.rp-admin-health-grid-compact small {
  font-size: 12px;
}
.rp-banner-mini-stats,
.rp-banner-card-metrics,
.rp-admin-result-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.rp-banner-mini-stats > span,
.rp-banner-card-metrics > span,
.rp-admin-result-meta > span {
  min-width: 0;
  padding: 10px;
  border-radius: 11px;
  background: var(--soft);
}
.rp-banner-mini-stats small,
.rp-banner-card-metrics small,
.rp-admin-result-meta small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.rp-banner-mini-stats b,
.rp-banner-card-metrics b,
.rp-admin-result-meta b {
  display: block;
  margin-top: 3px;
  color: var(--navy);
  font-size: 0.95rem;
}

/* Modern compact filter bar */
.rp-admin-filter-card {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}
.rp-admin-filter-grid {
  display: grid;
  align-items: end;
  gap: 10px;
}
.rp-admin-trip-filter-grid {
  grid-template-columns:
    minmax(250px, 1.8fr) minmax(130px, 0.75fr) minmax(145px, 0.82fr)
    minmax(145px, 0.82fr) auto;
}
.rp-admin-filter-grid-simple {
  grid-template-columns: minmax(280px, 1.8fr) minmax(170px, 0.8fr) auto;
}
.rp-admin-filter-grid-contacts,
.rp-admin-filter-grid-providers {
  grid-template-columns:
    minmax(260px, 1.55fr) minmax(160px, 0.8fr) minmax(170px, 0.85fr)
    auto;
}
.rp-admin-filter-field {
  display: grid;
  min-width: 0;
  gap: 0px;
}
.rp-admin-filter-field > span {
  color: #506075;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.rp-admin-filter-field input,
.rp-admin-filter-field select {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 8px 11px;
  border: 1px solid #d7e0e6;
  border-radius: 10px;
  outline: none;
  color: var(--navy);
  background: #fbfcfd;
  font-size: 0.82rem;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease;
}
.rp-admin-filter-field input:focus,
.rp-admin-filter-field select:focus {
  border-color: rgba(15, 124, 120, 0.7);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(15, 124, 120, 0.08);
}
.rp-admin-filter-actions {
  display: flex;
  min-height: 40px;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}
.rp-admin-filter-actions > a {
  padding: 7px 2px;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
}
.rp-admin-filter-actions > a:hover {
  color: var(--teal);
}

/* Tables */
.admin-page .rp-admin-table-wrap {
  border-radius: 16px;
  box-shadow: none;
  padding: 15px;
  border: none;
}
.admin-page .rp-admin-table {
  min-width: 760px;
  font-size: 0.8rem;
}
.rp-admin-table thead tr:first-child th:first-child {
  border-top-left-radius: 8px;
}
.rp-admin-table thead tr:first-child th:last-child {
  border-top-right-radius: 8px;
}
.rp-admin-table tbody td {
  background: #fbfbfb;
}
.rp-admin-table tbody tr:last-child td {
  border: none;
}
.rp-admin-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 8px;
}
.rp-admin-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 8px;
}
.admin-page .rp-admin-table th,
.admin-page .rp-admin-table td {
  padding: 11px 13px;
}
.admin-page .rp-admin-table td[data-label="Action"] a {
  background: var(--themeBlack);
  font-size: 12px;
  line-height: 1;
  display: inline-flex;
  padding: 4px 10px;
  border-radius: 4px;
  color: #fff;
  transition: 0.5s;
}
.rp-admin-table td[data-label="Action"] a:hover {
  background: var(--themeRed);
  color: #fff;
  transition: 0.5s;
}
/* Admin Action Dropdown Menu */
.admin-page .rp-admin-table-wrap {
  overflow: visible;
}
.rp-action-dropdown {
  position: relative;
  display: inline-block;
  width: 100%;
  text-align: center;
}
.rp-action-btn {
  width: 28px;
  height: 28px;
  margin: auto;
  padding: 0;
  border-radius: 8px;
  background: #f4f6f8;
  border: 1px solid #e2e8f0;
  color: #475569;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  box-shadow: none !important;
  transition: all 0.2s ease;
}
.rp-action-btn:hover,
.rp-action-btn:focus,
.rp-action-btn.show {
  background: #e2e8f0;
  border-color: #cbd5e1;
  color: #0f172a;
}
.rp-action-menu {
  min-width: 175px;
  padding: 6px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
  background: #ffffff;
  margin-top: 4px !important;
  z-index: 1050;
}
.rp-action-menu li:not(:last-child) {
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 2px;
  padding-bottom: 2px;
}
.rp-action-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 6px;
  border-radius: 8px;
  color: #2c3e50;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  transition:
    background 0.2s ease,
    color 0.2s ease;
}
.rp-action-item:hover {
  background: #f8fafc;
  color: #0f172a;
}
.rp-action-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}
.rp-action-icon.bg-approve {
  background: #e6f9ed;
  color: #10b981;
}
.rp-action-icon.bg-edit {
  background: #e0f2fe;
  color: #0284c7;
}
.rp-action-icon.bg-delete {
  background: #fee2e2;
  color: #ef4444;
}
.admin-page .rp-admin-table th {
  background: #fff8ec;
  font-size: 0.65rem;
  letter-spacing: 0.055em;
}
.admin-page .rp-admin-table td strong {
  color: var(--themeBlack);
  font-weight: 500;
}
.admin-page .rp-admin-table td small {
  margin-top: 2px;
  font-size: 0.68rem;
  line-height: 1.35;
}
.rp-admin-model-text {
  display: inline-block;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rp-admin-row-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}
.rp-admin-row-actions a,
.rp-admin-row-actions .link-button {
  color: var(--teal);
  font-size: 0.74rem;
  font-weight: 800;
}
.rp-admin-row-actions form {
  margin: 0;
}

/* Generated trip result inspector */
.rp-admin-result-summary {
  margin-bottom: 14px;
}
.rp-admin-generated-days {
  display: grid;
  gap: 12px;
}
.rp-admin-generated-day {
  margin: 0;
}
.rp-admin-generated-day-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.rp-admin-generated-day-head small {
  color: var(--teal);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}
.rp-admin-generated-day-head h2 {
  margin: 2px 0 3px;
  font-size: 1.05rem;
}
.rp-admin-generated-day-head p {
  margin: 0;
  font-size: 0.76rem;
}
.rp-admin-generated-day-head > span {
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
}
.rp-admin-generated-items {
  display: grid;
  margin-top: 4px;
}
.rp-admin-generated-items article {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid #edf0f2;
}
.rp-admin-generated-items article:last-child {
  border-bottom: 0;
}
.rp-admin-generated-time {
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 800;
}
.rp-admin-generated-items h3 {
  margin: 0 0 2px;
  font-size: 0.9rem;
}
.rp-admin-generated-items small {
  color: var(--muted);
  font-size: 0.7rem;
}
.rp-admin-generated-items p {
  margin: 5px 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
}
.rp-admin-generated-items em {
  display: block;
  margin-top: 5px;
  color: #6d5b47;
  font-size: 0.72rem;
  font-style: normal;
}
.rp-admin-json-preview {
  max-height: 420px;
  overflow: auto;
  margin: 12px 0 0;
  padding: 12px;
  border-radius: 11px;
  color: #314055;
  background: var(--soft);
  font-size: 0.72rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

/* Admin banner management */
.rp-admin-banner-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.rp-admin-banner-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.rp-admin-banner-preview {
  aspect-ratio: 5 / 1;
  overflow: hidden;
  background: #eef2f4;
}
.rp-admin-banner-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rp-admin-banner-body {
  padding: 14px;
}
.rp-admin-banner-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.rp-admin-banner-title small {
  color: var(--teal);
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
}
.rp-admin-banner-title h2 {
  margin: 2px 0 0;
  font-size: 1rem;
}
.rp-banner-card-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 12px;
}

/* User-facing sponsored banner strip */
.rp-trip-ads {
  margin-top: 30px;
}
.rp-trip-ads-label {
  margin-bottom: 7px;
  color: #7a8491;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rp-trip-ads-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.rp-trip-ads-count-1 {
  grid-template-columns: 1fr;
}
.rp-trip-ad-banner {
  display: block;
  overflow: hidden;
  min-width: 0;
  border: 1px solid rgba(23, 36, 58, 0.1);
  border-radius: 15px;
  background: #f4f6f7;
  box-shadow: 0 8px 22px rgba(23, 36, 58, 0.05);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.rp-trip-ad-banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(23, 36, 58, 0.09);
}
.rp-trip-ad-banner img {
  width: 100%;
  aspect-ratio: 5 / 1;
  object-fit: cover;
}

@media (max-width: 1050px) {
  .rp-admin-trip-filter-grid {
    grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(145px, 0.8fr));
  }
  .rp-admin-trip-filter-grid .rp-admin-filter-actions {
    grid-column: 1 / -1;
  }
  .rp-admin-filter-grid-contacts,
  .rp-admin-filter-grid-providers {
    grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(160px, 0.85fr));
  }
  .rp-admin-filter-grid-contacts .rp-admin-filter-actions,
  .rp-admin-filter-grid-providers .rp-admin-filter-actions {
    grid-column: 1 / -1;
  }
}
@media (max-width: 820px) {
  .rp-admin-heading-compact,
  .rp-admin-heading-actions {
    align-items: stretch;
  }
  .rp-admin-heading-compact {
    flex-direction: column;
  }
  .rp-admin-heading-actions {
    justify-content: flex-start;
  }
  .rp-admin-health-grid.rp-admin-health-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-banner-grid {
    grid-template-columns: 1fr;
  }
  .rp-admin-filter-grid-simple,
  .rp-admin-trip-filter-grid,
  .rp-admin-filter-grid-contacts,
  .rp-admin-filter-grid-providers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-filter-search-wide {
    grid-column: 1 / -1;
  }
  .rp-admin-filter-actions {
    grid-column: 1 / -1 !important;
  }
}
@media (max-width: 620px) {
  .admin-page .rp-admin-shell {
    padding-top: 18px;
  }
  .admin-page .rp-page-heading h1,
  .admin-page .rp-admin-heading h1,
  .admin-page .rp-admin-heading-compact h1 {
    font-size: 1.75rem;
  }
  .admin-page .rp-page-heading p,
  .admin-page .rp-admin-heading p,
  .admin-page .rp-admin-heading-compact p {
    font-size: 0.82rem;
  }
  .rp-admin-filter-grid-simple,
  .rp-admin-trip-filter-grid,
  .rp-admin-filter-grid-contacts,
  .rp-admin-filter-grid-providers {
    grid-template-columns: 1fr;
  }
  .rp-admin-filter-search-wide,
  .rp-admin-filter-actions {
    grid-column: auto !important;
  }
  .rp-admin-filter-actions {
    justify-content: space-between;
  }
  .rp-admin-health-grid.rp-admin-health-grid-compact {
    grid-template-columns: 1fr;
  }
  .rp-banner-mini-stats,
  .rp-admin-result-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-generated-items article {
    grid-template-columns: 68px minmax(0, 1fr);
  }
  .rp-trip-ads-grid {
    grid-template-columns: 1fr;
  }
  .rp-trip-ad-banner img {
    aspect-ratio: 4 / 1;
  }
}
@media (max-width: 420px) {
  .admin-page .rp-admin-nav a {
    padding: 8px 11px;
  }
  .rp-banner-mini-stats,
  .rp-admin-result-meta {
    grid-template-columns: 1fr 1fr;
  }
  .rp-admin-generated-day-head {
    flex-direction: column;
    gap: 4px;
  }
  .rp-admin-generated-items article {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* Batch 4.2 - admin banner form alignment */
.admin-page .rp-admin-form .rp-admin-form-card-head {
  display: block;
  margin-bottom: 18px;
}
.admin-page .rp-admin-form .rp-admin-form-card-head > div {
  display: block;
}
.admin-page .rp-admin-form .rp-admin-form-card-head .eyebrow {
  display: inline-flex;
  margin-bottom: 5px;
}
.admin-page .rp-admin-form .rp-admin-form-card-head h2 {
  margin: 0 0 4px;
  font-size: 1.05rem;
}
.admin-page .rp-admin-form .rp-admin-form-card-head p {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.45;
}

/* ======================================================================
   REELSPLAN UI REBASE - reference design master (2026-08-13)
   Visual language adapted from the supplied reference UI.
   Product identity remains ReelsPlan throughout.
   ====================================================================== */
:root {
  --rr-heading: "Poppins", sans-serif;
  --rr-body: "Open Sans", sans-serif;
  --rr-navy: #0a2230;
  --rr-navy-2: #163445;
  --rr-red: #be0000;
  --rr-red-dark: #990000;
  --rr-cream: #e0cea9;
  --rr-cream-light: #f7f0e4;
  --rr-paper: #fbfaf7;
  --rr-soft: #f4f6f5;
  --rr-teal: #146e71;
  --rr-green: #0e6969;
  --rr-text: #334a57;
  --rr-muted: #73818a;
  --rr-line: #d9e0e2;
  --rr-white: #ffffff;
  --rr-shadow: 0 18px 46px rgba(10, 34, 48, 0.1);
  --rr-shadow-soft: 0 10px 28px rgba(10, 34, 48, 0.07);
  --rr-radius: 24px;
  --rr-radius-sm: 16px;
  --navy: var(--rr-navy);
  --navy-2: var(--rr-navy-2);
  --teal: var(--rr-green);
  --teal-dark: #0a5556;
  --orange: var(--rr-red);
  --orange-dark: var(--rr-red-dark);
  --cream: var(--rr-cream-light);
  --soft: var(--rr-soft);
  --ink: var(--rr-text);
  --muted: var(--rr-muted);
  --line: var(--rr-line);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --container: 1170px;
}
html {
  scroll-padding-top: 88px;
}
body {
  font-family: var(--bodyFont);
  color: var(--rr-text);
  background: var(--rr-white);
  font-size: 15px;
  line-height: 1.62;
}
h1,
h2,
h3,
h4,
h5,
h6,
.brand-copy strong,
.button,
.main-nav,
.section-tag,
.eyebrow,
.rp-step-number,
.rp-source-counter,
.rp-status-pill,
.status-badge,
.rp-type-pill,
.rp-origin-pill,
.rp-verify-pill,
.rp-mini-badge,
.rp-confidence-pill {
  font-family: var(--rr-heading);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--rr-navy);
  letter-spacing: -0.028em;
}
p {
  color: var(--rr-text);
}
.container {
  width: min(calc(100% - 40px), 1170px);
}
.container-fluid {
  width: 100%;
  padding-left: 50px;
  padding-right: 50px;
}
.eyebrow {
  color: var(--rr-teal);
  font-size: 0.72rem;
  letter-spacing: 0.13em;
  font-weight: 800;
}
.eyebrow::before {
  width: 20px;
  height: 1px;
  background: currentColor;
}
.section-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 18px;
  border: 1px solid rgba(10, 34, 48, 0.24);
  border-radius: 999px;
  color: var(--rr-navy);
  background: rgba(255, 255, 255, 0.55);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.section-tag-dark {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.07);
}
.button {
  min-height: 34px;
  padding: 7px 22px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
  box-shadow: none;
}
.button:hover {
  transform: translateY(-1px);
}
.button-primary {
  background: var(--themeBlack);
  color: #fff;
  box-shadow: 0 10px 24px rgb(10 34 48 / 12%);
  margin: 0;
}
.rp-contact-form .button-primary {
  background: var(--themeRed);
  border: 1px solid var(--themeRed);
}

.button-primary:hover {
  background: var(--themeRed);
}
.rp-contact-form .button-primary:hover {
  background: #ffffff !important;
  color: var(--themeRed);
}
.button-secondary {
  color: var(--rr-navy);
  background: #fff;
  border-color: var(--rr-cream);
}
.button-secondary:hover {
  border-color: var(--rr-navy);
}
.button-ghost {
  color: var(--rr-navy);
  background: #fff;
  border-color: #d8e0e3;
}
.button-light {
  color: var(--rr-navy);
  background: #fff;
}
.button-outline {
  color: var(--rr-navy);
  background: transparent;
  border: 1px solid var(--rr-navy);
}
.button-outline:hover {
  color: #fff;
  background: var(--rr-navy);
}
.button-lg {
  min-height: 34px;
  padding: 8px 20px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.button-sm {
  min-height: 36px;
  padding: 8px 14px;
  font-size: 0.8rem;
}
.text-link,
.back-link {
  color: var(--rr-teal);
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  width: 100%;
  background: rgba(10, 34, 48, 0.98);
  border: 0;
  box-shadow: 0 8px 28px rgba(5, 20, 29, 0.11);
  backdrop-filter: blur(12px);
  transition:
    background 0.3s ease,
    padding 0.3s ease,
    box-shadow 0.3s ease;
}
.landing-page .site-header {
  position: fixed;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.landing-page .site-header.header-scrolled {
  background: rgba(10, 34, 48, 0.96);
  box-shadow: 0 8px 28px rgba(5, 20, 29, 0.18);
  backdrop-filter: blur(12px);
}
.nav-shell {
  gap: 28px;
}
.brand {
  gap: 10px;
}
.brand-mark {
  width: 44px;
  height: 44px;
  padding: 8px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.98);
  transform: rotate(-2deg);
}
.brand-mark span:nth-child(1) {
  background: var(--rr-red);
}
.brand-mark span:nth-child(2) {
  background: var(--rr-navy);
}
.brand-mark span:nth-child(3) {
  background: #5faeb0;
}
.brand-copy strong {
  color: #fff;
  font-size: 1.08rem;
  letter-spacing: -0.035em;
}
.brand-copy small {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.55rem;
  letter-spacing: 0.08em;
}
.main-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  /* padding: 7px 8px; */
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.82rem;
  font-weight: 600;
}
.main-nav > a:not(.header-cta),
.nav-link-button {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  font-family: var(--bodyFont);
}
.nav-link-button {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 2px 12px;
  border-radius: 999px;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  font-family: var(--bodyFont);
}
.main-nav > a:not(.header-cta):hover,
.nav-link-button:hover {
  color: var(--rr-navy);
  background: #fff;
}
.header-cta {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: 999px;
  color: var(--rr-navy);
  background: #fff;
  font: 700 0.82rem/1 var(--rr-heading);
}
.header-cta:hover {
  color: #fff;
  background: var(--rr-red);
}
.account-menu {
  text-decoration: none;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
}
.account-avatar {
  background: var(--rr-red);
  color: #fff;
}
.account-name {
  color: #fff;
}
.nav-toggle {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.nav-toggle > span:not(.sr-only) {
  background: #fff;
}

/* Flash */
.flash-stack {
  top: 88px;
}
.flash {
  border-radius: 12px;
  font-size: 0.87rem;
}

/* Reference landing */
.rr-hero {
  position: relative;
  min-height: min(880px, 100vh);
  overflow: hidden;
  color: #fff;
  background: var(--rr-navy);
}
.rr-hero-bg,
.rr-hero-bg img,
.rr-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.rr-hero-bg img {
  object-fit: cover;
  object-position: center;
}
.rr-hero-overlay {
  background: linear-gradient(
    180deg,
    rgba(7, 26, 37, 0.4) 0%,
    rgba(7, 26, 37, 0.22) 48%,
    rgba(7, 26, 37, 0.55) 100%
  );
}
.rr-hero-content {
  position: relative;
  z-index: 3;
  max-width: 900px;
  margin-inline: auto;
  padding-top: clamp(126px, 12vw, 170px);
  text-align: center;
}
.hero-tag {
  display: inline-flex;
  padding: 7px 22px;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.11);
  color: #fff;
  font: 600 0.95rem/1.3 var(--rr-body);
}
.rr-hero h1 {
  max-width: 850px;
  margin: 22px auto 20px;
  color: #fff;
  font-size: clamp(3.1rem, 5.5vw, 5.15rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
}
.rr-hero h1 strong {
  display: block;
  color: #fff;
  font-weight: 800;
}
.rr-hero-content > p {
  max-width: 720px;
  margin: 0 auto 28px;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(1rem, 1.4vw, 1.16rem);
  line-height: 1.65;
}
.rr-hero-form {
  display: grid;
  max-width: 720px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
  margin: 0 auto;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.2);
}
.rr-hero-input {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  padding-inline: 10px;
}
.rr-hero-input > span {
  color: var(--rr-red);
  font-size: 1.1rem;
}
.rr-hero-input input {
  min-height: 46px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--rr-navy);
}
.rr-hero-form .button {
  min-width: 175px;
  border-radius: 8px;
}
.rr-supported {
  display: block;
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.75rem;
}
.rr-hero-mobile {
  position: absolute;
  z-index: 4;
  right: clamp(48px, 10vw, 165px);
  bottom: -34px;
  width: 238px;
  filter: drop-shadow(0 22px 24px rgba(0, 0, 0, 0.28));
}
.rr-hero-mobile > img {
  width: 100%;
}
.rr-bubble {
  position: absolute;
  min-width: 145px;
  padding: 12px 14px;
  border-radius: 15px;
  color: var(--rr-navy);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.16);
}
.rr-bubble span {
  display: block;
  margin-bottom: 4px;
  color: var(--rr-red);
  font: 700 0.65rem/1.2 var(--rr-heading);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.rr-bubble strong {
  display: block;
  font: 700 0.78rem/1.3 var(--rr-heading);
}
.rr-bubble small {
  display: block;
  margin-top: 4px;
  color: #64727a;
  font-size: 0.62rem;
}
.rr-bubble-plan {
  left: -95px;
  bottom: 58px;
}
.rr-bubble-analysis {
  left: -118px;
  bottom: 185px;
}
.rr-bubble-build {
  right: -92px;
  bottom: 205px;
  width: 170px;
}

.rr-section {
  padding: clamp(76px, 8vw, 120px) 0;
}
.rr-section-title {
  max-width: 780px;
  margin: 0 auto 48px;
}
.rr-section-title.centered {
  text-align: center;
}
.rr-section-title h2 {
  margin: 18px 0 12px;
  font-size: clamp(2.15rem, 4vw, 3.55rem);
  line-height: 1.16;
}
.rr-section-title h2 strong {
  color: var(--rr-red);
}
.rr-section-title p {
  max-width: 650px;
  margin-inline: auto;
  color: var(--rr-muted);
  font-size: 0.98rem;
}
.rr-route {
  overflow: hidden;
  background: #fff;
}
.rr-flight-path {
  position: relative;
  min-height: 360px;
  overflow: hidden;
}
.rr-flight-line {
  position: absolute;
  z-index: 0;
  top: 10px;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.8;
}
.rr-route-steps {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  padding-top: 85px;
}
.rr-route-steps article {
  min-height: 190px;
  padding: 22px 18px;
  border: 1px solid rgba(224, 206, 169, 0.75);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: var(--rr-shadow-soft);
}
.rr-route-steps article span {
  display: inline-flex;
  margin-bottom: 30px;
  color: var(--rr-red);
  font: 800 0.78rem/1 var(--rr-heading);
}
.rr-route-steps h3 {
  margin-bottom: 8px;
  font-size: 1rem;
}
.rr-route-steps p {
  margin: 0;
  color: var(--rr-muted);
  font-size: 0.78rem;
  line-height: 1.55;
}
.rr-plane {
  position: absolute;
  z-index: -1;
  top: -25px;
  left: 50%;
  width: 250px;
  transform: translateX(-50%);
}

.rr-featured {
  background: var(--rr-paper);
}
.rr-reel-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.rr-reel-card {
  overflow: hidden;
  border: 1px solid #e1e5e5;
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--rr-shadow-soft);
}
.rr-reel-image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
}
.rr-reel-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}
.rr-reel-card:hover .rr-reel-image img {
  transform: scale(1.035);
}
.rr-reel-image span {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(10, 34, 48, 0.8);
  font-size: 0.65rem;
  font-weight: 700;
}
.rr-reel-copy {
  padding: 18px;
}
.rr-reel-copy small {
  color: var(--rr-teal);
  font-weight: 700;
}
.rr-reel-copy h3 {
  margin: 4px 0 14px;
  font-size: 1.1rem;
}
.rr-reel-copy a {
  color: var(--rr-red);
  font: 700 0.82rem/1.2 var(--rr-heading);
}

.rr-platform {
  background: #fff;
}
.rr-platform-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.rr-platform-card {
  display: grid;
  min-height: 220px;
  grid-template-columns: 180px minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid #e1e4e4;
  border-radius: 24px;
  background: linear-gradient(135deg, #fff 0%, #faf9f6 100%);
}
.rr-platform-card img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}
.rr-platform-card div {
  padding: 28px;
}
.rr-platform-card h3 {
  margin-bottom: 8px;
  font-size: 1.2rem;
}
.rr-platform-card p {
  margin: 0;
  color: var(--rr-muted);
  font-size: 0.86rem;
}

.rr-india {
  position: relative;
  overflow: hidden;
  padding: 105px 0;
  background: var(--rr-navy) var(--india-bg) no-repeat center/cover;
}
.rr-india::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(10, 34, 48, 0.76);
}
.rr-india .container {
  position: relative;
  z-index: 1;
}
.rr-india .rr-section-title h2,
.rr-india .rr-section-title p {
  color: #fff;
}
.rr-india .section-tag {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.09);
}
.rr-india .rr-section-title h2 strong {
  color: #fff;
}
.rr-india-track {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.rr-india-card {
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.94);
  transform: rotate(-1.2deg);
}
.rr-india-card:nth-child(even) {
  transform: rotate(1.2deg);
}
.rr-india-card img {
  width: 100%;
  aspect-ratio: 1/1.05;
  object-fit: cover;
  border-radius: 14px;
}
.rr-india-card h3 {
  margin: 14px 0 5px;
  font-size: 1rem;
}
.rr-india-card p {
  margin: 0;
  color: var(--rr-muted);
  font-size: 0.74rem;
}

.rr-workspace {
  background: var(--rr-paper);
}
.rr-workspace-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  align-items: center;
  gap: clamp(45px, 7vw, 95px);
}
.rr-workspace-copy h2 {
  margin: 18px 0 18px;
  font-size: clamp(2.25rem, 4vw, 3.6rem);
}
.rr-workspace-copy h2 strong {
  color: var(--rr-red);
}
.rr-workspace-copy > p {
  color: var(--rr-muted);
}
.rr-check-list {
  display: grid;
  gap: 10px;
  margin: 28px 0;
  padding: 0;
  list-style: none;
}
.rr-check-list li {
  position: relative;
  padding-left: 28px;
  color: var(--rr-navy);
  font-weight: 600;
}
.rr-check-list li::before {
  position: absolute;
  left: 0;
  top: 2px;
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  content: "✓";
  border-radius: 50%;
  color: #fff;
  background: var(--rr-teal);
  font-size: 0.65rem;
}
.rr-workspace-visual {
  position: relative;
  min-height: 540px;
}
.rr-workspace-phone {
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  width: 235px;
  filter: drop-shadow(0 24px 28px rgba(10, 34, 48, 0.18));
}
.rr-workspace-board {
  position: absolute;
  right: 0;
  top: 30px;
  width: calc(100% - 145px);
  min-height: 430px;
  padding: 24px;
  border: 1px solid #dfe5e6;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--rr-shadow);
}
.rr-workspace-tabs {
  display: flex;
  gap: 8px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e7ebec;
}
.rr-workspace-tabs span {
  padding: 7px 10px;
  border-radius: 7px;
  color: var(--rr-muted);
  font: 600 0.7rem/1 var(--rr-heading);
}
.rr-workspace-tabs .active {
  color: #fff;
  background: var(--rr-navy);
}
.rr-workspace-stat {
  margin: 20px 0;
  padding: 18px;
  border-radius: 14px;
  background: var(--rr-cream-light);
}
.rr-workspace-stat small {
  display: block;
  color: var(--rr-red);
  font-weight: 700;
}
.rr-workspace-stat strong {
  display: block;
  margin-top: 4px;
  color: var(--rr-navy);
  font-family: var(--rr-heading);
}
.rr-workspace-day {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid #edf0f1;
  font-size: 0.8rem;
}
.rr-workspace-day b {
  color: var(--rr-red);
  font-family: var(--rr-heading);
}

.rr-dna {
  padding: 105px 0;
  color: #fff;
  background: var(--rr-navy);
}
.rr-dna-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
}
.rr-dna h2 {
  margin: 18px 0;
  color: #fff;
  font-size: clamp(2.3rem, 4vw, 3.6rem);
}
.rr-dna h2 strong {
  color: #fff;
}
.rr-dna p {
  color: rgba(255, 255, 255, 0.72);
}
.rr-dna-stats {
  display: flex;
  gap: 36px;
  margin-top: 32px;
}
.rr-dna-stats div {
  display: flex;
  flex-direction: column;
}
.rr-dna-stats strong {
  color: #fff;
  font: 700 1.7rem/1 var(--rr-heading);
}
.rr-dna-stats span {
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.72rem;
}
.rr-dna-poster {
  position: relative;
  min-height: 430px;
  display: grid;
  place-items: center;
}
.rr-dna-poster img {
  width: min(310px, 75%);
  filter: drop-shadow(0 24px 30px rgba(0, 0, 0, 0.3));
}
.rr-dna-tag {
  position: absolute;
  padding: 8px 14px;
  border-radius: 999px;
  color: var(--rr-navy);
  background: #fff;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.16);
  font: 600 0.72rem/1 var(--rr-heading);
}
.rr-dna-tag.tag-1 {
  left: 5%;
  top: 16%;
}
.rr-dna-tag.tag-2 {
  right: 5%;
  top: 28%;
}
.rr-dna-tag.tag-3 {
  left: 0;
  bottom: 20%;
}
.rr-dna-tag.tag-4 {
  right: 8%;
  bottom: 12%;
}

.rr-final-cta {
  background: #fff;
}
.rr-final-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: center;
  min-height: 380px;
  overflow: hidden;
  border-radius: 30px;
  background: var(--rr-cream-light);
}
.rr-final-card > div {
  padding: 55px;
}
.rr-final-card h2 {
  margin: 18px 0 12px;
  font-size: clamp(2rem, 3.5vw, 3.15rem);
}
.rr-final-card h2 strong {
  color: var(--rr-red);
}
.rr-final-card p {
  color: var(--rr-muted);
}
.rr-final-card > img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
}
.rr-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

/* Footer */
.site-footer {
  padding-top: 72px;
  color: rgba(255, 255, 255, 0.75);
  background: var(--rr-navy);
}
.footer-grid {
  grid-template-columns: 1.15fr 0.65fr 1.1fr;
  gap: 60px;
}
.site-footer p {
  color: rgba(255, 255, 255, 0.62);
}
.footer-column > strong,
.footer-provider h3 {
  color: #fff;
  font-family: var(--rr-heading);
}
.footer-links a {
  color: rgba(255, 255, 255, 0.68);
}
.footer-links a:hover {
  color: #fff;
}
.footer-provider {
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.05);
}
.footer-provider h3 {
  margin: 15px 0 4px;
  font-size: 1.3rem;
}
.footer-provider p {
  margin: 8px 0 18px;
}
.footer-bottom {
  color: rgba(255, 255, 255, 0.46);
}

/* Shared internal pages */
.auth-page,
.admin-page,
.rp-planner-page,
.rp-trip-page,
.rp-trips-workspace {
  background: var(--rr-paper);
}
.auth-section {
  min-height: calc(100vh - 76px);
  background: linear-gradient(120deg, #f8f4ea 0%, #f8faf8 58%, #eef3f1 100%);
}
.auth-section::before,
.rp-planner-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image: radial-gradient(
    rgba(10, 34, 48, 0.18) 0.7px,
    transparent 0.7px
  );
  background-size: 26px 26px;
}
.auth-section {
  position: relative;
  overflow: hidden;
}
.auth-shell {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 470px);
  gap: 75px;
}
.auth-product-panel h1 {
  font-size: clamp(2.55rem, 4.8vw, 4.15rem);
}
.auth-product-panel h1 strong {
  color: var(--rr-red);
}
.auth-mini-plan,
.auth-benefits {
  border-color: rgba(224, 206, 169, 0.8);
  background: rgba(255, 255, 255, 0.78);
}
.signSec .auth-benefits {
  background: transparent;
}
.auth-card {
  border: 1px solid #e0e4e4;
  border-radius: 22px;
  box-shadow: var(--rr-shadow);
}
.auth-card-heading h2 {
  font-size: 1.8rem;
}
.auth-kicker {
  color: var(--rr-red);
  font-family: var(--rr-heading);
}
.auth-divider::before,
.auth-divider::after {
  background: #dce2e3;
}
.remember-control {
  color: var(--rr-navy);
}
.remember-control span {
  font-weight: 500;
  font-family: var(--bodyFont) !important;
  font-size: 14px;
}
.remember-box {
  border-color: #b8c4c8;
  border-radius: 4px;
}
.remember-control input:checked + .remember-box {
  background: var(--rr-red);
  border-color: var(--rr-red);
}
.password-toggle {
  color: var(--rr-teal);
  background: #f0f5f4;
}
.forgotPassword.auth-helper-link {
  color: var(--themeBlack);
  font-family: var(--bodyFont) !important;
  font-weight: 500;
  font-size: 14px;
  text-decoration: none !important;
}
.forgotPassword.auth-helper-link:hover {
  color: var(--themeRed);
  transition: 0.5s;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  border: 1px solid #cfd8da;
  border-radius: 9px;
  color: var(--rr-navy);
  background: #fff;
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  border-color: #efe7d8;
  box-shadow: 0 0 0 3px rgb(238 230 215 / 25%);
}
.rp-contact-form input:not([type="checkbox"]):not([type="radio"]),
.rp-contact-form select,
.rp-contact-form textarea {
  background: #ffffff1c !important;
  color: #d7d7d7;
}
.rp-source-row .reelInput input {
  border: 1px solid #f3e1bd;
  border-radius: 9px;
  color: var(--rr-navy);
  background: #fbefd8;
  height: 38px;
  min-height: 38px;
  padding-left: 15px;
  color: var(--themeBlack);
  font-weight: 400;
}
.rp-source-row .reelInput input:focus-within {
  background: var(--white);
}
.rp-source-row .reelInput input::placeholder {
  color: #dbbf86;
}
.innerPage .rp-source-row-main:focus-within {
  border-color: none !important;
  background: #fffaf0;
  box-shadow: none;
}
/* Planner */
.rp-planner-page {
  position: relative;
  overflow: visible;
  padding-block: 48px 90px;
}
.rp-planner-shell {
  position: relative;
  z-index: 1;
}
.rp-planner-header {
  margin-bottom: 28px;
}
.rp-planner-header h1 {
  max-width: 850px;
  font-size: clamp(2.35rem, 4vw, 3.6rem);
}
.rp-planner-mini-proof {
  border: 1px solid var(--rr-cream);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.88);
}
.afterLogin .rp-planner-mini-proof {
  background: transparent;
  padding: 0;
}
b.shortIcon {
  background: #e6f4f1;
  width: 50px;
  display: inline-grid;
  aspect-ratio: 1;
  place-content: center;
  border-radius: 8px;
  margin-bottom: 0px;
  color: #0d9488;
  font-size: 23px;
}
.keyHighLightsWrapper {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
}
.keyHighLights {
  transform: translateY(-40px);
}
.keyHighItem {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px;
  background: #fff;
  border-radius: 8px;
  box-shadow: var(--rr-shadow-soft);
}
.keyContent strong {
  display: block;
}
.afterLogin .hero-title {
  color: var(--white);
  font-size: 44px;
  margin-bottom: 10px;
  margin-top: 20px;
}
.afterLogin p {
  color: #ddd;
  font-size: 14px;
}
.rp-planner-grid {
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 22px;
}
.rp-form-card,
.rp-aside-card {
  border-color: #dde3e4;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--rr-shadow-soft);
}
.rp-form-card {
  padding: 20px;
  border: none;
}
.rp-form-card-head h2 {
  font-size: 20px;
  margin-top: 0;
}
.rp-step-number {
  border-radius: 8px;
  background: #0d9488;
  color: var(--white);
  font-weight: 500;
  font-size: 20px;
}
.rp-source-counter {
  color: var(--rr-red);
  background: #fff3f3;
  border-color: #f0cece;
}
.rp-platform-strip span {
  color: #787a7b;
  background: #ededed;
  border-color: #e3e3e3;
  font-weight: 600;
  padding: 5px 10px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.rp-source-row {
  border-radius: 12px;
  border-color: #dce2e3;
  background: #fcfdfd;
}
.rp-source-index {
  color: #b99650;
  background: #fffaf0;
  font-weight: 400;
  font-size: 20px;
  width: 38px;
  height: 38px;
  display: grid;
  place-content: center;
  background: #f7eedd;
  border-radius: 5px;
  line-height: 1;
}
.rp-add-source {
  color: #16810b;
  border-color: #e3c8c8;
  background: #fff;
  font-weight: 500;
  padding: 5px 5px;
  padding-right: 15px;
  border-radius: 44px;
}
.rp-add-source:hover {
  background: #effff4;
  transition: 0.5s;
}
.rp-add-source:hover span {
  background: #16810b;
  color: #fff;
  transition: 0.5s;
}
.textButtonwrapper {
  text-align: right;
}
.textButtonwrapper .rp-add-source {
  margin-top: 10px;
}
.rp-inline-note {
  border-color: #c5c5c5;
  background: #f7f7f7;
  color: #837e7e;
}
.rp-inline-note b {
  font-weight: 500;
}
.rp-choice-group legend,
.rp-field > span {
  color: var(--themeBlack);
  font-weight: 400;
  margin: 0;
  font-size: 0.86rem;
}
.rp-segmented label > span,
.rp-check-chip > span {
  border-radius: 10px;
}
.rp-segmented input:checked + span,
.rp-check-chip input:checked + span {
  color: var(--white);
  border-color: var(--themeBlack);
  background: var(--themeBlack);
  box-shadow: none;
}
.rp-segmented input:checked + span b {
  color: #fff;
}
.rp-planner-submit {
  border-radius: 18px;
  background: var(--white);
}
.rp-aside-dark {
  background: var(--rr-navy);
}
.rp-aside-dark .eyebrow {
  color: #b9dedd;
}
.rp-key-ai {
  background: var(--rr-red);
}
.rp-processing-overlay {
  background: rgba(5, 20, 29, 0.76);
  backdrop-filter: blur(8px);
}
.rp-processing-card {
  border-radius: 24px;
  border-color: rgba(224, 206, 169, 0.7);
}
.rp-processing-stages li.active i,
.rp-processing-line span {
  background: var(--rr-red);
}

/* My Trips */
.rp-dashboard-hero {
  padding: 38px 0;
  background: url(../reference/images/mountains-hiking-adventure-tourism-travel.webp);
  margin-top: 74px;
}
.rp-dashboard-hero h1 {
  font-size: clamp(2rem, 3.6vw, 3.15rem);
}
.rp-trips-workspace {
  padding-block: 55px 85px;
}
.rp-trips-toolbar h2 {
  font-size: 1.85rem;
}
.rp-view-toggle {
  border-color: #d8dfe1;
  background: #fff;
}
.rp-view-toggle a.active {
  color: #fff;
  background: var(--rr-navy);
}
.rp-trip-filters {
  border: none;
  padding: 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, #eee2cc 0%, #ffedd0 100%);
  box-shadow: var(--rr-shadow-soft);
}
.rp-trip-filters label > span {
  font-size: 0.86rem;
  color: #697780;
  font-weight: 400;
}
.rp-trip-filters label {
  gap: 0px;
}
.rp-trip-filters input:not([type="checkbox"]):not([type="radio"]),
.rp-trip-filters select,
.rp-trip-filters textarea {
  min-height: 36px;
  padding: 5px 13px;
}
.rp-saved-trip-card {
  border-color: #dce2e3;
  border-radius: 19px;
  box-shadow: var(--rr-shadow-soft);
}
.rp-saved-trip-cover {
  min-height: 210px;
}
.rp-saved-trip-cover::after {
  background: linear-gradient(to top, rgba(10, 34, 48, 0.6), transparent 60%);
}
.rp-saved-trip-heading h3 {
  font-size: 1.04rem;
}
.rp-saved-trip-heading small {
  color: var(--rr-red);
  font-weight: 500;
}
.status-completed {
  color: #e0cea9;
  background: #817e7957;
  border: 1px solid #c5a46ed9;
  font-weight: 500;
}
.status-processing {
  color: #85620d;
  background: #fff4d9;
}
.status-failed {
  color: #a03a3a;
  background: #fde8e8;
  font-weight: 500;
  width: 100%;
  justify-content: center;
}
.noProviders {
  background: #eee;
  padding: 15px;
  border-radius: 18px;
  display: inline-grid;
  place-content: center;
  width: 100%;
  min-height: 140px;
}
.noProviders h2 {
  font-size: 20px;
  text-align: center;
  color: #838383;
  margin-bottom: 5px;
}
.noProviders p {
  text-align: center;
  color: #838383;
  font-size: 14px;
}

/* Trip result */
.rp-trip-page {
  padding-bottom: 90px;
}
.rp-trip-toolbar {
  top: 76px;
  background: rgba(251, 250, 247, 0.95);
  border-color: #e0e5e6;
}
.rp-trip-hero {
  min-height: 490px;
  border-radius: 0 0 34px 34px;
  background: var(--rr-navy);
}
.rp-trip-hero-shade {
  background: linear-gradient(
    90deg,
    rgba(7, 25, 36, 0.87) 0%,
    rgba(7, 25, 36, 0.45) 55%,
    rgba(7, 25, 36, 0.2) 100%
  );
}
.rp-trip-kicker-row .eyebrow {
  color: #cfe3df;
}
.rp-confidence-pill {
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.12);
}
.rp-trip-hero-copy h1 {
  color: #fff;
  font-size: 70px;
  font-weight: 400;
  font-family: var(--headingFont);
  text-align: left;
}
.rp-trip-hero-copy p {
  color: rgba(255, 255, 255, 0.78);
}
.rp-trip-glance-card {
  border-radius: 18px;
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.95);
}
.rp-trip-hero-content .rp-trip-glance-card {
  border: 1.5px solid transparent;
  background:
    linear-gradient(#00000066, #00000066) padding-box,
    linear-gradient(
        52.77deg,
        rgba(255, 255, 255, 0.1) 4%,
        rgba(255, 255, 255, 0.7) 100%
      )
      border-box;
  border-radius: 25px;
  padding: 9px 9px 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transform-origin: center center;
  will-change: transform, opacity;
}
.rp-trip-hero-content .rp-trip-glance-card .sectionTag {
  width: 100%;
  background: #ffecc9;
  /* font-family: Roboto Slab; */
  text-transform: none;
  font-weight: 400;
  font-size: 16px;
}
.rp-trip-hero-content .rp-trip-glance-card .rp-glance-grid div {
  background: #f4f6f521;
}
.rp-trip-hero-content .rp-trip-glance-card .rp-glance-grid div small {
  color: #dddddd;
  font-size: 12px;
}
.rp-trip-hero-content .rp-trip-glance-card .rp-glance-grid div strong {
  font-weight: 500;
  color: #fff;
  font-size: 15px;
}
.rp-trip-glance-card .eyebrow {
  color: var(--rr-teal);
}
.rp-glance-grid div {
  background: #f4f6f5;
}
.rp-glance-grid small {
  color: var(--rr-muted);
}
.rp-glance-grid strong {
  color: var(--themeBlack);
  font-weight: 500;
}
.rp-glance-budget {
  color: var(--rr-red);
  background: var(--rr-cream-light);
}
.rp-glance-budget small {
  color: var(--rr-muted);
}
.rp-glance-budget strong {
  color: var(--rr-navy);
}
.rp-glance-budget span {
  color: var(--rr-red);
}
.rp-day-jump {
  border: 1px solid #dfe4e5;
  border-radius: 13px;
  background: #fff;
  box-shadow: var(--rr-shadow-soft);
}
.travelDays .rp-day-jump {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  margin: 0;
}
.rp-day-jump a {
  border-radius: 7px;
}
.rp-day-jump a:hover {
  color: #fff;
  background: var(--themeBlack);
}
.rp-day-card,
.rp-sidebar-card,
.rp-travel-search-card,
.rp-map-compact-section,
.rp-provider-section,
.rp-contact-us,
.rp-trip-ads {
  border-color: #dde3e4;
  border-radius: 19px;
  box-shadow: var(--rr-shadow-soft);
}
.rp-day-head {
  border-bottom-color: #edf0f1;
}
.rp-day-badge {
  color: #fff;
  background: #0d9488;
  border-radius: 8px;
}
.rp-day-title h2 {
  font-size: 1.45rem;
}
.rp-day-photo {
  border-radius: 14px;
}
.rp-timeline-rail::before {
  background: #d8e1e2;
}
.rp-timeline-rail::after {
  background: var(--rr-red);
}
.rp-timeline-time {
  color: var(--rr-red);
}
.rp-origin-pill.rp-origin-reel {
  color: #0c625e;
  background: #e5f4f2;
}
.rp-origin-pill.rp-origin-ai {
  color: #8e2626;
  background: #fbe9e9;
}
.rp-practical-note {
  border-left: 3px solid var(--rr-cream);
  background: #faf7f0;
}
.rp-sidebar-card h3 {
  font-size: 1rem;
}
.itinerarySidebar .rp-sidebar-card h3 {
  text-align: center;
  font-size: 20px;
}
.itinerarySidebar .sectionTag {
  display: table;
  margin: 0 auto 10px;
  background: #efe7d8;
}
.rp-travel-essentials summary {
  color: var(--rr-navy);
}
.rp-travel-essentials[open] {
  border-color: var(--rr-cream);
}
.rp-booking-search,
.rp-map-compact-layout {
  background: #fff;
}
.rp-booking-search {
  padding: 20px;
  border-radius: 18px;
}
.rp-map-frame iframe {
  border-radius: 14px;
}
.rp-provider-card {
  border-radius: 13px;
  border-color: #dde3e4;
}
.rp-contact-us {
  background: var(--rr-navy);
}
.rp-contact-us h2,
.rp-contact-us h3,
.rp-contact-us strong {
  color: #fff;
}
.rp-contact-us p,
.rp-contact-us .rp-contact-trust {
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
}
.rp-contact-us input,
.rp-contact-us select,
.rp-contact-us textarea {
  background: #fff;
}
.rp-trip-ad-banner {
  border-radius: 14px;
}

/* Admin: compact, professional, same system */
.admin-page {
  background: #f5f6f5;
}
.rp-admin-shell {
  padding-block: 34px 70px;
}
.rp-page-heading.rp-admin-heading,
.rp-page-heading.rp-admin-heading-compact {
  margin-bottom: 18px;
}
.rp-admin-heading h1,
.rp-admin-heading-compact h1 {
  font-size: clamp(1.75rem, 2.5vw, 2.35rem) !important;
  line-height: 1.12;
}
.rp-admin-heading p,
.rp-admin-heading-compact p {
  font-size: 0.82rem;
}
.rp-admin-nav {
  gap: 4px;
  margin-bottom: 18px;
  padding: 5px;
  border: 1px solid #dce2e3;
  border-radius: 12px;
  background: #fff;
}
.rp-admin-nav a {
  padding: 8px 13px;
  border-radius: 8px;
  font: 600 0.75rem/1 var(--rr-heading);
}
.rp-admin-nav a.active {
  color: #fff;
  background: var(--rr-navy);
}
.rp-admin-kpi-grid {
  gap: 10px;
}
.rp-admin-kpi-grid article {
  min-height: 112px;
  padding: 16px;
  border: 1px solid #dde3e4;
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}
.rp-admin-kpi-grid small {
  font-size: 0.64rem;
  letter-spacing: 0.06em;
}
.rp-admin-kpi-grid strong {
  font-size: 1.65rem !important;
}
.rp-admin-kpi-grid span {
  font-size: 0.7rem;
}
.rp-admin-kpi-grid .rp-kpi-highlight {
  border-color: #bdd9d8;
  background: #f5fbfa;
}
.rp-admin-filter-card {
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(180deg, #eee2cc 0%, #ffedd0 100%);
  box-shadow: none;
  border: none;
}
.rp-admin-filter-grid {
  gap: 9px;
}
.rp-admin-filter-field span {
  margin-bottom: 0;
  color: #61717a;
  font-size: 14px;
  font-weight: 400;
  display: inline-block;
  line-height: 1;
  margin-bottom: 4px;
}
.resetBtn {
  padding: 7px 25px !important;
  font-weight: 500 !important;
  background: #eddada;
  border-radius: 8px;
  color: #9f3131 !important;
  transition: 0.5s;
}
.resetBtn:hover {
  transition: 0.5s;
  background: #9f3131;
  color: var(--white) !important;
}
.rp-admin-filter-field input,
.rp-admin-filter-field select {
  min-height: 40px;
  padding: 8px 10px;
  font-size: 0.78rem;
}
.rp-admin-filter-actions {
  gap: 7px;
}
.rp-admin-panel,
.rp-admin-table-wrap,
.rp-admin-banner-card,
.rp-form-card {
  border-color: #dce2e3;
}
.rp-admin-panel {
  border-radius: 14px;
  box-shadow: none;
}
.rp-admin-panel-head h2 {
  font-size: 0.98rem;
}
.rp-admin-table {
  font-size: 0.75rem;
}
.rp-admin-table th {
  padding: 10px 12px;
  color: #61717a;
  background: #fafbfa;
  font-size: 0.61rem;
  letter-spacing: 0.07em;
}
.rp-admin-table td {
  padding: 11px 12px;
}
.rp-admin-row-actions {
  gap: 8px;
  font-size: 0.72rem;
}
.rp-admin-row-actions a,
.rp-admin-row-actions button {
  color: var(--rr-teal);
  font-weight: 700;
}
.rp-admin-form .rp-form-card {
  border-radius: 14px;
  box-shadow: none;
}
.rp-admin-form-card-head h2 {
  font-size: 1.05rem;
}
.rp-admin-banner-grid {
  gap: 14px;
}
.rp-admin-banner-card {
  border-radius: 14px;
  box-shadow: none;
}
.rp-admin-banner-title h2 {
  font-size: 1rem;
}
.rp-banner-card-metrics b {
  font-size: 1.05rem;
}
.rp-admin-generated-day {
  border-radius: 13px;
}
.rp-admin-json-preview {
  font-size: 0.73rem;
}

/* Errors */
.error-page {
  background: linear-gradient(135deg, #f8f3e8, #eef4f2);
}
.error-card {
  border-color: #dce2e3;
  border-radius: 22px;
  box-shadow: var(--rr-shadow);
}
.error-card h1 {
  font-size: clamp(2rem, 4vw, 3rem);
}

/* Reveal motion */
[data-reveal] {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.65s ease,
    transform 0.65s ease;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Responsive */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .rp-dashboard-hero {
    padding: 45px 0;
    margin-top: 70px;
  }
}
@media (max-width: 1199px) {
  .container-fluid {
    padding-inline: 22px;
  }
  .main-nav {
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    width: min(390px, 84vw);
    min-height: 100vh;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    padding: 94px 18px 24px;
    border-radius: 0;
    background: var(--rr-cream);
    box-shadow: 20px 0 45px rgba(0, 0, 0, 0.18);
    transform: translateX(-105%);
    transition: transform 0.32s ease;
  }
  .main-nav.open {
    transform: translateX(0);
  }
  .main-nav > a:not(.header-cta),
  .nav-link-button {
    justify-content: flex-start;
    min-height: 42px;
    padding: 10px 13px;
    border-radius: 7px;
    color: var(--rr-navy);
  }
  .main-nav > a:not(.header-cta):hover,
  .nav-link-button:hover {
    color: #fff;
    background: var(--rr-navy);
  }
  .header-cta {
    justify-content: center;
    margin-top: 5px;
    color: #fff;
    background: var(--rr-red);
    border-radius: 7px;
  }
  .account-menu {
    color: var(--rr-navy);
    background: rgba(255, 255, 255, 0.5);
    border-color: rgba(10, 34, 48, 0.12);
  }
  .account-name {
    color: var(--white);
  }
  .nav-form {
    width: 100%;
  }
  .nav-link-button {
    width: 100%;
  }
  .nav-toggle {
    display: block !important;
    z-index: 90;
  }
  .rr-hero-mobile {
    right: 50px;
  }
  .rr-route-steps {
    gap: 10px;
  }
  .rr-route-steps article {
    padding: 18px 14px;
  }
  .rr-platform-card {
    grid-template-columns: 150px 1fr;
  }
  .rr-india-track {
    grid-template-columns: repeat(3, 1fr);
  }
  .rp-planner-grid {
    grid-template-columns: minmax(0, 1fr) 270px;
  }
}
@media (max-width: 991px) {
  .rr-hero {
    min-height: 840px;
  }
  .rr-hero-content {
    padding-top: 118px;
  }
  .rr-hero-mobile {
    right: 50%;
    bottom: -60px;
    width: 210px;
    transform: translateX(50%);
  }
  .rr-bubble-analysis {
    left: -130px;
    bottom: 155px;
  }
  .rr-bubble-plan {
    left: -115px;
    bottom: 50px;
  }
  .rr-bubble-build {
    right: -125px;
    bottom: 160px;
  }
  .rr-route-steps {
    grid-template-columns: repeat(2, 1fr);
    padding-top: 70px;
  }
  .rr-route-steps article:last-child {
    grid-column: 1/-1;
    max-width: 50%;
    justify-self: center;
  }
  .rr-flight-path {
    min-height: 590px;
  }
  .rr-reel-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .rr-platform-grid {
    grid-template-columns: 1fr;
  }
  .rr-india-track {
    grid-template-columns: repeat(2, 1fr);
  }
  .rr-workspace-grid,
  .rr-dna-grid {
    grid-template-columns: 1fr;
  }
  .rr-workspace-copy {
    max-width: 700px;
  }
  .rr-workspace-visual {
    max-width: 700px;
    width: 100%;
    margin-inline: auto;
  }
  .rr-dna-poster {
    min-height: 380px;
  }
  .rr-final-card {
    grid-template-columns: 1fr 280px;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-provider {
    grid-column: 1/-1;
  }
  .auth-shell {
    grid-template-columns: 1fr;
    max-width: 620px;
  }
  .auth-product-panel {
    display: none;
  }
  .rp-planner-grid {
    grid-template-columns: 1fr;
  }
  .rp-planner-aside {
    display: grid;
    grid-template-columns: 100%;
    gap: 16px;
  }
  .rp-planner-aside > *:last-child {
    grid-column: 1/-1;
  }
}
@media (max-width: 767px) {
  .container {
    width: 100% !important;
  }
  .container-fluid {
    padding-inline: 14px;
  }
  .nav-shell {
    min-height: 66px;
  }
  .brand-mark {
    width: 39px;
    height: 39px;
    border-radius: 10px;
  }
  .brand-copy strong {
    font-size: 0.98rem;
  }
  .brand-copy small {
    font-size: 0.48rem;
  }
  .rr-hero {
    min-height: 850px;
  }
  .rr-hero-bg img {
    object-position: center top;
  }
  .rr-hero-content {
    padding-top: 105px;
  }
  .hero-tag {
    padding: 6px 14px;
    font-size: 0.75rem;
  }
  .rr-hero h1 {
    margin-top: 16px;
    font-size: clamp(2.55rem, 12vw, 3.65rem);
  }
  .rr-hero-content > p {
    font-size: 0.9rem;
  }
  .rr-hero-form {
    grid-template-columns: 1fr;
    border-radius: 12px;
  }
  .rr-hero-form .button {
    width: 100%;
  }
  .rr-hero-input {
    min-height: 46px;
  }
  .rr-hero-mobile {
    bottom: -30px;
    width: 185px;
  }
  .rr-bubble {
    min-width: 0;
    width: 142px;
    padding: 9px 10px;
  }
  .rr-bubble-analysis {
    left: -80px;
    bottom: 145px;
  }
  .rr-bubble-plan {
    left: -75px;
    bottom: 38px;
  }
  .rr-bubble-build {
    right: -70px;
    bottom: 150px;
    width: 132px;
  }
  .rr-section {
    padding: 72px 0;
  }
  .rr-section-title {
    margin-bottom: 34px;
  }
  .rr-section-title h2 {
    font-size: clamp(1.85rem, 8vw, 2.5rem);
  }
  .rr-route-steps {
    grid-template-columns: 1fr;
    padding-top: 30px;
  }
  .rr-route-steps article,
  .rr-route-steps article:last-child {
    max-width: none;
    grid-column: auto;
    min-height: 0;
  }
  .rr-route-steps article span {
    margin-bottom: 14px;
  }
  .rr-flight-path {
    min-height: auto;
  }
  .rr-flight-line,
  .rr-plane {
    display: none;
  }
  .rr-reel-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .rr-reel-copy {
    padding: 13px;
  }
  .rr-reel-copy h3 {
    font-size: 0.9rem;
  }
  .rr-reel-copy a {
    font-size: 0.7rem;
  }
  .rr-platform-card {
    grid-template-columns: 105px 1fr;
    min-height: 160px;
    border-radius: 17px;
  }
  .rr-platform-card img {
    min-height: 160px;
  }
  .rr-platform-card div {
    padding: 18px;
  }
  .rr-platform-card h3 {
    font-size: 1rem;
  }
  .rr-platform-card p {
    font-size: 0.76rem;
  }
  .rr-india {
    padding: 75px 0;
  }
  .rr-india-track {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .rr-india-card {
    padding: 10px;
  }
  .rr-india-card h3 {
    font-size: 0.86rem;
  }
  .rr-india-card p {
    font-size: 0.68rem;
  }
  .rr-workspace-visual {
    min-height: 420px;
  }
  .rr-workspace-phone {
    width: 165px;
  }
  .rr-workspace-board {
    width: calc(100% - 90px);
    min-height: 350px;
    padding: 17px;
  }
  .rr-workspace-day {
    grid-template-columns: 55px 1fr;
    font-size: 0.7rem;
  }
  .rr-dna {
    padding: 75px 0;
  }
  .rr-dna-stats {
    gap: 20px;
  }
  .rr-dna-poster {
    min-height: 320px;
  }
  .rr-final-card {
    grid-template-columns: 1fr;
    border-radius: 22px;
  }
  .rr-final-card > div {
    padding: 30px 24px;
  }
  .rr-final-card > img {
    min-height: 210px;
    max-height: 260px;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .footer-provider {
    grid-column: auto;
  }
  .auth-section {
    padding-block: 35px 30px;
  }
  .auth-card {
    padding: 26px 20px;
    border-radius: 18px;
  }
  .auth-card-heading h2 {
    font-size: 1.55rem;
  }
  .rp-planner-page {
    padding-block: 34px 65px;
  }
  .rp-planner-header h1 {
    font-size: 2.15rem;
  }
  .rp-planner-mini-proof {
    display: none;
  }
  .rp-form-card {
    padding: 20px 16px;
  }
  .rp-form-card-head {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 10px;
  }
  .rp-step-number {
    width: 34px;
    height: 34px;
  }
  .rp-form-card-head h2 {
    font-size: 1.06rem;
  }
  .rp-planner-aside {
    grid-template-columns: 1fr;
  }
  .rp-planner-aside > *:last-child {
    grid-column: auto;
  }
  .rp-trip-toolbar {
    top: 66px;
  }
  .rp-trip-hero {
    min-height: 430px;
    border-radius: 0 0 24px 24px;
  }
  .rp-trip-hero-copy h1 {
    font-size: 2.2rem;
  }
  .rp-day-card {
    padding: 18px 14px;
  }
  .rp-day-title h2 {
    font-size: 1.2rem;
  }
  .rp-timeline-item {
    grid-template-columns: 30px 16px 1fr;
    gap: 8px;
  }
  .rp-timeline-time {
    font-size: 0.68rem;
  }
  .rp-dashboard-hero {
    padding-block: 36px;
    margin-top: 64px;
  }
  .dashboard-hero-inner {
    align-items: flex-start;
  }
  .rp-trip-filters {
    grid-template-columns: 1fr 1fr;
  }
  .rp-filter-search {
    grid-column: 1/-1;
  }
  .rp-trip-collection-grid {
    grid-template-columns: 1fr;
  }
  .rp-admin-shell {
    padding-block: 24px 55px;
  }
  .rp-admin-heading h1,
  .rp-admin-heading-compact h1 {
    font-size: 1.65rem !important;
  }
  .rp-admin-nav {
    overflow-x: auto;
    justify-content: flex-start;
    width: 100%;
  }
  .rp-admin-nav a {
    flex: 0 0 auto;
  }
  .rp-admin-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-admin-filter-grid,
  .rp-admin-trip-filter-grid,
  .rp-admin-filter-grid-contacts,
  .rp-admin-filter-grid-providers,
  .rp-admin-filter-grid-simple {
    grid-template-columns: 1fr !important;
  }
  .rp-admin-filter-actions {
    justify-content: flex-start;
  }
  .rp-admin-table-wrap {
    overflow: visible;
  }
  .rp-admin-responsive-table thead {
    display: none !important;
  }
  .rp-admin-responsive-table,
  .rp-admin-responsive-table tbody,
  .rp-admin-responsive-table tr,
  .rp-admin-responsive-table td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .rp-admin-responsive-table tr {
    padding: 12px 14px;
    margin-bottom: 10px;
    border: 1px solid var(--line, #e2e8f0);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
  }
  .rp-admin-responsive-table td {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1px 12px;
    padding: 7px 0 !important;
    border: 0 !important;
    text-align: right;
    flex-flow: wrap;
  }
  .rp-admin-table td small {
    margin-left: auto;
  }
  .admin-page .rp-admin-table td strong {
    max-width: calc(100% - 50px);
    line-height: 1;
  }
  .rp-action-dropdown {
    text-align: right;
    max-width: calc(100% - 70px);
  }
  .status-failed {
    width: auto;
  }
  .rp-admin-responsive-table td[data-label]::before,
  .rp-admin-responsive-table td::before {
    content: attr(data-label);
    color: var(--muted, #64748b);
    font-size: 0.72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: left;
    flex: 0 0 auto;
  }
  .rp-travel-essentials > summary {
    flex-flow: wrap;
  }
  .adminBanner {
    padding-top: 46px;
  }
  .adminBanner img {
    height: 300px;
  }
  .adminBannerContent .hero-title {
    font-size: 24px;
    margin-top: 5px;
  }
  .rp-admin-panel-head > a {
    padding: 7px 15px;
    font-size: 11px;
  }
  .rp-admin-kpi-grid,
  .rp-admin-kpi-grid.rp-admin-kpi-small,
  .rp-admin-health-grid {
    grid-template-columns: 1fr 1fr;
  }
  .noProviders h2 {
    font-size: 20px;
  }
  .adminBannerContent p {
    margin-bottom: 8px;
  }
}
@media (max-width: 479px) {
  .rr-hero {
    min-height: 825px;
  }
  .rr-hero-mobile {
    width: 165px;
  }
  .rr-bubble {
    width: 136px;
  }
  .rr-bubble-analysis {
    left: -50px;
  }
  .rr-bubble-plan {
    left: -46px;
  }
  .rr-bubble-build {
    right: -76px;
    width: 124px;
  }
  .rr-reel-grid {
    grid-template-columns: 1fr;
  }
  .rr-reel-image {
    aspect-ratio: 16/11;
  }
  .rr-platform-card {
    grid-template-columns: 1fr;
  }
  .rr-platform-card img {
    width: 100%;
    height: 145px;
    min-height: 0;
  }
  .rr-platform-card div {
    padding: 18px;
  }
  .rr-india-track {
    grid-template-columns: 1fr;
  }
  .rr-india-card {
    transform: none !important;
    display: grid;
    grid-template-columns: 100px 1fr;
    column-gap: 14px;
    align-items: center;
  }
  .rr-india-card img {
    grid-row: 1/3;
    aspect-ratio: 1/1;
  }
  .rr-india-card h3 {
    align-self: end;
  }
  .rr-india-card p {
    align-self: start;
  }
  .rr-workspace-visual {
    min-height: 390px;
  }
  .rr-workspace-phone {
    width: 135px;
  }
  .rr-workspace-board {
    width: calc(100% - 55px);
    min-height: 340px;
  }
  .rr-workspace-tabs span {
    padding: 6px;
    font-size: 0.6rem;
  }
  .rr-dna-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .rr-dna-stats strong {
    font-size: 1.25rem;
  }
  .rp-trip-filters {
    grid-template-columns: 1fr;
  }
  .rp-filter-search {
    grid-column: auto;
  }
  .rp-admin-kpi-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Landing CMS */
.rp-cms-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 16px 0 18px;
  padding: 12px 14px;
  border: 1px solid #d8e3e3;
  border-radius: 12px;
  background: #f5fbfa;
  color: #52656d;
  font-size: 0.78rem;
  line-height: 1.55;
}
.rp-cms-note strong {
  color: var(--rr-teal);
  white-space: nowrap;
}
.rp-cms-section-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.rp-cms-section-card {
  display: flex;
  flex-direction: column;
  min-height: 220px;
  padding: 17px;
  border: none;
  border-radius: 14px;
  background: #fff;
}
.rp-cms-section-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.rp-cms-section-card h2 {
  margin: 4px 0 0;
  font-size: 1rem;
}
.rp-cms-section-card > p {
  margin: 10px 0 14px;
  color: #667780;
  font-size: 0.76rem;
  line-height: 1.55;
}
.rp-cms-card-meta {
  display: flex;
  gap: 12px;
  margin-top: auto;
  margin-bottom: 13px;
  color: #75838a;
  font-size: 0.68rem;
}
.rp-cms-heading-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.rp-cms-editor .rp-form-card {
  overflow: visible;
}
.rp-cms-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 16px;
}
.rp-cms-field {
  min-width: 0;
  padding: 12px;
  border: 1px solid #edf0f0;
  border-radius: 11px;
  background: #fbfcfc;
}
.rp-cms-field-wide {
  grid-column: 1 / -1;
}
.rp-cms-field .rp-field {
  margin: 0;
}
.rp-cms-field .rp-field > span,
.rp-cms-upload > span {
  display: block;
  margin-bottom: 6px;
  color: #243b46;
  font-size: 0.72rem;
  font-weight: 700;
}
.rp-cms-field input[type="text"],
.rp-cms-field input[type="number"],
.rp-cms-field textarea {
  width: 100%;
  border: 1px solid #d8dfe1;
  border-radius: 9px;
  background: #fff;
  font-size: 0.78rem;
}
.rp-cms-field textarea {
  min-height: 96px;
  resize: vertical;
}
.rp-cms-field small {
  display: block;
  margin-top: 6px;
  color: #7b888d;
  font-size: 0.64rem;
  line-height: 1.45;
}
.rp-cms-toggle {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
}
.rp-cms-toggle input {
  width: 18px !important;
  height: 18px !important;
  margin-top: 1px;
  flex: 0 0 auto;
}
.rp-cms-toggle strong {
  display: block;
  color: #243b46;
  font-size: 0.76rem;
}
.rp-cms-image-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  margin-top: 10px;
  padding: 8px;
  border: 1px dashed #cbd5d7;
  border-radius: 10px;
  background: #fff;
}
.rp-cms-image-preview img {
  display: block;
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
  border-radius: 8px;
}
.rp-cms-upload {
  display: block;
  margin-top: 10px;
}
.rp-cms-upload input[type="file"] {
  display: block;
  width: 100%;
  padding: 8px;
  border: 1px solid #d8dfe1;
  border-radius: 9px;
  background: #fff;
  font-size: 0.72rem;
}
.rp-cms-form-footer {
  align-items: center;
  gap: 16px;
}
.rp-cms-form-footer > span {
  color: #718087;
  font-size: 0.7rem;
}
.rp-cms-reset-form {
  margin-top: 14px;
  text-align: right;
}
.button-danger {
  border-color: #f2c7c4;
  background: #fff4f3;
  color: #a5332d;
}
.button-danger:hover {
  background: #ffe9e7;
  color: #8e2823;
}

@media (max-width: 1024px) {
  .rp-cms-section-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .rp-cms-section-grid,
  .rp-cms-field-grid {
    grid-template-columns: 1fr;
  }
  .rp-cms-field-wide {
    grid-column: auto;
  }
  .rp-cms-section-card {
    min-height: 0;
  }
  .rp-cms-note {
    flex-direction: column;
    gap: 3px;
  }
  .rp-cms-form-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .rp-cms-form-footer .button {
    width: 100%;
  }
  .rp-cms-reset-form .button {
    width: 100%;
  }
}

/* ============================================================
   Batch 6 - Account, PWA and notification settings
   ============================================================ */
.brand-mark-logo {
  overflow: hidden;
  background: transparent !important;
  box-shadow: none !important;
}
.brand-mark-logo::before,
.brand-mark-logo::after {
  display: none !important;
}
.brand-mark-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.auth-shell-single {
  grid-template-columns: minmax(0, 430px);
  justify-content: center;
}
.auth-helper-link {
  color: var(--teal);
  font-weight: 800;
  text-decoration: none;
}
.auth-helper-link:hover {
  text-decoration: underline;
}

.account-settings-section {
  min-height: calc(100vh - 74px);
  padding: 46px 0 80px;
  background: var(--rr-paper);
}
.account-settings-shell {
  width: min(calc(100% - 36px), 1120px);
}
.account-settings-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}
.account-settings-head h1 {
  margin: 7px 0 8px;
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.account-settings-head p {
  max-width: 660px;
  margin: 0;
}
.account-profile-chip {
  display: flex;
  min-width: 255px;
  align-items: center;
  gap: 11px;
  padding: 10px 13px;
  border: none;
  backdrop-filter: blur(8px);
  border-radius: 17px;
  background: #ffffff0d;
  box-shadow: none;
}
.account-profile-avatar {
  display: grid;
  width: 44px;
  height: 44px;
  overflow: hidden;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 14px;
  background: var(--borderColor);
  color: #fff;
  font-weight: 500;
  color: var(--themeBlack);
}
.account-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.account-profile-chip span:last-child {
  display: grid;
  min-width: 0;
}
.account-profile-chip strong,
.account-profile-chip small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.account-profile-chip strong {
  color: #fff;
  font-size: 0.86rem;
  font-weight: 400;
}
.account-profile-chip small {
  color: #ddd;
  font-size: 0.7rem;
}

.account-tabs {
  display: flex;
  gap: 7px;
  margin-bottom: 20px;
  padding: 7px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
}
.account-tabs a {
  flex: 0 0 auto;
  padding: 9px 15px;
  border-radius: 11px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
  text-decoration: none;
}
.account-tabs a:hover,
.account-tabs a.active {
  color: #fff;
  background: var(--rr-navy);
}

.account-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.account-card {
  min-width: 0;
  padding: 20px;
  border: none;
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.account-card-wide {
  grid-column: 1 / -1;
}
.account-card-head {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-bottom: 21px;
}
.account-card-head h2 {
  margin: 0 0 5px;
  font-size: 1.18rem;
}
.account-card-head p {
  margin: 0;
  font-size: 0.82rem;
}
.account-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 12px;
  background: #fff3e9;
  color: var(--rr-red);
  font-size: 14px;
  font-weight: 600;
}

.account-form {
  display: grid;
  gap: 14px;
}
.account-fields {
  display: grid;
  gap: 15px;
}
.account-fields.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.account-form label,
.account-fields label {
  display: grid;
  gap: 0px;
  color: var(--rr-navy);
  font-size: 0.75rem;
  font-weight: 850;
}
.account-form input,
.account-form select,
.account-fields input,
.account-fields select {
  width: 100%;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #d9e0e6;
  border-radius: 12px;
  outline: 0;
  background: #fff;
  color: var(--rr-navy);
}
.account-form input:focus,
.account-form select:focus,
.account-fields input:focus,
.account-fields select:focus {
  border-color: #e56b37;
  box-shadow: 0 0 0 3px rgba(229, 107, 55, 0.09);
}
.account-form input:disabled,
.account-fields input:disabled {
  color: #6e7882;
  background: #f5f7f8;
}
.account-form label small,
.account-fields label small,
.account-help {
  color: var(--muted);
  font-size: 0.67rem;
  font-weight: 500;
  line-height: 1.5;
}
.account-help {
  margin-top: 5px;
}
.account-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 4px;
}
.account-card .password-field {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  border: 1px solid #d9e0e6;
  border-radius: 12px;
  overflow: hidden;
}
.account-card .password-field input {
  border: 0;
  box-shadow: none;
}
.account-card .password-toggle {
  margin-right: 0px;
  right: 3px;
}

.signin-methods,
.app-status-list {
  display: grid;
  gap: 0;
}
.signin-methods > div,
.app-status-list > div,
.push-status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
}
.signin-methods > div:last-child,
.app-status-list > div:last-child {
  border-bottom: 0;
}
.signin-methods span,
.app-status-list span,
.push-status-row span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 500;
}
.signin-methods strong,
.app-status-list strong,
.push-status-row strong {
  color: var(--rr-navy);
  font-size: 0.76rem;
  text-align: right;
  font-weight: 500;
}

.notification-form {
  display: grid;
  gap: 13px;
}
.settings-toggle-row {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.settings-toggle-row > span {
  display: grid;
  gap: 4px;
}
.settings-toggle-row strong {
  color: var(--rr-navy);
  font-size: 0.8rem;
}
.settings-toggle-row small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 500;
}
.settings-toggle-row input {
  width: 20px !important;
  height: 20px;
  flex: 0 0 auto;
  accent-color: var(--rr-red);
}

.account-safe-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.55;
}
.account-safe-list li {
  padding-left: 20px;
  position: relative;
}
.account-safe-list li::before {
  width: 6px;
  aspect-ratio: 1;
  background: #d1b884;
  display: inline-block;
  border-radius: 50%;
  box-shadow: 0px 0px 0px 2px rgb(249 241 226);
  transform: translateY(6px);
  content: "";
  left: 0;
  position: absolute;
  top: 1px;
}
.signSec {
  padding-top: 120px;
}
.innerPage {
  padding-top: 74px;
}
.innerBanner {
  position: relative;
}
.innerBanner img {
  min-height: 300px;
  object-fit: cover;
}
.innerPage::before {
  display: none;
}
.innerOverley {
  width: 100%;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

@media (max-width: 800px) {
  .account-settings-section {
    padding-top: 28px;
  }
  .account-settings-head {
    align-items: stretch;
    flex-direction: column;
    gap: 16px;
  }
  .account-profile-chip {
    width: 100%;
    min-width: 0;
  }
  .account-panel-grid {
    grid-template-columns: 1fr;
  }
  .account-card-wide {
    grid-column: auto;
  }
  .account-fields.two-col {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .account-settings-shell {
    width: calc(100% - 20px);
  }
  .account-settings-head h1 {
    font-size: 2rem;
  }
  .account-card {
    padding: 19px 16px;
    border-radius: 18px;
  }
  .account-tabs {
    margin-inline: -2px;
  }
  .account-tabs a {
    padding-inline: 12px;
  }
  .account-actions .button {
    width: 100%;
  }
  .signin-methods > div,
  .app-status-list > div,
  .push-status-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .signin-methods strong,
  .app-status-list strong,
  .push-status-row strong {
    text-align: left;
  }
}

@keyframes heroTitleReveal {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroWordUp {
  0% {
    opacity: 0;
    transform: translateY(110%) rotate(2.5deg);
  }
  100% {
    opacity: 1;
    transform: translateY(0%) rotate(0deg);
  }
}

.signSec .hero-title {
  animation: heroTitleReveal 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both;
  font-family: var(--headingFont);
  font-weight: 400;
  font-size: 70px;
  line-height: 110%;
  color: var(--themeBlack);
  margin: 15px 0 30px;
  text-align: left;
}
.hero-word-wrap {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  padding-right: 0.04em;
}

.hero-word {
  display: inline-block;
  will-change: transform, opacity;
  animation: heroWordUp 0.85s cubic-bezier(0.16, 1, 0.3, 1)
    var(--word-delay, 0.1s) both;
}
.sectionTag {
  font-weight: 500;
  font-size: 13px;
  line-height: 100%;
  text-align: center;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 0px;
  border: 1px solid var(--borderColor);
  border-radius: 44px;
  padding: 9px 19px;
  display: inline-block;
}
.innerPage .sectionTag {
  background: #efe7d8;
}

@media (max-width: 1899px) {
  .signSec .hero-title {
    font-size: 44px;
    margin-bottom: 30px;
  }
}

/* ==================== SITE HEADER DESIGN SYSTEM =========================== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99;
  padding: 12px 0;
  transition: all 0.4s ease-in-out;
}

.site-header .header-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.site-header .brand-logo-image-header {
  height: 46px;
  width: auto;
  max-width: 190px;
  display: block;
}

.site-header .main-nav > ul {
  display: flex;
  gap: 20px;
  align-items: center;
  background: rgba(10, 34, 48, 0.08);
  border-radius: 44px;
  padding: 10px 10px;
  margin: 0;
  list-style: none;
  transition: 0.5s;
}

.site-header .main-nav > ul > li {
  margin: 0;
  padding: 0;
}

.site-header .main-nav a {
  font-weight: 600;
  font-size: 18px;
  line-height: 100%;
  color: var(--white);
  padding: 7px 10px;
  border-radius: 44px;
  display: inline-block;
  text-decoration: none;
  transition: 0.5s;
  font-family: var(--bodyFont);
}
.site-header .main-nav a:hover,
.site-header .main-nav a.active {
  background: var(--themeBlack, #0a2230);
  color: #ffffff;
  transition: 0.5s;
}

.site-header .header-button {
  display: flex;
  align-items: center;
  gap: 15px;
}

.site-header .header-button a {
  font-weight: 600;
  font-size: 18px;
  line-height: 100%;
  color: var(--white);
  padding: 7px 10px;
  border-radius: 44px;
  text-decoration: none;
  transition: 0.5s;
  font-family: var(--bodyFont);
  transition: 0.5s;
}
.site-header .header-button a:hover {
  background: var(--white);
  color: var(--themeBlack);
  transition: 0.5s;
}

.site-header .header-button a.header-cta {
  background: var(--white);
  color: var(--themeBlack) !important;
  padding: 13px 25px;
  border-radius: 44px;
  transition: 0.5s;
}

.site-header .header-button a.header-cta:hover {
  background: var(--themeRed, #be0000);
  color: #ffffff !important;
  transition: 0.5s;
}

.site-header .header-button .account-menu {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 14px 4px 4px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 44px;
  background: rgba(10, 34, 48, 0.2);
  text-decoration: none;
  transition: 0.5s;
}

.site-header .header-button .account-menu:hover {
  background: var(--white);
  border-color: var(--white);
  transition: 0.5s;
}

.site-header .header-button .account-menu:hover .account-name {
  color: var(--themeBlack);
  transition: 0.5s;
}

.mobilenavBtn {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 40px;
  height: 40px;
  color: var(--themeBlack, #0a2230);
}

.mobilenavBtn svg {
  width: 100%;
  height: 100%;
  display: block;
}

.mobilenavBtn .line {
  fill: none;
  stroke: var(--white);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 60 207;
  transition:
    stroke-dasharray 500ms cubic-bezier(0.4, 0, 0.2, 1),
    stroke-dashoffset 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

.mobilenavBtn .line2 {
  stroke-dasharray: 60 60;
}

.mobilenavBtn.active .line1,
.mobilenavBtn.active .line3 {
  stroke-dasharray: 90 207;
  stroke-dashoffset: -136px;
}

.mobilenavBtn.active .line2 {
  stroke-dashoffset: -60px;
}
.loginBtn {
  border: 1px solid #fff;
  padding: 8px 18px;
  font-size: 16px;
  display: inline-block;
}
.afterLogin {
  margin-bottom: 0px;
}
.afterLogin .sectionTag {
  background: transparent;
}
.tripthinksCard {
  position: relative;
  background: linear-gradient(180deg, #eee2cc 0%, #ffedd0 100%);
  padding: 22px 22px 70px;
  border-radius: 18px;
  overflow: hidden;
}
.tripthinksCard h3 {
  font-size: 18px;
  margin-bottom: 15px;
}
.tripthinksCard .sectionTag {
  margin-bottom: 15px;
}
.rp-processing-brand {
  margin-bottom: 0;
}
.rp-processing-brand img {
  max-width: 200px;
  margin: auto;
}
.rp-processing-brand {
  display: block;
  margin: 15px 0;
}
.rp-trip-glance-card .sectionTag {
  margin: 0 auto 10px;
  display: table;
}
.planingHead {
  text-align: center;
  margin-bottom: 0px;
}
.planingHead h2,
.rp-booking-search h2 {
  font-size: 24px;
  margin: 10px 0 5px;
}
.planingHead p {
  font-size: 14px;
}
.travelDays {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  position: relative;
  position: sticky;
  top: 74px;
  background: #fbfaf7;
  z-index: 9;
  padding: 0 10px;
  padding-top: 20px;
}
.travelDays::after {
  content: "";
  width: 100%;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgb(189 189 189) 0%,
    rgba(250, 250, 250, 1) 70%
  );
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
}
@media (max-width: 1199px) {
  .site-header .brand-logo-image-header {
    height: 46px;
    max-width: 168px;
  }
}
@media (max-width: 1899px) {
  .site-header .main-nav a {
    font-size: 16px;
  }
  .site-header .header-button a.header-cta {
    font-size: 16px;
    padding: 8px 18px;
  }
  .account-name {
    font-size: 16px;
  }
  .rp-trip-hero-copy h1 {
    font-size: 48px;
    line-height: 1.2;
  }
}

@media (max-width: 991px) {
  .logo {
    position: relative;
    z-index: 10;
  }
  .site-header .main-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100vh;
    flex-direction: column;
    align-items: flex-start;
    background: var(--borderColor);
    padding: 80px 10px 30px;
    border-radius: 0;
    transition: 0.4s ease;
    z-index: 9;
    border: none;
  }
  .site-header .main-nav.open,
  .site-header .main-nav.active,
  .site-header .main-nav.actived {
    right: 0;
    transform: none;
  }
  .site-header .main-nav a {
    color: #ffffff;
    font-size: 16px;
    display: flex;
  }
  .account-name,
  .main-nav > a,
  .main-nav .nav-link-button {
    color: #fff;
    font-size: 16px;
    padding: 0 10px;
    min-height: auto;
    font-weight: 400;
    min-height: auto;
    height: auto;
  }
  .account-name {
    padding: 0;
  }
}

@media (max-width: 767px) {
  .site-header .brand-logo-image-header {
    height: 42px;
    max-width: 155px;
  }
  .keyHighLightsWrapper {
    flex-direction: column;
    gap: 10px;
  }
  .keyHighItem {
    padding: 10px;
    width: 100%;
  }
  .hero-content h1,
  .afterLogin .hero-title {
    font-size: 30px;
    line-height: 42px;
  }
  .nav-shell {
    min-height: auto;
  }
  .innerPage {
    padding-top: 64px;
    padding-bottom: 50px;
  }
  .freeKicker {
    padding: 5px 7px 5px 16px;
  }
  .rp-source-index {
    color: #fff;
    border: none !important;
    font-size: 14px;
    width: 20px;
    height: 20px;
    display: grid;
    place-content: center;
    background: #000000;
    border-radius: 5px;
    line-height: 1;
    position: absolute;
    top: -6px;
    left: -3px;
  }
  .rp-source-row-main {
    position: relative;
  }
  .innerPage .rp-platform-status {
    padding: 6px 10px;
  }
  .tripthinksCard {
    margin-top: 15px;
    padding-bottom: 120px;
  }
  .brand-image-lockup {
    gap: 0;
    position: relative;
    z-index: 10;
  }
  .site-header .main-nav > ul {
    background: transparent;
    border-radius: 0px;
    padding: 0;
  }
  .rp-planner-submit,
  .rp-aside-card {
    padding: 16px;
  }
  .tripthinksCard {
    padding: 22px 16px 120px;
  }
  .signSec {
    padding-top: 90px;
  }
  .rp-trip-kicker-row {
    gap: 5px;
  }
  .rp-trip-hero-copy h1 {
    font-size: 30px;
  }
  .travelDays {
    top: 62px;
    padding: 0;
    padding-top: 10px;
  }
  .container.rp-trip-legend {
    margin: 15px 15px 0;
    width: auto !important;
  }
  .planingHead h2,
  .rp-booking-search h2,
  .itinerarySidebar .rp-sidebar-card h3 {
    font-size: 18px;
  }
  .rp-day-title h3 {
    font-size: 1rem;
  }
  .admin-page .rp-admin-nav a {
    background: #ededed;
  }
  .rp-admin-nav a.active {
    color: #fff;
    background: var(--rr-navy);
  }
  .dashNav {
    top: 90px;
  }
  .rp-essentials-summary-main {
    order: -2;
    max-width: calc(100% - 40px);
  }
  .collapsetoggleBtn {
    order: -1;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .afterLogin .hero-title {
    font-size: 28px;
    line-height: 1.2;
  }
  .innerPage {
    padding-top: 69px;
  }
  .rp-trip-hero-content .rp-trip-glance-card {
    margin: auto;
    width: 50%;
  }
  .rp-trip-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .adminBanner {
    padding-top: 46px;
  }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .adminBanner {
    padding-top: 46px;
  }
}
@media (max-width: 575px) {
  .hero-content h1,
  .afterLogin .hero-title {
    font-size: 22px;
    line-height: 30px;
  }
  .account-name {
    display: none;
  }
  .site-header .header-button .account-menu {
    padding: 0;
  }
  .header-cta div {
    display: none;
  }
  .site-header .header-button a.header-cta {
    padding: 8px 11px;
    margin: 0;
  }
  .site-header .brand-logo-image-header {
    max-width: 125px;
    height: auto;
  }
  .travelDays span {
    display: none;
  }
}

/* ============================================================
   2026-08-17 - Auth verification, connected sign-in and budget range
   ============================================================ */
.nav-download-app {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.10);
    font: 700 .78rem/1 var(--rr-heading);
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.nav-download-app:hover { color: var(--rr-navy); background: #fff; border-color: #fff; transform: translateY(-1px); }
.nav-download-icon { font-size: 1rem; line-height: 1; }
.nav-plan-cta { background: var(--rr-red); color: #fff; }
.nav-plan-cta:hover { background: #fff; color: var(--rr-navy); }
.account-menu small { display: none; color: rgba(255,255,255,.65); font-size: .58rem; line-height: 1; }
.nav-logout-link { opacity: .82; }

.account-connected-note,
.account-connect-google {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #f8fbfb;
}
.account-connected-note { display: grid; gap: 4px; }
.account-connected-note b { color: #16715e; font-size: .82rem; }
.account-connected-note span { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.account-connect-google { display: grid; gap: 14px; }
.account-connect-google strong { color: var(--rr-navy); font-size: .86rem; }
.account-connect-google p { margin: 5px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.account-connect-google .google-button-shell { max-width: 400px; }
.status-good { color: #16715e !important; }
.status-warn { color: #b94f28 !important; }
.app-install-primary { min-width: min(100%, 300px); }

.verification-steps { display: grid; gap: 10px; margin: 20px 0; }
.verification-steps > div { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfc; }
.verification-steps span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--rr-navy); color: #fff; font-size: .72rem; font-weight: 900; }
.verification-steps p { margin: 0; color: var(--muted); font-size: .76rem; }
.verification-steps strong { color: var(--rr-navy); }

.rp-budget-range-field { grid-column: 1 / -1; }
.rp-budget-range { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: end; gap: 10px; }
.rp-budget-range > label { display: grid; gap: 6px; min-width: 0; }
.rp-budget-range > label > small { color: var(--muted); font-size: .68rem; font-weight: 750; }
.rp-budget-range-separator { align-self: center; padding-top: 20px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.rp-budget-help { color: var(--muted); font-size: .68rem; font-weight: 600; }
.rp-budget-help[data-state="invalid"] { color: #b94f28; }
.rp-budget-help[data-state="valid"] { color: #47716b; }

@media (max-width: 1199px) {
    .nav-download-app {
        width: 100%;
        min-height: 44px;
        justify-content: center;
        margin: 4px 0;
        border-color: rgba(190,0,0,.18);
        border-radius: 8px;
        color: #fff;
        background: var(--rr-red);
    }
    .nav-download-app:hover { color: #fff; background: var(--rr-red-dark); border-color: var(--rr-red-dark); }
    .account-menu { display: grid; grid-template-columns: 34px 1fr; column-gap: 9px; }
    .account-menu .account-avatar { grid-row: 1 / 3; }
    .account-menu small { display: block; color: var(--muted); }
}

@media (max-width: 620px) {
    .rp-budget-range { grid-template-columns: 1fr; align-items: stretch; }
    .rp-budget-range-separator { padding: 0; text-align: center; }
}

/* ============================================================
   2026-08-24 - UI stability hotfix after shared-team merge
   Keeps internal hero/header layouts readable even if a decorative
   image is unavailable and removes obsolete fixed-header offsets now
   that .site-header is sticky/in normal document flow.
   ============================================================ */
.site-header {
  min-height: 72px;
}
.site-header .nav-shell {
  min-height: 72px;
}
.site-header .header-wrapper {
  width: 100%;
  min-height: 72px;
  gap: 16px;
}
.site-header .brand-image-lockup,
.site-header .header-button,
.site-header .mainNav {
  flex: 0 0 auto;
}
.site-header .mainNav {
  min-width: 0;
}
.site-header .mainNav > ul {
  margin: 0;
  white-space: nowrap;
}
.site-header .header-button {
  gap: 10px;
  margin-left: 0;
}
.site-header .nav-download-app,
.site-header .account-menu {
  flex: 0 0 auto;
}

/* The sticky header already consumes layout height. Old fixed-header
   offsets caused large blank bands and content appearing clipped. */
.innerPage {
  padding-top: 0;
}
.rp-dashboard-hero {
  margin-top: 0;
}
.admin-page .rp-admin-shell {
  padding-top: 0;
}

/* Internal planner hero - always readable, even before/without image load. */
.innerBanner {
  position: relative;
  display: flex;
  min-height: 300px;
  overflow: hidden;
  align-items: stretch;
  background: #0a2230;
}
.innerBanner > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  opacity: .72;
}
.innerBanner::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(6,25,36,.88) 0%, rgba(6,25,36,.62) 58%, rgba(6,25,36,.28) 100%);
}
.innerOverley {
  position: relative;
  z-index: 2;
  top: auto;
  left: auto;
  display: flex;
  width: 100%;
  min-height: 300px;
  align-items: center;
  padding: 34px 0 46px;
  transform: none;
}
.innerOverley .afterLogin .hero-title,
.innerOverley .afterLogin p,
.innerOverley .afterLogin .back-link {
  text-shadow: 0 2px 16px rgba(0,0,0,.24);
}

/* My Trips hero gets a solid fallback behind the decorative image. */
.rp-dashboard-hero {
  color: #fff;
  background-color: #0a2230;
  background-image:
    linear-gradient(90deg, rgba(6,25,36,.84), rgba(6,25,36,.56)),
    url(../reference/images/mountains-hiking-adventure-tourism-travel.webp);
  background-position: center;
  background-size: cover;
}
.rp-dashboard-hero h1,
.rp-dashboard-hero p {
  color: #fff;
}
.rp-dashboard-hero p {
  opacity: .82;
}

/* Admin hero no longer relies on absolute positioning against an image
   with an assumed height. This prevents the heading from sitting under
   the global navigation bar. */
.adminBanner {
  position: relative;
  display: flex;
  min-height: 220px;
  overflow: hidden;
  align-items: center;
  padding-top: 0;
  background: #0a2230;
}
.adminBanner > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .7;
}
.adminBanner::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(6,25,36,.88), rgba(6,25,36,.42));
}
.adminBannerContent {
  position: relative;
  z-index: 2;
  top: auto;
  left: auto;
  width: 100%;
  padding: 34px 0 45px;
  transform: none;
}
.adminBannerContent .hero-title,
.adminBannerContent p {
  color: #fff;
}
.adminBannerContent p {
  opacity: .8;
}
.dashNav {
  top: 72px;
  z-index: 20;
}

/* Keep the full authenticated desktop navigation inside the viewport. */
@media (min-width: 1200px) and (max-width: 1450px) {
  .site-header .container-fluid {
    padding-inline: 28px;
  }
  .site-header .header-wrapper {
    gap: 12px;
  }
  .site-header .mainNav > ul {
    gap: 5px;
    padding: 9px 10px;
  }
  .site-header .mainNav > ul > li > a,
  .site-header .nav-link-button {
    padding-inline: 9px;
    font-size: 15px;
  }
  .site-header .header-button {
    gap: 8px;
  }
  .site-header .nav-download-app {
    padding-inline: 10px;
    font-size: .72rem;
  }
  .site-header .account-name {
    max-width: 82px;
    font-size: 15px;
  }
}

@media (max-width: 1199px) {
  .site-header,
  .site-header .nav-shell,
  .site-header .header-wrapper {
    min-height: 64px;
  }
  .site-header .header-button {
    margin-left: auto;
  }
  .site-header .nav-download-app {
    width: auto;
    min-height: 38px;
    margin: 0;
    padding: 7px 10px;
    border-radius: 999px;
  }
  .dashNav {
    top: 64px;
  }
}

@media (max-width: 767px) {
  .innerBanner,
  .innerOverley {
    min-height: 280px;
  }
  .innerOverley {
    padding: 28px 0 40px;
  }
  .rp-dashboard-hero {
    margin-top: 0;
  }
  .adminBanner {
    min-height: 230px;
  }
  .adminBannerContent {
    padding: 30px 0 44px;
  }
}

@media (max-width: 575px) {
  .site-header .nav-download-app span:last-child {
    display: none;
  }
  .site-header .nav-download-app {
    width: 38px;
    height: 38px;
    justify-content: center;
    padding: 0;
  }
}


/* ============================================================
   2026-08-24 - Product UI polish / responsive shell hardening
   ============================================================ */
.site-header {
  position: sticky !important;
  top: 0;
  left: auto;
  width: 100%;
  min-height: 72px;
  padding: 8px 0 !important;
  background: #0a2230;
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.site-header .nav-shell,
.site-header .header-wrapper { min-height: 56px; }
.site-header .header-wrapper { gap: 14px; }
.site-header .brand-logo-image-header { height: 42px; max-width: 180px; }
html { scroll-padding-top: 84px; }
main { min-width: 0; }
.dashNav { top: 72px !important; }
.travelDays { top: 72px; }

.account-avatar { position: relative; isolation: isolate; flex: 0 0 auto; }
.account-avatar-fallback {
  position: absolute; z-index: 1; inset: 0; display: grid; place-items: center;
  border-radius: inherit; color: #fff; background: linear-gradient(145deg,#be0000,#8f0000);
  font-size: .78rem; font-weight: 800;
}
.account-avatar img {
  position: relative; z-index: 2; display: block; width: 100%; height: 100%;
  border-radius: inherit; object-fit: cover; color: transparent; font-size: 0; background: transparent;
}
.account-avatar img[hidden], .account-avatar-fallback-visible img { display: none !important; }

.keyHighLights { transform: none !important; margin: 0; padding: 18px 0 8px; background: #f7f9f9; }
.keyHighLightsWrapper {
  display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); width: min(760px,100%);
  margin: 0 auto; gap: 0 !important; overflow: hidden; border: 1px solid #e2e8ea;
  border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(10,34,48,.05);
}
.keyHighItem {
  display: flex; min-width: 0; align-items: center; justify-content: center; gap: 10px;
  padding: 12px 18px !important; border-right: 1px solid #edf1f2; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
}
.keyHighItem:last-child { border-right: 0; }
b.shortIcon { width: 36px !important; height: 36px; flex: 0 0 36px; border-radius: 10px !important; font-size: 17px !important; }
.keyContent { min-width: 0; }
.keyContent strong { color: #0a2230; font-size: .84rem; line-height: 1.1; }
.keyContent span { display: block; margin-top: 2px; color: #687781; font-size: .72rem; line-height: 1.25; }

.innerPage .rp-source-row-main {
  min-height: 58px; padding: 7px 9px; border: 1px solid #dde5e7; border-radius: 14px;
  background: #fff; box-shadow: none;
}
.innerPage .rp-source-row-main:focus-within { border-color: rgba(13,148,136,.6); box-shadow: 0 0 0 3px rgba(13,148,136,.09); }
.innerPage .rp-source-index {
  position: static !important; width: 30px !important; height: 30px !important; flex: 0 0 30px;
  border: 0 !important; border-radius: 9px !important; color: #806a3e !important;
  background: #f7efdf !important; font-size: .78rem !important; font-weight: 700 !important;
}
.innerPage .rp-source-row input[type="url"] { padding: 9px 7px; font-size: .88rem; font-weight: 500; }
.innerPage .rp-platform-status {
  display: inline-flex; width: auto; min-width: 0; height: 30px; align-items: center; gap: 5px;
  padding: 5px 9px; border: 1px solid #e2e8ea; border-radius: 999px; color: #65737c;
  background: #f5f7f8; font-size: .69rem; font-weight: 700; line-height: 1; cursor: default; pointer-events: none;
}
.innerPage .rp-platform-status:hover { color: #65737c; background: #f5f7f8; }
.innerPage .rp-platform-status[data-state="valid"] { color: #166a56; border-color: #cbe7dd; background: #ecf8f3; }
.innerPage .rp-platform-status[data-state="valid"]::before {
  content: "✓"; display: inline-grid; width: 16px; height: 16px; place-items: center; border-radius: 50%;
  color: #fff; background: #2c9276; font-size: .6rem; font-weight: 900;
}
.innerPage .rp-platform-status[data-state="invalid"] { color: #984b43; border-color: #f0cfcb; background: #fff3f1; }
.rp-source-feedback { margin-top: 5px; font-size: .68rem; }

@media (min-width: 1200px) {
  .site-header .mainNav {
    position: static !important; width: auto !important; height: auto !important; min-height: 0 !important;
    transform: none !important; padding: 0 !important; background: transparent !important;
  }
}
@media (max-width: 1199px) {
  .site-header { min-height: 64px; padding: 6px 0 !important; }
  .site-header .nav-shell, .site-header .header-wrapper { min-height: 52px; }
  .site-header .brand-logo-image-header { height: 38px; max-width: 150px; }
  .dashNav, .travelDays { top: 64px !important; }
  html { scroll-padding-top: 74px; }
}
@media (max-width: 767px) {
  .site-header .header-wrapper { flex-wrap: nowrap !important; gap: 8px; }
  .site-header .header-button { gap: 7px; }
  .site-header .account-menu { padding-right: 7px; }
  .site-header .account-name { display: none; }
  .site-header .nav-download-app { width: 36px; height: 36px; min-height: 36px; padding: 0; justify-content: center; }
  .site-header .nav-download-app span:last-child { display: none; }
  .mobilenavBtn { width: 36px; height: 36px; }
  .innerBanner, .innerOverley { min-height: 250px; }
  .innerOverley { padding: 24px 0 30px; }
  .afterLogin .hero-title { margin-top: 14px; }
  .keyHighLights { padding: 12px 15px 6px; }
  .keyHighLights .container { padding-inline: 0; }
  .keyHighLightsWrapper { grid-template-columns: 1fr; width: 100%; }
  .keyHighItem { justify-content: flex-start; padding: 10px 12px !important; border-right: 0; border-bottom: 1px solid #edf1f2; }
  .keyHighItem:last-child { border-bottom: 0; }
  .innerPage .rp-source-row-main { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; gap: 7px; align-items: center; }
  .innerPage .rp-source-row label { grid-column: 2; }
  .innerPage .rp-platform-status { grid-column: 2; grid-row: 2; justify-self: start; }
  .innerPage .rp-remove-source { grid-column: 3; grid-row: 1 / span 2; }
  .rp-source-feedback { margin-left: 38px; }
}
@media (max-width: 430px) {
  .site-header .brand-logo-image-header { height: 34px; max-width: 132px; }
  .site-header .header-button { gap: 5px; }
  .site-header .account-menu { padding: 3px; }
  .account-avatar { width: 30px; height: 30px; }
  .keyHighItem { gap: 9px; }
  .innerPage .rp-source-row input[type="url"] { font-size: .82rem; }
}


/* ============================================================
   2026-08-24 - final pre-Bitbucket/AWS polish
   - planner banner uses a CSS background so a missing decorative asset
     can never render a broken <img> icon
   - saved-trip status badges use compact modern high-contrast pills
   ============================================================ */
.innerBanner {
  background-color: #0a2230;
  background-image:
    linear-gradient(90deg, rgba(6, 25, 36, .9) 0%, rgba(6, 25, 36, .66) 58%, rgba(6, 25, 36, .34) 100%),
    url("../reference/images/mountains-hiking-adventure-tourism-travel.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.innerBanner::after {
  display: none;
}

.rp-saved-trip-cover .status-badge {
  gap: 7px;
  min-height: 30px;
  padding: 6px 11px;
  border: 1px solid rgba(255, 255, 255, .28);
  color: #fff;
  background: rgba(8, 31, 43, .84);
  box-shadow: 0 7px 20px rgba(4, 20, 29, .16);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size: .66rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .055em;
}
.rp-saved-trip-cover .status-badge::before {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 999px;
  content: "";
  background: #d9e2e5;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .08);
}
.rp-saved-trip-cover .status-completed {
  color: #fff;
  background: rgba(7, 53, 57, .88);
  border-color: rgba(122, 222, 202, .42);
}
.rp-saved-trip-cover .status-completed::before {
  background: #62dfc1;
}
.rp-saved-trip-cover .status-processing {
  color: #fff;
  background: rgba(116, 75, 8, .88);
  border-color: rgba(255, 215, 127, .42);
}
.rp-saved-trip-cover .status-processing::before {
  background: #ffd56f;
}
.rp-saved-trip-cover .status-failed {
  width: auto;
  justify-content: flex-start;
  color: #fff;
  background: rgba(132, 34, 34, .9);
  border-color: rgba(255, 154, 154, .4);
}
.rp-saved-trip-cover .status-failed::before {
  background: #ff9292;
}

/* ============================================================
   2026-08-26 - Monetization: credits, pricing and PayU billing
   ============================================================ */
.nav-credit-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 12px !important;
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.10);
  color: #fff !important;
  border-radius: 999px;
  font-size: .76rem !important;
  font-weight: 800 !important;
  white-space: nowrap;
}
.nav-credit-pill:hover { background: #fff !important; color: var(--rr-navy) !important; }
.nav-credit-pill i { font-size: .9rem; }

.rp-credit-aside { border: 1px solid #eadfcf; background: #fffaf1; }
.rp-credit-aside-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.rp-credit-aside-head .sectionTag { margin: 0; }
.rp-credit-aside-head i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #fff; color: var(--rr-red); box-shadow: 0 8px 24px rgba(10,34,48,.08); }
.rp-credit-aside > strong { display: block; margin-bottom: 6px; color: var(--rr-navy); font: 800 1.08rem/1.2 var(--rr-heading); }
.rp-credit-aside .text-link { font-size: .76rem; font-weight: 800; }

.rp-pricing-page,
.rp-billing-page { background: #fbfaf7; }
.rp-pricing-banner .innerOverley { min-height: 410px; display: flex; align-items: end; }
.rp-pricing-banner p { max-width: 680px; color: rgba(255,255,255,.84); }
.rp-wallet-hero { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 18px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: #fff; background: rgba(4,22,31,.22); backdrop-filter: blur(8px); }
.rp-wallet-hero span,
.rp-wallet-hero small { font-size: .72rem; }
.rp-wallet-hero strong { font-size: .86rem; }
.rp-pricing-content { padding-top: 56px; padding-bottom: 70px; }
.rp-pricing-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; align-items: stretch; }
.rp-price-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 24px; border: 1px solid #e4e8e9; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(9,34,47,.06); }
.rp-price-card.is-featured { border-color: rgba(190,0,0,.38); box-shadow: 0 18px 46px rgba(190,0,0,.10); }
.rp-price-badge { position: absolute; top: -12px; right: 18px; padding: 7px 10px; border-radius: 999px; background: var(--rr-red); color: #fff; font-size: .64rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.rp-price-card-head h2 { margin: 12px 0 8px; color: var(--rr-navy); font-size: 2rem; }
.rp-price-card-head p { min-height: 64px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.rp-price-credit { display: flex; align-items: baseline; gap: 7px; margin: 20px 0; padding: 15px 0; border-block: 1px solid #edf0f1; }
.rp-price-credit strong { color: var(--rr-red); font: 900 1.85rem/1 var(--rr-heading); }
.rp-price-credit span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.rp-price-features { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.rp-price-features li { display: flex; gap: 8px; color: #40515a; font-size: .73rem; line-height: 1.45; }
.rp-price-features i { color: #16715e; }
.rp-price-card > .button { margin-top: auto; }
.rp-pricing-note { max-width: 850px; margin: 30px auto 0; padding: 16px 18px; border: 1px solid #e6e2d9; border-radius: 14px; background: #fffdf8; color: #59676d; font-size: .74rem; line-height: 1.55; text-align: center; }

.rp-billing-page { min-height: 70vh; padding-top: 120px; padding-bottom: 70px; }
.rp-billing-narrow { max-width: 760px; }
.rp-billing-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 26px; }
.rp-billing-heading h1 { margin: 9px 0 5px; color: var(--rr-navy); font-size: clamp(1.8rem,4vw,2.8rem); }
.rp-billing-heading p { margin: 0; color: var(--muted); }
.rp-wallet-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.rp-wallet-grid article { min-width: 0; padding: 20px; border: 1px solid #e6eaeb; border-radius: 17px; background: #fff; box-shadow: 0 10px 28px rgba(9,34,47,.05); }
.rp-wallet-grid small,
.rp-wallet-grid span { display: block; color: var(--muted); font-size: .68rem; }
.rp-wallet-grid strong { display: block; margin: 6px 0 5px; color: var(--rr-navy); font: 900 1.8rem/1 var(--rr-heading); }
.rp-wallet-grid .rp-wallet-plan { font-size: 1.08rem; line-height: 1.2; }
.rp-billing-two-col { align-items: start; }
.rp-checkout-card,
.rp-payment-result { padding: clamp(22px,4vw,38px); border: 1px solid #e3e8e9; border-radius: 22px; background: #fff; box-shadow: 0 18px 48px rgba(8,31,43,.08); }
.rp-checkout-card h1,
.rp-payment-result h1 { margin: 10px 0 8px; color: var(--rr-navy); }
.rp-checkout-card > div > p,
.rp-payment-result > p { color: var(--muted); }
.rp-checkout-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 22px 0; }
.rp-checkout-summary span { padding: 15px; border-radius: 14px; background: #f7f9f9; }
.rp-checkout-summary small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .68rem; }
.rp-checkout-summary strong { color: var(--rr-navy); }
.rp-payment-safe { margin: 15px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.rp-payment-safe i { margin-right: 4px; color: #16715e; }
.rp-payment-result { text-align: center; }
.rp-payment-result-icon { display: grid; width: 64px; height: 64px; margin: 0 auto 16px; place-items: center; border-radius: 50%; background: #f1f4f5; color: var(--rr-navy); font-size: 1.8rem; }
.rp-payment-result.is-success .rp-payment-result-icon { background: #eaf7f2; color: #16715e; }
.rp-payment-result.is-failed .rp-payment-result-icon { background: #fff0ef; color: #a63b34; }
.rp-payment-result.is-pending .rp-payment-result-icon { background: #fff7e6; color: #9a6712; }
.rp-payment-ref { display: inline-grid; gap: 3px; margin: 16px 0 22px; padding: 10px 14px; border-radius: 12px; background: #f6f8f8; }
.rp-payment-ref span { color: var(--muted); font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; }
.rp-payment-ref strong { color: var(--rr-navy); font-size: .76rem; overflow-wrap: anywhere; }
.rp-credit-ledger { display: grid; }
.rp-credit-ledger > div { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid #edf0f1; }
.rp-credit-ledger > div:last-child { border-bottom: 0; }
.rp-credit-ledger span { min-width: 0; }
.rp-credit-ledger b,
.rp-credit-ledger small { display: block; }
.rp-credit-ledger b { color: var(--rr-navy); font-size: .76rem; }
.rp-credit-ledger small { margin-top: 3px; color: var(--muted); font-size: .64rem; line-height: 1.4; }
.rp-credit-ledger > div > strong { flex: 0 0 auto; color: #64737a; font-size: .75rem; }
.rp-credit-ledger > div > strong.is-positive { color: #16715e; }
.rp-credit-ledger > div > strong.is-negative { color: #a63b34; }
.rp-status-pill.status-success { color: #12634f; background: #e6f6ef; }
.rp-status-pill.status-failed { color: #983a33; background: #ffefed; }
.rp-status-pill.status-pending,
.rp-status-pill.status-created { color: #8a5e12; background: #fff4dc; }
.rp-status-pill.status-refunded { color: #4a5d67; background: #edf2f4; }

@media (max-width: 1199px) {
  .rp-pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-credit-pill span { display: none; }
  .nav-credit-pill { width: 36px; justify-content: center; padding: 0 !important; }
}
@media (max-width: 991px) {
  .rp-wallet-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rp-billing-heading { align-items: start; }
}
@media (max-width: 767px) {
  .rp-pricing-banner .innerOverley { min-height: 300px; }
  .rp-pricing-content { padding-top: 38px; }
  .rp-pricing-grid { grid-template-columns: 1fr; }
  .rp-price-card-head p { min-height: 0; }
  .rp-billing-page { padding-top: 88px; padding-bottom: 48px; }
  .rp-billing-heading { display: grid; }
  .rp-wallet-grid { grid-template-columns: 1fr 1fr; }
  .rp-checkout-summary { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .nav-credit-pill { display: none !important; }
  .rp-wallet-grid { grid-template-columns: 1fr; }
  .rp-checkout-card,
  .rp-payment-result { padding: 20px 16px; border-radius: 18px; }
}
.rp-admin-detail-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.rp-admin-detail-actions form { margin: 0 0 1rem; }
@media (max-width: 575px) {
  .rp-admin-detail-actions { align-items: stretch; flex-direction: column; }
  .rp-admin-detail-actions form { margin-top: -6px; }
  .rp-admin-detail-actions .button { width: 100%; }
}
