/* 行程海报独立模块：依赖 index.css 中的 .plan-btn 基础按钮。 */
.itin-poster-modal { position:fixed; inset:0; z-index:10000060; display:none; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.72); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; }
.itin-poster-modal.show { display:flex; }
.itin-poster-sheet { width:min(430px,100%); max-height:calc(100vh - 36px); overflow:auto; padding:15px; border-radius:28px; background:rgba(248,250,252,.97); border:1px solid rgba(255,255,255,.78); box-shadow:0 26px 80px rgba(15,23,42,.28); }
.itin-poster-top { display:flex; align-items:center; justify-content:space-between; min-height:42px; padding:0 2px 10px 8px; color:#111827; font-size:15px; letter-spacing:1px; }
.itin-poster-close { width:38px; height:38px; border:0; border-radius:50%; background:#fff; color:#475569; font-size:25px; line-height:1; cursor:pointer; box-shadow:0 7px 20px rgba(15,23,42,.07); }
.itin-poster-preview { position:relative; display:flex; align-items:center; justify-content:center; min-height:260px; overflow:hidden; border-radius:20px; background:#e7ecef; }
.itin-poster-preview img { display:none; width:100%; height:auto; max-height:calc(100vh - 250px); object-fit:contain; user-select:none; -webkit-user-select:none; -webkit-touch-callout:default; }
.itin-poster-preview img.ready { display:block; }
.itin-poster-loading { padding:80px 20px; color:#64748b; font-size:13px; letter-spacing:1px; }
.itin-poster-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; padding:6px; border-radius:999px; background:rgba(255,255,255,.74); }
.itin-poster-actions .plan-btn { min-width:0; }
.itin-poster-actions .plan-btn { border-color:transparent; box-shadow:none; }
.itin-poster-tip { margin:11px 4px 1px; color:#64748b; font-size:11px; line-height:1.6; text-align:center; letter-spacing:.4px; }
.itin-poster-modal.image-mode { align-items:flex-start; width:100vw; height:100vh; height:100dvh; padding:0; background:#111827; overflow-y:auto; overscroll-behavior:contain; }
.itin-poster-modal.image-mode .itin-poster-sheet { width:min(520px,100%); max-height:none; min-height:100vh; overflow:visible; padding:12px 12px calc(24px + env(safe-area-inset-bottom)); border:0; border-radius:0; background:#111827; box-shadow:none; }
.itin-poster-modal.image-mode .itin-poster-top { position:sticky; top:0; z-index:2; margin:-12px -12px 12px; padding:calc(10px + env(safe-area-inset-top)) 14px 10px 18px; color:#fff; background:rgba(17,24,39,.94); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.itin-poster-modal.image-mode .itin-poster-close { background:rgba(255,255,255,.14); color:#fff; box-shadow:none; }
.itin-poster-modal.image-mode .itin-poster-preview { min-height:0; overflow:visible; border-radius:10px; background:#fff; }
.itin-poster-modal.image-mode .itin-poster-preview img { width:100%; max-height:none; border-radius:10px; }
.itin-poster-modal.image-mode .itin-poster-actions { display:none; }
.itin-poster-modal.image-mode .itin-poster-tip { position:static; margin:12px 0 0; padding:12px 14px calc(12px + env(safe-area-inset-bottom)); border-radius:14px; color:#fff; background:rgba(51,65,85,.94); font-size:13px; }

@media (max-width:600px) {
    .itin-poster-modal:not(.image-mode) { align-items:flex-start; padding:8px; overflow-y:auto; }
    .itin-poster-modal:not(.image-mode) .itin-poster-sheet { width:100%; max-height:none; padding:10px; border-radius:22px; }
    .itin-poster-modal:not(.image-mode) .itin-poster-preview { min-height:220px; border-radius:16px; }
    .itin-poster-modal:not(.image-mode) .itin-poster-preview img { width:100%; max-height:none; }
    .itin-poster-modal:not(.image-mode) .itin-poster-actions { position:sticky; bottom:0; z-index:2; }
}

/* 自动分享路径：生成中/长按发送时不展示复制链接、保存、分享图片，避免跳闪 */
.itin-poster-modal.share-direct .itin-poster-actions { display:none !important; }
.itin-poster-modal.share-direct:not(.image-mode) .itin-poster-sheet { background:rgba(248,250,252,.98); }
.itin-poster-modal.share-direct:not(.image-mode) .itin-poster-tip { color:#64748b; }
