:root{--tuv-blue:#123f88;--tuv-blue-2:#2857ba;--tuv-purple:#4a2ee8;--tuv-bg:#f4f6fb;--tuv-border:#d8dfef;--tuv-text:#141927;--tuv-muted:#687086;--tuv-card:#ffffff;--tuv-soft:#f7f8fc;--tuv-mint:#d8fff2;--tuv-amber:#fff1d3;--tuv-green:#16a36c;--tuv-red:#e33946}html.wp-toolbar .tuv-vc-wrap{margin-top:0}.tuv-vc-wrap{display:flex;min-height:calc(100vh - 32px);background:var(--tuv-bg);font-family:Inter,Arial,sans-serif;color:var(--tuv-text);border:1px solid var(--tuv-border);box-sizing:border-box}.tuv-vc-sidebar{width:70px;background:linear-gradient(180deg,var(--tuv-blue),var(--tuv-purple));display:flex;flex-direction:column;align-items:center;box-shadow:4px 0 18px rgba(30,39,90,.16);z-index:3}.tuv-vc-logo{width:58px;height:58px;margin:10px 0 8px;border-radius:14px;background:#214f9e;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.35);box-shadow:0 6px 18px rgba(0,0,0,.18)}.tuv-vc-logo img{width:58px;height:58px;object-fit:cover;display:block}.tuv-vc-sidebar nav{display:flex;flex-direction:column;gap:8px;width:100%;align-items:center;padding-top:6px}.tuv-vc-sidebar nav a{width:45px;height:45px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff;border-radius:10px;font-size:20px;transition:.15s all ease}.tuv-vc-sidebar nav a:hover,.tuv-vc-sidebar nav a.is-active{background:rgba(0,0,0,.22);transform:translateY(-1px)}.tuv-vc-main{flex:1;min-width:0}.tuv-vc-top{height:75px;background:#fff;border-bottom:1px solid var(--tuv-border);display:flex;align-items:center;justify-content:space-between;padding:0 25px;box-sizing:border-box}.tuv-vc-top h1{font-size:28px;line-height:1;margin:0 0 8px;font-weight:800;letter-spacing:-.03em;color:#151927}.tuv-vc-top p{margin:0;color:var(--tuv-muted);font-size:13px;font-weight:600}.tuv-vc-actions{display:flex;gap:10px;align-items:center}.tuv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 16px;border-radius:8px;border:1px solid var(--tuv-border);background:#fff;text-decoration:none!important;color:#2d3445;font-weight:700;font-size:13px;box-shadow:0 2px 5px rgba(40,57,101,.04);cursor:pointer}.tuv-btn:hover{border-color:#b7c3dc;color:#111827}.tuv-btn.primary{background:linear-gradient(180deg,#5a3df5,#3f27da);color:#fff!important;border-color:#4b32e6;box-shadow:0 8px 18px rgba(72,51,224,.22)}.tuv-btn.ghost{background:#fff}.tuv-vc-content{padding:20px 24px 60px;box-sizing:border-box}.tuv-notice{padding:12px 14px;border-radius:10px;margin-bottom:16px;border:1px solid var(--tuv-border);background:#fff;font-weight:700}.tuv-notice.success{border-color:#a7f3d0;background:#ecfdf5;color:#047857}.tuv-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:14px;margin-bottom:14px}.tuv-kpi{background:#fff;border:1px solid var(--tuv-border);border-radius:8px;min-height:64px;display:flex;align-items:center;gap:12px;padding:12px;box-sizing:border-box;box-shadow:0 6px 16px rgba(36,53,103,.08)}.tuv-kpi span{width:36px;height:36px;border-radius:7px;background:#aaa2ef;display:block}.tuv-kpi small{font-size:11px;text-transform:uppercase;color:var(--tuv-muted);display:block;line-height:1.1}.tuv-kpi strong{font-size:22px;line-height:1.2;color:#151927}.tuv-grid{display:grid;gap:14px;margin-bottom:14px}.tuv-grid.three{grid-template-columns:repeat(3,1fr)}.tuv-grid.two{grid-template-columns:1fr 1fr}.tuv-grid.search{grid-template-columns:360px 1fr}.tuv-card{background:#fff;border:1px solid var(--tuv-border);border-radius:8px;box-shadow:0 6px 18px rgba(36,53,103,.08);overflow:hidden;margin-bottom:14px}.tuv-card h3{margin:0;padding:14px 16px;border-bottom:1px solid var(--tuv-border);font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:space-between;color:#111827}.tuv-card h3 span{font-size:14px;color:#2e3444}.tuv-card p{padding:16px;color:var(--tuv-muted)}.tuv-card.dashed{min-height:135px;display:flex;align-items:center;justify-content:center;border-style:dashed;background:#fafbff;flex-direction:column}.tuv-plus{font-size:34px;color:#c5ccdc;font-weight:800}.tuv-filter{padding:0}.tuv-form-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;padding:16px;align-items:end}.tuv-form-grid.leads{grid-template-columns:2fr 1.3fr 1.3fr .8fr auto}.tuv-form-grid.edit{grid-template-columns:repeat(4,1fr)}.tuv-form-grid label,.tuv-card label{display:flex;flex-direction:column;font-weight:800;font-size:12px;color:#5c6376;gap:7px}.tuv-form-grid input,.tuv-form-grid select,.tuv-card input,.tuv-card select,.tuv-card textarea{height:39px;border:1px solid #d5dcec;border-radius:7px;background:#fff;padding:0 12px;box-sizing:border-box;color:#293042;box-shadow:inset 0 1px 2px rgba(0,0,0,.02);width:100%}.tuv-card textarea{height:105px;padding:12px}.tuv-form-grid .wide{grid-column:1/-1}table{width:100%;border-collapse:separate;border-spacing:0}th{background:#f8f9fc;color:#667085;text-transform:uppercase;font-size:11px;letter-spacing:.03em;font-weight:800;border-bottom:1px solid var(--tuv-border);padding:12px 12px;text-align:left}td{border-bottom:1px solid #e7ebf4;border-right:1px solid #eef1f7;padding:12px 12px;vertical-align:middle;background:#fff}tr:nth-child(even) td{background:#fcfdff}td:last-child,th:last-child{border-right:none}.tuv-wide{min-width:980px}.tuv-card{overflow-x:auto}.empty{text-align:center;color:#8992a8!important;padding:28px!important;background:#fff!important}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:4px 8px;border-radius:7px;font-size:12px;font-weight:800}.badge.blue{background:#e8edff;color:#273ea3}.badge.green{background:#d7fae8;color:#0a7d4b}.badge.amber{background:var(--tuv-amber);color:#976400}.badge.purple{background:#ebe8ff;color:#5533e5}.badge.mint{background:#c9fff1;color:#08775d}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:8px}.dot.red{background:var(--tuv-red)}.trend.up{color:#059669;font-weight:800}.tuv-link{font-weight:800;color:#3f27da;text-decoration:none}.tuv-link:hover{text-decoration:underline}.tuv-mapbox,.tuv-card.map{min-height:340px;background:linear-gradient(135deg,#eaf0ff,#f9fbff);border:1px dashed #bfc9de;border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;color:#6b7280;font-weight:800;flex-direction:column}.tuv-card.map{min-height:250px}.tuv-lead-form{padding:18px}.tuv-lead-form .tuv-form-grid{padding:0;margin-bottom:16px}small{color:#6b7280}@media(max-width:1200px){.tuv-kpi-grid{grid-template-columns:repeat(3,1fr)}.tuv-grid.three,.tuv-grid.two,.tuv-grid.search{grid-template-columns:1fr}.tuv-form-grid,.tuv-form-grid.leads,.tuv-form-grid.edit{grid-template-columns:1fr 1fr}.tuv-vc-top{height:auto;align-items:flex-start;padding:18px;gap:16px;flex-direction:column}.tuv-vc-actions{flex-wrap:wrap}}@media(max-width:760px){.tuv-vc-wrap{display:block}.tuv-vc-sidebar{width:100%;height:auto;flex-direction:row;padding:8px;box-sizing:border-box}.tuv-vc-sidebar nav{flex-direction:row;overflow-x:auto;padding-top:0}.tuv-vc-content{padding:15px}.tuv-kpi-grid{grid-template-columns:1fr}.tuv-form-grid,.tuv-form-grid.leads,.tuv-form-grid.edit{grid-template-columns:1fr}.tuv-vc-top h1{font-size:24px}}

/* Dynamic radius map / Gebietssuche */
.tuv-geo-search{padding-bottom:16px}.tuv-geo-search label{margin:0 16px 14px}.tuv-geo-search .tuv-btn{margin-left:16px}.tuv-map-note{font-size:12px;line-height:1.45;margin:10px 16px 0!important;padding:0!important;color:#6f778b!important}.tuv-leaflet-map{width:100%;height:360px;min-height:360px;border-radius:8px;overflow:hidden;background:#eef3ff;border:1px solid #cfd8ea;box-sizing:border-box}.tuv-card.map{padding:12px;display:block;min-height:380px}.tuv-leaflet-map.planning{height:390px;min-height:390px}.tuv-planning-map-wrap{padding:0 0 10px}.tuv-map-hint{display:block;padding:8px 2px}.tuv-map-pin{background:transparent;border:none}.tuv-map-pin span{display:block;width:18px;height:18px;border-radius:999px;border:3px solid #fff;box-shadow:0 3px 10px rgba(15,23,42,.32)}.tuv-radius-results{max-height:360px;overflow:auto}.tuv-radius-item{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid #e8edf6;background:#fff}.tuv-radius-item:nth-child(even){background:#fcfdff}.tuv-radius-item strong{font-size:14px}.tuv-radius-item small{display:block;margin-top:4px}.tuv-radius-meta{display:flex;gap:7px;align-items:center;white-space:nowrap;font-size:12px;color:#687086}.tuv-radius-meta a{font-weight:800;color:#3f27da;text-decoration:none}.tuv-map-error:before{content:'Adresse konnte nicht aufgelöst werden. Bitte PLZ, Ort oder vollständige Adresse prüfen.';position:absolute;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px 12px;border-radius:8px;margin:12px;z-index:9999;font-weight:800}@media(max-width:900px){.tuv-radius-item{grid-template-columns:1fr}.tuv-radius-meta{flex-wrap:wrap}.tuv-leaflet-map,.tuv-leaflet-map.planning{height:320px;min-height:320px}}

/* v2.2 fix: klare weiße Icon-Darstellung in der linken Cockpit-Navigation */
.tuv-vc-sidebar nav a,
.tuv-vc-sidebar nav a:visited,
.tuv-vc-sidebar nav a:focus,
.tuv-vc-sidebar nav a:hover{
  color:#fff!important;
  text-decoration:none!important;
  outline:none!important;
}
.tuv-vc-sidebar nav a .tuv-vc-nav-icon{
  width:22px!important;
  height:22px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
}
.tuv-vc-sidebar nav a .tuv-vc-nav-icon svg{
  width:21px!important;
  height:21px!important;
  display:block!important;
  stroke:#fff!important;
  fill:none!important;
  stroke-width:2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.tuv-vc-sidebar nav a.is-active,
.tuv-vc-sidebar nav a:hover{
  background:rgba(255,255,255,.16)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)!important;
}
.tuv-vc-sidebar nav a.is-active .tuv-vc-nav-icon svg,
.tuv-vc-sidebar nav a:hover .tuv-vc-nav-icon svg{
  stroke:#fff!important;
}


/* v2.3 Desktop-/Laptop-Fullwidth + mobile responsive Verhalten
   Ziel: Im Admin und per Shortcode nutzt das Cockpit auf PC/Laptop die volle verfügbare Breite.
   Auf Smartphone/Tablet bricht die Oberfläche sauber in eine mobile Ansicht um. */
.tuv-vc-wrap{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.tuv-vc-wrap.tuv-vc-frontend{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  min-height:100vh!important;
}
.tuv-vc-main,
.tuv-vc-content{
  width:100%!important;
  max-width:none!important;
}
.tuv-vc-content{
  padding:22px 26px 70px!important;
}
.tuv-vc-admin .tuv-vc-main{
  min-width:0!important;
}
@media (min-width:1201px){
  .tuv-vc-admin .tuv-kpi-grid,
  .tuv-vc-frontend .tuv-kpi-grid{
    grid-template-columns:repeat(6,minmax(155px,1fr))!important;
  }
  .tuv-vc-admin .tuv-grid.three,
  .tuv-vc-frontend .tuv-grid.three{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .tuv-vc-admin .tuv-grid.two,
  .tuv-vc-frontend .tuv-grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tuv-vc-admin .tuv-grid.search,
  .tuv-vc-frontend .tuv-grid.search{
    grid-template-columns:minmax(340px,420px) minmax(0,1fr)!important;
  }
}

/* WordPress-Admin: innere WP-Abstände für die Cockpit-Seiten entfernen, damit die App breit läuft. */
body.toplevel_page_tuv-nord-dashboard #wpcontent,
body.tuv-nord_page_tuv-nord-dashboard #wpcontent,
body.tuv-nord_page_tuv-nord-projects #wpcontent,
body.tuv-nord_page_tuv-nord-leads #wpcontent,
body.tuv-nord_page_tuv-nord-orders #wpcontent,
body.tuv-nord_page_tuv-nord-search #wpcontent,
body.tuv-nord_page_tuv-nord-planning #wpcontent,
body.tuv-nord_page_tuv-nord-followups #wpcontent,
body.tuv-nord_page_tuv-nord-employees #wpcontent{
  padding-left:0!important;
}
body.toplevel_page_tuv-nord-dashboard #wpbody-content,
body.tuv-nord_page_tuv-nord-dashboard #wpbody-content,
body.tuv-nord_page_tuv-nord-projects #wpbody-content,
body.tuv-nord_page_tuv-nord-leads #wpbody-content,
body.tuv-nord_page_tuv-nord-orders #wpbody-content,
body.tuv-nord_page_tuv-nord-search #wpbody-content,
body.tuv-nord_page_tuv-nord-planning #wpbody-content,
body.tuv-nord_page_tuv-nord-followups #wpbody-content,
body.tuv-nord_page_tuv-nord-employees #wpbody-content{
  padding-bottom:0!important;
}
body.toplevel_page_tuv-nord-dashboard #wpfooter,
body.tuv-nord_page_tuv-nord-dashboard #wpfooter,
body.tuv-nord_page_tuv-nord-projects #wpfooter,
body.tuv-nord_page_tuv-nord-leads #wpfooter,
body.tuv-nord_page_tuv-nord-orders #wpfooter,
body.tuv-nord_page_tuv-nord-search #wpfooter,
body.tuv-nord_page_tuv-nord-planning #wpfooter,
body.tuv-nord_page_tuv-nord-followups #wpfooter,
body.tuv-nord_page_tuv-nord-employees #wpfooter{
  display:none!important;
}

/* Mobile: App bleibt bedienbar, Tabellen scrollen horizontal und die obere Aktionleiste bricht sauber um. */
@media(max-width:900px){
  .tuv-vc-wrap.tuv-vc-frontend{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .tuv-vc-sidebar{
    position:sticky!important;
    top:0!important;
    z-index:50!important;
  }
  .tuv-vc-top{
    padding:16px!important;
  }
  .tuv-vc-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .tuv-vc-actions .tuv-btn{
    width:100%!important;
    padding:0 10px!important;
  }
  .tuv-card{
    overflow-x:auto!important;
  }
  .tuv-wide,
  .tuv-card table{
    min-width:820px!important;
  }
}
@media(max-width:560px){
  .tuv-vc-content{
    padding:12px 10px 40px!important;
  }
  .tuv-vc-actions{
    grid-template-columns:1fr!important;
  }
  .tuv-vc-sidebar nav a{
    min-width:42px!important;
  }
  .tuv-vc-logo{
    min-width:54px!important;
  }
  .tuv-kpi{
    min-height:72px!important;
  }
}

/* v2.4 Leadliste + Karte: volle Datensätze, Dropdown-Filter, klare Marker-/Listensteuerung */
.tuv-form-grid.leads-v24{
  grid-template-columns:minmax(260px,2fr) repeat(5,minmax(150px,1fr)) auto!important;
  gap:12px!important;
}
.tuv-muted-cell{color:#9aa3b5;font-weight:600}
.tuv-leads-table th,.tuv-leads-table td{white-space:normal!important;line-height:1.2!important}
.tuv-leads-table th:nth-child(4),.tuv-leads-table td:nth-child(4){min-width:180px}
.tuv-leads-table th:nth-child(2),.tuv-leads-table td:nth-child(2){min-width:220px}
.tuv-map-progress{font-size:12px;color:#566078;font-weight:700;margin-top:8px;background:#fff;border:1px solid #d9e0f0;border-radius:7px;padding:8px 10px;display:inline-flex}
.tuv-radius-item{cursor:pointer;transition:.15s ease background,.15s ease transform}
.tuv-radius-item:hover{background:#f2f6ff!important;transform:translateX(2px)}
.tuv-vc-wrap .leaflet-popup-content a{font-weight:800;color:#3f27da;text-decoration:none}.tuv-vc-wrap .leaflet-popup-content a:hover{text-decoration:underline}
.tuv-geo-search select{min-height:39px}
@media(max-width:1500px){.tuv-form-grid.leads-v24{grid-template-columns:repeat(3,1fr)!important}.tuv-form-grid.leads-v24 .tuv-btn{grid-column:1/-1!important}}
@media(max-width:900px){.tuv-form-grid.leads-v24{grid-template-columns:1fr!important}.tuv-form-grid.leads-v24 .tuv-btn{grid-column:auto!important}.tuv-radius-results{max-height:none!important}}
/* v2.5 corrections: functional rows, employee actions, green active indicator */
.dot.green{background:var(--tuv-green)!important}
.tuv-link.danger{color:#dc2626!important}
.tuv-map-focus-row{cursor:pointer}
.tuv-map-focus-row:hover td{background:#f0f5ff!important}
.tuv-employee-form{padding:16px!important}
.tuv-employee-form .tuv-form-grid{padding:0;margin-bottom:14px}
.tuv-card h3 span:empty{display:none!important}

/* v2.6: echte Arbeitslogik für Dashboard, Leadliste, Einsatzplanung und Routenplanung */
.tuv-btn.mini{min-height:30px;padding:0 10px;font-size:12px;margin-left:auto}
.tuv-quick-widget{padding-bottom:14px}.tuv-widget-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.tuv-quick-widget p{padding:0 16px 12px!important;margin:0!important}
.tuv-leads-table select,.tuv-leads-table .tuv-inline-input{height:32px!important;min-width:120px!important;font-size:12px!important;padding:0 8px!important;border:1px solid #cfd8ea!important;border-radius:6px!important;background:#fff!important}
.tuv-leads-table .tuv-inline-input{min-width:160px!important}
.tuv-status-link{text-decoration:none!important}
.tuv-planning-layout{display:grid;grid-template-columns:minmax(520px,1.25fr) minmax(320px,.75fr);gap:14px;padding:0 0 14px}
.tuv-route-panel{background:#f8f9fc;border:1px solid var(--tuv-border);border-radius:8px;padding:14px;min-height:360px;box-sizing:border-box}.tuv-route-panel h4{margin:0 0 12px;font-size:16px}.tuv-selected-route{display:flex;flex-direction:column;gap:8px;max-height:245px;overflow:auto;margin-bottom:12px}.tuv-selected-stop{background:#fff;border:1px solid #d8dfef;border-radius:8px;padding:10px;position:relative}.tuv-selected-stop strong{display:block;padding-right:70px}.tuv-selected-stop small{display:block;margin-top:3px;color:#687086}.tuv-remove-stop{position:absolute;top:8px;right:8px;border:0;background:#fee2e2;color:#b91c1c;font-weight:800;border-radius:6px;padding:4px 6px;cursor:pointer}.tuv-btn.disabled{pointer-events:none;opacity:.45}.tuv-popup-add-route{margin-top:8px;border:0;background:#4a2ee8;color:#fff;border-radius:6px;padding:6px 8px;font-weight:800;cursor:pointer}.tuv-route-check{width:18px;height:18px}.tuv-route-lead-row{cursor:pointer}.tuv-route-lead-row:hover td{background:#f0f5ff!important}.tuv-route-lead-row.is-selected-route td{background:#dcfce7!important}
@media(max-width:1100px){.tuv-planning-layout{grid-template-columns:1fr}.tuv-widget-actions{grid-template-columns:1fr}.tuv-leads-table select,.tuv-leads-table .tuv-inline-input{min-width:140px!important}}

/* v2.7 Routing-Update: Route speichern, Startadresse, sichtbare Stopps und saubere Checkboxen */
.tuv-form-grid.route-filter-v27{
  grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(220px,1fr) minmax(260px,1fr) auto!important;
}
.tuv-vc-wrap select{
  appearance:auto!important;
  -webkit-appearance:menulist!important;
  background:#fff!important;
  cursor:pointer!important;
}
.tuv-route-check{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  padding:0!important;
  margin:0!important;
  cursor:pointer!important;
  border-radius:3px!important;
}
.tuv-route-lead-row td:first-child{width:70px;text-align:center!important}
.tuv-selected-stop em{display:block;margin-top:6px;color:#0f766e;font-style:normal;font-weight:800;font-size:12px}.tuv-route-summary{background:#eef7ff;border:1px solid #bfdbfe;color:#1e3a8a;font-weight:800;border-radius:8px;padding:9px 10px;margin:8px 0 12px}.tuv-route-save-form{border-top:1px solid #dbe3f4;margin-top:12px;padding-top:12px;display:grid;gap:10px}.tuv-route-save-form label{font-weight:800;color:#58627a}.tuv-route-save-form input{width:100%;height:38px;border:1px solid #cfd8ea;border-radius:8px;padding:0 10px;box-sizing:border-box;background:#fff}.tuv-notice.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.tuv-selected-stop{cursor:grab}.tuv-popup-add-route:hover,.tuv-btn.primary:hover{filter:brightness(.96)}.tuv-card .empty{color:#7a8399}
@media(max-width:1200px){.tuv-form-grid.route-filter-v27{grid-template-columns:repeat(2,1fr)!important}.tuv-form-grid.route-filter-v27 .tuv-btn{grid-column:1/-1!important}}
@media(max-width:720px){.tuv-form-grid.route-filter-v27{grid-template-columns:1fr!important}.tuv-planning-layout{grid-template-columns:1fr!important}.tuv-route-panel{min-height:auto!important}.tuv-selected-route{max-height:none!important}}


/* v2.8: neutrale Buttons/Links – Farbe erst beim Hover, keine permanent blauen CTA-Flächen */
.tuv-vc-wrap .tuv-btn,
.tuv-vc-wrap .tuv-btn.primary,
.tuv-vc-wrap .tuv-btn.ghost,
.tuv-vc-wrap button.tuv-btn,
.tuv-vc-wrap button.tuv-btn.primary,
.tuv-vc-wrap a.tuv-btn.primary,
.tuv-vc-wrap .tuv-btn.mini{
  background:#fff!important;
  color:#243047!important;
  border:1px solid #cfd8ea!important;
  box-shadow:0 2px 6px rgba(40,57,101,.06)!important;
  text-decoration:none!important;
  filter:none!important;
}
.tuv-vc-wrap .tuv-btn:hover,
.tuv-vc-wrap .tuv-btn.primary:hover,
.tuv-vc-wrap button.tuv-btn:hover,
.tuv-vc-wrap button.tuv-btn.primary:hover,
.tuv-vc-wrap a.tuv-btn.primary:hover,
.tuv-vc-wrap .tuv-btn.mini:hover{
  background:linear-gradient(180deg,#5a3df5,#3f27da)!important;
  color:#fff!important;
  border-color:#4b32e6!important;
  box-shadow:0 8px 18px rgba(72,51,224,.22)!important;
  text-decoration:none!important;
}
.tuv-vc-wrap .tuv-btn.disabled,
.tuv-vc-wrap .tuv-btn.disabled:hover{
  background:#fff!important;
  color:#9aa3b5!important;
  border-color:#d8dfef!important;
  opacity:.55!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.tuv-vc-wrap .tuv-link,
.tuv-vc-wrap .tuv-link.danger{
  color:#111827!important;
  text-decoration:none!important;
  border-radius:6px;
  padding:2px 4px;
  transition:.15s ease all;
}
.tuv-vc-wrap .tuv-link:hover{
  color:#fff!important;
  background:#3f27da!important;
  text-decoration:none!important;
}
.tuv-vc-wrap .tuv-link.danger:hover{
  color:#fff!important;
  background:#dc2626!important;
}
.tuv-vc-wrap .tuv-popup-add-route{
  background:#fff!important;
  color:#243047!important;
  border:1px solid #cfd8ea!important;
  border-radius:6px;
  padding:6px 8px;
  font-weight:800;
  cursor:pointer;
}
.tuv-vc-wrap .tuv-popup-add-route:hover{
  background:#3f27da!important;
  color:#fff!important;
  border-color:#3f27da!important;
}
.tuv-card-note{
  padding:12px 16px 0!important;
  margin:0!important;
  color:#5f6b82!important;
  font-size:12px!important;
  line-height:1.45!important;
}

/* v2.9: saubere TÜV-NORD-Optik, Projektstatus, Prioritäten und kompakter Routenplaner */
.tuv-kpi .tuv-kpi-icon{
  width:42px!important;height:42px!important;border-radius:9px!important;
  background:linear-gradient(180deg,#174a9c,#123f88)!important;
  color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;
  font-size:13px!important;font-weight:900!important;letter-spacing:-.03em!important;
  box-shadow:0 5px 14px rgba(18,63,136,.25)!important;
}
.tuv-project-status-select{
  display:inline-flex!important;width:auto!important;min-width:92px!important;height:28px!important;
  padding:0 8px!important;font-weight:800!important;font-size:12px!important;border-radius:7px!important;
}
.tuv-project-status-select option[value="Inaktiv"]{color:#b91c1c!important}
.tuv-project-status-select option[value="Aktiv"]{color:#047857!important}
.dot.red{background:#e33946!important}
.tuv-priority-select.is-prio-a{background:#ffe5e5!important;border-color:#fca5a5!important;color:#991b1b!important;font-weight:900!important}
.tuv-priority-select.is-prio-b{background:#fff1d3!important;border-color:#fcd58f!important;color:#92400e!important;font-weight:900!important}
.tuv-priority-select.is-prio-c{background:#e8edff!important;border-color:#c7d2fe!important;color:#273ea3!important;font-weight:900!important}
.tuv-vc-wrap .tuv-route-link,
.tuv-vc-wrap td>a[target="_blank"]{
  color:#111827!important;text-decoration:none!important;border-radius:6px!important;padding:4px 6px!important;font-weight:800!important;display:inline-block!important;
  transition:.15s ease all!important;
}
.tuv-vc-wrap .tuv-route-link:hover,
.tuv-vc-wrap td>a[target="_blank"]:hover{
  background:#3f27da!important;color:#fff!important;text-decoration:none!important;
}
.tuv-leaflet-map.planning{height:520px!important;min-height:520px!important}
.tuv-planning-layout{grid-template-columns:minmax(700px,1.65fr) minmax(360px,.7fr)!important;align-items:stretch!important}
.tuv-route-panel{min-height:520px!important;max-height:520px!important;overflow:auto!important}
.tuv-saved-routes{margin-top:14px!important}
.tuv-route-lead-selector{margin-top:14px!important;overflow:hidden!important}
.tuv-route-lead-selector summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:900;border-bottom:1px solid var(--tuv-border);background:#fff;color:#111827}
.tuv-route-lead-selector summary::-webkit-details-marker{display:none}
.tuv-route-lead-selector summary:before{content:'▸';margin-right:8px;color:#123f88;font-weight:900}
.tuv-route-lead-selector[open] summary:before{content:'▾'}
.tuv-route-lead-table{max-height:320px;overflow:auto;background:#fff}
.tuv-route-lead-selector:not([open]) .tuv-route-lead-table{display:none}
@media(max-width:1300px){.tuv-planning-layout{grid-template-columns:1fr!important}.tuv-leaflet-map.planning{height:420px!important;min-height:420px!important}.tuv-route-panel{min-height:auto!important;max-height:none!important}}

/* v3.0 refinements */
.tuv-kpi{gap:10px!important;}
.tuv-kpi .tuv-kpi-icon,
.tuv-kpi span.tuv-kpi-icon{
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  border-radius:9px!important;
  background:#0b4a97!important;
  color:#fff!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-weight:900!important;
  font-size:15px!important;
  box-shadow:0 5px 14px rgba(11,74,151,.22)!important;
}
.tuv-kpi small{font-size:12px!important;line-height:1.2!important;}
.tuv-kpi strong{display:none!important;}
.tuv-inline-action,
.tuv-linklike{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  background:transparent;
  color:#141927;
  padding:4px 7px;
  border-radius:6px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none!important;
  font-size:13px;
}
.tuv-inline-action:hover,
.tuv-linklike:hover,
.tuv-hover-action:hover,
.tuv-link:hover{
  background:#4a2ee8!important;
  color:#fff!important;
  border-color:#4a2ee8!important;
  text-decoration:none!important;
}
.tuv-step-text{font-weight:800;color:#141927;}
.tuv-modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:999999;align-items:center;justify-content:center;padding:22px;box-sizing:border-box;}
.tuv-modal.is-open{display:flex;}
.tuv-modal-box{width:min(720px,96vw);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--tuv-border);border-radius:14px;box-shadow:0 24px 80px rgba(15,23,42,.32);padding:22px;position:relative;box-sizing:border-box;}
.tuv-modal-box h3{margin:0 0 10px;border:0;padding:0;font-size:20px;}
.tuv-modal-box p{padding:0;margin:0 0 14px;color:#687086;font-weight:700;}
.tuv-modal-close{position:absolute;right:14px;top:12px;border:0;background:#f3f5fb;border-radius:8px;width:32px;height:32px;font-size:22px;line-height:1;cursor:pointer;color:#334155;}
.tuv-modal-close:hover{background:#4a2ee8;color:#fff;}
.tuv-checklist{display:grid;gap:9px;margin:16px 0;}
.tuv-checklist label{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;border:1px solid #e3e8f4;border-radius:8px;padding:10px 12px;background:#fbfcff;color:#1f2937;font-weight:700;font-size:13px;}
.tuv-checklist input{width:16px!important;height:16px!important;padding:0!important;}
.tuv-modal textarea{width:100%;min-height:95px;border:1px solid #d5dcec;border-radius:8px;padding:12px;box-sizing:border-box;background:#f8fafc;color:#1f2937;font-weight:600;}

/* v3.1: einheitliche Formular-Schriften, Tabellen-Look fuer Radiusliste und naechste Schritte */
.tuv-vc-wrap label,
.tuv-vc-wrap .tuv-form-grid label,
.tuv-vc-wrap .tuv-card label,
.tuv-vc-wrap .tuv-employee-form label{
  font-family:Inter,Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:800!important;
  color:#5c6376!important;
  letter-spacing:0!important;
}
.tuv-vc-wrap input,
.tuv-vc-wrap select,
.tuv-vc-wrap textarea,
.tuv-vc-wrap button,
.tuv-vc-wrap a{
  font-family:Inter,Arial,sans-serif!important;
}
.tuv-radius-results{max-height:420px!important;overflow:auto!important;}
.tuv-radius-results table.tuv-radius-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;}
.tuv-radius-results .tuv-radius-item{display:table-row!important;padding:0!important;border:0!important;background:transparent!important;cursor:pointer;}
.tuv-radius-results .tuv-radius-item td{padding:12px!important;border-bottom:1px solid #e7ebf4!important;border-right:1px solid #eef1f7!important;vertical-align:middle!important;background:#fff!important;}
.tuv-radius-results .tuv-radius-item:nth-child(even) td{background:#fcfdff!important;}
.tuv-radius-results .tuv-radius-item:hover td{background:#eef4ff!important;}
.tuv-radius-results .tuv-radius-item small{display:block;margin-top:4px;color:#687086;}
.tuv-radius-results th{background:#f8f9fc!important;color:#667085!important;text-transform:uppercase!important;font-size:11px!important;letter-spacing:.03em!important;font-weight:800!important;border-bottom:1px solid var(--tuv-border)!important;padding:12px!important;text-align:left!important;}
.tuv-inline-action{min-height:28px!important;line-height:1.2!important;vertical-align:middle!important;}
.tuv-step-text{display:inline-flex;align-items:center;min-height:28px;}
.tuv-vc-wrap .tuv-card h3 .tuv-btn.mini{min-height:30px!important;height:30px!important;}


/* v3.2: Priorität A grün + globale Schrift-/Label-Vereinheitlichung */
.tuv-vc-wrap,
.tuv-vc-wrap *{
  font-family: Inter, Arial, sans-serif;
}
.tuv-vc-wrap label,
.tuv-vc-wrap .tuv-form-grid label,
.tuv-vc-wrap .tuv-card label,
.tuv-vc-wrap .tuv-employee-form label,
.tuv-vc-wrap .tuv-filter label,
.tuv-vc-wrap .tuv-lead-form label{
  font-family: Inter, Arial, sans-serif!important;
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:800!important;
  color:#5c6376!important;
  letter-spacing:.01em!important;
  margin:0!important;
}
.tuv-vc-wrap th,
.tuv-vc-wrap .tuv-table-header,
.tuv-vc-wrap table thead th{
  font-family: Inter, Arial, sans-serif!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:800!important;
  color:#667085!important;
  text-transform:uppercase!important;
  letter-spacing:.03em!important;
}
.tuv-vc-wrap td,
.tuv-vc-wrap input,
.tuv-vc-wrap select,
.tuv-vc-wrap textarea,
.tuv-vc-wrap button,
.tuv-vc-wrap .tuv-btn,
.tuv-vc-wrap .tuv-link,
.tuv-vc-wrap .tuv-inline-action,
.tuv-vc-wrap .tuv-linklike,
.tuv-vc-wrap .tuv-step-text{
  font-family: Inter, Arial, sans-serif!important;
  font-size:13px!important;
  line-height:1.25!important;
}
.tuv-vc-wrap input,
.tuv-vc-wrap select,
.tuv-vc-wrap textarea{
  font-weight:600!important;
}
.tuv-vc-wrap .tuv-card h3,
.tuv-vc-wrap .tuv-card h3 span{
  font-family: Inter, Arial, sans-serif!important;
  font-size:16px!important;
  font-weight:800!important;
  letter-spacing:0!important;
}
/* A-Priorität soll positiv/grün markiert sein */
.tuv-priority-select.is-prio-a{
  background:#d7fae8!important;
  border-color:#86efac!important;
  color:#047857!important;
  font-weight:900!important;
}
.tuv-priority-select.is-prio-b{
  background:#fff1d3!important;
  border-color:#fcd58f!important;
  color:#92400e!important;
  font-weight:900!important;
}
.tuv-priority-select.is-prio-c{
  background:#e8edff!important;
  border-color:#c7d2fe!important;
  color:#273ea3!important;
  font-weight:900!important;
}
.badge.priority-a,
.badge.prio-a{
  background:#d7fae8!important;
  color:#047857!important;
}
.badge.priority-b,
.badge.prio-b{
  background:#fff1d3!important;
  color:#92400e!important;
}
.badge.priority-c,
.badge.prio-c{
  background:#e8edff!important;
  color:#273ea3!important;
}
.tuv-vc-wrap .tuv-form-grid,
.tuv-vc-wrap .tuv-lead-form .tuv-form-grid{
  gap:14px!important;
}


/* v3.3: responsive Optimierung für PC, Tablet und Smartphone */
.tuv-vc-wrap{width:100%;max-width:100%;overflow-x:hidden;}
.tuv-vc-main{width:calc(100% - 70px);max-width:100%;}
.tuv-vc-content{max-width:none;width:100%;}
.tuv-vc-frontend{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-left:0;border-right:0;}
.tuv-vc-frontend .tuv-vc-main{width:calc(100vw - 70px);}
.tuv-card, .tuv-table-wrap{max-width:100%;}
.tuv-card table{width:100%;}
.tuv-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.tuv-vc-wrap .tuv-btn,
.tuv-vc-wrap button,
.tuv-vc-wrap input,
.tuv-vc-wrap select,
.tuv-vc-wrap textarea{touch-action:manipulation;}
.tuv-vc-wrap .tuv-btn,
.tuv-vc-wrap button{min-height:42px;}
.tuv-route-panel{overflow:auto;}
.tuv-route-panel .tuv-btn{white-space:normal;}
.tuv-saved-routes table,
.tuv-wide,
.tuv-vc-wrap .tuv-card table{min-width:760px;}
.tuv-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.tuv-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.tuv-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.tuv-grid.search{grid-template-columns:minmax(320px,420px) 1fr;}
.tuv-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.tuv-form-grid.leads{grid-template-columns:minmax(240px,2fr) repeat(5,minmax(150px,1fr)) auto;}
.tuv-form-grid.edit{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.tuv-vc-wrap td, .tuv-vc-wrap th{word-break:normal;}
.tuv-vc-wrap td:first-child,.tuv-vc-wrap th:first-child{white-space:nowrap;}
.tuv-vc-wrap .tuv-leaflet-map{z-index:1;}
.tuv-planning-layout{display:grid;grid-template-columns:minmax(620px,1.6fr) minmax(340px,.75fr);gap:14px;align-items:stretch;}
.tuv-planning-layout .tuv-card{margin-bottom:0;}
.tuv-route-lead-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.tuv-route-lead-table table{min-width:900px;}

@media (max-width: 1500px){
  .tuv-vc-content{padding:18px 18px 54px;}
  .tuv-form-grid.leads{grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr auto;}
  .tuv-leaflet-map.planning{height:480px!important;min-height:480px!important;}
}

@media (max-width: 1280px){
  .tuv-grid.three{grid-template-columns:1fr 1fr;}
  .tuv-grid.two,.tuv-grid.search{grid-template-columns:1fr;}
  .tuv-planning-layout{grid-template-columns:1fr!important;}
  .tuv-route-panel{min-height:auto!important;max-height:none!important;}
  .tuv-leaflet-map.planning{height:440px!important;min-height:440px!important;}
  .tuv-form-grid.leads{grid-template-columns:repeat(3,minmax(190px,1fr));}
  .tuv-form-grid.leads .tuv-btn{width:100%;}
}

@media (max-width: 1024px){
  .tuv-vc-wrap{min-height:100vh;}
  .tuv-vc-main{width:calc(100% - 64px);}
  .tuv-vc-sidebar{width:64px;}
  .tuv-vc-logo{width:52px;height:52px;border-radius:12px;}
  .tuv-vc-logo img{width:52px;height:52px;}
  .tuv-vc-sidebar nav a{width:42px;height:42px;}
  .tuv-vc-top{height:auto;min-height:74px;padding:16px 18px;gap:14px;align-items:flex-start;}
  .tuv-vc-top h1{font-size:24px;}
  .tuv-vc-actions{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));width:100%;}
  .tuv-vc-actions .tuv-btn{width:100%;box-sizing:border-box;}
  .tuv-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .tuv-grid.three,.tuv-grid.two{grid-template-columns:1fr;}
  .tuv-form-grid,.tuv-form-grid.leads,.tuv-form-grid.edit{grid-template-columns:1fr 1fr;}
  .tuv-card{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tuv-leaflet-map{height:360px!important;min-height:360px!important;}
  .tuv-leaflet-map.planning{height:420px!important;min-height:420px!important;}
}

@media (max-width: 782px){
  html.wp-toolbar .tuv-vc-wrap{margin-top:0;}
  .tuv-vc-wrap{display:flex;flex-direction:column;border-left:0;border-right:0;min-height:100vh;}
  .tuv-vc-main,.tuv-vc-frontend .tuv-vc-main{width:100%;}
  .tuv-vc-sidebar{position:sticky;top:0;width:100%;height:auto;min-height:64px;flex-direction:row;align-items:center;justify-content:flex-start;padding:8px 10px;box-sizing:border-box;z-index:999;background:linear-gradient(90deg,var(--tuv-blue),var(--tuv-purple));}
  .tuv-vc-logo{width:50px;height:50px;min-width:50px;margin:0 8px 0 0;}
  .tuv-vc-logo img{width:50px;height:50px;}
  .tuv-vc-sidebar nav{flex-direction:row;gap:6px;width:auto;max-width:calc(100vw - 76px);overflow-x:auto;overflow-y:hidden;padding:0;scrollbar-width:thin;-webkit-overflow-scrolling:touch;}
  .tuv-vc-sidebar nav a{width:42px;min-width:42px;height:42px;border-radius:10px;}
  .tuv-vc-sidebar nav a .screen-reader-text{display:none;}
  .tuv-vc-top{padding:14px 14px 12px;}
  .tuv-vc-top h1{font-size:22px;margin-bottom:5px;}
  .tuv-vc-top p{font-size:12px;}
  .tuv-vc-content{padding:14px 12px 48px;}
  .tuv-vc-actions{grid-template-columns:1fr 1fr;gap:8px;}
  .tuv-kpi-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .tuv-kpi{min-height:58px;padding:10px;}
  .tuv-kpi .tuv-kpi-icon{width:38px!important;height:38px!important;min-width:38px!important;font-size:13px!important;}
  .tuv-card{border-radius:10px;margin-bottom:12px;}
  .tuv-card h3{font-size:15px!important;padding:12px 14px;}
  .tuv-form-grid,.tuv-form-grid.leads,.tuv-form-grid.edit{grid-template-columns:1fr!important;padding:14px;gap:12px!important;}
  .tuv-form-grid input,.tuv-form-grid select,.tuv-card input,.tuv-card select,.tuv-card textarea{height:44px;font-size:16px!important;}
  .tuv-vc-wrap .tuv-btn,.tuv-vc-wrap button{min-height:44px;font-size:14px!important;}
  .tuv-btn{width:100%;box-sizing:border-box;}
  .tuv-widget-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .tuv-vc-wrap table{min-width:720px;}
  .tuv-vc-wrap th,.tuv-vc-wrap td{padding:10px 9px!important;font-size:12px!important;}
  .tuv-card p{padding:12px;}
  .tuv-leaflet-map,.tuv-leaflet-map.planning{height:360px!important;min-height:360px!important;}
  .tuv-card.map{min-height:390px!important;padding:10px;}
  .tuv-planning-layout{grid-template-columns:1fr!important;gap:12px;}
  .tuv-route-panel{min-height:auto!important;max-height:none!important;}
  .tuv-route-lead-selector summary{padding:12px 14px;}
  .tuv-modal{padding:12px;}
  .tuv-modal-box{width:100%;max-height:88vh;border-radius:12px;padding:18px;}
}

@media (max-width: 560px){
  .tuv-vc-top{gap:12px;}
  .tuv-vc-actions{grid-template-columns:1fr;}
  .tuv-kpi-grid{grid-template-columns:1fr;}
  .tuv-kpi{gap:10px;}
  .tuv-kpi small{font-size:11px!important;}
  .tuv-leaflet-map,.tuv-leaflet-map.planning{height:315px!important;min-height:315px!important;}
  .tuv-card.map{min-height:340px!important;}
  .tuv-radius-results{max-height:300px!important;}
  .tuv-radius-results table.tuv-radius-table{min-width:680px!important;}
  .tuv-vc-wrap table{min-width:680px;}
  .tuv-vc-wrap th,.tuv-vc-wrap td{padding:9px 8px!important;}
  .badge{font-size:11px;padding:3px 7px;}
  .tuv-inline-action,.tuv-linklike{width:100%;justify-content:center;margin:2px 0;}
}

@media (max-width: 420px){
  .tuv-vc-content{padding:10px 8px 40px;}
  .tuv-vc-top{padding:12px 10px;}
  .tuv-vc-top h1{font-size:20px;}
  .tuv-vc-sidebar{padding:7px 8px;}
  .tuv-vc-logo{width:46px;height:46px;min-width:46px;}
  .tuv-vc-logo img{width:46px;height:46px;}
  .tuv-vc-sidebar nav a{width:40px;min-width:40px;height:40px;}
  .tuv-card h3{font-size:14px!important;}
  .tuv-leaflet-map,.tuv-leaflet-map.planning{height:300px!important;min-height:300px!important;}
}
