/* Day assignment is an explicit, shared action in desktop and phone Explore. */
.explore-day-bar { display:grid; gap:8px; margin:12px 0; padding:12px; border:1px solid var(--soft-line); border-radius:14px; background:#f5faff; }
.explore-day-bar label { display:flex; align-items:center; gap:10px; min-width:0; }
.explore-day-bar label > span { flex:none; font-size:12px; color:var(--muted); }
.explore-day-bar select { flex:1; min-width:0; min-height:44px; margin:0; padding:8px 30px 8px 10px; border:1px solid #d8eafb; border-radius:10px; background:#fff; color:var(--ink); font:inherit; font-size:14px; }
.explore-day-bar p { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
#recommendations .explore-place-schedule { display:flex; align-items:center; justify-content:center; gap:8px; grid-column:1 / -1; width:100%; min-height:44px; margin:12px 0 0; padding:10px 12px; border:1px solid #d4e9fb; border-radius:999px; background:#eef8ff; color:#2376b4; font-size:13px; font-weight:400; }
#recommendations .explore-place-schedule:hover { background:#e4f3ff; }
#placeDetailDialog .explore-detail-action { display:block; margin-top:16px; }
#placeDetailDialog .explore-detail-action button { width:100%; min-height:46px; border-radius:999px; border:1px solid #c8e5fa; background:#1766bc; color:#fff; font-size:14px; font-weight:400; }
#exploreDayDialog { box-sizing:border-box; width:min(460px,calc(100vw - 32px)); max-width:460px; max-height:min(760px,calc(100dvh - 32px)); margin:auto; padding:24px; border:1px solid #e0ecf7; border-radius:24px; background:#fff; color:var(--ink); box-shadow:0 16px 64px #213e6526; overflow:auto; }
#exploreDayDialog::backdrop { background:#1b345746; backdrop-filter:blur(3px); }
#exploreDayDialog form { display:block; margin:0; }
#exploreDayDialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:22px; }
#exploreDayDialog header span { color:var(--muted); font-size:12px; }
#exploreDayDialog h2 { margin:7px 0 0; font-size:21px; line-height:1.4; font-weight:600; overflow-wrap:anywhere; }
#exploreDayDialog [data-close-day-picker] { flex:none; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:#f1f7fc; color:var(--muted); font-size:26px; }
#exploreDayDialog fieldset { min-width:0; margin:0; padding:0; border:0; }
#exploreDayDialog legend { margin-bottom:12px; font-size:14px; }
.explore-day-options { display:grid; gap:8px; max-height:38dvh; overflow:auto; overscroll-behavior:contain; padding:2px; }
#exploreDayDialog .explore-day-option { display:flex; align-items:center; gap:10px; margin:0; padding:12px; border:1px solid #e4ecf4; border-radius:14px; cursor:pointer; }
#exploreDayDialog .explore-day-option:has(:checked) { border-color:#7ec5fb; background:#f0f8ff; }
#exploreDayDialog .explore-day-option:has(:disabled) { opacity:.5; cursor:wait; }
#exploreDayDialog input { flex:none; width:17px; height:17px; min-height:0; margin:0; accent-color:#1766bc; }
.explore-day-option > span { display:grid; flex:1; gap:4px; min-width:0; }
.explore-day-option strong { font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.explore-day-option small { color:var(--muted); font-size:12px; }
.explore-day-option em { flex:none; color:#2376b4; font-size:12px; font-style:normal; }
#exploreDayDialog .explore-day-move { display:flex; align-items:center; gap:10px; min-height:44px; margin-top:12px; font-size:13px; }
#exploreDayDialog .explore-day-feedback { min-height:20px; margin:10px 0 16px; color:var(--muted); font-size:12px; line-height:1.6; }
#exploreDayDialog footer { display:flex; flex-wrap:wrap; gap:10px; padding:0; border:0; }
#exploreDayDialog footer button { flex:1; min-height:46px; margin:0; padding:10px 16px; border:1px solid #dce8f2; border-radius:999px; font-size:14px; font-weight:400; }
#exploreDayDialog .explore-day-confirm { background:#1766bc; color:white; border-color:#1766bc; }
#exploreDayDialog .explore-day-remove { background:white; color:var(--muted); }
#exploreDayDialog button:disabled { opacity:.55; cursor:default; }
#exploreDayDialog :is(button,input):focus-visible, .explore-day-bar select:focus-visible, #recommendations .explore-place-schedule:focus-visible { outline:2px solid #1766bc; outline-offset:3px; }
@media (max-width:760px) {
  .explore-day-bar { margin:10px 0; padding:10px 12px; }
  #recommendations .explore-place-schedule { margin-top:4px; }
  #exploreDayDialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:20px; border-radius:22px; }
}

.city-auto-plan-status { display: flex; align-items: center; gap: 8px; }
.city-auto-plan-status > span { flex: 1; }
.city-auto-plan-status > button { flex: none; min-width: 28px; min-height: 28px; padding: 0; border: 0; background: transparent; color: inherit; box-shadow: none; font-size: 20px; }
@media (min-width: 1181px) {
  .workspace #recommendations .scenic-place-children .place-card > div { display: grid; }
}
/* Flex lists must scroll whole scenic groups rather than compress their contents. */

.featured-reason { margin: 2px 0; color: #476a8c; font-size: 11px; line-height: 1.4; }
@media (min-width: 1181px) {
  .workspace #recommendations .featured-reason { grid-column: 2; }
}

.import-mode-dialog {width:min(440px,calc(100vw - 32px));border:0;border-radius:20px;padding:24px;color:#283d58;}
.import-mode-dialog::backdrop {background:#172c5066;}
.import-mode-dialog button {display:block;width:100%;min-height:44px;margin:10px 0;}
.import-mode-dialog p {line-height:1.6;}

/* Keep the desktop planner footer to one compact row. */
@media (min-width: 1181px) {
  body:not(.trip-home-active) .site-footer {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 5px 24px;
  }
  body:not(.trip-home-active) .footer-discover {
    flex: none;
    margin: 0;
    gap: 14px;
  }
  body:not(.trip-home-active) .footer-discover a {
    min-height: 28px;
    font-size: 12px;
    font-weight: 400;
  }
  body:not(.trip-home-active) .footer-legal {
    flex: 1;
    max-width: none;
    margin: 0;
    gap: 12px;
    font-size: 11px;
  }
  body:not(.trip-home-active) .footer-legal nav { gap: 10px; }
  body:not(.trip-home-active) .footer-legal a { display: inline-flex; align-items: center; min-height: 28px; }
}

.city-builder-disclosure { margin: 8px 0 12px; }
.city-builder-disclosure > summary { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 10px; border-radius: 10px; background: #f4f8fe; color: #34445a; cursor: pointer; font-size: 13px; list-style: none; }
.city-builder-disclosure > summary::-webkit-details-marker { display: none; }
.city-builder-disclosure > summary::after { content: "⌄"; margin-left: auto; }
.city-builder-disclosure[open] > summary::after { content: "⌃"; }
.city-builder-disclosure > summary span { color: #748399; font-size: 12px; }
.city-builder-disclosure > summary:focus-visible { outline: 2px solid #2473df; outline-offset: 2px; }
.city-builder-disclosure .trip-builder { margin-top: 10px; }

.import-review-dialog { width:min(780px, calc(100vw - 32px)); max-height:88dvh; padding:0; border:0; border-radius:20px; color:#24364c; }
.import-review-dialog::backdrop { background:#17263a88; }
.import-review-dialog form { display:flex; flex-direction:column; max-height:88dvh; }
.import-review-dialog header, .import-review-dialog footer { padding:18px 24px; background:white; flex-shrink:0; }
.import-review-dialog h2 { margin:0 0 8px; font-size:22px; }
.import-review-dialog p { margin:0; font-size:14px; color:#66768b; }
.import-review-days { overflow:auto; padding:0 24px; }
.import-review-dialog fieldset { border:1px solid #dce5f1; border-radius:12px; padding:16px; margin:12px 0 20px; min-width:0; }
.import-review-dialog legend { font-weight:600; padding:0 6px; }
.import-review-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.import-review-dialog label { display:block; font-size:13px; margin-bottom:12px; }
.import-review-dialog input, .import-review-dialog textarea { display:block; width:100%; box-sizing:border-box; margin-top:6px; padding:10px; border:1px solid #c9d6e8; border-radius:8px; font:inherit; }
.import-review-dialog textarea { resize:vertical; line-height:1.6; }
.import-review-dialog button { min-height:44px; padding:8px 16px; }
.import-review-dialog footer { display:flex; justify-content:flex-end; gap:12px; border-top:1px solid #e5ecf4; }
@media(max-width:600px) { .import-review-fields { grid-template-columns:1fr; gap:0; } .import-review-dialog header,.import-review-dialog footer,.import-review-days { padding:14px; } }

.arrival-options {display:flex;flex-wrap:wrap;gap:10px;padding:12px 0;margin-top:10px;border-top:1px solid #e1d9bf}.arrival-options label {display:flex;flex-direction:column;gap:6px;font-size:13px}.arrival-options select,.arrival-options input {padding:8px;border:1px solid #ccd7e6;border-radius:8px;min-height:40px;max-width:220px;background:white}.arrival-options input {width:100px}.arrival-options small {flex-basis:100%;color:#68788e}

.journey-details {margin-top:8px;font-size:13px}.journey-details > summary {cursor:pointer;color:#725021;min-height:30px;line-height:1.5;padding:4px 0}.journey-details > summary > span {float:right;color:#68788e;font-size:12px;margin-left:10px}.journey-details .arrival-options {margin-top:6px;padding:8px 0;gap:8px}.journey-details .timeline-note {font-size:12px;line-height:1.5;margin-top:6px}.explicit-transport .transport-record-meta {margin-top:4px;gap:5px}.explicit-transport .transport-record-meta span {padding:2px 6px}.explicit-transport .transport-record-title {font-size:15px;line-height:1.4}.explicit-transport .transport-record-actions button {width:30px;min-width:30px;height:30px}.timeline-item.explicit-transport .timeline-body {padding:10px 12px}.journey-details[open] > summary {border-bottom:1px solid #e8dfc8}

.hotel-departure {margin-top:10px;padding:10px 12px;border-left:2px solid #c8daf5;background:#f5f8fe;border-radius:0 8px 8px 0}.hotel-departure-title {font-size:13px;font-weight:600;color:#41628a}.hotel-departure .segment-navigation {margin-top:6px}

.hotel-departure {margin-top:6px;padding:6px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.hotel-departure > .timeline-note {flex-basis:100%;margin:0}.hotel-departure .transport-options {margin:0}.hotel-departure .segment-navigation {margin:0;display:block}.hotel-departure .segment-nav-link {min-height:28px;padding:0 5px}

.transport-result-summary { padding: 12px; margin: 10px 0; background: #f1f6ff; border-radius: 12px; }
.transport-result-summary:empty { display: none; }
.transport-result-summary p { margin: 6px 0 0; color: #66758b; }
#transportResultEditor > summary { cursor: pointer; padding: 12px 0; color: #2267c5; }
#transportResultEditor .transport-form-grid { margin-top: 8px; }
