.vnut-svg-route-editor,
.vnut-svg-route-editor * { box-sizing: border-box; }
.vnut-svg-route-editor {
  --vnut-green:#14864f;
  --vnut-green-dark:#0f633b;
  --vnut-border:#cfe2d6;
  --vnut-bg:#f6faf7;
  --vnut-text:#173c2a;
  width:100%;
  max-width:1400px;
  margin:24px auto;
  color:var(--vnut-text);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.45;
}
.vnut-svg-route-editor .vnut-editor-shell{
  width:100%;
  padding:18px;
  background:var(--vnut-bg);
  border:1px solid var(--vnut-border);
  border-radius:18px;
  overflow:hidden;
}
.vnut-svg-route-editor .vnut-editor-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:16px;
}
.vnut-svg-route-editor .vnut-status-group{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.vnut-svg-route-editor h2{margin:0 0 4px;font-size:22px;line-height:1.25;color:var(--vnut-text)}
.vnut-svg-route-editor p{margin:0;color:#5d7467}
.vnut-svg-route-editor .vnut-status{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border:1px solid var(--vnut-border);border-radius:999px;background:#fff;font-size:13px;font-weight:700;white-space:nowrap}
.vnut-svg-route-editor .vnut-section-title{margin:14px 0 10px;font-size:15px;font-weight:800;color:var(--vnut-green-dark)}
.vnut-svg-route-editor .vnut-source-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);gap:12px;margin-bottom:14px}
.vnut-svg-route-editor .vnut-field{display:block;min-width:0}
.vnut-svg-route-editor .vnut-field-wide{grid-column:auto}
.vnut-svg-route-editor .vnut-field>span,.vnut-svg-route-editor .vnut-options label>span{display:block;margin-bottom:6px;font-size:13px;font-weight:700}
.vnut-svg-route-editor .vnut-inline-control{display:flex;gap:8px;min-width:0}
.vnut-svg-route-editor input[type=url],
.vnut-svg-route-editor input[type=file],
.vnut-svg-route-editor input[type=number],
.vnut-svg-route-editor select,
.vnut-svg-route-editor textarea{
  width:100%;
  max-width:none;
  min-height:42px;
  margin:0;
  padding:9px 11px;
  border:1px solid var(--vnut-border);
  border-radius:10px;
  background:#fff;
  color:var(--vnut-text);
  font:inherit;
  box-shadow:none;
}
.vnut-svg-route-editor input[type=file]{padding:7px}
.vnut-svg-route-editor button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  margin:0;
  padding:10px 15px;
  border:1px solid var(--vnut-border);
  border-radius:10px;
  background:#fff;
  color:var(--vnut-green-dark);
  font:700 14px/1 Arial,Helvetica,sans-serif;
  text-transform:none;
  letter-spacing:0;
  cursor:pointer;
  box-shadow:none;
}
.vnut-svg-route-editor button:hover{border-color:var(--vnut-green);background:#fff}
.vnut-svg-route-editor button.vnut-primary{border-color:var(--vnut-green);background:var(--vnut-green);color:#fff}
.vnut-svg-route-editor button.vnut-primary:hover{background:var(--vnut-green-dark);color:#fff}
.vnut-svg-route-editor .vnut-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.vnut-svg-route-editor .vnut-options{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-bottom:14px;padding:12px 14px;border:1px solid var(--vnut-border);border-radius:12px;background:#fff}
.vnut-svg-route-editor .vnut-options-grid{display:grid;grid-template-columns:2fr 1fr 1fr;align-items:end}
.vnut-svg-route-editor .vnut-options label{margin:0;min-width:0}
.vnut-svg-route-editor .vnut-options input[type=color]{display:block;width:54px;height:34px;padding:2px;border:1px solid var(--vnut-border);border-radius:8px;background:#fff}
.vnut-svg-route-editor .vnut-range-field{display:grid!important;grid-template-columns:auto minmax(160px,320px) auto;gap:10px;align-items:center;flex:1 1 320px}
.vnut-svg-route-editor .vnut-range-field>span{margin:0!important}
.vnut-svg-route-editor input[type=range]{width:100%;margin:0}
.vnut-svg-route-editor .vnut-check{display:flex!important;gap:8px;align-items:center}
.vnut-svg-route-editor .vnut-check>span{margin:0!important}
.vnut-svg-route-editor .vnut-check input{margin:0}
.vnut-svg-route-editor .vnut-object-options .vnut-range-field{min-width:300px}
.vnut-svg-route-editor .vnut-canvas{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--vnut-border);
  border-radius:16px;
  background:#fff;
  cursor:crosshair;
  touch-action:none;
}
.vnut-svg-route-editor .vnut-canvas img,
.vnut-svg-route-editor .vnut-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.vnut-svg-route-editor .vnut-canvas img{display:none;object-fit:fill;pointer-events:none;user-select:none}
.vnut-svg-route-editor .vnut-canvas svg{z-index:2;overflow:visible}
.vnut-svg-route-editor .vnut-empty{position:absolute;inset:0;display:grid;place-content:center;gap:5px;text-align:center;color:#667b6f;padding:20px}
.vnut-svg-route-editor .vnut-route-shadow{fill:none;stroke:rgba(255,255,255,.96);stroke-width:20;stroke-linecap:round;stroke-linejoin:round}
.vnut-svg-route-editor .vnut-route-main{fill:none;stroke:#18a85b;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.vnut-svg-route-editor .vnut-point{fill:#fff;stroke:#0f7c45;stroke-width:3;cursor:grab;vector-effect:non-scaling-stroke}
.vnut-svg-route-editor .vnut-point-index{fill:#0f5132;font-size:18px;font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none;user-select:none}
.vnut-svg-route-editor .vnut-help{margin:10px 0;font-size:13px;color:#607568}
.vnut-svg-route-editor textarea{min-height:112px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.5}
@media(max-width:920px){
  .vnut-svg-route-editor .vnut-options-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:780px){
  .vnut-svg-route-editor{margin:12px auto}
  .vnut-svg-route-editor .vnut-editor-shell{padding:12px;border-radius:12px}
  .vnut-svg-route-editor .vnut-editor-head{display:block}
  .vnut-svg-route-editor .vnut-status-group{margin-top:10px;justify-content:flex-start}
  .vnut-svg-route-editor .vnut-source-grid{grid-template-columns:1fr}
  .vnut-svg-route-editor .vnut-inline-control{flex-direction:column}
  .vnut-svg-route-editor .vnut-toolbar button{flex:1 1 calc(50% - 8px)}
  .vnut-svg-route-editor .vnut-canvas{aspect-ratio:4/3}
  .vnut-svg-route-editor .vnut-range-field,
  .vnut-svg-route-editor .vnut-options-grid{grid-template-columns:1fr;gap:6px}
}
.vnut-svg-route-editor .vnut-segment-hit{fill:none;stroke:rgba(0,0,0,0);stroke-width:34;cursor:pointer;pointer-events:stroke}
.vnut-svg-route-editor .vnut-segment-hit.is-selected{stroke:rgba(255,145,0,.18)}
.vnut-svg-route-editor .vnut-control-line{stroke:#f59e0b;stroke-width:2;stroke-dasharray:7 6;pointer-events:none;vector-effect:non-scaling-stroke}
.vnut-svg-route-editor .vnut-control-point{fill:#fff7ed;stroke:#f59e0b;stroke-width:4;cursor:grab;vector-effect:non-scaling-stroke}
.vnut-svg-route-editor .vnut-segment-popup{position:absolute;z-index:8;width:220px;padding:12px;border:1px solid #f3c77c;border-radius:12px;background:#fff;box-shadow:0 12px 32px rgba(20,70,45,.2);color:var(--vnut-text)}
.vnut-svg-route-editor .vnut-segment-popup[hidden]{display:none!important}
.vnut-svg-route-editor .vnut-segment-popup strong{display:block;margin-bottom:9px}
.vnut-svg-route-editor .vnut-popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:7px}
.vnut-svg-route-editor .vnut-segment-popup button{min-height:36px;padding:8px;font-size:12px}
.vnut-svg-route-editor .vnut-segment-popup small{display:block;color:#697c71;line-height:1.35}
