/* Конструктор GPX-маршрутов. Цвета — из темы VeloTrain (--vt-*), иначе спокойные значения по умолчанию. */
.vtg{
	--a:var(--vt-accent,#1f5fa6);--a2:var(--vt-accent-hover,#174a82);--onA:var(--vt-on-accent,#fff);
	--ink:var(--vt-ink,#1b2026);--mut:var(--vt-muted,#5c6670);--line:var(--vt-line,#dce1e5);--fld:var(--vt-field,#bcc4cb);
	--gr:var(--vt-ground,#f1f3f4);--bg:var(--vt-bg,#fff);--dng:var(--vt-danger,#b3261e);--r:var(--vt-radius,6px);
	--vtg-line:#e8590c;
	display:grid;grid-template-columns:minmax(0,1fr) 21rem;gap:0;min-height:var(--vtg-h,min(80vh,52rem));margin:0 0 2rem;
	border:1px solid var(--line);border-radius:calc(var(--r) * 2);overflow:hidden;background:var(--bg);color:var(--ink);
	font-variant-numeric:tabular-nums;line-height:1.45;box-sizing:border-box
}
.vtg *,.vtg *::before,.vtg *::after{box-sizing:border-box}
.vtg [hidden]{display:none!important}
.vtg button{font:inherit}
.vtg .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vtg-noscript{grid-column:1/-1;margin:0;padding:1rem}
.vtg__target{grid-column:1/-1;margin:0;padding:.6rem 1rem;border-bottom:1px solid var(--line);background:var(--gr);font-size:.875rem}
.vtg__target a{margin-left:.5rem;color:var(--a);white-space:nowrap}

/* Карта */
.vtg__map-wrap{position:relative;min-width:0;min-height:var(--vtg-h,min(80vh,52rem))}
.vtg__map{position:absolute;inset:0}
.vtg .maplibregl-canvas{outline:none}
.vtg .maplibregl-ctrl-group button{width:34px;height:34px;padding:0;border:0;background-color:#fff;box-shadow:none;color:#333}

.vtg__bar{position:absolute;left:50%;bottom:1rem;z-index:2;display:flex;align-items:center;gap:.25rem;max-width:calc(100% - 1.5rem);padding:.3rem;
	border-radius:999px;background:var(--bg);box-shadow:0 4px 18px rgb(0 0 0 / .18);transform:translateX(-50%);overflow-x:auto;scrollbar-width:none}
.vtg__bar::-webkit-scrollbar{display:none}
.vtg__bar button,.vtg__bar select{flex:none;height:2.25rem;margin:0;padding:0 .8rem;border:0;border-radius:999px;background:transparent;box-shadow:none;color:var(--ink);font-size:.875rem;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;min-height:0;text-transform:none;letter-spacing:normal}
.vtg__bar button:hover:not(:disabled),.vtg__bar button:focus-visible{background:var(--gr);color:var(--ink)}
.vtg__bar button:disabled{color:var(--mut);opacity:.45;cursor:default}
.vtg__bar button[data-vtg="undo"],.vtg__bar button[data-vtg="redo"]{width:2.25rem;padding:0;font-size:1.15rem}
.vtg__mode select{appearance:none;-webkit-appearance:none;padding-right:1.8rem;background:var(--a) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right .7rem center/.6rem;color:var(--onA)}
.vtg__mode select option{background:var(--bg);color:var(--ink)}
.vtg__mode{margin:0;flex:none}

.vtg__tools{position:absolute;top:.75rem;left:.75rem;z-index:3;display:flex;align-items:flex-start;gap:.4rem;max-width:calc(100% - 4.5rem)}
.vtg__search{position:relative;flex:1 1 18rem;max-width:22rem;margin:0}
.vtg__search input{width:100%;height:2.4rem;margin:0;padding:0 .8rem;border:0;border-radius:999px;background:var(--bg);box-shadow:0 2px 10px rgb(0 0 0 / .18);color:var(--ink);font:inherit;font-size:.9375rem}
.vtg__search input:focus{outline:2px solid var(--a);outline-offset:0}
.vtg__results{position:absolute;top:2.8rem;left:0;right:0;max-height:18rem;margin:0;padding:.3rem;overflow:auto;list-style:none;border-radius:calc(var(--r) * 1.5);background:var(--bg);box-shadow:0 6px 24px rgb(0 0 0 / .2)}
.vtg__results li{margin:0}
.vtg__results button{display:block;width:100%;margin:0;padding:.5rem .6rem;border:0;border-radius:var(--r);background:none;box-shadow:none;color:var(--ink);font-size:.875rem;text-align:left;line-height:1.35;cursor:pointer;text-transform:none}
.vtg__results button:hover,.vtg__results button:focus-visible{background:var(--gr)}
.vtg__round{flex:none;display:grid;place-items:center;width:2.4rem;height:2.4rem;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:var(--bg);box-shadow:0 2px 10px rgb(0 0 0 / .18);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer}
.vtg__round:disabled{opacity:.5;cursor:default}
.vtg__round:hover:not(:disabled){background:var(--gr);color:var(--ink)}

.vtg__hint{position:absolute;top:3.8rem;left:.75rem;z-index:1;max-width:22rem;margin:0;padding:.6rem .8rem;border-radius:var(--r);background:color-mix(in srgb,var(--bg) 92%,transparent);box-shadow:0 2px 10px rgb(0 0 0 / .12);color:var(--ink);font-size:.8125rem;pointer-events:none}
.vtg__status{position:absolute;left:50%;bottom:4.2rem;z-index:2;max-width:min(32rem,calc(100% - 2rem));margin:0;padding:.45rem .8rem;border-radius:var(--r);background:var(--ink);color:var(--bg);font-size:.8125rem;transform:translateX(-50%);box-shadow:0 2px 10px rgb(0 0 0 / .2)}
.vtg__status:empty{display:none}
.vtg__status[data-kind="error"]{background:var(--dng);color:#fff}
.vtg__status a{color:inherit;font-weight:600}

/* Точки на карте */
.vtg-pin{display:grid;place-items:center;width:22px;height:22px;margin:0;padding:0;border:3px solid #fff;border-radius:50%;background:#fff;box-shadow:0 1px 5px rgb(0 0 0 / .45);color:#222;font:700 10px/1 system-ui,sans-serif;cursor:grab;min-height:0}
.vtg-pin.is-mid{width:18px;height:18px;border:2px solid var(--vtg-line,#e8590c);font-size:9px}
.vtg-pin.is-start{width:24px;height:24px;background:#2b8a3e}
.vtg-pin.is-end{width:24px;height:24px;background:#c92a2a}
.vtg-pin:focus-visible{outline:3px solid var(--a);outline-offset:2px}
.vtg-popup .maplibregl-popup-content{padding:.6rem .8rem;border-radius:var(--r,6px);font:14px/1.4 system-ui,sans-serif}
.vtg-pop{display:grid;gap:.4rem}
.vtg-pop button{margin:0;padding:.35rem .6rem;border:1px solid #e3b5b5;border-radius:4px;background:#fff;box-shadow:none;color:#b3261e;font:600 13px system-ui,sans-serif;cursor:pointer;min-height:0}
.vtg-pop button:hover{background:#fdf0f0;color:#b3261e}

/* Панель */
.vtg__panel{display:flex;flex-direction:column;gap:1rem;min-width:0;max-height:var(--vtg-h,min(80vh,52rem));padding:1rem 1.1rem;overflow-y:auto;border-left:1px solid var(--line);background:var(--bg)}
.vtg__name{display:grid;gap:.25rem;margin:0;font-size:.8125rem;color:var(--mut)}
.vtg__name input{width:100%;margin:0;padding:.55rem .7rem;border:1px solid var(--fld);border-radius:var(--r);background:var(--bg);color:var(--ink);font:inherit;font-size:1rem;font-weight:600}
.vtg__stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0}
.vtg__stats div{margin:0;padding:.55rem .65rem;border-radius:var(--r);background:var(--gr)}
.vtg__stats dt{color:var(--mut);font-size:.75rem;font-weight:400}
.vtg__stats dt label{color:inherit;font:inherit}
.vtg__stats dd{margin:0;font-size:1.2rem;font-weight:700;line-height:1.25}
.vtg__speed{display:block;margin-top:.15rem;color:var(--mut);font-size:.75rem;font-weight:400}
.vtg__speed input{width:3.2rem;margin:0;padding:.05rem .25rem;border:1px solid var(--fld);border-radius:4px;background:var(--bg);color:var(--ink);font:inherit;font-size:.75rem}

.vtg__profile{position:relative;margin:0}
.vtg__profile figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem;margin:0 0 .3rem;color:var(--mut);font-size:.75rem}
.vtg__profile svg{display:block;width:100%;height:7.5rem;border-radius:var(--r);background:var(--gr);touch-action:none;cursor:crosshair}
.vtg-area{fill:color-mix(in srgb,var(--vtg-line) 22%,transparent)}
.vtg-ele{fill:none;stroke:var(--vtg-line);stroke-width:1.8}
.vtg-cursor{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 3}
.vtg__tip{position:absolute;top:1.4rem;margin:0;padding:.15rem .4rem;border-radius:4px;background:var(--ink);color:var(--bg);font-size:.75rem;white-space:nowrap;transform:translateX(-50%);pointer-events:none}

.vtg__actions{display:flex;flex-wrap:wrap;gap:.5rem}
.vtg__btn{margin:0;padding:.55rem .9rem;border:0;border-radius:var(--r);background:transparent;box-shadow:inset 0 0 0 1px var(--fld);color:var(--ink);font-size:.9rem;font-weight:600;line-height:1.2;cursor:pointer;min-height:0;text-transform:none;letter-spacing:normal}
.vtg__btn:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--ink);background:transparent;color:var(--ink)}
.vtg__btn--primary{background:var(--a);box-shadow:none;color:var(--onA)}
.vtg__btn--primary:hover:not(:disabled){background:var(--a2);box-shadow:none;color:var(--onA)}
.vtg__btn:disabled{opacity:.45;cursor:default}
.vtg__link{margin:0;padding:0;border:0;background:none;box-shadow:none;color:var(--a);font-size:.875rem;cursor:pointer;text-decoration:underline;min-height:0}
.vtg__login{margin:0;color:var(--mut);font-size:.875rem}
.vtg__share,.vtg__attach{display:grid;gap:.5rem;padding:.75rem;border-radius:var(--r);background:var(--gr)}
.vtg__share label,.vtg__attach label{display:grid;gap:.25rem;margin:0;color:var(--mut);font-size:.8125rem}
.vtg__share input,.vtg__attach select{width:100%;margin:0;padding:.45rem .6rem;border:1px solid var(--fld);border-radius:var(--r);background:var(--bg);color:var(--ink);font:inherit;font-size:.875rem}
.vtg__share p,.vtg__attach p{margin:0}
.vtg__note{margin:0;color:var(--mut);font-size:.8125rem}

.vtg__points,.vtg__mine,.vtg__fit{margin:0;border-top:1px solid var(--line);padding-top:.6rem}
.vtg__points summary,.vtg__mine summary,.vtg__fit summary{color:var(--a);font-weight:600;cursor:pointer}
.vtg__points summary span{display:inline-block;min-width:1.4em;margin-left:.2rem;padding:0 .35em;border-radius:999px;background:var(--gr);color:var(--mut);font-size:.75rem;text-align:center}
.vtg__points ol,.vtg__mine ul{display:grid;gap:.15rem;margin:.5rem 0 0;padding:0;list-style:none}
.vtg__points li,.vtg__mine li{display:flex;align-items:center;gap:.25rem;margin:0}
.vtg__pt{flex:1;min-width:0;margin:0;padding:.35rem .45rem;border:0;border-radius:var(--r);background:none;box-shadow:none;color:var(--ink);font-size:.875rem;text-align:left;cursor:pointer;line-height:1.3;min-height:0;text-transform:none}
.vtg__pt small{display:block;color:var(--mut);font-size:.75rem}
.vtg__pt:hover{background:var(--gr);color:var(--ink)}
.vtg__mine li.is-current .vtg__pt{box-shadow:inset 3px 0 0 var(--a)}
.vtg__x{flex:none;width:1.8rem;height:1.8rem;margin:0;padding:0;border:0;border-radius:50%;background:none;box-shadow:none;color:var(--mut);font-size:1.1rem;line-height:1;cursor:pointer;min-height:0}
.vtg__x:hover{background:var(--gr);color:var(--dng)}
.vtg__credits{margin-top:auto;font-size:.6875rem}

/* Телефон: карта сверху, панель снизу */
@media (max-width:820px){
	.vtg{grid-template-columns:1fr;min-height:0}
	.vtg__map-wrap{min-height:min(64vh,34rem)}
	.vtg__panel{max-height:none;border-left:0;border-top:1px solid var(--line)}
	.vtg__bar{bottom:.6rem;max-width:calc(100% - 1rem)}
	.vtg__bar button,.vtg__bar select{padding:0 .6rem;font-size:.8125rem}
	.vtg__hint{top:3.6rem;right:3.5rem;max-width:none}
	.vtg__tools{right:3.4rem;max-width:none}
	.vtg__search{flex:1 1 auto;max-width:none}
	.vtg__status{bottom:3.6rem}
}
@media (prefers-reduced-motion:reduce){.vtg *{transition:none!important}}
/* Поиск — не наследовать оформление формы поиска темы */
.vtg form.vtg__search{display:block;padding:0;border:0;background:none;box-shadow:none}
.vtg form.vtg__search::before,.vtg form.vtg__search::after{display:none}
/* Панель инструментов переносится на вторую строку, если карта узкая */
.vtg__bar{flex-wrap:wrap;justify-content:center;border-radius:1.4rem;overflow:visible}
@media (max-width:820px){.vtg__bar{flex-wrap:nowrap;justify-content:flex-start;border-radius:999px;overflow-x:auto}}
.vtg__bar{left:.75rem;right:.75rem;width:fit-content;max-width:calc(100% - 1.5rem);margin:0 auto;transform:none}
@media (max-width:820px){.vtg__bar{left:.5rem;right:.5rem;max-width:calc(100% - 1rem)}}
.vtg__bar button{padding:0 .6rem}
.vtg__mode select{max-width:10rem}

/* Конвертер FIT → GPX */
.vtg__fit>*+*{margin-top:.6rem}
.vtg__file{position:relative;display:inline-flex;align-items:center;overflow:hidden}
.vtg__file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.vtg__file:focus-within{outline:2px solid var(--a);outline-offset:2px}
.vtg__fit-res{padding:.75rem;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.vtg__fit-file{margin:0 0 .5rem;font-weight:600;word-break:break-all}
.vtg__fit-stats{grid-template-columns:1fr 1fr;margin:0 0 .75rem}
.vtg__fit-stats dd{font-size:.9375rem}
.vtg__fit-stats div:first-child,.vtg__fit-stats div:last-child{grid-column:1/-1}
.vtg__fit-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.vtg.is-drop{outline:3px dashed var(--a);outline-offset:-3px}
.vtg .vtg__fit-btns .vtg__btn{font:inherit;font-size:.9rem;font-weight:600}
