:root{--bg:#090b0d;--panel:#111519;--panel2:#171c21;--line:#293038;--text:#f5f6f7;--muted:#8f9aa4;--orange:#ff5d2a;--blue:#38a5ff}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}.skip-link{position:fixed;left:8px;top:-60px;z-index:999;background:#fff;color:#000;padding:8px 10px;border-radius:7px}.skip-link:focus{top:8px}#app{height:100%;display:grid;grid-template-rows:62px 1fr;overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line);background:rgba(9,11,13,.98);z-index:20}.brand{display:flex;align-items:center;gap:12px;font-weight:950;min-width:0}.logo{width:48px;height:48px;border-radius:14px;overflow:hidden;display:block;flex:0 0 auto;background:#10161b;border:1px solid #2b333a;box-shadow:0 6px 18px rgba(0,0,0,.28)}.logo img{width:100%;height:100%;object-fit:cover;display:block}.brand-title{font-size:15px;font-weight:950;line-height:1.05;letter-spacing:.2px}.brand small{display:block;color:#7e8994;font-size:9px;letter-spacing:1.2px;text-transform:uppercase}.btn,.tool,.layer{border:1px solid var(--line);background:var(--panel2);color:#fff;padding:8px 10px;border-radius:9px;font-weight:800;cursor:pointer;text-decoration:none}.btn.orange{background:var(--orange);border-color:var(--orange)}.shell{display:grid;grid-template-columns:350px 1fr;min-height:0}aside{background:linear-gradient(180deg,#111519,#0d1114);border-right:1px solid var(--line);overflow:auto;padding:14px;z-index:8}.hero{padding:14px;border:1px solid #2c333a;border-radius:15px;background:#14191e;margin-bottom:12px}.kicker,.section-title{font-size:9px;text-transform:uppercase;letter-spacing:1.3px;color:#7f8b96;font-weight:900}.hero h2{font-size:20px;margin:5px 0}.hero p{font-size:11px;color:#9aa5ae;margin:0;line-height:1.45}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.stat{background:#0b0f12;border:1px solid #252c32;border-radius:9px;padding:8px}.stat b{display:block;font-size:13px}.stat span{font-size:9px;color:#74808a}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:11px 0}.filters select,.filters input{width:100%;background:#0b0f12;color:#fff;border:1px solid #303941;border-radius:9px;padding:8px;font-size:11px}.filters input{grid-column:1/-1}.search-wrap{grid-column:1/-1;position:relative;min-width:0}.search-wrap input{grid-column:auto!important}.search-suggestions{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:40;background:#0c1115;border:1px solid #394650;border-radius:10px;padding:4px;box-shadow:0 12px 28px rgba(0,0,0,.42);max-height:220px;overflow:auto}.search-suggestions.show{display:block}.search-suggestion{width:100%;border:0;background:transparent;color:#eef3f6;text-align:left;padding:8px 9px;border-radius:7px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px}.search-suggestion:hover,.search-suggestion.active{background:#1a232a}.search-suggestion b{font-size:11px}.search-suggestion small{font-size:8px;color:#84919b;white-space:nowrap}.section-title{margin:14px 2px 6px}.dayrow{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:9px 7px;border-radius:11px;cursor:pointer;border:1px solid transparent;margin:3px 0}.dayrow:hover,.dayrow.map-hover{background:#161b20}.dayrow.active{background:#19222a;border-color:#2e4456}.dayicon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:#0b1014;border:1px solid #28323a;font-size:14px}.year-nav-badge{
  width:42px;
  height:42px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:#0b1014;
  border:2px solid var(--year-color,#ef4444);
  color:var(--year-color,#ef4444);
  font-size:16px;
  font-weight:950;
  line-height:1;
  letter-spacing:.3px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}.daytitle{font-weight:850;font-size:12px}.daysub{font-size:9px;color:#7d8994;margin-top:3px}.badge{font-size:9px;padding:4px 6px;border-radius:999px;background:#20272e;color:#b8c0c7}.map-wrap{position:relative;overflow:hidden}#map{position:absolute;inset:0}.tools{position:absolute;top:12px;left:12px;z-index:5;display:flex;gap:6px;flex-wrap:wrap}.tool,.layer{font-size:10px;padding:7px 8px;background:rgba(16,21,25,.94)}.layers{position:absolute;top:12px;right:12px;z-index:5;display:flex;gap:3px;background:rgba(16,21,25,.94);border:1px solid #2e3740;border-radius:10px;padding:3px}.layer{border:0;background:transparent;color:#8c97a1}.layer.active{background:#283139;color:#fff}.layer.disabled{opacity:.35;cursor:not-allowed}.detail{display:none;position:absolute;right:14px;bottom:14px;width:460px;max-width:calc(100% - 28px);z-index:6;background:rgba(15,19,23,.98);border:1px solid #303942;border-radius:17px;overflow:hidden}.detail.show{display:block}.detail-top{padding:14px 50px 11px 14px;background:linear-gradient(140deg,#172430,#10161b)}.detail h3{font-size:18px;margin:4px 0 6px}.meta{display:flex;gap:10px;flex-wrap:wrap;color:#a9b2ba;font-size:10px}.meta #dRaw{display:none!important}.detail-body{padding:11px 14px 14px}.panel-close{position:absolute;top:8px;right:9px;z-index:12;width:33px;height:33px;border:0;border-radius:9px;background:rgba(0,0,0,.42);color:#fff;font-size:24px;display:grid;place-items:center;cursor:pointer}.segments{display:grid;gap:6px;margin:7px 0 11px}.seg{display:grid;grid-template-columns:30px 1fr auto;gap:7px;align-items:center;padding:7px;border:1px solid #28313a;background:#0c1115;border-radius:10px;cursor:pointer}.seg:hover,.seg.active{border-color:#536575;background:#151d23}.segicon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#171e24}.seg b{font-size:10px}.seg small{display:block;color:#75828d;font-size:8px;margin-top:2px}.vod-box{border:1px solid #2a3239;background:#10151a;border-radius:11px;padding:9px;margin-bottom:9px}.vod-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.vod-status{font-size:11px;font-weight:850;margin-top:3px}.vod-list{display:grid;gap:6px;margin-top:7px}.voditem{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#0b0f12;border:1px solid #252d34;border-radius:9px;padding:7px}.voditem span{font-size:9px;line-height:1.3}.voditem a{white-space:nowrap;font-size:9px}.missing{color:#f0a2a2}.detail-actions{display:flex;gap:7px;flex-wrap:wrap}.detail-actions .btn{flex:1;min-width:105px;text-align:center;font-size:10px}.hover-tip,.elevation-tip{position:absolute;z-index:20;pointer-events:none;display:none;background:rgba(10,13,16,.96);border:1px solid #3a4650;color:#fff;font-size:10px;font-weight:800}.hover-tip{border-radius:9px;padding:6px 8px}.hover-tip small{display:block;color:#8e9aa4;font-weight:600;margin-top:2px}.elevation-tip{border-radius:999px;padding:5px 7px}.legend{position:absolute;left:12px;bottom:12px;z-index:4;background:rgba(10,13,16,.88);border:1px solid #303942;border-radius:10px;padding:7px;display:flex;gap:8px;flex-wrap:wrap;max-width:55%}.legend span{font-size:8px;color:#b7c0c8;display:flex;align-items:center;gap:4px}.dot{width:7px;height:7px;border-radius:50%}.count{font-size:9px;color:#788590;margin:5px 2px 9px}.empty{padding:20px 8px;color:#7d8994;font-size:11px}.maplibregl-ctrl-attrib{font-size:9px!important}
@media(max-width:900px){#app{grid-template-rows:56px 1fr}.shell{grid-template-columns:1fr}aside{position:absolute;z-index:10;top:56px;left:0;bottom:0;width:82%;max-width:340px;display:none}.show-mobile aside{display:block}.brand small{display:none}.brand-title{font-size:13px}.logo{width:42px;height:42px;border-radius:12px}.detail{left:8px;right:8px;bottom:8px;width:auto}.tools{left:8px;top:8px}.layers{right:8px;top:8px;max-width:55%;flex-wrap:wrap}.legend{display:none}.mobile-menu{display:inline-block!important}}
.mobile-menu{display:none}

/* v10: deutlich sichtbare Tracks */
.route-loaded-badge{
  position:absolute;left:12px;top:52px;z-index:5;
  background:rgba(10,13,16,.92);border:1px solid #34404a;
  border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;
  color:#d7dee4;pointer-events:none
}
.route-loaded-badge b{color:#fff}

/* Live-/Letzte-Position Fahrzeugmarker */
.live-vehicle-wrap{
  width:58px;height:66px;position:relative;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 5px 8px rgba(0,0,0,.5));
}
.live-vehicle-rotator{
  width:30px;height:44px;position:absolute;top:3px;left:14px;
  transform-origin:50% 50%;
  /* Heading follows the newest GPS direction immediately. A CSS transition
     made the Fiat visibly "turn in" again on every course change. */
  transition:none!important;
}
.live-vehicle-car{
  position:absolute;inset:0;
  background:#b92929;border:2px solid #fff;border-radius:8px 8px 7px 7px;
  box-shadow:0 0 0 2px rgba(0,0,0,.55);
}
.live-vehicle-car:before{
  content:"";position:absolute;left:3px;right:3px;top:3px;height:12px;
  background:#111820;border-radius:5px 5px 3px 3px;
}
.live-vehicle-car:after{
  content:"";position:absolute;left:4px;right:4px;bottom:5px;height:8px;
  border-top:2px solid rgba(255,255,255,.42);
  border-bottom:2px solid rgba(0,0,0,.35);
}
.live-vehicle-front{
  position:absolute;z-index:3;top:-5px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;
  border-bottom:8px solid #fff;
}
.live-vehicle-wheel{
  position:absolute;z-index:2;width:5px;height:11px;background:#090a0b;border-radius:3px;
}
.live-vehicle-wheel.w1{left:-4px;top:7px}.live-vehicle-wheel.w2{right:-4px;top:7px}
.live-vehicle-wheel.w3{left:-4px;bottom:6px}.live-vehicle-wheel.w4{right:-4px;bottom:6px}
.live-vehicle-label{
  position:absolute;top:49px;left:50%;transform:translateX(-50%);
  white-space:nowrap;background:rgba(8,10,12,.94);border:1px solid #3c4650;
  border-radius:999px;padding:4px 7px;font-size:8px;font-weight:950;letter-spacing:.5px;color:#fff
}
.live-vehicle-label.live{background:#3b1012;border-color:#8d2b30}
.live-vehicle-label.live:before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#ff4048;margin-right:5px;box-shadow:0 0 8px #ff4048
}
@media(max-width:900px){
  .route-loaded-badge{left:8px;top:46px}
}

.filter-note{
  margin-top:8px;padding:8px 9px;border-radius:8px;
  background:rgba(255,255,255,.035);border:1px solid #26313a;
  font-size:9px;line-height:1.4;color:#8f9aa3
}
.filter-note strong{color:#cfd6dc}

.yearsummary{margin:10px 0 8px;border:1px solid #36424c;background:rgba(255,255,255,.035);border-radius:12px;padding:11px;cursor:pointer;transition:.15s}
.yearsummary:hover{border-color:#65717c;background:rgba(255,255,255,.055)}
.yearsummary .ys-top{display:flex;gap:9px;align-items:flex-start}
.yearsummary .ys-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#171c21;border:1px solid #4a5660;font-size:17px;flex:0 0 auto}
.yearsummary .ys-main{min-width:0;flex:1}
.yearsummary .ys-title{font-size:12px;font-weight:950;color:#fff;margin-bottom:3px}
.yearsummary .ys-sub{font-size:9px;color:#89949d;line-height:1.35}
.yearsummary .ys-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.yearsummary .ys-btn{border:1px solid #46525c;background:#14191e;color:#e7edf2;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:900;text-decoration:none;cursor:pointer}
.yearsummary .ys-btn.primary{background:#fff;color:#0b0d0f;border-color:#fff}
.yearsummary .ys-projects{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.yearsummary .ys-project{font-size:8px;border:1px solid #35404a;border-radius:999px;padding:3px 6px;color:#b8c0c7;display:flex;align-items:center;gap:4px}
.yearsummary .ys-project i{display:inline-block;width:6px;height:6px;border-radius:50%}
.hierarchy-back{width:100%;margin:8px 0;border:1px solid #34404a;background:#11161a;color:#cbd3da;border-radius:9px;padding:8px 9px;font-size:9px;font-weight:900;text-align:left;cursor:pointer}
.hierarchy-back:hover{border-color:#62707b}


.ys-projects-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:10px 0 2px;
}
.ys-project-card{
  position:relative;
  min-width:0;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:90px;
  border:2px solid var(--track-color,#2d3943);
  background:#11171c;
  border-radius:16px;
  padding:12px 10px;
  color:#eef3f6;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.ys-project-card:hover,.ys-project-card.project-hover{background:#151d23;filter:brightness(1.03);box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 18px rgba(255,255,255,.08)}
.ys-project-dot{
  width:12px;height:12px;border-radius:50%;display:block;flex:0 0 auto;
}
.ys-project-name{
  display:block;font-size:9px;font-weight:950;line-height:1.18;letter-spacing:.35px;text-align:center;text-wrap:balance;
}
.ys-project-meta{display:none!important}
.year-world-back{appearance:none;color:#fff;cursor:pointer;font-weight:950;font-size:18px;line-height:1}
.year-world-back:hover,.year-world-back:focus-visible{border-color:#70808c;background:#182128;box-shadow:0 0 0 3px rgba(56,165,255,.18);outline:none}
.country-project-card{min-height:118px;padding-top:34px}
.country-project-year{
  position:absolute;top:8px;left:8px;right:8px;
  color:var(--track-color,#fff);font-size:11px;font-weight:950;letter-spacing:.5px;
  text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.country-project-days{font-size:8px;font-weight:850;color:#84929c;letter-spacing:.35px}
.country-summary .country-icon{color:#ff6559}
@media(max-width:700px){.ys-projects-grid{grid-template-columns:1fr}}


.legend{flex-direction:column;align-items:flex-start;gap:6px}
.legend-row,.legend-project-row,.legend-activity-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.legend-project{
  appearance:none;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid #34404a;
  background:#11171c;
  color:#b7c0c8;
  border-radius:999px;
  padding:5px 7px;
  font-size:8px;
  font-weight:900;
  cursor:pointer;
}
.legend-project:hover,.legend-project.project-hover{border-color:#72808b;color:#fff;background:#172027;box-shadow:0 0 18px rgba(255,255,255,.08)}
.legend-project.active{border-color:#8b98a2;color:#fff}
.legend-line{
  width:20px!important;
  height:0!important;
  border-radius:0!important;
  border-top:3px solid var(--lc)!important;
  background:none!important;
}
.legend-line.dash{border-top-style:dashed!important}
.legend-line.dot{border-top-style:dotted!important}
.legend-activity-row span{
  font-size:8px;color:#b7c0c8;display:flex;align-items:center;gap:4px
}
.activity-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.activity-chip{
  display:inline-flex;align-items:center;gap:4px;
  border:1px solid #2b3740;background:#11171c;border-radius:999px;
  padding:3px 6px;font-size:7px;font-weight:900;color:#aeb9c1
}
.activity-chip i{width:7px;height:7px;border-radius:50%;flex:0 0 7px}


.outdoor-note{
  display:none;
  position:absolute;
  top:58px;
  right:12px;
  z-index:5;
  background:rgba(16,21,25,.94);
  border:1px solid #2e3740;
  border-radius:999px;
  padding:6px 8px;
  color:#aeb9c2;
  font-size:8px;
  font-weight:900;
  letter-spacing:.2px;
}
.outdoor-note.show{display:block}
@media(max-width:900px){
  .outdoor-note{
    top:106px;
    right:8px;
    font-size:7px;
    padding:5px 7px;
  }
}


.iceland-special{
  display:none;
  position:absolute;
  top:56px;
  right:12px;
  z-index:6;
  gap:5px;
}
.iceland-special.show{display:flex}

.special-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid #ff6b5f;
  background:#d7352b;
  color:#fff;
  border-radius:9px;
  padding:7px 9px;
  font-size:9px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.24);
}
.special-toggle:hover{background:#e64035}
.special-toggle.off{
  background:#4a2020;
  border-color:#7a3935;
  color:#d8aaa6;
}
.special-toggle svg{
  width:14px;
  height:14px;
  flex:0 0 14px;
}
.special-toggle .toggle-label{letter-spacing:.25px}

.iceland-links{
  display:none;
  position:absolute;
  top:94px;
  right:12px;
  z-index:6;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
  max-width:390px;
}
.iceland-links.show{display:flex}
.iceland-links a{
  text-decoration:none;
  color:#f5f6f7;
  background:rgba(15,19,23,.96);
  border:1px solid #3a4650;
  border-radius:999px;
  padding:6px 8px;
  font-size:8px;
  font-weight:900;
}
.iceland-links a:hover{border-color:#697783;background:#1b2329}

/* The generic OUTDOOR note moves down whenever Iceland controls are active. */
.iceland-special.show ~ .outdoor-note{
  top:126px;
}

/* POI hover / info */
.iceland-poi-tip{
  display:none;
  position:absolute;
  z-index:25;
  pointer-events:none;
  max-width:240px;
  padding:7px 9px;
  border-radius:9px;
  background:rgba(9,12,15,.96);
  border:1px solid #4a5660;
  color:#fff;
  font-size:9px;
  font-weight:850;
}
.iceland-poi-tip small{
  display:block;
  margin-top:2px;
  color:#929ea7;
  font-weight:650;
}

@media(max-width:900px){
  .iceland-special{
    top:86px;
    right:8px;
    max-width:58%;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .special-toggle{
    padding:6px 7px;
    font-size:8px;
  }
  .iceland-links{
    top:122px;
    right:8px;
    max-width:68%;
  }
  .iceland-links a{font-size:7px;padding:5px 7px}
  .iceland-special.show ~ .outdoor-note{top:158px}
}


.iceland-data-legend{
  display:none;
  position:absolute;
  top:94px;
  right:12px;
  z-index:6;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
  max-width:500px;
}
.iceland-data-legend.show{display:flex}
.iceland-data-legend span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 6px;
  border-radius:999px;
  border:1px solid #39434b;
  background:rgba(15,19,23,.92);
  color:#c2c9ce;
  font-size:7px;
  font-weight:850;
}
.iceland-data-legend i{
  width:7px;
  height:7px;
  border-radius:50%;
}
@media(max-width:900px){
  .iceland-data-legend{
    top:122px;
    right:8px;
    max-width:78%;
  }
  .iceland-links{
    top:157px;
  }
}


.iceland-data-legend .import-count{
  color:#fff;
  border-color:#8f322b;
  background:rgba(153,38,31,.95);
}


/* === v28 Island controls === */
.iceland-panel{
  display:none;
  position:absolute;
  top:58px;
  right:12px;
  z-index:8;
  width:min(610px,calc(100% - 24px));
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  pointer-events:none;
}
.iceland-panel.show{display:flex}
.iceland-panel > *{pointer-events:auto}
.iceland-panel .iceland-special{
  display:flex!important;
  position:static!important;
  top:auto!important;
  right:auto!important;
  gap:6px;
  max-width:100%;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.iceland-panel .iceland-data-legend{
  display:none!important;
  position:static!important;
  top:auto!important;
  right:auto!important;
  max-width:100%!important;
  gap:4px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.iceland-panel.offroad-on .iceland-data-legend{display:flex!important}
.iceland-panel .iceland-links{
  display:flex!important;
  position:static!important;
  top:auto!important;
  right:auto!important;
  max-width:100%!important;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.iceland-panel .iceland-links a{
  padding:6px 9px;
  font-size:8px;
}
.iceland-panel .import-count{display:none!important}
.iceland-panel.show ~ .outdoor-note{display:none!important}

.maplibregl-popup-content{border-radius:12px!important}
.autdany-poi-popup{
  min-width:220px;
  max-width:290px;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#111820;
}
.autdany-poi-popup .poi-cat{
  font-size:10px;
  font-weight:900;
  color:#7b858e;
  text-transform:uppercase;
  letter-spacing:.45px;
  margin-bottom:4px;
}
.autdany-poi-popup .poi-name{
  font-size:14px;
  font-weight:950;
  line-height:1.25;
}
.autdany-poi-popup .poi-folder{
  margin-top:5px;
  font-size:10px;
  color:#76818a;
}
.autdany-poi-popup .poi-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-top:10px;
}
.autdany-poi-popup .poi-actions a,
.autdany-poi-popup .poi-actions button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  border-radius:8px;
  border:0;
  cursor:pointer;
  text-decoration:none;
  font-size:9px;
  font-weight:950;
  text-align:center;
}
.autdany-poi-popup .poi-nav{background:#e43d32;color:#fff}
.autdany-poi-popup .poi-copy{background:#1c252c;color:#fff}

@media(max-width:900px){
  .iceland-panel{
    top:88px;
    right:8px;
    width:min(560px,calc(100% - 16px));
    gap:5px;
  }
  .iceland-panel .special-toggle{padding:6px 8px;font-size:8px}
  .iceland-panel .iceland-data-legend span{font-size:6.5px;padding:3px 5px}
  .iceland-panel .iceland-links a{padding:5px 7px;font-size:7px}
}


/* v31: only Days + KM */
.hero.compact-stats{
  padding:12px!important;
}
.hero.compact-stats .stats{
  margin-top:0!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
.hero.compact-stats .memory-stat{border-color:rgba(6,182,212,.48)}
.hero.compact-stats .memory-stat span{display:block;line-height:1.2;min-height:22px}
.hero.compact-stats .memory-stat.is-syncing span:after{content:"";display:inline-block;width:5px;height:5px;margin-left:5px;border-radius:50%;background:#22d3ee;box-shadow:0 0 0 0 rgba(34,211,238,.45);animation:memorySyncPulse 1.6s ease-out infinite;vertical-align:1px}
@keyframes memorySyncPulse{70%{box-shadow:0 0 0 5px rgba(34,211,238,0)}100%{box-shadow:0 0 0 0 rgba(34,211,238,0)}}
@media(max-width:640px){
  .hero.compact-stats{
    padding:10px!important;
  }
  .hero.compact-stats .stats{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }
}


/* v32: activity legend remains visually identical, only becomes clickable */
.legend-activity-row [data-activity-nav]{
  cursor:pointer;
}


/* v33 project emblems in the left project cards */
.ys-project-card.has-project-logo{
  min-height:90px;
}
.ys-project-logo{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  flex:0 0 auto;
}
.ys-project-logo img{
  display:block;
  width:42px;
  height:42px;
  object-fit:contain;
}
@media(max-width:700px){
  .ys-project-card.has-project-logo{
    min-height:84px;
  }
  .ys-project-logo,
  .ys-project-logo img{
    width:38px;
    height:38px;
  }
}

/* V70: project colours are already visible in the left navigation. */
#legend,#legendToggleConcept{display:none!important}


/* v34: Island 2026 automatic stream/GPS enrichment pilot */
.auto-moments{
  display:none;
  margin-top:12px;
  padding:11px;
  border:1px solid #34404a;
  border-radius:12px;
  background:rgba(14,19,23,.78);
}
.auto-moments.show{display:block}
.auto-moments-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.auto-moments-sub{
  margin-top:2px;
  font-size:9px;
  color:#77838c;
}
.auto-badge{
  padding:4px 7px;
  border-radius:999px;
  background:#183c45;
  border:1px solid #237486;
  color:#7be9f8;
  font-size:8px;
  font-weight:950;
  letter-spacing:.5px;
}
.auto-moment-list{display:flex;flex-direction:column;gap:6px}
.auto-moment{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid #303a42;
  border-radius:10px;
  background:#11171b;
}
.auto-moment-icon{
  width:27px;height:27px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--mc) 24%,#10161a);
  border:1px solid var(--mc);
  color:var(--mc);
  font-weight:950;
}
.auto-moment-title{font-size:11px;font-weight:950;color:#f2f5f7;line-height:1.2}
.auto-moment-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:3px;font-size:8px;font-weight:850;color:#77dceb}
.auto-moment-note{margin-top:3px;font-size:8px;color:#8d989f;line-height:1.3}
.auto-video-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:30px;padding:0 9px;border-radius:8px;
  border:1px solid #3b454d;background:#1b2228;color:#c4cbd0;
  text-decoration:none;font-size:8px;font-weight:950;white-space:nowrap;
}
.auto-video-btn.ready{background:#e53d32;border-color:#ff6e64;color:white}
.auto-moment-empty{display:flex;flex-direction:column;gap:3px;padding:8px;border-radius:9px;background:#101519;border:1px dashed #35414a}
.auto-moment-empty b{font-size:10px;color:#c9d0d5}
.auto-moment-empty span{font-size:8px;color:#78848d;line-height:1.35}
@media(max-width:700px){
 .auto-moment{grid-template-columns:28px minmax(0,1fr)}
 .auto-video-btn{grid-column:1/-1;width:100%;box-sizing:border-box}
}


/* v35: real activity-GPX sections + compact detail */
.seg{
  grid-template-columns:34px minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:7px 8px!important;
}
.seg-copy{min-width:0}
.seg-copy b{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.seg-copy small{
  display:block;
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.seg-actions{
  display:flex;
  align-items:flex-end;
  flex-direction:column;
  gap:4px;
}
.seg-video{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:0 7px;
  border-radius:6px;
  background:#d93d32;
  border:1px solid #f06459;
  color:#fff;
  text-decoration:none;
  font-size:7px;
  font-weight:950;
  white-space:nowrap;
}
.seg.active{
  border-color:#00E5FF!important;
  box-shadow:0 0 0 1px rgba(0,229,255,.25) inset;
}
@media(max-width:700px){
  .seg{
    grid-template-columns:31px minmax(0,1fr) auto!important;
    padding:6px 7px!important;
  }
  .seg-actions .badge{font-size:8px}
  .seg-video{font-size:6.5px;padding:0 6px}
}


/* v36: max 3 segment rows + internal pagination */
.segment-pager{
  display:none;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  padding-top:5px;
}
.segment-pager.show{display:flex}
.segment-pager span{
  min-width:34px;
  text-align:center;
  color:#7e8a92;
  font-size:8px;
  font-weight:900;
}
.segment-page-btn{
  width:24px;
  height:22px;
  padding:0;
  border:1px solid #39454e;
  border-radius:7px;
  background:#141b20;
  color:#eef2f4;
  cursor:pointer;
  font-size:15px;
  font-weight:900;
  line-height:1;
}
.segment-page-btn:disabled{
  opacity:.28;
  cursor:default;
}
.segments{
  display:flex;
  flex-direction:column;
  gap:7px;
}


/* v42 Route Planner */
.route-plan-tool.active{
  background:#5b2c83!important;
  border-color:#9d62cc!important;
  color:#fff!important;
}
.route-planner{
  display:none;
  position:absolute;
  top:52px;
  left:12px;
  z-index:10;
  width:350px;
  max-width:calc(100% - 24px);
  padding:11px;
  border-radius:14px;
  border:1px solid #35414a;
  background:rgba(14,19,23,.97);
  box-shadow:0 14px 36px rgba(0,0,0,.32);
}
.route-planner.show{display:block}
.route-planner-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.route-planner-kicker{
  color:#8e9aa3;
  font-size:8px;
  font-weight:950;
  letter-spacing:1.7px;
}
.route-planner-title{
  margin-top:2px;
  color:#f2f5f7;
  font-size:13px;
  font-weight:950;
}
.route-planner-close{
  width:27px;
  height:27px;
  border:0;
  border-radius:7px;
  background:#20282e;
  color:#fff;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.route-planner-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin-top:9px;
}
.route-planner-stats>div{
  min-width:0;
  padding:7px;
  border:1px solid #2b353d;
  border-radius:9px;
  background:#0b1013;
}
.route-planner-stats b{
  display:block;
  color:#fff;
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.route-planner-stats span{
  display:block;
  margin-top:2px;
  color:#76838c;
  font-size:7.5px;
  font-weight:800;
}
.route-planner-note{
  margin-top:8px;
  color:#aab3b9;
  font-size:9px;
  line-height:1.35;
}
.route-planner-edit,
.route-planner-share{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  margin-top:8px;
}
.route-planner-edit button,
.route-planner-share button,
.route-planner-share a{
  min-height:31px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:5px 7px;
  border:1px solid #35414a;
  border-radius:8px;
  background:#182026;
  color:#e5eaed;
  text-decoration:none;
  text-align:center;
  font-size:7.5px;
  font-weight:900;
  cursor:pointer;
}
.route-planner-edit .primary{
  background:#6d35a0;
  border-color:#9d62cc;
  color:#fff;
}
.route-planner-edit button:disabled,
.route-planner-share button:disabled,
.route-planner-share a.disabled{
  opacity:.32;
  pointer-events:none;
  cursor:default;
}
.route-planner-share{
  display:none;
}
.route-planner-share.show{
  display:grid;
}
.route-planner-share a{
  background:#27313a;
}
.route-planner-share button:nth-child(2){
  background:#253642;
}
.route-planner-share button:nth-child(3){
  background:#25372f;
}
.route-planner-small{
  margin-top:7px;
  color:#66737c;
  font-size:7px;
  line-height:1.35;
}
.route-point-marker{
  width:24px;
  height:24px;
  border-radius:50%;
  border:2px solid #fff;
  background:#8b42c7;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  font-weight:950;
  box-shadow:0 2px 10px rgba(0,0,0,.45);
  cursor:pointer;
}
.route-point-marker.start{background:#24875c}
.route-point-marker.end{background:#d34a3c}
.map-wrap.route-editing #map canvas{cursor:crosshair!important}

@media(max-width:700px){
  .route-planner{
    top:86px;
    left:8px;
    width:calc(100% - 16px);
    max-width:390px;
    padding:9px;
  }
  .route-planner-title{font-size:12px}
  .route-planner-stats b{font-size:11px}
  .route-planner-edit button,
  .route-planner-share button,
  .route-planner-share a{
    min-height:29px;
    font-size:7px;
  }
}


/* v43: automatisches Routing + Querfeldein */
.route-mode-block{
  margin-top:9px;
  padding:8px;
  border:1px solid #2d3840;
  border-radius:10px;
  background:#0b1013;
}
.route-mode-label{
  margin-bottom:6px;
  color:#7d8992;
  font-size:7px;
  font-weight:950;
  letter-spacing:1.1px;
}
.route-mode-buttons{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px;
}
.route-mode-buttons button{
  min-width:0;
  min-height:29px;
  padding:5px 4px;
  border:1px solid #34404a;
  border-radius:7px;
  background:#171e23;
  color:#88949d;
  cursor:pointer;
  font-size:7px;
  font-weight:900;
  line-height:1.15;
}
.route-mode-buttons button.active{
  border-color:#9a5fc8;
  background:#39224d;
  color:#fff;
}
.route-mode-buttons button[data-route-mode="car"].active{
  border-color:#F59E0B;
  background:#45320e;
}
.route-mode-buttons button[data-route-mode="foot"].active{
  border-color:#22C55E;
  background:#153b25;
}
.route-mode-buttons button[data-route-mode="bike"].active{
  border-color:#14B8A6;
  background:#123a37;
}
.route-mode-buttons button[data-route-mode="free"].active{
  border-color:#A855F7;
  background:#39224d;
}
.route-planner-routing{
  display:none;
  margin-top:7px;
  padding:5px 7px;
  border-radius:7px;
  border:1px solid #31505a;
  background:#10242a;
  color:#85dce9;
  font-size:7.5px;
  font-weight:850;
}
.route-planner-routing.show{display:block}
.route-planner-routing.warn{
  border-color:#79552d;
  background:#2b2113;
  color:#f1ba72;
}
.route-planner-routing.error{
  border-color:#7d3535;
  background:#2d1717;
  color:#f3a1a1;
}
.route-routing-credit{
  display:block;
  margin-top:3px;
  color:#59666e;
}
.route-point-marker.busy{
  opacity:.55;
}
@media(max-width:700px){
  .route-mode-buttons{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v46 Copernicus Sentinel-2 */
.satellite-layer{
  color:#8c97a1;
}
.satellite-layer.ready{
  color:#dcefe8;
}
.satellite-layer.setup-needed{
  color:#d6ad72;
}
.satellite-note{
  display:none;
  position:absolute;
  left:12px;
  bottom:51px;
  z-index:5;
  max-width:310px;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  background:rgba(10,15,18,.82);
  backdrop-filter:blur(7px);
  color:#dce4e8;
  font-size:8px;
  line-height:1.25;
}
.satellite-note.show{
  display:flex;
  align-items:center;
  gap:7px;
}
.satellite-note b{
  font-size:8px;
  letter-spacing:1px;
  color:#fff;
}
.satellite-note span{
  color:#a9b5bb;
}
.satellite-setup{
  display:none;
  position:absolute;
  top:54px;
  right:12px;
  z-index:12;
  width:310px;
  max-width:calc(100% - 24px);
  padding:12px 42px 12px 12px;
  border:1px solid #54452f;
  border-radius:12px;
  background:rgba(20,18,14,.97);
  box-shadow:0 16px 42px rgba(0,0,0,.35);
  color:#e8ecef;
}
.satellite-setup.show{display:block}
.satellite-setup-close{
  position:absolute;
  top:7px;
  right:7px;
  width:29px;
  height:29px;
  border:0;
  border-radius:7px;
  background:#2d281f;
  color:#fff;
  font-size:20px;
  cursor:pointer;
}
.satellite-setup-kicker{
  margin-bottom:4px;
  color:#cfa86c;
  font-size:7px;
  font-weight:950;
  letter-spacing:1.2px;
}
.satellite-setup>b{
  display:block;
  font-size:12px;
}
.satellite-setup p{
  margin:5px 0 8px;
  color:#aeb5b8;
  font-size:8px;
  line-height:1.4;
}
.satellite-setup-code{
  display:inline-block;
  padding:5px 7px;
  border:1px solid #4e4639;
  border-radius:6px;
  background:#14120f;
  color:#f0d6ab;
  font-family:monospace;
  font-size:8px;
}
.satellite-setup small{
  display:block;
  margin-top:7px;
  color:#777f83;
  font-size:7px;
}
@media(max-width:700px){
  .satellite-note{
    left:8px;
    bottom:58px;
    max-width:calc(100% - 16px);
  }
  .satellite-setup{
    top:91px;
    right:8px;
    width:calc(100% - 16px);
  }
}


/* v48: Auf- und Abstieg getrennt */
@media(max-width:430px){
  .route-planner-stats{
    gap:4px;
  }
  .route-planner-stats>div{
    padding:6px 4px;
  }
  .route-planner-stats b{
    font-size:9.5px;
  }
  .route-planner-stats span{
    font-size:6.8px;
  }
}


/* v51 LIVE FOLLOW + dynamischer Track-Farbpunkt */
.brand-track-dot-wrap{
  height:8px;
  display:flex;
  align-items:center;
  margin-top:3px;
}
.brand-track-dot{
  display:block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#ef4444;
  box-shadow:0 0 0 2px rgba(255,255,255,.08);
  transition:background .2s ease,box-shadow .2s ease;
}
.brand-track-dot.live{
  box-shadow:0 0 0 2px rgba(255,255,255,.08),0 0 9px currentColor;
}

.live-tool{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.live-tool-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ff4048;
  box-shadow:0 0 7px rgba(255,64,72,.75);
}
.live-tool.following{
  background:#441316;
  border-color:#9d3138;
}
.live-tool.following .live-tool-dot{
  animation:livePulse 1.45s ease-in-out infinite;
}
@keyframes livePulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(.68);opacity:.55}
}

.live-vehicle-wrap{
  cursor:pointer;
}
.live-person-marker{
  display:none;
  position:absolute;
  top:0;
  left:3px;
  width:56px;
  height:72px;
  align-items:center;
  justify-content:center;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.58));
}
.live-person-image{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  pointer-events:none;
  user-select:none;
}
.live-vehicle-wrap.person{width:62px;height:74px;filter:none}
.live-vehicle-wrap.person .live-vehicle-rotator{display:none}
.live-vehicle-wrap.person .live-person-marker{display:flex}
.live-vehicle-wrap.person .live-vehicle-label{top:49px}

@media(max-width:700px){
  .live-tool{padding-left:9px;padding-right:9px}
}


/* --- KONZEPT-VORSCHAU: Navigation + Projektseite --- */
.year-row{column-gap:18px!important}
.year-row .year-nav-badge{margin-right:3px}
.concept-pill{display:inline-flex;align-items:center;margin-left:7px;padding:3px 6px;border-radius:999px;border:1px solid #46525c;color:#9ca8b2;font-size:7px;font-weight:900;letter-spacing:.7px;vertical-align:middle}

.concept-project-hero{
  --project-color:#ff5d2a;
  margin:10px 0 12px;
  border:1px solid color-mix(in srgb,var(--project-color) 62%,#34404a);
  background:linear-gradient(145deg,color-mix(in srgb,var(--project-color) 10%,#11171c),#101519 58%);
  border-radius:15px;
  padding:12px;
}
.concept-project-head{display:flex;align-items:center;gap:11px}
.concept-project-fit{cursor:pointer;border-radius:10px;transition:background .15s ease,box-shadow .15s ease}
.concept-project-head.concept-project-fit:hover,.concept-project-head.concept-project-fit:focus-visible{background:rgba(255,255,255,.035);box-shadow:0 0 0 2px rgba(255,255,255,.14);outline:none}
.concept-project-stats.concept-project-fit:hover{background:rgba(255,255,255,.025)}
.concept-project-logo{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto}
.concept-project-logo img{width:52px;height:52px;object-fit:contain;display:block}
.concept-project-logo .ys-project-dot{width:18px;height:18px}
.concept-project-copy{min-width:0;flex:1}
.concept-project-kicker{font-size:7px;color:#7f8b96;letter-spacing:1.1px;font-weight:900;text-transform:uppercase;margin-bottom:3px}
.concept-project-title{font-size:14px;line-height:1.12;font-weight:950;color:#fff;text-wrap:balance}
.concept-project-period{font-size:8px;color:#89949d;margin-top:4px;line-height:1.35}
.concept-project-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.concept-project-stat{border:1px solid #29343d;background:#0c1115;border-radius:9px;padding:7px;text-align:center}
.concept-project-stat b{display:block;font-size:11px;color:#fff}
.concept-project-stat span{display:block;font-size:7px;color:#7f8b96;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}
.concept-project-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.concept-project-action{border:1px solid #3a4650;background:#141b20;color:#eaf0f4;border-radius:9px;padding:7px 8px;font-size:8px;font-weight:900;cursor:pointer;text-decoration:none}
.concept-project-action.primary{background:var(--project-color);border-color:var(--project-color);color:#fff}
.concept-project-action:hover{filter:brightness(1.08)}
.concept-play-status{display:none;margin-top:8px;border:1px solid #2c3942;background:#0b1014;border-radius:9px;padding:7px 8px;font-size:8px;color:#9eabb5}
.concept-play-status.show{display:block}
.concept-play-status b{color:#fff}
.concept-vod-preview{display:none;margin-top:8px;border-top:1px solid #263039;padding-top:7px;gap:5px}
.concept-vod-preview.show{display:grid}
.concept-vod-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 7px;border:1px solid #29343d;border-radius:8px;background:#0c1115}
.concept-vod-row span{font-size:8px;color:#cbd4da;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.concept-vod-row a{font-size:7px;color:#fff;text-decoration:none;border:1px solid #3b4852;border-radius:7px;padding:4px 6px;white-space:nowrap}
.concept-vod-more{font-size:7px;color:#77858f;padding:2px 4px}

/* In der Projektansicht: Zuschauertext statt Import-/Recovery-Technik */
.project-clean-meta .daysub{font-size:9px;color:#8b98a2;line-height:1.35}

/* Legende als Konzept einklappbar */
.legend-toggle-concept{position:absolute;left:12px;bottom:12px;z-index:5;border:1px solid #34404a;background:rgba(10,13,16,.94);color:#d7dee4;border-radius:9px;padding:6px 8px;font-size:8px;font-weight:900;cursor:pointer;display:none}
.map-wrap.legend-collapsed .legend{display:none!important}
.map-wrap.legend-collapsed .legend-toggle-concept{display:block}
.legend::before{content:'Legende';font-size:7px;color:#7f8b96;text-transform:uppercase;letter-spacing:.8px;font-weight:900;width:100%;margin-bottom:1px}
.legend-close-concept{margin-left:auto;border:0;background:transparent;color:#7f8b96;font-size:9px;font-weight:900;cursor:pointer;padding:0 2px}
@media(max-width:900px){.year-row{column-gap:15px!important}.concept-project-stats{grid-template-columns:repeat(3,1fr)}.concept-project-logo,.concept-project-logo img{width:46px;height:46px}}


/* V10 pre-launch: mobile touch targets */
@media(max-width:900px){
  .tool,.layer,.btn,.ys-btn,.concept-project-action,.hierarchy-back{min-height:40px;font-size:11px}
  .filters select,.filters input{min-height:42px;font-size:12px}
  .dayrow{min-height:58px;padding:10px 8px}
  .daytitle{font-size:13px}.daysub{font-size:10px;line-height:1.35}.badge{font-size:10px}
  .seg{min-height:46px}.seg b{font-size:11px}.seg small{font-size:9px}
  .panel-close{width:40px;height:40px}
}
.auto-moment.map-ready{cursor:pointer}.auto-moment.map-ready:hover{outline:1px solid rgba(255,255,255,.16)}

/* V22 live focus + platform links */
.live-tool.stale{opacity:.82;border-color:#6b7280!important;background:#23272d!important}
.live-vehicle-label.stale{background:#24272c;border-color:#6b7280;color:#f3f4f6}
.twitch-live-tool{border-color:rgba(145,70,255,.72)!important}
.twitch-live-tool:hover{background:rgba(145,70,255,.18)!important}
.youtube-live-tool{border-color:rgba(255,0,0,.65)!important}
.youtube-live-tool:hover{background:rgba(255,0,0,.14)!important}

/* V22 – echtes Fiat-Livefahrzeug: Top-Down im 2D-Modus, GLB in 3D */
.live-vehicle-rotator{
  width:52px!important;height:34px!important;top:7px!important;left:3px!important;
  display:flex;align-items:center;justify-content:center;
}
.live-fiat-topdown{width:52px;height:auto;display:block;pointer-events:none;user-select:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.42))}
.live-vehicle-wrap:not(.person) .live-vehicle-label{top:48px}
body.fiat-3d-active .live-vehicle-wrap:not(.person) .live-vehicle-rotator{opacity:0}
body.fiat-3d-active .live-vehicle-wrap:not(.person){filter:none}
body.live-model-3d-active .live-vehicle-wrap .live-vehicle-rotator,
body.live-model-3d-active .live-vehicle-wrap .live-person-marker{opacity:0}
body.live-model-3d-active .live-vehicle-wrap{filter:none}

/* V24 – real Fiat marker, no redundant LIVE pill below the car */
.live-vehicle-wrap:not(.person){width:70px;height:44px}
.live-vehicle-wrap:not(.person) .live-vehicle-rotator{
  width:64px!important;height:40px!important;top:2px!important;left:3px!important;
  display:flex;align-items:center;justify-content:center;
}
.live-fiat-topdown{width:64px!important;height:auto!important;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.live-vehicle-wrap:not(.person) .live-vehicle-label.live{display:none!important}
.live-vehicle-wrap:not(.person) .live-vehicle-label.stale{top:43px!important}


/* V24 – clearer Fiat marker + route rendering cleanup */
.live-vehicle-wrap:not(.person){width:82px;height:52px}
.live-vehicle-wrap:not(.person) .live-vehicle-rotator{width:76px!important;height:48px!important;top:2px!important;left:3px!important}
.live-fiat-topdown{width:76px!important;image-rendering:auto}

/* V25 – car marker is self-explanatory: no LIVE / LETZTE POSITION pill below the Fiat */
.live-vehicle-wrap:not(.person) .live-vehicle-label{display:none!important}

/* V31 – visible zoom tier for track diagnostics */
.zoom-level-hud{position:absolute;right:12px;bottom:12px;z-index:5;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #34404a;border-radius:9px;background:rgba(10,13,16,.9);color:#fff;pointer-events:none;box-shadow:0 3px 14px rgba(0,0,0,.22)}
.zoom-level-hud b{font-size:10px;letter-spacing:.035em}.zoom-level-hud span{font-size:8px;font-weight:800;color:#99a8b5;letter-spacing:.055em}
.live-marker-picker{position:absolute;right:12px;bottom:51px;z-index:6;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid #34404a;border-radius:12px;background:rgba(10,13,16,.92);box-shadow:0 4px 18px rgba(0,0,0,.3);backdrop-filter:blur(5px)}
.live-marker-picker[hidden]{display:none!important}
.live-marker-picker button{height:54px;min-width:68px;padding:3px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:#8996a1;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:background .15s ease,border-color .15s ease,color .15s ease}
.live-marker-picker button:hover{background:#20272e;color:#fff}
.live-marker-picker button.active{background:#20272e;color:#fff}
.live-marker-picker button[data-live-marker="fiat"].active{border-color:#1688e8;box-shadow:inset 0 0 0 1px rgba(22,136,232,.2)}
.live-marker-picker button[data-live-marker="jimny"].active{border-color:#e43c3c;box-shadow:inset 0 0 0 1px rgba(228,60,60,.2)}
.live-marker-picker button[data-live-marker="person"].active{border-color:#22c55e;box-shadow:inset 0 0 0 1px rgba(34,197,94,.2)}
.live-marker-picker img{width:58px;height:35px;object-fit:contain;display:block;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.live-marker-picker span{font-size:7px;font-weight:950;letter-spacing:.055em;line-height:1;pointer-events:none}
.live-marker-person-icon{position:relative;display:block;width:14px;height:18px;pointer-events:none}
.live-marker-person-icon:before{content:"";position:absolute;left:5px;top:0;width:5px;height:5px;border-radius:50%;background:#22c55e}
.live-marker-person-icon:after{content:"";position:absolute;left:5px;top:5px;width:5px;height:11px;border-radius:3px;background:#22c55e;box-shadow:-4px 4px 0 -1px #22c55e,4px 4px 0 -1px #22c55e}
.detail.show~.zoom-level-hud,.detail.show~.live-marker-picker{display:none}
@media(max-width:700px){.zoom-level-hud{right:8px;bottom:8px;padding:6px 8px}.live-marker-picker{right:8px;bottom:47px}.live-marker-picker button{min-width:60px;padding-left:4px;padding-right:4px}}

/* V39 – project hierarchy: project -> numbered day -> activities */
.project-day-number{font-size:11px;font-weight:950;color:#fff;background:#10161b}
.project-day-title{display:flex;flex-direction:column;gap:2px}
.project-day-label{display:block;color:#fff;font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:none}
.project-day-title>span:last-child{font-size:11px;line-height:1.22;color:#e9eef2}
.project-day-pager{display:grid;grid-template-columns:38px 1fr 38px;gap:7px;align-items:center;margin:10px 0 4px}
.project-day-pager button{height:36px;border:1px solid #3b4852;border-radius:9px;background:#131a20;color:#fff;font-size:20px;font-weight:900;cursor:pointer}
.project-day-pager button:hover:not(:disabled){border-color:#6b7b88;background:#1c252c}
.project-day-pager button:disabled{opacity:.32;cursor:default}
.project-day-pager span{text-align:center;font-size:9px;font-weight:900;color:#9ba7b1}

/* V40 – supplied live-marker artwork */
.live-vehicle-wrap[data-marker="jimny"]{width:58px!important;height:84px!important}
.live-vehicle-wrap[data-marker="jimny"] .live-vehicle-rotator{width:56px!important;height:82px!important;top:1px!important;left:1px!important}
.live-vehicle-wrap[data-marker="jimny"] .live-fiat-topdown{width:54px!important;max-height:82px!important;object-fit:contain}
.live-marker-picker button[data-live-marker="person"] img{width:38px;height:36px}

/* V47 – readable person motion in every flat map style. The supplied skinned
   GLB takes over automatically in pitched/terrain views. */
.live-person-image{transform-origin:50% 92%;will-change:transform;backface-visibility:hidden}
.live-vehicle-wrap[data-person-state="standing"] .live-person-image{animation:personStanding 2.1s ease-in-out infinite}
.live-vehicle-wrap[data-person-state="walking"] .live-person-image{animation:personWalking .68s ease-in-out infinite}
.live-vehicle-wrap[data-person-state="running"] .live-person-image{animation:personRunning .34s ease-in-out infinite}
.live-vehicle-wrap[data-person-state="dancing"] .live-person-image{animation:personDancing 1.15s ease-in-out infinite}
body.person-marker-flat-active .live-vehicle-wrap.person .live-person-marker{display:flex;opacity:1!important}
body.person-model-3d-active .live-vehicle-wrap.person .live-person-marker{opacity:0}
body.person-model-3d-active .live-vehicle-wrap.person{filter:none}

/* V50 – water profiles use the supplied GLBs in every map style. The compact
   symbol is visible only while the selected model is loading. */
.live-water-marker{display:none;align-items:center;justify-content:center;width:72px;height:54px;font-size:38px;line-height:1;filter:drop-shadow(0 3px 4px rgba(0,0,0,.48));pointer-events:none;user-select:none}
.live-vehicle-wrap.water{width:76px!important;height:58px!important;display:flex;align-items:center;justify-content:center}
.live-vehicle-wrap.water .live-vehicle-rotator,.live-vehicle-wrap.water .live-person-marker{display:none!important}
.live-vehicle-wrap.water .live-water-marker{display:flex}
body.water-model-3d-active .live-vehicle-wrap.water .live-water-marker{opacity:0}
body.water-model-3d-active .live-vehicle-wrap.water{filter:none}
body.water-marker-flat-active .live-vehicle-wrap.water .live-water-marker{display:flex;opacity:1!important}
@keyframes personStanding{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-1px) scale(1.006)}
}
@keyframes personWalking{
  0%,100%{transform:translateY(0) rotate(-1.5deg)}
  50%{transform:translateY(-3px) rotate(1.5deg)}
}
@keyframes personRunning{
  0%,100%{transform:translateY(0) rotate(-3deg) scaleY(.99)}
  50%{transform:translateY(-5px) rotate(3deg) scaleY(1.015)}
}
@keyframes personDancing{
  0%,100%{transform:translate(0,0) rotate(-7deg)}
  25%{transform:translate(-3px,-4px) rotate(5deg)}
  50%{transform:translate(0,-1px) rotate(8deg)}
  75%{transform:translate(3px,-4px) rotate(-4deg)}
}
@media(prefers-reduced-motion:reduce){
  .live-vehicle-wrap.person .live-person-image{animation:none!important}
}

/* V51 – Memories pilot. This UI is an isolated DOM marker layer and never
   changes route sources, track filters or GPX geometry. */
.memory-count-badge{position:absolute;left:18px;top:118px;z-index:6;padding:7px 10px;border:1px solid rgba(6,182,212,.55);border-radius:999px;background:rgba(9,13,17,.92);color:#dffaff;font-size:9px;font-weight:950;letter-spacing:.08em;box-shadow:0 5px 18px rgba(0,0,0,.25);pointer-events:none}
.memory-count-badge[hidden]{display:none!important}
/* MapLibre writes the geographic screen transform onto this outer element.
   It must stay absolute; relative positioning puts markers into document flow
   and accumulates a false pixel offset for every following Memory. */
.memory-marker-anchor{position:absolute;width:64px;height:64px;overflow:visible;z-index:12!important;pointer-events:auto!important;cursor:pointer;touch-action:manipulation;outline:none}
.memory-marker-anchor:before{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:auto}
.memory-marker-anchor.is-group{width:64px;height:64px}
.memory-marker-anchor:focus-visible:before{box-shadow:0 0 0 3px rgba(6,182,212,.45)}
.memory-marker{--memory-color:#06B6D4;position:relative;width:100%;height:100%;padding:0;border:2px solid #fff;border-radius:50% 50% 50% 7px;background:var(--memory-color);color:#fff;display:flex;align-items:center;justify-content:center;transform:rotate(-45deg);cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.45);transition:filter .15s ease;isolation:isolate}
.memory-marker-anchor .memory-marker{pointer-events:auto}
.memory-marker-anchor:not(.is-group) .memory-marker{position:absolute;left:15px;top:15px;width:34px;height:34px}
.memory-marker-anchor.is-group .memory-marker{position:absolute;left:12px;top:12px;width:40px;height:40px}
.memory-marker:hover,.memory-marker:focus-visible{transform:rotate(-45deg) scale(1.13);filter:brightness(1.08);outline:none}
.memory-marker:focus-visible{box-shadow:0 0 0 3px rgba(6,182,212,.35),0 4px 12px rgba(0,0,0,.45)}
.memory-marker-play{display:block;margin-left:1px;font-size:11px;line-height:1;transform:rotate(45deg)}
.memory-marker.is-group{border-radius:50%;transform:none;gap:2px}
.memory-marker.is-group:hover,.memory-marker.is-group:focus-visible{transform:scale(1.1)}
.memory-marker.is-group .memory-marker-play{font-size:9px;transform:none}
.memory-marker.is-group b{font-size:12px;line-height:1}
.memory-map-popup.maplibregl-popup{z-index:18}
.memory-map-popup .maplibregl-popup-content{padding:0;border:1px solid #3b4852;border-radius:15px;background:#10161b;color:#fff;box-shadow:0 14px 40px rgba(0,0,0,.5);overflow:hidden}
.memory-map-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:#10161b}
.memory-map-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:#10161b}
.memory-map-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:#10161b}
.memory-map-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:#10161b}
.memory-popup-content{width:min(340px,calc(100vw - 36px));font-family:inherit}
.memory-popup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 13px 11px;border-bottom:1px solid #28323a;background:linear-gradient(135deg,rgba(6,182,212,.15),rgba(16,22,27,0) 64%)}
.memory-popup-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.memory-popup-head small{color:#67e8f9;font-size:8px;font-weight:950;letter-spacing:.13em}
.memory-popup-head b{font-size:13px;line-height:1.2}
.memory-popup-close{width:28px;height:28px;flex:0 0 28px;padding:0;border:1px solid #394650;border-radius:8px;background:#182128;color:#fff;font-size:20px;line-height:1;cursor:pointer}
.memory-popup-list{display:flex;flex-direction:column;gap:8px;max-height:min(470px,62vh);padding:10px;overflow:auto}
.memory-clip-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;min-width:0;padding:8px;border:1px solid #2d3942;border-radius:11px;background:#0b1014;color:#fff;text-decoration:none;transition:border-color .15s ease,background .15s ease}
.memory-clip-card:hover{border-color:#06B6D4;background:#101a20}
.memory-clip-card img{display:block;width:120px;height:76px;border-radius:8px;object-fit:cover;background:#161d22}
.memory-clip-card.compact{grid-template-columns:86px minmax(0,1fr)}
.memory-clip-card.compact img{width:86px;height:58px}
.memory-clip-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.memory-clip-copy strong{width:100%;font-size:12px;line-height:1.2;color:#fff;overflow-wrap:anywhere}
.memory-clip-copy>span:not(.memory-creator){font-size:10px;font-weight:900;color:#dbe4ea}
.memory-clip-copy .memory-creator{font-size:9px;font-weight:800;color:#9eabb5}
.memory-clip-copy small{font-size:8px;font-weight:950;letter-spacing:.06em;color:#67e8f9;text-transform:uppercase}
.memory-clip-copy em{font-size:8px;font-style:normal;color:#fbbf24}
@media(max-width:700px){
  .memory-count-badge{left:10px;top:108px}
  .memory-popup-content{width:min(320px,calc(100vw - 28px))}
  .memory-clip-card{grid-template-columns:96px minmax(0,1fr)}
  .memory-clip-card img{width:96px;height:64px}
  .memory-clip-card.compact{grid-template-columns:74px minmax(0,1fr)}
  .memory-clip-card.compact img{width:74px;height:52px}
}

/* V1.41 – weather control above the zoom HUD */
.weather-ui{position:absolute;right:12px;bottom:56px;z-index:19;display:flex;align-items:flex-end;gap:7px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.weather-toggle{height:34px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #34404a;border-radius:10px;background:rgba(10,13,16,.92);color:#fff;font-size:9px;font-weight:950;letter-spacing:.045em;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.25);backdrop-filter:blur(6px)}
.weather-toggle span{font-size:15px}.weather-toggle:hover,.weather-toggle.active{border-color:#38bdf8;background:rgba(14,34,45,.96)}.weather-toggle:disabled{opacity:.45;cursor:not-allowed}
.weather-menu{position:absolute;right:0;bottom:43px;width:190px;padding:9px;border:1px solid #34404a;border-radius:13px;background:rgba(9,13,17,.96);box-shadow:0 10px 30px rgba(0,0,0,.4);backdrop-filter:blur(9px)}
.weather-menu-title{margin:0 0 7px;color:#9fb0bd;font-size:8px;font-weight:950;letter-spacing:.12em}.weather-options{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.weather-options button{height:30px;border:1px solid #303b44;border-radius:8px;background:#111820;color:#d9e1e7;font-size:8px;font-weight:950;cursor:pointer}.weather-options button:hover,.weather-options button.active{border-color:#38bdf8;background:#153245;color:#fff}.weather-options button:last-child{grid-column:1/-1}
.weather-menu small{display:block;margin-top:7px;color:#75838d;font-size:7px}
.marine-wind{position:absolute;right:0;bottom:45px;min-width:205px;align-items:center;gap:9px;padding:8px 10px;border:1px solid rgba(56,189,248,.55);border-radius:12px;background:rgba(7,18,25,.93);color:#fff;box-shadow:0 7px 24px rgba(0,0,0,.34);backdrop-filter:blur(8px)}
.marine-wind:not([hidden]){display:flex}.marine-wind-arrow{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0ea5e9;color:#fff;font-size:20px;font-weight:950;transition:transform .35s ease}.marine-wind div{display:flex;flex-direction:column;gap:2px}.marine-wind b{font-size:8px;letter-spacing:.12em;color:#7dd3fc}.marine-wind div span{font-size:9px;font-weight:850;white-space:nowrap}
.weather-menu:not([hidden])~.marine-wind{bottom:205px}
.detail.show~.weather-ui{display:none}
@media(max-width:700px){.weather-ui{right:8px;bottom:54px}.weather-toggle{height:32px;padding:0 8px}.weather-toggle b{font-size:8px}.weather-menu{right:-124px;bottom:41px;width:184px}.marine-wind{right:-124px;bottom:41px;min-width:190px;max-width:calc(100vw - 30px)}.marine-wind div span{font-size:8px}.weather-menu:not([hidden])~.marine-wind{bottom:201px}}
