/* Roamwise Trip Planner — extends the shared palette and type from /style.css. */
.tp-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tp-body header{position:relative;z-index:5}
.tp{--tp-gap:18px;--tp-side:384px;--tp-shadow:0 18px 50px -18px #17372b55,0 2px 8px -2px #17372b22;position:relative;height:clamp(560px,calc(100svh - 82px),1400px);overflow:hidden;background:#cddbd3;isolation:isolate}
.tp-map{position:absolute;inset:0}
.tp-map-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:30px;background:linear-gradient(160deg,#e8eddf,#cddbd3);text-align:center;z-index:1}
.tp-map-fallback p{max-width:380px;font-family:'DM Serif Display',Georgia,serif;font-size:24px;line-height:1.3}
.tp button{color:var(--ink)}
.tp .eyebrow{color:var(--muted)}

/* Floating search and region chips */
.tp-top{position:absolute;z-index:3;top:var(--tp-gap);left:calc(var(--tp-side) + var(--tp-gap)*2);right:150px;display:flex;flex-direction:column;gap:10px;pointer-events:none;transition:left .35s ease}
.tp[data-sidebar=closed] .tp-top{left:76px}
.tp-search{position:relative;z-index:2;max-width:480px;display:flex;align-items:center;gap:10px;padding:0 16px;background:#fffdfa;border:1px solid var(--line);border-radius:999px;box-shadow:var(--tp-shadow);pointer-events:auto}
.tp-search>svg{flex:none;color:var(--muted)}
.tp-search input{margin:0;border:0;background:transparent;padding:15px 0;font-size:15px;box-shadow:none!important}
.tp-search input::-webkit-search-cancel-button{cursor:pointer}
.tp-search:focus-within{border-color:var(--green);box-shadow:var(--tp-shadow),0 0 0 3px #244c3b22}
.tp-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;margin:0;padding:6px;list-style:none;background:#fffdfa;border:1px solid var(--line);border-radius:14px;box-shadow:var(--tp-shadow);max-height:min(380px,55vh);overflow:auto}
.tp-search-results li[role=option]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;cursor:pointer}
.tp-search-results li[aria-selected=true],.tp-search-results li[role=option]:hover{background:#e8eddf}
.tp-result-pin{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:50%;background:#eee4d7;color:var(--orange);font-size:13px}
.tp-result-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.tp-result-text strong{font-weight:600;font-size:14px}
.tp-result-text small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-result-tag{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--green);background:var(--lime);padding:3px 8px;border-radius:999px;white-space:nowrap}
.tp-result-status{padding:10px 12px;font-size:12px;color:var(--muted)}
.tp-regions{display:flex;gap:6px;flex-wrap:wrap;pointer-events:auto;max-width:480px}
.tp-regions button{border:1px solid #fffdfa;background:#fffdfacc;backdrop-filter:blur(6px);padding:6px 13px;border-radius:999px;font-size:12px;font-weight:600;box-shadow:0 2px 8px -3px #17372b33}
.tp-regions button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--paper)}

/* Map tool buttons */
.tp-map-tools{position:absolute;z-index:3;top:var(--tp-gap);right:var(--tp-gap);display:flex;flex-direction:column;gap:8px;transition:right .35s ease}
.tp.panel-open .tp-map-tools{right:calc(420px + var(--tp-gap)*2)}
.tp.panel-open .tp-top{right:calc(420px + var(--tp-gap)*2)}
.tp-tool{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line);background:#fffdfa;border-radius:999px;font-size:12px;font-weight:600;box-shadow:var(--tp-shadow)}
.tp-tool[aria-pressed=true] svg{color:var(--orange)}
.tp .maplibregl-ctrl-group{border-radius:12px;overflow:hidden;box-shadow:var(--tp-shadow);border:1px solid var(--line)}
.tp .maplibregl-ctrl-bottom-right{transition:right .35s ease}
.tp.panel-open .maplibregl-ctrl-bottom-right{right:calc(420px + var(--tp-gap))}
.tp .maplibregl-ctrl-attrib{font-size:10px}
.tp-tip .maplibregl-popup-content{padding:6px 10px;border-radius:8px;font:600 12px 'DM Sans',sans-serif;color:var(--ink);background:#fffdfa;box-shadow:0 6px 18px -6px #17372b55}
.tp-tip .maplibregl-popup-tip{display:none}

/* Numbered pins */
.tp-pin-wrap{width:34px;height:40px;display:flex;justify-content:center}
.tp-pin{width:32px;height:32px;padding:0;border:3px solid var(--paper);border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--green);box-shadow:-3px 5px 12px -4px #17372b88;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.tp-pin span{transform:rotate(45deg);color:#fff;font:700 13px/1 'DM Sans',sans-serif}
.tp-pin.is-first{background:var(--orange)}
.tp-pin:hover,.tp-pin:focus-visible{background:#37644a;outline:3px solid var(--orange);outline-offset:2px}
.maplibregl-marker:has(.tp-pin:hover){z-index:2}
@media (prefers-reduced-motion:no-preference){.tp-pin{animation:tp-drop .45s cubic-bezier(.2,1.4,.4,1) both}}
@keyframes tp-drop{from{opacity:0;translate:0 -14px}to{opacity:1;translate:0 0}}

/* Trip sidebar */
.tp-sidebar{position:absolute;z-index:4;top:var(--tp-gap);bottom:var(--tp-gap);left:var(--tp-gap);width:var(--tp-side);display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--tp-shadow);transition:transform .35s ease}
.tp[data-sidebar=closed] .tp-sidebar{transform:translateX(calc(-100% - var(--tp-gap)))}
.tp-collapse{position:absolute;top:18px;right:-44px;width:40px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--paper);box-shadow:8px 6px 18px -10px #17372b55}
.tp-collapse svg{transition:transform .3s}
.tp[data-sidebar=closed] .tp-collapse svg{transform:rotate(180deg)}
.tp-collapse-label,.tp-grip,.tp-sidebar-peek{display:none}
.tp-sidebar-body{flex:1;overflow:auto;padding:24px 22px 20px;scrollbar-width:thin}
.tp-sidebar-head{margin-bottom:16px}
.tp-title{margin:10px 0 0;padding:4px 0;border:0;border-bottom:1px dashed transparent;border-radius:0;background:transparent;font-family:'DM Serif Display',Georgia,serif;font-size:32px;letter-spacing:-1px;line-height:1.1}
.tp-title:hover,.tp-title:focus{border-bottom-color:var(--line);box-shadow:none!important}
.tp-toolbar{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:5px;background:#fffdfa;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}
.tp-toolbar button{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:8px 2px 6px;border:0;border-radius:8px;background:transparent;font-size:10.5px;font-weight:600}
.tp-toolbar button:hover:not(:disabled){background:#e8eddf}
.tp-toolbar button.is-saved{color:var(--green)}
.tp-toolbar button.is-saved svg{color:var(--orange)}
.tp-export{position:relative}
.tp-export-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:5;min-width:160px;padding:6px;background:#fffdfa;border:1px solid var(--line);border-radius:10px;box-shadow:var(--tp-shadow)}
.tp-export-menu button{flex-direction:row;justify-content:flex-start;padding:10px 12px;font-size:13px}
.tp-dates{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.tp-dates label{margin-bottom:6px;font-size:11px;color:var(--muted)}
.tp-dates input,.tp-dates select{margin-top:4px;padding:9px 10px;font-size:13px;color:var(--ink)}
.tp-date-note{min-height:18px;margin:2px 0 14px}
.tp-stops{list-style:none;margin:0;padding:0}
.tp-stop{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:start;padding:12px;background:#fffdfa;border:1px solid var(--line);border-radius:12px;transition:box-shadow .2s,opacity .2s}
.tp-stop[draggable=true]{cursor:grab}
.tp-stop.dragging{opacity:.45}
.tp-stop.drop-before{box-shadow:0 -3px 0 var(--orange)}
.tp-stop.drop-after{box-shadow:0 3px 0 var(--orange)}
.tp-stop-num{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:13px;font-weight:700}
.tp-stop:first-child .tp-stop-num{background:var(--orange)}
.tp-stop-main{min-width:0;display:flex;flex-direction:column;line-height:1.35}
.tp-stop-name{padding:0;border:0;background:none;text-align:left;font-size:16px;font-weight:600;letter-spacing:-.2px}
.tp-stop-name:hover{color:var(--orange)}
.tp-stop-meta{font-size:12px;color:var(--muted);margin-top:2px}
.tp-stop-cost{font-size:11px;color:var(--green);margin-top:4px}
.tp-stop-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tp-nights{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.tp-nights button{width:28px;height:28px;padding:0;border:0;background:transparent;font-size:16px;line-height:1}
.tp-nights button:hover:not(:disabled){background:#e8eddf}
.tp-nights span{min-width:62px;text-align:center;font-size:12px;font-weight:600}
.tp-stop-actions{display:flex;gap:2px}
.tp-stop-actions button{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted)}
.tp-stop-actions button:hover:not(:disabled){background:#e8eddf;color:var(--ink)}
.tp-stop-actions button:disabled{opacity:.3}
.tp-leg{display:flex;align-items:center;gap:12px;padding:4px 0 4px 27px;flex-wrap:wrap}
.tp-leg-line{width:2px;height:26px;background:repeating-linear-gradient(var(--green) 0 4px,transparent 4px 8px);opacity:.5}
.tp-leg-text{font-size:11px;color:var(--muted)}
.tp-leg [data-extension-slot]{flex-basis:100%;padding-left:14px}
.tp-empty{padding:26px 22px;border:1px dashed #c6cdbf;border-radius:12px;text-align:center;background:#fffdfa80}
.tp-empty-title{font-family:'DM Serif Display',Georgia,serif;font-size:24px;margin-bottom:6px}
.tp-summary{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:18px;background:#ffffff20;border-radius:14px;overflow:hidden;background:var(--green);color:var(--paper)}
.tp-summary div{padding:14px 16px}
.tp-summary span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#c6d2c6}
.tp-summary strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px;line-height:1.2;margin-top:4px}
.tp-summary-wide{grid-column:1/-1;border-top:1px solid #ffffff22}
.tp-summary-wide strong{font-size:34px;color:var(--lime)}
.tp-summary small{display:block;font-size:11px;color:#c6d2c6;margin-top:2px}
.tp-disclaimer{margin:14px 0 0}

/* Destination panel */
.tp-panel{position:absolute;z-index:6;top:var(--tp-gap);right:var(--tp-gap);bottom:var(--tp-gap);width:420px;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--tp-shadow);scrollbar-width:thin}
.tp-panel:not([hidden]){animation:tp-panel-in .35s ease both}
@keyframes tp-panel-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.tp-panel-close{position:absolute;z-index:2;top:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#fffdfae6;box-shadow:0 4px 12px -4px #17372b66}
.tp-photo{position:relative;margin:0;height:280px;background:linear-gradient(160deg,#64816a,#244c3b);overflow:hidden;border-radius:15px 15px 0 0}
.tp-photo:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,#dce8a633,transparent 60%)}
.tp-photo.loading:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#ffffff26 50%,transparent 70%);background-size:200% 100%;animation:tp-shimmer 1.4s linear infinite}
@keyframes tp-shimmer{to{background-position:-200% 0}}
.tp-photo img{position:relative;width:100%;height:100%;object-fit:cover;display:block}
.tp-photo figcaption{position:absolute;left:12px;bottom:10px;font-size:10px;color:#fff;text-shadow:0 1px 3px #0009}
.tp-photo figcaption a{text-decoration:underline}
.tp-panel-body{padding:24px 26px 26px}
.tp-panel-body h2{font-size:44px;margin:8px 0 12px}
.tp-panel-intro{font-size:15px;color:#3d5246}
.tp-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}
.tp-facts div{padding:14px;background:#fffdfa;border:1px solid var(--line);border-radius:12px}
.tp-facts span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.tp-facts strong{display:block;font-size:18px;margin-top:3px}
.tp-panel h3{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 8px}
.tp-attractions{list-style:none;margin:0 0 22px;padding:0}
.tp-attractions li{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.tp-attractions li:before{content:'✳';color:var(--orange)}
.tp-panel-actions{display:flex;gap:10px;flex-wrap:wrap}
.tp-panel-actions .button{flex:1;justify-content:center;font-size:14px}
.tp-panel-actions .outline{font-size:13px;font-weight:600}
.tp-panel-body>.small{margin:16px 0 0}
.tp-extension{margin-top:18px}

/* Toast */
.tp-toast{position:absolute;z-index:8;left:50%;bottom:28px;max-width:min(520px,calc(100% - 32px));padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:13px;box-shadow:var(--tp-shadow);transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.tp-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.tp-toast a{color:var(--lime);text-decoration:underline;margin-left:4px}
.tp-print{display:none}

@media (max-width:1100px) and (min-width:821px){.tp{--tp-side:340px}.tp-panel{width:380px}.tp.panel-open .tp-map-tools{right:calc(380px + var(--tp-gap)*2)}.tp.panel-open .maplibregl-ctrl-bottom-right{right:calc(380px + var(--tp-gap))}.tp-top{right:130px}.tp.panel-open .tp-top{right:calc(380px + var(--tp-gap)*2)}}

/* Mobile: floating search, bottom sheets for route and destination */
@media (max-width:820px){
 .tp{--tp-gap:12px;height:calc(100svh - 70px);min-height:520px}
 .tp-top,.tp[data-sidebar=closed] .tp-top{left:var(--tp-gap);right:var(--tp-gap)}
 .tp-search{max-width:none}
 .tp-search input{padding:13px 0}
 .tp-regions{flex-wrap:nowrap;overflow-x:auto;max-width:none;scrollbar-width:none;margin-right:-12px;padding-right:12px}
 .tp-regions button{flex:none}
 .tp-map-tools{top:auto;bottom:calc(84px + var(--tp-gap));flex-direction:column}
 .tp.panel-open .tp-map-tools{right:var(--tp-gap)}
 .tp-tool span{display:none}
 .tp-tool{padding:10px}
 .tp .maplibregl-ctrl-bottom-right{display:none}
 .tp-sidebar{top:auto;left:0;right:0;bottom:0;width:auto;max-height:64%;border-radius:20px 20px 0 0;border-bottom:0}
 .tp[data-sidebar=closed] .tp-sidebar{transform:translateY(calc(100% - 72px))}
 .tp-collapse{position:static;width:100%;height:auto;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 4px;border:0;border-radius:20px 20px 0 0;background:transparent;box-shadow:none}
 .tp-collapse svg{display:none}
 .tp-grip{display:block;width:42px;height:5px;border-radius:5px;background:#c6cdbf}
 .tp-collapse-label{display:block;font-size:11px;font-weight:600;color:var(--muted)}
 .tp[data-sidebar=closed] .tp-collapse-label{display:none}
 .tp[data-sidebar=closed] .tp-sidebar-peek{display:flex;justify-content:space-between;align-items:baseline;padding:2px 22px 14px;cursor:pointer}
 .tp-sidebar-peek strong{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:22px}
 .tp-sidebar-peek span{font-size:12px;color:var(--muted)}
 .tp-sidebar-body{padding:6px 16px 22px}
 .tp-title{font-size:27px}
 .tp-toolbar button{font-size:10px}
 .tp-stop{grid-template-columns:28px 1fr;gap:10px}
 .tp-stop-side{grid-column:2;flex-direction:row;justify-content:space-between;align-items:center}
 .tp-panel{top:auto;left:0;right:0;bottom:0;width:auto;max-height:86%;border-radius:20px 20px 0 0;border-bottom:0}
 .tp-panel:not([hidden]){animation-name:tp-sheet-in}
 .tp-photo{height:210px;border-radius:19px 19px 0 0}
 .tp-panel-body{padding:20px 18px 26px}
 .tp-panel-body h2{font-size:36px}
 .tp-panel-actions{position:sticky;bottom:-26px;margin:0 -18px -26px;padding:12px 18px 18px;background:linear-gradient(transparent,var(--paper) 28%)}
 .tp-toast{bottom:90px}
}
@keyframes tp-sheet-in{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tp *,.tp *:before,.tp *:after{animation:none!important;transition:none!important}}

/* Printable trip (Export → PDF) */
@media print{
 @page{margin:14mm}
 .tp-body>*:not(.tp-print){display:none!important}
 .tp-print{display:block!important;color:#243e33;font-family:'DM Sans',sans-serif}
 .tp-print-brand{font-size:22px;font-weight:700;letter-spacing:-1px;margin:0}
 .tp-print-brand span{color:#bc5c3d;margin-left:2px}
 .tp-print h1{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:38px;margin:10px 0 4px;letter-spacing:-1px}
 .tp-print-meta{font-size:12px;color:#687268;margin:0 0 14px}
 .tp-print img{width:100%;max-height:105mm;object-fit:cover;border-radius:6px;margin-bottom:14px}
 .tp-print table{width:100%;border-collapse:collapse;font-size:12px}
 .tp-print th,.tp-print td{text-align:left;padding:8px 6px;border-bottom:1px solid #d9ded2}
 .tp-print th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#687268}
 .tp-print small{color:#687268}
 .tp-print-note{font-size:10px;color:#687268;margin-top:14px}
}
