:root{--tg-bg-color:#f4f7f6;--tg-text-color:#17201d;--tg-hint-color:#66736f;--tg-button-color:#0f7d72;--tg-button-text-color:#fff;--tg-secondary-bg-color:#fff;--wentory-coral:#eb5e45;--wentory-coral-dark:#b94331;--wentory-ink:#17201d;--wentory-blue:#3267d6;--wentory-surface:color-mix(in srgb, var(--tg-secondary-bg-color) 94%, transparent);--wentory-surface-strong:color-mix(in srgb, var(--tg-secondary-bg-color) 98%, transparent);--wentory-surface-muted:color-mix(in srgb, var(--tg-bg-color) 62%, var(--tg-secondary-bg-color));--wentory-line:color-mix(in srgb, var(--tg-text-color) 12%, transparent);--wentory-line-strong:color-mix(in srgb, var(--tg-text-color) 18%, transparent);--wentory-shadow:0 18px 50px #17201d2e;--wentory-shadow-soft:0 10px 30px #17201d1f;--wentory-focus:0 0 0 3px color-mix(in srgb, var(--tg-button-color) 18%, transparent);--wentory-map-bg:#dfeae6;--wentory-map-loading-primary:#0f7d7224;--wentory-map-loading-accent:#eb5e451f;color:var(--tg-text-color);background:var(--tg-bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-telegram-theme=dark]{--wentory-map-bg:#101716;--wentory-map-loading-primary:#0f7d7242;--wentory-map-loading-accent:#eb5e4533}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}input,textarea{color:inherit}textarea{resize:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:linear-gradient(#f4f7f666,#e0ebe738),#dfeae6;width:100%;height:100dvh;min-height:100%;position:relative;overflow:hidden}.route-map{z-index:0;width:100%;height:100%;position:absolute;inset:0}.route-map-loading{background:linear-gradient(135deg, var(--wentory-map-loading-primary), transparent 38%), linear-gradient(315deg, var(--wentory-map-loading-accent), transparent 34%), var(--wentory-map-bg)}.map-error{right:14px;bottom:calc(env(safe-area-inset-bottom) + 116px);z-index:20;color:#8c3024;text-align:center;border:1px solid color-mix(in srgb, var(--wentory-coral) 30%, transparent);max-width:380px;box-shadow:var(--wentory-shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fff6f2f0;border-radius:8px;margin:0 auto;padding:11px 13px;position:absolute;left:14px}.top-bar{top:calc(env(safe-area-inset-top) + 12px);z-index:700;color:var(--tg-text-color);align-items:center;padding:0;display:flex;position:absolute;left:12px}.top-bar .icon-button{background:var(--wentory-surface);border-color:var(--wentory-line);box-shadow:var(--wentory-shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.top-bar .icon-button.is-active{color:var(--tg-button-text-color);background:var(--tg-button-color);border-color:var(--tg-button-color)}.save-status-icon{width:38px;height:38px;color:var(--tg-hint-color);background:var(--wentory-surface-muted);border:1px solid var(--wentory-line);border-radius:8px;flex:none;place-items:center;display:grid}.save-status-icon.is-saved{color:#13835f;background:color-mix(in srgb, #13835f 10%, var(--tg-secondary-bg-color));border-color:#13835f38}.save-status-icon.is-saving{color:var(--tg-hint-color);background:color-mix(in srgb, var(--tg-hint-color) 8%, var(--tg-secondary-bg-color))}.save-status-icon.is-error{color:#b93636;background:color-mix(in srgb, #b93636 8%, var(--tg-secondary-bg-color));border-color:#b9363638}.icon-button{width:38px;height:38px;color:var(--tg-button-color);background:color-mix(in srgb, var(--tg-button-color) 9%, var(--tg-secondary-bg-color));border:1px solid color-mix(in srgb, var(--tg-button-color) 18%, transparent);cursor:pointer;border-radius:8px;place-items:center;padding:0;transition:background .16s,border-color .16s,color .16s,transform .12s;display:grid}.icon-button:hover:not(:disabled),.point-drag-handle:hover:not(:disabled),.point-delete-button:hover:not(:disabled),.saved-route-item:hover:not(:disabled){border-color:color-mix(in srgb, var(--tg-button-color) 30%, transparent)}.icon-button:disabled,.saved-route-item:disabled,.point-drag-handle:disabled,.point-delete-button:disabled,.state-action:disabled{cursor:not-allowed;opacity:.5;transform:none}.icon-button:active:not(:disabled),.saved-route-item:active:not(:disabled),.state-action:active:not(:disabled){transform:translateY(1px)}.icon-button:focus-visible,.saved-route-item:focus-visible,.state-action:focus-visible{box-shadow:var(--wentory-focus);outline:none}.icon-button.is-active{color:var(--tg-button-text-color);background:var(--tg-button-color);border-color:var(--tg-button-color)}.icon-button.destructive{color:#b93636;background:color-mix(in srgb, #b93636 8%, var(--tg-secondary-bg-color));border-color:#b936362b}.route-menu{top:calc(env(safe-area-inset-top) + 62px);z-index:620;max-height:min(44dvh,340px);color:var(--tg-text-color);background:var(--wentory-surface);border:1px solid var(--wentory-line);box-shadow:var(--wentory-shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);scrollbar-width:thin;border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute;left:12px;right:12px;overflow:auto}.route-menu-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.route-menu-header .eyebrow{margin:0}.route-menu-actions{flex:none;align-items:center;gap:8px;display:flex}.route-menu-count{min-width:28px;height:28px;color:var(--tg-button-color);background:color-mix(in srgb, var(--tg-button-color) 10%, var(--tg-secondary-bg-color));border:1px solid color-mix(in srgb, var(--tg-button-color) 16%, transparent);border-radius:8px;place-items:center;padding:0 8px;font-size:12px;font-weight:850;display:grid}.route-menu-clear-button{box-shadow:none}.saved-route-list{gap:8px;display:grid}.saved-route-empty{min-height:54px;color:var(--tg-hint-color);background:var(--wentory-surface-muted);border:1px dashed var(--wentory-line-strong);border-radius:8px;place-items:center;font-size:13px;font-weight:720;display:grid}.saved-route-item{width:100%;min-height:60px;color:inherit;text-align:left;background:var(--wentory-surface-muted);border:1px solid var(--wentory-line);cursor:pointer;border-radius:8px;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:10px;transition:background .16s,border-color .16s,box-shadow .16s,transform .12s;display:grid}.saved-route-item.is-active{background:color-mix(in srgb, var(--tg-button-color) 10%, var(--tg-secondary-bg-color));border-color:color-mix(in srgb, var(--tg-button-color) 38%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tg-button-color) 18%, transparent)}.saved-route-create-button{background:color-mix(in srgb, var(--tg-button-color) 8%, var(--tg-secondary-bg-color));border-color:color-mix(in srgb, var(--tg-button-color) 22%, transparent)}.saved-route-icon{width:36px;height:36px;color:var(--tg-button-color);background:color-mix(in srgb, var(--tg-button-color) 10%, var(--tg-secondary-bg-color));border-radius:8px;place-items:center;display:grid}.saved-route-item.is-active .saved-route-icon{color:var(--tg-button-text-color);background:var(--tg-button-color)}.saved-route-copy{min-width:0}.saved-route-copy strong,.saved-route-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.saved-route-copy strong{font-size:14px;font-weight:820;line-height:1.2}.saved-route-copy small{color:var(--tg-hint-color);margin-top:4px;font-size:11px;font-weight:650}.route-panel{--route-panel-offset-y:0px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:500;max-height:min(58dvh,520px);color:var(--tg-text-color);background:var(--wentory-surface-strong);border:1px solid var(--wentory-line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);overscroll-behavior:contain;scrollbar-width:thin;transform:translate3d(0, var(--route-panel-offset-y), 0);will-change:transform;border-radius:8px 8px 0 0;gap:10px;padding:8px 14px 14px;transition:transform .19s cubic-bezier(.22,1,.36,1),box-shadow .18s;display:grid;position:absolute;left:12px;overflow:auto;box-shadow:0 -18px 54px #17201d2e}.route-panel.is-reordering{-webkit-user-select:none;user-select:none}.route-panel.is-panel-dragging{-webkit-user-select:none;user-select:none;transition:none}.route-panel.is-collapsed{gap:0;padding:8px 12px 10px;overflow:hidden}.route-panel-topbar{grid-template-columns:minmax(0,1fr);align-items:center;gap:8px;display:grid}.route-panel.is-collapsed .route-panel-topbar{grid-template-columns:minmax(0,1fr) 38px}.route-panel-handle{width:100%;min-height:28px;color:var(--tg-hint-color);text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(0,1fr);align-items:center;padding:0;display:grid;position:relative}.route-panel-handle:focus-visible{box-shadow:var(--wentory-focus);outline:none}.route-panel-grabber{background:color-mix(in srgb, var(--tg-text-color) 18%, transparent);border-radius:999px;width:46px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.route-panel-collapsed-summary{min-width:0;padding-top:12px;display:none}.route-panel-collapsed-summary strong,.route-panel-collapsed-summary small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.route-panel-collapsed-summary strong{color:var(--tg-text-color);font-size:15px;font-weight:850;line-height:1.18}.route-panel-collapsed-title{align-items:center;gap:6px;min-width:0;display:flex}.route-panel-collapsed-title strong{flex:auto}.route-panel-collapsed-title .save-status-icon{width:28px;height:28px}.route-panel-collapsed-summary small{color:var(--tg-hint-color);margin-top:3px;font-size:11px;font-weight:680}.route-panel.is-collapsed .route-panel-handle{cursor:pointer;min-height:56px}.route-panel.is-panel-dragging .route-panel-handle{cursor:grabbing}.route-panel.is-collapsed .route-panel-collapsed-summary{display:block}.route-panel-content{opacity:1;gap:13px;transition:opacity .14s;display:grid}.route-panel.is-collapsed:not(.is-panel-dragging) .route-panel-content{pointer-events:none;opacity:0}.route-panel.is-panel-dragging .route-panel-content{pointer-events:none}.route-panel-header{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.route-title-group{gap:6px;min-width:0;display:grid}.route-title-row{grid-template-columns:minmax(0,1fr) 38px 38px;align-items:center;gap:6px;display:grid}.eyebrow{color:var(--tg-button-color);letter-spacing:0;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 2px;font-size:11px;font-weight:820;line-height:1.2;display:inline-flex}.route-title-input,.route-description-input,.point-title-input{width:100%;min-width:0;color:var(--tg-text-color);background:var(--wentory-surface-muted);border:1px solid var(--wentory-line);border-radius:8px;outline:none;transition:background .16s,border-color .16s,box-shadow .16s}.route-title-input:hover,.route-description-input:hover,.point-title-input:hover{border-color:var(--wentory-line-strong)}.route-title-input:focus,.route-description-input:focus,.point-title-input:focus{background:var(--tg-secondary-bg-color);border-color:color-mix(in srgb, var(--tg-button-color) 44%, transparent);box-shadow:var(--wentory-focus)}.route-title-input{letter-spacing:0;height:44px;padding:0 12px;font-size:18px;font-weight:850;line-height:1.2}.route-description-field{gap:6px;min-width:0;display:grid}.route-description-input{min-height:62px;padding:10px 12px;font-size:13px;font-weight:560;line-height:1.38}.inline-error{color:#9f2f2f;background:color-mix(in srgb, #c43f3f 9%, var(--tg-secondary-bg-color));border:1px solid #c43f3f38;border-radius:8px;padding:10px 11px;font-size:12px;font-weight:690;line-height:1.35}.route-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.route-metrics div{background:color-mix(in srgb, var(--tg-button-color) 8%, var(--tg-secondary-bg-color));border:1px solid color-mix(in srgb, var(--tg-button-color) 15%, transparent);border-radius:8px;grid-template-rows:auto auto;grid-template-columns:18px minmax(0,1fr);align-items:center;column-gap:7px;min-width:0;min-height:46px;padding:8px 10px;display:grid}.route-metrics svg{color:var(--tg-button-color);grid-row:1/span 2}.route-metrics strong,.route-metrics span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.route-metrics strong{font-size:15px;font-weight:850;line-height:1.08}.route-metrics span{color:var(--tg-hint-color);margin-top:3px;font-size:11px;font-weight:650}.point-section{gap:9px;display:grid}.point-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.point-list li{background:var(--wentory-surface-muted);border:1px solid var(--wentory-line);border-radius:8px;grid-template-columns:38px 28px minmax(0,1fr) 38px;align-items:center;gap:8px;min-height:60px;padding:8px;transition:background .16s,border-color .16s,box-shadow .16s,opacity .16s;display:grid;position:relative}.point-list li:focus-within{background:var(--tg-secondary-bg-color);border-color:color-mix(in srgb, var(--tg-button-color) 30%, transparent);box-shadow:0 6px 18px #17201d14}.point-list li.is-dragging{background:color-mix(in srgb, var(--tg-bg-color) 28%, transparent);border-color:color-mix(in srgb, var(--wentory-coral) 44%, transparent);box-shadow:none;border-style:dashed}.point-list li.is-dragging>*{opacity:0}.point-drag-handle,.point-delete-button{background:var(--tg-secondary-bg-color);border:1px solid var(--wentory-line);border-radius:8px;place-items:center;width:38px;height:38px;padding:0;display:grid}.point-drag-handle{color:var(--tg-hint-color);cursor:grab;touch-action:none}.point-drag-handle:active,.point-list li.is-dragging .point-drag-handle{cursor:grabbing}.point-delete-button{color:#b93636;background:color-mix(in srgb, #b93636 7%, var(--tg-secondary-bg-color));cursor:pointer}.point-drag-handle:focus-visible,.point-delete-button:focus-visible{box-shadow:var(--wentory-focus);outline:none}.point-index{z-index:1;color:#fff;background:linear-gradient(135deg, color-mix(in srgb, var(--wentory-coral) 88%, #fff), var(--wentory-coral)), var(--wentory-coral);border:2px solid var(--tg-secondary-bg-color);cursor:pointer;border-radius:50%;place-items:center;width:28px;height:28px;padding:0;font-size:12px;font-weight:850;line-height:1;transition:box-shadow .16s,transform .12s;display:grid;position:relative;box-shadow:0 4px 10px #b9433142}.point-index:hover{box-shadow:0 6px 14px #b9433157}.point-index:active{transform:translateY(1px)}.point-index:focus-visible{box-shadow:var(--wentory-focus), 0 6px 14px #b9433157;outline:none}.point-copy{gap:3px;min-width:0;display:grid}.point-copy strong{color:var(--tg-text-color);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:760;display:block;overflow:hidden}.point-title-input{height:34px;padding:0 9px;font-size:13px;font-weight:760}.point-copy small{color:var(--tg-hint-color);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:610;display:block;overflow:hidden}.point-empty-state{min-height:64px;color:var(--tg-hint-color);background:var(--wentory-surface-muted);border:1px dashed var(--wentory-line-strong);border-radius:8px;grid-template-columns:34px minmax(0,auto);justify-content:center;align-items:center;gap:9px;padding:14px;display:grid}.point-empty-state svg{width:34px;height:34px;color:var(--tg-button-color);background:color-mix(in srgb, var(--tg-button-color) 9%, var(--tg-secondary-bg-color));border:1px solid color-mix(in srgb, var(--tg-button-color) 15%, transparent);border-radius:8px;place-items:center;padding:7px;display:grid}.point-empty-state strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:780;overflow:hidden}.point-drag-preview{z-index:900;pointer-events:none;background:var(--tg-secondary-bg-color);border:1px solid color-mix(in srgb, var(--wentory-coral) 46%, transparent);transform-origin:0 0;will-change:transform;border-radius:8px;grid-template-columns:38px 28px minmax(0,1fr) 38px;align-items:center;gap:8px;min-height:60px;padding:8px;display:grid;position:fixed;top:0;left:0;box-shadow:0 18px 38px #17201d38,0 4px 12px #eb5e452e}.point-drag-preview-handle{color:var(--wentory-coral);cursor:grabbing}.point-drag-preview-copy{align-content:center}.point-drag-preview-delete{opacity:.62}.wentory-route-marker-shell{cursor:grab;background:0 0;border:0;place-items:center;width:36px;height:36px;display:grid}.wentory-route-marker-shell:active{cursor:grabbing}.wentory-route-marker{color:#fff;background:linear-gradient(135deg, color-mix(in srgb, var(--wentory-coral) 88%, #fff), var(--wentory-coral)), var(--wentory-coral);border:3px solid #fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:14px;font-weight:850;line-height:1;display:grid;box-shadow:0 9px 22px #17201d4d,0 0 0 1px #17201d14}.wentory-route-line{filter:drop-shadow(0 4px 7px #782c2038)}.is-pulling-segment{cursor:grabbing}.maplibregl-map{background:var(--wentory-map-bg);width:100%;height:100%;font-family:inherit}.maplibregl-canvas{outline:none}.maplibregl-ctrl-group{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden;background:color-mix(in srgb, var(--tg-secondary-bg-color) 92%, transparent)!important;border:1px solid var(--wentory-line)!important;box-shadow:var(--wentory-shadow-soft)!important;border-radius:8px!important}.maplibregl-ctrl-group button{width:38px;height:38px;color:var(--tg-text-color)!important}.maplibregl-ctrl-group button+button{border-top-color:var(--wentory-line)!important}.maplibregl-ctrl-bottom-right{right:12px;bottom:calc(env(safe-area-inset-bottom) + 162px);transition:bottom .19s cubic-bezier(.22,1,.36,1)}.app-shell.has-route-points .maplibregl-ctrl-bottom-right{bottom:calc(env(safe-area-inset-bottom) + min(58dvh, 520px) + 22px)}.app-shell.has-empty-route .maplibregl-ctrl-bottom-right{bottom:calc(env(safe-area-inset-bottom) + 258px)}.app-shell.has-collapsed-route-panel .maplibregl-ctrl-bottom-right{bottom:calc(env(safe-area-inset-bottom) + 96px)}.maplibregl-ctrl-bottom-left{bottom:calc(env(safe-area-inset-bottom) + 6px);left:12px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl,.maplibregl-ctrl-bottom-left .maplibregl-ctrl{margin:0}.maplibregl-ctrl-attrib{border-radius:6px;max-width:calc(100vw - 24px);background:#fffc!important}.maplibregl-ctrl-attrib a{color:var(--tg-button-color)}.app-state-shell{background:linear-gradient(#f4f7f6e0,#deebe6d1),#dfeae6;place-items:center;padding:20px;display:grid}.state-panel{width:min(360px,100%);color:var(--tg-text-color);background:var(--wentory-surface-strong);border:1px solid var(--wentory-line);box-shadow:var(--wentory-shadow);border-radius:8px;gap:14px;padding:18px;display:grid}.state-icon{width:44px;height:44px;color:var(--tg-button-color);background:color-mix(in srgb, var(--tg-button-color) 10%, var(--tg-secondary-bg-color));border:1px solid color-mix(in srgb, var(--tg-button-color) 16%, transparent);border-radius:8px;place-items:center;display:grid}.state-icon.is-spinning svg{animation:.9s linear infinite wentory-spin}.state-panel h1,.state-panel p{margin:0}.state-panel h1{letter-spacing:0;font-size:18px;font-weight:850;line-height:1.2}.state-panel p{color:var(--tg-hint-color);margin-top:6px;font-size:13px;font-weight:560;line-height:1.4}.state-action{width:100%;min-height:42px;color:var(--tg-button-text-color);background:var(--tg-button-color);border:1px solid var(--tg-button-color);cursor:pointer;border-radius:8px;padding:0 14px;font-weight:820}@keyframes wentory-spin{to{transform:rotate(360deg)}}@media (width>=760px){.top-bar{width:auto;right:auto}.route-menu{width:372px;right:auto}.route-panel{border-radius:8px;width:392px;max-height:min(62dvh,540px);left:auto;right:12px}.route-panel-header{grid-template-columns:minmax(0,1fr)}.app-shell.has-route-points .maplibregl-ctrl-bottom-right,.app-shell.has-empty-route .maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-right{bottom:calc(env(safe-area-inset-bottom) + 24px)}}@media (width<=460px){.top-bar{right:auto}}@media (width<=380px){.route-panel,.route-menu{left:10px;right:10px}.top-bar{left:10px;right:auto}.icon-button,.point-drag-handle,.point-delete-button{width:36px;height:36px}.route-panel.is-collapsed .route-panel-topbar{grid-template-columns:minmax(0,1fr) 36px}.route-title-row{grid-template-columns:minmax(0,1fr) 36px 36px}.route-title-row .save-status-icon{width:36px;height:36px}.route-panel{max-height:min(60dvh,480px);padding-left:12px;padding-right:12px}.point-list li,.point-drag-preview{grid-template-columns:36px 26px minmax(0,1fr) 36px;gap:7px}.point-index{width:26px;height:26px}}
