/* Stops and route planning come first; publishing remains an explicit choice. */
.itinerary-builder{max-width:1120px}
.itinerary-builder-form{min-width:0}
.itinerary-builder h2{font-size:21px;margin:0 0 10px}
.itinerary-name{max-width:680px}
.itinerary-stops-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:22px;align-items:start}
.itinerary-stops-editor,.itinerary-stop-picker,.itinerary-route-settings,.itinerary-preview,.itinerary-optional,.itinerary-sharing{min-width:0;border:1px solid var(--line);border-radius:14px;padding:20px;background:#111}
.itinerary-route-settings,.itinerary-preview,.itinerary-optional,.itinerary-sharing{margin-top:20px}
.itinerary-stop-picker{background:#151515}
.itinerary-change-status{font-size:14px;color:#e9d576;line-height:1.5;margin:10px 0}
.itinerary-change-status:empty{display:none}
.itinerary-builder .itinerary-stop-list{gap:12px;margin:16px 0 0}
.itinerary-builder .itinerary-stop{padding:14px;background:#191919;min-width:0}
.itinerary-stop-heading{display:flex;align-items:flex-start;gap:10px;min-width:0}
.itinerary-stop-heading>div{min-width:0}
.itinerary-stop-heading h3{font-size:17px;line-height:1.4;overflow-wrap:anywhere;margin:1px 0 4px}
.itinerary-stop-heading p{margin:0}
.itinerary-stop-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:#302a0c;color:var(--gold);font-weight:750;font-size:14px}
.itinerary-builder .itinerary-stop-controls{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 8px}
.itinerary-builder .itinerary-stop-controls button{min-height:44px;min-width:44px;font-size:14px;padding:9px 11px;white-space:normal}
.itinerary-stop-note summary,.itinerary-optional>summary,.itinerary-sharing>summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;font-size:14px;line-height:1.5}
.itinerary-stop-note .field{margin:10px 0 0}
.itinerary-stop-note textarea{min-height:90px}
.itinerary-stop-details>summary{min-height:44px;overflow-wrap:anywhere}.stop-extra-badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;vertical-align:middle;margin-left:10px}.stop-extra-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid #685e32;border-radius:6px;background:#302a0c;color:#ffe784}.stop-extra-badge svg{flex:none}.itinerary-stop-details .field{min-width:0}.itinerary-stop-details .field small,.itinerary-stop-upload-note{font-size:12px;line-height:1.5;color:var(--muted)}.itinerary-stop-details input[type=file]{max-width:100%;width:100%;padding:8px;font-size:14px;min-height:44px}.itinerary-stop-details input[type=file]::file-selector-button{min-height:36px;margin-right:8px;white-space:normal}.itinerary-stop-media{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px}.itinerary-stop-media:empty{display:none}.itinerary-stop-attachment{margin:0;padding:10px;border:1px solid var(--line);border-radius:10px;min-width:0;overflow:hidden;background:#111}.itinerary-stop-attachment img,.itinerary-stop-attachment video{display:block;width:100%;max-width:100%;max-height:260px;object-fit:contain;border-radius:6px;background:#080808}.itinerary-stop-attachment figcaption{display:grid;gap:6px;margin-top:10px;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.itinerary-stop-attachment figcaption button{justify-self:start;min-height:44px;white-space:normal}.itinerary-stop-uploads{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.itinerary-stop-details [disabled]{opacity:.65}
.itinerary-empty-stops{padding:24px 12px;border:1px dashed #665928;border-radius:10px;text-align:center;margin-top:14px}
.itinerary-empty-stops p{font-size:16px;line-height:1.6;color:var(--muted);margin-bottom:0}
.itinerary-catalog-filters{display:flex;gap:8px;margin:14px 0}
.itinerary-catalog-filters button{flex:1;min-height:44px;padding:10px;font-size:14px}
.itinerary-stop-picker .field{margin-bottom:10px}
.itinerary-catalog-results{list-style:none;padding:0;margin:10px 0;max-height:430px;overflow-y:auto;scroll-padding-block:6px}
.itinerary-catalog-results li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #383838}
.itinerary-catalog-results li>span{flex:1;min-width:0}
.itinerary-catalog-results strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere;display:block}
.itinerary-catalog-results small{display:block;font-size:12px;line-height:1.4;color:var(--muted);margin-top:4px}
.itinerary-catalog-results button{flex:none;min-height:44px;min-width:58px;font-size:14px;padding:10px}
.itinerary-route-settings>.field{max-width:350px;margin:12px 0}
.itinerary-start{padding:16px;border:1px solid #4f4624;border-radius:10px;margin-top:16px}
.itinerary-start .field{margin-bottom:8px}
.itinerary-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.itinerary-section-heading>div{min-width:0}
.itinerary-section-heading p{margin:4px 0 0}
.itinerary-section-heading button{flex:none;min-height:44px}
#itinerary-preview-content[hidden]{display:none}
#itinerary-preview-content{margin-top:18px}
.itinerary-private-map.itinerary-map{height:360px;min-height:0}
.itinerary-private-map .map-svg{touch-action:pan-y}
.itinerary-private-map .map-zoom button{min-width:44px;min-height:44px}
.itinerary-private-map .map-key{max-width:calc(100% - 86px)}
.itinerary-preview-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.itinerary-preview-actions button{min-height:44px;font-size:14px}
.itinerary-route-privacy{font-size:12px;line-height:1.65;color:var(--muted)}
.itinerary-optional[open]>summary,.itinerary-sharing[open]>summary{margin-bottom:16px}
.itinerary-optional .field:last-child{margin-bottom:0}
.itinerary-secondary-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 16px}
.itinerary-save-bar{position:sticky;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#18170f;border:1px solid #665928;border-radius:12px;padding:12px;box-shadow:0 -5px 20px #0005}
.itinerary-save-bar>span{font-size:13px;color:#ded8b8;line-height:1.4}
.itinerary-save-bar>button{min-height:44px;flex:none}
.itinerary-builder [data-itinerary-stop]:focus{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:1023px){
  .itinerary-builder{max-width:780px;padding:20px 16px 40px}
  .itinerary-stops-workspace{grid-template-columns:minmax(0,1fr);gap:16px}
  .itinerary-stops-editor,.itinerary-stop-picker,.itinerary-route-settings,.itinerary-preview,.itinerary-optional,.itinerary-sharing{padding:16px}
  .itinerary-save-bar{bottom:calc(var(--mobile-bottom-inset,64px) + 8px)}
  .itinerary-builder [data-itinerary-stop],#itinerary-preview-title{scroll-margin-top:calc(var(--mobile-header-height,64px) + env(safe-area-inset-top,0px) + 12px);scroll-margin-bottom:calc(var(--mobile-bottom-inset,64px) + 88px)}
  .itinerary-builder-form :is(input,select,textarea){scroll-margin-bottom:calc(var(--mobile-bottom-inset,64px) + 100px)}
  .itinerary-catalog-results{max-height:360px}
}
@media(max-width:520px){
  .itinerary-builder .locations-heading{flex-direction:column;align-items:flex-start;gap:12px}
  .itinerary-section-heading{align-items:flex-start;flex-direction:column;gap:12px}
  .itinerary-section-heading>button{width:100%}
  .itinerary-private-map.itinerary-map{height:300px}
  .itinerary-preview-actions{flex-direction:column}
  .itinerary-save-bar{padding:10px;gap:8px}
  .itinerary-save-bar>span{font-size:12px}
  .itinerary-save-bar>button{font-size:14px;padding:10px 12px}
  .itinerary-optional .field-row{grid-template-columns:1fr}
}
