.navbar{z-index:100;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:10px 48px;display:flex}.navbar-brand{flex-direction:column;display:flex}.navbar-title{color:var(--cream);font-size:18px;line-height:1.2}.navbar-subtitle{color:var(--white);font-size:12px;font-style:italic}.navbar-alpha-badge{color:var(--gold);border:1px solid var(--gold);border-radius:var(--radius-sm,4px);vertical-align:middle;letter-spacing:.05em;margin-left:6px;padding:1px 6px;font-size:10px}.navbar-discord{color:var(--muted);align-items:center;gap:8px;text-decoration:none;transition:color .15s;display:flex}.navbar-discord:hover{color:var(--white)}.navbar-discord-icon{flex-shrink:0}.navbar-discord-text{text-align:right;font-size:12px;line-height:1.3}#app{height:100vh;overflow-y:auto}.page-wrapper{max-width:1200px;margin:0 auto;padding:40px 48px}.page-title{margin-top:8px;margin-bottom:32px}.page-title h1{color:var(--white);margin-bottom:4px;font-size:24px}.page-title p{color:var(--white);max-width:700px;font-size:14px;line-height:1.5}.hero{gap:24px;margin-bottom:28px;display:flex}.controls{flex-direction:column;width:340px;min-width:340px;max-height:580px;display:flex;position:relative;overflow-y:auto}.controls-footer{background:var(--bg);z-index:2;flex-shrink:0;padding-top:12px;position:sticky;bottom:0}.route-row-destination{margin-bottom:8px;margin-left:32px}.controls input[type=text],.controls input[type=number]{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--white);font-family:var(--font);background:#ffffff08;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s,background .2s,box-shadow .2s}.controls input[type=text]:focus,.controls input[type=number]:focus{box-shadow:none;background:#ffffff0d;border-color:#fff3}.controls input::placeholder{color:var(--muted)}.action-row{gap:8px;margin-top:4px;display:flex}.error-msg{color:var(--red);padding:8px 0;font-size:12px}.info-columns{gap:48px;margin-top:48px;margin-bottom:48px;display:flex}.info-column{flex:1}.info-column h2{color:var(--white);margin-bottom:12px;font-size:16px}.info-column ul{padding:0;list-style:none}.info-column li{color:var(--white);padding:4px 0;font-size:14px}.roadmap-disclaimer{color:var(--red);margin-bottom:12px;padding-top:40px;font-size:14px;line-height:1.5}.mobile-disclaimer{text-align:center;flex-direction:column;align-items:center;padding:12px 24px 32px;display:none}.mobile-disclaimer-card{max-width:320px}.mobile-disclaimer-card h2{color:var(--white);margin-bottom:12px;font-size:20px}.mobile-disclaimer-card p{color:var(--muted);font-size:14px;line-height:1.6}.mobile-share-btn{background:var(--white);color:#000;border-radius:var(--radius);font-family:var(--font);cursor:pointer;border:none;margin-top:24px;padding:12px 32px;font-size:15px;transition:background .2s}.mobile-share-btn i{margin-right:6px}.mobile-share-btn:active{background:var(--accent-hover)}.mobile-share-hint{color:var(--muted);opacity:.7;margin-top:12px;font-size:12px;line-height:1.5}.mobile-hamster{border-radius:var(--radius);width:200px;margin-top:24px}.mobile-showcase{text-align:center;width:100vw;margin-top:48px;margin-left:-24px;margin-right:-24px;overflow-x:hidden}.mobile-showcase-title{color:var(--white);margin-top:32px;font-size:18px}.mobile-showcase-item{margin-bottom:32px}.mobile-showcase-item img{border-top:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;width:100%}.mobile-showcase-item p{color:var(--white);margin-top:10px;padding:0 24px;font-size:14px;line-height:1.5}.mobile-showcase-extras{color:var(--white);padding:0 24px 32px;font-size:14px;line-height:1.6}.error-overlay{background:var(--surface);min-height:100vh;font-family:var(--font);justify-content:center;align-items:center;padding:2rem;display:flex}.error-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:100%;max-width:480px;padding:2rem}.error-heading{color:var(--red);margin:0 0 .75rem;font-size:1.25rem}.error-detail{color:var(--muted);word-break:break-word;margin:0 0 1.5rem;font-size:.875rem}.error-reload{background:var(--red);color:var(--white);border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-family:var(--font);border:none;padding:.5rem 1.5rem}.site-footer{border-top:1px solid var(--border);color:var(--white);justify-content:space-between;align-items:center;padding:24px 0 48px;font-size:12px;display:flex}.site-footer a{color:var(--gold);text-decoration:none}.site-footer a:hover{text-decoration:underline}.route-inputs{flex-direction:column;gap:6px;margin-bottom:8px;padding-left:32px;display:flex;position:relative}.route-section{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;min-height:0;padding-left:32px;display:flex;position:relative;overflow-y:auto}.route-section::-webkit-scrollbar{display:none}.controls:before{content:"";background:var(--border);pointer-events:none;z-index:0;width:2px;position:absolute;top:20px;bottom:0;left:15px}.route-row{align-items:center;gap:0;display:flex;position:relative}.timeline-col{flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex;position:absolute;left:-32px}.timeline-node{z-index:1;width:10px;height:10px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;flex-shrink:0;transition:transform .2s}.timeline-node-start{background:var(--green)}.timeline-node-end{background:var(--red)}.timeline-line-segment{display:none}.day-header{color:var(--cream);align-items:center;gap:4px;margin-top:10px;margin-bottom:4px;font-size:12px;display:flex}.waypoint-block{margin-top:0;padding:3px 0;transition:opacity .2s}.wp-input-row{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.wp-input-row input[type=text]{border:1px solid var(--border);border-radius:var(--radius);min-width:0;color:var(--white);font-family:var(--font);background:0 0;outline:none;flex:1;padding:10px 14px;font-size:14px}.wp-input-row input[type=text]:focus{border-color:#fff3}.place-input-wrap{flex:1;min-width:0;position:relative}.place-input-wrap input[type=text]{width:100%;padding-right:30px}.place-input-indicators{pointer-events:none;z-index:1;gap:3px;display:flex;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.place-input-icon{opacity:.85;flex-shrink:0;justify-content:center;align-items:center;display:flex}.place-input-hint{pointer-events:none;color:var(--muted);opacity:.5;font-size:12px;position:absolute;top:50%;left:110px;right:30px;overflow:hidden;transform:translateY(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 8px calc(100% - 8px),#0000);mask-image:linear-gradient(90deg,#0000,#000 8px calc(100% - 8px),#0000)}.place-input-hint-scroll{white-space:nowrap;animation:8s linear infinite scroll-left;display:inline-block}@keyframes scroll-left{0%{transform:translate(100%)}to{transform:translate(-100%)}}.place-input-clear{width:20px;height:20px;color:var(--muted);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .2s,background .2s,opacity .2s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.place-input-wrap:hover .place-input-clear{opacity:1}.place-input-clear:hover{color:var(--red);opacity:1;background:#ef44441a}.wp-context-menu{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #00000080}.wp-context-item{width:100%;font-size:14px;font-family:var(--font);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:7px 14px;transition:background .1s,color .1s;display:block}.wp-context-item:hover{color:var(--text);background:#ffffff0d}.wp-context-item-active{color:var(--white)}.wp-context-item-active:before{content:"✓  ";font-size:10px}.wp-context-rest{color:var(--muted);border-top:1px solid var(--border);align-items:center;gap:6px;margin-top:2px;padding:6px 14px;font-size:12px;display:flex}.wp-context-rest input{border:1px solid var(--border);width:40px;color:var(--text);font-family:var(--font);text-align:right;background:0 0;border-radius:4px;outline:none;padding:2px 4px;font-size:12px}.wp-arrows{flex-direction:column;flex-shrink:0;gap:1px;display:flex}.wp-arrow-btn{width:20px;height:14px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:flex}.wp-arrow-btn:hover:not(:disabled){color:var(--text);background:var(--surface)}.wp-arrow-btn:disabled{opacity:.2;cursor:default}.settings-inline{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.settings-inline-field{flex-direction:column;flex:1;gap:4px;display:flex}.settings-slider-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.settings-slider-row .settings-range{flex:1;margin:0}.settings-inline-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;font-size:10px}.settings-inline-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--white);font-family:var(--font);text-align:center;background:#ffffff08;outline:none;padding:7px 8px;font-size:14px;transition:border-color .2s,background .2s,box-shadow .2s}.settings-inline-input:focus{background:#ffffff0d;border-color:#fff3;box-shadow:0 0 0 3px #ffffff08}.settings-range{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px;margin-top:8px;margin-bottom:4px}.settings-range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--white);border:2px solid var(--bg);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:transform .15s}.settings-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.settings-range::-moz-range-thumb{background:var(--white);border:2px solid var(--bg);cursor:pointer;border-radius:50%;width:14px;height:14px}.btn-calculate{background:var(--white);color:#000;border-radius:var(--radius);font-family:var(--font);cursor:pointer;border:none;flex:1;padding:11px 16px;font-size:14px;transition:background .2s,transform .1s,opacity .2s}.btn-calculate:hover:not(:disabled){background:var(--accent-hover)}.btn-calculate:active:not(:disabled){transform:scale(.98)}.btn-calculate:disabled{opacity:.35;cursor:not-allowed}.btn-pull-stations{color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);cursor:pointer;text-align:center;white-space:nowrap;background:0 0;padding:10px 12px;font-size:14px;line-height:1.3;transition:border-color .2s,color .2s,background .2s;position:relative;overflow:hidden}.btn-pull-stations:hover:not(:disabled){color:var(--text);background:#ffffff0a;border-color:#ffffff40}.btn-pull-stations:disabled{cursor:not-allowed;color:var(--muted);opacity:.5}.btn-pull-stations.cooldown{opacity:.6}.cooldown-sweep{pointer-events:none;background:#ffffff0f;animation:10s linear forwards sweep-left;position:absolute;inset:0}@keyframes sweep-left{0%{transform:translate(0)}to{transform:translate(-100%)}}.add-stop-btn{border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted);font-family:var(--font);cursor:pointer;text-align:center;background:0 0;margin-top:4px;padding:6px 12px;font-size:13px;transition:color .2s,border-color .2s,background .2s}.add-stop-btn:hover{color:var(--text);background:#ffffff05;border-color:#fff3}.btn-clear-route{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0 12px;font-size:13px;transition:color .2s,border-color .2s,background .2s;display:flex}.btn-clear-route:hover{color:var(--red);background:#ef44440d;border-color:#ef44444d}.map-section{flex-direction:column;flex:1;min-width:0;display:flex}.map-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.map-toolbar-right{align-items:center;gap:6px;display:flex}.map-mode-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:3px;display:flex}.map-mode-btn{font-size:14px;font-family:var(--font);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 8px;transition:color .15s,background .15s}.map-mode-btn:hover{color:var(--text)}.map-mode-btn.active{color:var(--white);background:#ffffff0f}.map-mode-group{align-items:center;gap:10px;display:flex}.map-container{border-radius:var(--radius);contain:layout style;flex:1;min-height:500px;position:relative;overflow:hidden}#map{width:100%;height:100%}.map-pin{border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:24px;height:24px;display:flex;transform:rotate(-45deg);box-shadow:0 1px 4px #0006}.map-pin i{color:#fff;font-size:10px;transform:rotate(45deg)}.map-dot{border:2px solid var(--bg);border-radius:50%;width:10px;height:10px;box-shadow:0 1px 3px #0000004d}.map-status{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:none;position:absolute;bottom:12px;left:12px;box-shadow:0 2px 8px #0000004d}.map-status:before{content:"";border:2px solid var(--blue);border-top-color:#0000;border-radius:50%;width:8px;height:8px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.mapboxgl-map{font-family:var(--font)!important}.mapboxgl-ctrl-logo,.mapboxgl-ctrl-attrib{display:none!important}.trip-popup .mapboxgl-popup-content{background:var(--surface);color:var(--white);font-family:var(--font);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:12px;box-shadow:0 2px 8px #0006}.trip-popup.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:var(--surface)}.trip-popup.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{border-bottom-color:var(--surface)}.trip-popup.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-right-color:var(--surface)}.trip-popup.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:var(--surface)}.trip-popup .mapboxgl-popup-close-button{color:var(--muted);padding:2px 6px;font-size:16px;top:2px;right:2px}.trip-popup .mapboxgl-popup-close-button:hover{color:var(--white);background:0 0}.map-context-popup{flex-direction:column;gap:2px;display:flex}.map-context-btn{width:100%;font-size:14px;font-family:var(--font);color:var(--text);cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;border-radius:4px;padding:6px 10px;transition:background .12s,color .12s}.map-context-btn:hover{color:var(--white);background:#ffffff14}.export-dropdown{position:relative}.export-dropdown>button,.export-dropdown-btn{background:var(--surface);color:var(--white)}.export-dropdown>button:hover:not(:disabled),.export-dropdown-btn:hover:not(:disabled){background:var(--surface);color:var(--white);border-color:#fff3}.export-dropdown-menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #0006}.export-dropdown-item{width:100%;font-size:14px;font-family:var(--font);color:var(--text);cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;padding:7px 10px;transition:background .12s,color .12s;display:flex}.export-dropdown-item:hover:not(:disabled){color:var(--white);background:#ffffff14}.export-dropdown-item-active{color:var(--white)}.export-dropdown-item:disabled{color:var(--muted);cursor:not-allowed;opacity:.5}.price-cell{align-items:center;gap:2px;display:inline-flex}.price-input{border-radius:var(--radius-sm);width:52px;color:var(--text);font-family:var(--font);text-align:right;background:0 0;border:1px solid #0000;outline:none;padding:2px 4px;font-size:14px;transition:border-color .15s}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}.price-input:hover{border-color:var(--border)}.price-input:focus{border-color:var(--blue);background:var(--surface)}#summary-bar:not(:empty){z-index:10;background:var(--bg);padding:0;position:sticky;bottom:0}.summary{padding:16px 0}.summary-hero{color:var(--white);font-size:32px;line-height:1.2}.summary-hero-label{color:var(--white);font-size:14px}.summary-details{align-items:center;gap:6px;margin-top:4px;display:flex}.summary-detail,.summary-sep{color:var(--muted);font-size:14px}.breakdown{background:0 0;border:none;margin-bottom:80px;padding:0;overflow:hidden}.cost-table{table-layout:auto;border-collapse:collapse;width:100%;font-size:14px}.cost-table th{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left;white-space:nowrap;border-bottom:none;padding:10px 0;font-size:12px}.cost-table th:nth-child(n+2){text-align:right}.cost-table td{vertical-align:middle;border-bottom:none;padding:12px 0}.cost-table td:nth-child(n+2){text-align:right}.cost-table tbody tr:not(.overnight-row):not(.agg-row):hover{background:#ffffff08}.cost-table tr:last-child td{border-bottom:none}.country-cell{color:var(--white);align-items:center;gap:8px;display:flex}.country-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.d-badge{color:var(--blue);border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-mono);border:1px solid #60a5fa4d;flex-shrink:0;padding:2px 7px}.agg-row td{color:var(--muted);border-top:1px solid var(--border);padding-top:8px;font-size:14px}.agg-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:4px}.agg-value{color:var(--white)}tr:has(+.overnight-row) td{border-bottom:none}.overnight-row td{color:var(--blue);border-bottom:none;padding:10px 16px 10px 0;font-size:12px;font-style:italic}.overnight-cell{align-items:center;gap:12px;display:flex}.overnight-text{white-space:nowrap;flex-shrink:0}.overnight-right{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.overnight-booking{color:var(--blue);font-size:11px;font-style:normal;text-decoration:none}.overnight-booking:hover{text-decoration:underline}.overnight-cost-inline{white-space:nowrap;color:var(--blue);align-items:center;font-size:14px;font-style:normal;display:flex}.overnight-cost-inline input{border-radius:var(--radius-sm);width:52px;color:var(--blue);font-family:var(--font);text-align:right;background:0 0;border:1px solid #0000;outline:none;padding:2px 4px;font-size:14px;transition:border-color .15s}.overnight-cost-inline input::placeholder{color:#60a5fa4d}.overnight-cost-inline input:hover{border-color:var(--border)}.overnight-cost-inline input:focus{border-color:var(--blue);background:var(--surface)}.overnight-line{background:var(--blue);border-radius:1px;flex:1;height:2px}.ac-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);z-index:20;scrollbar-width:none;-ms-overflow-style:none;border-top:none;max-height:240px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000080}.ac-dropdown::-webkit-scrollbar{display:none}.ac-item{cursor:pointer;flex-direction:column;gap:1px;padding:8px 14px;transition:background .1s;display:flex}.ac-item:hover,.ac-item-selected{background:#ffffff0a}.ac-main{color:var(--white);font-size:14px}.ac-secondary{color:var(--muted);font-size:12px}.page-wrapper{scrollbar-width:none;-ms-overflow-style:none}.page-wrapper::-webkit-scrollbar{display:none}@media (width<=900px){.hero,.page-title,#summary-bar,#bottom-panel,.info-columns{display:none}.site-footer{text-align:center;flex-direction:column;gap:8px;padding:16px 24px}.mobile-disclaimer{display:flex}}:root{--bg:#0a0a0a;--surface:#111114;--border:#ffffff14;--text:#e4e4e7;--muted:#71717a;--cream:beige;--gold:#d4c17a;--accent:#fff;--accent-hover:#e4e4e7;--blue:#60a5fa;--green:#34d399;--red:#ef4444;--purple:#c084fc;--pink:#f472b6;--cyan:#22d3ee;--orange:#fb923c;--white:#fff;--radius:8px;--radius-sm:4px;--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"DM Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;font-weight:400;line-height:1.6}
