:root {
  --navy: #142b40;
  --navy-2: #1d3d58;
  --blue: #2d596f;
  --paper: #f4f0e7;
  --cream: #f5f2ec;
  --white: #fffdf9;
  --ink: #17243a;
  --gold: #d39b3c;
  --gold-soft: #f0d89e;
  --green: #557764;
  --green-state: #2f7654;
  --amber-state: #a96809;
  --red-state: #a13e35;
  --operational-bg: #f4f7f8;
  --operational-surface: #ffffff;
  --red: #9b5147;
  --muted: #596673;
  --gold-ink: #95610f;
  --line: rgba(20, 43, 64, 0.16);
  --shadow: 0 18px 50px rgba(20, 43, 64, 0.08);
  --travel-safe-bottom: env(safe-area-inset-bottom, 0px);
  --travel-safe-left: env(safe-area-inset-left, 0px);
  --travel-safe-right: env(safe-area-inset-right, 0px);
  --travel-safe-top: env(safe-area-inset-top, 0px);
  --travel-topbar-height: calc(68px + var(--travel-safe-top));
  --travel-vh: 1vh;
}
@supports (height: 1dvh) { :root { --travel-vh: 1dvh; } }
html { scroll-padding-top: 92px; }
[id] { scroll-margin-top: 92px; }

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--navy); font-family: Inter, Arial, sans-serif; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

.bo-topbar {
  align-items: center;
  background: var(--navy);
  color: var(--white);
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr auto 1fr;
  min-height: 72px;
  padding: 0 3vw;
}

