:root{--tp-purple:#7d0088;--tp-purple-dark:#4f075f;--tp-orange:#ff7900;--tp-ink:#17151d;--tp-muted:#68636f;--tp-line:#dedce2;--tp-soft:#faf9f7;--tp-radius:16px;--tp-shadow:0 8px 24px rgba(23,21,29,.08)}
*{box-sizing:border-box}
html{background:#f3f3f5}
body.tpPage{margin:0;color:var(--tp-ink);background:#f3f3f5;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit}
button{color:inherit}
[hidden]{display:none!important}
.tpSrOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tpShell{width:min(100%,860px);min-height:100dvh;margin:0 auto;background:#fff;box-shadow:0 0 34px rgba(21,20,34,.08)}
.tpView{min-height:100dvh;background:#fff}
.tpTopbar{position:sticky;z-index:100;top:0;display:grid;grid-template-columns:92px 1fr 92px;align-items:center;height:78px;padding:env(safe-area-inset-top) 18px 0;background:rgba(255,255,255,.96);border-bottom:1px solid #f0f1f4;backdrop-filter:blur(14px)}
.tpTopbar>*:nth-child(2){justify-self:center}
.tpTopbar>*:last-child{justify-self:end}
.tpIconButton{width:44px;height:44px;padding:0;border:0;background:transparent;font-size:42px;font-weight:400;line-height:1;cursor:pointer}
.tpClose{font-size:43px;transform:translateY(-2px)}
.tpBack{font-family:Arial,sans-serif;font-size:50px;font-weight:300;transform:translateY(-3px)}
.tpPrimaryButton{min-width:88px;height:44px;padding:0 17px;border:0;border-radius:14px;color:#fff;background:linear-gradient(90deg,var(--tp-purple),var(--tp-orange));font-weight:700;box-shadow:none;cursor:pointer}
.tpPrimaryButton:disabled{opacity:.55;cursor:wait}
.tpVLogo{position:relative;width:34px;height:38px;display:block;text-decoration:none}
.tpVLogo span,.tpVLogo i{position:absolute;top:4px;width:12px;height:33px;border-radius:3px;transform-origin:bottom}
.tpVLogo span{left:5px;background:linear-gradient(180deg,#c000c3,#720080);transform:rotate(-24deg)}
.tpVLogo i{right:5px;background:linear-gradient(180deg,#ff8214,#ffad27);transform:rotate(24deg)}
.tpEditor{padding:24px 20px calc(32px + env(safe-area-inset-bottom))}
.tpIntro{margin:0 2px 23px}
.tpStepEyebrow,.tpPreviewHeading small{display:block;margin:0 0 5px;color:var(--tp-purple);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.tpIntro h1{margin:0;font-size:28px;line-height:1.16;letter-spacing:-.7px}
.tpIntro p{margin:7px 0 0;color:var(--tp-muted);font-size:17px}
.tpInputWrap{position:relative;display:block;border:1px solid var(--tp-line);border-radius:16px;background:#fff;box-shadow:0 3px 12px rgba(35,34,50,.025)}
.tpInputWrap input,.tpInputWrap textarea{display:block;width:100%;border:0;outline:0;color:var(--tp-ink);background:transparent}
.tpInputWrap input{height:58px;padding:0 65px 0 15px;font-size:18px}
.tpInputWrap textarea{min-height:104px;padding:15px 54px 30px 15px;font-size:16px;line-height:1.48;resize:none;overflow:hidden}
.tpInputWrap small{position:absolute;right:14px;bottom:13px;color:var(--tp-muted);font-size:12px;font-weight:600}
.tpPhotoSection{display:flex;align-items:center;justify-content:center;min-height:322px;padding:10px 0 8px}
.tpPhotoFan{position:relative;width:min(100%,390px);height:290px}
.tpFanCard{position:absolute;top:50%;left:50%;overflow:hidden;border:0;border-radius:16px;background:#e5e7ed center/cover no-repeat;box-shadow:0 8px 24px rgba(23,21,29,.16);cursor:pointer}
.tpFanBack{width:43%;height:71%;padding:0;transform-origin:center}
.tpFanBackLeft2{z-index:1;transform:translate(-111%,-45%) rotate(-4deg)}
.tpFanBackLeft{z-index:2;transform:translate(-85%,-50%) rotate(-7deg)}
.tpFanBackRight{z-index:2;transform:translate(-15%,-50%) rotate(7deg)}
.tpFanBackRight2{z-index:1;transform:translate(11%,-45%) rotate(4deg)}
.tpFanMain{z-index:4;width:51%;height:88%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 12px 26px;color:#fff;text-align:center;transform:translate(-50%,-50%);background-image:linear-gradient(0deg,rgba(11,10,20,.72),rgba(11,10,20,.02) 64%);cursor:pointer}
.tpFanMain::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,10,20,.72),rgba(11,10,20,.02) 64%)}
.tpFanMain strong{font-size:19px;line-height:1.2;text-shadow:0 2px 9px rgba(0,0,0,.28)}
.tpFanMain button{margin-top:7px;padding:0;border:0;color:#fff;background:transparent;font-size:14px;cursor:pointer}
.tpFanMain .tpFanAddButton{display:flex;flex-direction:column;align-items:center;margin:0;color:#fff;background:transparent}
.tpAddCircle{display:grid;place-items:center;width:62px;height:62px;margin-bottom:13px;border-radius:50%;color:#18213b;background:#fff;font-size:42px;font-weight:300;line-height:1;box-shadow:0 7px 20px rgba(0,0,0,.18)}
.tpPhotoFan.is-empty .tpFanBack{opacity:.55;background-image:linear-gradient(135deg,#eceef4,#dfe2ea)}
.tpPhotoFan.is-empty .tpFanMain{background-color:#9199aa;background-image:linear-gradient(0deg,rgba(40,38,54,.72),rgba(124,130,146,.58))}
.tpFacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:20px;border:1px solid var(--tp-line);border-radius:17px;background:#fff;overflow:hidden}
.tpFact{position:relative;min-width:0;min-height:104px;padding:14px 5px 12px;border:0;background:#fff;text-align:center;cursor:pointer}
.tpFact+.tpFact::before{content:"";position:absolute;top:14px;bottom:14px;left:0;width:1px;background:#d7dae2}
.tpFactIcon{display:block;height:31px;color:var(--tp-purple);font-size:29px;font-weight:800;line-height:1}
.tpFact strong,.tpFact small{display:block;overflow:hidden;text-overflow:ellipsis}
.tpFact strong{margin-top:5px;font-size:12px;line-height:1.35;white-space:nowrap}
.tpFact small{margin-top:4px;color:var(--tp-muted);font-size:11px;line-height:1.3;white-space:nowrap}
.tpRouteSection{margin-top:24px}
.tpSectionHead{display:flex;align-items:center;justify-content:space-between;margin:0 2px 11px}
.tpSectionHead h2{margin:0;font-size:17px}
.tpSectionHead button{border:0;color:var(--tp-purple);background:transparent;font-weight:600;cursor:pointer}
.tpRouteMap{height:156px;overflow:hidden;border-radius:17px;background:#edf4e9}
.tpRouteMap .leaflet-control-attribution{font-size:8px}
.tpToggleRow{display:flex;align-items:center;justify-content:space-between;min-height:76px;margin-top:20px;padding:0 13px;border:1px solid var(--tp-line);border-radius:17px;background:#fff;cursor:pointer}
.tpToggleRow span{max-width:250px;font-size:16px;line-height:1.35}
.tpToggleRow input{position:absolute;opacity:0;pointer-events:none}
.tpToggleRow i{position:relative;width:55px;height:31px;flex:0 0 55px;border-radius:999px;background:#ccd0d8;transition:.2s}
.tpToggleRow i::after{content:"";position:absolute;top:3px;left:3px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.2);transition:.2s}
.tpToggleRow input:checked+i{background:var(--tp-purple)}
.tpToggleRow input:checked+i::after{transform:translateX(24px)}
.tpMessage{min-height:20px;margin:12px 4px 0;color:#bd2828;font-size:13px;font-weight:700;text-align:center}

.tpPreviewHeading{text-align:center}.tpPreviewHeading small{margin-bottom:2px;font-size:8px}.tpPreviewTopbar h1{margin:0;font-size:18px;letter-spacing:-.25px}
.tpPostPreview{margin:0;border-bottom:1px solid var(--tp-line);padding:18px 17px 22px;background:#fff}
.tpPostHead{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center}
.tpPostHead img{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eef0f4}
.tpPostHead div{display:flex;min-width:0;flex-direction:column;gap:4px}
.tpPostHead strong{font-size:17px}
.tpPostHead span{color:var(--tp-muted);font-size:13px}
.tpPostHead button{align-self:start;padding:4px;border:0;background:transparent;font-size:20px;letter-spacing:2px}
.tpPostPreview>h2{margin:26px 3px 10px;font-size:21px;line-height:1.28;letter-spacing:-.35px}
.tpPostPreview>p{margin:0 3px 14px;font-size:16px;line-height:1.48}
.tpPreviewPhotos .vgPhotoRow{padding:0!important;margin:0!important}
.tpPreviewPhotos .vgGalleryImg{pointer-events:none}
.tpPreviewPhotos .vgLCell{cursor:default!important}
.tpPreviewMapWrap{position:relative;margin-top:10px;overflow:hidden;border-radius:17px;background:#eaf1e6}
.tpPreviewMap{height:410px}
.tpPreviewMap .leaflet-control-attribution{font-size:8px}
.tpPreviewMap .leaflet-control-zoom{display:none}
.tpMapStats{position:absolute;z-index:500;right:10px;bottom:12px;left:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:76px;padding:10px 5px;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 10px 25px rgba(15,18,25,.14);backdrop-filter:blur(10px)}
.tpMapStats>div{display:flex;min-width:0;align-items:center;justify-content:center;gap:6px;padding:0 6px}
.tpMapStats>div+div{border-left:1px solid #d9dce4}
.tpMapStats>div>span{color:var(--tp-purple);font-size:23px;font-weight:800}
.tpMapStats p{display:flex;min-width:0;flex-direction:column;margin:0;gap:3px}
.tpMapStats strong,.tpMapStats small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tpMapStats strong{font-size:11px}
.tpMapStats small{color:var(--tp-muted);font-size:9px}
.tpPreviewVisibility{display:flex;align-items:center;gap:12px;margin:17px 6px 0}
.tpPreviewVisibility>span{display:grid;place-items:center;width:38px;height:38px;color:#7b8396;font-size:28px}
.tpPreviewVisibility p{display:flex;flex-direction:column;margin:0;gap:3px}
.tpPreviewVisibility strong{font-size:14px}.tpPreviewVisibility small{color:var(--tp-muted);font-size:12px}
.tpPreviewVisibility button{min-height:44px;margin-left:auto;padding:0 13px;border:1px solid #d8c4db;border-radius:12px;color:var(--tp-purple);background:#fff;font-size:12px;font-weight:750;cursor:pointer}.tpPreviewVisibility button:disabled{opacity:.55;cursor:wait}
.tpLayoutSection{padding:20px 0 calc(30px + env(safe-area-inset-bottom));background:#fff}
.tpLayoutSection h2{margin:0 20px 16px;font-size:17px}
.tpLayoutRail{display:flex;gap:12px;overflow-x:auto;padding:0 calc(50% - 82px) 10px;scroll-snap-type:x mandatory;scroll-padding-inline:calc(50% - 82px);scrollbar-width:none;overscroll-behavior-inline:contain}
.tpLayoutRail::-webkit-scrollbar{display:none}
.tpLayoutChoice{width:164px;height:94px;flex:0 0 164px;display:grid;grid-template-columns:1fr 32px;align-items:center;gap:10px;padding:14px;border:1px solid #d9dce3;border-radius:17px;background:#fff;scroll-snap-align:center;cursor:pointer;transition:border .18s,box-shadow .18s}
.tpLayoutChoice.is-active{border:2px solid var(--tp-purple);box-shadow:0 5px 14px rgba(137,0,143,.1)}
.tpLayoutMini{height:54px;display:grid;gap:4px}
.tpLayoutMini i{display:block;border-radius:5px;background:#e7e7ea}
.tpLayoutChoice b{font-size:14px}.tpLayoutChoice.is-active b{color:var(--tp-purple)}
.tpPreviewMessage{padding-bottom:20px}

.tpDialog{width:min(100% - 24px,480px);max-height:min(88dvh,760px);padding:0;border:0;border-radius:24px;background:transparent;overflow:visible}
.tpDialog::backdrop{background:rgba(15,13,22,.38);backdrop-filter:blur(2px)}
.tpSheet{max-height:88dvh;padding:20px;border-radius:24px;background:#fff;overflow:auto;box-shadow:0 28px 70px rgba(0,0,0,.24)}
.tpSheet header,.tpMapSheet header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.tpSheet h2,.tpMapSheet h2{margin:0;font-size:20px}
.tpSheet header button,.tpMapSheet header>button{width:38px;height:38px;border:0;border-radius:50%;background:#f0f1f4;font-size:25px;line-height:1;cursor:pointer}
.tpSheet>label:not(.tpSheetPrimary){display:grid;gap:8px;margin:14px 0;color:var(--tp-muted);font-size:13px;font-weight:700}
.tpSheet input[type=date],.tpStopSearch input,.tpDistanceEdit input{height:48px;padding:0 13px;border:1px solid var(--tp-line);border-radius:12px;outline:0;color:var(--tp-ink);background:#fff}
.tpSheetPrimary{display:grid;place-items:center;width:100%;min-height:48px;margin-top:18px;padding:0 18px;border:0;border-radius:14px;color:#fff;background:var(--tp-purple);font-weight:700;text-align:center;cursor:pointer}
.tpChoiceList{display:grid;gap:10px}
.tpChoiceList>button{display:grid;grid-template-columns:54px 1fr 26px;align-items:center;gap:12px;min-height:68px;padding:8px 12px;border:1px solid var(--tp-line);border-radius:15px;background:#fff;text-align:left;cursor:pointer}
.tpChoiceList img{width:54px;height:44px;object-fit:contain}.tpChoiceList b{display:none;color:var(--tp-purple);font-size:20px}.tpChoiceList button.is-active{border-color:var(--tp-purple);background:#fff9ff}.tpChoiceList button.is-active b{display:block}
.tpVisibilityChoices>button{grid-template-columns:1fr 26px}.tpVisibilityChoices span{display:flex;flex-direction:column;gap:4px}.tpVisibilityChoices small{color:var(--tp-muted);font-size:12px}
.tpPhotoManagerGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.tpPhotoManagerItem{position:relative;aspect-ratio:1;overflow:hidden;border-radius:12px;background:#edf0f4}.tpPhotoManagerItem img{width:100%;height:100%;object-fit:cover}.tpPhotoManagerItem button{position:absolute;top:5px;right:5px;width:27px;height:27px;border:0;border-radius:50%;color:#fff;background:rgba(20,18,27,.72);font-size:18px;line-height:1;cursor:pointer}
.tpMapDialog{width:min(100% - 18px,720px);max-height:94dvh}
.tpMapSheet{max-height:94dvh;padding:18px;border-radius:24px;background:#fff;overflow:auto;box-shadow:0 28px 70px rgba(0,0,0,.24)}
.tpMapSheet header{margin-bottom:12px}.tpMapSheet header small{color:var(--tp-purple);font-size:10px;font-weight:800;letter-spacing:1px}.tpMapSheet header h2{margin-top:3px}
.tpStopSearch{display:grid;grid-template-columns:1fr auto;gap:8px}.tpStopSearch button{padding:0 18px;border:0;border-radius:12px;color:#fff;background:var(--tp-purple);font-weight:700;cursor:pointer}
.tpMapHelp{margin:10px 2px;color:var(--tp-muted);font-size:12px;line-height:1.4}.tpStopsMap{height:min(43dvh,360px);border-radius:16px;background:#edf4e9}.tpDistanceEdit{display:flex;justify-content:flex-end;margin:12px 0}.tpDistanceEdit label{display:flex;align-items:center;gap:8px;color:var(--tp-muted);font-size:12px;font-weight:700}.tpDistanceEdit input{width:88px;height:38px}.tpStopList{display:grid;gap:8px;max-height:180px;overflow:auto}.tpStopItem{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid var(--tp-line);border-radius:13px}.tpStopItem>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;color:#fff;background:var(--tp-purple);font-size:12px;font-weight:800}.tpStopItem input{min-width:0;height:34px;padding:0 8px;border:0;border-bottom:1px solid #e2e4e9;outline:0}.tpStopItem button{padding:7px 9px;border:1px solid #dedfe5;border-radius:9px;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.tpStopItem.is-excluded{opacity:.55;background:#f5f5f6}.tpStopItem.is-excluded>span{background:#aeb2bc}
.tpMapPin{display:grid;place-items:center;width:31px;height:31px;border:3px solid #fff;border-radius:50%;color:#fff;background:var(--tp-purple);box-shadow:0 4px 12px rgba(0,0,0,.24);font-size:11px;font-weight:800}.tpPhotoPin{width:48px;height:48px;overflow:hidden;border:3px solid #fff;border-radius:50%;background:#fff;box-shadow:0 5px 15px rgba(0,0,0,.26)}.tpPhotoPin img{width:100%;height:100%;object-fit:cover}

@media(max-width:520px){html,body.tpPage{background:#fff}.tpShell{width:100%;box-shadow:none}.tpEditor{padding-inline:16px}.tpTopbar{grid-template-columns:78px 1fr 88px;padding-inline:14px}.tpPhotoSection{min-height:292px}.tpPhotoFan{height:264px}.tpFacts{margin-inline:-1px}.tpFact{min-height:98px;padding-inline:3px}.tpPreviewMap{height:365px}.tpMapStats{right:8px;bottom:9px;left:8px}.tpMapStats>div{display:grid;grid-template-columns:1fr;text-align:center;gap:3px}.tpMapStats>div>span{font-size:19px}.tpMapStats p{align-items:center}.tpPostPreview{padding-inline:13px}.tpPreviewPhotos .vgLayoutGrid{gap:6px!important}}
@media(min-width:721px){.tpShell{margin-block:24px;min-height:calc(100dvh - 48px);border-radius:16px;overflow:hidden}.tpView{min-height:calc(100dvh - 48px)}.tpEditor{padding-inline:46px}.tpPhotoFan{width:440px}.tpPostPreview{padding-inline:44px}.tpLayoutSection h2{margin-inline:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Two-step publisher: each primary view is one mobile viewport. */
html,body.tpPage{height:100%;overflow:hidden}
body.tpPage{overscroll-behavior:none}
.tpShell{height:100dvh;min-height:0;overflow:hidden}
.tpView{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}

/* Minimal top edge, with the real Voyatale artwork instead of a recreated mark. */
.tpTopbar{position:relative;top:auto;height:calc(52px + env(safe-area-inset-top));min-height:52px;padding:env(safe-area-inset-top) 14px 0;grid-template-columns:76px minmax(0,1fr) 76px;border-bottom:1px solid rgba(16,24,43,.055);background:#fff;backdrop-filter:none}
.tpIconButton{width:36px;height:36px;font-size:34px;font-weight:300}
.tpClose{font-size:35px;transform:translateY(-1px)}
.tpBack{font-size:40px;transform:translate(-2px,-2px)}
.tpPrimaryButton{min-width:74px;height:36px;padding:0 13px;border-radius:11px;font-size:13px;font-weight:700;box-shadow:none}
.tpVLogo{position:relative;width:94px;height:26px;overflow:hidden}
.tpVLogo img{position:absolute;width:206px;max-width:none;height:auto;left:-56px;top:-54px;display:block;pointer-events:none}
.tpPreviewTopbar h1{font-size:15px;font-weight:700;letter-spacing:-.15px}

/* Editor: seven compact rows share the remaining height, never the page scroll. */
.tpEditor{position:relative;min-height:0;height:100%;display:grid;grid-template-rows:auto auto clamp(108px,22dvh,188px) auto auto minmax(78px,13dvh) auto;align-content:space-between;gap:0;padding:10px 16px max(8px,env(safe-area-inset-bottom));overflow:hidden}
.tpIntro{margin:0 1px}
.tpIntro h1{font-size:clamp(20px,3.1dvh,25px);line-height:1.08;letter-spacing:-.55px}
.tpIntro p{margin:3px 0 0;font-size:clamp(12px,1.8dvh,14px);line-height:1.2}
.tpInputWrap{border-radius:12px;box-shadow:none}
.tpInputWrap input{height:clamp(39px,5.8dvh,46px);padding:0 55px 0 12px;font-size:clamp(14px,2.1dvh,16px)}
.tpInputWrap textarea{height:clamp(49px,7.2dvh,58px);min-height:0;padding:9px 44px 19px 12px;font-size:clamp(12px,1.85dvh,14px);line-height:1.3}
.tpInputWrap small{right:10px;bottom:7px;font-size:9px}

.tpPhotoSection{min-height:0;height:100%;padding:0;display:flex}
.tpPhotoFan{width:min(90%,330px);height:100%}
.tpFanCard{border-radius:15px;box-shadow:0 8px 20px rgba(21,20,34,.15)}
.tpFanBack{width:42%;height:68%}
.tpFanMain{width:49%;height:88%;padding:0 8px clamp(9px,1.8dvh,15px)}
.tpFanMain strong{font-size:clamp(13px,2dvh,16px)}
.tpFanMain button{margin-top:3px;font-size:clamp(10px,1.55dvh,12px)}
.tpAddCircle{width:clamp(38px,6dvh,48px);height:clamp(38px,6dvh,48px);margin-bottom:5px;font-size:clamp(27px,4.5dvh,34px);box-shadow:0 4px 12px rgba(0,0,0,.16)}

.tpFacts{height:clamp(67px,9.6dvh,78px);margin:0;border-radius:13px}
.tpFact{min-height:0;height:100%;padding:7px 3px 6px}
.tpFact+.tpFact::before{top:9px;bottom:9px}
.tpFactIcon{height:21px;font-size:20px}
.tpFact strong{margin-top:2px;font-size:clamp(9px,1.35dvh,11px);line-height:1.22}
.tpFact small{margin-top:2px;font-size:clamp(8px,1.18dvh,9.5px);line-height:1.18}

.tpRouteSection{min-height:0;height:100%;margin:0;display:grid;grid-template-rows:20px minmax(0,1fr);gap:5px}
.tpSectionHead{height:20px;margin:0 1px}
.tpSectionHead h2{font-size:13px}
.tpSectionHead button{padding:2px 0;font-size:11px}
.tpRouteMap{height:100%;min-height:0;border-radius:13px}
.tpRouteMap .leaflet-control-zoom{display:none}
.tpToggleRow{min-height:0;height:clamp(39px,5.6dvh,45px);margin:0;padding:0 10px;border-radius:13px}
.tpToggleRow span{font-size:clamp(11px,1.7dvh,13px)}
.tpToggleRow i{width:43px;height:24px;flex-basis:43px}
.tpToggleRow i::after{top:2px;left:2px;width:20px;height:20px}
.tpToggleRow input:checked+i::after{transform:translateX(19px)}
.tpEditor>.tpMessage{position:absolute;z-index:20;right:18px;bottom:12px;left:18px;min-height:0;margin:0;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.96);box-shadow:0 3px 12px rgba(20,18,30,.14);font-size:10px;pointer-events:none}
.tpEditor>.tpMessage:empty{display:none}

/* Preview: post, map and layout picker are all visible simultaneously. */
#previewView{grid-template-rows:auto minmax(0,1fr) auto}
.tpPostPreview{min-height:0;margin:0;padding:9px 13px 7px;display:grid;grid-template-rows:auto auto auto minmax(105px,.82fr) minmax(128px,1.18fr) auto;gap:clamp(4px,.75dvh,7px);overflow:hidden;border:0;background:#fff}
.tpPostHead{grid-template-columns:36px 1fr auto;gap:9px}
.tpPostHead img{width:36px;height:36px}
.tpPostHead div{gap:2px}
.tpPostHead strong{font-size:13px}
.tpPostHead span{font-size:10px}
.tpPostHead button{padding:0;font-size:15px;line-height:1}
.tpPostPreview>h2{margin:0;font-size:clamp(15px,2.3dvh,18px);line-height:1.18;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpPostPreview>p{margin:0;font-size:clamp(11px,1.7dvh,13px);line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tpPreviewPhotos{min-height:0;height:100%;overflow:hidden;border-radius:12px}
.tpPreviewPhotos:empty{display:none}
.tpPreviewPhotos .vgPhotoRow,.tpPreviewPhotos .vgLayoutGrid,.tpPreviewPhotos .vgBig{height:100%!important;min-height:0!important}
.tpPreviewPhotos .vgLayoutGrid{gap:5px!important;grid-auto-rows:minmax(0,1fr)!important}
.tpPreviewPhotos .vgLayoutGrid>div{min-height:0!important}
.tpPreviewPhotos .vgLCell{height:100%!important;min-height:0!important;aspect-ratio:auto!important;border:0!important;border-radius:11px!important;box-shadow:none!important}
.tpPreviewPhotos .vgBig{border:0!important;border-radius:11px!important;box-shadow:none!important}
.tpPreviewPhotos .vgBig img{width:100%!important;height:100%!important;object-fit:cover!important}
.tpPreviewPhotos .vgMore{font-size:22px}
.tpPreviewMapWrap{min-height:0;height:100%;margin:0;border-radius:13px}
.tpPreviewMap{height:100%;min-height:0}
.tpMapStats{right:7px;bottom:7px;left:7px;min-height:49px;padding:6px 3px;border-radius:12px;box-shadow:0 5px 14px rgba(15,18,25,.12)}
.tpMapStats>div{gap:3px;padding:0 3px}
.tpMapStats>div>span{font-size:15px}
.tpMapStats p{gap:1px}
.tpMapStats strong{font-size:8.5px}
.tpMapStats small{font-size:7px}
.tpPreviewVisibility{height:30px;margin:0 2px;gap:7px}
.tpPreviewVisibility>span{width:29px;height:29px;font-size:21px}
.tpPreviewVisibility p{gap:1px}
.tpPreviewVisibility strong{font-size:11px}
.tpPreviewVisibility small{font-size:9px}

.tpLayoutSection{height:calc(91px + env(safe-area-inset-bottom));min-height:0;padding:8px 0 max(6px,env(safe-area-inset-bottom));border-top:1px solid rgba(16,24,43,.06);overflow:hidden}
.tpLayoutSection h2{margin:0 15px 6px;font-size:12px}
.tpLayoutRail{height:58px;gap:8px;padding:0 calc(50% - 58px);scroll-padding-inline:calc(50% - 58px)}
.tpLayoutChoice{width:116px;height:56px;flex-basis:116px;grid-template-columns:1fr 23px;gap:6px;padding:8px;border-radius:12px;box-shadow:none}
.tpLayoutChoice.is-active{box-shadow:none}
.tpLayoutMini{height:34px;gap:3px}
.tpLayoutMini i{border-radius:3px}
.tpLayoutChoice b{font-size:10px}
.tpPreviewMessage{position:fixed;z-index:900;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));left:16px;min-height:0;margin:0;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.97);box-shadow:0 3px 12px rgba(20,18,30,.14);font-size:10px;pointer-events:none}
.tpPreviewMessage:empty{display:none}

/* Phones with a short viewport get one further density step. */
@media(max-height:650px){
  .tpTopbar{height:calc(48px + env(safe-area-inset-top));min-height:48px}
  .tpEditor{grid-template-rows:auto auto clamp(92px,19dvh,120px) auto auto minmax(68px,11.5dvh) auto;padding-block:6px max(5px,env(safe-area-inset-bottom))}
  .tpIntro h1{font-size:18px}.tpIntro p{font-size:10px;margin-top:1px}
  .tpInputWrap input{height:35px}.tpInputWrap textarea{height:43px;padding-block:7px 16px}
  .tpFacts{height:60px}.tpFact{padding-block:4px}.tpFactIcon{height:18px;font-size:17px}
  .tpToggleRow{height:35px}.tpRouteSection{grid-template-rows:17px minmax(0,1fr);gap:3px}.tpSectionHead{height:17px}
  .tpPostPreview{padding-block:6px 4px;grid-template-rows:auto auto auto minmax(82px,.78fr) minmax(102px,1.22fr) auto;gap:3px}
  .tpPostHead{grid-template-columns:30px 1fr auto}.tpPostHead img{width:30px;height:30px}
  .tpPreviewVisibility{height:24px}.tpPreviewVisibility>span{width:24px;height:24px;font-size:18px}
  .tpLayoutSection{height:calc(76px + env(safe-area-inset-bottom));padding-top:5px}.tpLayoutSection h2{margin-bottom:3px}.tpLayoutRail{height:49px}.tpLayoutChoice{height:47px}.tpLayoutMini{height:29px}
}

@media(max-width:768px){.tpInputWrap textarea{font-size:16px}}

@media(max-width:520px){
  .tpEditor{padding-inline:13px}
  .tpTopbar{grid-template-columns:72px minmax(0,1fr) 72px;padding-inline:11px}
  .tpPostPreview{padding-inline:11px}
  .tpMapStats>div{display:flex;grid-template-columns:none;text-align:left}.tpMapStats p{align-items:flex-start}
}

@media(min-width:721px){
  .tpShell{height:100dvh;min-height:0;margin-block:0;border-radius:0}
  .tpView{height:100dvh;min-height:0}
  .tpEditor{padding-inline:46px}
  .tpPostPreview{padding-inline:44px}
  .tpLayoutSection h2{margin-inline:44px}
}

/* V2 ETAPP 16 — Smart Create Post. Only Live Trip end-drafts use this layer. */
.tpSmartCreate{min-height:0;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:7px;padding:9px;border:1px solid #e6e2ea;border-radius:15px;background:linear-gradient(180deg,#fbf8fc 0%,#fff 72%);overflow:hidden}
.tpSmartHero{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.tpSmartCover{position:relative;width:54px;height:54px;padding:0;border:0;border-radius:13px;background:#eee8f0 center/cover no-repeat;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(137,0,143,.08);cursor:pointer}
.tpSmartCover::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,10,21,.5),transparent 62%)}
.tpSmartCover span{position:absolute;z-index:2;right:6px;bottom:5px;color:#fff;font-size:10px;font-weight:800;text-shadow:0 1px 5px rgba(0,0,0,.35)}
.tpSmartHeroText{min-width:0}
.tpSmartHeroText small{display:block;color:var(--tp-purple);font-size:8.5px;font-weight:900;letter-spacing:.85px}
.tpSmartHeroText strong{display:block;margin-top:2px;font-size:clamp(12px,1.8dvh,14px);line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpSmartHeroText p{margin:3px 0 0;color:var(--tp-muted);font-size:clamp(9px,1.35dvh,10.5px);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpSmartDayRail{display:flex;align-items:stretch;gap:6px;min-height:0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.tpSmartDayRail::-webkit-scrollbar{display:none}
.tpSmartDayChip{min-width:86px;max-width:118px;flex:0 0 auto;display:grid;grid-template-rows:auto 1fr auto;gap:2px;padding:6px 8px;border:1px solid #e5e0e9;border-radius:11px;background:#fff;scroll-snap-align:start;text-align:left;cursor:pointer}
.tpSmartDayChip small{color:var(--tp-purple);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.tpSmartDayChip strong{min-width:0;font-size:9.5px;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tpSmartDayChip span{color:var(--tp-muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpSmartActions{display:grid;grid-template-columns:1fr auto;gap:7px}
.tpSmartActions button{min-height:30px;padding:0 10px;border:1px solid #ded8e3;border-radius:10px;background:#fff;font-size:9.5px;font-weight:800;cursor:pointer}
.tpSmartActions #smartAiPolishBtn{color:#fff;border-color:var(--tp-purple);background:var(--tp-purple)}
.tpSmartActions button:disabled{opacity:.55;cursor:wait}
.tpSmartMessage{min-height:11px;margin:0 2px;color:var(--tp-muted);font-size:8.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpPage.is-smart-create .tpPhotoSection{display:none}
.tpPage:not(.is-smart-create) .tpSmartCreate{display:none!important}

.tpSmartStoryDialog{width:min(100% - 16px,620px);max-height:94dvh}
.tpSmartStorySheet{max-height:94dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:16px;border-radius:22px;background:#fff;box-shadow:0 28px 70px rgba(0,0,0,.24);overflow:hidden}
.tpSmartStorySheet>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.tpSmartStorySheet>header small{display:block;color:var(--tp-purple);font-size:9px;font-weight:900;letter-spacing:.9px}
.tpSmartStorySheet>header h2{margin:2px 0 0;font-size:19px}
.tpSmartStorySheet>header button{width:36px;height:36px;border:0;border-radius:50%;background:#f0f1f4;font-size:24px;cursor:pointer}
.tpSmartStoryHelp{margin:0 0 10px;color:var(--tp-muted);font-size:11px;line-height:1.35}
.tpSmartStoryDays{min-height:0;display:grid;gap:9px;overflow:auto;padding:1px 2px 8px}
.tpSmartDayEditor{padding:10px;border:1px solid var(--tp-line);border-radius:14px;background:#fff}
.tpSmartDayEditorHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}
.tpSmartDayEditorHead>div{min-width:0}
.tpSmartDayEditorHead small{display:block;color:var(--tp-purple);font-size:8.5px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.tpSmartDayEditorHead span{display:block;margin-top:2px;color:var(--tp-muted);font-size:9px}
.tpSmartDayEditorPhotos{display:flex;flex:0 0 auto;gap:3px}
.tpSmartDayEditorPhotos img,.tpSmartDayPhotoMore{width:27px;height:27px;border-radius:7px;object-fit:cover;background:#ececf1}
.tpSmartDayPhotoMore{display:grid;place-items:center;color:#4f5566;font-size:8px;font-weight:800}
.tpSmartDayEditor input,.tpSmartDayEditor textarea{display:block;width:100%;border:1px solid #e4e6eb;border-radius:10px;outline:0;background:#fff;color:var(--tp-ink)}
.tpSmartDayEditor input{height:35px;padding:0 10px;font-size:11px;font-weight:750}
.tpSmartDayEditor textarea{min-height:64px;margin-top:6px;padding:8px 10px;font-size:11px;line-height:1.35;resize:vertical}
.tpSmartPlaceChips{display:flex;gap:5px;overflow-x:auto;margin-top:7px;scrollbar-width:none}
.tpSmartPlaceChips::-webkit-scrollbar{display:none}
.tpSmartPlaceChips span{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#f5f1f6;color:#5d5362;font-size:8.5px;font-weight:650}

@media(max-height:650px){
  .tpSmartCreate{gap:4px;padding:6px}.tpSmartHero{grid-template-columns:42px minmax(0,1fr);gap:7px}.tpSmartCover{width:42px;height:42px;border-radius:10px}
  .tpSmartDayChip{min-width:76px;padding:4px 6px}.tpSmartActions button{min-height:26px}.tpSmartMessage{display:none}
}
