@font-face{font-family:Inter;src:url(fonts/inter-regular.ttf);font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter-semibold.ttf);font-weight:600 900;font-display:swap}
@font-face{font-family:Condensed;src:url(fonts/roboto-condensed.ttf);font-weight:400;font-display:swap}
@font-face{font-family:Condensed;src:url(fonts/roboto-condensed-bold.ttf);font-weight:600 900;font-display:swap}
@font-face{font-family:Anton;src:url(fonts/anton.ttf);font-display:swap}
@font-face{font-family:Pixel;src:url(pixel.ttf);font-display:swap}
@font-face{font-family:Cinzel;src:url(fonts/cinzel-bold.ttf);font-display:swap}
*{box-sizing:border-box}html,body,#tm-app,#tm-map{margin:0;width:100%;height:100%;overflow:hidden}body{background:#202426;font-family:Inter,Arial,sans-serif}button,input,select{font:inherit}button,select{cursor:pointer;touch-action:manipulation}button{transition:background .12s,color .12s;min-height:36px}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#tm-app [hidden]{display:none!important}
#tm-app[data-theme] button{ text-align:center;justify-content:center;align-items:center }#tm-app[data-theme] button.tm-result>div{flex:1;text-align:center}#tm-app[data-theme] button.tm-chip{padding-left:10px;padding-right:10px;text-align:center;justify-content:center}
#tm-app{--paper:#f6f6f5;--inset:#e9e9e7;--hover:#dcdedc;--ink:#1e2125;--muted:#595e64;--edge:#cdcfce;--accent:#246dd4;--on-accent:#fff;--radius:14px;--font:Inter,Arial,sans-serif;--heading:Inter,Arial,sans-serif;--shadow:0 5px 20px #0003;--panel-width:360px;font:13px/1.45 var(--font);color:var(--ink)}
#tm-app button,#tm-app input,#tm-app select{color:var(--ink)}
.tm-shade,.tm-theme-overlay{pointer-events:none;position:absolute;inset:0;z-index:1}
.tm-topbar{position:absolute;z-index:3;top:12px;left:12px;display:flex;align-items:center;gap:10px;width:var(--panel-width);max-width:calc(100% - 24px);min-height:56px;padding:8px;background:var(--paper);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow)}
.tm-icon-button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:0;border-radius:8px;background:var(--inset)}.tm-icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.tm-place{min-width:0;flex:1}.tm-place small,.tm-place strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tm-place small{font-size:9px;letter-spacing:.1em;color:var(--muted)}.tm-place strong{font-size:13px;font-weight:600}.tm-gps{display:flex;align-items:center;gap:4px;font:600 9px Inter,sans-serif;color:var(--muted)}.tm-gps i{display:block;width:6px;height:6px;border-radius:50%;background:#90979e}.tm-gps.ready i{background:#23834a}.tm-gps.ready{color:var(--ink)}
.tm-search-panel,.tm-chargers-panel,.tm-share-panel{position:absolute;z-index:5;top:80px;left:12px;width:var(--panel-width);max-width:calc(100% - 24px);max-height:calc(100dvh - 94px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:16px;background:var(--paper);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow)}
.tm-search-panel{visibility:hidden;opacity:0;transform:translateX(-18px);transition:transform .2s ease,opacity .2s ease,visibility .2s}.tm-search-panel.open{visibility:visible;opacity:1;transform:none}
.tm-panel-head{display:flex;align-items:center;gap:12px;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--edge)}.tm-panel-head>div{min-width:0}.tm-panel-head small{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em}.tm-panel-head strong{display:block;font:600 22px/1.25 var(--heading)}.tm-panel-head button{flex:0 0 32px;min-height:32px;height:32px;padding:0;border:0;border-radius:50%;background:var(--inset);font:24px Inter,sans-serif}
.tm-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.tm-tools>.tm-chip{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:38px;white-space:nowrap;font-size:11px}.tm-tools b{font-family:Inter,sans-serif;font-size:17px}.tm-tools #tm-evergo{grid-column:1/-1}.tm-tools label{display:flex;align-items:center;gap:10px;grid-column:1/-1;color:var(--muted);font-size:11px}.tm-tools label>span{flex:0 0 38px}.tm-tools select{min-width:0;flex:1;width:100%;height:36px;padding:4px 8px;border:1px solid var(--edge);border-radius:6px;background:var(--inset);font-size:12px}
.tm-chip,.tm-restore button,.tm-stop-row button,.tm-trip-tools button{border:1px solid var(--edge);border-radius:7px;padding:7px 10px;background:var(--inset);font:600 12px/1.3 var(--font)}.tm-chip:hover,.tm-result:hover,.tm-trip-tools button:hover{background:var(--hover)}#tm-compass{width:100%;font-size:10px;min-height:31px;margin:0 0 12px;background:transparent;color:var(--muted)}
.tm-search-box{display:flex;align-items:center;gap:8px;min-height:47px;width:100%;padding:0 10px;background:var(--inset);border:1px solid var(--edge);border-radius:9px}.tm-search-box>span{font:23px Inter,sans-serif}.tm-search-box input{min-width:0;width:100%;height:45px;background:transparent;border:0;outline:none;font:14px var(--font)}.tm-search-box input::placeholder{color:var(--muted);opacity:1}.tm-search-box button{flex:0 0 24px;min-height:28px;padding:0;border:0;background:transparent;font:20px Inter,sans-serif}
.tm-search-state,.tm-note{color:var(--muted);font-size:11px;line-height:1.5;margin:10px 0}.tm-note a{color:inherit}.tm-results{display:grid;gap:7px;margin:9px 0}.tm-result{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-width:0;min-height:64px;padding:10px;border:1px solid var(--edge);border-radius:8px;background:var(--inset)}.tm-result>div{flex:1;min-width:0}.tm-result strong,.tm-result span{display:block;overflow-wrap:anywhere}.tm-result strong{font-size:14px;font-weight:600}.tm-result span{font-size:11px;color:var(--muted);margin-top:3px}.tm-result-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;font:24px Inter,sans-serif;font-style:normal}.tm-authentic-icon img{width:34px;height:34px;object-fit:contain}
.tm-selected{margin-top:12px;padding:12px;border:1px solid var(--edge);border-radius:9px;background:var(--inset)}.tm-selected>small{display:block;font-size:9px;letter-spacing:.12em;color:var(--muted)}.tm-selected>strong{display:block;margin-top:3px;font:600 17px/1.3 var(--heading);overflow-wrap:anywhere}.tm-selected>span{display:block;font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:4px}
/* Metrics use two columns plus a full-width arrival row: no font can overflow its cell. */
.tm-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px;padding:12px 0;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}.tm-preview>div{min-width:0}.tm-preview>div:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px}.tm-preview small{display:block;font-size:9px;color:var(--muted);letter-spacing:.05em}.tm-preview strong{display:block;white-space:normal;overflow-wrap:anywhere;font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums;color:var(--ink)}
.tm-primary{display:block;width:100%;min-height:42px;margin-top:10px;padding:10px;border:0;border-radius:8px;background:var(--accent);color:var(--on-accent)!important;font:600 13px/1.3 var(--font)}.tm-secondary{background:var(--paper);color:var(--ink)!important;border:1px solid var(--edge)}#tm-save-home,#tm-clear-candidate{width:100%;margin-top:7px;font-size:11px}.tm-stop-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--edge);padding:10px 0;font-size:11px}.tm-stop-row span{min-width:0;overflow-wrap:anywhere}.tm-restore{padding:10px;margin:10px 0;background:var(--inset);border:1px solid var(--edge);display:flex;gap:6px;flex-wrap:wrap}.tm-restore span{flex-basis:100%;font-size:11px}.tm-restore button{font-size:10px}
.tm-guidance{position:absolute;z-index:4;top:80px;left:12px;width:var(--panel-width);max-width:calc(100% - 24px);overflow:hidden;border:1px solid var(--edge);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow)}.tm-turn{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--edge);background:var(--paper)}.tm-turn>div:last-child{min-width:0;flex:1}.tm-turn-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;font:36px/1 Inter,Arial,sans-serif;color:var(--ink)}.tm-turn small{font-size:12px;font-weight:600;color:var(--muted)}.tm-turn strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font:600 15px/1.35 var(--font)}.tm-trip{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:8px;padding:10px 12px}.tm-trip>div{min-width:0}.tm-trip small{display:block;font-size:8px;color:var(--muted)}.tm-trip strong{display:block;font-size:13px;line-height:1.5;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.tm-trip-tools{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px}.tm-trip-tools button{flex:1;min-width:90px;font-size:10px;min-height:32px}.tm-trip-tools span{flex-basis:100%;font-size:9px;color:var(--muted)}#tm-cancel{color:var(--ink);background:var(--inset)}#tm-resume-stop{margin:0;border-radius:0}
.tm-controls{position:absolute;z-index:4;left:12px;bottom:24px;display:flex;flex-direction:column;gap:7px}.tm-control,.tm-speedometer{width:58px;height:58px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);color:var(--ink)}.tm-control{padding:0;display:grid;place-items:center}.tm-control.active{color:var(--accent)}.tm-control svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.tm-speedometer{display:flex;flex-direction:column;align-items:center;justify-content:center}.tm-speedometer strong{font:600 23px/1.1 var(--font);color:var(--ink)}.tm-speedometer small{font:9px/1.5 Inter,sans-serif;color:var(--muted)}
.tm-charger-mode{display:flex;flex-direction:column;gap:7px;font-size:11px}.tm-charger-mode select{width:100%;padding:9px;background:var(--inset);border:1px solid var(--edge);border-radius:6px}.tm-charger-card{padding:12px;border:1px solid var(--edge);background:var(--inset);border-radius:8px}.tm-charger-card>strong{display:block;font-size:14px;margin:8px 0}.tm-charger-card p{font-size:11px;color:var(--muted);line-height:1.5}.tm-detour{display:inline-block;font:600 10px/1.4 var(--font);padding:4px 7px;background:var(--paper);color:var(--ink);border:1px solid var(--edge)}
.tm-qr-frame{display:grid;place-items:center;background:white;margin:12px auto;padding:12px;width:224px;height:224px;max-width:100%;border-radius:4px}.tm-qr-frame img{width:200px;height:200px;max-width:100%;object-fit:contain}
.tm-permission{position:absolute;z-index:7;bottom:24px;left:50%;transform:translateX(-50%);width:320px;max-width:calc(100% - 100px);padding:16px;border:1px solid var(--edge);background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}.tm-permission strong{font:600 17px/1.4 var(--heading)}.tm-permission span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.tm-toast{position:absolute;z-index:10;bottom:18px;left:50%;transform:translate(-50%,10px);max-width:75%;padding:10px 15px;background:var(--paper);border:1px solid var(--edge);box-shadow:var(--shadow);border-radius:var(--radius);font-size:12px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.tm-toast.show{opacity:1;transform:translate(-50%,0)}
.tm-pin{display:grid;place-items:center;width:28px;height:28px;background:#347ddb;color:white;border:2px solid white;border-radius:50%;font:700 15px Inter,sans-serif;box-shadow:0 2px 5px #0006}.tm-stop-pin{background:#297445}.tm-final-pin{background:#b23c38}.tm-candidate-pin{animation:pin-in .35s ease-out}@keyframes pin-in{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
.tm-vehicle{width:44px;height:44px;display:grid;place-items:center;filter:drop-shadow(0 2px 2px #0008)}.tm-vehicle-arrow{position:relative;width:34px;height:42px;background:#e6363c;clip-path:polygon(50% 0,96% 96%,50% 76%,4% 96%)}.tm-vehicle-arrow:after{content:'';position:absolute;inset:7px 9px 12px;background:#fff8;clip-path:polygon(50% 0,100% 100%,50% 76%,0 100%)}
.maplibregl-ctrl-attrib{font:9px Inter,sans-serif!important}.maplibregl-ctrl-bottom-right{bottom:4px!important}

/* GTA V / pause-map menu: blue identity banner, black list, white active row. */
#tm-app[data-theme=gta]{--paper:#101114;--inset:#22252b;--hover:#343a43;--ink:#fff;--muted:#c1c9d4;--edge:#49515d;--accent:#4687c6;--radius:0px;--font:Condensed,Arial,sans-serif;--heading:Anton,Impact,sans-serif;--shadow:6px 6px 0 #0005}
#tm-app[data-theme=gta] .tm-panel-head{background:linear-gradient(135deg,#13335b,#417fad);margin:-16px -16px 14px;padding:20px 16px;border:0}.tm-panel-head strong{letter-spacing:-.03em}
#tm-app[data-theme=gta] .tm-panel-head strong{font-size:27px;font-weight:400;letter-spacing:.02em;text-transform:uppercase;text-shadow:2px 2px #10223a}
#tm-app[data-theme=gta] :is(button,.tm-result,.tm-search-box,.tm-selected,select){border-radius:0}#tm-app[data-theme=gta] .tm-tools{gap:2px}#tm-app[data-theme=gta] .tm-chip{border:0;border-bottom:1px solid #4d5560;text-transform:uppercase;text-align:left;justify-content:flex-start;padding-left:12px;font-weight:600}
#tm-app[data-theme=gta] :is(.tm-chip,.tm-result,.tm-trip-tools button):hover{background:#fff;color:#14171c}#tm-app[data-theme=gta] .tm-result:hover span{color:#3c444e}#tm-app[data-theme=gta] .tm-primary{background:#f1f3f5;color:#111!important;text-transform:uppercase;letter-spacing:.06em}#tm-app[data-theme=gta] .tm-turn{border-top:6px solid #4687c6}#tm-app[data-theme=gta] .tm-preview{border-left:4px solid #4687c6;padding-left:10px}#tm-app[data-theme=gta] .tm-vehicle-arrow{background:white}#tm-app[data-theme=gta] .tm-vehicle-arrow:after{background:#121212}

/* Rust / inventory: olive slots, stencilled headings, burnt-red actions. */
#tm-app[data-theme=rust]{--paper:#252b24;--inset:#3b4436;--hover:#4c5745;--ink:#f0f0df;--muted:#c8cbb9;--edge:#727b65;--accent:#b84731;--radius:1px;--font:Condensed,Arial,sans-serif;--heading:Condensed,Arial,sans-serif;--shadow:4px 5px 0 #11170faa}
#tm-app[data-theme=rust] .tm-panel-head{border-left:6px solid #b84731;border-bottom:0;padding:8px 12px;background:#1c211b}#tm-app[data-theme=rust] .tm-panel-head strong{font-size:26px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}#tm-app[data-theme=rust] .tm-tools{gap:5px}#tm-app[data-theme=rust] .tm-tools>.tm-chip{height:45px;background:linear-gradient(135deg,#414c39,#30392b);box-shadow:inset 0 2px #ffffff13,inset 0 -3px #10160daa}#tm-app[data-theme=rust] :is(.tm-chip,.tm-primary,.tm-trip-tools button){text-transform:uppercase;letter-spacing:.08em;border-radius:0;font-weight:700}#tm-app[data-theme=rust] .tm-search-box{background:#171e16}#tm-app[data-theme=rust] .tm-turn{border-top:5px solid #b84731}#tm-app[data-theme=rust] .tm-turn-icon{color:#f48d65}#tm-app[data-theme=rust] .tm-preview>div{background:#30392b;padding:8px}#tm-app[data-theme=rust] .tm-result-icon{background:#20291c;border:1px solid #69745c;height:42px;flex-basis:42px}#tm-app[data-theme=rust] .tm-vehicle-arrow{background:#f1e1ba}#tm-app[data-theme=rust] .tm-vehicle-arrow:after{background:#a6422f}

/* Minecraft / inventory slots and stone buttons. */
#tm-app[data-theme=minecraft]{--paper:#c6c6c6;--inset:#a7a7a7;--hover:#b9b9b9;--ink:#252525;--muted:#393939;--edge:#333;--accent:#626262;--radius:0px;--font:Pixel,monospace;--heading:Pixel,monospace;--shadow:inset 3px 3px #fff,inset -3px -3px #777,4px 4px #0007;font-size:11px}
#tm-app[data-theme=minecraft] :is(.tm-topbar,.tm-guidance,.tm-search-panel,.tm-chargers-panel,.tm-share-panel,.tm-permission){border:3px solid #222}#tm-app[data-theme=minecraft] .tm-panel-head strong{font-size:17px;line-height:1.6;letter-spacing:0}#tm-app[data-theme=minecraft] .tm-panel-head small{font-size:8px}#tm-app[data-theme=minecraft] :is(button,select){border:2px solid #272727;border-radius:0;background:#727272;color:#fff;text-shadow:1px 1px #222;box-shadow:inset 2px 2px #b5b5b5,inset -2px -2px #414141}#tm-app[data-theme=minecraft] .tm-primary{font-size:11px}#tm-app[data-theme=minecraft] .tm-result{color:#252525;text-shadow:none;background:#aaa;box-shadow:inset 2px 2px #777,inset -2px -2px #ddd}#tm-app[data-theme=minecraft] .tm-result strong{font-size:11px;line-height:1.5}#tm-app[data-theme=minecraft] .tm-result span{font-size:9px;line-height:1.6}#tm-app[data-theme=minecraft] .tm-search-box{border:2px solid #555;background:#202020}#tm-app[data-theme=minecraft] .tm-search-box input{font-size:11px;color:#fff}#tm-app[data-theme=minecraft] .tm-search-box input::placeholder{color:#ddd}#tm-app[data-theme=minecraft] .tm-search-box>span{color:#fff}#tm-app[data-theme=minecraft] .tm-tools>.tm-chip{font-size:9px}#tm-app[data-theme=minecraft] .tm-trip strong{font-size:10px}#tm-app[data-theme=minecraft] .tm-turn strong{font-size:12px}#tm-app[data-theme=minecraft] .tm-preview strong{font-size:12px}#tm-app[data-theme=minecraft] .tm-preview small{font-size:8px}#tm-app[data-theme=minecraft] .tm-authentic-icon img{image-rendering:pixelated}#tm-app[data-theme=minecraft] .tm-speedometer strong{font-size:18px}#tm-app[data-theme=minecraft] .tm-vehicle-arrow{background:white;clip-path:polygon(44% 0,56% 0,56% 12%,68% 12%,68% 24%,80% 24%,80% 48%,92% 48%,92% 100%,56% 76%,44% 76%,8% 100%,8% 48%,20% 48%,20% 24%,32% 24%,32% 12%,44% 12%)}#tm-app[data-theme=minecraft] .tm-vehicle-arrow:after{background:#333}

/* Assassin's Creed / parchment atlas, gilded frames and Animus diamonds. */
#tm-app[data-theme=assassin]{--paper:#eee4ca;--inset:#ded0ad;--hover:#cfbb8d;--ink:#252821;--muted:#55513e;--edge:#9c8758;--accent:#792e2b;--radius:0px;--font:Inter,Arial,sans-serif;--heading:Cinzel,Georgia,serif;--shadow:0 0 0 3px #262b24,0 0 0 4px #c3ab70,5px 7px 0 #0004}
#tm-app[data-theme=assassin] .tm-panel-head{position:relative;display:flex;align-items:center;border-bottom:1px solid #8b754a;padding:14px 0 20px;margin-bottom:16px}#tm-app[data-theme=assassin] .tm-panel-head:after{content:'◆';position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);padding:0 9px;color:#792e2b;background:#eee4ca}#tm-app[data-theme=assassin] .tm-panel-head strong{font-size:21px;letter-spacing:.015em}#tm-app[data-theme=assassin] .tm-panel-head small{letter-spacing:.17em;font-size:8px}#tm-app[data-theme=assassin] :is(.tm-chip,.tm-primary,.tm-trip-tools button){border-radius:0;font-family:Cinzel,Georgia,serif;font-size:11px;font-weight:700;box-shadow:inset 0 0 0 2px var(--paper)}#tm-app[data-theme=assassin] .tm-primary{box-shadow:inset 0 0 0 1px #b79967,inset 0 0 0 4px #792e2b;border:1px solid #792e2b;background:#792e2b;letter-spacing:.06em}#tm-app[data-theme=assassin] .tm-search-box{border-radius:0;border-bottom:2px solid #792e2b;background:#f5edda}#tm-app[data-theme=assassin] .tm-result{background:#e4d7b9;border-radius:0;border-bottom:1px solid #ad9666}#tm-app[data-theme=assassin] .tm-result strong{font-family:Cinzel,Georgia,serif;font-size:13px}#tm-app[data-theme=assassin] .tm-turn{border-bottom:3px double #9c8758}#tm-app[data-theme=assassin] .tm-turn-icon{color:#792e2b}#tm-app[data-theme=assassin] .tm-preview{border-top:3px double #9c8758;border-bottom:3px double #9c8758}#tm-app[data-theme=assassin] .tm-vehicle-arrow{background:#f8e9bd;clip-path:polygon(50% 0,95% 95%,66% 82%,50% 42%,34% 82%,5% 95%)}#tm-app[data-theme=assassin] .tm-vehicle-arrow:after{background:#8b3430}

@media(max-width:480px){#tm-app{--panel-width:calc(100vw - 24px)}.tm-search-panel,.tm-chargers-panel,.tm-share-panel{padding:13px}.tm-preview>div:last-child{align-items:flex-start}.tm-preview strong{font-size:14px}#tm-app[data-theme=gta] .tm-panel-head{margin:-13px -13px 14px}.tm-trip{gap:6px}.tm-trip strong{font-size:12px}}
@media(max-height:560px){.tm-topbar{top:8px;min-height:45px;padding:4px 8px}.tm-search-panel,.tm-guidance,.tm-chargers-panel,.tm-share-panel{top:63px;max-height:calc(100dvh - 72px)}.tm-turn{padding:8px 10px}.tm-controls{bottom:18px}.tm-control,.tm-speedometer{width:50px;height:50px}.tm-speedometer strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.tm-search-panel,.tm-toast{transition:none}.tm-candidate-pin{animation:none}}
