Routenplanung eingebaut

This commit is contained in:
2026-05-23 20:53:16 +02:00
parent b24996e67f
commit 91fb1fcf0b
6 changed files with 1877 additions and 0 deletions
+222
View File
@@ -1073,6 +1073,12 @@ body.page-admin .act-btn.danger:hover{ background:rgba(255,51,51,.12); color:#FF
body.page-admin .act-btn.full{ grid-column:span 2; }
body.page-admin .act-btn.subtle{ border-color:rgba(0,255,145,.1); color:rgba(0,255,145,.3); }
body.page-admin .act-btn.subtle:hover{ color:rgba(0,255,145,.6); border-color:rgba(0,255,145,.35); }
body.page-admin .act-btn.is_active{
background:rgba(0,136,255,.16);
color:#55aaff;
border-color:rgba(0,136,255,.55);
box-shadow:0 0 14px rgba(0,136,255,.18);
}
/* ── LINK CARD ──────────────────────────────────── */
body.page-admin .link-card{ display:flex; align-items:center; gap:12px; padding:10px 12px; }
@@ -1177,6 +1183,217 @@ body.page-admin .drive-calibration-actions{
body.page-admin .drive-calibration-button{
width:100%;
}
body.page-admin .admin-section-grid_map{
grid-template-columns:minmax(0, 1.7fr) minmax(280px, .85fr);
}
body.page-admin .admin-col_map_main,
body.page-admin .admin-col_map_side{ min-width:0; }
body.page-admin .map-panel{
display:flex;
flex-direction:column;
min-height:620px;
}
body.page-admin .map-toolbar{
display:flex;
gap:8px;
padding:10px 12px 0;
flex-wrap:wrap;
}
body.page-admin .map-copy{ padding:10px 12px; }
body.page-admin .map-route-storage{
display:grid;
grid-template-columns:auto 1fr auto;
gap:8px;
align-items:center;
padding:0 12px 10px;
}
body.page-admin .map-route-storage_secondary{
grid-template-columns:auto 1fr auto auto;
}
body.page-admin .map-route-storage-label{
font-size:9px;
letter-spacing:1.4px;
color:rgba(210,255,235,.9);
text-transform:uppercase;
}
body.page-admin .map-route-storage-input{
font-family:var(--mono);
font-size:10px;
letter-spacing:1px;
color:rgba(245,255,250,.96);
background:#050A14;
border:1px solid rgba(120,255,205,.36);
padding:7px 10px;
outline:none;
min-width:0;
}
body.page-admin .map-route-storage-input:focus{
border-color:rgba(0,255,145,.5);
}
body.page-admin .map-stage{
position:relative;
flex:1;
min-height:460px;
margin:0 12px 12px;
border:1px solid rgba(0,255,145,.12);
background:
radial-gradient(circle at 20% 20%, rgba(0,136,255,.12), transparent 34%),
radial-gradient(circle at 78% 24%, rgba(0,255,145,.08), transparent 28%),
#04101a;
overflow:hidden;
}
body.page-admin .rover-map,
body.page-admin .rover-map-fallback{
position:absolute;
inset:0;
}
body.page-admin .rover-map.is_planning{
cursor: crosshair;
}
body.page-admin .rover-map-fallback{
display:flex;
align-items:center;
justify-content:center;
text-align:center;
padding:20px;
color:rgba(205,255,235,.86);
font-size:12px;
letter-spacing:.6px;
background:rgba(4,16,26,.92);
}
body.page-admin .map-hidden{
display:none !important;
}
body.page-admin .map-waypoint-list{
display:flex;
flex-direction:column;
gap:8px;
padding:10px 12px 12px;
}
body.page-admin .map-waypoint-empty{
padding:12px;
border:1px dashed rgba(0,255,145,.14);
color:rgba(180,255,225,.66);
font-size:8px;
letter-spacing:1px;
text-transform:uppercase;
text-align:center;
}
body.page-admin .map-waypoint-item{
display:flex;
align-items:center;
gap:10px;
padding:10px;
border:1px solid rgba(0,255,145,.1);
background:rgba(0,255,145,.03);
}
body.page-admin .map-waypoint-index{
min-width:42px;
font-size:8px;
color:rgba(180,255,225,.72);
letter-spacing:1.4px;
text-transform:uppercase;
}
body.page-admin .map-waypoint-coords{
display:flex;
flex-direction:column;
gap:3px;
min-width:0;
}
body.page-admin .map-waypoint-coords strong,
body.page-admin .map-waypoint-coords span{
font-size:10px;
letter-spacing:.5px;
color:rgba(245,255,250,.98);
}
body.page-admin .map-waypoint-icon{
background:transparent;
border:none;
}
body.page-admin .map-waypoint-stack{
display:flex;
flex-direction:column;
align-items:center;
gap:6px;
}
body.page-admin .map-waypoint-label{
display:flex;
align-items:center;
justify-content:center;
min-width:46px;
height:24px;
padding:0 8px;
border-radius:999px;
border:1px solid rgba(0,136,255,.55);
background:rgba(3,19,31,.94);
color:#dff7ff;
font-size:10px;
font-weight:700;
letter-spacing:.6px;
box-shadow:0 0 14px rgba(0,136,255,.16);
white-space:nowrap;
user-select:none;
}
body.page-admin .map-waypoint-dot{
width:14px;
height:14px;
border-radius:50%;
border:2px solid #03131f;
background:#0088FF;
box-shadow:0 0 14px rgba(0,136,255,.24);
cursor:grab;
user-select:none;
}
body.page-admin .map-waypoint-label:active,
body.page-admin .map-waypoint-dot:active{
cursor:grabbing;
}
body.page-admin .map-waypoint-popup{
display:flex;
flex-direction:column;
gap:8px;
min-width:160px;
}
body.page-admin .map-waypoint-popup-title{
font-size:11px;
font-weight:700;
color:#eefcff;
letter-spacing:.5px;
}
body.page-admin .map-waypoint-popup-coords{
font-size:10px;
color:rgba(205,255,235,.86);
letter-spacing:.4px;
}
body.page-admin .map-waypoint-delete{
font-family:var(--mono);
font-size:10px;
font-weight:700;
letter-spacing:.5px;
border:1px solid rgba(255,51,51,.45);
background:rgba(255,51,51,.08);
color:#ffd7d7;
padding:8px 10px;
cursor:pointer;
}
body.page-admin .map-waypoint-delete:hover{
background:rgba(255,51,51,.16);
color:#fff2f2;
}
body.page-admin .leaflet-container{
font-family:var(--mono);
background:#04101a;
}
body.page-admin .leaflet-control-attribution{
background:rgba(4,16,26,.82);
color:rgba(180,255,225,.72);
}
body.page-admin .leaflet-control-attribution a{ color:rgba(85,170,255,.9); }
body.page-admin .leaflet-popup-content-wrapper,
body.page-admin .leaflet-popup-tip{
background:#07111c;
color:rgba(235,255,245,.96);
}
@media (max-width:479px){
body.page-admin .drive-estimator-toolbar{ flex-direction:column; align-items:stretch; }
body.page-admin .drive-estimator-input{ grid-template-columns:1fr; }
@@ -1184,6 +1401,11 @@ body.page-admin .drive-calibration-button{
body.page-admin .drive-estimator-value{ font-size:28px; }
body.page-admin .drive-calibration-toolbar{ flex-direction:column; align-items:stretch; }
body.page-admin .drive-calibration-grid{ grid-template-columns:1fr; }
body.page-admin .admin-section-grid_map{ grid-template-columns:1fr; }
body.page-admin .map-panel{ min-height:0; }
body.page-admin .map-stage{ min-height:360px; }
body.page-admin .map-route-storage,
body.page-admin .map-route-storage_secondary{ grid-template-columns:1fr; }
}
/* ── AUTH OVERLAY ───────────────────────────────── */