.fpm{background:var(--paper-2);border:1px solid var(--ink);--fpm-h:580px;color:var(--ink);padding:14px;position:relative}.fpm-bar{flex-wrap:wrap;align-items:flex-end;gap:.8rem 1.4rem;display:flex;position:relative}.fpm-search{flex:260px;max-width:420px}.fpm-search label,.fpm-group legend,.fpm-select label{font:700 .72rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.35rem;padding:0;display:block}.fpm input[type=search],.fpm select{width:100%;font:inherit;border:1px solid var(--ink);color:var(--ink);background:#fff;border-radius:0;padding:.65rem .8rem}.fpm-filters{flex-wrap:wrap;align-items:flex-end;gap:.6rem 1.3rem;display:flex}.fpm-group{border:0;flex-wrap:wrap;gap:.35rem;min-width:0;margin:0;padding:0;display:flex}.fpm-group legend{float:none;width:100%}.fpm-select{display:block}.fpm-select select{width:auto;min-width:170px}.fpm-chip{border:2px solid var(--ink-3);cursor:pointer;background:#fff;align-items:center;gap:.45rem;padding:.32rem .75rem .32rem .55rem;font-size:.92rem;font-weight:600;line-height:1.2;display:inline-flex}.fpm-chip input{width:1.05rem;height:1.05rem;accent-color:var(--wine);margin:0}.fpm-chip:has(input:checked){border-color:var(--ink);background:var(--paper);box-shadow:inset 0 -3px 0 var(--wine)}.fpm-chip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.fpm-small{color:var(--ink-3);font-size:.82rem;font-weight:400}.fpm-sw{flex:none;width:16px;height:18px;display:inline-block}.fpm-sw svg{width:100%;height:100%;display:block}.fpm-reset{color:var(--wine);font:700 .92rem var(--sans);cursor:pointer;background:0 0;border:0;padding:.4rem;text-decoration:underline}.fpm-status-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:.8rem 0 .5rem;display:flex;position:relative}.fpm-count{color:var(--ink-2);flex:auto;margin:0;font-size:.95rem}.fpm-tabs{border:1px solid var(--ink);gap:0;display:none}.fpm-tabs button{font:700 .95rem var(--sans);color:var(--ink);cursor:pointer;background:#fff;border:0;padding:.5rem 1.2rem}.fpm-tabs button[aria-pressed=true]{background:var(--ink);color:#fff}.fpm-print{border:1px solid var(--ink);color:var(--ink);font:700 .92rem var(--sans);cursor:pointer;background:#fff;padding:.45rem 1rem}.fpm-print:hover{background:var(--ink);color:#fff}.fpm-notice{color:#7a1c18;background:#fdeceb;border:1px solid #a33a36;border-left-width:4px;margin:.5rem 0;padding:.6rem .9rem;font-size:.95rem;position:relative}.fpm-notice[hidden]{display:none}.fpm-notice.is-soft{color:#5e4a00;background:#fff7de;border-color:#8a5a14}.fpm-passport{background:var(--paper);border:1px solid var(--hair);border-left:4px solid var(--farm);margin:.5rem 0;padding:.7rem 1rem;font-size:.95rem;position:relative}.fpm-passport p{margin:0 0 .4rem}.fpm-bar-track{border:1px solid var(--ink-3);background:#dfe6cf;height:10px;overflow:hidden}.fpm-bar-track span{background:var(--farm);height:100%;transition:width .3s;display:block}.fpm-body{height:var(--fpm-h);grid-template-columns:minmax(300px,380px) 1fr;gap:14px;display:grid;position:relative}.fpm-cards .fpm-body{grid-template-columns:minmax(340px,470px) 1fr}.fpm-list{border:1.5px solid var(--ink);background:var(--paper);min-height:0;overflow-y:auto}.fpm-mapwrap{min-height:0;position:relative}.fpm .fpm-map{border:1.5px solid var(--ink);background:#f3e8cc;position:absolute;inset:0;overflow:hidden}.fpm-mapwrap:after,.fpm-stage:after{content:"";pointer-events:none;z-index:1;opacity:.15;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35  0 0 0 0 .27  0 0 0 0 .15  0 0 0 .9 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");position:absolute;inset:0}.fpm-route-sum{background:var(--paper-2);border-bottom:1px solid var(--hair);z-index:2;margin:0;padding:.7rem .9rem;font-size:.93rem;position:sticky;top:0}.fpm-items{margin:0;padding:0;list-style:none}.fpm-item{border-bottom:1px solid var(--hair)}.fpm-item[hidden]{display:none}.fpm-item-main{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;display:flex}.fpm-item-main:hover{background:var(--paper-2)}.fpm-item-main[aria-current=true]{background:var(--paper-2);box-shadow:inset 5px 0 0 var(--wine)}.fpm-item-main:focus-visible{outline-offset:-3px}.fpm-item-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.fpm-item-title{font:600 1.05rem/1.25 var(--serif);color:var(--ink)}.fpm-item-meta{color:var(--ink-3);font-size:.86rem}.fpm-item-sub{color:var(--ink);font-size:.86rem}.fpm-num{background:var(--wine);color:#fff;min-width:1.6rem;height:1.6rem;font:800 .82rem var(--sans);vertical-align:middle;place-items:center;margin-right:.5rem;display:inline-grid}.fpm-thumb{border:1.5px solid var(--ink);flex:none;width:64px;height:64px}.fpm-stamp{cursor:pointer;align-items:center;gap:.5rem;padding:0 .9rem .7rem;font-size:.9rem;font-weight:600;display:flex}.fpm-stamp input{width:1.15rem;height:1.15rem;accent-color:var(--wine)}.fpm-badge{font:700 .7rem/1 var(--sans);letter-spacing:.04em;vertical-align:middle;padding:.25rem .5rem;display:inline-block}.fpm-open{color:#14532d;border:1px solid var(--farm);background:#dff1e4}.fpm-closed{color:#4a4a40;border:1px solid var(--ink-3);background:#efece4}.fpm-new{background:var(--wine);color:#fff}.fpm-checked{color:var(--ink-3);margin:.5rem 0 0;font-size:.82rem}.fpm-legend .fpm-checked{margin:0 0 0 auto;padding:0}.fpm-sample{color:var(--ink-3);margin:.8rem 0 0;font-size:.88rem;position:relative}.fpm-cards .fpm-items{grid-template-columns:repeat(2,1fr);gap:0;display:grid}.fpm-cards .fpm-item{border-right:1px solid var(--hair)}.fpm-cards .fpm-item-main{flex-direction:column;gap:.5rem;height:100%;padding:.7rem}.fpm-cards .fpm-thumb{aspect-ratio:1;width:100%;height:auto}.fpm-pin{cursor:pointer;filter:drop-shadow(0 1.5px #1b262073);width:34px;height:38px;padding:0}.fpm-pin svg{transform-origin:50% 100%;width:100%;height:100%;transition:transform .12s;display:block}.fpm-pin:hover svg,.fpm-pin.is-active svg{transform:scale(1.2)}.fpm-pin.is-active{z-index:5}.fpm-pin.is-stamped svg path:nth-child(2){stroke:#fbf6e9;stroke-width:6px}.fpm-credit{z-index:3;background:var(--paper);border:1.5px solid var(--ink);font:700 .72rem/1 var(--sans);letter-spacing:.02em;color:var(--ink);pointer-events:none;align-items:center;gap:6px;margin:0;padding:3px 8px 3px 5px;display:inline-flex;position:absolute;bottom:10px;left:10px}.fpm-credit svg{flex:none;width:20px;height:20px}.maplibregl-popup-content{font-family:var(--sans);color:var(--ink);border:1px solid var(--ink);background:var(--paper);border-radius:0;min-width:220px;padding:16px 18px 14px;box-shadow:0 6px 24px #0000002e}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--ink)}.maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--ink)}.maplibregl-popup-close-button{width:40px;height:40px;color:var(--ink);font-size:24px}.fpm-pop h3{margin:0 1.6rem .3rem 0;font-size:1.3rem}.fpm-pop p{margin:0 0 .5rem;font-size:.93rem;line-height:1.45}.fpm-pop-meta{color:var(--ink-3)}.fpm-pop-img{float:right;border:1.5px solid var(--ink);width:84px;height:84px;margin:0 0 .4rem .6rem}.fpm-pop-actions{clear:both;flex-wrap:wrap;gap:.5rem;display:flex;margin:.6rem 0 0!important}.fpm-btn{background:var(--wine);border:1.5px solid var(--wine);padding:.55rem .9rem;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-block;color:#fff!important}.fpm-btn:hover{background:var(--wine-dk);border-color:var(--wine-dk)}.fpm-btn-ghost{border-color:var(--ink);background:#fff;color:var(--ink)!important}.fpm-btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff!important}.maplibregl-ctrl-group{border:1.5px solid var(--ink);box-shadow:none!important;border-radius:0!important}.maplibregl-ctrl-group button{width:38px;height:38px}.maplibregl-ctrl-scale{border-color:var(--ink);color:var(--ink);font-family:var(--sans);background:#fbfaf6e0}.fpm.fpm-hero{background:0 0;border:0;flex-direction:column;padding:0;display:flex}.fpm-hero .fpm-stage{background:#efebe2;border:0;flex:none;height:clamp(520px,64vh,640px);position:relative;overflow:hidden}.fpm-hero .fpm-map{border:0;inset:0}.fpm-sample-tag{z-index:3;background:var(--paper);border:1px solid var(--ink);font:700 .68rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);pointer-events:none;padding:8px 10px;position:absolute;top:12px;left:12px}.fpm-legend{border-bottom:1px solid var(--hair);order:-1}.fpm-legend-in{flex-wrap:wrap;align-items:center;gap:4px 20px;padding:10px 0 8px;display:flex}.fpm-legend-h{font:700 .72rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0}.fpm-legend-sub{display:none}.fpm-legend ul{flex-wrap:wrap;gap:0 18px;margin:0;padding:0;list-style:none;display:flex}.fpm-legend button{appearance:none;min-height:40px;font:500 1rem/1 var(--sans);color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:8px 0 5px;display:inline-flex}.fpm-legend button svg{flex:none;width:15px;height:17px}.fpm-legend button:hover{color:var(--ink)}.fpm-legend button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}.fpm-ct{font:400 .8rem/1 var(--sans);color:var(--ink-3);margin-left:2px}.fpm-north{z-index:3;pointer-events:none;width:40px;height:54px;position:absolute;top:14px;right:56px}@media (width<=899px){.fpm-hero .fpm-stage{flex:none;height:min(62vh,500px);min-height:340px}.fpm-north{width:32px;height:44px;top:10px;right:50px}.fpm-credit{top:10px;bottom:auto}.fpm-sample-tag{top:54px;left:10px}}@media (width<=860px){.fpm{--fpm-h:470px;padding:10px}.fpm-tabs{display:inline-flex}.fpm-body{grid-template-columns:1fr;height:auto}.fpm-cards .fpm-body{grid-template-columns:1fr}.fpm-body[data-view=map] .fpm-list{display:none}.fpm-body[data-view=map] .fpm-mapwrap{height:var(--fpm-h)}.fpm-body[data-view=list] .fpm-mapwrap{display:none}.fpm-body[data-view=list] .fpm-list{max-height:75vh}.fpm-search{flex-basis:100%;max-width:none}.fpm.fpm-hero{padding:0}}@media print{body.fpm-printing *{visibility:hidden!important}body.fpm-printing .fpm-print-target,body.fpm-printing .fpm-print-target .fpm-list,body.fpm-printing .fpm-print-target .fpm-list *{visibility:visible!important}body.fpm-printing .fpm-print-target{border:0;width:100%;padding:0;position:absolute;top:0;left:0}body.fpm-printing .fpm-print-target .fpm-body{height:auto;display:block}body.fpm-printing .fpm-print-target .fpm-list{border:0;overflow:visible;max-height:none!important;display:block!important}body.fpm-printing .fpm-print-target .fpm-mapwrap{display:none!important}body.fpm-printing .fpm-item{break-inside:avoid}body.fpm-printing .fpm-print-target .fpm-list:before{content:"Printed route list. Sample data: fictional places.";padding:.5rem 0;font-weight:700;display:block}}
