.daily-controls { display:flex; align-items:center; flex-wrap:wrap; gap:12px; width:min(1180px,calc(100% - 28px)); margin:auto; padding:8px 0 12px; }
.daily-controls[hidden],.daily-map-section[hidden],.daily-map-status[hidden],.daily-legend[hidden],.daily-party-legend[hidden],.daily-show-all[hidden] { display:none; }
.daily-icon { display:inline-flex; width:20px; height:20px; flex:0 0 20px; }
.daily-icon svg { width:100%;height:100%; }
.daily-mode { display:flex; padding:3px; border:1px solid #d7d5c9; background:#efece3; border-radius:9px; }
.daily-mode button { display:flex;align-items:center;gap:7px;min-height:42px;padding:7px 18px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.875rem;cursor:pointer; }
.daily-mode button[aria-pressed="true"] { background:var(--brand);color:white;box-shadow:0 2px 6px #09474722; }
.daily-day-caption { font-size:.875rem;font-weight:700;color:var(--brand-dark);white-space:nowrap;font-variant-numeric:tabular-nums; }
.daily-member[hidden] { display:none; }
.daily-member { display:flex;align-items:center;gap:6px;margin-left:auto; }
.daily-member select { max-width:160px;min-height:44px;font:inherit;font-size:.875rem;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:6px; }
.daily-map-section { margin-top:20px;margin-bottom:24px;scroll-margin-top:calc(var(--app-header-height) + 12px); }
.daily-map-heading h2 { font-size:1.25rem;margin:0 0 12px; }
.daily-legend { display:flex;align-items:center;gap:16px;width:min(1180px,calc(100% - 28px));margin:0 auto;padding:0 0 10px;font-size:.75rem;line-height:1.5;color:var(--muted);overflow-x:auto; }
.daily-legend > span { display:flex;flex:0 0 auto;gap:4px;align-items:center;white-space:nowrap; }
.daily-legend .daily-icon { width:16px;height:16px;flex-basis:16px; }
.daily-party-legend { display:flex;gap:8px 16px;flex-wrap:wrap;margin:10px 0;font-size:.875rem;color:var(--muted); }
.daily-reference-note { font-size:.875rem;color:var(--muted);margin:10px 0; }
.daily-party-legend > span::before { content:'';display:inline-block;width:9px;height:9px;background:currentColor;border-radius:50%;margin-right:6px;vertical-align:middle; }
.party-all { color:#0f6b6b; }.party-chen { color:#963c79; }.party-group { color:#3262a8; }
.daily-map-grid { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.85fr);gap:18px;align-items:start; }
.daily-map-frame { position:sticky;top:calc(var(--app-header-height) + 12px);min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;isolation:isolate;background:#e9ede6; }
.daily-map-canvas { height:clamp(360px,65vh,660px);width:100%;z-index:1;touch-action:none; }
.daily-fit-map { position:absolute;top:12px;right:12px;z-index:450;min-height:40px;background:var(--paper);color:var(--brand-dark);border:1px solid var(--line);border-radius:6px;padding:8px 12px;font:inherit;font-size:.875rem;cursor:pointer;box-shadow:0 2px 6px #0002; }
.daily-map-status { position:absolute;z-index:500;bottom:18px;left:18px;right:18px;padding:14px;background:var(--paper);border-radius:8px;border:1px solid var(--line);box-shadow:0 5px 20px #0001;font-size:.875rem; }
.daily-map-status p { margin:0 0 8px; }
.daily-map-list { display:grid;gap:10px;max-height:clamp(360px,65vh,660px);overflow:auto;padding:1px 8px 6px 1px;scrollbar-width:thin; }
.daily-place-row { padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:9px;min-width:0;transition:border-color .12s;scroll-margin-top:calc(var(--app-header-height) + 12px); }
.daily-place-row.is-selected { border-color:var(--brand);box-shadow:inset 3px 0 var(--brand); }
.daily-place-row.is-optional { border-style:dashed; }
.daily-place-heading { display:flex;align-items:flex-start; }
.daily-place-focus { display:flex;gap:9px;align-items:flex-start;padding:0;border:0;background:none;color:var(--brand-dark);text-align:left;font:inherit;font-size:1rem;font-weight:750;cursor:pointer;line-height:1.45;overflow-wrap:anywhere; }
.daily-place-focus .daily-icon { margin-top:2px; }
.daily-place-title { min-width:0; }
.daily-place-badges { display:inline; }
.daily-place-badges .daily-badge { display:inline-block;vertical-align:middle;white-space:nowrap;margin:0 0 0 6px;font-weight:400; }
.daily-badge { font-size:.75rem;line-height:1.4;background:#edece2;color:var(--muted);padding:3px 6px;border-radius:4px;margin:8px 0 0; }
.daily-badge.is-pending { color:#80521c;background:#f6ead6; }
.daily-place-content { display:flex;align-items:flex-start;gap:12px;margin-top:12px; }
.daily-place-details { flex:1;min-width:0; }
.daily-place-shortcuts { display:flex;flex-direction:column;gap:8px;flex:0 0 44px; }
.daily-address-line { margin:0 0 10px; }
.daily-place-address { flex:1;min-width:0;color:var(--muted);font-size:.875rem;margin:0;overflow-wrap:anywhere; }
.daily-visit { margin:8px 0; }
.daily-visit-meta { display:flex;gap:5px 8px;flex-wrap:wrap;align-items:center;font-size:.8125rem; }
.daily-time { color:var(--muted); }
.time-flight,.time-hotel,.time-meeting,.time-deadline { color:#70461a;font-weight:650;background:#f7ead5;padding:3px 7px;border-radius:4px; }
.daily-visit-note { font-size:.875rem;color:var(--muted);margin:5px 0; }
.daily-visit-label { color:var(--ink);font-weight:650; }
.daily-place-actions { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px; }
.daily-nav-link { display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #0f6b6b22;border-radius:8px;color:var(--brand);background:#0f6b6b0d; }
.daily-nav-link:hover { background:#0f6b6b1a;border-color:#0f6b6b55; }
.daily-stay-link { display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 10px;border-radius:6px;font-size:.875rem; }
.daily-stay-link { color:var(--brand-dark);border:1px solid #0f6b6b33; }
.daily-show-all { display:flex;align-items:center;gap:7px;min-height:44px;background:transparent;border:1px solid #0f6b6b44;color:var(--brand-dark);padding:7px 12px;border-radius:6px;font-size:.875rem;cursor:pointer; }
.daily-empty { padding:24px;color:var(--muted);font-size:1rem; }
.daily-pin { display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--paper);color:var(--brand-dark);border:2px solid var(--brand);border-radius:12px;box-shadow:0 2px 8px #0003;position:relative; }
.pin-airport { color:#384b85;border-color:#384b85;border-radius:50%; }.pin-meeting { color:#905312;border-color:#905312; }.pin-food { color:#925e44;border-color:#925e44; }.pin-optional { border-style:dashed; }
.daily-pin-number { position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:var(--brand-dark);color:white;border-radius:8px;min-width:20px;padding:1px 5px;white-space:nowrap;font-size:11px; }
.daily-marker.is-selected .daily-pin { background:var(--brand);color:white;outline:4px solid #d9822b88; }
.pin-party-chen { box-shadow:0 0 0 3px #a54b8766,0 2px 8px #0003;border-color:#a54b87; }
.pin-party-group { box-shadow:0 0 0 3px #3262a866,0 2px 8px #0003;border-color:#3262a8; }
.daily-controls button:focus-visible,.daily-place-focus:focus-visible,.daily-nav-link:focus-visible,.daily-stay-link:focus-visible { outline:3px solid #d9822b;outline-offset:3px; }
@media screen {
  html[data-view="itinerary"][data-daily-mode="map"] #top > .section { display:none; }
  html[data-view="itinerary"][data-daily-mode="map"] .itinerary-heading { display:none; }
}
@media(max-width:980px) {
  .daily-map-grid { grid-template-columns:minmax(0,1fr); }
  .daily-map-frame { position:relative;top:auto; }
  .daily-map-canvas { height:clamp(280px,48vh,450px); }
  .daily-map-list { max-height:none;overflow:visible;padding:0; }
}
@media(max-width:720px) {
  .daily-controls { gap:6px 10px;padding-bottom:8px; }
  .daily-legend { gap:12px; }
  .daily-mode button { padding:7px 10px; }.daily-day-caption { margin-left:auto; }
  .daily-member { margin-left:0; }.daily-member > .daily-icon { display:none; }
  .daily-member select { max-width:120px; }
  .daily-map-heading h2 { font-size:1.05rem; }.daily-map-section { margin-top:16px; }
  .daily-place-row { padding:14px; }
}
@media print { .daily-controls,.daily-legend,.daily-map-section,.daily-stops,.daily-show-all { display:none!important; }.day-body { display:grid!important; } }

.daily-day-extras { display:grid;gap:10px;margin:14px 0; }
.daily-day-extras[hidden],.daily-reference-note[hidden] { display:none; }
.day-card > .daily-day-extras { margin:14px 24px; }
.daily-day-extras > details { border:1px solid var(--line);background:var(--paper);border-radius:9px;min-width:0; }
.daily-day-extras > details > summary { min-height:48px;padding:12px 16px;color:var(--brand-dark);font-size:.9375rem;font-weight:700;cursor:pointer; }
.daily-day-extras summary .daily-icon { vertical-align:middle;margin-right:8px; }
.daily-extra-body { padding:0 16px 16px; }
.daily-place-number { display:inline-flex;align-items:center;justify-content:center;flex:0 0 25px;min-width:25px;height:25px;margin-top:1px;background:var(--brand);color:white;border-radius:7px;font-size:.8125rem;font-variant-numeric:tabular-nums; }
.daily-place-focus { gap:8px; }
.daily-flight-leg { padding:14px;margin:10px 0;background:#f1f4ef;border-radius:8px;border:1px solid #0f6b6b18; }
.daily-flight-number { color:var(--brand-dark);font-size:.9375rem;letter-spacing:.04em; }
.daily-flight-ends { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px; }
.daily-flight-end { display:flex;flex-direction:column;min-width:0; }
.daily-flight-label,.daily-flight-date,.daily-flight-name { font-size:.8125rem;color:var(--muted); }
.daily-flight-time { font-size:1.5rem;line-height:1.4;color:var(--ink);font-variant-numeric:tabular-nums; }
.daily-flight-airport { display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:.8125rem;font-weight:650;margin-top:8px; }
.daily-flight-airport > span { min-width:0;overflow-wrap:anywhere; }
.daily-flight-name { margin-top:5px;overflow-wrap:anywhere; }
.daily-connection { padding:10px 12px;border-left:3px solid var(--brand);background:#0f6b6b08;color:var(--brand-dark);font-size:.875rem; }
.daily-source-note { font-size:.75rem;color:var(--muted);margin:12px 0 0; }
.daily-boat-option { border-bottom:1px solid var(--line);padding:14px 0; }
.daily-extra-body h3 { font-size:.9375rem;margin:10px 0 8px;color:var(--brand-dark); }
.daily-boat-option p,.daily-boarding-steps { font-size:.875rem;color:var(--muted);line-height:1.7; }
.daily-boat-option p { margin:8px 0; }
.daily-guide-links { display:flex;gap:8px 16px;flex-wrap:wrap; }
.daily-guide-link { display:inline-flex;align-items:center;min-height:44px;font-size:.8125rem;color:var(--brand);text-decoration:underline;text-underline-offset:3px; }
.daily-boarding-steps { padding-left:20px; }.daily-boarding-steps li { margin:8px 0; }
@media(max-width:720px) { .day-card > .daily-day-extras { margin:12px; }.daily-extra-body { padding:0 12px 12px; }.daily-flight-ends { gap:12px; } }
@media print { .daily-day-extras details > .daily-extra-body { display:block!important; }.daily-day-extras a.daily-nav-link { display:none; } }

/* Shared note links and optional stops; no duplicate daily location summary. */
.daily-note-links{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.daily-note-link{color:#df2949;background:#df294908;border-color:#df29492b}
.daily-note-link:hover{background:#df294915}
.daily-note-link .daily-icon{width:32px;height:32px;flex-basis:32px}
.daily-place-highlight{margin:10px 0;color:var(--ink,#25231e);font-size:.9rem;line-height:1.65}
.itinerary-place-feature{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:12px}
.itinerary-place-feature>p,.itinerary-place-feature>div:first-child{min-width:0;flex:1}
.itinerary-place-feature p{margin:0;line-height:1.65}
.itinerary-place-feature .daily-visit-note{margin-top:8px}
.itinerary-place-feature>.daily-place-shortcuts{flex:0 0 44px}
.itinerary-added-stop .event-content{border-left:3px solid #0f6b6b45}
.itinerary-added-stop .time{color:var(--brand,#0f6b6b)}

/* Split days share the compact, unboxed rhythm used by daily place rows. */
.member-tracks{background:none;border-radius:0;overflow:visible;gap:24px}
.member-track{padding:0}
.member-track + .member-track{border:0}
.member-track-head{margin:0;padding:0 0 10px;border-bottom:2px solid var(--brand,#0f6b6b)}
.member-track-head strong{font-size:16px;color:var(--brand-dark)}
.member-track-head .member-track-mark,.member-track-head div>span{display:none}
.member-step{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:12px 0;border-top:0;border-bottom:1px solid rgba(36,32,27,.1)}
.member-step.has-actions{grid-template-columns:minmax(0,1fr) 44px}
.member-step-main{min-width:0}
.member-step-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.member-step-heading time{font-size:12px;line-height:1.4;color:var(--brand);font-weight:750;white-space:nowrap}
.member-step-heading h3,.member-step-heading strong{display:inline;margin:0;font-size:16px;line-height:1.4}
.member-step p{margin:5px 0 0;font-size:14px;line-height:1.55}
.member-step .itinerary-place-feature{display:block;margin-top:5px}
.member-step .itinerary-place-feature p{line-height:1.55}
.member-step-actions{align-self:start}
@media(max-width:720px){.member-tracks{grid-template-columns:1fr;gap:24px}}
