/* One shared companion roster for all map layers. */
.travel-plan-dock{position:absolute;z-index:32;top:12px;right:4vw;max-width:calc(100% - 16px);padding:4px 6px;border:1px solid rgba(18,34,29,.09);border-radius:13px;background:rgb(255 255 255 / .68);color:#173f38;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 26px rgba(30,55,40,.07)}
.travel-plan-dock.has-plan{width:164px;box-sizing:border-box}
.travel-roster{--horizontal-fade-width:min(34px,25%);display:flex;align-items:center;gap:4px;width:100%;min-width:0;overflow-x:auto;scrollbar-width:none;touch-action:none;overscroll-behavior-x:contain;cursor:grab}
.travel-roster:active{cursor:grabbing}
.travel-roster,.travel-plan-members{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.travel-roster::-webkit-scrollbar{display:none}
.travel-plan-dock button{flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;background:transparent;color:#176f63;box-shadow:none;cursor:pointer;font-family:inherit}
.travel-plan-dock:not(.has-plan){padding:3px 6px}
.travel-plan-entry{font-size:9px;font-weight:700;min-height:18px;padding:0 1px!important}
.travel-member{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:0}
.travel-member-avatar,.travel-empty-seat{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:0 0 20px;overflow:hidden;background:rgb(255 255 255 / .82);border:1px solid rgb(23 111 99 / .28)!important;font-size:12px}
.travel-member-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.travel-member-status{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex:0 0 14px;color:#8a9e94;pointer-events:none}
.travel-member-status svg{width:100%;height:100%;fill:currentColor}
.travel-member-status[data-ready=true]{color:#168c3c}
.travel-plan-dock .travel-member-avatar{width:28px;height:28px;flex-basis:28px;font-size:16px}
.travel-plan-dock .travel-member-status{width:10px;height:10px;flex-basis:10px}
.travel-member-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;font-weight:700}
.travel-empty-seat{font-size:18px;font-weight:400}
.travel-plan-dialog{width:min(600px,calc(100vw - 24px));border:1px solid #d6e3dc;border-radius:20px;color:#173f38;background:#fff}
.travel-plan-dialog h2{font-size:20px;margin:0 28px 16px 0}
.travel-plan-dialog p,.travel-plan-dialog li{line-height:1.6;font-size:14px}
.travel-plan-dialog button{min-height:36px;padding:8px 12px;border:1px solid #d6e3dc;border-radius:11px;background:#176f63;color:#fff;font:600 13px/1.4 system-ui,'Microsoft YaHei',sans-serif;cursor:pointer}
.travel-plan-dialog button.secondary{background:#edf4ef;color:#176f63}
.travel-plan-dialog button.danger{background:#fff4ef;color:#9b3024}
.travel-plan-dialog button:disabled{opacity:.55;cursor:default}
.travel-plan-dialog .travel-plan-list-item{display:block;width:100%;margin:8px 0;text-align:left;background:#edf4ef;color:#176f63}
.travel-invite-link{display:block;white-space:normal;overflow-wrap:anywhere;user-select:text;font-size:12px;padding:12px;background:#f5f8f5;border-radius:10px}
.travel-dialog-status{color:#956317;min-height:1em}
.travel-dialog-status:empty{display:none}
.travel-plan-dialog .navigation-dialog-scroll{padding-bottom:4px}
.travel-plan-members{--horizontal-fade-width:26px;display:flex;flex-wrap:nowrap;align-items:flex-start;gap:10px;width:min(100%,520px);margin-top:12px;padding:8px 2px 0;border-top:1px solid #e1ebe5;overflow-x:auto;scrollbar-width:none;touch-action:none;overscroll-behavior-x:contain;cursor:grab}
.travel-plan-members:active{cursor:grabbing}.travel-plan-members::-webkit-scrollbar{display:none}
.travel-plan-members.has-more-left{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--horizontal-fade-width),#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--horizontal-fade-width),#000 100%)}
.travel-plan-members.has-more-right{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--horizontal-fade-width)),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--horizontal-fade-width)),transparent 100%)}
.travel-plan-members.has-more-left.has-more-right{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--horizontal-fade-width),#000 calc(100% - var(--horizontal-fade-width)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--horizontal-fade-width),#000 calc(100% - var(--horizontal-fade-width)),transparent 100%)}
.travel-plan-members .travel-member{flex:0 0 66px;width:66px;max-width:66px;padding:4px 2px;min-height:0;border:0;background:transparent;color:#173f38;gap:3px}
.travel-plan-members .travel-member-slot{display:flex;flex-direction:column;align-items:center;gap:3px;flex:0 0 66px;width:66px;padding:4px 2px}
.travel-plan-members .travel-member-seat{display:grid;place-items:center;width:36px;height:36px;min-height:36px;margin:0;padding:0;box-sizing:border-box;border:1px solid rgb(23 111 99 / .28);border-radius:50%;color:#176f63;background:rgb(255 255 255 / .82);font:400 24px/1 system-ui,sans-serif;-webkit-user-select:none;user-select:none}
.travel-plan-members .travel-member-avatar{width:36px;height:36px;flex-basis:36px;font-size:18px}
.travel-plan-members .travel-member-avatar-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;box-shadow:none}
.travel-plan-members .travel-member-ready{min-height:25px;padding:3px 5px;border-radius:8px;font-size:10px;line-height:1.2;white-space:nowrap}
.travel-plan-members .travel-member-invite{min-height:18px;margin:0;padding:0;border:0;background:transparent;color:#176f63;font:600 12px/18px system-ui,'Microsoft YaHei',sans-serif;white-space:nowrap;box-shadow:none}
.travel-member-mascot{display:block;width:64px;height:64px;object-fit:contain;pointer-events:none}
.travel-profile-avatar{width:56px;height:56px;flex-basis:56px;font-size:24px}
.travel-profile-name{overflow-wrap:anywhere}
@media(max-width:600px){.travel-plan-dock{right:8px}}
