:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}body{margin:0;overflow:hidden}:root{--selection-blue: #00aaff;--selection-orange: #ff4c26;--accent: var(--selection-orange)}#root{width:100vw;height:100vh}.system-label-wrapper{position:relative;width:0;height:0;overflow:visible;pointer-events:none;-webkit-user-select:none;user-select:none}.system-label{position:absolute;transform:translateY(-50%);left:20px;font-family:Fira Mono,Roboto Mono,IBM Plex Mono,Cousine,Consolas,monospace;font-weight:700;letter-spacing:.02em;line-height:1.15;color:#bcbcb8;font-size:18px;border:1.5px solid var(--accent, #00aaff);border-radius:6px;padding:2px 6px;background:#000;text-shadow:0 1px 0 #000,0 0 6px rgba(255,255,255,.12);white-space:nowrap;-webkit-user-select:none;user-select:none}.ef-small-logo{position:fixed;right:12px;bottom:12px;width:96px;height:96px;opacity:.9;z-index:3000;border-radius:8px;box-shadow:0 2px 10px #000000b3;cursor:default}.ef-top-toolbar{position:fixed;top:10px;right:10px;display:flex;align-items:stretch;gap:8px;z-index:3200}.ef-control-group label{display:flex;align-items:center;gap:6px;font-size:13px}.module-toggle-label{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;font-family:system-ui,sans-serif;letter-spacing:.25px}.ef-control-group .module-toggle-label{font-size:15px}.ef-control-group input[type=checkbox]{transform:translateY(1px)}.ef-toolbar-shifting{display:flex;align-items:stretch;gap:8px;transition:transform .45s cubic-bezier(.25,.8,.25,1);will-change:transform}:root.help-open .ef-toolbar-shifting{transform:translate(calc(-1 * (var(--help-panel-width, 33vw) + 8px)))}.ef-referral{position:relative;display:flex;align-items:center;justify-content:center;padding:6px 14px;background:#0000008c;color:#fff;font-size:13px;font-weight:600;font-family:system-ui,sans-serif;letter-spacing:.5px;border:1px solid rgba(255,255,255,.18);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 6px #00000080;pointer-events:auto;white-space:nowrap;min-height:38px}.ef-referral-code{margin-left:4px;font-weight:700}.ef-referral-copy-btn{margin-left:10px;background:var(--accent);color:#fff;border:none;padding:4px 8px;font-size:12px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;box-shadow:0 1px 3px #0006;transition:background .2s ease,transform .15s ease}.ef-referral-copy-btn:hover{filter:brightness(1.1)}.ef-referral-copy-btn:active{transform:translateY(1px)}.ef-referral-copy-btn.copied{background:#2fa864}.share-route-btn{position:relative;background:var(--accent);color:#fff;border:none;padding:8px 14px;font-size:14px;font-weight:600;letter-spacing:.5px;font-family:system-ui,sans-serif;border-radius:4px;cursor:pointer;box-shadow:0 2px 6px #00000073;display:flex;align-items:center;gap:6px;min-height:38px;transition:filter .2s ease,transform .15s ease,background .3s ease}.share-route-btn:hover:not(:disabled){filter:brightness(1.08)}.share-route-btn:active:not(:disabled){transform:translateY(1px)}.share-route-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.share-feedback{font-size:11px;position:absolute;bottom:-16px;left:0;right:0;text-align:center;color:#fff;opacity:.85;pointer-events:none}@media (max-width: 1200px){:root.help-open .ef-toolbar-shifting{transform:translate(calc(-1 * (var(--help-panel-width, 40vw) + 8px)))}}@media (max-width: 900px){:root.help-open .ef-toolbar-shifting{transform:translate(calc(-1 * (var(--help-panel-width, 50vw) + 8px)))}}@media (max-width: 700px){.ef-top-toolbar{right:50%;transform:translate(50%)}.ef-toolbar-shifting{flex-wrap:wrap;justify-content:center}:root.help-open .ef-toolbar-shifting{transform:translate(calc(-1 * (var(--help-panel-width, 100vw) - 8px)))}}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;background-color:#1a1a1a;color:#fff;font-family:sans-serif}.loading-logo{width:600px;margin-bottom:20px}.loading-status{margin-bottom:10px;font-size:1.2em}.progress-bar-container{width:600px;height:20px;background-color:#333;border-radius:10px;overflow:hidden}.progress-bar{height:100%;background-color:#fff;border-radius:10px;transition:width .2s ease-in-out}.p2p-routing-container{margin-top:10px}.p2p-routing-panel{padding:10px;margin-top:5px;background-color:#191919b3;border:1px solid #555;border-radius:4px;display:flex;flex-direction:column;gap:10px}.p2p-input-group{display:flex;flex-direction:column;gap:5px;width:100%}.p2p-input-group label{font-size:.9em;color:#ccc}.p2p-input-group input,.p2p-input-group select{padding:6px 8px;background-color:#111;border:1px solid #555;color:#e0e0e0;border-radius:3px;box-sizing:border-box;font:500 13px/1.3 Segoe UI,Arial,sans-serif}.p2p-input{width:100%;padding:6px 8px;background:#111;border:1px solid #555;color:#e0e0e0;border-radius:3px;font:500 13px/1.3 Segoe UI,Arial,sans-serif;box-sizing:border-box}.p2p-input:focus{outline:none;border-color:#666}input[type=number].p2p-input::-webkit-outer-spin-button,input[type=number].p2p-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].p2p-input{-moz-appearance:textfield;appearance:textfield}#optimize-for,#algorithm-select{background-color:#111;border:1px solid #555;color:#e0e0e0}#optimize-for:focus,#optimize-for:focus-visible,#algorithm-select:focus,#algorithm-select:focus-visible{outline:none;border-color:#666;background-color:#111;color:#e0e0e0;box-shadow:none}.p2p-calculate-button{padding:8px;background-color:var(--accent);color:#fff;border:none;border-radius:3px;cursor:pointer;text-align:center;font-weight:700}.p2p-stop-button{padding:8px;background-color:var(--accent);color:#fff;border:none;border-radius:3px;cursor:pointer;text-align:center;font-weight:700;margin-top:6px}.p2p-calculate-button:hover{background-color:var(--accent)}.p2p-calculate-button:disabled{background-color:#555;cursor:not-allowed}.p2p-results{margin-top:10px;border-top:1px solid #555;padding-top:10px}.route-summary p{margin:2px 0;font-size:.9em;display:flex;justify-content:space-between}.route-summary p span{font-weight:700;color:var(--accent)}.p2p-copy-buttons{display:flex;gap:5px;margin-top:10px}.p2p-copy-button{flex-grow:1;padding:5px;background-color:#00000040;border:1px solid rgba(0,170,255,.25);color:#fff;cursor:pointer}.p2p-copy-button.active{background-color:var(--accent)}.error{color:#ff4c26;font-weight:700}.neutral-select-wrapper{position:relative;width:100%}.neutral-select-trigger{width:100%;background:#111;border:1px solid #555;color:#e0e0e0;padding:6px 28px 6px 8px;border-radius:3px;cursor:pointer;text-align:left;font:500 13px/1.3 Segoe UI,Arial,sans-serif;display:flex;align-items:center;position:relative}.neutral-select-trigger:focus-visible{outline:none;border-color:#666}.neutral-select-caret{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #888;pointer-events:none}.neutral-select-wrapper.open .neutral-select-caret{transform:translateY(-50%) rotate(180deg)}.neutral-select-dropdown{position:absolute;left:0;top:calc(100% + 4px);width:100%;background:#0f0f0f;border:1px solid #555;border-radius:4px;max-height:200px;overflow-y:auto;z-index:3000;padding:4px 0;box-shadow:0 4px 14px #0000008c}.neutral-select-option{padding:6px 10px;cursor:pointer;font-size:.85rem;color:#d4d4d4;display:flex;align-items:center}.neutral-select-option.hover,.neutral-select-option:hover{background:#2a2a2a;color:#fff}.neutral-select-option.selected:before{content:"";width:6px;height:6px;border-radius:50%;background:#999;margin-right:6px}.neutral-select-option.selected{font-weight:600}.autocomplete-container{position:relative;width:100%}.suggestions-list{position:absolute;top:100%;left:0;right:0;background-color:#2d2d2d;border:1px solid #555;border-top:none;list-style-type:none;padding:0;margin:0;max-height:200px;overflow-y:auto;z-index:1000}.suggestions-list li{padding:8px 12px;cursor:pointer;color:#ddd}.suggestions-list li:hover{background-color:#555}.scout-optimizer-container{margin-top:10px}.scout-optimizer-panel{padding:10px;margin-top:5px;background-color:#191919b3;border:1px solid #555;border-radius:4px;display:flex;flex-direction:column;gap:10px}.scout-optimizer-panel.compact{font-size:.8em;gap:6px}.scout-optimizer-panel.compact .scout-input-row{display:none}.scout-optimizer-panel.compact .scout-metrics{font-size:.85em}.scout-optimizer-panel.compact .scout-status{max-height:90px}.scout-optimizer-panel.compact .scout-worker-grid{gap:3px}.scout-optimizer-panel{max-height:calc(100vh - 80px);overflow-y:auto}.scout-input-row{display:flex;flex-direction:column;gap:5px;width:100%}.scout-optimizer-panel label{font-size:.9em;color:#ccc}.scout-actions{display:flex;gap:6px;flex-wrap:wrap}.scout-button{padding:8px;background-color:var(--accent);color:#fff;border:none;border-radius:3px;cursor:pointer;font-weight:700}.scout-button:disabled{background:#555;cursor:not-allowed}.scout-status{font-size:.75rem;color:#bbb;white-space:pre-line;max-height:120px;overflow-y:auto;border:1px solid #444;padding:6px;background:#0d0d0d}.scout-warning{color:#ffa640;font-size:.75rem}.scout-copy-buttons{display:flex;gap:5px;flex-wrap:wrap}.scout-copy-buttons button{flex-grow:1;padding:5px;background:#00000040;border:1px solid rgba(0,170,255,.25);color:#fff;cursor:pointer}.scout-copy-buttons button.active{background:var(--accent)}.scout-optimizer-panel .scout-grid-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:100%}.scout-optimizer-panel .scout-grid-buttons .p2p-copy-button{flex-grow:0;width:100%}.scout-worker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:4px;width:100%}.scout-worker-cell{font-size:.65rem;line-height:1.1;text-align:center;padding:3px 2px;border:1px solid #444;border-radius:3px;background:#252525;color:#ddd;position:relative}.scout-worker-cell.running{background:#123d18;border-color:#1f6a27}.scout-worker-cell.restarting{background:#4a3808;border-color:#7a5c10}.scout-worker-cell.baseline{background:#0a2d45;border-color:#134b70}.scout-worker-cell.done{background:#333;border-color:#555}.scout-worker-cell.idle{background:#2a2a2a;border-color:#444}.scout-worker-cell span{display:block}.scout-worker-cell .scout-worker-time{font-size:.55rem;opacity:.8}:root[data-accent=orange] .help-toggle-button{background:var(--accent)}:root[data-accent=blue] .help-toggle-button{background:var(--accent)}.help-toggle-button{position:relative;z-index:4000;color:#fff;border:none;padding:8px 14px;border-radius:4px;cursor:pointer;font-weight:600;box-shadow:0 2px 6px #0006}.help-toggle-button:hover{filter:brightness(1.1)}.help-toggle-button:active{transform:translateY(1px)}.help-panel-container{position:fixed;top:0;right:0;width:33vw;max-width:520px;min-width:340px;height:100vh;background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#eee;z-index:3500;display:flex;flex-direction:column;border-left:2px solid var(--accent);box-shadow:-4px 0 12px #00000080;font-size:13px;margin:0}.help-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--accent)}.help-panel-header h2{margin:0;font-size:15px;letter-spacing:.5px;color:var(--accent)}.help-close-btn{background:none;color:#fff;border:none;font-size:18px;cursor:pointer;line-height:1;padding:4px 6px}.help-close-btn:hover{color:var(--accent)}.help-scroll{flex:1;overflow-y:auto;padding:12px 14px 60px;scrollbar-width:thin}.help-scroll::-webkit-scrollbar{width:8px}.help-scroll::-webkit-scrollbar-track{background:#ffffff0d}.help-scroll::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}.accordion-section{border:1px solid rgba(255,255,255,.15);border-radius:6px;margin-bottom:10px;overflow:hidden}.accordion-header{cursor:pointer;padding:8px 10px;font-weight:600;display:flex;align-items:center;gap:6px;background:#ffffff0f;color:var(--accent);-webkit-user-select:none;user-select:none}.accordion-header:hover{background:#ffffff1a}.accordion-header .chevron{transition:transform .25s ease;font-size:11px}.accordion-header.open .chevron{transform:rotate(90deg)}.accordion-body{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s ease;background:#00000040}.accordion-body.open{padding:8px 12px 12px}.accordion-body-inner{opacity:0;transform:translateY(-4px);transition:opacity .35s ease,transform .35s ease}.accordion-body.open .accordion-body-inner{opacity:1;transform:translateY(0)}.subsection{margin-top:10px;border-left:2px solid var(--accent);padding:6px 10px 8px;background:#ffffff08;border-radius:4px}.subsection-title{font-weight:600;cursor:pointer;color:var(--accent);display:flex;align-items:center;gap:4px;font-size:12px}.subsection-title:hover{text-decoration:underline}.subsection-content{margin-top:6px;line-height:1.4;overflow:hidden;max-height:0;opacity:0;transition:max-height .35s ease,opacity .3s ease}.subsection-content.open{opacity:1}.code-inline{font-family:monospace;background:#ffffff1a;padding:1px 4px;border-radius:3px;font-size:12px}.help-footer{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;font-size:11px;color:#bbb;border-top:1px solid rgba(255,255,255,.15);background:#00000080}.help-footer a{color:var(--accent);text-decoration:none}.help-footer a:hover{text-decoration:underline}@media (max-width: 1200px){.help-panel-container{width:40vw}}@media (max-width: 900px){.help-panel-container{width:50vw}}@media (max-width: 700px){.help-panel-container{width:100vw}}
