:root {
  color-scheme:light;
  --paper:#f8f7f2;
  --white:#fffefa;
  --ink:#24362f;
  --muted:#707971;
  --green:#173e35;
  --line:#e4e6de;
  --soft:#edf0e7;
  --amber:#94631c;
  --rust:#a14832;
  font-family:Inter,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-synthesis:none;
  background:var(--paper);
  color:var(--ink)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  font-size:14px;
  line-height:1.65
}
a {
  color:inherit
}
button,select {
  font:inherit
}
a:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #d6a64c;
  outline-offset:5px
}
h1,h2,h3,p {
  margin:0
}
svg {
  display:block
}
.icon {
  width:20px;
  height:20px;
  flex-shrink:0
}
.skip-link {
  position:absolute;
  left:16px;
  top:-60px;
  padding:10px 18px;
  z-index:10;
  background:var(--green);
  color:white
}
.skip-link:focus {
  top:12px
}
.topbar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 20px;
  max-width:1280px;
  margin:auto;
  padding:12px 32px;
  border-bottom:1px solid #d2d2d7;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Arial,sans-serif
}
.wordmark {
  display:inline-flex;
  align-items:center;
  color:#1d1d1f;
  text-decoration:none;
  flex-shrink:0
}
.brand-logo {
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  gap:9px;
  height:44px
}
.brand-logo-avatar {
  display:block;
  width:34px;
  height:34px;
  flex-shrink:0;
  object-fit:contain
}
.brand-logo-name {
  color:#1d1d1f;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Arial,sans-serif;
  font-size:19px;
  font-weight:700;
  line-height:22px;
  letter-spacing:-.03em;
  white-space:nowrap
}
.brand-logo-accent {
  color:#0071e3;
  font-weight:600
}
.brand-logo-compact {
  gap:7px;
  height:36px
}
.brand-logo-compact .brand-logo-avatar {
  width:26px;
  height:26px
}
.brand-logo-compact .brand-logo-name {
  font-size:15px;
  line-height:18px
}
.site-navigation {
  display:flex;
  flex:1;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:4px 20px
}
.site-navigation a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  color:#1d1d1f;
  font-size:14px;
  text-decoration:none
}
.site-navigation a:hover {
  color:#0071e3
}
.site-navigation a[aria-current="page"] {
  color:#0071e3;
  font-weight:700;
  box-shadow:inset 0 -2px 0 #0071e3
}
.language-control {
  min-width:0;
  max-width:100%
}
.language-selector {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  color:#6e6e73;
  font-size:13px
}
.language-selector select {
  width:auto;
  max-width:140px;
  min-height:44px;
  font-size:14px;
  padding:8px 12px;
  border:1px solid #d2d2d7;
  border-radius:12px;
  background:#ffffff;
  color:#1d1d1f
}
.page-shell {
  max-width:1340px;
  margin:auto;
  padding:28px 5% 0
}
.demo-strip {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:#eeeede;
  border-radius:10px;
  padding:12px 18px;
  color:#525e42;
  font-size:12px
}
.demo-strip>div:first-child {
  display:flex;
  align-items:center;
  gap:9px
}
.status-dot {
  width:7px;
  height:7px;
  background:#828951;
  border-radius:50%;
  flex-shrink:0
}
.scenario-control {
  display:flex;
  align-items:center;
  gap:9px;
  flex-shrink:0
}
.scenario-control label {
  font-size:11px
}
.scenario-control select {
  color:var(--ink);
  border:1px solid #cdd3bf;
  background:var(--white);
  border-radius:6px;
  font-size:12px;
  padding:5px 25px 5px 8px;
  max-width:240px
}
.scenario-description {
  font-size:11px;
  color:var(--muted);
  padding:7px 18px 0;
  min-height:27px
}
.hero {
  display:grid;
  grid-template-columns:1fr 270px;
  align-items:center;
  gap:48px;
  padding:40px 0 35px
}
.section-kicker {
  display:block;
  font-size:9px;
  letter-spacing:2px;
  font-weight:700;
  color:#8b927f;
  margin-bottom:9px
}
.hero h1 {
  font-size:clamp(28px,3vw,39px);
  line-height:1.45;
  font-weight:700;
  letter-spacing:-1px;
  max-width:720px
}
.hero-copy>p {
  font-size:14px;
  color:var(--muted);
  max-width:650px;
  margin-top:14px;
  line-height:1.8
}
.trip-meta {
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:20px 0;
  color:#586559;
  font-size:11px
}
.trip-meta>span {
  display:flex;
  align-items:center;
  gap:5px
}
.trip-meta .icon {
  width:15px;
  height:15px
}
.primary-link {
  display:inline-flex;
  align-items:center;
  gap:22px;
  background:var(--green);
  color:var(--white);
  padding:10px 17px;
  border-radius:7px;
  font-size:12px;
  text-decoration:none;
  transition:background .15s
}
.primary-link:hover {
  background:#285649
}
.primary-link .icon {
  width:17px
}
.hero-art {
  background:#eef0e6;
  border-radius:50% 50% 18px 18px;
  padding:28px 20px 18px;
  transform:rotate(2deg)
}
.art-caption {
  display:block;
  text-align:center;
  font-size:7px;
  letter-spacing:1.8px;
  color:#82917f
}
.hero-art svg {
  width:100%;
  height:auto
}
.art-route {
  display:flex;
  gap:24px;
  justify-content:center;
  color:var(--green);
  font-size:12px;
  font-weight:600;
  letter-spacing:2px
}
.request-strip {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  font-size:10px;
  color:var(--muted);
  padding:13px 0;
  margin-bottom:30px
}
.request-strip strong {
  color:var(--ink);
  margin-right:8px;
  font-weight:600
}
.plan-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:28px;
  align-items:start
}
.journey-column {
  min-width:0
}
.section-heading {
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px
}
.section-heading h2 {
  font-size:20px;
  letter-spacing:-.3px;
  font-weight:650;
  line-height:1.5
}
.section-heading .section-kicker {
  margin-bottom:4px;
  font-size:8px
}
.plan-badge {
  background:var(--soft);
  font-size:10px;
  padding:4px 8px;
  border-radius:20px;
  color:#5c6d57;
  white-space:nowrap
}
.booking-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.booking-card {
  background:var(--white);
  padding:20px;
  border:1px solid var(--line);
  border-radius:11px;
  min-width:0
}
.rental-card {
  grid-column:1/-1
}
.rental-route {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
  padding:12px;
  border-radius:7px;
  background:var(--soft)
}
.rental-route>div {
  display:grid;
  gap:3px;
  min-width:0
}
.rental-route span {
  color:var(--muted);
  font-size:10px
}
.rental-route strong {
  font-size:12px;
  overflow-wrap:anywhere
}
.rental-terms {
  margin-top:14px;
  font-size:11px;
  color:var(--muted)
}
.rental-terms summary {
  width:fit-content;
  cursor:pointer;
  color:var(--green);
  font-weight:600
}
.rental-terms ul {
  padding-left:19px;
  margin:9px 0
}
.rental-terms p {
  line-height:1.7
}
.card-eyebrow {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:600;
  margin-bottom:15px
}
.icon-box {
  background:var(--soft);
  padding:6px;
  border-radius:7px
}
.icon-box .icon {
  width:17px;
  height:17px
}
.quiet-badge {
  margin-left:auto;
  font-size:9px;
  font-weight:400;
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:4px;
  padding:1px 5px
}
.booking-card h3 {
  font-size:15px;
  line-height:1.5;
  margin-bottom:6px
}
.booking-card>p {
  color:var(--muted);
  font-size:11px;
  min-height:36px
}
.flight-segments {
  padding:16px 0 4px
}
.flight-segment {
  display:grid;
  grid-template-columns:25px 1fr 20px 1fr;
  gap:7px;
  align-items:start;
  margin-bottom:12px
}
.segment-label {
  font-size:9px;
  color:var(--muted);
  padding-top:4px
}
.flight-segment>div {
  display:flex;
  flex-direction:column;
  font-size:10px
}
.flight-segment strong {
  font-size:16px;
  font-weight:600;
  line-height:1.3
}
.flight-segment small {
  color:var(--muted);
  font-size:8px;
  line-height:1.6;
  margin-top:3px;
  overflow-wrap:anywhere
}
.segment-arrow {
  padding-top:4px;
  color:#95a58c
}
.segment-arrow .icon {
  width:16px;
  height:16px
}
.stay-details {
  display:flex;
  align-items:center;
  gap:12px;
  margin:29px 0 36px;
  flex-wrap:wrap
}
.stay-details>div {
  display:flex;
  flex-direction:column
}
.stay-details span {
  font-size:9px;
  color:var(--muted)
}
.stay-details strong {
  font-size:13px
}
.stay-divider {
  color:#99a08e
}
.stay-details .stay-nights {
  margin-left:auto;
  text-align:right
}
.stay-nights strong {
  font-size:22px;
  font-weight:500;
  line-height:1.3
}
.booking-price {
  border-top:1px solid var(--line);
  padding-top:13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px
}
.booking-price>div {
  display:flex;
  flex-direction:column
}
.booking-price strong {
  font-size:18px;
  font-weight:650;
  letter-spacing:-.5px
}
.booking-price span {
  font-size:9px;
  color:var(--muted)
}
.tax-note {
  max-width:85px;
  text-align:right
}
.unavailable {
  border-color:#e2ccad;
  background:#fdf9f1
}
.next-step {
  margin-top:15px!important;
  color:var(--amber)!important
}
.reasons-card {
  background:#eef1e9;
  border-radius:8px;
  padding:13px 18px;
  margin-top:14px;
  display:flex;
  align-items:flex-start;
  gap:20px
}
.reason-heading {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  white-space:nowrap;
  margin-top:2px;
  font-weight:600
}
.reason-heading .icon {
  width:15px;
  height:15px
}
.reasons-card ul {
  margin:0;
  padding-left:13px;
  font-size:10px;
  line-height:1.8;
  color:#62715e
}
.budget-card {
  border:1px solid #d7dfd1;
  background:var(--white);
  border-radius:12px;
  padding:24px;
  position:sticky;
  top:22px
}
.budget-card h2 {
  font-size:20px;
  line-height:1.6;
  letter-spacing:-.5px
}
.budget-card .section-kicker {
  font-size:8px
}
.budget-intro {
  font-size:10px;
  color:var(--muted);
  margin-top:6px
}
.budget-total {
  display:flex;
  flex-direction:column;
  margin-top:24px
}
.budget-total>span {
  font-size:10px;
  color:var(--muted)
}
.budget-total>strong {
  font-size:39px;
  line-height:1.4;
  font-weight:550;
  letter-spacing:-1.5px;
  color:var(--green)
}
.budget-total small {
  font-size:9px;
  color:var(--muted)
}
.budget-target {
  display:flex;
  flex-direction:column;
  gap:4px;
  background:var(--soft);
  color:#536c4b;
  border-radius:6px;
  padding:10px 12px;
  margin:15px 0 22px;
  font-size:10px
}
.budget-target strong {
  font-weight:600
}
.budget-target.over-budget {
  background:#f7eae4;
  color:var(--rust)
}
.expense-group {
  margin-top:21px
}
.expense-group h3 {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  font-weight:650;
  padding-bottom:10px;
  border-bottom:1px solid var(--line)
}
.expense-group h3>span:last-child:not(.expense-dot) {
  margin-left:auto;
  font-weight:600
}
.expense-dot {
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--green)
}
.expense-dot.estimated {
  background:#9aac8c
}
.expense-dot.unknown {
  background:#b79255
}
.expense-group ul {
  padding:0;
  margin:0;
  list-style:none
}
.expense-group li {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  font-size:11px
}
.expense-group li>div {
  display:flex;
  flex-direction:column;
  min-width:0
}
.expense-group small {
  font-size:9px;
  line-height:1.6;
  color:var(--muted);
  margin-top:2px;
  overflow-wrap:anywhere
}
.expense-group li>strong {
  font-size:11px;
  white-space:nowrap;
  font-weight:500
}
.budget-footnote {
  font-size:11px;
  line-height:1.8;
  color:var(--muted);
  margin-top:20px;
  padding-top:15px;
  border-top:1px solid var(--line)
}
.timeline-section {
  margin-top:36px;
  scroll-margin-top:22px
}
.timeline-note {
  font-size:9px;
  color:var(--muted);
  text-align:right
}
.ai-itinerary-note,.ai-source-context {
  margin-bottom:16px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--soft);
  overflow-wrap:anywhere
}
.ai-itinerary-note strong,.ai-source-context strong {
  font-size:12px;
  color:var(--green)
}
.ai-itinerary-note p,.ai-source-context p,.ai-source-context small {
  margin-top:5px;
  font-size:11px;
  line-height:1.8;
  color:var(--muted)
}
.ai-itinerary-note[data-state="needs_regeneration"] {
  background:#f3ebd7;
  color:var(--amber)
}
.ai-suggestion-label {
  overflow-wrap:anywhere
}
.day-list {
  display:flex;
  flex-direction:column;
  gap:14px
}
.day-card {
  display:flex;
  gap:22px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--white);
  padding:22px
}
.day-marker {
  flex-shrink:0;
  width:51px;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
  padding-right:16px;
  text-align:center
}
.day-marker>span {
  font-size:8px;
  letter-spacing:1.5px;
  color:#96a18c
}
.day-marker>strong {
  font-size:30px;
  font-weight:500;
  line-height:1.5;
  color:var(--green)
}
.day-marker small {
  font-size:9px;
  white-space:nowrap;
  color:var(--muted);
  margin-top:5px
}
.day-content {
  flex:1;
  min-width:0
}
.day-content h3 {
  font-size:15px;
  font-weight:600;
  margin-bottom:18px
}
.day-content ol {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:15px
}
.day-content li {
  display:flex;
  gap:16px;
  position:relative
}
.day-content time {
  font-size:10px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  color:#75876b;
  min-width:38px;
  padding-top:1px
}
.day-content li>div {
  border-left:1px solid #dce3d7;
  padding-left:15px;
  min-width:0
}
.day-content li>div:before {
  content:'';
  display:block;
  position:absolute;
  width:5px;
  height:5px;
  background:#8fa481;
  border-radius:50%;
  margin-left:-18px;
  top:7px
}
.day-content li strong {
  font-size:11px;
  font-weight:600
}
.day-content p {
  font-size:10px;
  color:var(--muted);
  line-height:1.8;
  margin-top:3px
}
.day-content li small {
  font-size:8px;
  color:#929b8e
}
.plan-alerts {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:23px
}
.plan-alert {
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:8px;
  padding:13px 17px;
  font-size:12px;
  background:#f3ebd7;
  color:var(--amber)
}
.plan-alert>span {
  border:1px solid currentColor;
  border-radius:50%;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  line-height:1;
  font-size:11px;
  flex-shrink:0
}
.alert-error {
  background:#f5e7e0;
  color:var(--rust)
}
.source-details {
  border-top:1px solid var(--line);
  margin-top:28px;
  font-size:11px
}
.source-details summary {
  cursor:pointer;
  padding:17px 0;
  font-weight:600
}
.source-details summary>span {
  font-weight:400;
  color:var(--muted);
  margin-left:10px;
  font-size:10px
}
.source-content {
  color:var(--muted);
  font-size:10px;
  padding:0 0 16px
}
.source-content>p {
  margin:9px 0
}
.source-row {
  display:flex;
  flex-wrap:wrap;
  gap:4px 15px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  overflow-wrap:anywhere
}
.source-row strong {
  color:var(--ink)
}
.source-row small {
  flex-basis:100%;
  font-size:10px
}
.site-footer {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 16px;
  margin-top:48px;
  border-top:1px solid #d2d2d7;
  padding:16px 0 20px;
  font-size:13px;
  color:#6e6e73;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Arial,sans-serif
}
.site-footer a:not(.wordmark) {
  color:#0071e3;
  text-underline-offset:3px
}
.empty-state,.loading-message {
  padding:60px 20px;
  text-align:center
}
.empty-state h1 {
  font-size:24px;
  margin-bottom:10px
}
@media(min-width:1450px) {
  .hero {
    padding-top:48px;
    padding-bottom:44px
  }
}
@media(max-width:1050px) {
  .plan-layout {
    grid-template-columns:minmax(0,1fr) 280px;
    gap:20px
  }
  .booking-grid {
    grid-template-columns:1fr
  }
  .booking-card>p {
    min-height:0
  }
  .flight-segments {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px
  }
  .stay-details {
    margin:20px 0
  }
  .hero {
    gap:25px;
    grid-template-columns:1fr 220px
  }
  .budget-card {
    padding:20px
  }
  .reasons-card {
    flex-direction:column;
    gap:7px
  }
}
@media(max-width:760px) {
  .page-shell {
    padding:20px 6% 0
  }
  .demo-strip {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    padding:12px 14px
  }
  .demo-strip>div:first-child {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:5px 8px
  }
  .status-dot {
    margin-top:7px
  }
  .demo-strip>div:first-child>span:last-child {
    flex-basis:100%;
    padding-left:15px;
    font-size:11px
  }
  .scenario-control {
    width:100%
  }
  .scenario-control select {
    flex:1;
    max-width:none
  }
  .scenario-description {
    padding-left:4px;
    min-height:35px
  }
  .hero {
    grid-template-columns:1fr;
    padding:25px 0 28px;
    gap:0
  }
  .hero-art {
    display:none
  }
  .hero h1 {
    font-size:29px
  }
  .hero-copy>p {
    font-size:12px
  }
  .trip-meta {
    font-size:10px;
    gap:8px 14px
  }
  .request-strip {
    font-size:9px;
    margin-bottom:24px;
    gap:7px;
    flex-direction:column
  }
  .plan-layout {
    display:flex;
    flex-direction:column;
    gap:26px
  }
  .journey-column {
    width:100%
  }
  .budget-card {
    width:100%;
    position:static;
    padding:22px;
    order:-1
  }
  .budget-card h2 {
    font-size:19px
  }
  .budget-total {
    margin-top:18px
  }
  .budget-total>strong {
    font-size:35px
  }
  .budget-target {
    margin-bottom:17px
  }
  .expense-group {
    margin-top:17px
  }
  .expense-group small {
    font-size:10px
  }
  .budget-footnote {
    font-size:10px
  }
  .section-heading h2 {
    font-size:18px
  }
  .flight-segments {
    gap:12px
  }
  .booking-grid {
    gap:12px
  }
  .booking-card {
    padding:18px
  }
  .booking-card>p {
    font-size:12px
  }
  .reasons-card {
    padding:14px 17px
  }
  .reasons-card ul {
    font-size:11px
  }
  .reason-heading {
    font-size:11px
  }
  .day-card {
    gap:17px;
    padding:19px 15px
  }
  .day-marker {
    width:47px;
    padding-right:13px
  }
  .day-content h3 {
    font-size:14px
  }
  .day-content li {
    gap:8px
  }
  .day-content li strong {
    font-size:12px
  }
  .day-content p {
    font-size:11px
  }
  .day-content time {
    font-size:11px
  }
  .timeline-note {
    font-size:8px;
    max-width:68px
  }
  .source-details summary>span {
    display:block;
    margin-left:14px;
    margin-top:4px
  }
  .site-footer {
    gap:8px 14px;
    flex-wrap:wrap;
    margin-top:30px
  }
  .plan-alert {
    font-size:11px;
    align-items:flex-start
  }
}
@media(max-width:440px) {
  .flight-segments {
    grid-template-columns:1fr
  }
}
@media(max-width:380px) {
  .hero h1 {
    font-size:25px
  }
  .booking-price strong {
    font-size:17px
  }
  .day-content li>div {
    padding-left:11px
  }
  .day-content li>div:before {
    margin-left:-14px
  }
  .day-content time {
    min-width:34px
  }
  .section-heading {
    align-items:flex-start
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}

.adjustments {
  padding:22px;
  margin-bottom:22px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--white);
}
.adjustment-fields {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.rental-fields {
  margin:18px 0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper)
}
.rental-fields:disabled {
  display:none
}
.rental-fields legend {
  padding:0 7px;
  font-size:12px;
  font-weight:600
}
.rental-fields .adjustment-fields {
  margin-top:13px
}
.rental-fields .constraint-note {
  margin-top:0;
  padding-top:0;
  border:0
}
.rental-fields .constraint-note:last-child {
  margin-top:12px
}
.adjustment-fields label {
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:11px;
  color:var(--muted);
  min-width:0;
}
.adjustment-fields input,.adjustment-fields select {
  width:100%;
  min-width:0;
  min-height:39px;
  padding:8px;
  border:1px solid #d7dfd1;
  border-radius:6px;
  background:var(--paper);
  color:var(--ink);
  font:inherit;
  font-size:12px;
}
.adjustment-fields input:focus-visible,.adjustment-actions button:focus-visible {
  outline:3px solid #d6a64c;
  outline-offset:3px;
}
.adjustment-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:17px;
}
.adjustment-actions button {
  cursor:pointer;
  padding:9px 13px;
  border-radius:6px;
  border:1px solid var(--green);
  font-size:11px;
}
.apply-button { background:var(--green);color:var(--white); }
.reset-button { background:transparent;color:var(--green); }
.adjustment-actions>span,.constraint-note { font-size:10px;color:var(--muted); }
.constraint-note { padding-top:14px;margin-top:14px;border-top:1px solid var(--line); }
.form-error { font-size:12px;color:var(--rust);margin-top:12px; }
.form-error:empty { display:none; }
.change-summary { margin-top:15px;padding:12px 15px;border-radius:6px;background:var(--soft);font-size:11px; }
.change-summary strong { font-size:11px; }
.change-summary ul { padding-left:16px;margin:5px 0 0;color:#62715e; }
.check-result { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;padding:0 2px 14px;font-size:12px; }
.check-result span { color:var(--muted);font-size:10px; }
.booking-card>.pricing-basis { min-height:0;font-size:9px;margin-top:10px;color:var(--muted); }
.timeline-stale { padding:13px 16px;background:#f3ebd7;border-radius:6px;color:var(--amber);font-size:11px;margin-bottom:16px; }
.untimed { font-size:10px;color:#929b8e;min-width:38px;padding-top:1px;white-space:nowrap; }
@media(max-width:1050px) {
  .adjustment-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .adjustments { padding:17px; }
  .rental-route { grid-template-columns:1fr; }
  .adjustment-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .adjustment-fields label:nth-child(3) { grid-column:1/-1; }
  .adjustment-actions>span { flex-basis:100%; }
  .constraint-note { font-size:10px;line-height:1.9; }
  .check-result { align-items:flex-start;flex-direction:column; }
  .change-summary { font-size:10px; }
  .untimed { min-width:38px; }
}
@media(max-width:380px) {
  .adjustment-fields { grid-template-columns:1fr; }
  .untimed { min-width:34px; }
}
.provider-panel { margin: 24px 0; padding: 24px; border: 1px solid var(--line, #deded5); border-radius: 12px; background: #fff; display: grid; grid-template-columns: 1fr auto; gap: 12px 24px; }
.provider-panel h2 { font-size: 20px; margin: 8px 0; }
.provider-panel p { font-size: 13px; color: #60695f; line-height: 1.7; margin: 8px 0; }
.provider-actions { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.provider-actions label { font-size: 12px; display: grid; gap: 6px; }
.provider-actions select { min-height: 40px; max-width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #deded5; background: #f8f8f2; color: #263e35; }
.provider-panel button:disabled { cursor: not-allowed; opacity: .5; }
.provider-message { grid-column: 1 / -1; }
.source-row small, .source-row a { overflow-wrap: anywhere; }
.place-context { padding: 16px 0; border-top: 1px solid #deded5; font-size: 13px; }
@media (max-width: 768px) { .provider-panel { grid-template-columns: 1fr; padding: 20px; } .provider-actions { align-items: stretch; } .provider-actions label { flex: 1; min-width: 0; } }

/* Keep the request, one primary plan and recovery actions ahead of test settings. */
button:focus-visible,input:focus-visible {
  outline:3px solid #d6a64c;
  outline-offset:3px
}
button:disabled,input:disabled,select:disabled {
  cursor:not-allowed
}
input[type="checkbox"] {
  accent-color:var(--green)
}
.journey-progress {
  margin:25px 0 0;
  color:var(--muted);
  font-size:12px
}
.journey-progress ol,ol.journey-progress {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  list-style:none;
  padding:0;
  counter-reset:journey-step
}
.journey-progress ol {
  margin:0
}
.journey-progress li {
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:11px 0;
  border-bottom:2px solid var(--line);
  counter-increment:journey-step
}
.journey-progress li::before {
  content:counter(journey-step);
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border:1px solid #d4dccc;
  border-radius:50%;
  color:#65755d;
  font-size:11px;
  flex-shrink:0
}
.journey-progress li[aria-current="step"],.journey-progress .is-current {
  border-color:var(--green);
  color:var(--green);
  font-weight:600
}
.journey-progress li[aria-current="step"]::before,.journey-progress .is-current::before {
  background:var(--green);
  border-color:var(--green);
  color:var(--white)
}
ol.journey-progress li::before {
  content:none
}
ol.journey-progress li>span:first-child {
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border:1px solid #d4dccc;
  border-radius:50%;
  color:#65755d;
  font-size:11px;
  flex-shrink:0
}
ol.journey-progress li[aria-current="step"]>span:first-child {
  background:var(--green);
  border-color:var(--green);
  color:var(--white)
}
.request-title {
  font-size:20px;
  line-height:1.5;
  font-weight:650;
  letter-spacing:-.3px
}
.request-summary {
  padding:12px 15px;
  margin-bottom:18px;
  border-radius:7px;
  background:var(--soft);
  color:#586a51;
  font-size:12px;
  overflow-wrap:anywhere
}
.request-summary strong {
  color:var(--green)
}
.request-summary p+p {
  margin-top:5px
}
.request-summary dl {
  display:flex;
  flex-wrap:wrap;
  gap:6px 20px;
  margin:0
}
.request-summary dl>div {
  display:flex;
  flex-wrap:wrap;
  gap:3px 7px;
  min-width:0
}
.request-summary dt {
  font-weight:600
}
.request-summary dd {
  margin:0
}
.request-options,.budget-scope {
  display:flex;
  flex-wrap:wrap;
  gap:9px 22px;
  min-width:0;
  border:0;
  padding:0;
  margin:19px 0
}
.request-options legend,.budget-scope legend {
  width:100%;
  margin-bottom:8px;
  color:var(--ink);
  font-size:12px;
  font-weight:600
}
.checkbox-label,.request-options label,.budget-scope label {
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  min-height:36px;
  min-width:0;
  font-size:12px;
  color:var(--ink);
  cursor:pointer
}
.checkbox-label input[type="checkbox"],.request-options input[type="checkbox"],.budget-scope input[type="checkbox"] {
  width:17px;
  height:17px;
  min-height:17px;
  padding:0;
  margin:0;
  flex-shrink:0
}
.request-options p,.budget-scope p {
  flex-basis:100%;
  color:var(--muted);
  font-size:11px;
  line-height:1.8
}
.preference-fields {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
  margin:21px 0;
  padding-top:18px;
  border-top:1px solid var(--line)
}
.preference-fields>label,.preference-fields>div {
  min-width:0
}
.preference-fields label:not(.checkbox-label) {
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:12px;
  color:var(--muted)
}
.preference-fields input:not([type="checkbox"]),.preference-fields select {
  width:100%;
  min-width:0;
  min-height:44px;
  padding:9px 10px;
  border:1px solid #d7dfd1;
  border-radius:6px;
  background:var(--paper);
  color:var(--ink);
  font:inherit;
  font-size:12px
}
.preference-fields .checkbox-label {
  margin-top:5px;
  font-size:11px;
  line-height:1.65
}
.preference-fields small {
  color:var(--muted);
  font-size:11px;
  line-height:1.8
}
.adjustments .adjustment-fields input,.adjustments .adjustment-fields select {
  min-height:44px
}
.edit-options {
  margin-top:19px;
  padding-top:13px;
  border-top:1px solid var(--line)
}
.edit-options summary {
  width:fit-content;
  max-width:100%;
  padding:6px 0;
  color:var(--green);
  font-size:12px;
  font-weight:600;
  cursor:pointer
}
.edit-options[open] summary {
  margin-bottom:11px
}
.edit-options .adjustment-fields {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.edit-options>p {
  margin:8px 0 12px;
  color:var(--muted);
  font-size:11px
}
.plan-status {
  margin:0 0 17px;
  padding:15px 18px;
  border-left:3px solid var(--green);
  border-radius:0 7px 7px 0;
  background:var(--soft);
  color:var(--green);
  font-size:12px;
  overflow-wrap:anywhere
}
.plan-status p {
  margin-top:4px;
  line-height:1.8
}
.plan-status[data-state="warning"],.plan-status[data-state="stale"] {
  background:#f3ebd7;
  border-color:var(--amber);
  color:var(--amber)
}
.plan-status[data-state="error"] {
  background:#f5e7e0;
  border-color:var(--rust);
  color:var(--rust)
}
.plan-recovery {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:0 0 22px
}
.plan-recovery button,.provider-actions button,.adjustment-actions button {
  min-height:44px;
  padding:10px 14px;
  border:1px solid var(--green);
  border-radius:6px;
  font:inherit;
  font-size:12px;
  cursor:pointer
}
.plan-recovery button:not(.apply-button) {
  background:transparent;
  color:var(--green)
}
.plan-recovery button:hover:not(:disabled),.reset-button:hover:not(:disabled) {
  background:var(--soft)
}
.plan-recovery .apply-button:hover:not(:disabled),.apply-button:hover:not(:disabled) {
  background:#285649
}
.plan-recovery button:disabled,.adjustment-actions button:disabled {
  cursor:not-allowed;
  opacity:.55
}
.plan-recovery p,.plan-recovery>span {
  flex-basis:100%;
  font-size:11px;
  color:var(--muted)
}
.suggested-label {
  display:inline-block;
  padding:3px 8px;
  margin-right:6px;
  border:1px solid #dce3d4;
  border-radius:5px;
  background:var(--soft);
  color:#586e50;
  font-size:10px;
  line-height:1.6;
  vertical-align:middle
}
.timeline-attribution {
  display:flex;
  flex-wrap:wrap;
  gap:4px 9px;
  margin-top:6px;
  font-size:11px;
  line-height:1.8;
  color:var(--muted);
  overflow-wrap:anywhere
}
.timeline-attribution a {
  text-decoration:underline;
  text-underline-offset:3px
}
.budget-covered {
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
  color:#536c4b;
  font-size:11px;
  line-height:1.8;
  overflow-wrap:anywhere
}
.budget-covered strong {
  display:block;
  margin-bottom:3px;
  color:var(--green)
}
.connection-details {
  margin:32px 0 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--muted)
}
.connection-details>summary {
  padding:17px 0;
  cursor:pointer;
  font-size:12px;
  font-weight:600
}
.connection-details>summary:hover {
  color:var(--green)
}
.connection-details .provider-panel {
  margin:0;
  padding:4px 0 20px;
  border:0;
  border-radius:0;
  background:transparent
}
.connection-details .provider-panel h2 {
  color:var(--ink);
  font-size:16px
}
.connection-details .provider-panel p {
  font-size:11px
}
@media(max-width:900px) {
  .adjustment-fields,.preference-fields {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:760px) {
  .journey-progress {
    margin-top:18px;
    font-size:11px
  }
  .journey-progress ol,ol.journey-progress {
    gap:9px
  }
  .journey-progress li {
    align-items:flex-start;
    gap:6px;
    line-height:1.6
  }
  .journey-progress li::before,ol.journey-progress li>span:first-child {
    width:21px;
    height:21px;
    font-size:10px
  }
  .request-title {
    font-size:18px
  }
  .request-summary {
    padding:11px 12px;
    font-size:11px
  }
  .request-options,.budget-scope {
    gap:7px 16px
  }
  .plan-recovery button {
    max-width:100%;
    white-space:normal;
    text-align:left
  }
  .plan-status {
    padding:13px 14px
  }
  .connection-details {
    margin-top:26px
  }
}
@media(max-width:480px) {
  .preference-fields {
    grid-template-columns:1fr;
    gap:13px
  }
  .journey-progress li {
    flex-direction:column;
    gap:5px
  }
  .plan-recovery button {
    width:100%;
    text-align:center
  }
}
@media(max-width:380px) {
  .adjustment-fields,.edit-options .adjustment-fields {
    grid-template-columns:1fr
  }
  .adjustment-actions button {
    width:100%;
    text-align:center
  }
  .request-options,.budget-scope {
    gap:5px 12px
  }
}

.saved-trips {
  margin:0 0 22px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--white);
  overflow-wrap:anywhere
}
.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}
.saved-trips>details {
  padding:0 22px
}
.saved-trips summary {
  padding:17px 0;
  font-size:13px;
  font-weight:600;
  color:var(--green);
  cursor:pointer
}
.saved-trips summary:hover {
  color:#285649
}
.saved-trips h2 {
  font-size:17px;
  line-height:1.6;
  margin-bottom:12px
}
.saved-trips details[open] {
  padding-bottom:20px
}
#save-trip-form {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:12px;
  margin:0 0 11px
}
#save-trip-form label {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  font-size:12px;
  color:var(--muted)
}
#trip-save-name {
  width:100%;
  min-width:0;
  min-height:44px;
  border:1px solid #d7dfd1;
  border-radius:6px;
  padding:9px 10px;
  background:var(--paper);
  color:var(--ink);
  font:inherit;
  font-size:12px
}
#save-trip-form button,.saved-trip-actions button,.saved-clear-button,.saved-delete-confirm button {
  min-height:44px;
  min-width:0;
  max-width:100%;
  padding:9px 14px;
  border:1px solid var(--green);
  border-radius:6px;
  background:transparent;
  color:var(--green);
  font:inherit;
  font-size:12px;
  line-height:1.6;
  white-space:normal;
  overflow-wrap:anywhere;
  cursor:pointer
}
#save-trip-form button {
  background:var(--green);
  color:var(--white)
}
#save-trip-form button:hover:not(:disabled) {
  background:#285649
}
.saved-trip-actions button:hover:not(:disabled),.saved-delete-confirm button:hover:not(:disabled) {
  background:var(--soft)
}
.saved-trips button:disabled {
  cursor:not-allowed;
  opacity:.55
}
.saved-storage-note {
  color:var(--muted);
  font-size:11px;
  line-height:1.9
}
.saved-message {
  margin-top:12px;
  padding:11px 13px;
  border-left:3px solid var(--green);
  border-radius:0 6px 6px 0;
  background:var(--soft);
  color:var(--green);
  font-size:12px;
  line-height:1.8
}
.saved-message:empty {
  display:none
}
.saved-message[data-state="error"] {
  background:#f5e7e0;
  color:var(--rust);
  border-color:var(--rust)
}
.saved-message:focus-visible,.saved-history-banner:focus-visible {
  outline:3px solid #d6a64c;
  outline-offset:3px
}
.saved-trip-list {
  list-style:none;
  padding:0;
  margin:17px 0 0;
  display:flex;
  flex-direction:column;
  gap:11px
}
.saved-trip-list>li {
  min-width:0
}
.saved-trip-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px 18px;
  min-width:0;
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper)
}
.saved-trip-item>div:first-child {
  min-width:0
}
.saved-trip-item>h3,.saved-trip-item>p,.saved-trip-item>small {
  grid-column:1
}
.saved-trip-item h3 {
  color:var(--ink);
  font-size:13px;
  font-weight:600;
  line-height:1.7;
  overflow-wrap:anywhere
}
.saved-trip-item p {
  color:var(--muted);
  font-size:11px;
  line-height:1.8;
  margin-top:3px
}
.saved-trip-item small {
  display:block;
  color:var(--muted);
  font-size:10px;
  line-height:1.8;
  margin-top:4px
}
.saved-trip-actions {
  grid-column:2;
  grid-row:1/4;
  display:flex;
  flex-wrap:wrap;
  align-self:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0
}
.saved-clear-button {
  display:block;
  margin-top:17px;
  border-color:#d9c6be;
  color:var(--rust)
}
.saved-clear-button:hover:not(:disabled) {
  background:#f5e7e0
}
.saved-delete-confirm {
  grid-column:1/-1;
  padding:13px 15px;
  margin-top:12px;
  border:1px solid #e2ccad;
  border-radius:7px;
  background:#fdf9f1;
  color:var(--amber);
  font-size:12px;
  line-height:1.8;
  overflow-wrap:anywhere
}
.saved-delete-confirm p {
  margin:0 0 9px;
  color:var(--amber)
}
.saved-delete-confirm button {
  margin:0 7px 4px 0
}
.saved-delete-confirm button:first-of-type {
  background:var(--rust);
  border-color:var(--rust);
  color:var(--white)
}
.saved-delete-confirm button:first-of-type:hover:not(:disabled) {
  background:#893f2d
}
.saved-history-banner {
  padding:15px 18px;
  margin:0 0 18px;
  border-left:4px solid var(--amber);
  border-radius:0 8px 8px 0;
  background:#f3ebd7;
  color:#79531b;
  font-size:12px;
  line-height:1.9;
  overflow-wrap:anywhere
}
.saved-history-banner strong {
  display:block;
  font-size:13px;
  margin-bottom:3px
}
.saved-history-banner p+p {
  margin-top:5px
}
@media(max-width:768px) {
  .saved-trips>details {
    padding:0 17px
  }
  .saved-trips details[open] {
    padding-bottom:17px
  }
  .saved-trip-item {
    grid-template-columns:1fr;
    padding:14px
  }
  .saved-trip-actions {
    grid-column:1;
    grid-row:auto;
    justify-content:flex-start;
    margin-top:8px
  }
}
@media(max-width:480px) {
  #save-trip-form {
    grid-template-columns:1fr;
    gap:10px
  }
  #save-trip-form button,.saved-clear-button {
    width:100%
  }
  .saved-trip-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%
  }
  .saved-history-banner {
    padding:13px 14px
  }
}