.bo-brand { align-items: center; display: flex; gap: .7rem; width: max-content; }
.bo-brand > span {
  background: var(--gold);
  color: var(--navy);
  display: grid;
  font-family: Georgia, serif;
  font-size: 1.35rem;
  font-weight: 700;
  height: 38px;
  place-items: center;
  width: 38px;
}
.bo-brand b { font-family: Georgia, serif; font-size: 1.25rem; }
.bo-topbar nav { display: flex; gap: 1.6rem; }
.bo-topbar nav a { color: rgba(255,255,255,.72); font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bo-topbar > .bo-primary { justify-self: end; }
.bo-top-actions { align-items: center; display: flex; gap: 1rem; justify-self: end; }
.bo-top-actions > a:not(.bo-primary) { color: rgba(255,255,255,.72); font-size: .875rem; font-weight: 700; }
.bo-mode-switch { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; display: flex; gap: .1rem; padding: .2rem; }
.bo-mode-switch a, .bo-mode-switch span { border-radius: 999px; color: rgba(255,255,255,.76); font-size: .8125rem; font-weight: 800; padding: .45rem .65rem; text-decoration: none; }
.bo-mode-switch [aria-current="page"] { background: white; color: #17324d; }

.bo-shell { margin: auto; max-width: 1500px; padding: 0 3vw calc(6rem + var(--travel-safe-bottom)); }
.bo-flash { border-left: 5px solid; margin: 1.5rem 0; padding: 1rem 1.2rem; }
.bo-flash.success { background: #e5efe8; border-color: var(--green); }
.bo-flash.error { background: #f4e4e1; border-color: var(--red); }

.bo-hero {
  align-items: center;
  display: grid;
  gap: 8vw;
  grid-template-columns: 1fr 300px;
  min-height: 410px;
  padding: 5rem 3vw;
}

.bo-eyebrow { color: var(--blue); font-size: .8125rem; font-weight: 800; letter-spacing: .17em; margin: 0 0 1rem; text-transform: uppercase; }
.bo-hero h1 { font-family: Georgia, serif; font-size: clamp(3.5rem, 7vw, 7.5rem); font-weight: 500; letter-spacing: -.05em; line-height: .85; margin: 0; }
.bo-hero h1 em { color: var(--blue); display: block; font-weight: 400; }
.bo-hero > div > p:last-child { color: var(--muted); line-height: 1.7; max-width: 640px; }

.bo-create-card {
  background: var(--gold);
  box-shadow: 1rem 1rem 0 var(--gold-soft);
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 1.5rem;
  transition: transform .16s ease;
}
.bo-create-card:hover { transform: translateY(-4px); }
.bo-create-card > span { font-family: Georgia, serif; font-size: 5rem; line-height: 1; }
.bo-create-card b { font-family: Georgia, serif; font-size: 1.8rem; margin-top: auto; }
.bo-create-card small { margin-top: .4rem; }

.bo-stats { border: 1px solid var(--line); display: grid; grid-template-columns: repeat(6, 1fr); }
.bo-stats article { border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 1.5rem; }
.bo-stats article:last-child { border-right: 0; }
.bo-stats span, .bo-stats small { color: var(--muted); font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bo-stats strong { color: var(--blue); font-family: Georgia, serif; font-size: clamp(1.75rem, 2.8vw, 2.6rem); margin: .35rem 0; }

.bo-section { padding: 6rem 0 2rem; }
.bo-section-head { align-items: end; display: grid; gap: 4rem; grid-template-columns: 1fr 1fr; margin-bottom: 2.5rem; }
.bo-section-head h2 { font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 5rem); font-weight: 500; margin: 0; }
.bo-section-head > p { color: var(--muted); line-height: 1.7; margin: 0; max-width: 600px; }

.bo-trip-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.bo-trip-card { background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); display: flex; flex-direction: column; min-height: 410px; padding: 1.5rem; }
.bo-trip-status { align-items: center; display: flex; justify-content: space-between; }
.bo-trip-status span { font-size: .8125rem; font-weight: 800; letter-spacing: .09em; padding: .4rem .55rem; text-transform: uppercase; }
.bo-trip-status small { color: var(--muted); }
.status-draft { background: #dfe4e7; }
.status-planning { background: var(--gold-soft); }
.status-published, .status-active { background: var(--green); color: white; }
.status-completed { background: var(--blue); color: white; }
.bo-trip-dates { color: var(--blue); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; margin: 2rem 0 .65rem; text-transform: uppercase; }
.bo-trip-card h3 { font-family: Georgia, serif; font-size: 2rem; line-height: 1; margin: 0; }
.bo-trip-route { color: var(--muted); font-size: .875rem; margin: .8rem 0 2rem; }
.bo-trip-route span { color: var(--gold); padding: 0 .35rem; }
.bo-trip-metrics { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); margin-top: auto; }
.bo-trip-metrics div { border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: .8rem .5rem; }
.bo-trip-metrics div:first-child { padding-left: 0; }
.bo-trip-metrics div:last-child { border-right: 0; }
.bo-trip-metrics span { color: var(--muted); font-size: .8125rem; font-weight: 700; text-transform: uppercase; }
.bo-trip-metrics b { margin-top: .3rem; }
.bo-trip-metrics small { color: var(--muted); font-size: .8125rem; margin-top: .2rem; }
.bo-progress { background: #e5e0d7; height: 5px; margin: 1rem 0; }
.bo-progress i { background: var(--gold); display: block; height: 100%; }
.bo-trip-actions { align-items: center; display: flex; gap: 1rem; min-height: 42px; }
.bo-trip-actions > a:not(.bo-primary), .bo-trip-actions summary { color: var(--blue); font-size: .875rem; font-weight: 700; }
.bo-trip-actions details { margin-left: auto; position: relative; }
.bo-trip-actions summary { cursor: pointer; list-style: none; }
.bo-trip-actions form button { background: transparent; border: 0; color: var(--navy); font-size: .875rem; padding: .45rem 0; }
.bo-trip-menu-panel { background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); min-width: 210px; padding: .7rem 1rem; position: absolute; right: 0; top: calc(100% + .55rem); z-index: 20; }
.bo-trip-menu-panel > a, .bo-trip-menu-panel form { border-top: 1px solid var(--line); display: block; }
.bo-trip-menu-panel > a:first-child { border-top: 0; }
.bo-trip-menu-panel > a { color: var(--navy); display: block; font-size: .875rem; font-weight: 700; padding: .65rem 0; }

.bo-primary { background: var(--navy); border: 0; color: white; display: inline-flex; font-size: .875rem; font-weight: 800; justify-content: center; letter-spacing: .08em; padding: .85rem 1.1rem; text-transform: uppercase; }
.bo-primary:hover { background: var(--blue); }
.bo-small { padding: .65rem .9rem; }
.bo-empty { border: 1px dashed var(--line); padding: 4rem; text-align: center; }
.bo-archive { margin-top: 3rem; }
.bo-archive summary { cursor: pointer; font-family: Georgia, serif; font-size: 1.5rem; }
.bo-archive summary span { background: var(--navy); color: white; font: 700 .875rem Arial; padding: .3rem .5rem; }
.bo-archive details > div { display: grid; margin-top: 1rem; }
.bo-archive details a { border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding: 1rem 0; }
.bo-system-link { border-top: 1px solid var(--line); margin-top: 4rem; padding-top: 1.2rem; text-align: right; }
.bo-system-link a { color: var(--muted); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* Editor */
.bo-editor { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: calc(var(--travel-vh) * 100 - 72px); }
.bo-sidebar { background: var(--navy); color: white; padding: 2rem 1.2rem; }
.bo-sidebar > a { color: var(--gold-soft); display: block; font-size: .8125rem; font-weight: 700; margin-bottom: 2rem; text-transform: uppercase; }
.bo-sidebar h1 { font-family: Georgia, serif; font-size: 1.7rem; font-weight: 500; line-height: 1; margin: 0 0 .6rem; }
.bo-sidebar > p { color: rgba(255,255,255,.55); font-size: .875rem; line-height: 1.45; margin-bottom: 2rem; }
.bo-tabs { display: grid; gap: .25rem; }
.bo-tabs a { border-left: 3px solid transparent; color: rgba(255,255,255,.66); font-size: .875rem; font-weight: 700; padding: .7rem .8rem; }
.bo-tabs a:hover, .bo-tabs a.active { background: rgba(255,255,255,.08); border-color: var(--gold); color: white; }
.bo-tab-group { color: rgba(255,255,255,.7); font-size: .8125rem; font-weight: 800; letter-spacing: .14em; margin: 1.2rem .8rem .25rem; text-transform: uppercase; }
.bo-tab-group:first-child { margin-top: 0; }
.bo-editor-main { padding: 3rem clamp(1.2rem, 4vw, 5rem) calc(6rem + var(--travel-safe-bottom)); }
/* El hueco inferior tiene que contar el área segura del dispositivo, no solo
   los 6rem: en un móvil con indicador de inicio la barra fija mide ~105px y
   el último contenido quedaba debajo. `.travel-live-main` ya lo hacía; este
   contenedor no, y son los dos que llevan la barra. */
.bo-mobile-nav { display: none; }
.bo-editor-head { align-items: end; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; margin-bottom: 2.5rem; padding-bottom: 1.5rem; }
.bo-editor-head h2 { font-family: Georgia, serif; font-size: clamp(2.5rem, 5vw, 5rem); font-weight: 500; margin: 0; }
.bo-editor-head p { color: var(--muted); margin: .6rem 0 0; }

.bo-form { background: var(--white); border: 1px solid var(--line); padding: 1.5rem; }
.bo-form + .bo-form, .bo-record + .bo-record { margin-top: 1rem; }
.bo-form-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(2, 1fr); }
.bo-field { display: flex; flex-direction: column; gap: .4rem; }
.bo-field.wide { grid-column: 1 / -1; }
.bo-field label, .bo-field > span { color: var(--muted); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bo-field small { color: var(--muted); font-size: .875rem; line-height: 1.45; }
.bo-field label .bo-optional { font-size: .8125rem; font-weight: 600; letter-spacing: 0; margin-left: .35rem; text-transform: none; }
.bo-field input, .bo-field select, .bo-field textarea {
  background: white;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--navy);
  min-height: 44px;
  padding: .7rem .8rem;
  width: 100%;
}
.bo-field textarea { min-height: 90px; resize: vertical; }
.bo-form-actions { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 1rem; justify-content: flex-end; margin-top: 1.5rem; padding-top: 1rem; }
.bo-danger { background: transparent; border: 1px solid var(--red); color: var(--red); font-size: .8125rem; font-weight: 700; padding: .6rem .8rem; text-transform: uppercase; }
.bo-record { background: var(--white); border: 1px solid var(--line); padding: 1.2rem; }
.bo-record-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 1rem; }
.bo-record-head h3 { font-family: Georgia, serif; font-size: 1.5rem; margin: 0; }
.bo-record-head span { color: var(--muted); font-size: .8125rem; }
.bo-add { border: 2px dashed var(--line); margin-top: 1.5rem; padding: 1.5rem; }
.bo-add h3 { font-family: Georgia, serif; margin-top: 0; }
.bo-summary-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); }
.bo-summary-grid article { background: var(--white); border: 1px solid var(--line); padding: 1.3rem; }
.bo-summary-grid span { color: var(--muted); display: block; font-size: .8125rem; font-weight: 800; text-transform: uppercase; }
.bo-summary-grid strong { color: var(--blue); display: block; font-family: Georgia, serif; font-size: 2.5rem; margin-top: .4rem; }
.bo-summary-six { grid-template-columns: repeat(3, 1fr); }
.bo-summary-four { grid-template-columns: repeat(4, 1fr); margin-top: 1rem; }
.bo-proactive {
  align-items: center;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr auto;
  margin-top: 1rem;
  padding: 1.2rem 1.4rem;
}
.bo-proactive h3 { font-family: Georgia, serif; font-size: 1.55rem; font-weight: 500; margin: 0; }
.bo-proactive p:not(.bo-eyebrow) { color: var(--muted); line-height: 1.5; margin: .35rem 0 0; }
.bo-proactive > a { color: var(--blue); font-size: .875rem; font-weight: 800; text-transform: uppercase; }
.bo-next-step {
  align-items: center;
  background: var(--gold-soft);
  border-left: 7px solid var(--gold);
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr auto;
  padding: clamp(1.4rem, 4vw, 2.4rem);
}
.bo-next-step h3 { font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; line-height: 1; margin: 0; }
.bo-next-step p:not(.bo-eyebrow) { color: var(--navy-2); line-height: 1.6; margin: .7rem 0 0; }
.bo-next-step .bo-primary { align-items: center; gap: .8rem; min-height: 50px; }
.bo-journey { margin-top: 3rem; }
.bo-journey-head { align-items: end; display: grid; gap: 3rem; grid-template-columns: 1fr 1fr; margin-bottom: 1.2rem; }
.bo-journey-head h3 { font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; margin: 0; }
.bo-journey-head > p { color: var(--muted); line-height: 1.6; margin: 0; }
.bo-journey-grid { background: var(--white); border: 1px solid var(--line); display: grid; }
.bo-journey-step { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 44px minmax(0, 1fr) auto; min-height: 86px; padding: 1rem 1.2rem; transition: background .16s ease; }
.bo-journey-step:last-child { border-bottom: 0; }
.bo-journey-step:hover { background: #faf7f0; }
.bo-step-number { align-items: center; background: #e5e0d7; border-radius: 50%; display: flex; font-weight: 800; height: 38px; justify-content: center; width: 38px; }
.bo-journey-step.is-done .bo-step-number { background: var(--green); color: white; }
.bo-journey-step.is-doing .bo-step-number { background: var(--gold); }
.bo-step-copy { display: flex; flex-direction: column; min-width: 0; }
.bo-step-copy b { font-family: Georgia, serif; font-size: 1.2rem; }
.bo-step-copy small { color: var(--muted); line-height: 1.45; margin-top: .25rem; }
.bo-step-state { color: var(--muted); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bo-journey-step.is-done .bo-step-state { color: var(--green); }
.bo-journey-step.is-doing .bo-step-state { color: #9b681d; }
.bo-friendly-note { background: #e5efe8; border-left: 5px solid var(--green); line-height: 1.6; margin-top: 1.5rem; padding: 1.2rem; }
.bo-flow-next {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr auto;
  margin-top: 4rem;
  padding-top: 2rem;
}
.bo-flow-next h3 { font-family: Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 500; margin: 0; }
.bo-flow-next p:not(.bo-eyebrow) { color: var(--muted); line-height: 1.5; margin: .45rem 0 0; }
.bo-readiness-grid { background: var(--white); border: 1px solid var(--line); display: grid; gap: 1rem 2rem; grid-template-columns: repeat(2, 1fr); margin-top: 1rem; padding: 1.4rem; }
.bo-readiness-grid > div > span { color: var(--muted); display: flex; font-size: .8125rem; font-weight: 800; justify-content: space-between; letter-spacing: .05em; text-transform: uppercase; }
.bo-readiness-grid > div > span b { color: var(--navy); }
.bo-readiness-grid i { background: #e5e0d7; display: block; height: 5px; margin-top: .55rem; }
.bo-readiness-grid em { background: var(--gold); display: block; height: 100%; }
.bo-note { background: var(--gold-soft); line-height: 1.6; margin-top: 1.5rem; padding: 1.2rem; }
.bo-validation { list-style: none; margin: 1rem 0; padding: 0; }
.bo-validation li { border-bottom: 1px solid var(--line); color: var(--red); padding: .7rem 0; }
.bo-publication-card { background: var(--navy); color: white; padding: 2rem; }
.bo-publication-card h3 { font-family: Georgia, serif; font-size: 2rem; margin-top: 0; }
.bo-publication-card p { color: rgba(255,255,255,.65); line-height: 1.6; }
.bo-publication-card .bo-eyebrow { color: var(--gold-soft); }
.bo-output-grid { display: grid; gap: .5rem; grid-template-columns: repeat(6, 1fr); margin: 1.2rem 0; }
.bo-output-grid span, .bo-output-grid a { background: rgba(255,255,255,.08); display: flex; flex-direction: column; min-width: 0; padding: .7rem; }
.bo-output-grid b { font-size: .875rem; }
.bo-output-grid small { color: rgba(255,255,255,.58); font-size: .8125rem; margin-top: .25rem; }
.bo-output-grid .output-ready { border-top: 3px solid #8fb89d; }
.bo-output-grid .output-failed { border-top: 3px solid #d7897e; }
.bo-output-grid .output-generating, .bo-output-grid .output-pending { border-top: 3px solid var(--gold); }
.bo-metric-grid { display: grid; gap: 1px; grid-template-columns: repeat(6, 1fr); margin-bottom: 1.5rem; }
.bo-metric-grid article { background: var(--white); border: 1px solid var(--line); display: flex; flex-direction: column; padding: 1rem; }
.bo-metric-grid small { color: var(--muted); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bo-metric-grid b { color: var(--blue); font-family: Georgia, serif; font-size: 1.25rem; margin-top: .35rem; }
.bo-map { background: #dce4e7; border: 1px solid var(--line); height: min(calc(var(--travel-vh) * 64), 620px); min-height: 430px; width: 100%; }
/* `var(--travel-vh)` en vez de `vh`: la unidad nativa no descuenta la barra
   dinámica del navegador y el mapa se comía la pantalla al hacer scroll. */
.bo-secondary { background: transparent; border: 1px solid var(--blue); color: var(--blue); font-size: .8125rem; font-weight: 800; padding: .65rem .9rem; text-transform: uppercase; }
.bo-version { background: var(--white); border: 1px solid var(--line); margin-top: 1rem; padding: 1.2rem; }
.bo-version.is-current { border-left: 5px solid var(--green); }
.bo-version-head { align-items: center; display: flex; justify-content: space-between; }
.bo-version-head > div { display: flex; flex-direction: column; }
.bo-version-head > div > strong { font-family: Georgia, serif; font-size: 1.5rem; }
.bo-version-head small, .bo-share-row small { color: var(--muted); margin-top: .25rem; }
.bo-version-head > span { background: var(--green); color: white; font-size: .8125rem; font-weight: 800; padding: .4rem .55rem; text-transform: uppercase; }
.bo-version .bo-output-grid a { background: var(--paper); color: var(--navy); }
.bo-version .bo-output-grid small { color: var(--muted); }
.bo-share-created { background: #e5efe8; border-left: 5px solid var(--green); display: flex; flex-direction: column; gap: .35rem; margin-top: 1rem; overflow-wrap: anywhere; padding: 1rem; }
.bo-share-created a { color: var(--blue); text-decoration: underline; }
.bo-share-row { align-items: center; background: var(--white); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: 1rem; }
.bo-share-row > div { display: flex; flex-direction: column; }
.bo-advanced-section { border: 1px solid var(--line); margin-top: 3rem; }
.bo-advanced-section > summary { align-items: center; background: var(--white); cursor: pointer; display: flex; justify-content: space-between; list-style: none; min-height: 64px; padding: 1rem 1.2rem; }
.bo-advanced-section > summary::-webkit-details-marker { display: none; }
.bo-advanced-section > summary span { font-family: Georgia, serif; font-size: 1.35rem; }
.bo-advanced-section > summary span::before { content: "＋"; display: inline-block; font-family: Arial, sans-serif; margin-right: .7rem; }
.bo-advanced-section[open] > summary span::before { content: "−"; }
.bo-advanced-section > summary small, .bo-advanced-content > p { color: var(--muted); }
.bo-advanced-content { border-top: 1px solid var(--line); padding: 1.2rem; }
.bo-new-shell { margin: 5rem auto; max-width: 900px; padding: 0 1.2rem var(--travel-safe-bottom); }
.bo-new-shell h1 { font-family: Georgia, serif; font-size: clamp(3rem, 8vw, 6rem); font-weight: 500; margin: 1rem 0 2rem; }
.bo-new-intro { color: var(--muted); font-size: 1.05rem; line-height: 1.7; margin: -1rem 0 1.5rem; max-width: 650px; }
.bo-new-form { box-shadow: var(--shadow); }
.bo-new-form > .bo-form-grid { padding-bottom: .4rem; }
.bo-form-advanced { border-top: 1px solid var(--line); margin-top: 1.2rem; padding-top: 1.2rem; }
.bo-form-advanced > summary { color: var(--blue); cursor: pointer; font-size: .875rem; font-weight: 800; list-style: none; padding: .65rem 0; text-transform: uppercase; }
.bo-form-advanced > summary::-webkit-details-marker { display: none; }
.bo-form-advanced > summary::before { content: "＋"; margin-right: .5rem; }
.bo-form-advanced[open] > summary::before { content: "−"; }
.bo-form-advanced > summary small { color: var(--muted); font-weight: 500; margin-left: .4rem; text-transform: none; }
.bo-form-advanced > .bo-form-grid { margin-top: 1rem; }
.bo-new-form .bo-form-actions > span { color: var(--muted); font-size: .875rem; margin-right: auto; }
.bo-system { max-width: 1200px; }
.bo-system-intro { color: var(--muted); line-height: 1.7; margin: -1rem 0 2rem; }
.bo-system-table { background: var(--white); border: 1px solid var(--line); }
.bo-system-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 2fr 1fr 1fr .5fr; padding: 1rem 1.2rem; }
.bo-system-row:last-child { border-bottom: 0; }
.bo-system-row span { display: flex; flex-direction: column; font-size: .875rem; }
.bo-system-row small { color: var(--muted); margin-top: .2rem; }
.bo-system-header { background: var(--navy); color: white; font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bo-system-good { color: var(--green); font-weight: 800; }
.bo-system-bad { color: var(--red); font-weight: 800; }
.bo-system-list { background: var(--white); border: 1px solid var(--line); display: grid; }
.bo-system-list span { border-bottom: 1px solid var(--line); font: .75rem monospace; padding: .9rem 1.2rem; }
.bo-system-list span:last-child { border-bottom: 0; }
.bo-assistant { margin: 0 auto; max-width: 920px; }
.bo-assistant-intro { background: var(--navy); color: white; padding: clamp(1.5rem, 4vw, 3rem); }
.bo-assistant-intro h3 { font-family: Georgia, serif; font-size: clamp(2.4rem, 5vw, 4.5rem); font-weight: 500; margin: 0; }
.bo-assistant-intro > p:last-child { color: rgba(255,255,255,.68); line-height: 1.7; max-width: 680px; }
.bo-assistant-chips { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0; }
.bo-assistant-chips button { background: var(--white); border: 1px solid var(--line); color: var(--blue); font-size: .875rem; font-weight: 700; padding: .7rem .9rem; }
.bo-assistant-form { background: var(--white); border: 1px solid var(--line); padding: 1.4rem; }
.bo-assistant-form label { color: var(--muted); display: block; font-size: .8125rem; font-weight: 800; letter-spacing: .08em; margin-bottom: .5rem; text-transform: uppercase; }
.bo-assistant-form textarea { border: 1px solid var(--line); min-height: 130px; padding: 1rem; resize: vertical; width: 100%; }
.bo-assistant-form > .bo-primary { margin-top: 1rem; }
.bo-assistant-safety { color: var(--green); display: flex; flex-wrap: wrap; font-size: .8125rem; font-weight: 700; gap: 1rem; margin-top: .8rem; }
.bo-assistant-status { background: var(--gold-soft); margin-top: 1rem; padding: 1rem 1.2rem; }
.bo-assistant-status.error { background: #f4e4e1; color: var(--red); }
.bo-assistant-status.success { background: #e5efe8; color: var(--green); }
.bo-assistant-result { background: var(--white); border: 1px solid var(--line); margin-top: 1rem; padding: 1.5rem; }
.bo-assistant-result > h3 { font-family: Georgia, serif; font-size: 2rem; font-weight: 500; }
#travelAssistantFindings article { border-top: 1px solid var(--line); padding: .8rem 0; }
#travelAssistantFindings article p { color: var(--muted); line-height: 1.5; margin: .3rem 0 0; }
.bo-assistant-operation { align-items: start; border-top: 1px solid var(--line); cursor: pointer; display: grid; gap: .8rem; grid-template-columns: auto 1fr; padding: 1rem 0; }
.bo-assistant-operation input { margin-top: .25rem; }
.bo-assistant-operation span { display: flex; flex-direction: column; }
.bo-assistant-operation small { color: var(--muted); line-height: 1.45; margin-top: .3rem; }
.bo-assistant-operation .bo-assistant-reason { color: var(--blue); margin-top: .65rem; }
.bo-assistant-operation .bo-assistant-consequence { background: #e5efe8; color: var(--green); margin-top: .55rem; padding: .55rem .65rem; }
.bo-checklist { border-bottom: 1px solid var(--line); margin-bottom: 2.5rem; padding-bottom: 2.5rem; }
.bo-checklist > .bo-record:first-child { border-left: 5px solid var(--gold); }
.bo-task { margin-left: 1.5rem; }
.bo-task.is-complete { opacity: .62; }
.bo-task.is-complete input[name="text"] { text-decoration: line-through; }
.travel-task-shell { background: #fff; border: 1px solid var(--line); border-radius: 14px; margin: .75rem 0 .75rem 1.5rem; overflow: hidden; }
.travel-task-shell > .bo-record { border-radius: 0; box-shadow: none; margin: 0; }
.travel-task-toggle { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; display: flex; gap: .75rem; justify-content: space-between; margin: .75rem 0 .75rem 1.5rem; min-height: 64px; padding: .65rem .8rem; }
.travel-task-shell > .travel-task-toggle { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; margin: 0; }
.travel-task-toggle label { align-items: center; cursor: pointer; display: grid; flex: 1; gap: .15rem .75rem; grid-template-columns: 44px minmax(0,1fr); min-width: 0; }
.travel-task-toggle input[type="checkbox"] { accent-color: var(--blue); grid-row: 1 / span 2; height: 26px; margin: 0; width: 26px; }
.travel-task-toggle span { font-size: .9375rem; font-weight: 800; overflow-wrap: anywhere; }
.travel-task-toggle small { color: var(--muted); font-size: .8125rem; }
.travel-task-toggle.is-complete span,.travel-task-shell.is-complete > .travel-task-toggle span { text-decoration: line-through; }
.travel-task-toggle.is-complete,.travel-task-shell.is-complete > .travel-task-toggle { background: #edf5f2; }
@media (max-width: 620px) {
  .travel-task-shell,.travel-task-toggle { margin-left: 0; }
  .travel-task-toggle { align-items: stretch; flex-direction: column; }
  .travel-task-toggle button { width: 100%; }
}
.travel-auth-body, .travel-landing { background: #f5f2ec; }
.travel-auth-shell { display: grid; min-height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height)); padding: 5rem 1rem calc(5rem + var(--travel-safe-bottom)); place-items: start center; }
.travel-auth-card { background: var(--white); border: 1px solid var(--line); box-shadow: 0 24px 70px rgba(20,43,64,.08); max-width: 520px; padding: clamp(1.5rem,5vw,3.5rem); width: 100%; }
.travel-auth-card h1 { font: 500 clamp(2.2rem,6vw,4rem)/.98 Georgia,serif; margin: .35rem 0 1rem; }
.travel-auth-card > p { color: var(--muted); line-height: 1.65; }
.travel-auth-card .bo-form { border: 0; padding: 1rem 0 0; }
.travel-auth-card .bo-field { margin-bottom: 1rem; }
.travel-auth-card .bo-primary { min-height: 48px; width: 100%; }
.travel-consent { align-items: start; cursor: pointer; display: grid; font-size: .875rem; gap: .6rem; grid-template-columns: auto 1fr; line-height: 1.45; margin: .8rem 0; }
.travel-consent input { height: 20px; margin: 0; width: 20px; }
.travel-auth-switch { font-size: .875rem; text-align: center; }
.travel-landing-topbar { background: rgba(245,242,236,.92); border-bottom-color: rgba(255,255,255,.24); backdrop-filter: blur(18px); }
.travel-memory-hero { color: white; min-height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height) - 64px); overflow: hidden; position: relative; }
.travel-memory-hero picture,.travel-memory-hero picture img,.travel-memory-shade { inset: 0; position: absolute; }
.travel-memory-hero picture img { height: 100%; object-fit: cover; object-position: center 52%; width: 100%; }
.travel-memory-shade { background: linear-gradient(90deg,rgba(8,22,34,.82) 0%,rgba(8,22,34,.57) 43%,rgba(8,22,34,.12) 75%),linear-gradient(0deg,rgba(8,22,34,.48),transparent 48%); }
.travel-memory-copy { margin: 0 auto; max-width: 1320px; padding: clamp(4.5rem,10vh,8rem) 2rem 7rem; position: relative; }
.travel-memory-brand { font-size: clamp(.82rem,1.4vw,1rem); font-weight: 900; letter-spacing: .16em; margin: 0 0 1.1rem; text-transform: uppercase; }
.travel-memory-copy h1 { font: 500 clamp(3.6rem,7vw,7rem)/.9 Georgia,serif; letter-spacing: -.052em; margin: 0; max-width: 900px; text-wrap: balance; }
.travel-memory-lead { color: rgba(255,255,255,.86); font-size: clamp(1rem,1.7vw,1.25rem); line-height: 1.65; margin: 1.8rem 0 0; max-width: 620px; }
.travel-landing-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 2rem 0 1rem; }
.travel-landing-actions .bo-primary { background: #fff; color: var(--navy); min-height: 52px; padding-inline: 1.4rem; }
.travel-landing-actions .bo-primary:hover { background: var(--gold-soft); }
.travel-memory-secondary { align-items: center; color: white; display: inline-flex; font-weight: 850; gap: .6rem; min-height: 48px; padding: .75rem .2rem; text-decoration: underline; text-decoration-color: rgba(255,255,255,.4); text-underline-offset: .35rem; }
.travel-memory-copy > small { color: rgba(255,255,255,.66); display: block; font-size: .8125rem; }
.travel-memory-scroll { align-items: center; background: var(--cream); bottom: 0; color: var(--navy); display: flex; font-size: .75rem; font-weight: 900; gap: 1rem; justify-content: space-between; letter-spacing: .09em; min-width: min(390px,82vw); padding: 1.35rem 2rem; position: absolute; right: 0; text-transform: uppercase; }
.travel-memory-scroll b { font-size: 1.15rem; }
.travel-story-intro { margin: 0 auto; max-width: 1320px; padding: clamp(5rem,10vw,9rem) 2rem; }
.travel-story-intro h2 { font: 500 clamp(3rem,7vw,6.6rem)/.92 Georgia,serif; letter-spacing: -.045em; margin: 1rem 0 2rem; max-width: 1050px; }
.travel-story-intro h2 em { color: var(--gold-ink); font-weight: 500; }
.travel-story-intro > p:last-child { color: var(--muted); font-size: 1.1rem; line-height: 1.75; max-width: 680px; }
.travel-product-story { background: #e9e4da; }
.travel-product-story > article { align-items: center; border-bottom: 1px solid rgba(23,50,77,.12); display: grid; gap: clamp(2.5rem,7vw,7rem); grid-template-columns: minmax(260px,.68fr) minmax(0,1.32fr); margin: 0 auto; max-width: 1320px; padding: clamp(4rem,8vw,7rem) 2rem; }
.travel-product-story > article:nth-child(even) .travel-story-copy { order: 2; }
.travel-product-story > article:nth-child(even) .travel-product-window { order: 1; }
.travel-story-copy > span { color: #87550c; font-size: .78rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.travel-story-copy h2 { font: 500 clamp(2.35rem,4.8vw,4.5rem)/.98 Georgia,serif; letter-spacing: -.035em; margin: .7rem 0 1.25rem; }
.travel-story-copy p { color: var(--muted); font-size: 1rem; line-height: 1.7; }
.travel-product-window { background: #faf9f6; border: 1px solid rgba(23,50,77,.16); border-radius: 26px; box-shadow: 0 35px 80px rgba(23,50,77,.12); overflow: hidden; padding: clamp(1.2rem,3vw,2rem); }
.travel-product-window > header { align-items: flex-end; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; margin-bottom: 1.25rem; padding-bottom: 1rem; }
.travel-product-window > header span { color: var(--muted); font-size: .8rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.travel-product-window > header b { font: 500 clamp(1.2rem,2.3vw,1.8rem) Georgia,serif; }
.travel-demo-priority { align-items: start; background: var(--navy); border-radius: 18px; color: white; display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr); padding: clamp(1.1rem,3vw,1.7rem); }
.travel-demo-priority i { align-items: center; background: var(--gold); border-radius: 50%; display: flex; font-style: normal; font-weight: 900; height: 34px; justify-content: center; width: 34px; }
.travel-demo-priority small,.travel-demo-now small { color: #f0d89e; display: block; font-size: .75rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.travel-demo-priority strong,.travel-demo-now strong { display: block; font: 500 clamp(1.3rem,2.4vw,2rem) Georgia,serif; margin: .35rem 0; }
.travel-demo-priority p,.travel-demo-now p { color: rgba(255,255,255,.7); line-height: 1.55; margin: .2rem 0 0; }
.travel-demo-rows { display: grid; margin-top: 1rem; }
.travel-demo-rows span { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: .9rem .2rem; }
.travel-demo-rows b { color: var(--blue); font-size: .8rem; }
.travel-product-live { background: var(--navy); color: white; }
.travel-product-live > header { border-color: rgba(255,255,255,.16); }
.travel-product-live > header span { color: rgba(255,255,255,.62); }
.travel-demo-now { background: linear-gradient(135deg,#31596c,#18334c); border: 1px solid rgba(255,255,255,.16); border-radius: 18px; min-height: 220px; padding: clamp(1.4rem,4vw,2.5rem); }
.travel-product-live nav { display: grid; gap: .55rem; grid-template-columns: repeat(5,minmax(0,1fr)); margin-top: 1rem; }
.travel-product-live nav span { background: rgba(255,255,255,.09); border-radius: 12px; font-size: .8rem; font-weight: 850; padding: 1rem .35rem; text-align: center; }
.travel-demo-album { display: grid; gap: .7rem; grid-template-columns: 1.25fr .75fr .75fr; min-height: 240px; }
.travel-demo-album i { background: linear-gradient(145deg,#dec59a,#7c9ca3); border-radius: 15px; }
.travel-demo-album i:nth-child(2) { background: linear-gradient(145deg,#819c8a,#ddd2b8); }
.travel-demo-album i:nth-child(3) { background: linear-gradient(145deg,#c58168,#f1cf99); }
.travel-product-memory blockquote { color: var(--muted); font: 500 1.05rem/1.55 Georgia,serif; margin: 1rem 0 0; }
.travel-trust-story { align-items: center; display: grid; gap: clamp(3rem,8vw,9rem); grid-template-columns: minmax(0,1fr) minmax(340px,.82fr); margin: 0 auto; max-width: 1320px; padding: clamp(5rem,10vw,9rem) 2rem; }
.travel-trust-story h2 { font: 500 clamp(2.5rem,5.5vw,5.3rem)/.98 Georgia,serif; letter-spacing: -.04em; margin: 1rem 0 1.5rem; }
.travel-trust-story > div:first-child > p:last-child { color: var(--muted); line-height: 1.7; max-width: 630px; }
.travel-trust-visual { background: var(--navy); border-radius: 26px; color: white; padding: clamp(1.2rem,4vw,2.5rem); }
.travel-trust-visual span { align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); display: grid; gap: .2rem 1rem; grid-template-columns: auto minmax(0,1fr); padding: 1rem 0; }
.travel-trust-visual span:last-child { border-bottom: 0; }
.travel-trust-visual i { color: #e1bd72; font-style: normal; grid-row: 1 / span 2; }
.travel-trust-visual small { color: rgba(255,255,255,.62); }
.travel-landing-final { background: #e7d8b5; max-width: none; padding: clamp(5rem,10vw,9rem) 2rem; text-align: center; }
.travel-landing-final > .bo-eyebrow { color: #285964; }
.travel-landing-final h2 { font: 500 clamp(3rem,7vw,6.5rem)/.95 Georgia,serif; letter-spacing: -.045em; margin: 1rem auto 1.4rem; max-width: 1050px; }
.travel-landing-final > p:not(.bo-eyebrow) { color: #52616a; font-size: 1.05rem; line-height: 1.65; margin: 0 auto 2rem; max-width: 600px; }
.travel-landing-final .bo-primary { min-height: 52px; }
.travel-landing-footer { align-items: center; background: var(--navy); color: rgba(255,255,255,.72); display: flex; font-size: .875rem; justify-content: space-between; padding: 2rem max(2rem,calc((100vw - 1220px)/2)); }
.travel-landing-footer nav { display: flex; gap: 1.4rem; }
.travel-landing-footer a { color: white; }
.travel-health { align-items: center; background: var(--white); border: 1px solid var(--line); border-left: 7px solid var(--gold); display: grid; gap: 1.2rem; grid-template-columns: auto 1fr auto; margin-bottom: 1rem; padding: 1.4rem; }
.travel-health.is-green { border-left-color: var(--green); }
.travel-health.is-red { border-left-color: var(--red); }
.travel-health h3 { font: 500 1.8rem Georgia,serif; margin: .2rem 0; }
.travel-health p { color: var(--muted); margin: .2rem 0; }
.travel-health-dot { background: var(--gold); border: 5px solid var(--gold-soft); border-radius: 50%; display: inline-block; height: 25px; width: 25px; }
.travel-health-dot.green { background: var(--green); border-color: #dcebe1; }
.travel-health-dot.red { background: var(--red); border-color: #f3dfdc; }
.travel-risk-list { display: grid; gap: .55rem; margin-bottom: 1rem; }
.travel-risk { align-items: center; background: var(--white); border: 1px solid var(--line); display: grid; gap: .9rem; grid-template-columns: 30px 1fr auto; padding: .85rem 1rem; }
.travel-risk > span:first-child { align-items: center; background: var(--gold-soft); border-radius: 50%; color: var(--gold); display: flex; font-weight: 900; height: 28px; justify-content: center; width: 28px; }
.travel-risk.is-red > span:first-child { background: #f3dfdc; color: var(--red); }
.travel-risk > span:nth-child(2) { display: flex; flex-direction: column; gap: .2rem; }
.travel-risk small { color: var(--muted); line-height: 1.4; }
.travel-risk > strong { color: var(--blue); font-size: .875rem; }
.travel-access-list { background: var(--white); border: 1px solid var(--line); }
.travel-access-list article { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: auto 1fr auto auto; padding: 1rem 1.2rem; }
.travel-access-list article:last-child { border-bottom: 0; }
.travel-avatar { align-items: center; background: var(--navy); border-radius: 50%; color: white; display: flex; font-weight: 800; height: 40px; justify-content: center; width: 40px; }
.travel-access-list article > div { display: flex; flex-direction: column; }
.travel-access-list small { color: var(--muted); margin-top: .2rem; }
.travel-role { background: var(--gold-soft); color: var(--navy); font-size: .8125rem; font-weight: 800; padding: .45rem .6rem; }
.travel-access-list article > .travel-access-actions { align-items: stretch; display: flex; flex-direction: row; gap: .45rem; }
.travel-access-actions form { align-items: center; display: flex; gap: .35rem; margin: 0; }
.travel-access-actions select, .travel-access-actions button { min-height: 44px; }
.travel-activity p { border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 150px 1fr; margin: 0; padding: .75rem 0; }
.travel-activity span { color: var(--muted); font-size: .875rem; }
.travel-health-badge { align-items: center; display: inline-flex; font-size: .8125rem; font-weight: 850; gap: .42rem; letter-spacing: .04em; text-transform: uppercase; }
.travel-health-badge i { background: var(--gold); border-radius: 50%; height: 9px; width: 9px; }
.travel-health-badge.is-green i { background: var(--green); }
.travel-health-badge.is-red i { background: var(--red); }
.travel-job-card { align-items: center; background: var(--navy); color: white; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) minmax(160px,.5fr) auto; margin-bottom: 1rem; padding: 1.4rem; }
.travel-job-card h3 { font: 500 1.6rem Georgia,serif; margin: .2rem 0; }
.travel-job-card p { color: rgba(255,255,255,.68); margin: .25rem 0; }
.travel-job-progress { background: rgba(255,255,255,.15); height: 8px; overflow: hidden; }
.travel-job-progress i { background: var(--gold); display: block; height: 100%; transition: width .3s ease; }
.travel-job-card > strong { font: 500 1.5rem Georgia,serif; }
.travel-change-summary { background: var(--white); border: 1px solid var(--line); list-style: none; margin: -1rem 0 1rem; padding: 0 1.2rem; }
.travel-change-summary li { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: .8rem 0; }
.travel-change-summary li:last-child { border-bottom: 0; }
.travel-change-summary span { color: var(--muted); font-size: .875rem; }
.travel-today-hero { align-items: end; background: var(--navy); color: white; display: flex; justify-content: space-between; padding: clamp(1.5rem,5vw,3.5rem); }
.travel-today-hero h3 { font: 500 clamp(2.3rem,5vw,4.4rem)/1 Georgia,serif; margin: .35rem 0 1rem; }
.travel-today-hero p { color: rgba(255,255,255,.7); margin: 0; max-width: 680px; }
.travel-today-hero .bo-eyebrow { color: var(--gold-soft); }
.travel-today-hero time { color: var(--gold-soft); font: 500 clamp(3rem,8vw,6rem) Georgia,serif; }
.travel-now-grid { display: grid; gap: 1px; grid-template-columns: repeat(2,1fr); margin: 1px 0; }
.travel-now-card { background: var(--white); border: 1px solid var(--line); min-height: 250px; padding: clamp(1.4rem,4vw,2.5rem); }
.travel-now-card.is-current { border-top: 6px solid var(--gold); }
.travel-now-card > strong { color: var(--gold-ink); font: 500 2.5rem Georgia,serif; }
.travel-now-card h3 { font: 500 2rem Georgia,serif; margin: .55rem 0; }
.travel-now-card > p:last-child { color: var(--muted); }
.travel-today-info { display: grid; gap: 1px; grid-template-columns: repeat(2,1fr); margin-top: 1px; }
.travel-today-info > article { background: var(--white); border: 1px solid var(--line); padding: 1.3rem; }
.travel-today-info > article > div { align-items: center; display: flex; justify-content: space-between; }
.travel-today-info > article > div > strong { font: 500 1.5rem Georgia,serif; }
.travel-today-info > article > p { border-top: 1px solid var(--line); display: flex; flex-direction: column; margin: 0; padding: .7rem 0; }
.travel-today-info > article > p span { color: var(--muted); font-size: .875rem; margin-top: .2rem; }
.travel-today-info .travel-empty-line { color: var(--muted); }
.travel-today-actions { background: var(--gold-soft); display: grid; gap: 1px; grid-template-columns: repeat(5,1fr); margin-top: 1rem; }
.travel-today-actions a { background: var(--white); color: var(--blue); font-size: .875rem; font-weight: 800; min-height: 64px; padding: 1.4rem .5rem; text-align: center; }
.travel-journal-list { display: grid; gap: 1rem; }
.travel-journal-entry { background: var(--white); border: 1px solid var(--line); padding: clamp(1.2rem,4vw,2rem); }
.travel-journal-entry > h3 { font: 500 2rem Georgia,serif; }
.travel-journal-entry blockquote { border-left: 5px solid var(--gold); color: var(--navy); font: 500 1.4rem Georgia,serif; margin: 1.5rem 0 0; padding-left: 1rem; }
.travel-media-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.travel-media-card { background: var(--white); border: 1px solid var(--line); overflow: hidden; position: relative; }
.travel-media-card.is-cover { border: 3px solid var(--gold); }
.travel-media-card > a { background: #e9e6df; display: block; }
.travel-media-card img { aspect-ratio: 4/3; display: block; object-fit: cover; width: 100%; }
.travel-media-card form, .travel-media-caption { padding: 1rem; }
.travel-cover-label { background: var(--gold); color: var(--navy); font-size: .8125rem; font-weight: 900; left: .7rem; letter-spacing: .08em; padding: .45rem .6rem; position: absolute; text-transform: uppercase; top: .7rem; }
.travel-upload input[type="file"] { background: var(--gold-soft); border: 2px dashed var(--gold); min-height: 76px; padding: 1.2rem; }
.travel-memory-intro { align-items: center; background: var(--navy); color: white; display: grid; gap: 1rem; grid-template-columns: 1fr auto auto; margin-bottom: 1rem; padding: clamp(1.5rem,5vw,3rem); }
.travel-memory-intro h3 { font: 500 clamp(2.2rem,5vw,4rem)/1 Georgia,serif; margin: .3rem 0 1rem; }
.travel-memory-intro .bo-eyebrow { color: #f0d89e; }
.travel-memory-intro > div > p:last-child { color: rgba(255,255,255,.68); max-width: 650px; }
.travel-memory-intro > span { color: var(--gold-ink); font: 500 2.8rem Georgia,serif; text-align: center; }
.travel-memory-intro > span small { color: rgba(255,255,255,.68); display: block; font: 700 .8125rem system-ui,sans-serif; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 1050px) {
  .bo-stats { grid-template-columns: repeat(3, 1fr); }
  .bo-stats article:nth-child(3n) { border-right: 0; }
  .bo-trip-grid { grid-template-columns: repeat(2, 1fr); }
  .bo-editor { grid-template-columns: minmax(0,1fr); min-width: 0; width: 100%; }
  .bo-editor-main { min-width: 0; width: 100%; }
  .bo-sidebar { min-width: 0; overflow: hidden; padding: 1rem; position: sticky; top: 0; width: 100%; z-index: 20; }
  .bo-sidebar h1, .bo-sidebar > p { display: none; }
  .bo-sidebar > a { margin-bottom: 1rem; }
  .bo-tabs { display: flex; max-width: calc(100vw - 2rem); overflow-x: auto; }
  .bo-tabs a { min-width: max-content; }
  .bo-tab-group { display: none; }
  .bo-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .bo-summary-six { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 720px) {
  .bo-topbar { gap: .5rem; grid-template-columns: minmax(0,1fr) auto; padding: 0 1rem; }
  .bo-topbar nav { display: none; }
  .bo-top-actions > a:not(.bo-primary), .bo-mode-switch { display: none; }
  .bo-shell { padding-inline: 1rem; }
  .bo-hero { grid-template-columns: 1fr; padding: 4rem 0; }
  .bo-create-card { min-height: 190px; width: calc(100% - 1rem); }
  .bo-stats { grid-template-columns: repeat(2, 1fr); }
  .bo-stats article:nth-child(odd) { border-right: 1px solid var(--line); }
  .bo-stats article:nth-child(even) { border-right: 0; }
  .bo-section-head { display: block; }
  .bo-section-head > p { margin-top: 1rem; }
  .bo-trip-grid { grid-template-columns: 1fr; }
  .bo-editor-main { padding-inline: 1rem; }
  .bo-editor-head { align-items: start; flex-direction: column; gap: 1rem; }
  .bo-form-grid, .bo-summary-grid { grid-template-columns: 1fr; }
  .bo-next-step { align-items: stretch; grid-template-columns: 1fr; }
  .bo-next-step .bo-primary { width: 100%; }
  .bo-proactive, .bo-flow-next { align-items: stretch; grid-template-columns: 1fr; }
  .bo-flow-next .bo-primary { width: 100%; }
  .bo-journey-head { display: block; }
  .bo-journey-head > p { margin-top: .7rem; }
  .bo-journey-step { align-items: start; grid-template-columns: 38px minmax(0, 1fr); }
  .bo-step-number { height: 34px; width: 34px; }
  .bo-step-state { grid-column: 2; }
  .bo-readiness-grid { grid-template-columns: 1fr; }
  .bo-field.wide { grid-column: auto; }
  .bo-system-row { grid-template-columns: 1fr 1fr; }
  .bo-system-header { display: none; }
  .bo-output-grid { grid-template-columns: repeat(2, 1fr); }
  .bo-metric-grid { grid-template-columns: repeat(2, 1fr); }
  .bo-share-row { align-items: start; flex-direction: column; gap: 1rem; }
  .bo-new-shell { margin-block: 2rem; }
  .bo-new-form .bo-form-actions { align-items: stretch; flex-direction: column; }
  .bo-new-form .bo-form-actions .bo-primary { width: 100%; }
  .bo-form-advanced > summary small { display: block; margin: .35rem 0 0 1.45rem; }
  .bo-advanced-section > summary { align-items: start; flex-direction: column; gap: .35rem; }
  .bo-editor-main { padding-bottom: 7.5rem; }
  .bo-mobile-nav {
    background: var(--navy);
    bottom: 0;
    box-shadow: 0 -8px 28px rgba(20,43,64,.18);
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    left: 0;
    padding: .45rem max(.45rem, env(safe-area-inset-right)) max(.45rem, env(safe-area-inset-bottom)) max(.45rem, env(safe-area-inset-left));
    position: fixed;
    right: 0;
    z-index: 40;
  }
  .bo-mobile-nav a { border-top: 3px solid transparent; color: rgba(255,255,255,.66); font-size: .8125rem; font-weight: 800; min-height: 48px; padding: .8rem .25rem .65rem; text-align: center; text-transform: uppercase; }
  .bo-mobile-nav a.active { border-color: var(--gold); color: white; }
  .bo-mobile-nav.is-travel-mode { grid-template-columns: repeat(6, 1fr); }
  .bo-mobile-nav.is-travel-mode a { font-size: .875rem; padding-inline: .1rem; }
  .travel-landing-hero { grid-template-columns: 1fr; min-height: auto; padding: 4rem 1.25rem; }
  .travel-landing-hero h1 { font-size: clamp(3.2rem,16vw,5rem); }
  .travel-promise-card { box-shadow: 12px 12px 0 var(--gold-soft); }
  .travel-landing-steps { grid-template-columns: 1fr; margin-inline: 1rem; }
  .travel-landing-steps article { border-bottom: 1px solid var(--line); border-right: 0; }
  .travel-landing-final { padding: 5rem 1.25rem; }
  .travel-landing-footer { align-items: start; flex-direction: column; gap: 1rem; padding: 2rem 1.25rem calc(2rem + var(--travel-safe-bottom)); }
  .travel-health { align-items: start; grid-template-columns: auto 1fr; }
  .travel-health .bo-primary { grid-column: 1 / -1; width: 100%; }
  .travel-risk { align-items: start; grid-template-columns: 30px 1fr; }
  .travel-risk > strong { grid-column: 2; }
  .travel-access-list article { align-items: start; grid-template-columns: auto 1fr; }
  .travel-access-list article > .travel-role, .travel-access-list article > form, .travel-access-list article > .travel-access-actions { grid-column: 2; justify-self: start; }
  .travel-access-list article > .travel-access-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .travel-access-actions form { display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .travel-auth-shell { padding: 2rem 1rem calc(2rem + var(--travel-safe-bottom)); }
  .travel-job-card { align-items: start; grid-template-columns: 1fr auto; }
  .travel-job-progress { grid-column: 1; }
  .travel-today-hero { align-items: start; flex-direction: column; gap: 2rem; }
  .travel-now-grid, .travel-today-info { grid-template-columns: 1fr; }
  .travel-today-actions { grid-template-columns: repeat(5,1fr); overflow-x: auto; }
  .travel-today-actions a { min-width: 72px; }
  .travel-media-grid { grid-template-columns: 1fr; }
  .travel-memory-intro { grid-template-columns: repeat(2,1fr); }
  .travel-memory-intro > div { grid-column: 1 / -1; }
}

.travel-offline-control { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; display: flex; gap: 1.25rem; justify-content: space-between; margin: 1.4rem 0; padding: 1.25rem; }
.travel-offline-control h3 { margin: .15rem 0; }
.travel-offline-control p { margin: .2rem 0; max-width: 720px; }
.travel-offline-choice { align-items: flex-start; background: #faf8f3; border: 1px solid var(--line); border-radius: 12px; display: flex; gap: .75rem; grid-column: 1 / -1; padding: 1rem; }
.travel-offline-choice input { height: 22px; margin-top: .1rem; width: 22px; }
.travel-offline-choice strong, .travel-offline-choice small { display: block; }
.travel-offline-choice small { color: var(--muted); margin-top: .25rem; }
.travel-offline-notice { background: var(--navy); border-radius: 999px; bottom: calc(5.5rem + var(--travel-safe-bottom)); box-shadow: 0 16px 44px rgba(20,42,59,.27); color: #fff; left: 50%; max-width: min(90vw,620px); padding: .9rem 1.15rem; position: fixed; text-align: center; transform: translateX(-50%); z-index: 9999; }
.travel-offline-notice.success { background: #176146; }
.travel-offline-notice.warning { background: #8b5313; }
.travel-offline-body { background: linear-gradient(145deg,#10283b,#28536d); min-height: calc(var(--travel-vh) * 100); padding: clamp(1rem,5vw,4rem); padding-bottom: max(clamp(1rem,5vw,4rem),var(--travel-safe-bottom)); }
.travel-offline-shell { color: var(--navy); margin: auto; max-width: 820px; }
.travel-offline-shell > h1, .travel-offline-shell > #offlineStatus, .travel-offline-shell > .bo-eyebrow { color: #fff; }
.travel-offline-shell > h1 { font: 700 clamp(2.3rem,8vw,4.8rem)/1 Georgia,serif; margin: .4rem 0; }
.travel-offline-shell > #offlineStatus { margin-bottom: 2rem; }
.travel-offline-card { background: #fff; border-radius: 18px; margin: .8rem 0; padding: 1.25rem; }
.travel-offline-card > span { color: #b47724; font-size: .875rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.travel-offline-card h2 { margin: .25rem 0 1rem; }
.travel-offline-card p { border-top: 1px solid #eee7dc; display: flex; gap: 1rem; justify-content: space-between; margin: 0; padding: .7rem 0; }
.travel-offline-card p a { color: var(--navy); text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.travel-offline-card p span { color: var(--muted); text-align: right; }
.travel-offline-event { border-top: 1px solid #eee7dc; padding: .55rem 0; }
.travel-offline-event > p { border: 0; padding: .25rem 0; }
.travel-offline-event > div { display: flex; gap: .4rem; }
.travel-offline-event form { margin: 0; }
.travel-offline-event button, .travel-offline-task button, .travel-offline-write button { background: var(--navy); border: 0; border-radius: 8px; color: white; font: inherit; font-size: .8125rem; font-weight: 800; min-height: 44px; padding: .55rem .7rem; }
.travel-offline-event.is-pending-sync, .travel-offline-task.is-pending-sync { opacity: .55; }
.travel-offline-list { border-top: 1px solid #eee7dc; padding-bottom: .5rem; }
.travel-offline-list > p { border: 0; }
.travel-offline-task { align-items: center; display: flex; gap: .7rem; justify-content: space-between; padding: .35rem 0; }
.travel-offline-task span { color: var(--navy); font-size: .875rem; }
.travel-offline-write-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3,minmax(0,1fr)); }
.travel-offline-write-grid form { background: #f7f5ef; border-radius: 12px; display: flex; flex-direction: column; gap: .55rem; min-width: 0; padding: .9rem; }
.travel-offline-write-grid h3 { margin: 0; }
.travel-offline-write-grid label { color: var(--muted); font-size: .8125rem; font-weight: 800; }
.travel-offline-write-grid input, .travel-offline-write-grid textarea { background: white; border: 1px solid var(--line); border-radius: 8px; display: block; margin-top: .25rem; padding: .6rem; width: 100%; }
.travel-offline-write .travel-sync-state { margin: 1rem -1.25rem -1.25rem; }
.travel-offline-actions { display: flex; gap: .7rem; margin-top: 1rem; }
.travel-offline-actions button, .travel-offline-actions a { background: #fff; border: 0; border-radius: 10px; color: var(--navy); font: inherit; font-weight: 750; min-height: 48px; padding: .75rem 1rem; text-decoration: none; }
.travel-place-search { grid-column: 1 / -1; }
.travel-place-search > label { display: block; font-size: .875rem; font-weight: 800; margin-bottom: .35rem; }
.travel-place-search-row { display: grid; gap: .5rem; grid-template-columns: minmax(0,1fr) auto; }
.travel-place-search-row input { min-height: 46px; }
.travel-place-search-row button { background: var(--navy); border: 0; border-radius: 8px; color: #fff; font: inherit; font-weight: 750; min-height: 46px; padding: .7rem 1rem; }
.travel-place-search > small { color: var(--muted); display: block; margin-top: .4rem; }
.travel-place-results { display: grid; gap: .4rem; margin-top: .6rem; }
.travel-place-results button { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font: inherit; padding: .75rem; text-align: left; }
.travel-place-results button:hover, .travel-place-results button:focus-visible { border-color: var(--gold); }
.travel-location-advanced { grid-column: 1 / -1; }
.travel-location-map { background: #dfe5e7; height: 280px; margin-top: 1rem; }
.travel-coordinate-fields { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; padding-top: 1rem; }
form[data-draft-saved]::after { color: #39735f; content: attr(data-draft-saved); display: block; font-size: .8125rem; font-weight: 750; margin-top: .5rem; text-align: right; }
.bo-sharing-preferences { align-items: center; background: #fff; border: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: minmax(240px,1fr) repeat(2,minmax(180px,.65fr)) auto; margin-bottom: 1.25rem; padding: 1.25rem; }
.bo-sharing-preferences h3 { margin: .15rem 0; }
.bo-sharing-preferences p { margin: .2rem 0; }
button, .bo-primary, .bo-secondary, .bo-danger, input, select { min-height: 44px; }
textarea { min-height: 96px; }
@media (max-width: 700px) {
  .travel-offline-control { align-items: stretch; flex-direction: column; }
  .travel-offline-control button { min-height: 50px; width: 100%; }
  .travel-offline-card p { display: block; }
  .travel-offline-card p span { display: block; text-align: left; }
  .travel-offline-write-grid { grid-template-columns: 1fr; }
  .travel-place-search-row, .travel-coordinate-fields { grid-template-columns: 1fr; }
  .bo-sharing-preferences { align-items: stretch; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.bo-account-shell, .bo-legal-shell { margin: clamp(2rem,6vw,5.5rem) auto; max-width: 1120px; padding: 0 1.25rem calc(5rem + var(--travel-safe-bottom)); }
.bo-account-shell > h1, .bo-legal-shell > h1 { color: var(--navy); font: 700 clamp(2.6rem,7vw,5.8rem)/.98 Georgia,serif; margin: .45rem 0 1rem; }
.bo-account-intro { color: var(--muted); font-size: 1.08rem; margin: 0 0 2rem; }
.bo-account-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 1.25rem 0; }
.bo-account-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: clamp(1.25rem,3vw,2rem); }
.bo-account-card h2 { color: var(--navy); font: 700 clamp(1.5rem,3vw,2.2rem)/1.1 Georgia,serif; margin: .25rem 0 .8rem; }
.bo-account-shell > h1, .bo-account-card, .bo-account-intro, .bo-account-card code { overflow-wrap: anywhere; }
.bo-account-grid > *, .bo-account-card form, .bo-account-card .bo-field, .bo-account-row > div { min-width: 0; }
.bo-account-card p { color: var(--muted); }
.bo-account-card dl { border-block: 1px solid var(--line); margin: 1.2rem 0; }
.bo-account-card dl div { display: flex; justify-content: space-between; padding: .75rem 0; }
.bo-account-card dt { color: var(--muted); }
.bo-account-card dd { font-weight: 800; margin: 0; }
.bo-account-wide { margin: 1rem 0; }
.bo-account-row { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 0; }
.bo-account-row small, .bo-account-list span { color: var(--muted); display: block; }
.bo-account-list { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); }
.bo-account-list span { background: var(--paper); border-radius: 10px; padding: .8rem; }
.bo-account-list b { color: var(--navy); display: block; }
.bo-account-card form { display: grid; gap: .85rem; margin-top: 1rem; }
.bo-account-card details { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }
.bo-account-card details summary { color: var(--navy); cursor: pointer; font-weight: 800; }
.bo-account-qr { background: white; border: 1px solid var(--line); border-radius: 12px; display: block; margin: 1rem auto; max-width: 100%; padding: .5rem; }
.bo-account-recovery { background: #fff7de; border: 1px solid #e3c66e; border-radius: 12px; padding: 1rem; }
.bo-account-recovery code { background: #fff; border-radius: 8px; color: var(--navy); display: block; font: 700 .95rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace; margin-top: .75rem; padding: .8rem; white-space: pre-wrap; }
.bo-account-warning { align-items: center; background: #fff5db; border: 1px solid #dfbd62; border-radius: 16px; display: flex; gap: 1rem; justify-content: space-between; margin: 1rem 0; padding: 1.25rem; }
.bo-account-warning p { margin: .3rem 0 0; }
.bo-danger-zone { background: #fff; border: 1px solid #d8b8b3; border-radius: 14px; margin: 2rem 0; }
.bo-danger-zone > summary { color: #8b3026; cursor: pointer; font-weight: 800; padding: 1.2rem; }
.bo-danger-zone > div { border-top: 1px solid #ead4d1; max-width: 720px; padding: 1.25rem; }
.bo-danger-zone form { display: grid; gap: 1rem; margin-top: 1rem; }
.bo-legal-shell { max-width: 880px; }
.bo-legal-shell h2 { color: var(--navy); font: 700 1.55rem/1.2 Georgia,serif; margin: 2rem 0 .55rem; }
.bo-legal-shell p { line-height: 1.72; }
.bo-legal-notice { background: #fff5db; border-left: 5px solid var(--gold); margin: 1.5rem 0 2rem; padding: 1rem 1.2rem; }
.bo-inline-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; }
.bo-inline-actions form { margin: 0; }
@media (max-width: 700px) {
  .bo-account-grid { grid-template-columns: 1fr; }
  .bo-account-warning, .bo-account-row { align-items: stretch; flex-direction: column; }
  .bo-account-row form, .bo-account-row button, .bo-account-warning form, .bo-account-warning button { width: 100%; }
}

/* Application shell · Release 1.0 visual system */
:root {
  --navy: #17243a;
  --navy-2: #293952;
  --blue: #356b75;
  --paper: #f4f6f8;
  --white: #ffffff;
  --gold: #e7865c;
  --gold-soft: #fbe9e1;
  --green: #327669;
  --red: #ae4f51;
  --muted: #596475;
  --gold-ink: #a74d2a;
  --line: #e2e7ec;
  --shadow: 0 18px 50px rgba(23,36,58,.08);
  --soft-shadow: 0 8px 24px rgba(23,36,58,.07);
}

html { background: var(--paper); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { background: var(--paper); }

.bo-topbar {
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  min-height: var(--travel-topbar-height);
  padding: var(--travel-safe-top) max(2rem,var(--travel-safe-right)) 0 max(2rem,var(--travel-safe-left));
  position: sticky;
  top: 0;
  z-index: 60;
}
.bo-brand { gap: .75rem; }
.bo-brand > span:first-child {
  background: linear-gradient(145deg,var(--gold),#f3ad73);
  border-radius: 12px;
  box-shadow: 0 7px 16px rgba(231,134,92,.25);
  color: var(--navy);
  font: 800 1.15rem/1 Georgia,serif;
  height: 40px;
  width: 40px;
}
.bo-brand > .bo-brand-copy { background: transparent; color: var(--navy); display: flex; flex-direction: column; height: auto; line-height: 1; place-items: initial; width: auto; }
.bo-brand-copy b { font: 800 .98rem/1 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.02em; }
.bo-brand-copy small { color: var(--muted); font-size: .8125rem; font-weight: 700; letter-spacing: .12em; margin-top: .28rem; text-transform: uppercase; }
.bo-topbar nav a, .bo-top-actions > a:not(.bo-primary) { color: var(--muted); }
.bo-topbar nav a:hover, .bo-top-actions > a:not(.bo-primary):hover { color: var(--navy); }
.bo-topbar .bo-mode-switch { background: #eef0ee; border-color: #d9ddda; }
.bo-topbar .bo-mode-switch a, .bo-topbar .bo-mode-switch span { color: var(--muted); }
.bo-topbar .bo-mode-switch [aria-current="page"] { background: var(--navy); color: white; }
.bo-help-action {
  align-items: center;
  background: var(--gold-soft);
  border-radius: 999px;
  color: var(--gold-ink) !important;
  display: inline-flex;
  font-size: .875rem !important;
  font-weight: 800;
  gap: .45rem;
  min-height: 44px;
  padding: .65rem 1rem;
}
.bo-help-action span { font-size: 1rem; }

.bo-editor { grid-template-columns: 286px minmax(0,1fr); min-height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height)); }
.bo-sidebar {
  background: #eef1f4;
  border-right: 1px solid var(--line);
  color: var(--navy);
  height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height));
  overflow-y: auto;
  padding: 1.35rem 1rem 2rem;
  position: sticky;
  top: var(--travel-topbar-height);
}
.bo-sidebar .bo-back-link { color: var(--muted); font-size: .8125rem; letter-spacing: .06em; margin: 0 .55rem 1rem; text-transform: none; }
.bo-trip-context {
  align-items: center;
  background: linear-gradient(145deg,#17243a,#293f5d);
  border-radius: 16px;
  box-shadow: var(--soft-shadow);
  color: white;
  display: grid;
  gap: .75rem;
  grid-template-columns: 40px minmax(0,1fr);
  margin-bottom: 1.1rem;
  padding: 1rem;
  text-decoration: none;
}
.bo-trip-context:hover { box-shadow: 0 12px 28px rgba(12,31,51,.25); transform: translateY(-1px); }

/* Cartera de viaje · datos reutilizables y protegidos de la cuenta. */
.travel-account-wallet { align-items: center; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; }
.travel-account-wallet h2, .travel-account-wallet p { margin-bottom: .4rem; }
.travel-wallet-shell { margin: 0 auto; max-width: 1180px; padding: 2.5rem max(1rem,4vw) 5rem; }
.travel-wallet-shell > h1 { font-size: clamp(2rem,4vw,3.5rem); margin-bottom: .5rem; }
.travel-wallet-intro { color: var(--muted); font-size: 1rem; max-width: 760px; }
.travel-wallet-lock { align-items: center; background: #edf3f0; border: 1px solid #c8d8d1; border-radius: 18px; display: grid; gap: 1.25rem; grid-template-columns: minmax(0,1fr) auto; margin: 1.5rem 0; padding: 1.25rem; }
.travel-wallet-lock.is-unlocked { background: #f0f5ed; border-color: #b8d0ae; }
.travel-wallet-lock h2, .travel-wallet-lock p { margin: .15rem 0; }
.travel-wallet-unlock { align-items: end; display: flex; gap: .65rem; }
.travel-wallet-unlock .bo-field { min-width: 190px; }
.travel-wallet-nav { display: flex; gap: .45rem; margin: 1.4rem 0; overflow-x: auto; padding-bottom: .25rem; }
.travel-wallet-nav a { background: white; border: 1px solid var(--line); border-radius: 999px; color: var(--navy); flex: 0 0 auto; font-size: .875rem; font-weight: 800; padding: .55rem .8rem; text-decoration: none; }
.travel-wallet-section { scroll-margin-top: calc(var(--travel-topbar-height) + 18px); }
.travel-wallet-section + .travel-wallet-section { border-top: 1px solid var(--line); margin-top: 2rem; padding-top: 2rem; }
.travel-wallet-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.travel-wallet-card, .travel-wallet-add { background: white; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.travel-wallet-card > summary, .travel-wallet-add > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 1rem; }
.travel-wallet-card > summary::-webkit-details-marker, .travel-wallet-add > summary::-webkit-details-marker { display: none; }
.travel-wallet-card > summary div { display: grid; }
.travel-wallet-card > summary small { color: var(--muted); }
.travel-wallet-card > form { border-top: 1px solid var(--line); padding: 1rem; }
.travel-wallet-add { margin-top: .9rem; }
.travel-wallet-add .bo-add { border: 0; border-top: 1px solid var(--line); border-radius: 0; margin: 0; }
.travel-wallet-list { display: grid; gap: .55rem; }
.travel-wallet-list article { align-items: center; background: white; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: .7rem; grid-template-columns: minmax(0,1fr) auto auto; padding: .85rem 1rem; }
.travel-wallet-list article > div:first-child { display: grid; }
.travel-wallet-list small { color: var(--muted); }
.travel-wallet-copy { align-items: center; display: flex; gap: .35rem; }
.travel-wallet-copy input { max-width: 200px; }
.travel-wallet-boundary { background: #f5f2ec; border: 1px solid #ddd7cc; border-radius: 16px; margin-top: 1.5rem; padding: 1rem 1.2rem; }
.travel-wallet-boundary h2 { font-size: 1.1rem; margin: 0 0 .35rem; }
.travel-wallet-boundary p { color: var(--muted); margin: 0; }
.travel-wallet-export { align-items: end; display: flex; gap: .55rem; margin-top: .8rem; }
.travel-wallet-export label { font-weight: 800; }
.travel-wallet-export select { min-width: 220px; }
.travel-wallet-trip-picker { align-items: center; background: #edf3f0; border: 1px solid #c8d8d1; border-radius: 16px; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) minmax(280px,.7fr); margin-bottom: 1rem; padding: 1rem; }
.travel-wallet-trip-picker h3, .travel-wallet-trip-picker p { margin: .15rem 0; }
.travel-wallet-trip-picker > form { align-items: end; display: grid; gap: .45rem; grid-template-columns: minmax(0,1fr) auto; }
.travel-wallet-trip-picker > form label { font-weight: 800; grid-column: 1 / -1; }
.travel-wallet-save-choice { align-items: start; background: #f5f7f5; border: 1px solid var(--line); border-radius: 13px; display: flex; gap: .65rem; padding: .8rem; }
.travel-wallet-save-choice input { margin-top: .25rem; }
.travel-wallet-save-choice span { display: grid; }
.travel-wallet-save-choice small { color: var(--muted); }
@media(max-width:760px){.travel-account-wallet,.travel-wallet-lock{grid-template-columns:1fr}.travel-wallet-unlock{align-items:stretch;flex-direction:column}.travel-wallet-grid{grid-template-columns:1fr}.travel-wallet-list article{grid-template-columns:1fr}.travel-wallet-copy{align-items:stretch;flex-direction:column}.travel-wallet-copy input{max-width:none}.travel-wallet-export{align-items:stretch;flex-direction:column}}
@media(max-width:760px){.travel-wallet-trip-picker{grid-template-columns:1fr}.travel-wallet-trip-picker>form{align-items:stretch;grid-template-columns:1fr}.travel-wallet-trip-picker>form label{grid-column:auto}}
.bo-trip-context > span {
  align-items: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  display: flex;
  font-size: 1.15rem;
  font-weight: 850;
  height: 40px;
  justify-content: center;
}
.bo-sidebar .bo-trip-context h1 { font: 800 .83rem/1.2 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-sidebar .bo-trip-context p { color: rgba(255,255,255,.62); font-size: .8125rem; margin: .28rem 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-tabs { gap: .15rem; }
.bo-tab-group { color: #606d7f; font-size: .8125rem; letter-spacing: .14em; margin: 1.15rem .65rem .38rem; }
.bo-tabs a {
  align-items: center;
  border: 0;
  border-radius: 10px;
  color: #566376;
  display: grid;
  font-size: .875rem;
  font-weight: 700;
  gap: .7rem;
  grid-template-columns: 24px minmax(0,1fr);
  min-height: 44px;
  padding: .46rem .62rem;
}
.bo-tab-icon {
  align-items: center;
  color: #8c98a8;
  display: flex;
  font-size: .9rem;
  height: 24px;
  justify-content: center;
  width: 24px;
}
.bo-tabs a:hover { background: rgba(255,255,255,.62); color: var(--navy); }
.bo-tabs a.active { background: white; box-shadow: 0 4px 16px rgba(23,36,58,.08); color: var(--navy); }
.bo-tabs a.active .bo-tab-icon { background: var(--gold-soft); border-radius: 7px; color: var(--gold-ink); }

.bo-editor-main { background: var(--paper); min-width: 0; padding: 2.25rem clamp(1.35rem,4vw,4.5rem) calc(6rem + var(--travel-safe-bottom)); }
.bo-editor-main > * { margin-left: auto; margin-right: auto; max-width: 1180px; }
.bo-editor-head { align-items: center; border: 0; margin-bottom: 1.8rem; padding: 0; }
.bo-editor-head h2 { font: 800 clamp(1.85rem,3vw,2.7rem)/1.08 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.045em; }
.bo-editor-head p { font-size: .875rem; }
.bo-editor-head .bo-eyebrow { color: var(--gold-ink); margin-bottom: .55rem; }
.travel-archived-notice { align-items: center; background: #eef1f3; border: 1px solid #d9dee2; border-radius: 15px; color: var(--navy); display: grid; gap: 1rem; grid-template-columns: auto minmax(0,1fr) auto; margin-bottom: 1.4rem; padding: 1rem 1.1rem; }
.travel-archived-notice > span { align-items: center; background: #dfe5e9; border-radius: 50%; display: flex; font-size: 1rem; height: 38px; justify-content: center; width: 38px; }
.travel-archived-notice strong { display: block; font-size: .875rem; }
.travel-archived-notice p { color: var(--muted); font-size: .875rem; line-height: 1.45; margin: .18rem 0 0; }
.travel-archived-notice small { color: var(--muted); font-size: .8125rem; }
.bo-status-pill { background: var(--navy); border-radius: 999px; color: white; font-size: .8125rem; font-weight: 800; letter-spacing: .06em; padding: .55rem .8rem; text-transform: uppercase; }
.bo-status-pill.status-before { background: #8a4a2f; }
.bo-status-pill.status-during { background: #255e64; }
.bo-status-pill.status-after { background: #56652f; }

.travel-command-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); }
.travel-trip-hero {
  background: linear-gradient(135deg,#17243a 0%,#233c5c 62%,#315c68 100%);
  border-radius: 24px;
  box-shadow: 0 24px 55px rgba(23,36,58,.2);
  color: white;
  display: flex;
  flex-direction: column;
  min-height: 360px;
  overflow: hidden;
  padding: clamp(1.5rem,3.5vw,2.5rem);
  position: relative;
}
.travel-trip-orbit { border: 1px solid rgba(255,255,255,.14); border-radius: 50%; height: 410px; position: absolute; right: -165px; top: -175px; width: 410px; }
.travel-trip-orbit::before, .travel-trip-orbit::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; inset: 42px; position: absolute; }
.travel-trip-orbit::after { inset: 95px; }
.travel-trip-hero-top { display: flex; gap: .5rem; justify-content: space-between; position: relative; }
.travel-trip-hero-top span { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; font-size: .8125rem; font-weight: 800; letter-spacing: .08em; padding: .45rem .7rem; text-transform: uppercase; }
.travel-trip-hero-copy { margin: auto 0; position: relative; }
.travel-trip-hero-copy p { color: rgba(255,255,255,.58); font-size: .8125rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 .65rem; text-transform: uppercase; }
.travel-trip-hero-copy h3 { font: 750 clamp(2.3rem,4.8vw,4.3rem)/.95 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.055em; margin: 0 0 1rem; max-width: 650px; }
.travel-trip-hero-copy > span { color: rgba(255,255,255,.72); font-size: .88rem; }
.travel-trip-hero-copy b { color: #f3ad73; margin: 0 .5rem; }
.travel-trip-hero-foot { align-items: end; border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 1.5rem; grid-template-columns: auto auto 1fr; padding-top: 1.15rem; position: relative; }
.travel-trip-hero-foot > span { display: flex; flex-direction: column; }
.travel-trip-hero-foot small { color: rgba(255,255,255,.5); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.travel-trip-hero-foot b { font-size: .8125rem; margin-top: .25rem; }
.travel-trip-hero-foot a { color: white; font-size: .875rem; font-weight: 800; justify-self: end; }

.travel-focus-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--soft-shadow);
  display: flex;
  flex-direction: column;
  min-height: 360px;
  padding: clamp(1.4rem,3vw,2rem);
}
.travel-focus-count { align-items: baseline; background: var(--gold-soft); border-radius: 14px; color: var(--gold-ink); display: flex; height: 62px; justify-content: center; width: 62px; }
.travel-focus-count span { font-size: 2rem; font-weight: 850; }
.travel-focus-count small { font-size: .8125rem; font-weight: 800; margin-left: .15rem; }
.travel-focus-card > div:nth-child(2) { margin: auto 0; }
.travel-focus-card .bo-eyebrow { color: var(--gold-ink); margin-bottom: .65rem; }
.travel-focus-card h3 { font: 800 clamp(1.65rem,3vw,2.35rem)/1.05 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.04em; margin: 0; }
.travel-focus-card p:not(.bo-eyebrow) { color: var(--muted); font-size: .875rem; line-height: 1.55; }
.travel-focus-card .bo-primary { border-radius: 12px; justify-content: space-between; min-height: 50px; padding-inline: 1rem; width: 100%; }

.travel-health { border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); margin: 1rem 0 0; padding: 1rem 1.2rem; }
.travel-health.is-green { background: #e9f4f0; }
.travel-health.is-red { background: #f9e8e7; }
.travel-health h3 { font: 800 1.05rem/1.2 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.travel-health p { font-size: .8125rem; }
.travel-health .bo-eyebrow { margin-bottom: .3rem; }
.travel-health > a { color: var(--blue); font-size: .8125rem; font-weight: 850; }

.travel-risk-list { gap: .45rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1rem; }
.travel-risk { border: 0; border-radius: 14px; box-shadow: var(--soft-shadow); }
.travel-risk > strong { white-space: nowrap; }

.bo-summary-four { gap: 1rem; margin-top: 1rem; }
.bo-summary-grid article { border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); min-height: 150px; padding: 1.15rem; }
.bo-summary-grid article > span { color: #596475; letter-spacing: .07em; }
.bo-summary-grid article > strong { color: var(--navy); font: 800 2.15rem/1 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.05em; margin-top: auto; }
.bo-summary-grid article > strong small { color: var(--muted); font-size: .875rem; letter-spacing: 0; }
.bo-summary-grid article > i { background: #edf0f3; border-radius: 99px; display: block; height: 5px; margin: .75rem 0 .55rem; overflow: hidden; }
.bo-summary-grid article > i b { background: linear-gradient(90deg,var(--gold),#f0ac73); border-radius: inherit; display: block; height: 100%; width: var(--metric); }
.bo-summary-grid article > small { color: var(--muted); font-size: .8125rem; }

.bo-proactive { border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); }
.bo-journey { margin-top: 2.5rem; }
.bo-journey-head { align-items: center; }
.bo-journey-head h3 { font: 800 clamp(1.7rem,3vw,2.4rem)/1.05 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.04em; }
.bo-journey-grid { background: transparent; border: 0; display: grid; gap: .75rem; grid-template-columns: repeat(3,minmax(0,1fr)); }
.bo-journey-step { align-content: start; background: white; border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); gap: .75rem; grid-template-columns: 40px minmax(0,1fr); min-height: 154px; padding: 1.15rem; }
.bo-journey-step:last-child { border: 0; }
.bo-journey-step:hover { background: white; box-shadow: 0 12px 32px rgba(23,36,58,.11); transform: translateY(-2px); }
.bo-step-number { border-radius: 11px; height: 38px; width: 38px; }
.bo-step-copy b { font: 800 .94rem/1.2 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.bo-step-copy small { font-size: .875rem; }
.bo-step-state { grid-column: 2; }
.bo-friendly-note { border: 0; border-radius: 14px; font-size: .875rem; }

/* Data pages become compact lists, opening one record only when it is needed. */
.bo-record { border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); padding: 1.15rem 1.25rem; }
.bo-record-head { cursor: pointer; margin: 0; min-height: 44px; padding-right: 2rem; position: relative; }
.bo-record-head h3 { font: 800 1rem/1.25 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.bo-record-head > span { background: #edf0f3; border-radius: 999px; color: #5e6978; font-size: .8125rem; font-weight: 800; padding: .4rem .6rem; }
.travel-record-toggle { color: var(--muted); font-size: 1.15rem; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.bo-record.is-collapsed > .bo-form-grid, .bo-record.is-collapsed > .bo-form-actions, .bo-record.is-collapsed > .travel-location-advanced { display: none; }
.bo-record:not(.is-collapsed) > .bo-form-grid { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1.2rem; }
.bo-record:not(.is-collapsed) .travel-record-toggle { transform: translateY(-50%) rotate(180deg); }
.bo-record.is-server-summary { align-items: center; display: grid; gap: .8rem; grid-template-columns: minmax(0,1fr) auto; }
.bo-record.is-server-summary .bo-record-head { cursor: default; min-width: 0; }
.bo-record-edit-link { align-items: center; display: inline-flex; justify-content: center; min-height: 44px; text-decoration: none; }
.bo-form, .bo-add { border: 0; border-radius: 16px; box-shadow: var(--soft-shadow); }
.bo-add { background: #eef5f4; border: 1px dashed #9abeb8; }
.bo-add h3 { font: 800 1.1rem/1.2 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.bo-field input, .bo-field select, .bo-field textarea { border: 1px solid #d7dde4; border-radius: 10px; }
.bo-field input:focus, .bo-field select:focus, .bo-field textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(53,107,117,.1); outline: 0; }
.bo-primary { border-radius: 10px; letter-spacing: .04em; text-transform: none; }
.bo-secondary, .bo-danger { border-radius: 9px; text-transform: none; }
.travel-place-search-row input { border: 1px solid #d7dde4; border-radius: 10px; padding: .7rem .8rem; }
.bo-flow-next h3 { font-family: ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight: 800; letter-spacing: -.04em; }

.bo-shell { max-width: 1320px; }
.bo-hero { min-height: 360px; }
.bo-hero h1, .bo-section-head h2, .bo-trip-card h3 { font-family: ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight: 800; letter-spacing: -.05em; }
.bo-create-card { border-radius: 22px; box-shadow: 16px 16px 0 var(--gold-soft); }
.bo-stats { border: 0; gap: .75rem; }
.bo-stats article { background: white; border: 0; border-radius: 14px; box-shadow: var(--soft-shadow); }
.bo-trip-card { border: 0; border-radius: 20px; box-shadow: var(--soft-shadow); min-height: 380px; }

.travel-home-hero {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 4rem 0 2rem;
}
.travel-home-hero h1 { font-size: clamp(2.8rem,6vw,5rem); letter-spacing: -.06em; line-height: .95; margin: .35rem 0 .8rem; }
.travel-home-hero p:not(.bo-eyebrow) { color: var(--muted); margin: 0; }
.travel-home-create {
  align-items: center;
  background: var(--navy);
  border-radius: 18px;
  box-shadow: var(--soft-shadow);
  color: white;
  display: flex;
  gap: 1rem;
  min-width: 270px;
  padding: 1rem 1.2rem;
}
.travel-home-create > span:first-child { align-items: center; background: rgba(255,255,255,.12); border-radius: 12px; display: flex; font-size: 1.5rem; height: 48px; justify-content: center; width: 48px; }
.travel-home-create > span:last-child { display: flex; flex-direction: column; }
.travel-home-create b { font-size: .85rem; }
.travel-home-create small { color: rgba(255,255,255,.62); font-size: .8125rem; margin-top: .25rem; }
.travel-now {
  background: linear-gradient(135deg,#17324d 0%,#244f63 100%);
  border-radius: 26px;
  box-shadow: 0 22px 58px rgba(23,36,58,.16);
  color: white;
  overflow: hidden;
  padding: clamp(1.25rem,3vw,2.4rem);
}
.travel-now.is-red { background: linear-gradient(135deg,#412b32 0%,#7b4745 100%); }
.travel-now-head { align-items: start; display: flex; gap: 2rem; justify-content: space-between; }
.travel-now-head .bo-eyebrow { color: #f0d89e; margin-bottom: .65rem; }
.travel-now-head h2 { font-size: clamp(1.75rem,3.7vw,3.25rem); letter-spacing: -.045em; line-height: 1.02; margin: 0; max-width: 850px; }
.travel-now-head > a { border-bottom: 1px solid rgba(255,255,255,.38); color: rgba(255,255,255,.8); flex: 0 0 auto; font-size: .875rem; font-weight: 800; padding-bottom: .2rem; }
.travel-now-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); margin-top: 2rem; }
.travel-now-primary { background: white; border-radius: 18px; color: var(--navy); padding: clamp(1.2rem,2.5vw,2rem); }
.travel-now-primary > span, .travel-now-after > span, .travel-trip-recommendation > span { color: var(--blue); display: block; font-size: .8125rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.travel-now-primary h3 { font-size: clamp(1.45rem,2.7vw,2.25rem); letter-spacing: -.04em; margin: .55rem 0 .45rem; }
.travel-now-primary p { color: var(--muted); line-height: 1.55; margin: 0 0 1.25rem; max-width: 700px; }
.travel-now-after { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); border-radius: 18px; padding: 1.2rem; }
.travel-now-after > span { color: #f0d89e; margin-bottom: .55rem; }
.travel-now-after > a, .travel-now-complete { border-top: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; padding: .85rem 0; }
.travel-now-after > a:first-of-type { border-top: 0; }
.travel-now-after b { font-size: .875rem; }
.travel-now-after small { color: rgba(255,255,255,.64); line-height: 1.4; margin-top: .28rem; }
.travel-now-footer { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; padding-top: 1.25rem; }
.travel-now-footer > strong { align-items: center; display: flex; font-size: .875rem; }
.travel-now-footer > strong i { background: #84c4a2; border-radius: 50%; box-shadow: 0 0 0 5px rgba(132,196,162,.14); height: 8px; margin-right: .7rem; width: 8px; }
.travel-now.is-red .travel-now-footer > strong i { background: #f1afa4; box-shadow: 0 0 0 5px rgba(241,175,164,.14); }
.travel-now-footer > div { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; }
.travel-now-footer > div span { background: rgba(255,255,255,.09); border-radius: 999px; color: rgba(255,255,255,.68); font-size: .8125rem; padding: .42rem .65rem; }
.travel-home-section-head h2 { font-size: clamp(2rem,4vw,3.5rem); }
.bo-trip-grid { grid-template-columns: repeat(auto-fit,minmax(310px,1fr)); }
.bo-trip-card { min-height: 430px; }
.travel-trip-recommendation { background: #f2f5f4; border-radius: 13px; margin-bottom: 1rem; padding: .9rem 1rem; }
.travel-trip-recommendation strong { display: block; font-size: .9rem; margin-top: .35rem; }
.travel-trip-recommendation p { color: var(--muted); font-size: .875rem; line-height: 1.45; margin: .3rem 0 0; }
.bo-trip-metrics { margin-top: auto; }
.bo-trip-metrics b { font-size: .875rem; }
.bo-trip-actions { flex-wrap: wrap; padding-top: .9rem; }
.bo-trip-actions details > summary { background: #edf1f3; border-radius: 9px; color: var(--blue); padding: .65rem .8rem; }
.bo-trip-actions details > summary:hover { background: #e2e9ec; }
.travel-accommodation-summary, .travel-reservation-summary {
  align-items: center;
  background: white;
  border-radius: 18px;
  box-shadow: var(--soft-shadow);
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: 1.25rem 1.4rem;
}
.travel-accommodation-summary .bo-eyebrow, .travel-reservation-summary .bo-eyebrow { margin-bottom: .4rem; }
.travel-accommodation-summary h3, .travel-reservation-summary h3 { font-size: clamp(1.15rem,2.4vw,1.65rem); letter-spacing: -.035em; margin: 0; }
.travel-accommodation-summary p:not(.bo-eyebrow), .travel-reservation-summary p:not(.bo-eyebrow) { color: var(--muted); font-size: .875rem; line-height: 1.5; margin: .35rem 0 0; }
.travel-accommodation-counts, .travel-reservation-counts { display: flex; flex: 0 0 auto; gap: .55rem; }
.travel-accommodation-counts span, .travel-reservation-counts span { background: #f0f3f4; border-radius: 999px; color: var(--muted); font-size: .8125rem; font-weight: 750; padding: .55rem .75rem; }
.travel-accommodation-counts span b, .travel-reservation-counts span b { color: var(--navy); margin-right: .2rem; }
.travel-accommodation-counts .is-confirmed, .travel-reservation-counts .is-confirmed { background: #e6f1eb; color: #416957; }
.travel-accommodation-counts .is-pending, .travel-reservation-counts .is-pending { background: #fff1d9; color: #8a5b16; }
.travel-accommodation-counts .is-missing { background: #fbe7e3; color: #9a473b; }
.travel-accommodation-setup { background: linear-gradient(135deg,#17243a,#253c5d); border-radius: 22px; box-shadow: 0 22px 48px rgba(23,36,58,.15); color: white; margin-bottom: 1rem; overflow: hidden; padding: clamp(1.3rem,3vw,2.2rem); }
.travel-accommodation-setup .bo-eyebrow { color: #d8b678; }
.travel-accommodation-setup h2 { font-size: clamp(1.55rem,3vw,2.25rem); letter-spacing: -.045em; margin: .25rem 0 .55rem; }
.travel-accommodation-setup p { color: rgba(255,255,255,.7); line-height: 1.55; margin: 0; }
.travel-accommodation-known { background: white; border-radius: 16px; color: var(--ink); margin-top: 1.3rem; padding: 1.15rem; }
.travel-accommodation-known h3 { margin: 0 0 1rem; }
.travel-accommodation-known p, .travel-accommodation-known .bo-form-actions > span { color: var(--muted); }
.travel-accommodation-setup-columns { display: grid; gap: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1.35rem; }
.travel-accommodation-setup-columns > div { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 15px; padding: 1rem; }
.travel-accommodation-setup-label { color: #d8b678; display: block; font-size: .8125rem; font-weight: 850; letter-spacing: .13em; margin-bottom: .7rem; text-transform: uppercase; }
.travel-accommodation-setup-columns article { align-items: center; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; padding: .7rem 0; }
.travel-accommodation-setup-columns article:first-of-type { border-top: 0; }
.travel-accommodation-setup-columns small, .travel-accommodation-plan-preview small { color: rgba(255,255,255,.62); display: block; font-size: .8125rem; margin-top: .2rem; }
.travel-accommodation-setup-action, .travel-accommodation-setup-submit { align-items: center; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: 15px; display: flex; gap: 1rem; justify-content: space-between; margin-top: 1rem; padding: 1rem; }
.travel-accommodation-plan-preview { margin-top: 1.35rem; }
.travel-accommodation-plan-preview article { align-items: center; border-top: 1px solid rgba(255,255,255,.12); display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) minmax(180px,.65fr); padding: .9rem 0; }
.travel-accommodation-plan-preview article > div:last-child { text-align: right; }
.travel-accommodation-setup-submit p { font-size: .875rem; max-width: 570px; }
.bo-assistant-actions { justify-content: flex-start; }
.travel-reservation-counts { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.travel-reservation-counts > a { color: var(--blue); font-size: .8125rem; font-weight: 800; padding: .4rem .2rem; }
.travel-new-reservation { display: none; }
.travel-new-reservation:target, .travel-new-reservation.is-open { display: block; }
.travel-accommodation-record.is-pending, .travel-accommodation-record.is-planning { border-left: 4px solid #e2aa4b; }
.travel-accommodation-record.is-confirmed { border-left: 4px solid #6ca080; }
.travel-accommodation-record.is-cancelled { opacity: .72; }
.bo-record-head > .travel-accommodation-status.is-pending { background: #fff1d9; color: #8a5b16; }
.bo-record-head > .travel-accommodation-status.is-planning { background: #e8eef8; color: #3e6082; }
.bo-record-head > .travel-accommodation-status.is-confirmed { background: #e6f1eb; color: #416957; }
.bo-record-head > .travel-accommodation-status.is-cancelled { background: #eef0f1; color: #69737d; }
.travel-reservation-record.is-draft, .travel-reservation-record.is-pending { border-left: 4px solid #e2aa4b; }
.travel-reservation-record.is-confirmed, .travel-reservation-record.is-completed { border-left: 4px solid #6ca080; }
.travel-reservation-record.is-cancelled { opacity: .72; }
.bo-record-head > .travel-reservation-status.is-draft, .bo-record-head > .travel-reservation-status.is-pending { background: #fff1d9; color: #8a5b16; }
.bo-record-head > .travel-reservation-status.is-confirmed, .bo-record-head > .travel-reservation-status.is-completed { background: #e6f1eb; color: #416957; }
.bo-record-head > .travel-reservation-status.is-cancelled { background: #eef0f1; color: #69737d; }
.travel-accommodation-next, .travel-reservation-next { align-items: start; background: white; border: 0; border-radius: 18px; box-shadow: var(--soft-shadow); padding: 1.4rem; }
.travel-accommodation-next > .bo-primary, .travel-reservation-next > .bo-primary { align-items: center; display: inline-flex; gap: .35rem; }
.travel-pending-accommodations, .travel-pending-reservations { display: grid; gap: .45rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.travel-pending-accommodations li, .travel-pending-reservations li { align-items: center; background: #f5f6f4; border-radius: 10px; display: flex; gap: 1rem; justify-content: space-between; padding: .7rem .8rem; }
.travel-pending-accommodations a, .travel-pending-reservations a { color: var(--navy); font-size: .8125rem; font-weight: 800; }
.travel-pending-accommodations span, .travel-pending-reservations span { color: var(--muted); font-size: .8125rem; text-align: right; }
.travel-focus-after { border-top: 1px solid rgba(23,50,77,.12); margin-top: 1rem; padding-top: .8rem; }
.travel-focus-after > small { color: var(--muted); font-size: .8125rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.travel-focus-after ul { color: var(--navy); display: flex; flex-wrap: wrap; font-size: .875rem; gap: .45rem 1.2rem; list-style: none; margin: .5rem 0 0; padding: 0; }
.travel-focus-after li::before { color: var(--gold); content: "→"; margin-right: .35rem; }
.travel-guide-status { align-items: center; background: #eef2f4; border-radius: 18px; display: flex; gap: 2rem; justify-content: space-between; margin: 1.2rem 0; padding: 1.25rem 1.4rem; }
.travel-guide-status.is-available { background: #e9f2ed; }
.travel-guide-status h3 { font-size: 1.15rem; margin: .15rem 0; }
.travel-guide-status p:not(.bo-eyebrow) { color: var(--muted); font-size: .875rem; margin: .25rem 0 0; }
.travel-guide-status > a { color: var(--blue); flex: 0 0 auto; font-size: .875rem; font-weight: 850; }
.travel-before-trip, .travel-budget-guidance, .travel-transport-guidance { align-items: center; background: linear-gradient(135deg,#17324d,#28536d); border-radius: 20px; color: white; display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr) auto; margin-bottom: 1.2rem; padding: 1.4rem; }
.travel-before-trip .bo-eyebrow, .travel-budget-guidance .bo-eyebrow, .travel-transport-guidance .bo-eyebrow { color: #f0d89e; }
.travel-before-trip h3, .travel-budget-guidance h3, .travel-transport-guidance h3 { font-size: clamp(1.2rem,2.5vw,1.8rem); margin: .25rem 0; }
.travel-before-trip p:not(.bo-eyebrow), .travel-budget-guidance p:not(.bo-eyebrow), .travel-transport-guidance p:not(.bo-eyebrow) { color: rgba(255,255,255,.72); font-size: .875rem; margin: .25rem 0 0; }
.travel-budget-guidance { background: linear-gradient(135deg,#365d54,#528070); }
.travel-budget-guidance > div:last-child { display: flex; flex-wrap: wrap; gap: .6rem; }
.travel-budget-guidance .bo-secondary { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); color: white; }
.travel-transport-guidance { align-items: start; background: #eef3f5; color: var(--navy); grid-template-columns: minmax(0,1fr) minmax(240px,.7fr) auto; }
.travel-transport-guidance .bo-eyebrow { color: var(--gold-ink); }
.travel-transport-guidance p:not(.bo-eyebrow) { color: var(--muted); }
.travel-transport-guidance ul { display: grid; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.travel-transport-guidance li { align-items: center; display: flex; font-size: .875rem; gap: .45rem; }
.travel-transport-guidance li span { color: #c77b2d; font-weight: 900; }
.travel-hotel-decisions { margin: 1.5rem 0 2rem; }
.travel-route-evidence { background: #17243a; border-radius: 20px; color: white; margin: 1rem 0 1.25rem; overflow: hidden; padding: clamp(1.15rem,2.5vw,1.65rem); }
.travel-route-evidence.is-incomplete { background: #eef2f4; color: var(--navy); }
.travel-route-evidence-head { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; }
.travel-route-evidence .bo-eyebrow { color: #e6c782; }
.travel-route-evidence.is-incomplete .bo-eyebrow { color: var(--gold-ink); }
.travel-route-evidence-head h3 { font-size: clamp(1.2rem,2.4vw,1.7rem); margin: .25rem 0; }
.travel-route-evidence-head p:not(.bo-eyebrow) { color: rgba(255,255,255,.68); font-size: .875rem; line-height: 1.5; margin: 0; }
.travel-route-evidence.is-incomplete p:not(.bo-eyebrow) { color: var(--muted); }
.travel-route-strip { display: flex; list-style: none; margin: 1.25rem 0; overflow-x: auto; padding: .25rem 0 .55rem; scrollbar-width: thin; }
.travel-route-strip li { align-items: center; display: grid; flex: 1 0 175px; gap: .12rem .55rem; grid-template-columns: auto minmax(0,1fr); min-width: 0; position: relative; }
.travel-route-strip li:not(:last-child)::after { background: rgba(255,255,255,.28); content: ""; height: 2px; position: absolute; right: .4rem; top: 15px; width: 24px; }
.travel-route-evidence.is-incomplete .travel-route-strip li:not(:last-child)::after { background: #cbd4da; }
.travel-route-strip span { align-items: center; background: #e6c782; border-radius: 50%; color: #17243a; display: flex; flex: 0 0 auto; font-size: .8125rem; font-weight: 900; height: 30px; justify-content: center; width: 30px; }
.travel-route-strip strong { font-size: .8125rem; line-height: 1.3; max-width: 125px; }
.travel-route-strip small { color: rgba(255,255,255,.58); font-size: .8125rem; grid-column: 2; line-height: 1.35; max-width: 130px; }
.travel-route-strip small.is-over-limit { color: #f4c4a8; font-weight: 800; }
.travel-road-route-summary { align-items: stretch; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; display: grid; gap: .65rem; grid-template-columns: repeat(4,minmax(0,1fr)) auto; margin: 0 0 1rem; padding: .8rem; }
.travel-road-route-summary > span { border-right: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; gap: .2rem; min-width: 0; padding: 0 .55rem; }
.travel-road-route-summary small { color: rgba(255,255,255,.52); font-size: .8125rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.travel-road-route-summary strong { font-size: .875rem; overflow-wrap: anywhere; }
.travel-road-route-summary > a { align-self: center; color: #f0d89e; font-size: .8125rem; font-weight: 850; padding: .45rem; text-align: center; }
.travel-route-map-layout { display: grid; gap: 1rem; grid-template-columns: minmax(0,1.55fr) minmax(245px,.65fr); }
.travel-accommodation-route-map { background: #dfe7e9; border-radius: 15px; height: 360px; isolation: isolate; overflow: hidden; position: relative; z-index: 0; }
.travel-accommodation-route-map .leaflet-pane, .travel-accommodation-route-map .leaflet-control { z-index: auto; }
.travel-route-map-status { color: rgba(255,255,255,.64); font-size: .8125rem; margin: .55rem 0 0; }
.travel-route-zone-detail { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.13); border-radius: 15px; padding: 1rem; }
.travel-route-zone-detail h4 { font-size: 1rem; margin: .25rem 0 .5rem; }
.travel-route-zone-detail > p { color: rgba(255,255,255,.68); font-size: .8125rem; line-height: 1.5; }
.travel-route-zone-detail dl { display: grid; gap: .35rem; margin: .9rem 0; }
.travel-route-zone-detail dl div { border-top: 1px solid rgba(255,255,255,.12); display: grid; gap: .5rem; grid-template-columns: 70px 1fr; padding-top: .42rem; }
.travel-route-zone-detail dt { color: rgba(255,255,255,.52); font-size: .8125rem; font-weight: 850; text-transform: uppercase; }
.travel-route-zone-detail dd { font-size: .8125rem; font-weight: 750; margin: 0; }
.travel-route-zone-detail .travel-route-when-not { background: rgba(238,190,112,.12); border-radius: 10px; color: #f1d399; padding: .65rem; }
.travel-route-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .8rem; }
.travel-route-legend span { align-items: center; color: rgba(255,255,255,.68); display: flex; font-size: .8125rem; gap: .35rem; }
.travel-route-legend span::before { background: #8493a0; border-radius: 50%; content: ""; height: 8px; width: 8px; }
.travel-route-legend .is-route::before { background: #69a0c5; }
.travel-route-legend .is-confirmed::before { background: #5e9b78; }
.travel-route-legend .is-recommended::before { background: #d79a38; }
.travel-route-legend .is-outside::before { background: #bf655b; }
.travel-route-map-marker { background: #8493a0; border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.28); display: block; height: 16px; width: 16px; }
.travel-route-map-marker.is-origin, .travel-route-map-marker.is-destination, .travel-route-map-marker.is-route { background: #315f81; }
.travel-route-map-marker.is-confirmed { background: #4c8a68; }
.travel-route-map-marker.is-recommended { background: #d28c25; height: 19px; width: 19px; }
.travel-route-map-marker.is-outside { background: #b8554c; }
.travel-map-div-icon { background: transparent; border: 0; }
.travel-map-marker { align-items: center; background: #315f81; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 3px 10px rgba(23,36,58,.32); color: #fff; display: flex; font-size: .75rem; font-weight: 900; height: 28px; justify-content: center; line-height: 1; width: 28px; }
.travel-map-marker.is-accommodation { background: #4c8a68; }
.travel-map-marker.is-reservation { background: #715795; }
.travel-map-marker.is-today { background: #d28c25; }
.travel-map-marker.is-route { background: #315f81; }
.travel-map-marker.is-place { background: #b8554c; }
.travel-map-marker.is-editable { background: #d28c25; height: 24px; position: relative; width: 24px; }
.travel-map-marker.is-editable::after { background: #d28c25; bottom: -5px; content: ""; height: 9px; left: 50%; position: absolute; transform: translateX(-50%) rotate(45deg); width: 9px; z-index: -1; }
.travel-map-popup p { font-size: .875rem; font-weight: 850; margin: 0 0 .45rem; }
.travel-map-popup ul { display: grid; gap: .4rem; list-style: none; margin: 0; max-width: 260px; padding: 0; }
.travel-map-popup li { border-top: 1px solid #e7e9ea; display: grid; gap: .05rem; padding-top: .4rem; }
.travel-map-popup small { color: var(--muted); font-size: .8125rem; }
.travel-zone-unverified { background: #fff1d9; border-radius: 10px; color: #7b571d; display: flex; flex-direction: column; font-size: .8125rem; gap: .15rem; margin-top: .65rem; padding: .55rem .65rem; }
.travel-hotel-search-actions .travel-view-on-route { background: #315f81; border-color: #315f81; color: white; }
.travel-hotel-decision-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit,minmax(290px,1fr)); }
.travel-hotel-decision { background: white; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--soft-shadow); min-width: 0; padding: 1.25rem; }
.travel-hotel-decision:target { box-shadow: 0 0 0 3px rgba(39,92,122,.18),var(--soft-shadow); }
.travel-hotel-decision-head { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.travel-hotel-decision-head h3 { font-size: 1.2rem; margin: .2rem 0 0; }
.travel-hotel-decision-head > span { background: #fff1d9; border-radius: 999px; color: #8a5b16; flex: 0 0 auto; font-size: .8125rem; font-weight: 800; padding: .45rem .6rem; }
.travel-hotel-facts { display: grid; gap: .65rem; margin: 1rem 0; }
.travel-hotel-facts div { border-top: 1px solid var(--line); padding-top: .6rem; }
.travel-hotel-facts dt { color: var(--muted); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.travel-hotel-facts dd { font-size: .875rem; font-weight: 750; margin: .18rem 0 0; }
.travel-hotel-criteria, .travel-hotel-candidate ul { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: .8rem 0; padding: 0; }
.travel-hotel-criteria li, .travel-hotel-candidate li { background: #f0f3f4; border-radius: 999px; color: var(--muted); font-size: .8125rem; padding: .4rem .55rem; }
.travel-hotel-zone-list { display: grid; gap: .65rem; margin-top: 1rem; }
.travel-hotel-zone { background: #f7f8f6; border: 1px solid transparent; border-radius: 13px; padding: .85rem; }
.travel-hotel-zone.is-recommended { background: #eef5f1; border-color: #c5d9ce; }
.travel-hotel-zone.is-route-validated { border-color: #b9d6ca; }
.travel-hotel-zone.is-route-detour { background: #fff3ef; border-color: #e6c2ba; }
.travel-hotel-zone.is-provisional { border-style: dashed; }
.travel-hotel-zone-head { align-items: center; display: flex; gap: .55rem; justify-content: space-between; }
.travel-hotel-zone-head strong { font-size: .875rem; }
.travel-hotel-zone-head span { background: #dcebe3; border-radius: 999px; color: #37614b; font-size: .8125rem; font-weight: 850; padding: .32rem .48rem; text-transform: uppercase; }
.travel-hotel-zone > p { color: var(--muted); font-size: .8125rem; line-height: 1.55; margin: .45rem 0 0; }
.travel-zone-route { display: flex; flex-wrap: wrap; gap: .4rem; margin: .65rem 0 0; }
.travel-zone-route div { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 999px; display: flex; gap: .3rem; padding: .32rem .5rem; }
.travel-zone-route dt { color: var(--muted); font-size: .8125rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.travel-zone-route dd { color: var(--ink); font-size: .8125rem; font-weight: 800; margin: 0; }
.travel-hotel-search-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
.travel-hotel-search-actions a, .travel-hotel-search-actions button { background: white; border: 1px solid var(--line); border-radius: 999px; color: var(--blue); cursor: pointer; font: inherit; font-size: .8125rem; font-weight: 800; padding: .42rem .58rem; text-decoration: none; }
.travel-hotel-search-actions a:hover, .travel-hotel-search-actions button:hover { border-color: var(--blue); }
.travel-copy-feedback { color: #37614b; font-size: .8125rem; min-height: .9rem; margin: .35rem 0 0; }
.travel-zone-edit, .travel-zone-add { margin-top: .6rem; }
.travel-zone-edit > summary, .travel-zone-add > summary { color: var(--blue); cursor: pointer; font-size: .8125rem; font-weight: 800; }
.travel-zone-edit form, .travel-zone-add form { margin-top: .65rem; }
.travel-hotel-candidates { border-top: 1px solid var(--line); margin-top: 1.1rem; padding-top: 1rem; }
.travel-candidate-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.travel-candidate-heading h4 { font-size: .86rem; margin: .15rem 0 0; }
.travel-candidate-heading > small { color: var(--muted); font-size: .8125rem; }
.travel-candidate-empty { background: #f7f8f6; border: 1px dashed #cbd2d4; border-radius: 12px; margin-top: .7rem; padding: .9rem; }
.travel-candidate-empty strong { font-size: .875rem; }
.travel-candidate-empty p { color: var(--muted); font-size: .8125rem; line-height: 1.5; margin: .3rem 0 0; }
.travel-hotel-candidate { background: #f7f8f6; border-radius: 12px; margin-top: .6rem; padding: .8rem; }
.travel-hotel-candidate.is-selected, .travel-hotel-candidate.is-favorite { background: #fff7e7; box-shadow: inset 3px 0 #d39b39; }
.travel-hotel-candidate.is-reserved { background: #e8f2ec; box-shadow: inset 3px 0 #568369; }
.travel-hotel-candidate > div:first-child { display: inline-flex; flex-direction: column; max-width: 70%; }
.travel-hotel-candidate > span { float: right; color: var(--muted); font-size: .8125rem; font-weight: 800; }
.travel-hotel-candidate p { color: var(--muted); font-size: .8125rem; margin: .45rem 0; }
.travel-hotel-candidate .bo-inline-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; }
.travel-hotel-candidate .bo-inline-actions a { color: var(--blue); font-size: .8125rem; font-weight: 800; }
.travel-candidate-edit { border-top: 1px solid var(--line); margin-top: .7rem; padding-top: .55rem; }
.travel-candidate-edit > summary { color: var(--muted); cursor: pointer; font-size: .8125rem; font-weight: 800; }
.travel-candidate-edit > form { margin-top: .7rem; }
.travel-candidate-add { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: .8rem; }
.travel-candidate-add > summary { color: var(--blue); cursor: pointer; font-size: .8125rem; font-weight: 850; }
.travel-candidate-add > form { margin-top: .8rem; }
.travel-candidate-checks { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .7rem; }
.travel-candidate-checks label { font-size: .8125rem; }
.travel-map-zones { margin-bottom: 1.2rem; }
.travel-map-zone-grid { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); }
.travel-map-zone-grid article { align-items: center; background: white; border-radius: 14px; display: grid; gap: .7rem; grid-template-columns: auto 1fr; padding: 1rem; }
.travel-map-zone-grid article > span { align-items: center; background: #fff1d9; border-radius: 50%; color: #8a5b16; display: flex; height: 38px; justify-content: center; width: 38px; }
.travel-map-zone-grid article strong { font-size: .875rem; }
.travel-map-zone-grid article p { color: var(--muted); font-size: .8125rem; margin: .2rem 0; }
.travel-map-zone-grid article a { align-items: center; color: var(--blue); display: inline-flex; font-size: .8125rem; font-weight: 800; grid-column: 2; min-height: 44px; padding: .45rem 0; }
.travel-checklist-overview { margin-bottom: 1.2rem; }
.travel-checklist-overview-grid { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
.travel-checklist-overview-grid > a { align-items: center; background: white; border-radius: 14px; display: grid; gap: .7rem; grid-template-columns: auto 1fr; padding: 1rem; }
.travel-checklist-overview-grid > a > span { align-items: center; background: #fff1d9; border-radius: 50%; color: #8a5b16; display: flex; font-weight: 900; height: 34px; justify-content: center; width: 34px; }
.travel-checklist-overview-grid small { color: var(--muted); font-size: .8125rem; text-transform: uppercase; }
.travel-checklist-overview-grid strong { display: block; font-size: .875rem; }
.travel-checklist-overview-grid p { color: var(--muted); font-size: .8125rem; margin: .2rem 0 0; }
details.bo-checklist { background: white; border: 1px solid var(--line); border-radius: 14px; margin: .7rem auto; padding: 0 1rem; }
/* `margin: .7rem auto`, no `.7rem 0`: el atajo con 0 pisaba los márgenes
   automáticos de `.bo-editor-main > *` (más específico al llevar elemento +
   clase) y la lista quedaba pegada a la izquierda mientras sus hermanos se
   centraban a 1180 px. Se veía como dos tarjetas desalineadas. */
details.bo-checklist > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 1rem 0; }
details.bo-checklist > summary span { display: flex; flex-direction: column; }
details.bo-checklist > summary small { color: var(--muted); font-size: .8125rem; text-transform: uppercase; }
details.bo-checklist > summary strong { font-size: .85rem; }
details.bo-checklist > summary b { background: #f0f3f4; border-radius: 999px; color: var(--muted); font-size: .8125rem; padding: .45rem .6rem; }
.travel-landing-hero { gap: clamp(2rem,5vw,5rem); grid-template-columns: minmax(0,1.15fr) minmax(320px,.65fr); }
.travel-landing-hero h1 { font-size: clamp(3.3rem,5.4vw,5.1rem); }

@media (max-width: 1120px) {
  .bo-editor { grid-template-columns: minmax(0,1fr); }
  .bo-sidebar { display: none; }
  .travel-command-grid { grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); }
  .bo-journey-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  :root { --travel-topbar-height: calc(60px + var(--travel-safe-top)); }
  .bo-topbar { grid-template-columns: minmax(0,1fr) auto; min-height: var(--travel-topbar-height); padding: var(--travel-safe-top) max(.8rem,var(--travel-safe-right)) 0 max(.8rem,var(--travel-safe-left)); }
  .bo-brand > span:first-child { border-radius: 10px; height: 36px; width: 36px; }
  .bo-brand-copy b { font-size: .86rem; }
  .bo-brand-copy small { font-size: .8125rem; }
  .bo-help-action { font-size: 0 !important; height: 44px; padding: .55rem; width: 44px; }
  .bo-help-action span { font-size: 1rem; }
  .bo-editor-main { padding: 1.35rem max(.9rem,var(--travel-safe-right)) calc(7.5rem + var(--travel-safe-bottom)) max(.9rem,var(--travel-safe-left)); }
  .bo-editor-head { align-items: flex-start; flex-direction: row; gap: .75rem; margin-bottom: 1.25rem; }
  .travel-archived-notice { align-items: flex-start; grid-template-columns: auto minmax(0,1fr); }
  .travel-archived-notice form, .travel-archived-notice > small { grid-column: 2; }
  .bo-editor-head h2 { font-size: 1.75rem; }
  .bo-editor-head p { font-size: .875rem; }
  .bo-status-pill { flex: 0 0 auto; margin-top: 1.45rem; padding: .42rem .58rem; }
  .travel-command-grid { grid-template-columns: 1fr; }
  .travel-trip-hero { border-radius: 20px; min-height: 280px; padding: 1.25rem; }
  .travel-trip-hero-copy h3 { font-size: 2.35rem; }
  .travel-trip-hero-foot { gap: .8rem; grid-template-columns: 1fr 1fr; }
  .travel-trip-hero-foot a { grid-column: 1 / -1; justify-self: stretch; padding-top: .35rem; }
  .travel-focus-card { border-radius: 20px; min-height: 260px; }
  .travel-health { align-items: center; grid-template-columns: auto minmax(0,1fr); }
  .travel-health > a { grid-column: 2; }
  .travel-risk-list { grid-template-columns: 1fr; }
  .bo-summary-four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bo-summary-grid article { min-height: 136px; }
  .bo-summary-grid article > strong { font-size: 1.8rem; }
  .bo-journey-head { display: block; }
  .bo-journey-grid { grid-template-columns: 1fr; }
  .bo-journey-step { min-height: 130px; }
  .bo-mobile-nav { background: rgba(23,36,58,.97); border-radius: 18px 18px 0 0; box-shadow: 0 -10px 36px rgba(23,36,58,.2); }
  .bo-mobile-nav a { border: 0; border-radius: 10px; color: rgba(255,255,255,.62); text-transform: none; }
  .bo-mobile-nav a.active { background: rgba(255,255,255,.1); color: white; }
  .bo-mobile-nav a > span { display: block; font-size: 1rem; margin-bottom: .18rem; }
  .bo-proactive { grid-template-columns: 1fr; }
  .bo-form-grid { grid-template-columns: 1fr; }
  .travel-home-hero { align-items: stretch; flex-direction: column; gap: 1.5rem; padding: 2.5rem 0 1.5rem; }
  .travel-home-create { min-width: 0; width: 100%; }
  .travel-now { border-radius: 20px; }
  .travel-now-head { display: block; }
  .travel-now-head > a { display: inline-block; margin-top: 1rem; }
  .travel-now-grid { grid-template-columns: 1fr; margin-top: 1.35rem; }
  .travel-now-footer { align-items: flex-start; flex-direction: column; }
  .travel-now-footer > div { justify-content: flex-start; }
  .bo-section { padding-top: 4rem; }
  .bo-trip-card { min-height: 0; }
  .bo-trip-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bo-trip-metrics div:nth-child(2) { border-right: 0; }
  .bo-trip-metrics div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .bo-trip-actions details { margin-left: auto; }
  .travel-accommodation-summary, .travel-reservation-summary { align-items: stretch; flex-direction: column; gap: 1rem; }
  .travel-accommodation-setup-columns { grid-template-columns: 1fr; }
  .travel-accommodation-plan-preview article { align-items: flex-start; grid-template-columns: 1fr; }
  .travel-accommodation-plan-preview article > div:last-child { text-align: left; }
  .travel-accommodation-setup-action, .travel-accommodation-setup-submit { align-items: stretch; flex-direction: column; }
  .travel-accommodation-setup-action .bo-primary, .travel-accommodation-setup-submit .bo-primary { text-align: center; width: 100%; }
  .travel-guide-status, .travel-before-trip, .travel-budget-guidance, .travel-transport-guidance { align-items: stretch; display: flex; flex-direction: column; }
  .travel-guide-status > a { align-self: flex-start; }
  .travel-route-evidence-head { align-items: stretch; flex-direction: column; }
  .travel-route-evidence-head .bo-primary { text-align: center; width: 100%; }
  .travel-route-strip { margin-inline: -.2rem; padding-inline: .2rem; }
  .travel-route-strip li { flex-basis: 135px; }
  .travel-road-route-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .travel-road-route-summary > span:nth-child(2n) { border-right: 0; }
  .travel-road-route-summary > a { grid-column: 1 / -1; }
  .travel-route-map-layout { grid-template-columns: 1fr; }
  .travel-accommodation-route-map { height: 300px; }
  .travel-route-zone-detail { min-height: 0; }
  .travel-hotel-decision-grid, .travel-map-zone-grid, .travel-checklist-overview-grid { grid-template-columns: 1fr; }
  .travel-hotel-zone-head, .travel-candidate-heading { align-items: flex-start; flex-direction: column; }
  .travel-hotel-search-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .travel-hotel-search-actions a, .travel-hotel-search-actions button { text-align: center; }
  .travel-accommodation-counts, .travel-reservation-counts { flex-wrap: wrap; }
  .travel-pending-accommodations li, .travel-pending-reservations li { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .travel-pending-accommodations span, .travel-pending-reservations span { text-align: left; }
  .travel-landing-hero { gap: 2.5rem; grid-template-columns: minmax(0,1fr); padding: 3.5rem 1.25rem; }
  .travel-landing-hero h1 { font-size: clamp(2.8rem,13vw,3.6rem); overflow-wrap: anywhere; }
}

.travel-media-discovery { background: linear-gradient(135deg,#17243a,#2b5065); border-radius: 20px; color: white; margin-bottom: 1.3rem; padding: clamp(1.2rem,3vw,1.8rem); }
.travel-media-discovery { display: grid; gap: 1.2rem; grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); }
.travel-media-discovery .bo-eyebrow { color: #f0d89e; }
.travel-media-discovery h3 { font-size: clamp(1.25rem,2.5vw,1.8rem); margin: .25rem 0; }
.travel-media-discovery > div:first-child > p:not(.bo-eyebrow) { color: rgba(255,255,255,.7); font-size: .875rem; line-height: 1.55; }
.travel-media-discovery > form > label { color: rgba(255,255,255,.68); display: block; font-size: .8125rem; font-weight: 850; letter-spacing: .08em; margin-bottom: .45rem; text-transform: uppercase; }
.travel-media-discovery > form > div { display: flex; gap: .5rem; }
.travel-media-discovery input { border: 0; border-radius: 10px; min-width: 0; padding: .8rem; width: 100%; }
.travel-media-search-status { color: rgba(255,255,255,.64); font-size: .8125rem; grid-column: 1 / -1; margin: 0; }
.travel-media-search-results { display: grid; gap: .7rem; grid-column: 1 / -1; grid-template-columns: repeat(4,minmax(0,1fr)); }
.travel-media-search-card { background: white; border-radius: 13px; color: var(--navy); min-width: 0; overflow: hidden; }
.travel-media-search-card > img { aspect-ratio: 4/3; display: block; object-fit: cover; width: 100%; }
.travel-media-search-card > div { padding: .75rem; }
.travel-media-search-card strong { display: block; font-size: .875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.travel-media-search-card p { color: var(--muted); display: -webkit-box; font-size: .8125rem; line-height: 1.45; margin: .35rem 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.travel-media-search-card small { color: var(--muted); font-size: .8125rem; line-height: 1.4; }
.travel-media-search-card a { color: var(--blue); display: block; font-size: .8125rem; font-weight: 800; margin: .45rem 0; }
.travel-media-search-card form { margin-top: .5rem; }
.travel-media-search-card .bo-primary { min-height: 44px; padding: .55rem .65rem; width: 100%; }
.travel-media-attribution { background: #f6f3eb; color: var(--muted); font-size: .8125rem; line-height: 1.45; margin: 0; padding: .55rem .7rem; }
.travel-media-attribution a { color: var(--blue); font-weight: 800; }

@media (max-width: 1024px) {
  .travel-media-search-results { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .travel-media-discovery { grid-template-columns: 1fr; }
  .travel-media-discovery > form > div { align-items: stretch; flex-direction: column; }
  .travel-media-search-results { grid-template-columns: 1fr; }
}

.bo-trip-space {
  color: var(--muted);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .06em;
  margin: -.25rem 0 .7rem;
  text-transform: uppercase;
}

/* V1 polish · compact operational UI */
[hidden] { display: none !important; }

.bo-tab-section { margin: .2rem 0; }
.bo-tab-section > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
  user-select: none;
}
.bo-tab-section > summary::-webkit-details-marker { display: none; }
.bo-tab-section > summary .bo-tab-group-arrow { font-size: .875rem; transition: transform .18s ease; }
.bo-tab-section[open] > summary .bo-tab-group-arrow { transform: rotate(180deg); }
.bo-tab-group-label { align-items: baseline; display: flex; gap: .45rem; }
.bo-tab-group-label small { background: #f5e6c7; border-radius: 999px; color: #7a4f13; font-size: .75rem; letter-spacing: 0; padding: .15rem .45rem; text-transform: none; }
.bo-summary-grid article.is-actionable > a { color: var(--blue); font-size: .8125rem; font-weight: 800; margin-top: .15rem; text-decoration: none; }
.bo-summary-grid article.is-actionable > a:hover { text-decoration: underline; }
.bo-tab-section:not([open]) > summary { margin-bottom: .1rem; }

.bo-editor-head:not(.is-dashboard) h2 { font-size: clamp(1.65rem,2.5vw,2.25rem); max-width: 820px; }
.bo-editor-head:not(.is-dashboard) { margin-bottom: 1.35rem; }

.bo-assistant { max-width: 1080px; }
.bo-assistant-intro {
  background: linear-gradient(135deg,#17243a,#294661);
  border-radius: 18px;
  box-shadow: var(--soft-shadow);
  padding: 1.5rem clamp(1.25rem,3vw,2rem);
}
.bo-assistant-intro h3 {
  font: 800 clamp(1.65rem,3vw,2.35rem)/1.05 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: -.04em;
}
.bo-assistant-intro > p:last-child { font-size: .875rem; line-height: 1.55; margin-bottom: 0; }
.bo-assistant-chips { display: grid; gap: .5rem; grid-template-columns: repeat(4,minmax(0,1fr)); }
.bo-assistant-chips button { border-radius: 10px; min-height: 44px; padding: .65rem .75rem; text-align: left; }
.bo-assistant-chips button:nth-child(n+6) { color: var(--muted); }
.bo-assistant-form, .bo-assistant-result { border-radius: 16px; box-shadow: var(--soft-shadow); }
.bo-assistant-result { padding: clamp(1rem,2.5vw,1.6rem); }
.bo-assistant-result > h3 {
  font: 800 clamp(1.45rem,2.8vw,2.05rem)/1.15 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: -.035em;
  margin: .35rem 0 1.2rem;
  max-width: 920px;
}
.bo-assistant-route-plan { background: #17243a; border-radius: 16px; color: white; margin: 1rem 0; overflow: hidden; padding: 1.1rem; }
.bo-assistant-route-head { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.bo-assistant-route-head .bo-eyebrow { color: #f0d89e; }
.bo-assistant-route-head h4 { font-size: 1.05rem; margin: .2rem 0; }
.bo-assistant-route-head small { color: rgba(255,255,255,.62); font-size: .8125rem; }
.bo-assistant-route-head > span { background: rgba(255,255,255,.1); border-radius: 999px; flex: 0 0 auto; font-size: .8125rem; font-weight: 800; padding: .48rem .66rem; }
.bo-assistant-route-legs { display: grid; gap: .5rem; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; margin: 1rem 0 0; padding: 0; }
.bo-assistant-route-legs li { background: rgba(255,255,255,.07); border-left: 3px solid #69a681; display: grid; gap: .65rem; grid-template-columns: 28px minmax(0,1fr); padding: .75rem; }
.bo-assistant-route-legs li.is-warning { border-left-color: #e4b25b; }
.bo-assistant-route-legs li.is-critical { background: rgba(197,92,94,.16); border-left-color: #e17678; }
.bo-assistant-route-legs li > span { align-items: center; background: rgba(255,255,255,.1); border-radius: 50%; display: flex; font-size: .8125rem; font-weight: 850; height: 28px; justify-content: center; width: 28px; }
.bo-assistant-route-legs strong { display: block; font-size: .875rem; }
.bo-assistant-route-legs p { color: rgba(255,255,255,.78); font-size: .8125rem; margin: .25rem 0; }
.bo-assistant-route-legs small { color: rgba(255,255,255,.55); font-size: .8125rem; }
#travelAssistantFindings { display: grid; gap: .55rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .8rem; }
.bo-assistant-finding { background: #f6f8f8; border: 1px solid var(--line); border-left: 4px solid #8ba1ac; border-radius: 12px; min-width: 0; padding: .9rem; }
.bo-assistant-finding.is-warning { border-left-color: #d99b37; }
.bo-assistant-finding.is-important { border-left-color: #d37446; }
.bo-assistant-finding.is-critical { background: #fff4f2; border-left-color: #bd5557; }
.bo-assistant-finding > div:first-child { align-items: center; display: flex; gap: .55rem; }
.bo-assistant-finding > div:first-child > span { background: #e7ecee; border-radius: 999px; color: var(--muted); flex: 0 0 auto; font-size: .8125rem; font-weight: 850; letter-spacing: .06em; padding: .28rem .4rem; text-transform: uppercase; }
.bo-assistant-finding.is-critical > div:first-child > span { background: #f3dcdc; color: #923f41; }
.bo-assistant-finding strong { font-size: .8125rem; line-height: 1.35; }
.bo-assistant-finding > p { color: var(--muted); font-size: .8125rem; line-height: 1.55; margin: .55rem 0; }
.bo-assistant-linked-task { background: #e8f1ed; border-radius: 7px; color: #356657; display: block; font-size: .8125rem; padding: .45rem .55rem; }
.bo-assistant-finding-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.bo-assistant-finding-actions a { background: white; border: 1px solid var(--line); border-radius: 999px; color: var(--blue); font-size: .8125rem; font-weight: 850; padding: .4rem .55rem; text-decoration: none; }
.bo-assistant-primary-action { align-items: center; background: linear-gradient(135deg,#e9f2ed,#f6faf8); border: 1px solid #c9ded4; border-radius: 14px; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; margin-top: 1rem; padding: 1rem; }
.bo-assistant-primary-action small { color: var(--green); font-size: .8125rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.bo-assistant-primary-action strong { display: block; font-size: .9rem; margin-top: .2rem; }
.bo-assistant-primary-action p { color: var(--muted); font-size: .8125rem; margin: .25rem 0 0; }
.bo-assistant-sources { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: .8rem; }
.bo-assistant-sources summary { color: var(--blue); cursor: pointer; font-size: .8125rem; font-weight: 850; }
.bo-assistant-sources ul { display: grid; gap: .5rem; list-style: none; padding: .3rem 0 0; }
.bo-assistant-sources li { border-top: 1px solid var(--line); padding-top: .5rem; }
.bo-assistant-sources a { color: var(--navy); font-size: .8125rem; font-weight: 800; }
.bo-assistant-sources small { color: var(--muted); font-size: .8125rem; margin-top: .15rem; }
.bo-assistant-no-operations { background: #f2f5f5; border-radius: 10px; color: var(--muted); font-size: .8125rem; margin: 1rem 0 .25rem; padding: .7rem .8rem; }
.bo-assistant-actions, #travelAssistantReviewActions { justify-content: flex-start; }
#travelAssistantReviewActions.is-review-only { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }

.travel-route-strip { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); overflow: visible; }
.travel-route-strip li { flex: initial; min-width: 0; }
.travel-route-strip li:not(:last-child)::after { display: none; }
.travel-route-strip strong, .travel-route-strip small { max-width: none; }
.travel-hotel-decision-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,360px),1fr)); }

.bo-account-shell > h1, .bo-legal-shell > h1 {
  font: 800 clamp(2rem,4.5vw,3.7rem)/1 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: -.05em;
}
.bo-account-card h2 { font: 800 clamp(1.25rem,2.4vw,1.7rem)/1.1 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing: -.03em; }

@media (max-width: 900px) {
  .bo-assistant-chips { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bo-assistant-route-legs, #travelAssistantFindings { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .bo-assistant-chips { display: flex; flex-wrap: nowrap; margin-inline: -.9rem; overflow-x: auto; padding: 0 .9rem .45rem; }
  .bo-assistant-chips button { flex: 0 0 180px; }
  .bo-assistant-route-head, .bo-assistant-primary-action { align-items: stretch; display: flex; flex-direction: column; }
  .bo-assistant-primary-action .bo-primary { text-align: center; width: 100%; }
  .travel-route-strip { display: flex; overflow-x: auto; }
  .travel-route-strip li { flex: 0 0 140px; }
}

/* Compañero durante el viaje */
.travel-after-trip {
  align-items: center;
  background: linear-gradient(135deg,#eaf2ee,#f7faf8);
  border: 1px solid #c8ddd3;
  border-radius: 18px;
  display: flex;
  gap: 1.25rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: 1.25rem;
}
.travel-after-trip h3 { margin: .2rem 0; }
.travel-after-trip p { color: var(--muted); margin: .25rem 0; }
.travel-now-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr) minmax(220px,.72fr); }
.travel-now-card { min-width: 0; }
.travel-now-card.is-later { background: #f8faf9; }
.travel-later-list { margin-top: 1rem; }
.travel-later-list p { align-items: baseline; border-top: 1px solid var(--line); display: grid; gap: .7rem; grid-template-columns: 48px minmax(0,1fr); margin: 0; padding: .7rem 0; }
.travel-later-list strong { color: var(--gold-ink); font-size: .875rem; }
.travel-later-list span { font-size: .875rem; font-weight: 750; }
.travel-event-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.2rem; }
.travel-event-actions form { margin: 0; }
.travel-event-actions button { min-height: 44px; padding: .55rem .72rem; }
.travel-event-actions.compact button { font-size: .8125rem; }
.travel-reschedule { border-top: 1px solid var(--line); margin-top: .9rem; padding-top: .7rem; }
.travel-reschedule summary { color: var(--blue); cursor: pointer; font-size: .8125rem; font-weight: 800; }
.travel-reschedule form { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .65rem; }
.travel-reschedule label { color: var(--muted); font-size: .8125rem; font-weight: 750; }
.travel-reschedule input[type="time"] { margin-left: .3rem; min-height: 44px; }
.travel-reschedule input[type="checkbox"] { min-height: auto; }
.travel-today-actions { grid-template-columns: repeat(7,1fr); }

.travel-mobile-prep { background: #fff; border: 1px solid var(--line); border-radius: 20px; margin: 1.4rem 0; overflow: hidden; }
.travel-mobile-prep-head { align-items: start; background: linear-gradient(135deg,#17243a,#294661); color: white; display: flex; gap: 1rem; justify-content: space-between; padding: 1.35rem; }
.travel-mobile-prep-head .bo-eyebrow { color: #f0d89e; }
.travel-mobile-prep-head h3 { margin: .2rem 0; }
.travel-mobile-prep-head p { color: rgba(255,255,255,.68); margin: .3rem 0 0; max-width: 720px; }
.travel-mobile-prep-head > span { background: rgba(255,255,255,.1); border-radius: 999px; color: rgba(255,255,255,.75); flex: 0 0 auto; font-size: .8125rem; padding: .48rem .65rem; }
.travel-mobile-prep-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.travel-mobile-prep-grid article { align-items: start; border-right: 1px solid var(--line); display: grid; gap: .7rem; grid-template-columns: 30px minmax(0,1fr); min-width: 0; padding: 1rem; }
.travel-mobile-prep-grid article:last-child { border-right: 0; }
.travel-mobile-prep-grid article > b { align-items: center; background: var(--gold-soft); border-radius: 50%; color: var(--gold-ink); display: flex; font-size: .875rem; height: 30px; justify-content: center; width: 30px; }
.travel-mobile-prep-grid article p { color: var(--muted); font-size: .8125rem; line-height: 1.45; margin: .25rem 0; }
.travel-mobile-prep-grid article small { color: var(--green); display: block; font-size: .8125rem; }
.travel-mobile-prep-grid article button { grid-column: 2; justify-self: start; }
.travel-sync-state { align-items: center; background: #f4f7f6; border-top: 1px solid var(--line); color: var(--muted); display: flex; font-size: .8125rem; font-weight: 750; gap: .55rem; padding: .8rem 1rem; }
.travel-sync-state i { background: #93a1aa; border-radius: 50%; height: 9px; width: 9px; }
.travel-sync-state[data-state="pending"] i { background: #d99b37; }
.travel-sync-state[data-state="saved"] i, .travel-sync-state[data-state="synced"] i { background: var(--green); }

.travel-photo-actions { display: grid; gap: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1.25rem; }
.travel-photo-actions > div { background: linear-gradient(135deg,#17243a,#294661); border-radius: 18px; color: white; grid-column: 1 / -1; padding: 1.25rem; }
.travel-photo-actions > div .bo-eyebrow { color: #f0d89e; }
.travel-photo-actions > div h3 { margin: .2rem 0; }
.travel-photo-actions > div p { color: rgba(255,255,255,.68); margin: .25rem 0; }
.travel-photo-actions .bo-add { margin: 0; }
.travel-media-author { background: rgba(23,36,58,.82); bottom: auto; color: white; font-size: .8125rem; padding: .35rem .5rem; position: absolute; right: .6rem; top: .6rem; }
.travel-location-optin { align-items: center; background: #eef5f2; border: 1px solid #c8ddd3; border-radius: 16px; display: flex; gap: 1rem; justify-content: space-between; margin: 1rem auto; padding: 1rem 1.15rem; }
.travel-location-optin h3 { margin: .15rem 0; }
.travel-location-optin p { color: var(--muted); margin: .25rem 0; }

/* Comparador multimodal */
.travel-transport-options { scroll-margin-top: 96px; }
#tramos-configurados { scroll-margin-top: 96px; }
.travel-compact-head { margin-bottom: 1.35rem; }
.travel-compact-head h2 { font-size: clamp(1.65rem,3vw,2.4rem); }
.travel-comparison-readiness { background: #f6f2e8; border: 1px solid #ddd1b7; border-radius: 18px; margin: 0 0 1rem; padding: 1rem 1.15rem; }
.travel-comparison-readiness.is-ready { background: #edf6f1; border-color: #bdd8ca; }
.travel-comparison-readiness h3 { font-size: 1.05rem; margin: .2rem 0 .65rem; }
.travel-comparison-readiness > p { color: var(--muted); font-size: .875rem; margin: .4rem 0 0; }
.travel-comparison-readiness a { color: var(--blue); font-weight: 800; }
.travel-comparison-checks { display: flex; flex-wrap: wrap; gap: .55rem; }
.travel-comparison-checks span { background: rgba(255,255,255,.7); border: 1px solid rgba(23,36,58,.1); border-radius: 999px; font-size: .875rem; padding: .42rem .65rem; }
.travel-option-list { display: grid; gap: 1rem; }
.travel-option-card { background: #fff; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; }
.travel-option-card.is-preferred { border-color: #86aa9b; box-shadow: 0 0 0 3px rgba(54,112,87,.09); }
.travel-option-card.travel-option-current { border-color: #9db4c0; }
.travel-option-head { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr) minmax(330px,.75fr); padding: 1.35rem; }
.travel-option-head h3 { font-size: clamp(1.25rem,2vw,1.65rem); letter-spacing: -.03em; margin: .35rem 0 .2rem; }
.travel-option-head p { color: var(--muted); font-size: .875rem; margin: 0; }
.travel-option-state { background: #edf2f4; border-radius: 999px; color: var(--blue); display: inline-flex; font-size: .8125rem; font-weight: 900; letter-spacing: .04em; padding: .38rem .58rem; text-transform: uppercase; }
.is-preferred .travel-option-state { background: #e6f2ec; color: var(--green); }
.travel-option-metrics { display: grid; gap: .6rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.travel-option-metrics > div { background: #f5f7f8; border-radius: 14px; padding: .85rem; }
.travel-option-metrics small, .travel-option-metrics span { color: var(--muted); display: block; font-size: .8125rem; }
.travel-option-metrics strong { display: block; font-size: .94rem; margin: .22rem 0; }
.travel-option-warning { background: #fff4e5; border-block: 1px solid #f0d4a8; color: #674514; font-size: .875rem; line-height: 1.5; padding: .8rem 1.35rem; }
.travel-option-legs { border-top: 1px solid var(--line); }
.travel-option-leg { display: grid; gap: 1rem; grid-template-columns: minmax(210px,.85fr) minmax(380px,1.35fr) auto; padding: 1rem 1.35rem; }
.travel-option-leg + .travel-option-leg { border-top: 1px solid var(--line); }
.travel-option-leg-main > span { color: var(--gold-ink); font-size: .8125rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.travel-option-leg-main h4 { font-size: .88rem; margin: .3rem 0; }
.travel-option-leg-main p { color: var(--muted); font-size: .8125rem; margin: 0; }
.travel-option-leg-main .travel-option-leg-note { color: #42566a; line-height: 1.45; margin-top: .45rem; }
.travel-option-leg-data { align-items: start; display: grid; gap: .5rem; grid-template-columns: repeat(4,minmax(0,1fr)); }
.travel-option-leg-data span { font-size: .8125rem; font-weight: 750; }
.travel-option-leg-data small { color: var(--muted); display: block; font-size: .8125rem; font-weight: 650; margin-bottom: .25rem; }
.travel-option-leg-actions { align-items: end; display: flex; flex-direction: column; gap: .35rem; }
.travel-option-leg-actions a { color: var(--blue); font-size: .8125rem; font-weight: 800; }
.travel-option-leg-actions form { margin: 0; }
.travel-option-leg-actions button { font-size: .8125rem; min-height: 44px; }
.travel-schedule-results { background: #f3f7f8; border-top: 1px solid var(--line); grid-column: 1 / -1; padding: 1rem 1.35rem; }
.travel-schedule-results h5 { font-size: .9375rem; margin: .2rem 0 .65rem; }
.travel-schedule-results > p, .travel-schedule-results > small { color: var(--muted); display: block; font-size: .8125rem; line-height: 1.5; }
.travel-schedule-candidates { display: grid; gap: .55rem; margin: .75rem 0; }
.travel-schedule-candidate { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; display: flex; gap: 1rem; justify-content: space-between; margin: 0; padding: .75rem; }
.travel-schedule-candidate strong, .travel-schedule-candidate span { display: block; font-size: .875rem; }
.travel-schedule-candidate span { color: var(--muted); }
.travel-option-connection { background: #eef3f5; border-left: 4px solid #8aa1ad; display: flex; flex-wrap: wrap; gap: .35rem 1rem; padding: .65rem 1.35rem; }
.travel-option-connection strong { font-size: .8125rem; }
.travel-option-connection span { color: var(--muted); font-size: .8125rem; }
.travel-option-connection.is-critical, .travel-option-connection.is-impossible { background: #fff0ed; border-color: #cf5c49; }
.travel-option-connection.is-date_conflict { background: #fff0ed; border-color: #cf5c49; }
.travel-option-connection.is-tight { background: #fff7e9; border-color: #d89a32; }
.travel-option-connection.is-overnight { background: #eef4fb; border-color: #5683ad; }
.travel-option-actions { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; padding: 1rem 1.35rem; }
.travel-option-actions form { margin: 0; }
.travel-option-edit { border-top: 1px solid var(--line); grid-column: 1 / -1; }
.travel-option-edit > summary { color: var(--blue); cursor: pointer; font-size: .8125rem; font-weight: 850; padding: .85rem 1.35rem; }
.travel-option-edit > form { padding: 0 1.35rem 1.35rem; }
.travel-option-form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.travel-option-add-leg { border: 0; border-radius: 0; border-top: 1px dashed var(--line); margin: 0; }
.travel-option-new { margin-top: 1rem; }

@media (max-width: 1050px) {
  .travel-option-head, .travel-option-leg { grid-template-columns: 1fr; }
  .travel-option-leg-actions { align-items: start; }
  .travel-option-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1050px) {
  .travel-now-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .travel-now-card.is-later { grid-column: 1 / -1; min-height: auto; }
  .travel-mobile-prep-grid { grid-template-columns: 1fr; }
  .travel-mobile-prep-grid article { border-bottom: 1px solid var(--line); border-right: 0; }
  .travel-mobile-prep-grid article:last-child { border-bottom: 0; }
}

@media (max-width: 720px) {
  .travel-after-trip, .travel-mobile-prep-head { align-items: stretch; flex-direction: column; }
  .travel-now-grid { grid-template-columns: 1fr; }
  .travel-now-card.is-later { grid-column: auto; }
  .travel-today-actions { grid-template-columns: repeat(7,1fr); }
  .travel-photo-actions { grid-template-columns: 1fr; }
  .travel-event-actions > form { flex: 1 1 calc(50% - .45rem); }
  .travel-event-actions button { width: 100%; }
  .travel-reschedule form { align-items: stretch; flex-direction: column; }
  .travel-mobile-prep-head > span { align-self: flex-start; }
  .travel-location-optin { align-items: stretch; flex-direction: column; }
  .travel-option-head { padding: 1rem; }
  .travel-option-metrics, .travel-option-leg-data, .travel-option-form-grid { grid-template-columns: 1fr 1fr; }
  .travel-option-leg { padding: 1rem; }
  .travel-option-actions { align-items: stretch; flex-direction: column; padding: 1rem; }
  .travel-option-actions form, .travel-option-actions button { width: 100%; }
  .travel-option-connection { display: grid; padding-inline: 1rem; }
  .travel-schedule-candidate { align-items: stretch; flex-direction: column; }
  .travel-schedule-candidate button { width: 100%; }
}

@media (max-width: 430px) {
  .travel-option-metrics, .travel-option-leg-data, .travel-option-form-grid { grid-template-columns: 1fr; }
}

/* Escala legible · el backoffice debe poder usarse de viaje y al aire libre. */
body { font-size: 1rem; line-height: 1.5; }
body small { font-size: .8125rem; }

button,
input[type="button"],
input[type="submit"],
.bo-primary,
.bo-secondary,
.bo-danger {
  align-items: center;
  font-size: .875rem;
  min-height: 44px;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
  font-size: 1rem;
}

.bo-topbar nav a,
.bo-top-actions > a:not(.bo-primary),
.bo-tabs a,
.bo-sidebar > a,
.bo-mobile-nav a,
.bo-trip-actions > a:not(.bo-primary),
.bo-trip-actions summary,
.bo-trip-menu-panel > a {
  font-size: .875rem;
}

.bo-tabs a { min-height: 44px; }
.bo-tab-group, .bo-eyebrow { font-size: .75rem; }

.bo-assistant-route-legs strong {
  font-size: 1rem;
  line-height: 1.35;
}
.bo-assistant-route-legs p { font-size: .875rem; line-height: 1.5; }
.bo-assistant-route-legs small,
.bo-assistant-route-head small { color: rgba(255,255,255,.72); font-size: .8125rem; }
.bo-assistant-finding strong { font-size: .9375rem; }
.bo-assistant-finding > p,
.bo-assistant-primary-action p,
.bo-assistant-no-operations { font-size: .875rem; }
.bo-assistant-finding-actions a,
.travel-hotel-search-actions a,
.travel-hotel-search-actions button {
  align-items: center;
  display: inline-flex;
  font-size: .875rem;
  min-height: 44px;
  padding: .55rem .75rem;
}
.bo-assistant-sources summary,
.bo-assistant-sources a,
.bo-assistant-sources small { font-size: .8125rem; line-height: 1.5; }

.travel-option-leg-main h4,
.travel-candidate-heading h4,
details.bo-checklist > summary strong { font-size: .9375rem; }
.travel-option-head p,
.travel-option-warning,
.travel-option-leg-main p,
.travel-option-leg-data span,
.travel-option-connection strong,
.travel-option-connection span,
.travel-hotel-zone > p,
.travel-hotel-candidate p,
.travel-checklist-overview-grid p,
.travel-media-search-card p,
.travel-media-search-card small,
.travel-media-attribution,
.travel-mobile-prep-grid article p,
.travel-mobile-prep-grid article small {
  font-size: .8125rem;
  line-height: 1.5;
}

@media (max-width: 760px) {
  .bo-editor-head p { font-size: .875rem; }
  .bo-help-action { font-size: 0 !important; }
  .bo-help-action span { font-size: 1rem; }
  .travel-hotel-decision-head { align-items: flex-start; flex-direction: column; }
  .travel-hotel-decision-head > span { flex: 0 1 auto; max-width: 100%; white-space: normal; }
}

/* Guía viva autenticada: misma identidad editorial, permisos privados. */
.travel-live-body {
  --travel-phase-accent: #237d83;
  --travel-phase-soft: #e2f1f2;
  background: var(--operational-bg);
  color: var(--ink);
}
.travel-live-body.travel-phase-before { --travel-phase-accent: #b85f43; --travel-phase-soft: #f8e9e3; }
.travel-live-body.travel-phase-during { --travel-phase-accent: #237d83; --travel-phase-soft: #e2f1f2; }
.travel-live-body.travel-phase-after { --travel-phase-accent: #8a7735; --travel-phase-soft: #f2ecd5; }
.travel-live-topbar { align-items: center; background: rgba(255,255,255,.96); border-bottom: 1px solid #deddd8; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto auto; min-height: 72px; padding: .7rem max(1rem,4vw); position: sticky; top: 0; z-index: 1500; }
.travel-live-brand { align-items: center; color: var(--navy); display: flex; gap: .7rem; min-width: 0; text-decoration: none; }
.travel-live-brand > span { align-items: center; background: #e7865c; border-radius: 11px; display: flex; flex: 0 0 auto; font-weight: 900; height: 40px; justify-content: center; width: 40px; }
.travel-live-brand div { display: grid; min-width: 0; }
.travel-live-brand b { font-size: 1rem; }
.travel-live-brand small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.travel-live-trust { align-items: center; background: #e8f1ec; border-radius: 999px; color: #3d6b56; display: flex; font-size: .8125rem; font-weight: 800; gap: .4rem; padding: .5rem .75rem; }
.travel-live-trust span { color: #4c8a68; font-size: .65rem; }
.travel-live-topbar nav { display: flex; gap: .4rem; }
.travel-live-topbar nav a { align-items: center; border-radius: 999px; color: var(--navy); display: inline-flex; font-size: .875rem; font-weight: 800; min-height: 44px; padding: .6rem .8rem; text-decoration: none; }
.travel-live-topbar nav a:hover { background: #eef0ee; }
.travel-live-experience { margin: 0 auto; max-width: 1440px; min-width: 0; }
.travel-live-cover { background: linear-gradient(135deg,#17243a,#315c68); color: white; display: grid; gap: 2rem; grid-template-columns: minmax(0,1fr) minmax(220px,.42fr); min-height: 290px; overflow: hidden; padding: clamp(2rem,6vw,5.2rem); position: relative; }
.travel-live-cover.has-image { background-image: linear-gradient(90deg,rgba(11,25,41,.9),rgba(11,25,41,.35)),var(--live-cover); background-position: center; background-size: cover; }
.travel-live-cover > * { align-self: end; position: relative; z-index: 1; }
.travel-live-cover p { color: #f0d89e; font-size: .8125rem; font-weight: 850; letter-spacing: .1em; margin: 0 0 .7rem; text-transform: uppercase; }
.travel-live-cover h1 { color: white; font: 750 clamp(2.25rem,5vw,5rem)/.95 Georgia,serif; letter-spacing: -.055em; margin: 0 0 1rem; max-width: 900px; }
.travel-live-cover > div > span { font-size: clamp(.95rem,1.6vw,1.15rem); }
.travel-live-cover aside { background: rgba(255,255,255,.11); border: 1px solid rgba(255,255,255,.2); border-radius: 16px; display: grid; gap: .25rem; padding: 1rem; }
.travel-live-cover aside span { color: rgba(255,255,255,.74); font-size: .8125rem; }
.travel-live-compact-head { align-items: center; background: linear-gradient(110deg,#17243a,#315c68); color: white; display: flex; gap: 1rem; justify-content: space-between; min-height: 92px; padding: 1.1rem max(1rem,4vw); }
.travel-live-compact-head div { display: grid; gap: .2rem; }
.travel-live-compact-head small { color: #f0d89e; font-size: .8125rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.travel-live-compact-head strong { font: 700 clamp(1.45rem,3vw,2.1rem)/1.05 Georgia,serif; }
.travel-live-compact-head > span { color: rgba(255,255,255,.78); font-size: .875rem; text-align: right; }
.travel-live-navigation { background: rgba(255,255,255,.96); border-bottom: 1px solid #deddd8; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); position: sticky; top: 72px; z-index: 1100; }
.travel-live-navigation a { align-items: center; border-bottom: 3px solid transparent; color: var(--muted); display: flex; font-size: .875rem; font-weight: 800; gap: .45rem; justify-content: center; min-height: 58px; padding: .7rem; text-decoration: none; }
.travel-live-navigation a span { font-size: 1rem; }
.travel-live-navigation a.active { border-color: var(--travel-phase-accent); color: var(--navy); }
.travel-live-main { background: var(--operational-bg); padding-bottom: calc(7rem + var(--travel-safe-bottom)); }
.travel-live-main > * { max-width: 1120px; }
.travel-live-main .bo-eyebrow { color: var(--travel-phase-accent); }
.travel-live-page-head { align-items: end; border-bottom: 1px solid var(--line); margin-bottom: 1.25rem; padding-bottom: 1rem; }
.travel-live-page-head h2 { font-size: clamp(1.55rem,3vw,2.35rem); }
.travel-live-plan { display: grid; gap: .7rem; }
.travel-live-day { background: white; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.travel-live-day > summary { cursor: pointer; display: grid; gap: .25rem; grid-template-columns: auto minmax(0,1fr) auto; list-style: none; padding: 1rem 1.1rem; }
.travel-live-day > summary::-webkit-details-marker { display: none; }
.travel-live-day > summary time { align-self: center; color: var(--gold-ink); min-width: 190px; }
.travel-live-day > summary time b { font-size: .875rem; }
.travel-live-day > summary span { color: var(--gold-ink); font-weight: 900; }
.travel-live-day > summary small { align-self: center; }
.travel-live-timeline { border-top: 1px solid var(--line); padding: .6rem 1rem 1rem; }
.travel-live-timeline article { align-items: start; border-top: 1px solid #ebe9e4; display: grid; gap: .75rem; grid-template-columns: 60px minmax(0,1fr); padding: .8rem 0; }
.travel-live-timeline article:first-child { border-top: 0; }
.travel-live-timeline time { color: var(--gold-ink); font-weight: 850; }
.travel-live-timeline p { color: var(--muted); font-size: .8125rem; margin: .15rem 0 0; }
.travel-live-money-summary { display: grid; gap: .8rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 1rem; }
.travel-live-money-summary span { background: white; border: 1px solid var(--line); border-radius: 15px; display: grid; gap: .15rem; padding: 1rem; }
.travel-live-money-summary strong { font-size: 1.35rem; }
.travel-live-expense-list { display: grid; gap: .6rem; }
.travel-live-expense-list article { align-items: center; background: white; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: .7rem; grid-template-columns: minmax(0,1fr) auto; padding: .9rem 1rem; }
.travel-live-expense-list p { color: var(--muted); font-size: .8125rem; margin: .2rem 0 0; }
.travel-live-add-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.travel-live-add-grid a { align-items: center; background: white; border: 1px solid var(--line); border-radius: 16px; color: var(--navy); display: grid; gap: .2rem; grid-template-columns: 46px minmax(0,1fr); min-height: 86px; padding: 1rem; text-decoration: none; }
.travel-live-add-grid a > span { align-items: center; background: #eef2f4; border-radius: 13px; display: flex; font-size: 1.25rem; grid-row: 1 / 3; height: 46px; justify-content: center; width: 46px; }
.travel-live-add-grid small { color: var(--muted); }
.travel-live-map-filters { display: flex; gap: .45rem; margin: 1rem auto; overflow-x: auto; padding-bottom: .25rem; }
.travel-live-map-filters button { background: white; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); flex: 0 0 auto; min-height: 44px; padding: .5rem .8rem; }
.travel-live-map-filters button.active { background: var(--navy); border-color: var(--navy); color: white; }
.travel-live-explore { margin-top: 1.25rem; }
.travel-live-explore-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.travel-live-place { background: white; border: 1px solid var(--line); border-radius: 16px; display: flex; flex-direction: column; gap: .7rem; padding: 1rem; }
.travel-live-place.is-planned, .travel-live-place.is-selected { border-left: 4px solid #4c8a68; }
.travel-live-place.is-visited { background: #f0f5f2; }
.travel-live-place header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.travel-live-place h3 { font-size: 1.1rem; margin: .15rem 0 0; }
.travel-live-place header > span { background: #eef0ee; border-radius: 999px; color: var(--muted); font-size: .75rem; font-weight: 800; padding: .35rem .55rem; }
.travel-live-place > p { color: var(--muted); margin: 0; }
.travel-live-place-facts { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.travel-live-place-facts li { background: #f0f2ef; border-radius: 999px; color: var(--muted); font-size: .75rem; padding: .35rem .55rem; }
.travel-live-place-source { align-items: center; align-self: flex-start; color: var(--blue); display: inline-flex; font-size: .8125rem; font-weight: 750; min-height: 44px; padding: .45rem 0; }
.travel-live-place-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: auto; }
.travel-live-place-actions form { margin: 0; }
.travel-live-place-actions .is-selected { background: #e7f0eb; border-color: #93b5a3; color: #315f49; }
.travel-live-place-actions .is-selected.is-negative { background: #f7e9e6; border-color: #d8a096; color: #813d34; }
.travel-live-propose { background: white; border: 1px solid var(--line); border-radius: 16px; margin-top: 1rem; overflow: hidden; }
.travel-live-propose > summary { cursor: pointer; font-weight: 850; padding: 1rem; }
.travel-live-propose .bo-add { border: 0; border-top: 1px solid var(--line); border-radius: 0; margin: 0; }

.travel-live-activity { background: var(--operational-surface); border: 1px solid var(--line); border-radius: 18px; margin-top: 1.25rem; padding: 1rem; }
.travel-live-activity .bo-section-head { align-items: end; margin-bottom: .75rem; }
.travel-live-activity .bo-section-head h2 { font-size: clamp(1.45rem,2.5vw,2rem); }
.travel-live-activity-list { display: grid; }
.travel-live-activity-list article { align-items: center; border-top: 1px solid var(--line); display: grid; gap: .75rem; grid-template-columns: 38px minmax(0,1fr) auto; padding: .75rem 0; }
.travel-live-activity-list article:first-child { border-top: 0; }
.travel-live-activity-list article > span,
.travel-live-comments article > span { align-items: center; background: var(--travel-phase-soft); border-radius: 50%; color: var(--travel-phase-accent); display: flex; font-size: .8125rem; font-weight: 900; height: 36px; justify-content: center; width: 36px; }
.travel-live-activity-list article div { min-width: 0; }
.travel-live-activity-list article strong { font-size: .875rem; }
.travel-live-activity-list article p { color: var(--muted); font-size: .875rem; margin: .15rem 0 0; }
.travel-live-activity-list article time { color: var(--muted); font-size: .8125rem; }

.travel-live-comments { background: #fafcfc; border-top: 1px solid var(--line); padding: .85rem 1rem 1rem; }
.travel-live-place .travel-live-comments { border: 1px solid var(--line); border-radius: 12px; margin-top: .15rem; }
.travel-live-comments-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: .45rem; }
.travel-live-comments-head strong { font-size: .875rem; }
.travel-live-comments-head span { background: var(--travel-phase-soft); border-radius: 999px; color: var(--travel-phase-accent); font-size: .75rem; font-weight: 850; padding: .2rem .45rem; }
.travel-live-comments article { align-items: start; border-top: 1px solid rgba(20,43,64,.1); display: grid; gap: .65rem; grid-template-columns: 36px minmax(0,1fr) auto; padding: .65rem 0; }
.travel-live-comments article > div { min-width: 0; }
.travel-live-comments article strong { font-size: .875rem; }
.travel-live-comments article p { color: var(--navy); font-size: .875rem; line-height: 1.5; margin: .18rem 0; overflow-wrap: anywhere; }
.travel-live-comments article time { color: var(--muted); font-size: .75rem; }
.travel-live-comment-delete { background: transparent; border: 0; color: var(--red-state); font-size: .75rem; min-height: 44px; min-width: 44px; padding: .25rem; }
.travel-live-comment-form { border-top: 1px solid rgba(20,43,64,.1); display: grid; gap: .45rem; margin-top: .25rem; padding-top: .75rem; }
.travel-live-comment-form label { color: var(--muted); font-size: .8125rem; font-weight: 800; }
.travel-live-comment-form textarea { background: white; border: 1px solid var(--line); border-radius: 10px; color: var(--navy); font-size: 1rem; line-height: 1.45; min-height: 68px; padding: .65rem .75rem; resize: vertical; width: 100%; }
.travel-live-comment-form button { justify-self: start; }

.travel-share-pin-body { align-items: center; background: var(--operational-bg); display: flex; justify-content: center; min-height: calc(var(--travel-vh) * 100); padding: max(1rem,var(--travel-safe-top)) max(1rem,var(--travel-safe-right)) max(1rem,var(--travel-safe-bottom)) max(1rem,var(--travel-safe-left)); }
.travel-share-pin-card { background: white; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); max-width: 480px; padding: clamp(1.25rem,4vw,2.5rem); width: 100%; }
.travel-share-pin-card .bo-brand { margin-bottom: 2rem; }
.travel-share-pin-card h1 { font: 500 clamp(2rem,7vw,3.4rem)/1 Georgia,serif; margin: 0 0 1rem; }
.travel-share-pin-card > p { color: var(--muted); line-height: 1.6; }
.travel-share-pin-card form { display: grid; gap: .65rem; margin: 1.25rem 0; }
.travel-share-pin-card label { color: var(--muted); font-size: .8125rem; font-weight: 800; text-transform: uppercase; }
.travel-share-pin-card input { border: 1px solid var(--line); border-radius: 10px; font-size: 1.15rem; letter-spacing: .18em; min-height: 48px; padding: .7rem .8rem; }
.travel-share-pin-error { background: #f7e9e6; border-left: 4px solid var(--red-state); color: #71362f; margin: 1rem 0; padding: .8rem; }
.travel-share-pin-card > small { color: var(--muted); display: block; line-height: 1.45; }
.bo-inline-details { position: relative; }
.bo-inline-details > summary { align-items: center; display: inline-flex; list-style: none; min-height: 44px; }
.bo-inline-details > summary::-webkit-details-marker { display: none; }
.bo-inline-protection { background: white; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); display: grid; gap: .65rem; min-width: min(360px,calc(100vw - 2rem)); padding: .9rem; position: absolute; right: 0; top: calc(100% + .45rem); z-index: 30; }
.bo-inline-protection label { color: var(--muted); display: grid; font-size: .75rem; font-weight: 800; gap: .25rem; text-transform: uppercase; }
.bo-inline-protection input,.bo-inline-protection select { background: white; border: 1px solid var(--line); border-radius: 8px; color: var(--navy); font-size: .875rem; min-height: 44px; padding: .45rem .55rem; text-transform: none; }
.bo-form-context { background: var(--operational-bg); border-radius: 10px; color: var(--muted); margin: 0; padding: .75rem; }
.bo-warning { background: #fff5dc; border: 1px solid #e5c471; border-radius: 12px; color: #5d4814; margin: 1rem 0; padding: .9rem 1rem; }
.bo-warning p { margin: .3rem 0 0; }
.travel-photo-actions.is-live-priority { margin: 0 0 1.25rem; }

@media (max-width: 760px) {
  .travel-live-topbar { grid-template-columns: minmax(0,1fr) auto; min-height: 64px; padding-inline: max(.8rem,var(--travel-safe-left)); }
  .travel-live-topbar nav a:first-child, .travel-live-trust { display: none; }
  .travel-live-topbar nav a { font-size: .8125rem; }
  .travel-live-cover { grid-template-columns: 1fr; min-height: 230px; padding: 2rem 1rem; }
  .travel-live-compact-head { align-items: flex-start; flex-direction: column; gap: .4rem; min-height: 84px; padding: .9rem 1rem; }
  .travel-live-compact-head > span { text-align: left; }
  .travel-live-cover aside { display: none; }
  .travel-live-cover h1 { font-size: clamp(2rem,11vw,3.25rem); }
  .travel-live-navigation { display: none; }
  .travel-live-main { padding-top: 1rem; }
  .travel-live-page-head { align-items: start; }
  .travel-live-page-head .bo-status-pill { display: none; }
  .travel-live-explore-grid, .travel-live-add-grid { grid-template-columns: 1fr; }
  .travel-live-money-summary { grid-template-columns: 1fr 1fr; }
  .travel-live-activity .bo-section-head { display: block; }
  .travel-live-activity .bo-section-head > p { margin-top: .35rem; }
  .travel-live-activity-list article { grid-template-columns: 36px minmax(0,1fr); }
  .travel-live-activity-list article time { grid-column: 2; }
  .travel-live-comments article { grid-template-columns: 34px minmax(0,1fr); }
  .travel-live-comments article form { grid-column: 2; }
  .travel-live-day > summary { grid-template-columns: 1fr; gap: .45rem; padding: .9rem; }
  .travel-live-day > summary time { min-width: 0; }
  .travel-live-day > summary > span { justify-self: start; }
  .bo-inline-protection { left: 0; right: auto; }
  .bo-mobile-nav.is-live-guide { grid-template-columns: repeat(5,1fr); }
  .bo-mobile-nav.is-live-guide a { font-size: .875rem; }
  .bo-record.is-server-summary { grid-template-columns: 1fr; }
  .bo-record-edit-link { justify-self: stretch; }
}

@media (max-width: 390px) {
  .travel-live-topbar nav a { padding-inline: .5rem; }
  .travel-live-brand small { max-width: 150px; }
  .travel-live-money-summary { grid-template-columns: 1fr; }
  .travel-live-day > summary { grid-template-columns: 1fr; gap: .45rem; padding: .9rem; }
  .travel-live-day > summary time { min-width: 0; }
  .travel-live-day > summary > span { justify-self: start; }
}

/* Portada de producto: Cada viaje merece ser recordado. */
@media (max-width: 900px) {
  .travel-product-story > article,.travel-trust-story { grid-template-columns: 1fr; }
  .travel-product-story > article:nth-child(even) .travel-story-copy,.travel-product-story > article:nth-child(even) .travel-product-window { order: initial; }
  .travel-story-copy { max-width: 660px; }
}

@media (max-width: 760px) {
  .travel-landing-topbar { min-height: var(--travel-topbar-height); }
  .travel-memory-hero { min-height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height) - 34px); }
  .travel-memory-hero picture img { object-position: center 46%; }
  .travel-memory-shade { background: linear-gradient(0deg,rgba(8,22,34,.84) 0%,rgba(8,22,34,.52) 67%,rgba(8,22,34,.25) 100%); }
  .travel-memory-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: flex-end; min-height: calc(var(--travel-vh) * 100 - var(--travel-topbar-height) - 34px); padding: 5rem max(1.15rem,var(--travel-safe-right)) 5.8rem max(1.15rem,var(--travel-safe-left)); }
  .travel-memory-copy h1 { font-size: clamp(3.15rem,15vw,4.8rem); line-height: .9; }
  .travel-memory-lead { font-size: 1rem; line-height: 1.55; margin-top: 1.2rem; }
  .travel-landing-actions { align-items: stretch; flex-direction: column; gap: .35rem; margin: 1.3rem 0 .65rem; width: 100%; }
  .travel-landing-actions .bo-primary,.travel-memory-secondary { justify-content: center; text-align: center; width: 100%; }
  .travel-memory-scroll { display: none; }
  .travel-story-intro,.travel-product-story > article,.travel-trust-story { padding-inline: max(1.15rem,var(--travel-safe-left)); }
  .travel-story-intro h2 { font-size: clamp(2.75rem,13vw,4rem); }
  .travel-product-window { border-radius: 20px; padding: 1rem; }
  .travel-product-live nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .travel-demo-album { grid-template-columns: 1.3fr .7fr; min-height: 200px; }
  .travel-demo-album i:last-child { display: none; }
  .travel-trust-story { gap: 2rem; }
  .travel-landing-final { padding-inline: max(1.15rem,var(--travel-safe-left)); }
  .travel-landing-final h2 { font-size: clamp(2.8rem,13vw,4.2rem); }
  .travel-landing-footer { align-items: flex-start; flex-direction: column; gap: 1rem; padding-bottom: calc(2rem + var(--travel-safe-bottom)); }
  .travel-landing-footer nav { flex-wrap: wrap; gap: .8rem 1.2rem; }
}

@media (max-width: 390px) {
  .travel-memory-brand { font-size: .75rem; }
  .travel-memory-copy h1 { font-size: clamp(2.85rem,14.5vw,3.7rem); }
  .travel-memory-copy > small { font-size: .75rem; }
  .travel-product-live nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .travel-memory-hero *,.travel-product-story * { scroll-behavior: auto !important; }
}

/* Región de avisos para lector de pantalla: invisible en pantalla, anunciada
   por la tecnología asistiva. La usan las mutaciones rápidas (marcar tarea,
   etc.) para confirmar o explicar un fallo sin recargar la página. */
.travel-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Título de bloque dentro de una pantalla, no de página: sin la escala editorial
   de `.bo-section-head h2`, que a 80 px descuadraba la sección del mapa. */
.travel-map-zones-title { font-size: 1.125rem; margin: 0 0 .8rem; }

/* La nota de privacidad acompaña al botón de ubicación en vez de encabezar una
   sección propia. */
.travel-location-optin { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem 1rem; }
.travel-location-optin > small { color: var(--muted); font-size: .8125rem; }

/* --- Centrado del contenido: garantía del contenedor, no de cada componente ---
   `.bo-editor-main > *` centra con `margin: auto`, pero cualquier componente que
   escriba el atajo `margin: 1rem 0` repone los márgenes horizontales a 0 y se
   sale de la columna. Ha pasado ya tres veces (la lista de tareas, el bloque de
   ubicación y los filtros del mapa) y se ve como bloques descuadrados entre sí.
   Con el selector `main.bo-editor-main` (elemento + clase) la garantía gana a
   cualquier regla de una sola clase, sin depender del orden del fichero.
   Lo que deba ir a sangre completa tiene que pedirlo expresamente. */
main.bo-editor-main > * { margin-inline: auto; }
main.bo-editor-main > .is-full-bleed { margin-inline: 0; max-width: none; }

/* Mejora progresiva: un control marcado como redundante solo existe para quien
   navega sin JavaScript. Con JS, la acción se guarda sola —la casilla basta— y
   el botón sobra. Se oculta en vez de borrarse del HTML para no romper el
   recorrido sin JS que el producto sostiene. */
.has-js [data-js-redundant] { display: none; }

/* Frase de ayuda de una pantalla: texto normal bajo la cabecera, no un párrafo
   flotando a la derecha de un titular de 80 px. */
.travel-checklist-hint { color: var(--muted); margin: 0 0 1rem; }

/* Titular de bloque dentro de una pantalla de Modo viaje. Estos bloques usaban
   `.bo-section-head h2` —la escala de título de PÁGINA, 80 px— y cada uno
   empujaba el contenido real cientos de píxeles hacia abajo. El dato que los
   acompañaba (recuento, matiz) va en la misma línea, no en un párrafo aparte
   flotando a la derecha. */
.travel-live-block-title { align-items: baseline; display: flex; flex-wrap: wrap; font-size: 1.125rem; gap: .5rem; margin: 1.6rem 0 .8rem; }
.travel-live-block-title > small { color: var(--muted); font-size: .8125rem; font-weight: 400; }

/* --- Móvil: mapa y filtros ------------------------------------------------ */
@media (max-width: 720px) {
  /* El mapa ocupaba 430px mínimos —casi dos tercios de un móvil— antes incluso
     de ver un solo lugar. Se queda en algo menos de la mitad de la pantalla, que
     sigue siendo un mapa utilizable y deja ver la lista debajo. */
  .bo-map { height: min(calc(var(--travel-vh) * 46), 360px); min-height: 240px; }

  /* Los filtros se envolvían en una tira con scroll horizontal: aparecía una
     barra visible y la última píldora quedaba cortada. Con cinco etiquetas
     cortas caben en dos líneas sin scroll ninguno. */
  .travel-live-map-filters { flex-wrap: wrap; overflow-x: visible; }
}

/* La conversación de una ficha va plegada. Iba siempre desplegada —con su
   formulario de escritura incluido— y cada lugar medía unos 485px en móvil antes
   de haber dicho nada. El recuento se queda visible en la cabecera para saber si
   hay algo que leer sin tener que abrir. */
details.travel-live-comments > summary { cursor: pointer; list-style: none; }
details.travel-live-comments > summary::-webkit-details-marker { display: none; }
details.travel-live-comments > summary::after { color: var(--muted); content: '⌄'; margin-left: auto; transition: transform .15s ease; }
details.travel-live-comments[open] > summary::after { transform: rotate(180deg); }

/* «Ya estuvimos» es un HECHO que acompaña a la decisión, no la sustituye: una
   tarjeta puede estar «En el plan» y además visitada. */
.travel-live-place-visited { color: var(--travel-phase-accent); font-weight: 700; }

/* Previsualización de fase: herramienta de preparación, no funcionalidad. Se
   anuncia siempre y en un tono que no se pueda confundir con el contenido real
   del viaje. */
.travel-phase-preview { align-items: center; background: #fff4d6; border: 1px solid #e6c884; border-radius: 12px; display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin: 0 auto 1.2rem; padding: .8rem 1rem; }
.travel-phase-preview > span { color: #6b5320; font-size: .875rem; }
.travel-phase-preview > a { color: #6b5320; font-weight: 800; margin-left: auto; }

/* Ficha enlazada con el mapa: se puede pulsar para localizarla, y se destaca
   cuando se elige desde el mapa o desde la propia lista. */
.travel-live-place.is-locatable { cursor: pointer; }
.travel-live-place.is-focused { box-shadow: 0 0 0 3px var(--travel-phase-accent); }