.adjustments textarea {
  display:block; width:100%; min-height:80px; padding:12px; border:1px solid #78947e; border-radius:8px; font:inherit; resize:vertical;
}
#draft-fields { font-family:monospace; }
.candidate-ranking { padding:12px; background:#f3f5ef; border-radius:8px; }

/* One-page workspace: controls stay reachable without replacing the plan. */
.workspace-summary { position: sticky; top: 0; z-index: 5; padding: 12px 20px; background: #f7faf4; border: 1px solid #78947e; border-radius: 12px; margin-bottom: 24px; }
.workspace-summary summary { font-weight: 700; cursor: pointer; min-height: 44px; }
.workspace-summary nav { display: flex; gap: 12px; flex-wrap: wrap; }
.workspace-summary a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; }
.local-candidate-controls { display: flex; flex-wrap: wrap; gap: 16px; margin: 16px 0; }
.local-candidate-controls label { flex: 1; min-width: 180px; }
.adjustments textarea { width: 100%; min-height: 80px; padding: 12px; font: inherit; border: 1px solid #78947e; border-radius: 8px; }
[hidden] { display: none !important; }
#requirements, #flight-candidates, #hotel-candidates, #place-candidates, #itinerary, #budget-title { scroll-margin-top: 180px; }
@media (min-width: 1000px) { .budget-card { position: sticky; top: 180px; align-self: start; } }
@media (max-width: 600px) { .workspace-summary { padding: 8px 12px; } .workspace-summary p { font-size: 13px; margin: 6px 0; } .workspace-summary nav { gap: 2px; } }

[data-candidate-list] { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; padding-left: 0; list-style: none; }
[data-candidate-list] > li { padding: 16px; border: 1px solid #afc2ac; border-radius: 12px; min-width: 0; overflow-wrap: anywhere; }

/* Search-first layout: familiar travel hierarchy with Trip's green palette. */
:root { --muted:#536258; --line:#c6d0c8; --white:#ffffff; --paper:#f6f8f5; --radius:12px; --space:24px; }
body { font-size:16px; }
.page-shell { max-width:1280px; padding:24px 32px 48px; }
button,input,select,textarea,summary { font:inherit; }
button,input:not([type=checkbox]),select,summary { min-height:44px; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
:where(button,input,textarea,select,summary,a):focus-visible { outline:3px solid #176c9c; outline-offset:3px; }
.natural-search { margin-bottom:20px; }
.search-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.search-intro h1 { font-size:28px; line-height:1.35; letter-spacing:-.5px; }
.natural-entry { display:flex; align-items:stretch; gap:12px; }
.natural-entry textarea { flex:1; min-width:0; width:100%; min-height:72px; padding:12px 16px; border:1px solid #82988a; border-radius:var(--radius); resize:vertical; background:var(--white); }
.natural-entry button { flex:none; padding:12px 24px; border-radius:var(--radius); }
.input-help { margin:8px 0; font-size:14px; line-height:1.6; color:var(--muted); }
#draft-message:empty,.search-feedback:empty,.form-error:empty { display:none; }
#draft-message { margin-top:8px; }
.adjustments { padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); margin-bottom:24px; }
.search-panel .section-heading { margin-bottom:16px; }
.section-heading h2,.results-heading h2 { font-size:22px; }
.plan-badge,.quiet-badge { font-size:14px; color:var(--green); }
.search-core { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:12px; align-items:start; }
.search-panel label,.local-candidate-controls label { font-size:14px; color:var(--ink); display:block; }
.search-panel input:not([type=checkbox]),.search-panel select,.local-candidate-controls input,.local-candidate-controls select { display:block; width:100%; min-width:0; border:1px solid #82988a; border-radius:8px; padding:10px 12px; background:var(--white); color:var(--ink); font-size:16px; }
.search-panel input[type=checkbox] { flex:none; width:20px; height:20px; margin:0; accent-color:var(--green); }
.route-field { padding:10px 14px; border:1px solid #82988a; border-radius:8px; min-height:78px; }
.route-field span { font-size:14px; color:var(--muted); }
.route-field strong { display:block; font-size:16px; }
.people-picker { position:relative; }
.people-picker>summary { list-style:none; cursor:pointer; border:1px solid #82988a; padding:10px 14px; border-radius:8px; font-size:14px; }
.people-picker>summary::after { content:'⌄'; float:right; }
.people-picker strong { display:block; font-size:16px; }
.people-editor { padding:18px; margin-top:8px; border:1px solid #82988a; border-radius:var(--radius); background:var(--white); }
@media(min-width:1000px) { .people-editor { position:absolute; right:0; width:520px; z-index:8; box-shadow:0 12px 40px #24362f26; } }
.people-counters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.number-stepper { display:flex; align-items:center; }
.number-stepper button { width:44px; flex:none; padding:0; background:var(--soft); border:1px solid #82988a; color:var(--green); }
.search-panel .number-stepper input { text-align:center; padding:4px; border-radius:0; appearance:textfield; }
.number-stepper input::-webkit-inner-spin-button { appearance:none; }
.person-list { margin-top:16px; }
.person-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; align-items:center; border-top:1px solid var(--line); padding:12px 0; font-size:14px; }
.person-row:has(.infant-seat:not([hidden])) { grid-template-columns:1fr 1fr; }
.checkbox-label,.search-panel .checkbox-label { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; color:var(--ink); line-height:1.5; }
.request-options { display:flex; flex-wrap:wrap; gap:4px 20px; border:0; margin:12px 0 0; padding:0; }
.request-options legend { font-size:14px; font-weight:600; }
.search-actions { display:flex; gap:12px; margin-top:12px; }
.apply-button,.reset-button { min-height:44px; padding:10px 20px; border-radius:8px; font-size:16px; font-weight:600; }
.apply-button { background:var(--green); color:white; border:1px solid var(--green); }
.apply-button:disabled { background:#e1e6e2; color:#546057; border-color:#b1beb5; opacity:1; }
.reset-button { background:var(--white); border:1px solid #82988a; color:var(--green); }
.advanced-options { border-top:1px solid var(--line); margin-top:16px; }
.advanced-options>summary { display:flex; align-items:center; justify-content:space-between; padding:10px 0; cursor:pointer; font-weight:600; }
.advanced-options>summary span { color:var(--muted); font-weight:400; font-size:14px; }
.advanced-options fieldset { margin:20px 0; padding:16px; border:1px solid var(--line); border-radius:8px; min-width:0; }
.advanced-options legend { font-weight:600; padding:0 6px; }
.adjustment-fields,.event-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.adjustment-fields label:nth-child(3) { grid-column:auto; }
.context-options { display:flex; flex-wrap:wrap; gap:16px; }
.interest-chips,.interest-add { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
.interest-add label { flex:1; }
.chip { border:1px solid #82988a; border-radius:24px; background:var(--soft); color:var(--green); padding:8px 12px; }
.fixed-event .reset-button { margin-top:16px; }
.adjustment-actions { margin-top:12px; gap:12px; }
.search-panel>.constraint-note { font-size:14px; margin-top:12px; }
.constraint-note { color:var(--muted); font-size:14px; }
.change-summary { font-size:14px; }
.draft-review { padding:24px; border:2px solid var(--green); border-radius:var(--radius); margin-top:16px; background:#eef5ef; }
.draft-includes { display:flex; flex-wrap:wrap; gap:8px 20px; margin:12px 0; }
.draft-review .search-panel { padding:16px; }
.search-feedback { padding:12px 16px; border-radius:8px; background:var(--soft); margin:12px 0; }
.results-workspace { border-top:1px solid var(--line); padding-top:24px; }
.results-heading p { font-size:14px; color:var(--muted); margin:6px 0; }
.condition-chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.condition-chips span { background:var(--soft); border-radius:24px; padding:4px 12px; font-size:14px; }
.results-tabs { display:flex; border-bottom:1px solid var(--line); margin-bottom:20px; gap:8px; }
.results-tabs button { background:transparent; color:var(--muted); border:0; border-bottom:3px solid transparent; padding:12px 24px; }
.results-tabs button[aria-selected=true] { color:var(--green); border-bottom-color:var(--green); font-weight:700; }
.candidate-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:24px; margin-top:16px; }
.local-candidate-controls { display:flex; flex-direction:column; gap:16px; margin:0; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); align-self:start; }
.local-candidate-controls label { min-width:0; flex:initial; }
.local-candidate-controls p,.local-candidate-controls a,.candidate-main p { font-size:14px; }
.local-candidate-controls button { font-size:14px; padding:8px; }
[data-candidate-list] { display:grid; grid-template-columns:1fr; }
[data-candidate-list]>li { background:var(--white); }
.mobile-filter-toggle { display:none; }
.flight-progress { display:flex; gap:12px; list-style:none; padding:0; margin:20px 0; }
.flight-progress li { display:flex; align-items:center; gap:8px; flex:1; color:var(--muted); font-size:14px; }
.flight-progress li>span { display:grid; place-items:center; width:28px; height:28px; flex-shrink:0; border:1px solid var(--line); border-radius:50%; }
.flight-progress [aria-current=step],.flight-progress .is-complete { color:var(--green); font-weight:700; }
.flight-progress [aria-current=step]>span,.flight-progress .is-complete>span { background:var(--green); color:white; }
.flight-selected-summary { position:sticky; top:12px; z-index:2; display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:16px; background:#edf4ef; border:1px solid #82988a; border-radius:12px; font-size:14px; overflow-wrap:anywhere; }
.flight-selected-summary a { margin-left:auto; }
.flight-results:has(.flight-selected-summary) #flight-outbound-title,.flight-results:has(.flight-selected-summary) #flight-return-title { scroll-margin-top:110px; }
.flight-combination { padding:16px; margin-top:16px; background:var(--paper); border-radius:12px; overflow-wrap:anywhere; }
.flight-stage-feedback { margin:16px 0; font-size:14px; color:var(--ink); }
.flight-stage-feedback:empty { display:none; }
.flight-stage-feedback button { margin-top:8px; }
#flight-candidates .flight-result-card { display:grid; grid-template-columns:minmax(0,1fr) 205px; padding:0; gap:0; border-color:#c4d2c9; overflow:hidden; }
#flight-candidates .flight-result-card.is-selected { border:2px solid var(--green); }
.flight-card-main { padding:20px; min-width:0; }
.flight-card-top { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin-bottom:16px; }
.flight-card-top .checkbox-label { font-size:13px; }
.flight-card-route { display:grid; grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr); gap:12px; align-items:start; }
.flight-card-route>div { display:flex; flex-direction:column; gap:4px; }
.flight-card-route strong { font-size:26px; line-height:1.15; font-variant-numeric:tabular-nums; }
.flight-card-route span { font-weight:600; }
.flight-card-route small { font-size:12px; color:var(--muted); }
.flight-card-route small b { color:var(--green); white-space:nowrap; }
.flight-route-arrow { color:var(--muted); font-size:20px; }
.candidate-main .flight-airline { font-size:16px; font-weight:700; margin:16px 0 4px; }
.flight-route-meta,.flight-facts { margin:6px 0; }
.flight-missing { padding:8px; background:#fff6e5; border-radius:6px; }
.flight-source-details { margin-top:12px; font-size:14px; }
.flight-source-details summary { padding:10px 0; cursor:pointer; min-height:44px; }
.flight-source-details ol { padding-left:20px; }
.flight-source-details li { margin:12px 0; }
.flight-source-details p { margin:6px 0; }
.flight-card-price { min-width:0; padding:20px; background:#f6f8f5; border-left:1px solid #d5dfd7; display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.flight-card-price>span { font-size:13px; color:var(--muted); }
.flight-card-price>strong { font-size:26px; line-height:1.2; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.candidate-main .flight-card-price p { font-size:13px; margin:0 0 8px; }
.flight-card-price button { margin-top:auto; padding:12px; white-space:normal; min-height:44px; }
.flight-card-price small { font-size:12px; color:var(--muted); }
.flight-recommendations { font-size:14px; margin-bottom:12px; }
.flight-recommendations summary { cursor:pointer; padding:12px 0; min-height:44px; }
.flight-local-empty { padding:20px; background:var(--paper); border-radius:12px; }
#flight-filter-controls fieldset { min-width:0; margin:4px 0 0; padding:16px 0 0; border:0; border-top:1px solid var(--line); }
#flight-filter-controls fieldset legend { font-weight:700; padding-top:12px; }
#flight-filter-controls .adjustment-fields { display:flex; flex-direction:column; gap:12px; }
#flight-filter-controls fieldset .apply-button { width:100%; margin-top:16px; }
@media(max-width:1199px) {
  #flight-candidates .flight-result-card { grid-template-columns:minmax(0,1fr) 180px; }
  .flight-card-main,.flight-card-price { padding:16px; }
}
@media(max-width:600px) {
  #flight-candidates .flight-result-card { grid-template-columns:1fr; }
  .flight-card-price { border-left:0; border-top:1px solid #d5dfd7; }
  .flight-card-price>strong { font-size:28px; }
  .flight-progress { gap:8px; }
  .flight-progress li { font-size:12px; gap:4px; }
  .flight-selected-summary { top:8px; padding:12px; }
  .flight-selected-summary strong { flex-basis:100%; }
  .flight-selected-summary>span:nth-of-type(2) { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .flight-results:has(.flight-selected-summary) #flight-outbound-title,.flight-results:has(.flight-selected-summary) #flight-return-title { scroll-margin-top:160px; }
}
.workspace-summary { position:static; margin:0 0 20px; font-size:14px; }
.plan-status,.plan-status p,.plan-alert p,.booking-card p,.pricing-basis,.budget-card p,.source-details,.timeline-section p,.saved-trips p,.saved-trip-item p,.provider-panel p { font-size:14px; }
.booking-card h3 { font-size:20px; }
.demo-strip,.scenario-description,.saved-trips { margin-top:24px; }
#scenario-description { font-size:14px; }
.live-candidate-panels:empty { display:none; }
#requirements,#flight-candidates,#hotel-candidates,#place-candidates,#itinerary,#budget-title { scroll-margin-top:24px; }
@media(max-width:999px) {
  .site-navigation { justify-content:flex-start; }
  .search-core { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .route-field { grid-column:1/-1; }
  .people-picker { grid-column:1/-1; }
  .people-editor { position:static; width:100%; }
  .candidate-layout { grid-template-columns:1fr; }
  .mobile-filter-toggle { display:inline-flex; }
  [data-results] .local-candidate-controls { display:none; }
  [data-results][data-filters-open=true] .local-candidate-controls { display:flex; }
  .adjustment-fields,.event-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .topbar { padding:8px 16px; gap:4px 12px; }
  .site-navigation { order:3; flex-basis:100%; gap:0 16px; }
  .language-control { margin-left:auto; }
  .brand-logo { gap:8px; height:40px; }
  .brand-logo-avatar { width:30px; height:30px; }
  .brand-logo-name { font-size:17px; line-height:20px; }
  .brand-logo-compact { gap:6px; height:34px; }
  .brand-logo-compact .brand-logo-avatar { width:24px; height:24px; }
  .language-selector>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .language-selector { gap:4px; }
  .language-selector select { max-width:124px; }
  .page-shell { padding:16px 16px 32px; }
  .search-intro h1 { font-size:22px; }
  .search-intro>.quiet-badge { display:none; }
  .natural-entry { flex-direction:column; gap:8px; }
  .natural-entry textarea { min-height:80px; }
  .natural-entry button { align-self:flex-end; padding:8px 20px; }
  .natural-search { margin-bottom:16px; }
  .adjustments { padding:16px; margin-bottom:16px; }
  .search-panel .section-heading { margin-bottom:12px; }
  .section-heading h2,.results-heading h2 { font-size:20px; }
  .search-core { gap:8px; }
  .route-field { min-height:66px; padding:8px 12px; }
  .people-picker>summary { padding:8px 12px; }
  .search-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .search-actions button { padding:10px 8px; }
  .request-options { gap:0 12px; }
  .request-options .checkbox-label { min-height:36px; }
  .search-panel>.constraint-note { display:none; }
  .people-editor { padding:12px; }
  .people-counters { grid-template-columns:1fr; }
  .counter-field { display:flex !important; justify-content:space-between; align-items:center; }
  .number-stepper { width:150px; }
  .person-row { grid-template-columns:1fr 1fr; }
  .adjustment-fields,.event-fields,.preference-fields { grid-template-columns:1fr; }
  .adjustment-fields label:nth-child(3) { grid-column:auto; }
  .advanced-options fieldset { padding:12px; }
  .results-tabs { gap:0; }
  .results-tabs button { flex:1; padding:12px 8px; }
  .draft-review { padding:12px; }
  .draft-review .search-panel { padding:12px; }
  .saved-trips>details { padding:0 16px; }
  .booking-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .natural-entry { display:grid; grid-template-columns:minmax(0,1fr) 84px; }
  .natural-entry button { height:80px; align-self:start; padding:8px; }
  .request-options .checkbox-label { min-height:44px; }
}
@media(max-width:600px) {
  .natural-entry { display:flex; }
  .natural-entry textarea { min-height:96px; }
  .natural-entry button { height:44px; align-self:flex-end; padding:8px 20px; }
  .request-options legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
}

/* Hotel evidence remains separate from seller quote details. */
.hotel-stage-feedback,.hotel-detail-feedback { margin:16px 0; font-size:14px; color:var(--ink); }
.hotel-stage-feedback:empty { display:none; }
.hotel-stage-feedback button { margin-top:8px; }
#hotel-candidates .hotel-result-card { display:grid; grid-template-columns:180px minmax(0,1fr) 205px; padding:0; gap:0; overflow:hidden; border-color:#c4d2c9; }
#hotel-candidates .hotel-result-card.is-selected { border:2px solid var(--green); }
.hotel-photo-placeholder { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; padding:20px; min-height:210px; background:#e8eeea; color:#4b6255; text-align:center; }
.hotel-photo-placeholder .icon { width:42px; height:42px; }
.hotel-photo-placeholder strong { font-size:16px; }
.hotel-photo-placeholder small { font-size:12px; }
.hotel-card-main { padding:20px; min-width:0; }
.hotel-card-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.hotel-card-top .checkbox-label { font-size:13px; }
.hotel-card-main h3 { margin:14px 0 8px; font-size:21px; line-height:1.3; overflow-wrap:anywhere; }
.hotel-location { display:flex; align-items:center; gap:6px; margin:0 0 14px; }
.hotel-location .icon { flex-shrink:0; width:16px; height:16px; }
.hotel-ratings { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:13px; }
.hotel-ratings span { display:flex; flex-direction:column; gap:4px; }
.hotel-ratings strong { font-size:17px; }
.hotel-amenities { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:16px 0 8px; list-style:none; font-size:13px; }
.hotel-amenities li { padding:5px 8px; border-radius:6px; background:#f0f2ef; }
.hotel-amenities [data-evidence=provided] { color:#234835; background:#e8f1e8; }
.hotel-amenities [data-evidence=mismatch] { color:#804623; background:#fff0e1; }
.hotel-source-details,.hotel-recommendations { font-size:14px; margin-top:12px; }
.hotel-source-details summary,.hotel-recommendations summary { cursor:pointer; padding:12px 0; min-height:44px; }
.hotel-source-details p { margin:8px 0; }
.hotel-card-price { padding:20px; min-width:0; border-left:1px solid #d5dfd7; background:#f6f8f5; display:flex; flex-direction:column; gap:8px; }
.hotel-card-price>span,.hotel-card-price small { font-size:12px; color:var(--muted); }
.hotel-card-price>strong { font-size:25px; line-height:1.3; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.candidate-main .hotel-card-price p { margin:0 0 8px; font-size:13px; }
.hotel-card-price button { margin-top:auto; padding:12px; min-height:44px; white-space:normal; }
.hotel-selected-summary { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; padding:16px; background:#edf4ef; border:1px solid #82988a; border-radius:12px; }
.hotel-local-empty,.hotel-empty { padding:20px; background:var(--paper); border-radius:12px; }
.hotel-details { padding:24px; margin-top:20px; background:var(--white); border:1px solid #c4d2c9; border-radius:12px; overflow-wrap:anywhere; }
.hotel-details h3 { font-size:24px; line-height:1.3; }
.hotel-detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.hotel-detail-facts dt { font-size:13px; color:var(--muted); }
.hotel-detail-facts dd { margin:6px 0 0; font-size:16px; }
.hotel-detail-price { padding:20px; background:#f1f5f0; border-radius:10px; margin:20px 0; }
.hotel-detail-price>span,.hotel-detail-price>strong { display:block; }
.hotel-detail-price>strong { margin-top:8px; font-size:28px; }
.hotel-details li { margin:10px 0; }
.hotel-details button { min-height:44px; }
#hotel-filter-controls fieldset { min-width:0; margin:4px 0 0; padding:16px 0 0; border:0; border-top:1px solid var(--line); }
#hotel-filter-controls fieldset legend { font-weight:700; padding-top:12px; }
#hotel-filter-controls .adjustment-fields { display:flex; flex-direction:column; gap:12px; }
#hotel-filter-controls fieldset button { width:100%; margin-top:12px; }
@media (max-width:1150px) {
  #hotel-candidates .hotel-result-card { grid-template-columns:140px minmax(0,1fr) 175px; }
  .hotel-card-main,.hotel-card-price { padding:16px; }
}
@media (max-width:760px) {
  #hotel-candidates .hotel-result-card { grid-template-columns:1fr; }
  .hotel-photo-placeholder { min-height:156px; }
  .hotel-card-price { border-left:0; border-top:1px solid #d5dfd7; }
  .hotel-card-price>strong { font-size:28px; }
  .hotel-details { padding:16px; }
  .hotel-detail-facts { grid-template-columns:1fr; }
}

/* A compact comparison summary shares the same selections and budget as My Trip. */
:root { --summary-clearance:140px; }
html { scroll-padding-top:var(--summary-clearance); }
#workspace-summary-holder { position:sticky; top:8px; z-index:6; margin:16px 0; }
.workspace-summary { position:static; margin:0; padding:0; background:#f3f8f3; border:1px solid #88a28e; box-shadow:0 4px 14px #173e3512; overflow:hidden; }
.workspace-summary>summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 20px; padding:12px 18px; list-style:none; }
.workspace-summary>summary::-webkit-details-marker { display:none; }
.summary-title { color:var(--green); }
.summary-title::after { content:' ▾'; }
.workspace-summary[open] .summary-title::after { content:' ▴'; }
.summary-money { font-weight:700; font-variant-numeric:tabular-nums; }
.summary-selection-line,.summary-next { font-size:13px; color:var(--muted); font-weight:400; }
.summary-selection-line { display:flex; gap:12px; min-width:0; }
.summary-data-mode { white-space:nowrap; color:var(--green); font-weight:600; }
.summary-slot { display:flex; gap:6px; min-width:0; }
.summary-slot>span:first-child { white-space:nowrap; }
.summary-slot-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.summary-next { text-align:right; }
.summary-expanded { padding:0 18px 12px; max-height:min(38vh,320px); overflow:auto; overscroll-behavior:contain; border-top:1px solid var(--line); }
.summary-mode { color:var(--muted); font-size:13px; }
.summary-selections { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; list-style:none; }
.summary-selections li { display:flex; flex-direction:column; gap:4px; min-width:0; overflow-wrap:anywhere; }
.summary-selections li>span { color:var(--green); font-size:13px; }
.summary-selections small { color:var(--muted); }
.summary-selections [data-state=needs_requery]>span { color:#805517; }
.summary-expanded p { margin:10px 0; }
.summary-expanded nav { gap:8px 16px; }
.summary-expanded nav a,.summary-selections a { font-weight:600; }
.trip-overview { margin:24px 0; }
.trip-overview .section-heading a { min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
.trip-request,.trip-save-scope { font-size:14px; color:var(--muted); line-height:1.7; }
.trip-next-steps { padding:16px 20px; background:var(--paper); border-radius:12px; margin:16px 0; }
.trip-next-steps h3 { font-size:16px; margin:0 0 8px; }
.trip-next-steps ul { display:flex; flex-wrap:wrap; gap:8px 24px; padding-left:20px; margin:0; }
.trip-next-steps a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.trip-next-steps p { margin:4px 0; }
.trip-change { padding:12px 16px; border-left:3px solid var(--green); background:#eef5ef; font-size:14px; }
.selected-service-details { margin:12px 0; }
.selected-service-details>summary,.reasons-card>summary,.expense-group>summary { cursor:pointer; font-size:14px; font-weight:600; min-height:44px; display:flex; align-items:center; }
.selected-service-details .flight-segments,.selected-service-details .stay-details { margin-top:12px; }
.plan-layout { margin-top:24px; }
.budget-parts { display:grid; grid-template-columns:1fr; gap:8px; margin:16px 0; font-size:14px; }
.budget-parts div { display:flex; justify-content:space-between; gap:12px; }
.budget-parts dt { color:var(--muted); }
.budget-parts dd { font-weight:600; margin:0; font-variant-numeric:tabular-nums; }
.expense-group ul { margin:8px 0; }
.unknown-expenses strong { color:#805517; white-space:nowrap; font-size:13px; }
.timeline-help { color:var(--muted); font-size:14px; }
.day-card { display:block; padding:0; overflow:hidden; }
.day-header { display:flex; gap:20px; align-items:center; padding:16px 20px; cursor:pointer; list-style:none; }
.day-header::-webkit-details-marker { display:none; }
.day-header .day-marker { flex-shrink:0; width:72px; border:0; padding:0; }
.day-preview { display:flex; flex-direction:column; gap:6px; min-width:0; flex:1; }
.day-preview>strong { font-size:16px; }
.day-preview small { color:var(--muted); font-size:13px; }
.day-expand { font-size:22px; color:var(--green); }
.day-card[open] .day-expand { transform:rotate(45deg); }
.day-card .day-content { padding:0 20px 20px 112px; }
.day-card .suggested-label { display:inline-block; margin:6px 0 4px; }
[data-timing-origin=user] { background:#e0eaf9; color:#244678; }
[data-timing-origin=trial] { background:#fff1d5; color:#72520d; }
[data-timing-origin=ai] { background:#ede7f5; color:#5c3873; }
.results-tabs { margin-top:20px; }
.flight-selected-summary,.hotel-selected-summary { position:static; }
#requirements,#flight-candidates,#hotel-candidates,#trip-overview,#itinerary,#budget-title,#saved-trips-details,#place-candidates,#hotel-details-title,#flight-candidates #flight-outbound-title,#flight-candidates #flight-return-title { scroll-margin-top:16px; }
:where(button,input,select,textarea,summary,a) { scroll-margin-block:8px 24px; }
.google-maps-panel { margin:24px 0; padding:20px; border:1px solid var(--line); border-radius:16px; background:var(--white, #fff); }
.google-maps-panel .section-heading { align-items:center; gap:16px; }
.google-maps-panel p { color:var(--muted); }
#google-maps-canvas { height:380px; width:100%; margin-top:16px; border-radius:12px; overflow:hidden; }
#google-maps-canvas[hidden], #google-maps-retry[hidden] { display:none; }
@media (max-width:600px) {
  .google-maps-panel { padding:16px; }
  #google-maps-canvas { height:300px; }
}
@media (min-width:1000px) { .budget-card { top:var(--summary-clearance); } }
@media (max-width:999px) {
  .summary-selections { grid-template-columns:1fr; gap:12px; }
  .summary-selections li { padding-bottom:8px; border-bottom:1px solid var(--line); }
  .summary-selections li>a { min-height:44px; display:flex; align-items:center; }
  .summary-expanded { max-height:30vh; }
  .trip-next-steps ul { display:block; }
}
@media (max-width:600px) {
  .workspace-summary>summary { padding:10px 12px; gap:4px 8px; }
  .summary-title,.summary-money { font-size:13px; }
  .summary-selection-line { grid-column:1 / -1; font-size:12px; }
  .summary-slot-name { display:none; }
  .summary-next { grid-column:1 / -1; text-align:left; font-size:12px; }
  .summary-expanded { padding:0 12px 12px; }
  .trip-overview .section-heading { align-items:flex-start; gap:12px; }
  .day-header { padding:14px 12px; gap:12px; }
  .day-header .day-marker { width:54px; }
  .day-card .day-content { padding:0 12px 16px; }
  .day-preview>strong { font-size:15px; }
}

/* Independent location confirmation stays usable before the map is opened. */
.place-location-panel { margin-block: 2rem; padding: 1.5rem; border: 1px solid var(--line, #d6ded8); border-radius: 20px; background: #fff; }
.place-location-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1rem; margin-block: 1rem; }
.place-location-fields label { display: grid; gap: .4rem; font-weight: 600; }
.place-location-fields input, .place-location-fields select { width: 100%; min-width: 0; padding: .7rem; border: 1px solid #bdc9c0; border-radius: 8px; background: #fff; color: inherit; font: inherit; }
.place-location-fields input[readonly] { background: #f3f6f2; }
.place-location-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1rem; padding: 0; list-style: none; }
.place-location-results li, #place-location-selected:not(:empty) { padding: 1rem; border: 1px solid #d6ded8; border-radius: 12px; overflow-wrap: anywhere; }
.place-location-results button { min-height: 44px; padding: .6rem 1rem; cursor: pointer; }
.place-location-results button:disabled { cursor: default; opacity: .6; }
.place-location-note, .place-location-results p, #place-location-selected p { color: #485b50; line-height: 1.7; }

.activity-editor-panel { margin-block: 2rem; padding: 1.5rem; border: 1px solid #d6ded8; border-radius: 20px; background: #fff; }
.activity-editor-panel p { line-height: 1.7; }
.activity-editor-toolbar, .activity-editor-add-form, .activity-editor-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 1rem; align-items: end; }
.activity-editor-panel label { display: grid; gap: .4rem; font-weight: 600; min-width: 0; }
.activity-editor-panel input:not([type=checkbox]), .activity-editor-panel select, .activity-editor-panel textarea { width: 100%; min-width: 0; padding: .65rem; border: 1px solid #bdc9c0; border-radius: 8px; background: #fff; color: inherit; font: inherit; }
.activity-editor-panel textarea { min-height: 5rem; resize: vertical; }
.activity-editor-panel button { min-height: 44px; padding: .6rem .9rem; border: 1px solid #b7c9be; border-radius: 8px; background: #f4f7f3; color: #173e35; font: inherit; font-weight: 600; cursor: pointer; }
.activity-editor-panel button:disabled { opacity: .55; cursor: default; }
.activity-editor-panel :focus-visible { outline: 3px solid #007f65; outline-offset: 3px; }
.activity-editor-days { display: grid; gap: 1rem; margin-block: 1.5rem; }
.activity-editor-day { min-width: 0; }
.activity-editor-list { display: grid; gap: 1rem; padding-inline-start: 1.5rem; }
.activity-editor-card { padding: 1rem; border: 1px solid #d6ded8; border-radius: 12px; overflow-wrap: anywhere; }
.activity-editor-card[data-activity-selected=true] { border: 2px solid #007f65; }
.activity-editor-card fieldset { min-width: 0; }
.activity-editor-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: .8rem; align-items: end; }
.activity-editor-confirm { padding: 1rem; border: 2px solid #9b6517; border-radius: 8px; background: #fff9ec; }
.activity-editor-note, .activity-editor-empty { color: #485b50; }
@media (max-width: 600px) { .activity-editor-panel { padding: 1rem; } .activity-editor-actions > * { flex: 1 1 140px; } }
.activity-editor-actions > * { min-width: 0; max-width: 100%; }
@media (max-width: 600px) { .activity-editor-actions { display: grid; grid-template-columns: minmax(0, 1fr); } }
#place-candidates [data-place-controls] { min-width: 0; overflow-wrap: anywhere; }
#place-candidates [data-place-controls] label { display: grid; min-width: 0; max-width: 100%; }
#place-candidates [data-place-controls] select { width: 100%; min-width: 0; max-width: 100%; }

.place-introduction { margin-block: .8rem; padding: .9rem; border: 1px solid #d6ded8; border-radius: 10px; background: #f7faf6; min-width: 0; overflow-wrap: anywhere; }
.itinerary-draft-panel { margin-block: 2rem; padding: 1.5rem; border: 1px solid #d6ded8; border-radius: 16px; background: #fff; min-width: 0; overflow-wrap: anywhere; }
.itinerary-draft-panel p, .itinerary-draft-panel li { line-height: 1.7; }
.itinerary-draft-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-block: 1rem; }
.itinerary-draft-actions button { min-height: 44px; max-width: 100%; white-space: normal; }
.itinerary-draft-day, .itinerary-draft-protected { margin-block: 1rem; padding: 1rem; border: 1px solid #d6ded8; border-radius: 10px; }
.itinerary-draft-day ul, .itinerary-draft-protected ul { padding-inline-start: 1.2rem; }
.itinerary-draft-item { margin-block: .5rem; }
.itinerary-draft-diff { font-weight: 600; }
.itinerary-draft-warning { color: #774c11; }
.itinerary-draft-panel :focus-visible { outline: 3px solid #007f65; outline-offset: 3px; }
@media (max-width: 600px) { .itinerary-draft-panel { padding: 1rem; } .itinerary-draft-actions { display: grid; grid-template-columns: minmax(0, 1fr); } }
.place-introduction h3, .place-introduction h4 { font-size: 1rem; margin-block: 0 .5rem; }
.place-introduction-body { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.75; }
.place-introduction-source, .place-introduction-attribution, .place-introduction-version, .place-introduction-generation, .place-introduction-license { font-size: .85rem; color: #485b50; }
.place-introduction-facts { display: grid; gap: .3rem; padding-inline-start: 1.2rem; }
.place-introduction a { overflow-wrap: anywhere; }

/* The existing map and the shared activity list stay mounted across views. */
.itinerary-map-panel { margin-block: 2rem; padding: 1.5rem; border: 1px solid #d6ded8; border-radius: 20px; background: #fff; min-width: 0; }
.itinerary-map-panel p { line-height: 1.7; }
.itinerary-map-day-label { display: grid; gap: .4rem; max-width: 24rem; font-weight: 600; }
.itinerary-map-panel select { width: 100%; min-width: 0; padding: .65rem; border: 1px solid #bdc9c0; border-radius: 8px; background: #fff; font: inherit; }
.itinerary-map-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.5rem; align-items: start; }
#itinerary-map-list-pane, #itinerary-map-map-pane { min-width: 0; }
#itinerary-map-list { display: grid; gap: .75rem; list-style: none; padding: 0; margin: 0; max-height: 36rem; overflow: auto; }
.itinerary-map-item { padding: 1rem; border: 1px solid #d6ded8; border-inline-start: 6px solid #1b6a51; border-radius: 12px; overflow-wrap: anywhere; }
.itinerary-map-item[data-map-selected=true] { outline: 3px solid #173e35; outline-offset: -3px; }
.itinerary-map-panel button { min-height: 44px; max-width: 100%; padding: .6rem .9rem; border: 1px solid #b7c9be; border-radius: 8px; background: #f4f7f3; color: #173e35; font: inherit; font-weight: 600; cursor: pointer; white-space: normal; }
.itinerary-map-panel button:disabled { opacity: .55; cursor: default; }
.itinerary-map-panel :focus-visible { outline: 3px solid #007f65; outline-offset: 3px; }
.itinerary-map-select { width: 100%; text-align: start; }
.itinerary-map-tabs { display: none; gap: .5rem; margin-block: 1rem; }
.itinerary-map-panel .google-maps-panel { margin: 0; padding: 1rem; }
.itinerary-map-panel #google-maps-canvas { height: 28rem; }
.itinerary-map-detail { margin-block: 1.25rem; padding: 1rem; border: 1px solid #d6ded8; border-radius: 12px; overflow-wrap: anywhere; }
.itinerary-map-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.itinerary-map-attribution, .itinerary-map-note, .itinerary-map-empty { color: #485b50; font-size: .9rem; }
.itinerary-map-pin { display: grid; place-items: center; width: 44px; height: 44px; border: 3px solid #fff; border-radius: 50%; background: #1b6a51; color: #fff; box-shadow: 0 2px 6px #0005; font: 700 16px system-ui; }
.itinerary-map-pin.is-selected { outline: 4px solid #172d24; outline-offset: 3px; transform: scale(1.12); }
.itinerary-map-pin-hotel { border-radius: 10px; background: #263341; }
.itinerary-map-pin-day-1 { background: #315b9d; } .itinerary-map-item[data-map-color="1"] { border-inline-start-color: #315b9d; }
.itinerary-map-pin-day-2 { background: #9a4a17; } .itinerary-map-item[data-map-color="2"] { border-inline-start-color: #9a4a17; }
.itinerary-map-pin-day-3 { background: #7a3f8e; } .itinerary-map-item[data-map-color="3"] { border-inline-start-color: #7a3f8e; }
.itinerary-map-pin-day-4 { background: #8c3447; } .itinerary-map-item[data-map-color="4"] { border-inline-start-color: #8c3447; }
.itinerary-map-pin-day-5 { background: #286a77; } .itinerary-map-item[data-map-color="5"] { border-inline-start-color: #286a77; }
.itinerary-map-pin-day-6 { background: #6b5c1a; } .itinerary-map-item[data-map-color="6"] { border-inline-start-color: #6b5c1a; }
.itinerary-map-pin-day-7 { background: #42558c; } .itinerary-map-item[data-map-color="7"] { border-inline-start-color: #42558c; }
.itinerary-map-pin-day-8 { background: #79502b; } .itinerary-map-item[data-map-color="8"] { border-inline-start-color: #79502b; }
.itinerary-map-pin-day-9 { background: #495f35; } .itinerary-map-item[data-map-color="9"] { border-inline-start-color: #495f35; }
.itinerary-map-pin-day-10 { background: #694a73; } .itinerary-map-item[data-map-color="10"] { border-inline-start-color: #694a73; }
.itinerary-map-pin-day-11 { background: #8b3f2e; } .itinerary-map-item[data-map-color="11"] { border-inline-start-color: #8b3f2e; }
.itinerary-map-pin-day-12 { background: #335d60; } .itinerary-map-item[data-map-color="12"] { border-inline-start-color: #335d60; }
.itinerary-map-pin-day-13 { background: #56557c; } .itinerary-map-item[data-map-color="13"] { border-inline-start-color: #56557c; }
.itinerary-map-pin-day-14 { background: #7c4d63; } .itinerary-map-item[data-map-color="14"] { border-inline-start-color: #7c4d63; }
.itinerary-map-pin.itinerary-map-pin-hotel { background: #263341; }
@media (max-width: 760px) {
  .itinerary-map-panel { padding: 1rem; }
  .itinerary-map-layout { display: block; }
  .itinerary-map-tabs { display: flex; }
  .itinerary-map-panel[data-map-view=list] #itinerary-map-map-pane, .itinerary-map-panel[data-map-view=map] #itinerary-map-list-pane { display: none; }
  .itinerary-map-panel #google-maps-canvas { height: 22rem; }
}

/* Page-local conversation and recommendation workspace. */
.place-explorer{margin:1.5rem 0 3rem;border:1px solid #d7e1d9;border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 10px 40px #173e3507}.explorer-heading{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:2rem 2rem 1.5rem;background:#f5f7f2}.explorer-heading h1{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.05em;margin:.4rem 0}.explorer-heading p{margin:.4rem 0;color:#5b6d63}.explorer-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);height:760px;max-height:calc(100dvh - 100px);min-height:560px}.explorer-conversation{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid #e4e9e2}.explorer-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.4rem;scroll-behavior:smooth}.explorer-message{margin-bottom:1.5rem;max-width:100%;overflow-wrap:anywhere}.explorer-message>p{white-space:pre-wrap}.explorer-speaker{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#476657;margin-bottom:.4rem}.explorer-message-user{background:#eef4e9;border:1px solid #dce8d5;border-radius:16px 16px 3px 16px;padding:.8rem 1rem;margin-left:1.5rem}.explorer-message p{font-size:.9rem;line-height:1.65;margin:.4rem 0}.explorer-cards{list-style:none;padding:0;display:grid;gap:1rem;margin:1rem 0}.explorer-cards>li{min-width:0;border:1px solid #dce3da;border-radius:14px;padding:1rem;background:#fff;box-shadow:0 3px 8px #213d2805}.explorer-cards>li[data-selected=true]{border-color:#24725e;box-shadow:0 0 0 2px #24725e22}.explorer-cards img,.explorer-detail img{width:100%;height:auto;aspect-ratio:2;object-fit:cover;border-radius:9px}.explorer-card-select{background:none;border:0;padding:.4rem 0;color:#234d3b;font-size:1.02rem;font-weight:750;text-align:left;cursor:pointer}.explorer-card-select[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.explorer-card-select:disabled{color:#6c746d;cursor:default}.explorer-source,.explorer-opening,.explorer-location{font-size:.73rem!important;color:#69776b!important}.explorer-source a{margin-left:.4rem}.explorer-rating{color:#795d1f}.explorer-reason{border-left:2px solid #b9cdae;padding-left:.7rem;color:#4a6052}.explorer-composer{padding:1rem 1.4rem;border-top:1px solid #e3e8de;background:#fff;flex:none}.explorer-composer>label{font-size:.8rem;font-weight:700;color:#36523f}.explorer-composer>div{display:flex;gap:.6rem;margin-top:.5rem;align-items:stretch}.explorer-composer textarea{resize:vertical;min-height:60px;max-height:130px;flex:1;min-width:0;border:1px solid #c5d2c5;border-radius:12px;padding:.8rem;font:inherit;font-size:.9rem;background:#fbfcfa}.explorer-composer button[type=submit]{white-space:nowrap;padding:.65rem .9rem;border-radius:12px}.explorer-composer p{margin:.5rem 0 0;font-size:.72rem;line-height:1.5;color:#69786b}.explorer-map-pane{min-width:0;min-height:0;display:flex;flex-direction:column;padding:1.4rem;background:#fbfcfa;overflow-y:auto;overscroll-behavior:contain}.explorer-map-heading{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.explorer-map-heading h2{font-size:.95rem;line-height:1.5}.explorer-map-heading span{font-size:.72rem;color:#6c796f;text-align:right}.explorer-detail{font-size:.85rem;line-height:1.6;padding:1rem 0;min-height:85px}.explorer-detail h3{font-size:1.15rem;margin:.65rem 0}.explorer-detail h4{margin:.9rem 0 .3rem}.explorer-detail>button[data-explorer-close]{float:right;font-size:.72rem;padding:.3rem .5rem}.explorer-detail p{margin:.5rem 0}.explorer-place-links{display:flex;flex-wrap:wrap;gap:.8rem;margin:.7rem 0}.explorer-map-note{font-size:.72rem;line-height:1.5;color:#69776c;clear:both}.explorer-google-map [data-google-map-canvas]{height:300px;min-height:260px;border-radius:12px;overflow:hidden}.explorer-google-map p{font-size:.8rem;color:#5e7062}.explorer-error{color:#934724}.explorer-pending{color:#687e65}.explorer-tabs{display:none}.place-explorer :focus-visible{outline:3px solid #aa7225;outline-offset:4px}.place-explorer [hidden]{display:none!important}
@media(max-width:700px){.place-explorer{margin:1rem 0 2rem;border-radius:16px}.explorer-heading{padding:1.2rem;display:block}.explorer-heading h1{font-size:1.8rem}.explorer-tabs{display:flex;border-top:1px solid #dbe3d7;border-bottom:1px solid #dbe3d7;background:#f6f8f2}.explorer-tabs button{width:50%;min-height:44px;border:0;background:transparent;color:#58705b;font:inherit;font-size:.85rem}.explorer-tabs button[aria-selected=true]{background:#fff;border-bottom:3px solid #2b644e;color:#224d39;font-weight:750}.explorer-layout{display:block;height:650px;max-height:calc(100dvh - 100px);min-height:460px}.explorer-conversation,.explorer-map-pane{height:100%;border:0}.place-explorer[data-view=conversation] .explorer-map-pane,.place-explorer[data-view=map] .explorer-conversation{display:none}.explorer-messages{padding:1rem}.explorer-composer{padding:.8rem 1rem}.explorer-composer>label{font-size:.72rem}.explorer-composer textarea{font-size:.8rem}.explorer-composer button[type=submit]{font-size:.78rem;padding:.5rem}.explorer-map-pane{padding:1rem}.explorer-map-heading h2{font-size:.85rem}.explorer-cards>li{padding:.85rem}}
@media(prefers-reduced-motion:reduce){.explorer-messages{scroll-behavior:auto}}
.explorer-map-heading,.explorer-google-map,.explorer-map-pane>.explorer-map-note{flex:none}.explorer-detail{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.explorer-original-introduction{white-space:pre-wrap}

.trip-report { margin: 1.5rem 0 2.5rem; }
.trip-report-intro { padding: 1.25rem 1.4rem; border-radius: 20px; background: linear-gradient(135deg, #ffffff 0%, #f0f7f3 100%); border: 1px solid #d5e3db; box-shadow: 0 8px 28px rgba(23, 62, 53, 0.05); }
.trip-report-intro h1 { font-size: clamp(1.85rem, 3vw, 2.55rem); letter-spacing: -0.04em; margin: 0.2rem 0 0.45rem; color: #112a22; }
.trip-report-intro p, .trip-report-understood { color: var(--muted); }
.trip-report-form { display: grid; gap: 0.65rem; margin: 1.1rem 0 0.8rem; padding: 1.15rem 1.25rem; border-radius: 18px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04); }
.trip-report-form label { font-weight: 700; color: #1e352d; font-size: 0.95rem; }
.trip-report-form textarea { width: 100%; min-height: 5.8rem; padding: 0.95rem 1.05rem; border: 1.5px solid #b8c9be; border-radius: 14px; font: inherit; background: #fbfcfa; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.trip-report-form textarea:focus { border-color: #173e35; background: #fff; box-shadow: 0 0 0 3px rgba(23, 62, 53, 0.12); outline: none; }
.trip-report-form button { justify-self: start; display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.72rem 1.45rem; border-radius: 12px; font-weight: 700; box-shadow: 0 4px 12px rgba(23, 62, 53, 0.18); transition: transform 0.15s ease, background 0.15s ease; }
#trip-report-form[aria-busy="true"] button[type="submit"]::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2.5px solid rgba(255, 255, 255, 0.35);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: tripReportSpin 0.75s linear infinite;
}
@keyframes tripReportSpin { to { transform: rotate(360deg); } }
@keyframes tripReportPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
@keyframes tripReportShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.trip-report-loader { margin: 0.9rem 0 1.4rem; padding: 1.25rem 1.35rem; border-radius: 18px; border: 1px solid #c5d8cc; background: #ffffff; box-shadow: 0 10px 30px rgba(23, 62, 53, 0.08); }
.trip-report-loader-track { height: 8px; border-radius: 999px; background: #e6efe9; overflow: hidden; margin-bottom: 1rem; }
.trip-report-loader-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #173e35, #0071e3, #10b981, #173e35); background-size: 200% 100%; animation: tripReportShimmer 2.2s linear infinite; transition: width 0.5s ease; }
.trip-report-loader-steps { display: grid; gap: 0.55rem; margin-bottom: 1.15rem; }
.trip-report-loader-step { display: flex; align-items: center; gap: 0.65rem; font-size: 0.92rem; color: #64748b; transition: color 0.2s ease; }
.trip-report-loader-step.is-active { color: #0f172a; font-weight: 700; }
.trip-report-loader-step.is-done { color: #15803d; font-weight: 600; }
.trip-report-loader-badge { width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.78rem; font-weight: 800; background: #e2e8f0; color: #475569; flex-shrink: 0; }
.trip-report-loader-step.is-active .trip-report-loader-badge { background: #0071e3; color: #fff; animation: tripReportPulse 1.2s ease-in-out infinite; }
.trip-report-loader-step.is-done .trip-report-loader-badge { background: #dcfce7; color: #15803d; }
.trip-report-skeleton-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.9rem; }
.trip-report-skeleton-card { display: flex; gap: 0.8rem; align-items: center; padding: 0.85rem; border-radius: 14px; border: 1px solid #e2e8f0; background: #f8fafc; }
.trip-report-skeleton-thumb { width: 64px; height: 64px; border-radius: 12px; flex-shrink: 0; background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%); background-size: 200% 100%; animation: tripReportShimmer 1.6s linear infinite; }
.trip-report-skeleton-lines { flex: 1; height: 42px; border-radius: 8px; background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%); background-size: 200% 100%; animation: tripReportShimmer 1.6s linear infinite; }

.trip-report-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr); gap: 1.5rem; align-items: start; margin-top: 1.5rem; }
#trip-report-body, #trip-report-map { min-width: 0; max-width: 100%; }
.trip-report-day, #trip-report-body h3 { margin-top: 1.35rem; }
.trip-report-line { margin: 0.35rem 0; }
.trip-report-alternatives { padding-left: 1.1rem; }
.trip-report-sources { padding: 0.75rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--white); margin-top: 0.8rem; }
#trip-report-body .trip-report-sources h3 { margin-top: 0; }
.trip-report-source { color: var(--muted); font-size: 0.85rem; overflow-wrap: anywhere; }
.trip-report-other-options { border-top: 1px solid var(--line); margin-top: 1.5rem; padding-top: 0.5rem; }
.trip-report-line, .trip-report-understood, .trip-report-alternatives { overflow-wrap: anywhere; }
.trip-report-user-prompt { display: flex; justify-content: flex-end; margin: 0.6rem 0 0.8rem; }
.trip-report-user-bubble { max-width: 88%; margin: 0; padding: 0.75rem 1.1rem; border-radius: 20px 20px 6px 20px; background: #26292e; color: #f4f6f8; font-size: 0.95rem; line-height: 1.55; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08); overflow-wrap: anywhere; }
.trip-report-overview { margin: 0.85rem 0 1.1rem; padding: 1rem 1.2rem; border-radius: 16px; border: 1px solid var(--line); background: var(--white); color: var(--ink, #1d1d1f); line-height: 1.72; font-size: 0.96rem; box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04); }
.trip-report-overview p { margin: 0.45rem 0; }

/* Interactive Dashboard & Filter Controls */
.trip-report-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.75rem; margin: 1rem 0; }
.trip-report-stat-card { display: flex; align-items: center; gap: 0.65rem; padding: 0.8rem 0.95rem; border-radius: 16px; border: 1px solid #cfe0d6; background: linear-gradient(135deg, #ffffff 0%, #f4faf6 100%); color: #173e35; cursor: pointer; text-align: left; box-shadow: 0 4px 12px rgba(23, 62, 53, 0.05); transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
.trip-report-stat-card:hover { transform: translateY(-2px); border-color: #173e35; box-shadow: 0 8px 20px rgba(23, 62, 53, 0.1); }
.trip-report-stat-icon { font-size: 1.35rem; line-height: 1; }
.trip-report-stat-label { font-size: 0.9rem; font-weight: 750; color: #0f172a; }

.trip-report-section-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 1.35rem; }
#trip-report-body .trip-report-section-bar h3 { margin: 0; }
.trip-report-filter-bar { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.trip-report-filter-pill { min-height: 34px; padding: 0.3rem 0.85rem; border-radius: 999px; border: 1px solid #cbd5e1; background: #ffffff; color: #334155; font-size: 0.84rem; font-weight: 600; cursor: pointer; transition: all 0.15s ease; }
.trip-report-filter-pill:hover { border-color: #173e35; color: #173e35; }
.trip-report-filter-pill.is-active { background: #173e35; color: #ffffff; border-color: #173e35; box-shadow: 0 3px 10px rgba(23, 62, 53, 0.18); }

.trip-report-cards { display: grid; gap: 1.4rem; margin: 0.85rem 0 1.3rem; }
.trip-report-card { padding: 1.15rem 1.25rem; border: 1px solid var(--line); border-radius: 20px; background: var(--white); box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06); transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; min-width: 0; overflow-wrap: anywhere; }
.trip-report-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(15, 23, 42, 0.1); }
.trip-report-card.is-selected { border-color: #1a73e8; box-shadow: 0 0 0 2.5px rgba(26, 115, 232, 0.25); }
.trip-report-card-banner { position: relative; display: grid; grid-template-columns: 1.65fr 1fr; gap: 0.45rem; height: 184px; margin: -0.25rem -0.25rem 0.9rem; border-radius: 16px; overflow: hidden; cursor: pointer; background: #0f172a; }
.trip-report-card-banner-main, .trip-report-card-banner-sub { width: 100%; height: 100%; overflow: hidden; background: #1e293b; }
.trip-report-card-banner img.trip-report-real-photo, .trip-report-card-banner svg { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.35s ease; }
.trip-report-card-banner:hover img.trip-report-real-photo { transform: scale(1.03); }
.trip-report-card-banner-badges { position: absolute; left: 10px; bottom: 10px; display: flex; flex-wrap: wrap; gap: 0.4rem; pointer-events: none; }
.trip-report-banner-pill { padding: 0.22rem 0.65rem; border-radius: 999px; font-size: 0.76rem; font-weight: 700; backdrop-filter: blur(8px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); }
.trip-report-banner-pill.is-city { background: rgba(15, 23, 42, 0.82); color: #ffffff; }
.trip-report-banner-pill.is-open { background: rgba(22, 163, 74, 0.92); color: #ffffff; }
.trip-report-entity-chip { display: flex; gap: 0.85rem; align-items: center; padding: 0.2rem 0; border-radius: 14px; cursor: pointer; max-width: 100%; }
.trip-report-card-thumb { position: relative; flex: 0 0 96px; width: 96px; height: 96px; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16); background: #e2e8f0; }
.trip-report-card-thumb svg, .trip-report-card-thumb img.trip-report-real-photo { width: 100%; height: 100%; display: block; object-fit: cover; }
.trip-report-thumb-check { position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; border-radius: 8px; background: rgba(255, 255, 255, 0.94); border: 1.5px solid rgba(15, 23, 42, 0.25); display: flex; align-items: center; justify-content: center; font-size: 0.88rem; font-weight: 800; color: #1a73e8; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); }
.trip-report-thumb-check.is-checked { background: #1a73e8; color: #fff; border-color: #1a73e8; }
.trip-report-card-meta { flex: 1; min-width: 0; }
.trip-report-card-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.85rem; margin-top: 0.3rem; }
.trip-report-card-title-button { display: block; background: none; border: 0; padding: 0; font: inherit; font-size: 1.18rem; font-weight: 800; color: #0f172a; text-align: left; cursor: pointer; line-height: 1.35; }
.trip-report-card-title-button:hover { color: #1a73e8; }
.trip-report-card-rating { font-size: 0.9rem; font-weight: 700; color: #b45309; background: #fef3c7; padding: 0.12rem 0.55rem; border-radius: 6px; }
.trip-report-card-category { font-size: 0.86rem; font-weight: 600; color: var(--muted); }
.trip-report-card-open { font-size: 0.84rem; font-weight: 700; color: #15803d; }
.trip-report-card-closed { margin: 0.18rem 0 0; font-size: 0.85rem; font-weight: 700; color: #b91c1c; }
.trip-report-card-summary { margin: 0.8rem 0 0.6rem; line-height: 1.74; font-size: 0.96rem; }
.trip-report-inline-entity { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: inherit; text-decoration: underline dotted currentColor; text-underline-offset: 4px; cursor: pointer; text-align: left; }
.trip-report-inline-entity:hover { color: #1a73e8; text-decoration-style: solid; }
.trip-report-card-highlights { margin: 0.55rem 0 0.2rem; padding-left: 1.35rem; list-style-type: circle; line-height: 1.72; font-size: 0.94rem; }
.trip-report-card-highlights li { margin: 0.45rem 0; }
.trip-report-card-footer { margin-top: 0.85rem; padding-top: 0.7rem; border-top: 1px solid #edf2ef; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.trip-report-action-btn { min-height: 34px; padding: 0.35rem 0.85rem; border-radius: 999px; border: 1px solid #cbd5e1; background: #ffffff; color: #1e293b; font-size: 0.84rem; font-weight: 700; cursor: pointer; transition: all 0.15s ease; }
.trip-report-action-btn.is-primary { background: #eef6f1; border-color: #a7d0b8; color: #173e35; }
.trip-report-action-btn.is-primary:hover { background: #173e35; color: #ffffff; border-color: #173e35; }
.trip-report-action-btn.is-bookmark.is-saved { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.trip-report-external-pill { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.4rem 0.85rem; border-radius: 999px; background: #f0f7ff; border: 1px solid #bfdbfe; color: #1d4ed8; font-size: 0.84rem; font-weight: 700; text-decoration: none; transition: background 0.15s ease; }
.trip-report-external-pill:hover { background: #dbeafe; }

/* Interactive Daily Itinerary Studio */
.trip-report-day-switcher { display: flex; flex-wrap: wrap; gap: 0.38rem; padding: 0.55rem 0.65rem; margin: 0.5rem 0 0.75rem; border-radius: 14px; background: #f1f6f3; border: 1px solid #d5e3db; max-width: 100%; }
.trip-report-day-tab { min-height: 32px; padding: 0.25rem 0.68rem; border-radius: 999px; border: 1px solid #c5d6cc; background: #ffffff; color: #24362f; font-size: 0.78rem; font-weight: 700; cursor: pointer; transition: all 0.15s ease; }
.trip-report-day-tab:hover { border-color: #173e35; background: #e6f2ec; }
.trip-report-day-tab.is-active { background: #173e35; color: #ffffff; border-color: #173e35; box-shadow: 0 3px 10px rgba(23, 62, 53, 0.22); }
.trip-report-days-container { display: grid; gap: 1.25rem; }

.trip-report-day { margin-top: 0; padding: 1.25rem 1.35rem; border-radius: 22px; border: 1px solid #cfe0d6; background: linear-gradient(180deg, #ffffff 0%, #fafdfb 100%); box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06); position: relative; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.trip-report-day.is-highlighted-day { border: 2px solid #0071e3; box-shadow: 0 10px 30px rgba(0, 113, 227, 0.14); }
.trip-report-day-hero { position: relative; display: grid; grid-template-columns: 1.7fr 1fr; gap: 0.45rem; height: 186px; margin: -0.35rem -0.35rem 0.9rem; border-radius: 16px; overflow: hidden; cursor: pointer; background: #0f172a; }
.trip-report-day-hero-main, .trip-report-day-hero-side { width: 100%; height: 100%; overflow: hidden; background: #1e293b; }
.trip-report-day-hero img.trip-report-real-photo, .trip-report-day-hero svg { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.35s ease; }
.trip-report-day-hero:hover img.trip-report-real-photo { transform: scale(1.03); }
.trip-report-day-hero-top { position: absolute; left: 12px; top: 12px; right: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; pointer-events: none; }
.trip-report-banner-pill.is-time { background: rgba(15, 118, 110, 0.92); color: #ffffff; }
.trip-report-day-header { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem; margin-bottom: 0.65rem; }
.trip-report-day-badge { flex-shrink: 0; padding: 0.32rem 0.72rem; border-radius: 10px; background: linear-gradient(135deg, #173e35 0%, #0f766e 100%); color: #ffffff; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.05em; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); }
.trip-report-day-title-wrap { min-width: 0; flex: 1; }
.trip-report-day-title-wrap h4 { margin: 0; font-size: 1.05rem; font-weight: 800; color: #0f172a; }
.trip-report-day-theme { margin: 0.15rem 0 0; font-size: 0.86rem; font-weight: 650; color: #0369a1; }
.trip-report-day-map-btn { min-height: 34px; padding: 0.3rem 0.8rem; border-radius: 999px; border: 1px solid #bae6fd; background: #f0f9ff; color: #0369a1; font-size: 0.8rem; font-weight: 700; cursor: pointer; transition: all 0.15s ease; }
.trip-report-day-map-btn:hover { background: #0284c7; color: #ffffff; border-color: #0284c7; }

.trip-report-day-drive { margin: 0.65rem 0; padding: 0.6rem 0.85rem; border-radius: 12px; background: #fffbeb; border-left: 4px solid #f59e0b; color: #92400e; font-size: 0.86rem; font-weight: 600; line-height: 1.55; }
.trip-report-day-meta { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.8rem; border-radius: 14px; background: #f1f7f3; border: 1px solid #d8e8de; font-size: 0.86rem; margin-top: 0.65rem; }
.trip-report-day-stay-thumb { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 10px; overflow: hidden; cursor: pointer; background: #cbd5e1; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); }
.trip-report-day-stay-thumb img, .trip-report-day-stay-thumb svg { width: 100%; height: 100%; display: block; object-fit: cover; }
.trip-report-day-stay-info { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.9rem; flex: 1; min-width: 0; }
.trip-report-day-meta .trip-report-line { margin: 0; }
.trip-report-regional-stay-btn { min-height: 30px; padding: 0.25rem 0.7rem; border-radius: 999px; border: 1px solid #93c5fd; background: #eff6ff; color: #1d4ed8; font-size: 0.82rem; font-weight: 700; cursor: pointer; }
.trip-report-regional-stay-btn:hover { background: #dbeafe; }

.trip-report-day-places { display: grid; gap: 0.75rem; margin-top: 0.5rem; }
.trip-report-day-place-card { display: flex; gap: 1rem; align-items: flex-start; padding: 0.85rem 1rem; border-radius: 16px; border: 1px solid #dce6e0; background: #ffffff; box-shadow: 0 3px 12px rgba(15, 23, 42, 0.03); transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.trip-report-day-place-card:hover { border-color: #60a5fa; box-shadow: 0 6px 18px rgba(37, 99, 235, 0.08); }
.trip-report-day-place-thumb { flex: 0 0 120px; width: 120px; height: 96px; border-radius: 14px; overflow: hidden; cursor: pointer; background: #e2e8f0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14); }
.trip-report-day-place-thumb img, .trip-report-day-place-thumb svg { width: 100%; height: 100%; display: block; object-fit: cover; }
.trip-report-day-place-content { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
.trip-report-day-place-toprow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; width: 100%; }
.trip-report-day-timeslot { font-size: 0.76rem; font-weight: 700; color: #0f766e; background: #ccfbf1; padding: 0.15rem 0.55rem; border-radius: 6px; }
.trip-report-day-place-submeta { font-size: 0.78rem; font-weight: 700; color: #b45309; background: #fef3c7; padding: 0.15rem 0.55rem; border-radius: 6px; }
.trip-report-day-place-cat { font-size: 0.76rem; font-weight: 600; color: #475569; background: #f1f5f9; padding: 0.15rem 0.55rem; border-radius: 6px; }
.trip-report-day-place-btn { min-height: 34px; padding: 0.25rem 0.75rem; font-size: 1.02rem; font-weight: 800; border-radius: 10px; color: #173e35; border-color: #b7cec1; background: #f8fbf9; }
.trip-report-day-place-btn:hover { background: #173e35; color: #ffffff; }
.trip-report-day-place-summary { margin: 0.15rem 0 0; font-size: 0.92rem; color: #334155; line-height: 1.65; }
.trip-report-day-place-highlights { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.2rem; }
.trip-report-day-hl-chip { font-size: 0.82rem; color: #1e3a8a; background: #eff6ff; border: 1px solid #dbeafe; padding: 0.25rem 0.65rem; border-radius: 8px; line-height: 1.5; }
.trip-report-day-place-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; margin-top: 0.35rem; padding-top: 0.45rem; border-top: 1px dashed #e2e8f0; width: 100%; }
.trip-report-mini-btn { min-height: 30px; padding: 0.25rem 0.7rem; border-radius: 999px; border: 1px solid #cbd5e1; background: #ffffff; color: #334155; font-size: 0.78rem; font-weight: 700; text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; transition: all 0.15s ease; }
.trip-report-mini-btn.is-map { background: #f0f9ff; border-color: #bae6fd; color: #0369a1; }
.trip-report-mini-btn.is-map:hover { background: #0284c7; color: #ffffff; }
.trip-report-mini-btn.is-nav { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }
.trip-report-mini-btn.is-nav:hover { background: #16a34a; color: #ffffff; }
.trip-report-mini-btn.is-bookmark.is-saved { background: #fef3c7; border-color: #f59e0b; color: #92400e; }

#trip-report-map { position: sticky; top: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 18px; background: var(--white); }
#trip-report-google { margin: 0.5rem 0 0.9rem; }
#trip-report-places { list-style: none; padding: 0; margin: 0.6rem 0; display: grid; gap: 0.35rem; }
#trip-report-places button, .trip-report-day button, #trip-report-body > button { text-align: left; }
#trip-report-canvas { height: 380px; border-radius: 14px; overflow: hidden; margin-top: 0.5rem; }
.trip-report-place-hint { margin: 0.35rem 0 0.5rem; color: var(--muted); font-size: 0.88rem; }
.trip-report-place-hint p { margin: 0; }
.trip-report-place-drawer.is-open { margin: 0.55rem 0 0.95rem; padding: 1.15rem 1.2rem; border-radius: 20px; background: #1e1f22; color: #e8eaed; box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32); border: 1px solid rgba(255, 255, 255, 0.1); }
.trip-report-drawer-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; }
.trip-report-drawer-title { margin: 0; font-size: 1.32rem; font-weight: 700; color: #fff; line-height: 1.3; }
.trip-report-drawer-close { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, 0.1); color: #e8eaed; font-size: 1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.trip-report-drawer-close:hover { background: rgba(255, 255, 255, 0.2); }
.trip-report-drawer-rating { margin: 0.35rem 0 0.2rem; font-size: 0.88rem; color: #fde047; font-weight: 600; }
.trip-report-drawer-category { margin: 0.15rem 0 0.4rem; font-size: 0.88rem; color: #bdc1c6; }
.trip-report-drawer-address { margin: 0.15rem 0 0.75rem; font-size: 0.82rem; color: #9aa0a6; }
.trip-report-drawer-category .is-open { color: #81c995; font-weight: 600; }
.trip-report-drawer-category .is-closed { color: #f28b82; font-weight: 600; }
.trip-report-drawer-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.9rem; }
.trip-report-drawer-pill { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.42rem 0.85rem; border-radius: 999px; background: #2b2c30; border: 1px solid rgba(255, 255, 255, 0.12); color: #e8eaed; font-size: 0.84rem; font-weight: 600; text-decoration: none; transition: background 0.15s ease; }
.trip-report-drawer-pill:hover { background: #383a3f; }
.trip-report-drawer-gallery { display: grid; grid-template-columns: 1.35fr 1fr; gap: 0.45rem; height: 196px; margin-bottom: 0.95rem; border-radius: 16px; overflow: hidden; }
.trip-report-drawer-photo-main, .trip-report-drawer-photo-sub { overflow: hidden; border-radius: 12px; background: #131416; }
.trip-report-drawer-photo-side { display: grid; grid-template-rows: 1fr 1fr; gap: 0.45rem; }
.trip-report-drawer-gallery svg, .trip-report-drawer-gallery img.trip-report-real-photo { width: 100%; height: 100%; display: block; object-fit: cover; }
.trip-report-drawer-topics { margin: 0.7rem 0 0.85rem; padding-top: 0.65rem; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.trip-report-drawer-topics h4 { margin: 0 0 0.45rem; font-size: 0.85rem; font-weight: 600; color: #bdc1c6; }
.trip-report-drawer-topics ul { margin: 0 0 0.6rem; padding-left: 1.2rem; font-size: 0.9rem; color: #e8eaed; line-height: 1.65; }
.trip-report-drawer-review-badge { display: inline-block; padding: 0.22rem 0.65rem; border-radius: 999px; background: #2b2c30; color: #9aa0a6; font-size: 0.76rem; }
.trip-report-drawer-hours { margin: 0.4rem 0; font-size: 0.82rem; color: #9aa0a6; }
.trip-report-place-drawer .trip-report-source { color: #80868b; font-size: 0.76rem; margin: 0.2rem 0; }
.trip-report-drawer-cta { display: block; width: 100%; margin-top: 0.85rem; padding: 0.72rem 1rem; border-radius: 999px; background: #1b6ef3; color: #fff; font-size: 0.92rem; font-weight: 700; text-align: center; text-decoration: none; transition: background 0.15s ease; }
.trip-report-drawer-cta:hover { background: #1558d6; }
@media (max-width: 800px) {
  .trip-report-layout { grid-template-columns: 1fr; }
  #trip-report-map { position: static; }
  .trip-report-card-thumb { flex: 0 0 84px; width: 84px; height: 84px; }
  .trip-report-drawer-gallery { height: 160px; }
  .trip-report-day-place-card { flex-direction: column; }
}
