/*
 Theme Name:   TonnEstate CRM
 Template:     generatepress
 Version:      1.0.1
 Cleaned:      2026-01-13 (GPT)
 Scope:
  - Deduplicated rules; "last rule wins" logic is baked in (no repeats)
  - Fixed missing hero->section gap (enterprise spacing)
  - Icon bar: thinner, outline-first icons (stroke), less bulky buttons
  - Mobile: prevent duplicate navigation wrappers
*/
@charset "UTF-8";

/* =========================================================
   0) Design Tokens
   ========================================================= */
:root{
  --te-black: #0b0c0e;
  --te-text:  #0b0c0e;
  --te-muted: #2a2f35;
  --te-accent:#2aa6a0;

  --te-radius-sm: 10px;
  --te-radius-md: 12px;
  --te-radius-lg: 16px;

  --te-container: 1200px;

  --te-shadow-md: 0 18px 40px rgba(0,0,0,.10);
  --te-shadow-sm: 0 10px 26px rgba(0,0,0,.06);
}

/* =========================================================
   1) Header / Navigation stable, NON-sticky
   ========================================================= */

/* Black header */
.site-header,
.site-header .inside-header,
.main-navigation,
.main-navigation .inside-navigation{
  background: var(--te-black) !important;
}

/* Nav links: no underline, clean hover */
.main-navigation a,
.main-navigation a:visited,
.main-navigation .main-nav ul li a{
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
.main-navigation a:hover,
.main-navigation a:focus{
  text-decoration: none !important;
  opacity: .88;
}

/* Hard-disable sticky/fixed header artifacts */
#masthead,
.site-header,
.main-navigation,
#site-navigation,
.navigation-stick,
.is_stuck,
.sticky-enabled,
.sticky,
.stuck,
.headroom,
.headroom--pinned,
.headroom--unpinned{
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
}

/* Kill sticky placeholders/spacers */
.sticky-spacer,
.navigation-stick-placeholder,
#sticky-placeholder,
.generate-sticky-placeholder{
  display: none !important;
  height: 0 !important;
}

/* Logo sizing */
.site-logo img{
  max-height: 46px;
  width: auto;
  height: auto;
}

/* Header padding */
.inside-header{
  padding-top: 10px;
  padding-bottom: 10px;
}

/* Hide GP default text menus using icon rail + burger */
#site-navigation .main-nav,
#site-navigation #primary-menu,
#mobile-menu-control-wrapper .main-nav{
  display: none !important;
}

/* Hide GP built-in menu toggle */
.main-navigation .menu-toggle{ display: none !important; }

/* Icon bar container on the right */
.main-navigation .menu-bar-items{
  margin-left: auto;
  background: transparent !important;
}

/* Ensure wrappers align */
.main-navigation .inside-navigation,
.main-navigation .menu-bar-items{
  display: flex !important;
  align-items: center !important;
}

/* =========================================================
   2) Top Icon Navigation thin, outlined, enterprise
   ========================================================= */

.te-nav-icons{
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px;                     /* a bit more air */
  padding: 0 !important;
  margin: 0 !important;
  height: 54px;                  /* stable reference */
  background: transparent !important;
}

/* Unified icon buttons (less bulky) */
.te-icon-link,
.te-burger{
  width: 44px !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;

  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.02) !important;

  color: rgba(255,255,255,.90) !important;
  box-shadow: none !important;
  outline: none !important;
  transform: none !important;
  cursor: pointer;
}

.te-icon-link:hover,
.te-burger:hover,
.te-icon-link:focus-visible,
.te-burger:focus-visible{
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.18) !important;
}

.te-icon-link:active,
.te-burger:active{
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.22) !important;
}

/* Accessible focus ring */
.te-icon-link:focus-visible,
.te-burger:focus-visible{
  outline: 2px solid rgba(150,160,170,.70) !important;
  outline-offset: 2px !important;
}

/* SVG sizing */
.te-icon-link svg,
.te-burger svg{
  width: 22px !important;
  height: 22px !important;
  display: block !important;
  transform: translateY(.4px);
}

/*
  OUTLINE-FIRST ICONS:
  - If your SVG already has strokes (recommended), this makes them look crisp.
  - If your SVG is fill-only, it will still show because we keep a safe fallback.
  Best practice: use Lucide/Feather-like SVGs: fill="none" stroke="currentColor".
*/
.te-icon-link svg,
.te-burger svg{
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.6 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* Fallback: if a fill-only icon has no stroke, allow fill */
.te-icon-link svg[fill="currentColor"],
.te-icon-link svg[fill="white"],
.te-icon-link svg[fill="#fff"],
.te-burger svg[fill="currentColor"],
.te-burger svg[fill="white"],
.te-burger svg[fill="#fff"]{
  fill: currentColor !important;
  stroke: none !important;
}

/* Kill accidental backgrounds inside menu-bar-items */
.menu-bar-items,
.menu-bar-items *{
  background-color: transparent !important;
}

/* =========================================================
   3) Drawer (Burger Menu)
   ========================================================= */

.te-drawer-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
  z-index: 11999;
}
.te-drawer-backdrop.is-open{
  opacity: 1;
  pointer-events: auto;
}

.te-drawer{
  position: fixed;
  top: 0;
  right: 0;
  width: min(360px, 92vw);
  height: 100vh;
  background: var(--te-black);
  transform: translateX(100%);
  transition: transform .22s ease;
  z-index: 12000;
  border-left: 1px solid rgba(255,255,255,.10);
}
.te-drawer.is-open{ transform: translateX(0); }

.te-drawer-inner{
  padding: 18px;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 14px;
}

.te-drawer-close{
  justify-self: end;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
}
.te-drawer-close:hover{ background: rgba(255,255,255,.10); }

.te-drawer-nav a{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 10px;
  color: #fff;
  border-radius: 10px;

  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
.te-drawer-nav a svg{ width: 18px; height: 18px; }
.te-drawer-nav a:hover{ background: rgba(255,255,255,.08); }
.te-drawer-nav a:focus-visible{
  outline: 2px solid rgba(150,160,170,.55);
  outline-offset: 2px;
}
.te-drawer-nav hr{
  border: 0;
  height: 1px;
  background: rgba(255,255,255,.12);
  margin: 10px 0;
}

/* Scroll lock helper */
.te-drawer-open{ overflow: hidden; }

/* =========================================================
   4) HERO White / Enterprise
   ========================================================= */

.te-hero{
  position: relative;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.06);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

/* subtle background aura */
.te-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 320px at 70% 20%, rgba(135,147,160,.14), transparent 60%),
    radial-gradient(700px 260px at 30% 0%, rgba(42,166,160,.10), transparent 55%);
  pointer-events: none;
}

.te-hero-inner{
  position: relative;
  z-index: 1;
  max-width: var(--te-container);
  margin: 0 auto;
  padding: 22px 24px 18px;      /* bottom restored = visible gap */
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 10px;                    /* a little more breathing room */
  align-items: start;
}

.te-hero-left{ padding-top: 4px; }

.te-pill{
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #111;
  background: rgba(0,0,0,.035);
  border: 1px solid rgba(0,0,0,.08);
  margin: 0 0 14px;
}

.te-hero-title{
  margin: 0 0 14px;
  font-size: clamp(36px, 4.2vw, 54px);
  line-height: 1.06;
  color: var(--te-text);
  letter-spacing: -0.025em;
  max-width: 21ch;
}

.te-hero-sub{
  margin: 0 0 22px;
  color: var(--te-muted);
  font-size: 16px;
  line-height: 1.68;
  max-width: 62ch;
}

.te-hero-actions{
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}

/* Buttons */
.te-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 48px;
  padding: 0 20px;
  min-width: 172px;

  box-sizing: border-box;
  border-radius: var(--te-radius-md);
  border: 1px solid transparent;

  font-size: 14.5px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
.te-btn-primary{
  background: var(--te-accent);
  color: #fff;
  border-color: var(--te-accent);
}
.te-btn-primary:hover{ filter: brightness(0.96); }

.te-btn-secondary{
  background: rgba(0,0,0,.035);
  color: var(--te-text);
  border-color: rgba(0,0,0,.06);
}
.te-btn-secondary:hover{ background: rgba(0,0,0,.055); }

/* Right card */
.te-hero-card{
  background: linear-gradient(180deg, #f2f3f5 0%, #e4e7ea 55%, #d6dbe0 100%);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: var(--te-radius-lg);
  padding: 20px;
  box-shadow: var(--te-shadow-md);
}

.te-hero-card-title{
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .01em;
  color: var(--te-text);
}

.te-flow{ display: grid; gap: 12px; }

.te-flow-node{
  display: flex;
  gap: 12px;
  padding: 16px;
  background: rgba(255,255,255,.75);
  border-radius: 14px;
  border: 2px solid rgba(50,57,64,.34);
}

.te-flow-badge{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: var(--te-text);
  background: rgba(42,166,160,.14);
  border: 1px solid rgba(42,166,160,.35);
  flex: 0 0 auto;
}

.te-flow-title{
  font-weight: 800;
  color: var(--te-text);
  margin-top: 1px;
}

.te-flow-text{
  color: var(--te-muted);
  font-size: 13px;
  line-height: 1.45;
  margin-top: 3px;
  max-width: 44ch;
}

.te-hero-note{
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.10);
  color: var(--te-muted);
  font-size: 12px;
  line-height: 1.5;
}

/* =========================================================
   5) Sections ï¿½ Enterprise Base
   ========================================================= */

.te-container{
  max-width: var(--te-container);
  margin: 0 auto;
  padding: 0 24px;
}

.te-section{
  padding: 64px 0;
  background: #fff;
}

.te-section-soft{
  background: #f7f8fa;
  border-top: 1px solid rgba(0,0,0,.05);
  border-bottom: 1px solid rgba(0,0,0,.05);
}

.te-eyebrow{
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(0,0,0,.55);
  margin-bottom: 10px;
}

.te-h2{
  font-size: clamp(26px, 2.6vw, 36px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  color: var(--te-text);
}

.te-lead{
  margin: 0 0 26px;
  color: var(--te-muted);
  font-size: 16px;
  line-height: 1.7;
  max-width: 75ch;
}

.te-grid-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.te-grid-3{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.te-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: var(--te-radius-lg);
  padding: 18px;
  box-shadow: var(--te-shadow-sm);
}

.te-card-title{
  font-weight: 800;
  margin: 0 0 8px;
  color: var(--te-text);
}

.te-card-text{
  margin: 0;
  color: var(--te-muted);
  font-size: 14px;
  line-height: 1.6;
}

.te-list{
  margin: 0;
  padding-left: 18px;
  color: var(--te-muted);
  line-height: 1.7;
  font-size: 14px;
}

/* Hide old markup leftovers */
.te-top-actions,
.te-top-link,
.te-top-cta,
.te-top-login,
.te-top-register,
.te-app-toggle{
  display: none !important;
}

/* =========================================================
   6) Remove unwanted vertical gaps between sections (GP spacing)
   ========================================================= */

/* Remove section margins injected by WP/GP */
.entry-content > section{
  margin: 0 !important;
}

/* Enterprise hero -> first section gap (your screenshot: too tight) */
.entry-content > section.te-hero + section.te-section{
  padding-top: 36px !important;  /* visible, clean gap */
}

/* Also handle non-section blocks inserted between hero and section */
.entry-content > section.te-hero + p,
.entry-content > section.te-hero + p:empty,
.entry-content > section.te-hero + .wp-block-spacer{
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* =========================================================
   7) Modal ï¿½ Enterprise (Centered + Layering)
   ========================================================= */

#masthead,
.site-header,
.main-navigation,
#site-navigation{
  z-index: 1000 !important;
  position: relative;
}

.te-modal{
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px 18px;
}
.te-modal[aria-hidden="false"]{ display: flex; }

.te-modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(10,12,14,.62);
  backdrop-filter: blur(2px);
}

.te-modal-panel{
  position: relative;
  z-index: 1;
  width: min(760px, 96vw);
  max-height: calc(100vh - 56px);
  overflow: auto;

  margin: 0;
  padding: 18px 18px 16px;

  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
}

.te-modal-close{
  position: absolute;
  top: 12px;
  right: 12px;

  width: 38px;
  height: 38px;

  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.03);
  color: #111;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
}
.te-modal-close:hover{ background: rgba(0,0,0,.06); }

.te-modal-head{
  padding: 4px 48px 12px 2px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  margin-bottom: 14px;
}

.te-modal-title{
  font-size: 16px;
  font-weight: 800;
  color: var(--te-text);
}

.te-modal-sub{
  margin-top: 4px;
  font-size: 13px;
  color: var(--te-muted);
  line-height: 1.45;
}

html.te-modal-lock,
html.te-modal-lock body{
  overflow: hidden !important;
}

/* =========================================================
   8) PreReg Form ï¿½ Enterprise UI
   ========================================================= */

.te-prereg{ margin: 0; }
.te-prereg-form{ margin: 0; }

.te-prereg-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  margin-top: 10px;
  margin-bottom: 12px;
}

.te-prereg-grid label{
  display: grid;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: rgba(0,0,0,.72);
}

.te-prereg-grid input[type="text"],
.te-prereg-grid input[type="email"]{
  width: 100%;
  height: 44px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  box-shadow: none;
  font-size: 14px;
  color: var(--te-text);
}

.te-prereg-grid input::placeholder{ color: rgba(0,0,0,.35); }

.te-prereg-grid input:focus{
  outline: none;
  border-color: rgba(42,166,160,.55);
  box-shadow: 0 0 0 4px rgba(42,166,160,.18);
}

.te-prereg-consent{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.02);
  margin: 12px 0 12px;
  font-size: 13px;
  color: var(--te-muted);
  line-height: 1.45;
}

.te-prereg-consent input{
  margin-top: 2px;
  width: 16px;
  height: 16px;
}

.te-prereg-consent a{
  color: var(--te-accent);
  text-decoration: none;
  font-weight: 700;
}
.te-prereg-consent a:hover{ opacity: .85; }

.te-prereg-msg{
  padding: 10px 12px;
  border-radius: 12px;
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
}
.te-prereg-ok{
  background: rgba(42,166,160,.12);
  border: 1px solid rgba(42,166,160,.25);
  color: #0b0c0e;
}
.te-prereg-err{
  background: rgba(220,50,50,.10);
  border: 1px solid rgba(220,50,50,.25);
  color: #0b0c0e;
}

.te-prereg-form .te-btn{ min-width: 0; }

@media (max-width: 700px){
  .te-prereg-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   9) AuthX (Shortcode: [te_login])
   ========================================================= */

.te-authx{ padding: clamp(18px, 3vw, 44px); }
.te-authx-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(16px, 2.5vw, 30px);
  align-items: stretch;
}
@media (max-width: 920px){
  .te-authx-grid{ grid-template-columns: 1fr; }
}

.te-authx-left{
  border-radius: 18px;
  padding: clamp(18px, 3vw, 36px);
  border: 1px solid rgba(0,0,0,.06);
  background:
    radial-gradient(900px 320px at 70% 20%, rgba(135,147,160,.16), transparent 60%),
    radial-gradient(700px 260px at 30% 0%, rgba(42,166,160,.12), transparent 55%),
    #fff;
}

.te-authx-brand{ display:flex; gap:14px; align-items:center; margin-bottom: 18px; }
.te-authx-logo{
  width:44px; height:44px; border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(42,166,160,.16);
  border: 1px solid rgba(42,166,160,.30);
  font-weight: 900;
  color: var(--te-text);
}
.te-authx-name{ font-weight: 900; letter-spacing:.2px; color: var(--te-text); }
.te-authx-tag{ color: var(--te-muted); font-size: 14px; margin-top:2px; }

.te-authx-h1{ font-size: clamp(22px, 2.6vw, 34px); margin: 12px 0 10px; color: var(--te-text); }
.te-authx-p{ color: var(--te-muted); margin: 0 0 18px; max-width: 62ch; line-height: 1.7; }

.te-authx-bullets{ list-style:none; padding:0; margin: 0 0 18px; display:grid; gap:10px; }
.te-authx-bullets li{ display:flex; gap:10px; align-items:flex-start; color: var(--te-muted); }
.te-authx-dot{
  width:10px; height:10px; border-radius: 999px; margin-top:6px;
  background: rgba(42,166,160,.78);
  box-shadow: 0 0 0 6px rgba(42,166,160,.10);
}

.te-authx-footnote{ margin-top: 18px; color: rgba(0,0,0,.55); font-size: 14px; }
.te-authx-sep{ margin: 0 8px; opacity:.55; }

.te-authx-link{
  text-decoration:none;
  border-bottom: 1px solid rgba(0,0,0,.20);
  color: var(--te-text);
}
.te-authx-link:hover{ border-bottom-color: rgba(0,0,0,.40); }

.te-authx-right{ display:flex; }
.te-authx-card{
  width:100%;
  border-radius: 18px;
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: var(--te-shadow-sm);
}

.te-authx-cardhead{ margin-bottom: 14px; }
.te-authx-title{ font-size: 20px; font-weight: 900; color: var(--te-text); }
.te-authx-sub{ color: var(--te-muted); margin-top:4px; }

.te-authx-alert{
  border-radius: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(220,70,70,.22);
  background: rgba(220,70,70,.08);
  margin: 10px 0 12px;
  color: var(--te-text);
}

.te-authx-form{ display:grid; gap:12px; margin-top: 10px; }
.te-authx-field span{ display:block; font-size: 13px; font-weight: 700; opacity:.85; margin-bottom:6px; color: var(--te-text); }
.te-authx-field input{
  width:100%;
  padding:12px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
  color: var(--te-text);
  outline: none;
}
.te-authx-field input:focus{
  border-color: rgba(42,166,160,.55);
  box-shadow: 0 0 0 4px rgba(42,166,160,.14);
}

.te-authx-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:14px;
  color: var(--te-muted);
}
.te-authx-remember{ display:flex; gap:8px; align-items:center; }
.te-authx-btnfull{ width:100%; justify-content:center; margin-top: 4px; }
.te-authx-alt{ margin-top: 10px; color: var(--te-muted); display:flex; gap:8px; justify-content:center; }

/* Button hardening */
a.te-btn{ text-decoration: none !important; }
button.te-btn{ appearance: none; -webkit-appearance: none; }
.te-btn:focus-visible{
  outline: 2px solid rgba(150,160,170,.70);
  outline-offset: 2px;
}

/* =========================================================
   10) Footer ï¿½ Enterprise (GeneratePress Hook)
   ========================================================= */

.site-footer{
  background: #0b0c0e !important;
  border-top: 1px solid rgba(255,255,255,.08);
}

.te-footer{ background: #0b0c0e; }

.te-footer-inner{
  max-width: var(--te-container);
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.te-footer-left{
  color: rgba(255,255,255,.65);
  font-size: 13px;
  line-height: 1.4;
}

.te-footer-right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.te-footer-right a{
  color: rgba(255,255,255,.75);
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  font-size: 13px;
  line-height: 1.4;
  padding: 6px 6px;
  border-radius: 8px;
}
.te-footer-right a:hover{ opacity: .85; }
.te-footer-right a:focus-visible{
  outline: 2px solid rgba(150,160,170,.70);
  outline-offset: 2px;
}
.te-footer-sep{ color: rgba(255,255,255,.35); }

@media (max-width: 768px){
  .te-footer-inner{
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 16px 20px;
    gap: 10px;
  }
  .te-footer-right{
    justify-content: center;
    gap: 8px;
  }
  .te-footer-right a{ padding: 10px 10px; }
}

/* =========================================================
   11) Responsive ï¿½ general
   ========================================================= */
@media (max-width: 980px){
  .te-hero-inner{
    grid-template-columns: 1fr;
    padding: 46px 20px 22px;
  }
  .te-btn{ min-width: 0; width: auto; }
  .te-section{ padding: 56px 0; }
  .te-grid-2{ grid-template-columns: 1fr; }
  .te-grid-3{ grid-template-columns: 1fr; }
}

/* Prevent duplicate mobile navigation wrappers */
@media (max-width: 768px){
  nav.main-navigation.mobile-menu-control-wrapper{ display:none !important; }
  nav.main-navigation.has-menu-bar-items.sub-menu-right{ display:block !important; }
}
:root{
  --te-bg: #0b0c0e;
  --te-surface: #ffffff;
  --te-surface-2: #f6f8fa;
  --te-text: #0b0c0e;
  --te-muted: #5a6672;
  --te-line: rgba(15, 23, 42, .10);
  --te-accent: #2aa6a0;

  --te-radius: 16px;
  --te-shadow: 0 10px 28px rgba(0,0,0,.08);
  --te-font: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  /* Touch targets */
  --te-tap: 44px;
}

.te-app{
  font-family: var(--te-font);
  display: grid;
  grid-template-columns: 280px 1fr;
  background: var(--te-surface-2);
  border: 1px solid var(--te-line);
  border-radius: 18px;
  overflow: hidden;
}

.te-sidebar{
  background: var(--te-bg);
  color: #fff;
  border-right: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-direction: column;
}

.te-sidebar__brand{
  display: flex;
  gap: 12px;
  padding: 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.te-logo-mark{
  width: 38px; height: 38px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(42,166,160,.95), rgba(42,166,160,.35));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

.te-brand-title{ font-weight: 800; letter-spacing: .2px; }
.te-brand-sub{ font-size: 12px; opacity: .70; margin-top: 2px; }

.te-nav{ padding: 10px; display: flex; flex-direction: column; gap: 4px; }

.te-nav__item{
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 12px;
  color: rgba(255,255,255,.88);
  text-decoration: none;
  transition: transform .12s ease, background .12s ease;
  min-height: var(--te-tap);
}

.te-nav__item:hover{ background: rgba(255,255,255,.08); transform: translateY(-1px); }
.te-nav__item.is-active{
  background: rgba(42,166,160,.16);
  box-shadow: inset 0 0 0 1px rgba(42,166,160,.35);
  color: #fff;
}

.te-ico svg{ width: 20px; height: 20px; color: rgba(255,255,255,.92); }

.te-main{ padding: 22px; }

.te-topbar{
  display: flex;
  gap: 14px;
  align-items: flex-end;
  justify-content: space-between;
  padding: 18px;
  background: var(--te-surface);
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
}

.te-h1{ margin: 0; font-size: 22px; }
.te-sub{ margin-top: 6px; font-size: 13px; color: var(--te-muted); }

.te-topbar__right{
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.te-search{
  display: flex;
  align-items: center;
  border: 1px solid var(--te-line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  min-height: var(--te-tap);
}

.te-search__input{
  border: 0;
  padding: 12px 12px;
  min-width: 260px;
  outline: none;
  font-size: 14px;
}

.te-search__btn{
  border: 0;
  padding: 12px 14px;
  min-height: var(--te-tap);
  font-weight: 800;
  background: rgba(42,166,160,.10);
  color: var(--te-text);
  cursor: pointer;
}

.te-btn{
  min-height: var(--te-tap);
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(42,166,160,.35);
  background: var(--te-accent);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.te-btn--ghost{
  background: #fff;
  color: var(--te-text);
  border-color: var(--te-line);
}

.te-tiles{
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.te-tile{
  text-align: left;
  background: var(--te-surface);
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  padding: 14px 14px 12px;
}

.te-tile--tap{
  cursor: pointer;
  min-height: 92px;
  transition: transform .12s ease, box-shadow .12s ease;
}

.te-tile--tap:hover{ transform: translateY(-1px); }
.te-tile__title{ font-size: 13px; color: var(--te-muted); font-weight: 700; }
.te-tile__metric{ font-size: 28px; font-weight: 900; margin-top: 8px; }
.te-tile__meta{ font-size: 12px; color: var(--te-muted); margin-top: 3px; }

.te-panel{
  margin-top: 12px;
  background: var(--te-surface);
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  overflow: hidden;
}

.te-panel__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border-bottom: 1px solid var(--te-line);
}

.te-segment{
  display: inline-flex;
  gap: 6px;
  background: #fff;
  padding: 6px;
  border: 1px solid var(--te-line);
  border-radius: 14px;
}

.te-seg{
  min-height: var(--te-tap);
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  font-weight: 900;
  color: var(--te-muted);
  cursor: pointer;
}

.te-seg.is-active{
  color: var(--te-text);
  background: rgba(42,166,160,.08);
  border-color: rgba(42,166,160,.30);
}

.te-actions{ display: inline-flex; gap: 8px; align-items: center; }

.te-tablewrap{ overflow: auto; background: #fff; }

.te-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.te-table thead th{
  position: sticky;
  top: 0;
  background: #fbfcfd;
  border-bottom: 1px solid var(--te-line);
  padding: 12px;
  text-align: left;
  color: var(--te-muted);
  font-weight: 900;
  white-space: nowrap;
}

.te-table td{
  padding: 14px 12px;
  border-bottom: 1px solid var(--te-line);
  vertical-align: top;
}

.te-table--touch .te-row{
  cursor: pointer;
}

.te-table--touch .te-row:hover{
  background: rgba(42,166,160,.04);
}

.te-row:focus{
  outline: 2px solid rgba(42,166,160,.40);
  outline-offset: -2px;
  background: rgba(42,166,160,.06);
}

.te-dim{ font-size: 12px; color: var(--te-muted); margin-top: 2px; }

.te-chip{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(42,166,160,.30);
  background: rgba(42,166,160,.08);
  font-weight: 900;
  font-size: 12px;
  color: var(--te-text);
}

.te-chip--alt{
  border-color: rgba(59,130,246,.25);
  background: rgba(59,130,246,.08);
}

.te-pill{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--te-line);
  background: #fff;
  font-weight: 900;
  font-size: 12px;
}

.te-pill--warn{
  border-color: rgba(245,158,11,.35);
  background: rgba(245,158,11,.10);
}

/* Responsive */
@media (max-width: 1100px){
  .te-app{ grid-template-columns: 1fr; }
  .te-sidebar{ display: none; }
  .te-tiles{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px){
  .te-tiles{ grid-template-columns: 1fr; }
  .te-search__input{ min-width: 180px; }
}
:root{
  --te-bg: #f4f6f8;
  --te-surface: #ffffff;
  --te-surface-2: #fbfcfd;
  --te-text: #0b0c0e;
  --te-muted: #6b7280;
  --te-line: rgba(15,23,42,.12);
  --te-accent: #2b78c6;

  --te-radius: 12px;
  --te-shadow: 0 6px 18px rgba(0,0,0,.06);
  --te-font: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  --te-tap: 44px;
}

.te-dv{
  font-family: var(--te-font);
  background: var(--te-bg);
  display: grid;
  grid-template-columns: 260px 1fr;
  border: 1px solid var(--te-line);
  border-radius: 14px;
  overflow: hidden;
  min-height: 78vh;
}

/* Sidebar - WEISS */
.te-dv__sb{
  background: var(--te-surface-2);
  border-right: 1px solid var(--te-line);
  display: flex;
  flex-direction: column;
}

.te-dv__logo{
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border-bottom: 1px solid var(--te-line);
  background: #fff;
}

.te-dv__mark{
  width: 34px; height: 34px;
  border-radius: 10px;
  background: radial-gradient(circle at 30% 30%, rgba(43,120,198,.35), rgba(43,120,198,.12));
  box-shadow: inset 0 0 0 1px rgba(43,120,198,.18);
}

.te-dv__brand{ font-weight: 900; letter-spacing: .2px; }
.te-dv__brandsub{ font-size: 12px; color: var(--te-muted); margin-top: 2px; }

.te-dv__nav{ padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.te-dv__navitem{
  text-decoration: none;
  color: var(--te-text);
  padding: 10px 12px;
  border-radius: 10px;
  min-height: var(--te-tap);
  display: flex;
  align-items: center;
  border: 1px solid transparent;
}
.te-dv__navitem:hover{
  background: rgba(43,120,198,.05);
  border-color: rgba(43,120,198,.14);
}
.te-dv__navitem.is-active{
  background: rgba(43,120,198,.10);
  border-color: rgba(43,120,198,.22);
  font-weight: 800;
}

.te-dv__navsep{ height: 10px; }

.te-dv__cta{
  margin-top: auto;
  padding: 12px;
  border-top: 1px solid var(--te-line);
  background: #fff;
}

/* Main */
.te-dv__main{ padding: 16px; }

.te-dv__topbar{
  background: #fff;
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  overflow: hidden;
}

.te-dv__filters{
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 12px;
  flex-wrap: wrap;
}

.te-dv__select,
.te-dv__input{
  height: var(--te-tap);
  border: 1px solid var(--te-line);
  border-radius: 10px;
  padding: 0 12px;
  background: #fff;
  font-weight: 700;
}

.te-dv__input{ min-width: 220px; }

.te-dv__btn{
  height: var(--te-tap);
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid var(--te-line);
  background: #fff;
  font-weight: 900;
  cursor: pointer;
}

.te-dv__btn--primary{
  background: var(--te-accent);
  border-color: rgba(43,120,198,.35);
  color: #fff;
}

.te-dv__btn--ghost{
  width: 100%;
  background: #fff;
}


/* KPIs */
.te-dv__kpis{
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
}

.te-kpi{
  background: #fff;
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  padding: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
}

.te-kpi__ico{
  width: 38px; height: 38px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(43,120,198,.10);
  border: 1px solid rgba(43,120,198,.18);
  font-weight: 900;
  color: rgba(15,23,42,.70);
}

.te-kpi__label{ font-size: 12px; color: var(--te-muted); font-weight: 800; }
.te-kpi__value{ font-size: 18px; font-weight: 900; margin-top: 2px; }

/* Content grid */
.te-dv__grid{
  margin-top: 12px;
  display: grid;
  grid-template-columns: 1.6fr .9fr;
  gap: 12px;
  align-items: start;
}

.te-card{
  background: #fff;
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  overflow: hidden;
}
.te-card--xl{ grid-row: span 2; }

.te-card__head{
  padding: 12px;
  border-bottom: 1px solid var(--te-line);
  background: var(--te-surface-2);
}
.te-card__title{ font-weight: 900; }
.te-card__meta{ margin-top: 4px; font-size: 12px; color: var(--te-muted); }

.te-card__body{ padding: 12px; }

/* Touch Tiles */
.te-tiles{
  padding: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
}

.te-tile{
  min-height: 86px;
  border-radius: 12px;
  border: 1px solid var(--te-line);
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.05);
  cursor: pointer;
  display: grid;
  place-items: center;
  gap: 8px;
  padding: 10px;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}

.te-tile:hover{
  transform: translateY(-1px);
  border-color: rgba(43,120,198,.22);
  background: rgba(43,120,198,.02);
}

.te-tile:focus{
  outline: 2px solid rgba(43,120,198,.35);
  outline-offset: 2px;
}

.te-tile__ico{
  width: 38px; height: 38px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(43,120,198,.10);
  border: 1px solid rgba(43,120,198,.18);
  font-size: 18px;
}

.te-tile__txt{
  font-weight: 900;
  font-size: 12px;
  color: rgba(15,23,42,.78);
  text-align: center;
}

/* Right panels */
.te-list{ display: grid; gap: 10px; }
.te-list__row{ display:flex; justify-content: space-between; gap: 10px; }
.te-muted{ color: var(--te-muted); font-weight: 700; font-size: 12px; }

.te-chartph{
  height: 220px;
  background: repeating-linear-gradient(
    135deg,
    rgba(15,23,42,.03),
    rgba(15,23,42,.03) 12px,
    rgba(15,23,42,.01) 12px,
    rgba(15,23,42,.01) 24px
  );
  border-radius: 10px;
  border: 1px solid var(--te-line);
}

/* Responsive */
@media (max-width: 1100px){
  .te-dv{ grid-template-columns: 1fr; }
  .te-dv__sb{ display:none; }
  .te-dv__kpis{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .te-dv__grid{ grid-template-columns: 1fr; }
  .te-card--xl{ grid-row: auto; }
  .te-tiles{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
/* ===== Dashboard App Shell ===== */
:root{
  --te-bg: #f4f6f8;
  --te-surface: #ffffff;
  --te-line: rgba(15,23,42,.10);
  --te-text: #0b0c0e;
  --te-muted: rgba(15,23,42,.55);
  --te-accent: #2aa6a0; /* eure Accent-Farbe */
  --te-radius: 14px;
  --te-shadow: 0 10px 24px rgba(0,0,0,.06);
  --te-tap: 44px;
}

/* Canvas */
body.page-dashboard .te-dashboard-canvas{
  background: var(--te-bg);
  min-height: calc(100vh - 60px);
}

/* Shell */
.te-app{
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: calc(100vh - 60px);
}

/* Sidebar */
.te-side{
  background: var(--te-surface);
  border-right: 1px solid var(--te-line);
  padding: 16px 12px;
}

.te-side__brand{
  font-weight: 900;
  letter-spacing: .06em;
  font-size: 14px;
  color: rgba(15,23,42,.75);
  padding: 10px 10px 14px;
}

.te-nav{
  display: grid;
  gap: 6px;
}

.te-nav a{
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px 10px;
  border-radius: 12px;
  text-decoration: none;
  color: rgba(15,23,42,.78);
  font-weight: 800;
  min-height: var(--te-tap);
}

.te-nav a:hover{ background: rgba(42,166,160,.06); }
.te-nav a.is-active{ background: rgba(42,166,160,.12); color: rgba(15,23,42,.92); }

.te-nav__ico{
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(15,23,42,.04);
  border: 1px solid rgba(15,23,42,.08);
  color: var(--te-accent);
}
.te-nav__ico svg{ width: 20px; height: 20px; }

.te-side__footer{ margin-top: 16px; padding: 10px; }
.te-side__cta{
  display:block;
  text-align:center;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--te-line);
  text-decoration:none;
  font-weight: 900;
  color: rgba(15,23,42,.85);
}
.te-side__cta:hover{ background: rgba(42,166,160,.06); }

/* Main */
.te-main{
  padding: 18px 20px;
}

.te-toprow{
  display:flex;
  justify-content:flex-end;
  margin-bottom: 12px;
}

.te-search{
  display:flex;
  gap: 10px;
  align-items:center;
  background: var(--te-surface);
  border: 1px solid var(--te-line);
  border-radius: 999px;
  padding: 8px 10px;
  box-shadow: var(--te-shadow);
}

.te-search__input{
  border: 0;
  outline: none;
  background: transparent;
  min-width: 340px;
  font-weight: 800;
}

.te-search__btn{
  height: var(--te-tap);
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(42,166,160,.25);
  background: var(--te-accent);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

/* Groups + Tiles */
.te-group{ margin-top: 16px; }
.te-group__title{
  font-size: 18px;
  font-weight: 900;
  color: rgba(15,23,42,.82);
  margin: 10px 4px;
}

.te-tiles{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
}

.te-tile{
  background: var(--te-surface);
  border: 1px solid var(--te-line);
  border-radius: var(--te-radius);
  box-shadow: var(--te-shadow);
  padding: 18px 16px;
  text-decoration: none;
  color: rgba(15,23,42,.88);
  min-height: 120px;
  display:grid;
  grid-template-columns: 44px 1fr;
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 4px;
  align-content:start;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}

.te-tile:hover{
  transform: translateY(-2px);
  border-color: rgba(42,166,160,.25);
  background: rgba(42,166,160,.02);
}

.te-tile:focus{
  outline: 2px solid rgba(42,166,160,.35);
  outline-offset: 2px;
}

.te-tile__ico{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  background: rgba(42,166,160,.10);
  border: 1px solid rgba(42,166,160,.20);
  color: var(--te-accent);
  grid-row: 1 / span 2;
}
.te-tile__ico svg{ width: 22px; height: 22px; }

.te-tile__title{ font-weight: 900; font-size: 15px; }
.te-tile__desc{ color: var(--te-muted); font-weight: 700; font-size: 12px; }

/* Responsive */
@media (max-width: 1200px){
  .te-tiles{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 980px){
  .te-app{ grid-template-columns: 1fr; }
  .te-side{ position: sticky; top: 0; z-index: 10; }
  .te-tiles{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .te-search__input{ min-width: 160px; }
}
/* ===== Force full width ONLY on dashboard ===== */
.te-page-dashboard .site-content,
.te-page-dashboard .content-area,
.te-page-dashboard .site-main,
.te-page-dashboard .inside-article,
.te-page-dashboard .entry-content{
  width: 100%;
  max-width: 100%;
}

.te-page-dashboard .container.grid-container,
.te-page-dashboard .inside-navigation.grid-container,
.te-page-dashboard .inside-header.grid-container,
.te-page-dashboard .inside-top-bar.grid-container{
  max-width: 100% !important;
  width: 100% !important;
}

.te-page-dashboard .site-content{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.te-page-dashboard .separate-containers .site-main{
  margin: 0 !important;
}
.te-nav a{
  font-weight: 700;
  color: rgba(15,23,42,.72);
}

.te-nav a.is-active{
  color: rgba(15,23,42,.88);
}

.te-nav__ico{
  width: 44px;
  height: 44px;
}

.te-nav__ico svg{
  width: 22px;
  height: 22px;
}
/* ===== Dashboard: kill remaining padding/margins (GP) ===== */
.te-page-dashboard .site-content {
  padding: 0 !important;
}

.te-page-dashboard .content-area,
.te-page-dashboard .site-main {
  margin: 0 !important;
  padding: 0 !important;
}

.te-page-dashboard .inside-article {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Falls GP "separate containers" auï¿½en noch Luft lï¿½sst */
.te-page-dashboard.separate-containers .site-main {
  margin: 0 !important;
}
/* ===== Tiles grid: responsive density ===== */
.te-tiles{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

/* sehr breite Screens -> 5 Tiles */
@media (min-width: 1500px){
  .te-tiles{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* Tablet */
@media (max-width: 1024px){
  .te-tiles{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 640px){
  .te-tiles{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}
/* ===== Tile final look ===== */
.te-tile{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  padding: 18px 16px;
  min-height: 170px;

  border: 1px solid rgba(15,23,42,.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.te-tile:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(15,23,42,.10);
  border-color: rgba(42,166,160,.28);
}

.te-tile:active{
  transform: translateY(0);
}

/* Icon block */
.te-tile__ico{
  width: 74px;
  height: 74px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;

  background: rgba(42,166,160,.10);
  border: 1px solid rgba(42,166,160,.18);
}

.te-tile__ico svg{
  width: 34px;
  height: 34px;
}

/* Typography */
.te-tile__title{
  font-size: 15px;
  font-weight: 700;
  color: rgba(15,23,42,.82);
  letter-spacing: .2px;
}

.te-tile__desc{
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(15,23,42,.56);
}

/* Touch: groï¿½e Click-Area */
.te-tile a{
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
}
/* ===== Dashboard inner gutter ===== */
.te-page-dashboard .entry-content{
  padding: 22px 26px !important;
}

@media (max-width: 640px){
  .te-page-dashboard .entry-content{
    padding: 16px 14px !important;
  }
}
/* =========================================================
   DASHBOARD FULL WIDTH (GeneratePress wrapper overrides)
   Scope: body.te-page-dashboard
   ========================================================= */

body.te-page-dashboard #page.site.grid-container{
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.te-page-dashboard .site-content{
  padding: 0 !important;
}

body.te-page-dashboard .content-area,
body.te-page-dashboard .site-main{
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* separate-containers setzt "inside-article" als white card ï¿½ fï¿½r Dashboard raus */
body.te-page-dashboard.separate-containers .inside-article{
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* WP Block Group Container: GP/Block-Styles limitieren gern auf 1200px */
body.te-page-dashboard .wp-block-group__inner-container{
  max-width: none !important;
  padding: 0 !important;
}
/* Dashboard canvas/app must fill available width */
body.te-page-dashboard .te-dashboard-canvas{
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.te-page-dashboard .te-app{
  width: 100% !important;
  max-width: none !important;
}

/* Flex correctness */
body.te-page-dashboard .te-app{
  display: flex;
}

body.te-page-dashboard .te-main{
  flex: 1 1 auto;
  min-width: 0; /* wichtig, sonst ï¿½stautï¿½ sich Content und du bekommst optische Rï¿½nder */
}
body.te-page-dashboard .te-tiles{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 1200px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 900px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}
/* Dashboard: keine GP-Card-Optik / keine Rundung */
body.te-page-dashboard.separate-containers .inside-article,
body.te-page-dashboard.separate-containers .page-header,
body.te-page-dashboard.separate-containers .comments-area{
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* 5 Tiles je Zeile (Desktop) */
body.te-page-dashboard .te-tiles{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

/* Responsive */
@media (max-width: 1400px){
  body.te-page-dashboard .te-tiles{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1100px){
  body.te-page-dashboard .te-tiles{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px){
  body.te-page-dashboard .te-tiles{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* Tile: etwas ï¿½quadratischerï¿½ */
body.te-page-dashboard .te-tile{
  min-height: 170px;          /* macht es weniger ï¿½breitï¿½ */
  padding: 18px 16px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 10px;
}

/* Icon grï¿½ï¿½er + optisch klar */
body.te-page-dashboard .te-tile__ico{
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 16px;
}
body.te-page-dashboard .te-tile__ico svg{
  width: 30px;
  height: 30px;
}

/* Typo: dunkler, weniger fett */
body.te-page-dashboard .te-tile__title{
  font-weight: 600;
  color: #2a2f35; /* dark gray */
}
body.te-page-dashboard .te-tile__desc{
  font-weight: 400;
  color: #6b737c;
  font-size: 13px;
  line-height: 1.25;
}
/* Leere Felder ausblenden, falls Title/Desc leer ist */
body.te-page-dashboard .te-tile__title:empty,
body.te-page-dashboard .te-tile__desc:empty{
  display: none !important;
}

body.te-page-dashboard .te-main,
body.te-page-dashboard .te-toprow,
body.te-page-dashboard .te-group{
  max-width: none !important;
}
/* =========================================================
   DASHBOARD HOTFIX (append-only) ï¿½ 2026-01-13b
   Ziel: Rundungen killen, Divider korrekt, Search ruhiger, 5 Tiles stabil
   ========================================================= */

/* --- 0) Scope: wir unterstï¿½tzen beide Body-Klassen (te-page-dashboard / page-dashboard) --- */
body.te-page-dashboard,
body.page-dashboard{
  /* optional: einheitlicher Canvas-Hintergrund */
  background: #f6f8fa;
}

/* --- 1) FALSCHE RUNDUNGEN / ï¿½Pagebereichï¿½ (GP Separate Containers) --- */
body.te-page-dashboard.separate-containers .inside-article,
body.page-dashboard.separate-containers .inside-article,
body.te-page-dashboard.separate-containers .content-area,
body.page-dashboard.separate-containers .content-area{
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: visible !important;
}

/* Falls GP dem Content selbst Rundungen gibt */
body.te-page-dashboard .site-content,
body.page-dashboard .site-content,
body.te-page-dashboard .site-main,
body.page-dashboard .site-main{
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Sicherheitsnetz: falls irgendwo eine ï¿½tï¿½rkis Linieï¿½ am Footer auftaucht */
body.te-page-dashboard .site-footer,
body.page-dashboard .site-footer{
  background-image: none !important;
}

/* --- 3) Suchfeld: Box weniger sichtbar, ï¿½ruhigerï¿½, enterprise --- */
body.te-page-dashboard .te-search,
body.page-dashboard .te-search{
  border: 1px solid rgba(15,23,42,.06) !important;
  box-shadow: none !important;
  background: rgba(255,255,255,.72) !important;
  backdrop-filter: blur(6px);
}

body.te-page-dashboard .te-search__input,
body.page-dashboard .te-search__input{
  font-weight: 700 !important;
  color: rgba(15,23,42,.80) !important;
}

body.te-page-dashboard .te-search__input::placeholder,
body.page-dashboard .te-search__input::placeholder{
  color: rgba(15,23,42,.45) !important;
}

/* Button etwas ï¿½cleanerï¿½, weniger ï¿½Bubbleï¿½ */
body.te-page-dashboard .te-search__btn,
body.page-dashboard .te-search__btn{
  border: 1px solid rgba(42,166,160,.22) !important;
  box-shadow: none !important;
}

/* --- 4) 5 Tiles je Zeile + ï¿½quadratischerï¿½ + weniger Leerraumgefï¿½hl --- */
body.te-page-dashboard .te-tiles,
body.page-dashboard .te-tiles{
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

/* Breakpoints */
@media (max-width: 1400px){
  body.te-page-dashboard .te-tiles,
  body.page-dashboard .te-tiles{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 1100px){
  body.te-page-dashboard .te-tiles,
  body.page-dashboard .te-tiles{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 720px){
  body.te-page-dashboard .te-tiles,
  body.page-dashboard .te-tiles{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}

/* Tile-Shape: leicht quadratischer, kompakter */
body.te-page-dashboard .te-tile,
body.page-dashboard .te-tile{
  min-height: 160px !important;
  border-radius: 14px !important;
  padding: 16px 14px !important;
}

/* Optional: wenn ï¿½leere Tileï¿½ vorhanden ist, wenigstens optisch neutral */
body.te-page-dashboard .te-tile:empty,
body.page-dashboard .te-tile:empty{
  display: none !important;
}

/* --- 5) Encoding-Symptom im Placeholder (Workaround ohne PHP):
   Falls du im Placeholder ein Sonderzeichen hast (?/?/ï¿½),
   wird es bei falscher Kodierung als   angezeigt.
   Lï¿½sung: Placeholder rein ASCII halten ODER Entity nutzen.
   Hier: wir ï¿½berschreiben NICHT deinen Text, aber verhindern,
   dass ein kaputtes Zeichen optisch auffï¿½llt (Fallback). --- */
body.te-page-dashboard .te-search__input,
body.page-dashboard .te-search__input{
  font-variant-ligatures: none;
}
/* =========================================================
   TonnEstate ï¿½ Dashboard Hotfix Patch (append-only)
   Ziel: keine "Page-Rundung", ruhige Suche, 5 Tiles/Row,
         Divider direkt unter Header (fading), Text-Fallbacks
   ========================================================= */

body.te-page-dashboard .te-app{
  /* Die sichtbare Rundung kommt von hier */
  border-radius: 0 !important;
}

/* Optional: falls irgendwo noch Canvas/Wrapper rund ist */
body.te-page-dashboard .te-dashboard-canvas,
body.te-page-dashboard .te-main,
body.te-page-dashboard .site-content{
  border-radius: 0 !important;
}


/* Falls du irgendwo vorher eine Divider-Line am Canvas/Foot eingebaut hast:
   diese Overrides verhindern "doppelte Linien" an falschen Stellen. */
body.te-page-dashboard .te-dashboard-canvas::before,
body.te-page-dashboard .te-dashboard-canvas::after,
body.te-page-dashboard .te-footer::before,
body.te-page-dashboard .te-footer::after{
  content: none !important;
}


/* ---------------------------------------------------------
   Suchfeld: Box weniger sichtbar, sauberer Fokus
   --------------------------------------------------------- */
body.te-page-dashboard .te-search{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: none;
  backdrop-filter: blur(6px);
}

body.te-page-dashboard .te-search:focus-within{
  border-color: rgba(42,166,160,.38);
  box-shadow: 0 0 0 4px rgba(42,166,160,.10);
}

body.te-page-dashboard .te-search__input{
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

body.te-page-dashboard .te-search__btn{
  border-radius: 999px;
  box-shadow: 0 10px 22px rgba(42,166,160,.18);
}

/* ---------------------------------------------------------
   Tiles: 5 pro Reihe (Desktop), etwas "quadratischer"
   --------------------------------------------------------- */
@media (min-width: 1280px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(5, minmax(190px, 1fr)) !important;
  }
  body.te-page-dashboard .te-tile{
    min-height: 172px;
    padding: 22px;
  }
  body.te-page-dashboard .te-tile__ico{
    width: 56px;
    height: 56px;
    border-radius: 14px;
  }
}

/* Zwischenstufen sauber halten */
@media (min-width: 1024px) and (max-width: 1279px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(4, minmax(200px, 1fr)) !important;
  }
}

/* ---------------------------------------------------------
   Text-Fallbacks (ohne HTML anfassen)
   - linkes Haus-Tile ist aktuell leer
   - erstes Nav-Icon (Home) hat keinen Text
   --------------------------------------------------------- */

/* Sidebar: 1. Link = Start */
body.te-page-dashboard .te-nav a:nth-child(1) .te-nav__txt:empty::before{
  content: "Start";
}

/* Sidebar: 5. Link = Aktivitï¿½ten (bei dir ist Text leer) */
body.te-page-dashboard .te-nav a:nth-child(5) .te-nav__txt:empty::before{
  content: "Aktivit\00E4ten";
}

/* Tile-Fallback: Hï¿½user */
body.te-page-dashboard .te-tile[href*="/objekte/haeuser"] .te-tile__title:empty::before{
  content: "H\00E4user";
}

/* Tile-Fallback: Exposï¿½/PDF */
body.te-page-dashboard .te-tile[href*="/expose"] .te-tile__title:empty::before{
  content: "Expose";
}

/* =========================================================
   Dashboard Fixpack (Rundungen, Divider, 5er Grid, BOM)
   Append-only ï¿½ 2026-01-13
   ========================================================= */

body.te-page-dashboard .te-app{
  border-radius: 0 !important;     /* kill rounded page edges */
  overflow: visible !important;    /* prevent hard clipping artifacts */
}

/* Falls irgendwo ein Pseudo-Element als "Linie" missbraucht wird */
body.te-page-dashboard .te-dashboard-canvas::after{
  content: none !important;
}

/* Header->Dashboard Divider (CGI-Style: fading, tï¿½rkis) */
body.te-page-dashboard #masthead{
  position: relative;
}

/* Untere "magenta" Linie: hart ï¿½berschreiben, egal wo sie herkommt */
body.te-page-dashboard .site-footer,
body.te-page-dashboard .site-info,
body.te-page-dashboard .te-footer{
  outline: none !important;
  box-shadow: none !important;
}
body.te-page-dashboard .site-footer{
  border-top: 1px solid rgba(255,255,255,.08) !important; /* sauber, unauffï¿½llig */
}

/* Tiles: auf groï¿½en Screens 5 pro Zeile */
@media (min-width: 1280px){
  body.te-page-dashboard .te-tiles{
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}

/* Tiles etwas "quadratischer" wirken lassen */
body.te-page-dashboard .te-tile{
  min-height: 160px;
  padding: 22px 18px;
}

/* =========================================================
   Dashboard ï¿½ Sidebar Sizing (safe overrides)
   ========================================================= */
body.te-page-dashboard .te-side{
  width: 240px;                 /* vorher wirkt es eher ~200 */
  min-width: 240px;
  padding: 18px 14px;
}

body.te-page-dashboard .te-side__brand{
  font-size: 12px;
  letter-spacing: .12em;
  padding: 18px 18px 12px;
}

body.te-page-dashboard .te-nav a{
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
}

body.te-page-dashboard .te-nav__ico{
  width: 44px;                  /* Icon-Container kleiner */
  height: 44px;
  border-radius: 14px;
}

body.te-page-dashboard .te-nav__ico svg{
  width: 20px;                  /* SVG kleiner */
  height: 20px;
}

body.te-page-dashboard .te-nav__txt{
  font-size: 16px;
}

@media (max-width: 980px){
  body.te-page-dashboard .te-side{
    width: 210px;
    min-width: 210px;
  }
  body.te-page-dashboard .te-nav__ico{
    width: 40px;
    height: 40px;
  }
  body.te-page-dashboard .te-nav__ico svg{
    width: 19px;
    height: 19px;
  }
}
/* =========================================================
   Dashboard ï¿½ Sidebar & Nav (compact enterprise override)
   ========================================================= */

body.te-page-dashboard .te-side{
  width: 208px;        /* deutlich kompakter */
  min-width: 208px;
}

body.te-page-dashboard .te-side__brand{
  font-size: 11px;
  letter-spacing: .10em;
  padding: 14px 14px 10px;
}

body.te-page-dashboard .te-nav{
  gap: 6px;
}

body.te-page-dashboard .te-nav a{
  gap: 10px;
  padding: 10px 10px;   /* weniger ï¿½fettï¿½ */
  border-radius: 12px;
}

body.te-page-dashboard .te-nav__ico{
  width: 38px;          /* kleinerer Icon-Container */
  height: 38px;
  border-radius: 12px;
}

body.te-page-dashboard .te-nav__ico svg{
  width: 18px;          /* Icon selbst kleiner */
  height: 18px;
}

body.te-page-dashboard .te-nav__txt{
  font-size: 14px;      /* professioneller */
  font-weight: 600;
  line-height: 1.1;
}

/* Button "Einstellungen" in der Sidebar etwas ruhiger */
body.te-page-dashboard .te-side__cta{
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 12px;
}

/* Aktiv-Highlight nicht zu groï¿½flï¿½chig */
body.te-page-dashboard .te-nav a.is-active{
  box-shadow: none;
}

/* Responsive: auf kleineren Screens noch etwas kompakter */
@media (max-width: 1100px){
  body.te-page-dashboard .te-side{
    width: 196px;
    min-width: 196px;
  }
  body.te-page-dashboard .te-nav__ico{
    width: 36px;
    height: 36px;
  }
  body.te-page-dashboard .te-nav__ico svg{
    width: 17px;
    height: 17px;
  }
  body.te-page-dashboard .te-nav__txt{
    font-size: 13.5px;
  }
}
/* =========================================================
   DASHBOARD UI OVERRIDES (2026-01-14)
   - Sidebar +30px
   - Icons kleiner
   - Typo kleiner
   - Active/Hover ohne "ï¿½berstand"
   - entfernt verbleibende Debug-Linien/Border
   ========================================================= */

body.te-page-dashboard .te-app{
  grid-template-columns: 310px 1fr; /* vorher 280px */
}

/* Optional: auf kleineren Desktops wieder etwas kompakter */
@media (max-width: 1280px){
  body.te-page-dashboard .te-app{
    grid-template-columns: 290px 1fr;
  }
}

body.te-page-dashboard .te-side{
  padding: 16px 14px;
  overflow: hidden; /* verhindert, dass Hover/Active-Shadows optisch "rauslaufen" */
}

/* NAV: kompakter, professioneller */
body.te-page-dashboard .te-nav{
  margin-top: 14px;
  gap: 10px;
}

/* Link: kleinere Schrift, weniger aggressives Weight, sauberer Pill */
body.te-page-dashboard .te-nav a{
  grid-template-columns: 34px 1fr; /* vorher 40px */
  gap: 12px;
  padding: 10px 12px;
  font-size: 14px;      /* kleiner */
  font-weight: 650;     /* statt 800 (wirkt sonst "plakativ") */
  border-radius: 12px;
  box-shadow: none;     /* Shadow war der optische "ï¿½berstand" */
}

/* Icon-Box kleiner */
body.te-page-dashboard .te-nav__ico{
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

body.te-page-dashboard .te-nav__ico svg{
  width: 18px;
  height: 18px;
}

/* Active/Hover: ruhig, keine Schatten */
body.te-page-dashboard .te-nav a.is-active{
  background: rgba(42,166,160,.10);
  border: 1px solid rgba(42,166,160,.22);
}

body.te-page-dashboard .te-nav a:hover{
  background: rgba(11,12,14,.04);
}

/* Active Icon Box leicht betonen */
body.te-page-dashboard .te-nav a.is-active .te-nav__ico{
  background: rgba(42,166,160,.10);
  border-color: rgba(42,166,160,.25);
}

/* Entfernt ggf. ï¿½brig gebliebene Debug-Border/Lines (untere "Magenta Line") */
body.te-page-dashboard #page,
body.te-page-dashboard .site,
body.te-page-dashboard #content,
body.te-page-dashboard .site-content,
body.te-page-dashboard .inside-page-header{
  border: 0 !important;
  outline: 0 !important;
}

body.te-page-dashboard hr{
  display: none !important;
}
/* =========================================================
   DASHBOARD ï¿½ Sidebar ultra-clean (kein ï¿½berlaufen, leichter)
   ========================================================= */

body.te-page-dashboard .te-app{
  grid-template-columns: 236px 1fr; /* schmaler, aber nicht gequetscht */
}

@media (max-width: 1280px){
  body.te-page-dashboard .te-app{ grid-template-columns: 228px 1fr; }
}

/* Sidebar Grundlayout: weniger klobig */
body.te-page-dashboard .te-side{
  padding: 12px 10px;
  border-right: 1px solid rgba(11,12,14,.06);
}

/* Brand kompakter */
body.te-page-dashboard .te-side__brand{
  font-size: 11px;
  letter-spacing: .16em;
  opacity: .82;
  padding: 6px 8px 10px;
}

/* Nav spacing */
body.te-page-dashboard .te-nav{
  margin-top: 8px;
  gap: 6px;
}

/* Link: schlank, keine fette Pill */
body.te-page-dashboard .te-nav a{
  position: relative;
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;

  padding: 8px 10px;          /* weniger klobig */
  border-radius: 10px;

  font-size: 12.5px;          /* kleiner */
  font-weight: 500;           /* leichter */
  color: rgba(11,12,14,.78);

  background: transparent;
  border: 1px solid transparent;
  box-shadow: none;

  overflow: hidden;           /* garantiert: nichts kann "drï¿½ber" */
}

/* Hover: sehr subtil */
body.te-page-dashboard .te-nav a:hover{
  background: rgba(11,12,14,.025);
  border-color: rgba(11,12,14,.05);
}

/* Icon-Box: kleiner + cleaner */
body.te-page-dashboard .te-nav__ico{
  width: 28px;
  height: 28px;
  border-radius: 9px;

  background: rgba(42,166,160,.055);
  border: 1px solid rgba(42,166,160,.12);

  display: grid;
  place-items: center;
}

body.te-page-dashboard .te-nav__ico svg{
  width: 15px;
  height: 15px;
}

/* ACTIVE: innenliegender Akzentbalken (kein negatives left mehr) */
body.te-page-dashboard .te-nav a.is-active{
  background: rgba(42,166,160,.07);
  border-color: rgba(42,166,160,.16);
  color: rgba(11,12,14,.90);
}

/* Akzentleiste sitzt IM Element -> kein ï¿½berlaufen mï¿½glich */
body.te-page-dashboard .te-nav a.is-active::before{
  content: "";
  position: absolute;
  left: 0;                    /* innen */
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 3px;
  background: var(--te-accent, #2aa6a0);
  opacity: .95;
}

/* Icon Glow nur dezent */
body.te-page-dashboard .te-nav a.is-active .te-nav__ico{
  background: rgba(42,166,160,.10);
  border-color: rgba(42,166,160,.22);
  box-shadow: 0 0 0 2px rgba(42,166,160,.10);
}

/* Text: kompakt, keine ï¿½Headlineï¿½-Optik */
body.te-page-dashboard .te-nav__txt{
  line-height: 1.15;
  letter-spacing: .01em;
}

/* CTA unten: kleiner */
body.te-page-dashboard .te-side__cta{
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 600;
}
/* =========================================================
   LISTVIEW ACTION BAR (Salesforce-like, flat, compact)
   Scope: NUR wenn Wrapper .te-listview existiert
   ========================================================= */

.te-listview .te-actionbar{
  /* mï¿½glichst nah am Header */
  margin: 0;
  padding: 8px 12px;

  background: #fff;
  border-bottom: 1px solid rgba(11,12,14,.10);
  box-shadow: none;

  /* KEINE Rundungen */
  border-radius: 0;
}

.te-listview .te-actionbar__row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.te-listview .te-actionbar__left,
.te-listview .te-actionbar__right{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* ï¿½Salesforce-like controlsï¿½: flach, klein, ruhig */
.te-listview .te-abtn{
  appearance: none;
  -webkit-appearance: none;

  height: 32px;
  padding: 0 10px;

  background: transparent;
  color: rgba(11,12,14,.88);

  border: 1px solid rgba(11,12,14,.16);
  border-radius: 0;              /* keine Rundung */
  box-shadow: none;

  font-size: 12.5px;
  font-weight: 500;              /* weniger ï¿½fettï¿½ */
  line-height: 32px;
  text-decoration: none !important;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.te-listview .te-abtn:hover{
  background: rgba(11,12,14,.02);
  border-color: rgba(11,12,14,.24);
}

.te-listview .te-abtn--primary{
  background: var(--te-accent, #2aa6a0);
  border-color: var(--te-accent, #2aa6a0);
  color: #fff;
  font-weight: 600;              /* nur minimal stï¿½rker */
}

.te-listview .te-abtn--primary:hover{
  filter: brightness(.97);
}

/* Search: input + button, flach, ohne Pill */
.te-listview .te-asearch{
  display: inline-flex;
  align-items: center;

  height: 32px;
  min-width: 360px;
  max-width: 560px;

  background: #fff;
  border: 1px solid rgba(11,12,14,.16);
  border-radius: 0;              /* keine Rundung */
  overflow: hidden;
}

.te-listview .te-asearch input{
  height: 32px;
  width: 100%;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;

  padding: 0 10px;
  font-size: 12.5px;
  font-weight: 400;              /* ruhig */
  color: rgba(11,12,14,.88);
}

.te-listview .te-asearch input::placeholder{
  color: rgba(11,12,14,.42);
}

.te-listview .te-asearch button{
  height: 32px;
  border: 0;
  padding: 0 12px;

  background: rgba(11,12,14,.03);
  color: rgba(11,12,14,.86);

  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;

  border-left: 1px solid rgba(11,12,14,.10);
}

.te-listview .te-asearch button:hover{
  background: rgba(11,12,14,.06);
}

/* Mobile: sauber stapeln */
@media (max-width: 900px){
  .te-listview .te-actionbar__row{
    flex-direction: column;
    align-items: stretch;
  }
  .te-listview .te-actionbar__left,
  .te-listview .te-actionbar__right{
    justify-content: space-between;
  }
  .te-listview .te-asearch{
    min-width: 100%;
    max-width: 100%;
  }
}


/* =========================================================
   APP MODE: remove WordPress/GeneratePress layout gaps
   ========================================================= */
body.te-appmode .site-content,
body.te-appmode .content-area,
body.te-appmode .site-main{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.te-appmode.separate-containers .inside-article{
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.te-appmode .entry-header{
  display: none !important; /* WP-Titelbereich weg */
}

body.te-appmode .entry-content{
  margin: 0 !important;
  padding: 0 !important;
}

/* Optional, falls GP noch Container-Innenabstï¿½nde setzt */
body.te-appmode .inside-article,
body.te-appmode .inside-page-header{
  margin: 0 !important;
}
/* =========================================================
   TE Actionbar (ListViews) ï¿½ Salesforce-like, flat, no radius
   ========================================================= */

/* A) GAP kill (nur diese Seite) ï¿½ nimm deine Page-ID!
   Du hast in deinem HTML: page-id-81  -> daher 81. */
body.page-id-81 .inside-article{
  padding: 0 !important;       /* kill GP white card padding */
  background: transparent !important;
}
body.page-id-81 .entry-content{
  margin: 0 !important;
}
body.page-id-81 .entry-content > *:first-child{
  margin-top: 0 !important;    /* kein "Start-Abstand" */
}

/* Optional: falls GP noch oben/unten Abstand in .site-main gibt */
body.page-id-81 .site-main{
  margin-top: 0 !important;
}

/* B) Actionbar */
.te-actionbar{
  /* direkt unter Header: kein extra Abstand */
  margin: 0 !important;
  padding: 0 !important;

  background: #ffffff;
  border-bottom: 1px solid #d8dde6;  /* SLDS-like divider */
}

.te-actionbar__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  /* kompakt */
  min-height: 44px;
  padding: 6px 14px;
}

/* Links/Rechts */
.te-actionbar__left{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
}
.te-actionbar__right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 320px;
}

/* Button baseline: flat, no rounding, not bold */
.te-abtn{
  appearance: none;
  border-radius: 0 !important;
  border: 1px solid #d8dde6;
  background: #ffffff;
  color: #0b0c0e;

  height: 32px;
  padding: 0 10px;

  font-family: inherit;
  font-size: 13px;
  font-weight: 500;      /* nicht "fett", aber stabil */
  line-height: 32px;
  letter-spacing: .01em;

  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.te-abtn:hover{
  background: #f7f8f9;
}

.te-abtn:focus{
  outline: none;
  box-shadow: 0 0 0 2px rgba(42,166,160,.18);
  border-color: #2aa6a0;
}

/* Primary */
.te-abtn--primary{
  background: #2aa6a0;
  border-color: #2aa6a0;
  color: #ffffff;
}
.te-abtn--primary:hover{
  filter: brightness(0.96);
}

/* Ghost (Zurï¿½ck) */
.te-abtn--ghost{
  background: transparent;
}

/* Separator zwischen Back und Actions */
.te-abtn-sep{
  width: 1px;
  height: 18px;
  background: #d8dde6;
}

/* Search: flat group, no radius */
.te-asearch{
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 520px;
}

.te-asearch__input{
  flex: 1 1 auto;
  height: 32px;
  border-radius: 0 !important;
  border: 1px solid #d8dde6;
  border-right: 0;
  background: #ffffff;
  color: #0b0c0e;

  padding: 0 10px;
  font-size: 13px;
  font-weight: 400;
}

.te-asearch__input:focus{
  outline: none;
  border-color: #2aa6a0;
  box-shadow: 0 0 0 2px rgba(42,166,160,.18);
}

.te-asearch__btn{
  height: 32px;
  border-radius: 0 !important;
  border: 1px solid #d8dde6;
  background: #ffffff;
  color: #0b0c0e;

  padding: 0 12px;
  font-size: 13px;
  font-weight: 500;

  cursor: pointer;
}
.te-asearch__btn:hover{
  background: #f7f8f9;
}

/* Responsive (falls eng) */
@media (max-width: 900px){
  .te-actionbar__inner{
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .te-actionbar__right{
    min-width: 100%;
  }
  .te-asearch{
    max-width: 100%;
  }
}
/* =========================================================
   ListView: kein WP/GP-Gap unter Header (nur Actionbar)
   ========================================================= */

/* 1) Standard-Container-Padding (GP) eliminieren, damit Actionbar direkt am Header sitzt */
.page .inside-article:has(.te-actionbar--listview),
.page .entry-content:has(.te-actionbar--listview){
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Fallback (falls :has() im Browser nicht greift) ï¿½ wirkt nur auf Seiten, wo du te-actionbar--listview nutzt */
.te-actionbar--listview{
  margin-top: 0 !important;
}

/* GeneratePress setzt oft Content-Padding ï¿½ber Container */
.separate-containers .inside-article{
  /* wir ï¿½berschreiben NICHT global ï¿½ Actionbar sitzt in der Entry; der Rest bleibt wie er ist */
}
/* =========================================================
   TE Actionbar (Salesforce-like / enterprise / no radius)
   ========================================================= */

.te-actionbar--listview{
  background: #ffffff;
  border-bottom: 1px solid rgba(0,0,0,.08);
  border-top: 0;
  box-shadow: none;
  border-radius: 0;
}

.te-actionbar--listview .te-actionbar__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;

  /* ï¿½Appï¿½-Feeling: kompakt */
  padding: 10px 16px;

  /* volle Breite wie App-Bar */
  max-width: none;
  width: 100%;
  margin: 0;
  gap: 16px;
}

.te-actionbar--listview .te-actionbar__left{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  min-width: 0;
}

.te-actionbar--listview .te-actionbar__right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 320px;
}

.te-actionbar--listview .te-abtn-sep{
  width: 1px;
  height: 22px;
  background: rgba(0,0,0,.10);
  display: inline-block;
}

/* Buttons: Salesforce-Style = flach, eckig, klare Linien, keine ï¿½puffyï¿½ Pills */
.te-actionbar--listview .te-abtn,
.te-actionbar--listview a.te-abtn{
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0 !important;

  background: #ffffff;
  border: 1px solid rgba(0,0,0,.18);
  color: #0b0c0e;

  padding: 7px 12px;
  line-height: 1;
  height: 34px;

  font-family: inherit;
  font-size: 13px;
  font-weight: 500; /* weniger ï¿½dickï¿½ */
  letter-spacing: .1px;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  text-decoration: none;
  box-shadow: none;
}

.te-actionbar--listview .te-abtn:hover{
  border-color: rgba(0,0,0,.28);
  background: rgba(0,0,0,.02);
}

/* Primary in euren Farben */
.te-actionbar--listview .te-abtn--primary{
  background: var(--te-accent, #2aa6a0);
  border-color: var(--te-accent, #2aa6a0);
  color: #ffffff;
  font-weight: 600; /* nur Primary etwas stï¿½rker */
}

.te-actionbar--listview .te-abtn--primary:hover{
  filter: brightness(.97);
}

/* Ghost (Zurï¿½ck) minimal ruhiger */
.te-actionbar--listview .te-abtn--ghost{
  background: #ffffff;
}

/* Search: eckig + inline, wie Salesforce */
.te-actionbar--listview .te-asearch{
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 520px;
  gap: 0;
}

.te-actionbar--listview .te-asearch__input{
  flex: 1 1 auto;
  height: 34px;
  border-radius: 0 !important;

  border: 1px solid rgba(0,0,0,.18);
  border-right: 0;
  background: #ffffff;

  font-size: 13px;
  font-weight: 400;

  padding: 0 12px;
  margin: 0;
  outline: none;
}

.te-actionbar--listview .te-asearch__input:focus{
  border-color: rgba(42,166,160,.65);
  box-shadow: none;
}

.te-actionbar--listview .te-asearch__btn{
  height: 34px;
  border-radius: 0 !important;

  border: 1px solid rgba(0,0,0,.18);
  background: #ffffff;
  color: #0b0c0e;

  padding: 0 12px;
  margin: 0;

  font-size: 13px;
  font-weight: 500;
  box-shadow: none;
}

.te-actionbar--listview .te-asearch__btn:hover{
  background: rgba(0,0,0,.02);
}

/* Mobile: sauber umbrechen (aber nicht ï¿½zerfallenï¿½) */
@media (max-width: 900px){
  .te-actionbar--listview .te-actionbar__inner{
    flex-wrap: wrap;
    gap: 10px;
  }
  .te-actionbar--listview .te-actionbar__right{
    min-width: 0;
    width: 100%;
    justify-content: flex-start;
  }
  .te-actionbar--listview .te-asearch{
    max-width: none;
  }
}
/* =========================================================
   APP-LAYOUT GLOBAL (alle Pages): kein "Website-Gap"
   ========================================================= */

/* GeneratePress: Container-Padding/Margins auf Pages entschï¿½rfen */
body.page .site-content { padding-top: 0 !important; }
body.page #primary { margin-top: 0 !important; }

/* der typische "weiï¿½e Kasten" Abstand kommt oft von inside-article Padding */
body.page .inside-article { padding-top: 0 !important; }

/* wenn du separate-containers nutzt, ist oft die Article-Box selbst gepaddet */
body.page.separate-containers .inside-article { padding-top: 0 !important; }

/* Page-Header/Entry-Header (Titelbereich) ebenfalls ohne Extra-Abstand */
body.page .entry-header { margin-top: 0 !important; padding-top: 0 !important; }

/* optional: wenn GP der .site-main/entry-content nochmal Luft gibt */
body.page .site-main { padding-top: 0 !important; }
body.page .entry-content { margin-top: 0 !important; }
/* =========================================================
   TE Actionbar (Salesforce-like / App UI)
   - weiï¿½, ruhig, hairlines
   - keine Rundungen
   - wpautop-resistent (falls <br>/<p> reinrutschen)
   ========================================================= */

.te-actionbar--sf{
  background: #ffffff;
  color: var(--te-text, #0b0c0e);
  border-bottom: 1px solid rgba(11,12,14,.10);
  box-shadow: none;
  margin: 0;                 /* kein Gap durch die Bar selbst */
  padding: 6px 14px;         /* kompakt */
}

.te-actionbar--sf .te-actionbar__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;          /* app-typische Hï¿½he */
}

.te-actionbar--sf .te-actionbar__left,
.te-actionbar--sf .te-actionbar__right{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}

/* WP-autop Notbremse: falls WP <p>/<br> injiziert */
.te-actionbar--sf p{ margin: 0 !important; }
.te-actionbar--sf br{ display: none !important; }

/* Buttons: Salesforce-Feeling (neutral, thin border, keine Rundungen) */
.te-actionbar--sf .te-abtn{
  appearance: none;
  -webkit-appearance: none;
  height: 32px;
  padding: 0 12px;

  border-radius: 0 !important;          /* keine Rundungen */
  border: 1px solid rgba(11,12,14,.18);
  background: #ffffff;

  color: rgba(11,12,14,.92);
  font-weight: 500;                      /* NICHT fett */
  font-size: 13px;
  line-height: 30px;

  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.te-actionbar--sf .te-abtn:hover{
  border-color: rgba(11,12,14,.28);
  background: rgba(42,166,160,.06);
}

.te-actionbar--sf .te-abtn:focus{
  outline: none;
  box-shadow: 0 0 0 2px rgba(42,166,160,.18) !important;
}

/* Primary: Tonn-Tï¿½rkis, aber ruhig */
.te-actionbar--sf .te-abtn--primary{
  background: var(--te-accent, #2aa6a0);
  border-color: var(--te-accent, #2aa6a0);
  color: #ffffff;
  font-weight: 600; /* nur Primary darf minimal krï¿½ftiger sein */
}

.te-actionbar--sf .te-abtn--primary:hover{
  filter: brightness(.98);
}

/* Ghost (Zurï¿½ck) minimal */
.te-actionbar--sf .te-abtn--ghost{
  background: #ffffff;
}

/* Separator wie in App-Toolbars */
.te-actionbar--sf .te-abtn-sep{
  width: 1px;
  height: 20px;
  background: rgba(11,12,14,.14);
  margin: 0 6px;
}

/* Search: rechteckig, ruhig, aligned */
.te-actionbar--sf .te-asearch{
  display: inline-flex;
  align-items: stretch;
  height: 32px;
  border-radius: 0 !important;
  border: 1px solid rgba(11,12,14,.18);
  background: #ffffff;
  overflow: hidden;
}

.te-actionbar--sf .te-asearch__input{
  width: min(360px, 38vw);
  min-width: 220px;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  padding: 0 10px !important;

  font-size: 13px !important;
  font-weight: 400 !important;
  color: rgba(11,12,14,.82) !important;
}

.te-actionbar--sf .te-asearch__btn{
  border: 0 !important;
  border-left: 1px solid rgba(11,12,14,.14) !important;
  background: #ffffff !important;
  padding: 0 12px !important;

  font-size: 13px !important;
  font-weight: 600 !important;
  color: rgba(11,12,14,.92) !important;
  cursor: pointer;
}

.te-actionbar--sf .te-asearch__btn:hover{
  background: rgba(42,166,160,.06) !important;
}

/* Screenreader only */
.te-sr-only{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
/* =========================================================
   TE Actionbar ï¿½ Salesforce/Banking-Look (v2)
   ========================================================= */

/* 0) Optional: WP <p>/<br> darf die Actionbar nicht zerlegen */
.te-actionbar p { margin: 0 !important; }
.te-actionbar br { display: none !important; }

/* 1) Container: ohne Rundungen, ohne ï¿½billig Buttonsï¿½, sehr clean */
.te-actionbar{
  position: relative;
  background: #ffffff;
  border-bottom: 1px solid rgba(11,12,14,.10);
}

/* 2) Gradient Separator oberhalb (wie Screenshot), sehr dï¿½nn */
.te-actionbar::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height: 2px;
  /* Verlauf in euren Farben: Schwarz -> Accent -> Schwarz */
  background: linear-gradient(90deg,
    rgba(11,12,14,.00) 0%,
    rgba(11,12,14,.35) 18%,
    rgba(42,166,160,1) 50%,
    rgba(11,12,14,.35) 82%,
    rgba(11,12,14,.00) 100%
  );
  pointer-events:none;
}

/* 3) Inner Layout: rechts wirklich rechts */
.te-actionbar__inner{
  display:flex;
  align-items:center;
  gap: 14px;
  padding: 10px 16px;      /* bewusst niedrig: ï¿½Appï¿½, kein Website-Spacing */
  max-width: none;
}

/* links bleibt links */
.te-actionbar__left{
  display:flex;
  align-items:center;
  gap: 10px;
  min-width: 0;
}

/* rechts wird nach rechts ï¿½gedrï¿½cktï¿½ */
.te-actionbar__right{
  margin-left: auto;        /* DAS ist der entscheidende Teil */
  display:flex;
  align-items:center;
}

/* 4) Buttons: eckig, dï¿½nn, professionell */
.te-abtn{
  appearance:none;
  border: 1px solid rgba(11,12,14,.18);
  background: #fff;
  color: #0b0c0e;
  padding: 6px 10px;
  line-height: 1;
  border-radius: 0;         /* keine Rundungen */
  font-weight: 500;         /* nicht fett */
  font-size: 13px;
  letter-spacing: .1px;
  box-shadow: none;
  cursor:pointer;
}

.te-abtn:hover{
  background: rgba(11,12,14,.03);
  border-color: rgba(11,12,14,.28);
}

/* 5) Primary: SCHWARZ (statt grï¿½n/tï¿½rkis) */
.te-abtn--primary{
  background: #0b0c0e !important;
  color: #fff !important;
  border-color: #0b0c0e !important;
}

.te-abtn--primary:hover{
  background: #000 !important;
  border-color: #000 !important;
}

/* 6) Separator zwischen Zurï¿½ck und Aktionen */
.te-abtn-sep{
  width: 1px;
  height: 18px;
  background: rgba(11,12,14,.15);
}

/* 7) Suche: weiter nach rechts + ï¿½Banking Inputï¿½-Look */
.te-asearch{
  display:flex;
  align-items:center;
  gap: 0;
}

.te-asearch__input{
  width: 320px;            /* optional anpassen */
  max-width: 44vw;
  height: 30px;
  border-radius: 0;
  border: 1px solid rgba(11,12,14,.18);
  background: #fff;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 400;
  outline: none;
}

.te-asearch__btn{
  height: 30px;
  border-radius: 0;
  margin-left: -1px;       /* nahtlos an Input */
  border: 1px solid rgba(11,12,14,.18);
  background: #fff;
  color: #0b0c0e;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 600;
  cursor:pointer;
}

.te-asearch__btn:hover{
  background: rgba(11,12,14,.03);
  border-color: rgba(11,12,14,.28);
}
/* =========================================================
   TonnEstate ListView Table (Salesforce-like, dense)
   Scope: .te-lv ONLY
   Regeln: keine Rundungen, keine luftigen Gaps, ruhige Typo
   ========================================================= */

.te-lv{
  /* App-Canvas (grau) */
  --lv-bg: #f4f6f8;
  --lv-surface: #ffffff;
  --lv-line: rgba(11,12,14,.10);
  --lv-line-strong: rgba(11,12,14,.16);
  --lv-text: var(--te-text, #0b0c0e);
  --lv-muted: rgba(11,12,14,.58);
  --lv-accent: var(--te-accent, #2aa6a0);

  /* density */
  --lv-h: 32px;
  --lv-pad-x: 12px;

  background: var(--lv-bg);
  padding: 0; /* keine Website-Gaps */
  color: var(--lv-text);
  font-family: var(--te-font, "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
}

.te-lv__surface{
  background: var(--lv-surface);
  border: 1px solid var(--lv-line);
  border-radius: 0;       /* zwingend: keine Rundungen */
  box-shadow: none;
  overflow: hidden;       /* sticky head + borders sauber */
}

/* --- Header --- */
.te-lv__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  padding: 8px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background: #fff;
}

.te-lv__context{
  display: grid;
  gap: 2px;
  min-width: 0;
}

.te-lv__object{
  font-size: 12px;
  font-weight: 400;
  color: var(--lv-muted);
  letter-spacing: .01em;
}

.te-lv__view{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.te-lv__viewbtn{
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--lv-text);

  padding: 0;
  margin: 0;

  font-size: 14px;
  font-weight: 500;   /* ruhig, nicht fett */
  line-height: 1.2;

  cursor: pointer;
  white-space: nowrap;
}

.te-lv__chev{
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-left: 6px;
  border-right: 1px solid rgba(11,12,14,.55);
  border-bottom: 1px solid rgba(11,12,14,.55);
  transform: rotate(45deg) translateY(-1px);
}

.te-lv__meta{
  font-size: 12px;
  font-weight: 400;
  color: var(--lv-muted);
  white-space: nowrap;
}

/* Right cluster */
.te-lv__head-right{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.te-lv__search{
  display: inline-flex;
  align-items: center;
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  border-radius: 0;
  background: #fff;
  overflow: hidden;
}

.te-lv__searchinput{
  height: var(--lv-h);
  width: min(360px, 34vw);
  min-width: 220px;

  border: 0;
  outline: none;
  background: transparent;

  padding: 0 10px;
  font-size: 13px;
  font-weight: 400;
  color: var(--lv-text);
}

.te-lv__searchinput::placeholder{
  color: rgba(11,12,14,.38);
}

.te-lv__tools{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Icon buttons: eckig, flach */
.te-lv__iconbtn{
  appearance: none;
  border: 1px solid var(--lv-line-strong);
  border-radius: 0;
  background: #fff;
  color: rgba(11,12,14,.80);

  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;

  font-size: 14px;
  font-weight: 400;
  line-height: var(--lv-h);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  cursor: pointer;
  box-shadow: none;
}

.te-lv__iconbtn svg{
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
}

.te-lv__iconbtn:hover{
  background: rgba(11,12,14,.02);
  border-color: rgba(11,12,14,.24);
}

.te-lv__iconbtn:focus-visible{
  outline: 2px solid rgba(11,12,14,.35);
  outline-offset: 1px;
}

.te-lv__divider{
  width: 1px;
  height: 18px;
  background: var(--lv-line-strong);
  display: inline-block;
  margin: 0 2px;
}

/* Primary button: schwarz (Salesforce-Ã¤hnlich neutral/strong) */
.te-lv__btn{
  appearance: none;
  border-radius: 0;
  border: 1px solid rgba(11,12,14,.18);
  background: #fff;
  color: var(--lv-text);

  height: var(--lv-h);
  padding: 0 12px;

  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}

.te-lv__btn--primary{
  background: #0b0c0e;
  border-color: #0b0c0e;
  color: #fff;
}

.te-lv__btn--primary:hover{
  background: #000;
  border-color: #000;
}

/* --- Table --- */
.te-lv__tablewrap{
  overflow: auto;
  background: #fff;
}

.te-lv__table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}

.te-lv__th{
  position: sticky;
  top: 0;
  z-index: 2;

  text-align: left;
  padding: 10px var(--lv-pad-x);
  background: #fbfcfd;

  border-bottom: 1px solid var(--lv-line);
  color: rgba(11,12,14,.62);

  font-weight: 500; /* NICHT fett */
  white-space: nowrap;
}

.te-lv__th--check,
.te-lv__td--check{
  width: 44px;
  padding-left: 10px;
  padding-right: 10px;
}

.te-lv__th--actions,
.te-lv__td--actions{
  width: 52px;
  text-align: right;
  padding-right: 10px;
}

.te-lv__td{
  padding: 10px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  vertical-align: top;
  background: #fff;
}

.te-lv__row:hover .te-lv__td{
  background: rgba(11,12,14,.015);
}

.te-lv__row:focus{
  outline: none;
}

.te-lv__row:focus .te-lv__td{
  background: rgba(42,166,160,.06);
  box-shadow: inset 0 0 0 2px rgba(42,166,160,.22);
}

/* Links + Secondary line */
.te-lv__link{
  color: rgba(11,12,14,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(11,12,14,.18);
  font-weight: 500;
}

.te-lv__link:hover{
  border-bottom-color: rgba(11,12,14,.35);
}

.te-lv__sub{
  margin-top: 3px;
  font-size: 12px;
  color: var(--lv-muted);
  font-weight: 400;
}

/* Monospace-ish tokens for contact values */
.te-lv__mono{
  font-variant-numeric: tabular-nums;
}

/* Badges: funktional, nicht bunt */
.te-lv__badge{
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 0; /* keine Rundungen */
  border: 1px solid var(--lv-line-strong);
  background: #fff;

  font-size: 12px;
  font-weight: 400;
  color: rgba(11,12,14,.82);
  white-space: nowrap;
}

.te-lv__badge--open{
  border-color: rgba(42,166,160,.35);
  background: rgba(42,166,160,.08);
}

.te-lv__badge--warm{
  border-color: rgba(245,158,11,.35);
  background: rgba(245,158,11,.10);
}

.te-lv__badge--muted{
  border-color: rgba(11,12,14,.18);
  background: rgba(11,12,14,.03);
}

/* Checkboxes: neutral (Browser default, aber sauber ausgerichtet) */
.te-lv__check{
  width: 14px;
  height: 14px;
  vertical-align: middle;
}

/* SR only */
.te-lv__sr{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Responsive: keep density, allow wrap only where necessary */
@media (max-width: 980px){
  .te-lv__head{
    flex-wrap: wrap;
    gap: 8px;
  }
  .te-lv__searchinput{
    width: min(520px, 70vw);
    min-width: 180px;
  }
}
/* =========================================================
   ErgÃ¤nzungen: Shell (5% Rand) + Head Alignment + Pagination + Modal
   Scope: .te-lv ONLY
   ========================================================= */

/* 1) Links/Rechts mindestens 5% Rand (App-Shell Constraint) */
.te-lv__shell{
  margin-left: 5vw;
  margin-right: 5vw;
  padding-top: 14px;   /* kompakt, aber nicht â€žluftigâ€œ */
  padding-bottom: 14px;
}

/* optional: nicht zu breit auf Ultra-Wide */
@media (min-width: 1600px){
  .te-lv__shell{ margin-left: max(5vw, 72px); margin-right: max(5vw, 72px); }
}

/* 2) Header-Baseline: Search + Icons + Button sauber bÃ¼ndig */
.te-lv__head-right{
  margin-left: auto;
  display: flex;
  align-items: center;      /* vertikal bÃ¼ndig */
  justify-content: flex-end;
  gap: 10px;
}

.te-lv__search{
  height: var(--lv-h);
}

.te-lv__searchinput{
  height: var(--lv-h);
  line-height: var(--lv-h);
}

/* Iconbuttons + Primary: exakt gleiche HÃ¶he */
.te-lv__iconbtn,
.te-lv__btn{
  height: var(--lv-h);
  line-height: calc(var(--lv-h) - 2px);
}

/* Der "â‹¯" Rowmenu-Button war text-basiert: optisch zentrieren */
.te-lv__td--actions .te-lv__iconbtn{
  padding: 0;
  min-width: var(--lv-h);
  font-size: 18px;
  line-height: var(--lv-h);
}

/* 3) Pagination Footer (Bootstrap-like, eckig, dicht) */
.te-lv__foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  padding: 8px var(--lv-pad-x);
  border-top: 1px solid var(--lv-line);
  background: #fff;
}

.te-lv__foot-left{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.te-lv__range{
  font-size: 12px;
  color: var(--lv-muted);
}

.te-lv__muted{
  font-size: 12px;
  color: var(--lv-muted);
}

/* Inputs/Selects (fÃ¼r Modal + Footer) */
.te-lv__input,
.te-lv__select{
  height: var(--lv-h);
  border-radius: 0;
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  color: var(--lv-text);
  font-size: 13px;
  font-weight: 400;
  padding: 0 10px;
  outline: none;
}

.te-lv__input:focus-visible,
.te-lv__select:focus-visible{
  outline: 2px solid rgba(11,12,14,.35);
  outline-offset: 1px;
}

.te-lv__pager{
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.te-lv__pbtn{
  appearance: none;
  border-radius: 0;
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  color: rgba(11,12,14,.85);

  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;

  font-size: 13px;
  font-weight: 400;
  cursor: pointer;

  /* Bootstrap-Ã¤hnlich: zusammenhÃ¤ngend */
  margin-left: -1px;
}

.te-lv__pbtn:hover{
  background: rgba(11,12,14,.02);
}

.te-lv__pbtn--active{
  background: rgba(11,12,14,.06);
  border-color: rgba(11,12,14,.22);
}

.te-lv__dots{
  display: inline-flex;
  align-items: center;
  height: var(--lv-h);
  padding: 0 10px;
  border: 1px solid transparent;
  color: rgba(11,12,14,.45);
}

/* 4) Modal (Enterprise: overlay + eckiges Panel) */
.te-lv__modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.te-lv__modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(11,12,14,.45);
}

.te-lv__modal-panel{
  position: relative;
  margin: 6vh auto;
  width: min(920px, 92vw);
  background: #fff;
  border: 1px solid rgba(11,12,14,.18);
  border-radius: 0;
  box-shadow: none;
}

.te-lv__modal-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  padding: 10px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background: #fbfcfd;
}

.te-lv__modal-title{
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: rgba(11,12,14,.92);
}

.te-lv__modal-actions{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.te-lv__modal-body{
  padding: 12px var(--lv-pad-x);
  background: #fff;
}

.te-lv__formgrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
}

.te-lv__label{
  display: grid;
  gap: 4px;
  font-size: 12px;
  color: rgba(11,12,14,.70);
}

@media (max-width: 860px){
  .te-lv__formgrid{ grid-template-columns: 1fr; }
}
/* =========================================================
   Enterprise ListView Hardening (Scope: .te-lv only)
   Ziel: Salesforce/Bootstrap-ähnliche Dichte + saubere Kanten
   ========================================================= */

.te-lv{
  --lv-bg: #f4f6f8;
  --lv-surface: #fff;
  --lv-line: rgba(11,12,14,.12);
  --lv-line-strong: rgba(11,12,14,.18);
  --lv-text: var(--te-text, #0b0c0e);
  --lv-muted: rgba(11,12,14,.58);
  --lv-h: 32px;
  --lv-pad-x: 12px;

  background: var(--lv-bg);
  color: var(--lv-text);
}

/* 5% Seitenrand: stabil, enterprise-like */
.te-lv__shell{
  margin: 0 5vw;
  padding: 12px 0;
}

/* harte Kante / keine Schatten / keine Rundungen */
.te-lv__surface{
  background: var(--lv-surface);
  border: 1px solid var(--lv-line);
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
}

/* Theme-Reset NUR im ListView Scope (damit GP/WP nicht reinfunkt) */
.te-lv button,
.te-lv select,
.te-lv input{
  border-radius: 0 !important;
  box-shadow: none !important;
  font: inherit;
}

/* Header: keine „Webseiten“-Höhen, sondern Control-Baseline */
.te-lv__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 8px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background: #fff;
}

/* Control-Cluster (Search + Icons + Primary) = eine Reihe */
.te-lv__controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 8px;
  flex-wrap: nowrap;
}

/* Search als Input-Group (Bootstrap-Pattern) */
.te-lv__search{
  display:flex;
  align-items:center;
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
}

.te-lv__searchinput{
  height: var(--lv-h);
  border: 0;
  outline: none;
  padding: 0 10px;
  width: min(360px, 34vw);
  min-width: 220px;
}

.te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.te-lv__iconbtn svg{ width:16px; height:16px; }

.te-lv__btn{
  height: var(--lv-h);
  padding: 0 12px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  cursor:pointer;
  font-weight: 500;
}

.te-lv__btn--primary{
  background:#0b0c0e;
  border-color:#0b0c0e;
  color:#fff;
}

/* Table: sticky head, harte Linien, keine Luft */
.te-lv__tablewrap{ overflow:auto; }
.te-lv__table{ width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }

.te-lv__th{
  position: sticky; top: 0; z-index: 2;
  background:#fbfcfd;
  border-bottom:1px solid var(--lv-line);
  padding: 10px var(--lv-pad-x);
  font-weight: 500;
  color: rgba(11,12,14,.62);
}

.te-lv__td{
  padding: 10px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background:#fff;
}

.te-lv__th--check, .te-lv__td--check{ width:44px; padding: 10px 10px; }
.te-lv__th--actions, .te-lv__td--actions{ width:52px; text-align:right; padding-right:10px; }

.te-lv__row:hover .te-lv__td{ background: rgba(11,12,14,.015); }

/* Footer: KEINE zusätzlichen „grauen Linien“ außer Border-Top */
.te-lv__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 8px var(--lv-pad-x);
  border-top: 1px solid var(--lv-line);
  background:#fff;
}

/* Page size selector wirklich „enterprise“: kompakt + aligned */
.te-lv__foot-left{
  display:flex;
  align-items:center;
  gap: 10px;
  white-space: nowrap;
  font-size: 12px;
  color: var(--lv-muted);
}

.te-lv__select{
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  padding: 0 8px;
}

/* Pagination = Button Group (Bootstrap-Logik) */
.te-lv__pager{
  display:inline-flex;
  align-items:center;
  gap: 0;
  white-space: nowrap;
}

.te-lv__pbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  cursor:pointer;

  /* Button-Group effect */
  margin-left: -1px;
}

.te-lv__pbtn--active{
  background: rgba(11,12,14,.06);
  border-color: rgba(11,12,14,.24);
}

.te-lv__dots{
  display:inline-flex;
  align-items:center;
  height: var(--lv-h);
  padding: 0 10px;
  color: rgba(11,12,14,.45);
}

/* SR only */
.te-lv__sr{
  position:absolute !important;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}
/* =========================================================
   Tabulator Pagination – Segmented Control (Codepen-like)
   Scope: .te-lvtab ONLY (ListView Table)
   ========================================================= */

/* Paginator as tight segmented group (no "website gaps") */
.te-lvtab .tabulator .tabulator-paginator{
  display: inline-flex;
  align-items: center;
  gap: 0;
}

/* Base segment */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page{
  border-radius: 0 !important;          /* rule: no rounded buttons */
  margin: 0 !important;                  /* remove "webby" spacing */
  min-width: 34px;                       /* dense */
  height: 32px;                          /* dense */
  padding: 0 10px;                       /* compact */
  line-height: 32px;
  background: #fff;
  color: #0b0c0e;
  border: 1px solid rgba(11,12,14,.18);
  box-shadow: none;
  font-weight: 400;                      /* keep typography calm */
}

/* Collapse borders between segments (single control look) */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page + .tabulator-page{
  margin-left: -1px !important;
}

/* Hover: minimal */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page:hover{
  background: rgba(11,12,14,.03);
  border-color: rgba(11,12,14,.26);
}

/* Active: NOT black-filled; subtle segment state (codepen-like) */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page.active{
  background: rgba(11,12,14,.06) !important;
  color: #0b0c0e !important;
  border-color: rgba(11,12,14,.34) !important;
}

/* Focus: enterprise, quiet, visible */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page:focus{
  outline: 1px solid rgba(11,12,14,.45);
  outline-offset: -1px;
  position: relative;
  z-index: 2;
}

/* Disabled state (Tabulator variants) */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page.disabled,
.te-lvtab .tabulator .tabulator-paginator .tabulator-page[disabled],
.te-lvtab .tabulator .tabulator-paginator .tabulator-page[aria-disabled="true"]{
  opacity: .35;
  cursor: default;
  pointer-events: none;
  background: #fff;
}

/* =========================================================
   TonnEstate DataGrid ListView (DataTables-like)
   Scope: .te-lv only
   ========================================================= */

.te-lv{
  --lv-bg: #f3f5f7;
  --lv-surface: #fff;
  --lv-line: rgba(11,12,14,.10);
  --lv-line-strong: rgba(11,12,14,.16);
  --lv-text: var(--te-text, #0b0c0e);
  --lv-muted: rgba(11,12,14,.55);
  --lv-accent: var(--te-accent, #2aa6a0);

  --lv-h: 32px;
  --lv-pad-x: 14px;
  --lv-cell-y: 12px;      /* Row padding */
  --lv-radius: 8px;       /* du willst leicht rund -> ok */

  background: var(--lv-bg);
  color: var(--lv-text);
}

/* shell = 5% workspace gutter */
.te-lv__shell{ margin: 0 5vw; padding: 14px 0; }

/* surface mit Innenpadding (das hat dir gefehlt) */
.te-lv__surface{
  background: var(--lv-surface);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  overflow: hidden;
}

/* Header: kompakt, aber „DataGrid“-klar */
.te-lv__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 16px;

  padding: 14px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background:#fff;
}

.te-lv__head-left{
  display:flex;
  align-items:flex-start;
  gap: 18px;
  min-width: 0;
}

.te-lv__object{ font-size: 12px; color: var(--lv-muted); font-weight: 400; }
.te-lv__viewline{ display:flex; align-items:center; gap:10px; }
.te-lv__viewbtn{
  border:0; background:transparent; padding:0;
  font-size:14px; font-weight:500; cursor:pointer; color: var(--lv-text);
}
.te-lv__chev{
  display:inline-block; width:10px; height:10px; margin-left:6px;
  border-right:1px solid rgba(11,12,14,.55);
  border-bottom:1px solid rgba(11,12,14,.55);
  transform: rotate(45deg) translateY(-1px);
}
.te-lv__meta{ font-size:12px; color: var(--lv-muted); }

.te-lv__dtleft{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 12px;
  color: var(--lv-muted);
  white-space: nowrap;
}

.te-lv__info{
  margin-left: 8px;
  padding-left: 10px;
  border-left: 1px solid var(--lv-line);
}

/* right controls */
.te-lv__head-right{
  display:flex;
  align-items:center;
  gap: 8px;
}

.te-lv__search{
  display:flex;
  align-items:center;
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px; /* Inputgroup modern, aber nicht „pill“ */
  overflow:hidden;
}

.te-lv__searchinput{
  height: var(--lv-h);
  border:0; outline:none;
  padding: 0 10px;
  width: min(360px, 34vw);
  min-width: 220px;
  font-size: 13px;
}

.te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 0 10px;
  cursor:pointer;
}
.te-lv__iconbtn svg{ width:16px; height:16px; }

.te-lv__btn{
  height: var(--lv-h);
  border: 1px solid rgba(11,12,14,.28);
  background:#fff;
  border-radius: 6px;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 500;
  cursor:pointer;
}
.te-lv__btn--primary{
  background:#0b0c0e;
  border-color:#0b0c0e;
  color:#fff;
}

/* table wrapper: innenraum wie DataTables */
.te-lv__gridwrap{
  padding: 10px var(--lv-pad-x) 0 var(--lv-pad-x); /* Innenpadding! */
  background:#fff;
}

/* table */
.te-lv__table{
  width:100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
  background:#fff;
  border: 1px solid var(--lv-line);
  border-radius: 8px;
  overflow:hidden;
}

.te-lv__th{
  background:#f7f8fa;
  color: rgba(11,12,14,.62);
  font-weight: 500;
  text-align:left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--lv-line);
  white-space: nowrap;
}

.te-lv__td{
  padding: var(--lv-cell-y) 12px;
  border-bottom: 1px solid var(--lv-line);
  vertical-align: top;
  background:#fff;
}

/* zebra wie DataTables (dezent) */
.te-lv__row:nth-child(even) .te-lv__td{
  background: rgba(11,12,14,.012);
}

/* hover */
.te-lv__row:hover .te-lv__td{
  background: rgba(11,12,14,.02);
}

.te-lv__th--check, .te-lv__td--check{ width: 44px; }
.te-lv__th--actions, .te-lv__td--actions{ width: 240px; text-align:right; }

.te-lv__link{
  color: rgba(11,12,14,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(11,12,14,.20);
  font-weight: 500;
}
.te-lv__sub{ margin-top:4px; font-size:12px; color: var(--lv-muted); }
.te-lv__mono{ font-variant-numeric: tabular-nums; }

.te-lv__badge{
  display:inline-flex; align-items:center;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  font-size: 12px;
  color: rgba(11,12,14,.80);
}
.te-lv__badge--ok{ background: rgba(42,166,160,.10); border-color: rgba(42,166,160,.30); }
.te-lv__badge--warn{ background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.35); }

/* row buttons (wie in deinem Screenshot-Referenz, aber edel schwarz) */
.te-lv__rowbtns{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap: 6px;
}

.te-lv__rbtn{
  height: 28px;
  padding: 0 10px;
  border-radius: 6px;
  border: 1px solid rgba(11,12,14,.18);
  background: #0b0c0e;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.te-lv__rbtn:hover{ background:#000; border-color:#000; }

.te-lv__rbtn--danger{
  background:#fff;
  color:#0b0c0e;
  border-color: rgba(11,12,14,.22);
}

/* footer: kompakt und nicht „leer“ */
.te-lv__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;

  padding: 12px var(--lv-pad-x) 14px var(--lv-pad-x);
  border-top: 1px solid var(--lv-line);
  background:#fff;
}

.te-lv__pager{
  display:inline-flex;
  align-items:center;
  gap: 0;
}

.te-lv__pbtn{
  height: 30px;
  min-width: 34px;
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 0;       /* Button-group scharf */
  margin-left: -1px;
  cursor:pointer;
}

.te-lv__pbtn--active{
  background: rgba(11,12,14,.06);
  border-color: rgba(11,12,14,.22);
}

.te-lv__dots{
  display:inline-flex;
  align-items:center;
  height: 30px;
  padding: 0 10px;
  color: rgba(11,12,14,.45);
}

.te-lv__pill{
  display:inline-flex;
  align-items:center;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  border-radius: 6px;
  background:#fff;
  color: rgba(11,12,14,.78);
  font-size: 12px;
}

.te-lv__select{
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px;
  padding: 0 8px;
}

/* SR only */
.te-lv__sr{
  position:absolute !important;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}
/* =========================================================
   TonnEstate DataGrid ListView (DataTables-like)
   Scope: .te-lv only
   ========================================================= */

.te-lv{
  --lv-bg: #f3f5f7;
  --lv-surface: #fff;
  --lv-line: rgba(11,12,14,.10);
  --lv-line-strong: rgba(11,12,14,.16);
  --lv-text: var(--te-text, #0b0c0e);
  --lv-muted: rgba(11,12,14,.55);
  --lv-accent: var(--te-accent, #2aa6a0);

  --lv-h: 32px;
  --lv-pad-x: 14px;
  --lv-cell-y: 12px;      /* Row padding */
  --lv-radius: 8px;       /* du willst leicht rund -> ok */

  background: var(--lv-bg);
  color: var(--lv-text);
}

/* shell = 5% workspace gutter */
.te-lv__shell{ margin: 0 5vw; padding: 14px 0; }

/* surface mit Innenpadding (das hat dir gefehlt) */
.te-lv__surface{
  background: var(--lv-surface);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  overflow: hidden;
}

/* Header: kompakt, aber „DataGrid“-klar */
.te-lv__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 16px;

  padding: 14px var(--lv-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background:#fff;
}

.te-lv__head-left{
  display:flex;
  align-items:flex-start;
  gap: 18px;
  min-width: 0;
}

.te-lv__object{ font-size: 12px; color: var(--lv-muted); font-weight: 400; }
.te-lv__viewline{ display:flex; align-items:center; gap:10px; }
.te-lv__viewbtn{
  border:0; background:transparent; padding:0;
  font-size:14px; font-weight:500; cursor:pointer; color: var(--lv-text);
}
.te-lv__chev{
  display:inline-block; width:10px; height:10px; margin-left:6px;
  border-right:1px solid rgba(11,12,14,.55);
  border-bottom:1px solid rgba(11,12,14,.55);
  transform: rotate(45deg) translateY(-1px);
}
.te-lv__meta{ font-size:12px; color: var(--lv-muted); }

.te-lv__dtleft{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 12px;
  color: var(--lv-muted);
  white-space: nowrap;
}

.te-lv__info{
  margin-left: 8px;
  padding-left: 10px;
  border-left: 1px solid var(--lv-line);
}

/* right controls */
.te-lv__head-right{
  display:flex;
  align-items:center;
  gap: 8px;
}

.te-lv__search{
  display:flex;
  align-items:center;
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px; /* Inputgroup modern, aber nicht „pill“ */
  overflow:hidden;
}

.te-lv__searchinput{
  height: var(--lv-h);
  border:0; outline:none;
  padding: 0 10px;
  width: min(360px, 34vw);
  min-width: 220px;
  font-size: 13px;
}

.te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 0 10px;
  cursor:pointer;
}
.te-lv__iconbtn svg{ width:16px; height:16px; }

.te-lv__btn{
  height: var(--lv-h);
  border: 1px solid rgba(11,12,14,.28);
  background:#fff;
  border-radius: 6px;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 500;
  cursor:pointer;
}
.te-lv__btn--primary{
  background:#0b0c0e;
  border-color:#0b0c0e;
  color:#fff;
}

/* table wrapper: innenraum wie DataTables */
.te-lv__gridwrap{
  padding: 10px var(--lv-pad-x) 0 var(--lv-pad-x); /* Innenpadding! */
  background:#fff;
}

/* table */
.te-lv__table{
  width:100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
  background:#fff;
  border: 1px solid var(--lv-line);
  border-radius: 8px;
  overflow:hidden;
}

.te-lv__th{
  background:#f7f8fa;
  color: rgba(11,12,14,.62);
  font-weight: 500;
  text-align:left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--lv-line);
  white-space: nowrap;
}

.te-lv__td{
  padding: var(--lv-cell-y) 12px;
  border-bottom: 1px solid var(--lv-line);
  vertical-align: top;
  background:#fff;
}

/* zebra wie DataTables (dezent) */
.te-lv__row:nth-child(even) .te-lv__td{
  background: rgba(11,12,14,.012);
}

/* hover */
.te-lv__row:hover .te-lv__td{
  background: rgba(11,12,14,.02);
}

.te-lv__th--check, .te-lv__td--check{ width: 44px; }
.te-lv__th--actions, .te-lv__td--actions{ width: 240px; text-align:right; }

.te-lv__link{
  color: rgba(11,12,14,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(11,12,14,.20);
  font-weight: 500;
}
.te-lv__sub{ margin-top:4px; font-size:12px; color: var(--lv-muted); }
.te-lv__mono{ font-variant-numeric: tabular-nums; }

.te-lv__badge{
  display:inline-flex; align-items:center;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  font-size: 12px;
  color: rgba(11,12,14,.80);
}
.te-lv__badge--ok{ background: rgba(42,166,160,.10); border-color: rgba(42,166,160,.30); }
.te-lv__badge--warn{ background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.35); }

/* row buttons (wie in deinem Screenshot-Referenz, aber edel schwarz) */
.te-lv__rowbtns{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap: 6px;
}

.te-lv__rbtn{
  height: 28px;
  padding: 0 10px;
  border-radius: 6px;
  border: 1px solid rgba(11,12,14,.18);
  background: #0b0c0e;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.te-lv__rbtn:hover{ background:#000; border-color:#000; }

.te-lv__rbtn--danger{
  background:#fff;
  color:#0b0c0e;
  border-color: rgba(11,12,14,.22);
}

/* footer: kompakt und nicht „leer“ */
.te-lv__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;

  padding: 12px var(--lv-pad-x) 14px var(--lv-pad-x);
  border-top: 1px solid var(--lv-line);
  background:#fff;
}

.te-lv__pager{
  display:inline-flex;
  align-items:center;
  gap: 0;
}

.te-lv__pbtn{
  height: 30px;
  min-width: 34px;
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 0;       /* Button-group scharf */
  margin-left: -1px;
  cursor:pointer;
}

.te-lv__pbtn--active{
  background: rgba(11,12,14,.06);
  border-color: rgba(11,12,14,.22);
}

.te-lv__dots{
  display:inline-flex;
  align-items:center;
  height: 30px;
  padding: 0 10px;
  color: rgba(11,12,14,.45);
}

.te-lv__pill{
  display:inline-flex;
  align-items:center;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  border-radius: 6px;
  background:#fff;
  color: rgba(11,12,14,.78);
  font-size: 12px;
}

.te-lv__select{
  height: var(--lv-h);
  border: 1px solid var(--lv-line-strong);
  background:#fff;
  border-radius: 6px;
  padding: 0 8px;
}

/* SR only */
.te-lv__sr{
  position:absolute !important;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}
/* =========================================================
   ListView Header Alignment Patch (Enterprise Baseline)
   Scope: .te-lv only
   Ziel: links "Context+Info" sauber, rechts Controls auf einer Höhe
   ========================================================= */

.te-lv{
  /* Ein bisschen mehr „Enterprise“-Höhe, nicht zu groß */
  --lv-h: 34px;
}

/* 1) Header als Grid: links / rechts */
.te-lv__head{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;          /* wichtigste Änderung: Baseline */
  gap: 16px;
}

/* 2) Linke Seite: Titleblock + DT-Info auf einer Linie */
.te-lv__head-left{
  display: flex;
  align-items: center;          /* gleiche Höhe wie Search/Icons */
  gap: 18px;
  min-width: 0;
}

/* Titleblock kompakt und stabil */
.te-lv__titleblock{
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 260px;             /* verhindert „wildes Springen“ */
}

.te-lv__object{
  line-height: 1.1;
}

.te-lv__viewline{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1.1;
}

.te-lv__meta{
  line-height: 1.1;
  white-space: nowrap;
}


/* 3) Rechte Seite: Controls Cluster auf einer Baseline */
.te-lv__head-right{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  white-space: nowrap;
}

/* 4) Alle Controls EXAKT gleiche Höhe */
.te-lv__select,
.te-lv__iconbtn,
.te-lv__btn{
  height: var(--lv-h);
}

/* Select optisch „Enterprise“: keine WP-Default-Margins */
.te-lv__select{
  margin: 0;
  line-height: calc(var(--lv-h) - 2px);
}

/* Iconbuttons wirklich zentrieren */
.te-lv__iconbtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
}

/* 5) Search als Input-Group: gleiche Höhe wie Icons */
.te-lv__search{
  height: var(--lv-h);
  display: inline-flex;
  align-items: center;
  overflow: hidden;                 /* damit nichts „übersteht“ */
}

.te-lv__searchinput{
  height: var(--lv-h);
  margin: 0;
  line-height: calc(var(--lv-h) - 2px);
  padding: 0 12px;
}

/* Lupe-Button in Search: gleiche Höhe, kein Versatz */
.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  border-left: 1px solid var(--lv-line-strong);
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
}

/* 6) WP/Theme-Müll: Buttons/Inputs haben manchmal vertikale margins */
.te-lv button,
.te-lv input,
.te-lv select{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 7) Optional: Wenn links zu eng wird, darf DT-Info umbrechen (aber sauber) */
@media (max-width: 980px){
  .te-lv__head{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .te-lv__head-right{
    justify-content: flex-start;
  }
  .te-lv__dtleft{
    border-left: 0;
    padding-left: 0;
  }
}
/* Sort Button im Header (Salesforce-like) */
.te-lv__sortbtn{
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.te-lv__sortbtn::after{
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1px solid rgba(11,12,14,.45);
  border-bottom: 1px solid rgba(11,12,14,.45);
  transform: rotate(45deg);
  opacity: .55;
}

.te-lv__sortbtn[aria-sort="ascending"]::after{
  transform: rotate(-135deg);
  opacity: .9;
}
.te-lv__sortbtn[aria-sort="descending"]::after{
  transform: rotate(45deg);
  opacity: .9;
}
/* =========================================================
   Enterprise ListView Header + Sort (Salesforce-like)
   Scope: .te-lv only
   ========================================================= */

.te-lv{
  --lv-h: 34px;                 /* Control height */
  --lv-gap: 8px;
  --lv-head-pad-y: 12px;
  --lv-head-pad-x: 14px;

  --lv-line: rgba(11,12,14,.10);
  --lv-line-strong: rgba(11,12,14,.16);
  --lv-muted: rgba(11,12,14,.55);
}

/* Header = 2-column grid: left context, right controls */
.te-lv__head{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;          /* Baseline fix */
  gap: 16px;
  padding: var(--lv-head-pad-y) var(--lv-head-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background: #fff;
}

/* Left = titleblock + dtleft in one row, aligned */
.te-lv__head-left{
  display: flex;
  align-items: center;          /* Baseline fix */
  gap: 18px;
  min-width: 0;
}

/* Titleblock stable: no drifting */
.te-lv__titleblock{
  display: grid;
  grid-auto-rows: min-content;
  gap: 6px;
  min-width: 260px;
}

.te-lv__object{
  font-size: 12px;
  color: var(--lv-muted);
  font-weight: 400;
  line-height: 1.1;
}

.te-lv__viewline{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1.1;
}

.te-lv__viewbtn{
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 14px;
  font-weight: 500;
  color: rgba(11,12,14,.92);
  cursor: pointer;
}

.te-lv__meta{
  font-size: 12px;
  color: var(--lv-muted);
  white-space: nowrap;
}

/* dtleft = secondary header controls (like DataTables) */
.te-lv__dtleft{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;

  padding-left: 14px;
  border-left: 1px solid var(--lv-line);
  font-size: 12px;
  color: var(--lv-muted);
}

/* Right controls wrapper */
.te-lv__head-right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.te-lv__controls{
  display: inline-flex;
  align-items: center;          /* Baseline fix */
  gap: var(--lv-gap);
  white-space: nowrap;
}

/* Force all controls to same height + remove theme margins */
.te-lv button,
.te-lv input,
.te-lv select{
  margin: 0 !important;
  box-shadow: none !important;
}

/* Select */
.te-lv__select{
  height: var(--lv-h);
  line-height: calc(var(--lv-h) - 2px);
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  padding: 0 8px;
  border-radius: 6px;
}

/* Search = input-group, height locked */
.te-lv__search{
  height: var(--lv-h);
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--lv-line-strong);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.te-lv__searchinput{
  height: var(--lv-h);
  border: 0;
  outline: none;
  padding: 0 12px;
  font-size: 13px;
  width: min(360px, 34vw);
  min-width: 220px;
}

.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  border: 0;
  border-left: 1px solid var(--lv-line-strong);
  border-radius: 0;
}

/* Icon buttons */
.te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  border-radius: 6px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.te-lv__iconbtn svg{ width: 16px; height: 16px; }

/* Primary action */
.te-lv__btn{
  height: var(--lv-h);
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid rgba(11,12,14,.28);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.te-lv__btn--primary{
  background: #0b0c0e;
  border-color: #0b0c0e;
  color: #fff;
}

/* =========================================================
   Sort (Salesforce/DataTables-like)
   ========================================================= */

.te-lv__th[data-sort]{
  padding-right: 10px; /* room for caret */
}

.te-lv__sortbtn{
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* neutral caret */
.te-lv__sortbtn::after{
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1px solid rgba(11,12,14,.45);
  border-bottom: 1px solid rgba(11,12,14,.45);
  transform: rotate(45deg);
  opacity: .45;
}

/* active states */
.te-lv__sortbtn[aria-sort="ascending"]::after{
  transform: rotate(-135deg);
  opacity: .9;
}

.te-lv__sortbtn[aria-sort="descending"]::after{
  transform: rotate(45deg);
  opacity: .9;
}

.te-lv__sortbtn:hover{
  color: rgba(11,12,14,.92);
}

/* Responsive: stack controls cleanly */
@media (max-width: 980px){
  .te-lv__head{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .te-lv__head-right{
    justify-content: flex-start;
  }
  .te-lv__dtleft{
    border-left: 0;
    padding-left: 0;
  }
}
/* =========================================================
   Enterprise ListView Header + Sort (Salesforce-like)
   Scope: .te-lv only
   ========================================================= */

.te-lv{
  --lv-h: 34px;                 /* Control height */
  --lv-gap: 8px;
  --lv-head-pad-y: 12px;
  --lv-head-pad-x: 14px;

  --lv-line: rgba(11,12,14,.10);
  --lv-line-strong: rgba(11,12,14,.16);
  --lv-muted: rgba(11,12,14,.55);
}

/* Header = 2-column grid: left context, right controls */
.te-lv__head{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;          /* Baseline fix */
  gap: 16px;
  padding: var(--lv-head-pad-y) var(--lv-head-pad-x);
  border-bottom: 1px solid var(--lv-line);
  background: #fff;
}

/* Left = titleblock + dtleft in one row, aligned */
.te-lv__head-left{
  display: flex;
  align-items: center;          /* Baseline fix */
  gap: 18px;
  min-width: 0;
}

/* Titleblock stable: no drifting */
.te-lv__titleblock{
  display: grid;
  grid-auto-rows: min-content;
  gap: 6px;
  min-width: 260px;
}

.te-lv__object{
  font-size: 12px;
  color: var(--lv-muted);
  font-weight: 400;
  line-height: 1.1;
}

.te-lv__viewline{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1.1;
}

.te-lv__viewbtn{
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 14px;
  font-weight: 500;
  color: rgba(11,12,14,.92);
  cursor: pointer;
}

.te-lv__meta{
  font-size: 12px;
  color: var(--lv-muted);
  white-space: nowrap;
}

/* dtleft = secondary header controls (like DataTables) */
.te-lv__dtleft{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;

  padding-left: 14px;
  border-left: 1px solid var(--lv-line);
  font-size: 12px;
  color: var(--lv-muted);
}

/* Right controls wrapper */
.te-lv__head-right{
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.te-lv__controls{
  display: inline-flex;
  align-items: center;          /* Baseline fix */
  gap: var(--lv-gap);
  white-space: nowrap;
}

/* Force all controls to same height + remove theme margins */
.te-lv button,
.te-lv input,
.te-lv select{
  margin: 0 !important;
  box-shadow: none !important;
}

/* Select */
.te-lv__select{
  height: var(--lv-h);
  line-height: calc(var(--lv-h) - 2px);
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  padding: 0 8px;
  border-radius: 6px;
}

/* Search = input-group, height locked */
.te-lv__search{
  height: var(--lv-h);
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--lv-line-strong);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.te-lv__searchinput{
  height: var(--lv-h);
  border: 0;
  outline: none;
  padding: 0 12px;
  font-size: 13px;
  width: min(360px, 34vw);
  min-width: 220px;
}

.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  border: 0;
  border-left: 1px solid var(--lv-line-strong);
  border-radius: 0;
}

/* Icon buttons */
.te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  padding: 0 10px;
  border: 1px solid var(--lv-line-strong);
  background: #fff;
  border-radius: 6px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.te-lv__iconbtn svg{ width: 16px; height: 16px; }

/* Primary action */
.te-lv__btn{
  height: var(--lv-h);
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid rgba(11,12,14,.28);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.te-lv__btn--primary{
  background: #0b0c0e;
  border-color: #0b0c0e;
  color: #fff;
}

/* =========================================================
   Sort (Salesforce/DataTables-like)
   ========================================================= */

.te-lv__th[data-sort]{
  padding-right: 10px; /* room for caret */
}

.te-lv__sortbtn{
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* neutral caret */
.te-lv__sortbtn::after{
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1px solid rgba(11,12,14,.45);
  border-bottom: 1px solid rgba(11,12,14,.45);
  transform: rotate(45deg);
  opacity: .45;
}

/* active states */
.te-lv__sortbtn[aria-sort="ascending"]::after{
  transform: rotate(-135deg);
  opacity: .9;
}

.te-lv__sortbtn[aria-sort="descending"]::after{
  transform: rotate(45deg);
  opacity: .9;
}

.te-lv__sortbtn:hover{
  color: rgba(11,12,14,.92);
}

/* Responsive: stack controls cleanly */
@media (max-width: 980px){
  .te-lv__head{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .te-lv__head-right{
    justify-content: flex-start;
  }
  .te-lv__dtleft{
    border-left: 0;
    padding-left: 0;
  }
}
/* =========================================================
   ListView: Row action icon buttons (Enterprise)
   ========================================================= */

.te-lv__td--actions{ text-align: right; }

.te-lv__rowbtns{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

/* Icon-only action button */
.te-lv__rbtn--icon{
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid rgba(11,12,14,.16);
  background: #0b0c0e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.te-lv__rbtn--icon svg{ width: 16px; height: 16px; }

.te-lv__rbtn--icon:hover{ background: #000; border-color: #000; }

/* Delete: outlined (safer visual language) */
.te-lv__rbtn--danger{
  background: #fff;
  color: #0b0c0e;
  border-color: rgba(11,12,14,.22);
}
.te-lv__rbtn--danger:hover{
  background: rgba(11,12,14,.04);
  border-color: rgba(11,12,14,.30);
}

/* =========================================================
   ListView: Search alignment fix (deterministic)
   Problem: input-group baseline drift (padding/border/line-height)
   Lösung: grid container + identical box model for input/button
   ========================================================= */

.te-lv__search{
  height: var(--lv-h);
  display: grid;
  grid-template-columns: 1fr var(--lv-h);
  align-items: stretch;
  border: 1px solid var(--lv-line-strong);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

/* ensure the input doesn't add its own internal vertical metrics */
.te-lv__searchinput{
  height: var(--lv-h);
  border: 0;
  outline: none;
  padding: 0 12px;
  font-size: 13px;
  line-height: var(--lv-h); /* kills baseline drift */
  display: block;
}

/* lock the iconbutton to the exact same height and remove any vertical padding */
.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h);
  min-width: var(--lv-h);
  width: var(--lv-h);
  border: 0;
  border-left: 1px solid var(--lv-line-strong);
  border-radius: 0;
  padding: 0;
}

/* also lock svg centering */
.te-lv__search .te-lv__iconbtn svg{
  width: 16px;
  height: 16px;
  display: block;
}
/* =========================================================
   TE ListView – Enterprise Header Fix + Icon Actions (Patch)
   Scope: .te-lv only
   Ziel:
   - Search darf nicht kollabieren/hoch rutschen
   - Header baseline exakt (Salesforce-like)
   - Row actions: graue Outline Icons auf Weiß (keine schwarzen Kacheln)
   ========================================================= */

/* ---------- Header Layout: von Flex(space-between) -> Grid ---------- */
.te-lv__head{
  display: grid !important;
  grid-template-columns: 1fr auto !important; /* links flexibel, rechts stabil */
  align-items: center !important;
  column-gap: 16px !important;
}

/* Linke Seite: Context + dtleft sauber auf einer Höhe */
.te-lv__head-left{
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important; /* wichtig für grid overflow handling */
}

/* dtleft als sekundärer Block – darf NICHT die rechten Controls zerquetschen */
.te-lv__dtleft{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  white-space: nowrap !important;
  min-width: 0 !important;
}

/* Rechte Seite: Controls Cluster */
.te-lv__head-right{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  white-space: nowrap !important;
  margin-left: 0 !important; /* weg mit flex-hack */
}

/* ---------- Search: deterministic input-group (kein Drift, kein Shrink) ---------- */
.te-lv__search{
  height: var(--lv-h) !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 360px) var(--lv-h) !important; /* Input bleibt lesbar */
  align-items: stretch !important;

  border: 1px solid var(--lv-line-strong) !important;
  border-radius: 0 !important; /* eure Regel */
  overflow: hidden !important;
  background: #fff !important;
}

.te-lv__searchinput{
  height: var(--lv-h) !important;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;

  padding: 0 12px !important;
  font-size: 13px !important;
  font-weight: 400 !important;

  line-height: var(--lv-h) !important; /* kill baseline drift */
  margin: 0 !important;               /* Theme-Margins eliminieren */
  min-width: 0 !important;
}

.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h) !important;
  width: var(--lv-h) !important;
  min-width: var(--lv-h) !important;

  border: 0 !important;
  border-left: 1px solid var(--lv-line-strong) !important;
  border-radius: 0 !important;

  padding: 0 !important;              /* kein Vertikalversatz */
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ---------- Globale Theme-Margins für Controls neutralisieren ---------- */
.te-lv button,
.te-lv input,
.te-lv select{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------- Row Actions: grey outline icons on white (enterprise) ---------- */
.te-lv__td--actions{ text-align: right; }

.te-lv__rowbtns{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

/* Icon-only button */
.te-lv__rbtn{
  width: 30px !important;
  height: 30px !important;
  padding: 0 !important;

  border-radius: 0 !important;
  border: 1px solid rgba(11,12,14,.14) !important;
  background: #fff !important;

  color: rgba(11,12,14,.62) !important; /* neutral grey */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  cursor: pointer !important;
}

/* bessere “Icon-Qualität” = stroke-only, runde caps/joins */
.te-lv__rbtn svg{
  width: 16px !important;
  height: 16px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  display: block !important;
}

.te-lv__rbtn:hover{
  border-color: rgba(11,12,14,.28) !important;
  background: rgba(11,12,14,.02) !important;
  color: rgba(11,12,14,.78) !important;
}

/* Delete: nur minimal stärker – KEIN rot, kein black */
.te-lv__rbtn--danger{
  color: rgba(11,12,14,.70) !important;
}
.te-lv__rbtn--danger:hover{
  border-color: rgba(11,12,14,.34) !important;
}

/* ---------- Responsive: wenn Header eng wird, rechte Controls umbrechen, aber sauber ---------- */
@media (max-width: 980px){
  .te-lv__head{
    grid-template-columns: 1fr !important;
    row-gap: 10px !important;
  }
  .te-lv__head-right{
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
  .te-lv__search{
    grid-template-columns: minmax(220px, 1fr) var(--lv-h) !important;
  }
}
/* =========================================================
   LV Row Actions: equal spacing + colored icons (enterprise)
   ========================================================= */

.te-lv__rowbtns{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;              /* exakt gleich */
}

.te-lv__rowbtns button{
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border: 1px solid rgba(11,12,14,.16) !important;
  background: #fff !important;      /* immer weiß */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

/* Icon quality + neutral base */
.te-lv__rowbtns button svg{
  width: 16px !important;
  height: 16px !important;
  display: block !important;
  fill: none !important;
  stroke: rgba(11,12,14,.55) !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* requested semantic colors – only the icon */
.te-lv__rowbtns button[data-action="delete"] svg{ stroke: #b42318 !important; } /* rot */
.te-lv__rowbtns button[data-action="edit"]   svg{ stroke: #a77b00 !important; } /* Gelb */
.te-lv__rowbtns button[data-action="view"]   svg{ stroke: #1a7f37 !important; } /* Grün */

/* hover: enterprise-quiet */
.te-lv__rowbtns button:hover{
  border-color: rgba(11,12,14,.28) !important;
  background: rgba(11,12,14,.02) !important;
}
/* =========================================================
   LV Header controls: hard baseline + same control height
   Works even if search has ONLY an input (no button)
   ========================================================= */

.te-lv{ --lv-h: 34px; }

.te-lv__head-right,
.te-lv__controls{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  white-space: nowrap !important;
}

.te-lv__head-right > *{ margin: 0 !important; }

.te-lv__iconbtn,
.te-lv__btn,
.te-lv__select{
  height: var(--lv-h) !important;
  line-height: calc(var(--lv-h) - 2px) !important;
  border-radius: 0 !important;
}

/* Search container becomes a real control */
.te-lv__search{
  height: var(--lv-h) !important;
  display: inline-flex !important;
  align-items: center !important;
  border: 1px solid rgba(11,12,14,.18) !important;
  border-radius: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
}

/* If search contains only input, it still aligns */
.te-lv__searchinput{
  height: var(--lv-h) !important;
  line-height: var(--lv-h) !important;
  border: 0 !important;
  outline: none !important;
  padding: 0 12px !important;
  margin: 0 !important;
  min-width: 320px !important;      /* verhindert „zusammenklappen“ */
}
/* =========================================================
   LV View selector: enterprise
   ========================================================= */

.te-lv__titleblock{ gap: 6px !important; }

.te-lv__viewline{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.te-lv__viewbtn{
  height: var(--lv-h) !important;
  padding: 0 10px !important;
  border: 1px solid rgba(11,12,14,.18) !important;
  background: #fff !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(11,12,14,.88) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.te-lv__chev{
  width: 8px !important;
  height: 8px !important;
  border-right: 1px solid rgba(11,12,14,.55) !important;
  border-bottom: 1px solid rgba(11,12,14,.55) !important;
  transform: rotate(45deg) !important;
  display: inline-block !important;
  margin-top: -2px !important;
}

.te-lv__meta{
  font-size: 12px !important;
  color: rgba(11,12,14,.55) !important;
  white-space: nowrap !important;
}
/* =========================================================
   TE ListView FINAL PATCH (11:29)
   Fixes:
   1) Row action icons: equal spacing, centered, grey outline (no mystery gap)
   2) Header + Search baseline alignment (no floating)
   3) Pagination professional (bootstrap-like group)
   Scope: .te-lv only
   ========================================================= */

.te-lv{
  --lv-h: 34px;
  --lv-border: rgba(11,12,14,.16);
  --lv-border-strong: rgba(11,12,14,.22);
  --lv-text-muted: rgba(11,12,14,.55);
}

/* -----------------------------
   HEADER: stable grid layout
------------------------------ */
.te-lv__head{
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 16px !important;
}

.te-lv__head-left{
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  min-width: 0 !important;
}

.te-lv__head-right{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  white-space: nowrap !important;
}

/* hard-reset theme margins that cause drifting */
.te-lv button,
.te-lv input,
.te-lv select{
  margin: 0 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

/* unified control heights */
.te-lv__iconbtn,
.te-lv__btn,
.te-lv__select{
  height: var(--lv-h) !important;
  line-height: calc(var(--lv-h) - 2px) !important;
  border-radius: 0 !important;
}

/* -----------------------------
   SEARCH: input-group (no float)
------------------------------ */
.te-lv__search{
  height: var(--lv-h) !important;
  display: grid !important;
  grid-template-columns: minmax(320px, 420px) var(--lv-h) !important;
  align-items: stretch !important;

  border: 1px solid var(--lv-border-strong) !important;
  border-radius: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
}

.te-lv__searchinput{
  height: var(--lv-h) !important;
  border: 0 !important;
  outline: none !important;
  padding: 0 12px !important;
  line-height: var(--lv-h) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  display: block !important;
  min-width: 0 !important;
}

.te-lv__search .te-lv__iconbtn{
  height: var(--lv-h) !important;
  width: var(--lv-h) !important;
  min-width: var(--lv-h) !important;

  border: 0 !important;
  border-left: 1px solid var(--lv-border-strong) !important;
  padding: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* -----------------------------
   ROW ACTIONS: FIX "mystery gap"
------------------------------ */

/* 1) kill any inline whitespace / font-metric gaps */
.te-lv__rowbtns{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  font-size: 0 !important; /* eliminates phantom spacing from inline content */
}

/* 2) hard-normalize buttons (centering + grey outline) */
.te-lv__rowbtns .te-lv__rbtn{
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  border: 1px solid var(--lv-border) !important;  /* grau */
  background: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

/* 3) ensure svg is optically centered */
.te-lv__rowbtns .te-lv__rbtn svg{
  width: 16px !important;
  height: 16px !important;
  display: block !important;
  fill: none !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* semantic icon colors (only the icon) */
.te-lv__rowbtns .te-lv__rbtn[data-action="delete"] svg{ stroke: #b42318 !important; } /* rot */
.te-lv__rowbtns .te-lv__rbtn[data-action="edit"]   svg{ stroke: #1a7f37 !important; } /* grün */
.te-lv__rowbtns .te-lv__rbtn[data-action="view"]   svg{ stroke: #a77b00 !important; } /* dunkelgelb */

/* hover quiet */
.te-lv__rowbtns .te-lv__rbtn:hover{
  border-color: rgba(11,12,14,.28) !important;
  background: rgba(11,12,14,.02) !important;
}

/* -----------------------------
   PAGINATION: professional group
------------------------------ */
.te-lv__pager{
  display: inline-flex !important;
  align-items: center !important;
}

.te-lv__pbtn{
  height: 30px !important;
  min-width: 32px !important;
  padding: 0 10px !important;

  border: 1px solid var(--lv-border) !important;
  background: #fff !important;
  color: rgba(11,12,14,.72) !important;

  border-radius: 0 !important;
  margin: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* collapse borders -> one continuous control */
.te-lv__pbtn + .te-lv__pbtn{
  border-left: 0 !important;
}

.te-lv__pbtn--active{
  background: rgba(11,12,14,.06) !important;
  color: rgba(11,12,14,.92) !important;
  border-color: var(--lv-border-strong) !important;
}

.te-lv__dots{
  display: inline-flex !important;
  height: 30px !important;
  padding: 0 10px !important;
  border-top: 1px solid var(--lv-border) !important;
  border-bottom: 1px solid var(--lv-border) !important;
  color: var(--lv-text-muted) !important;
}
/* =========================================================
   TonnEstate CRM – ListView (Tabulator) – scoped
   ========================================================= */
.te-lvtab{
  /* App: grauer Hintergrund, weiße Arbeitsfläche */
  background: transparent;
}

.te-lvtab__surface{
  background:#fff;
  border:1px solid rgba(11,12,14,.10);
  border-radius: 8px; /* deine Aussage: Rundung ok */
  overflow:hidden;
}

.te-lvtab__bar{
  display:flex;
  align-items:center;                 /* <- der Alignment-Fix */
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  border-bottom:1px solid rgba(11,12,14,.08);
}

.te-lvtab__left,
.te-lvtab__right{
  display:flex;
  align-items:center;                 /* <- der Alignment-Fix */
  gap:12px;
  min-width:0;
}

.te-lvtab__left{ flex:1 1 auto; }
.te-lvtab__right{ flex:0 0 auto; }

.te-lvtab__object{
  font-size:12px;
  color:rgba(11,12,14,.60);
  white-space:nowrap;
}

.te-lvtab__view{
  height:34px;
  padding:0 10px;
  border:1px solid rgba(11,12,14,.16);
  background:#fff;
  color:rgba(11,12,14,.90);
  font-size:14px;
  font-weight:400;                    /* ruhig, nicht fett */
  line-height:32px;
  cursor:pointer;
  white-space:nowrap;
}

.te-lvtab__chev{
  display:inline-block;
  width:0; height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid rgba(11,12,14,.55);
  margin-left:8px;
  transform: translateY(-1px);
}

.te-lvtab__meta{
  display:flex;
  align-items:center;                 /* <- wieder baseline fix */
  gap:10px;
  color:rgba(11,12,14,.65);
  font-size:12px;
  white-space:nowrap;
}

.te-lvtab__count strong{
  font-weight:600;                    /* minimal, kein „fett“ Look */
}

.te-lvtab__sep{
  width:1px;
  height:18px;
  background:rgba(11,12,14,.10);
}

.te-lvtab__label{ color:rgba(11,12,14,.55); }

.te-lvtab__select{
  height:34px;
  border:1px solid rgba(11,12,14,.16);
  background:#fff;
  padding:0 8px;
  font-size:13px;
}

.te-lvtab__range{
  margin-left:6px;
  color:rgba(11,12,14,.55);
}

/* Toolbar: Suche + Buttons = gleiche Höhe, gleicher Abstand */
.te-lvtab__search{
  height:34px;
  display:flex;
  align-items:center;
  border:1px solid rgba(11,12,14,.16);
  background:#fff;
}

.te-lvtab__searchinput{
  height:32px;
  width:320px;
  border:0;
  outline:0;
  padding:0 10px;
  font-size:13px;
  background:transparent;
}

.te-lvtab__iconbtn{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(11,12,14,.16);
  background:#fff;
  padding:0;
  cursor:pointer;
  margin-left:0;                      /* <- verhindert „wilde“ Abstände */
}

.te-lvtab__search .te-lvtab__iconbtn{
  border:0;
  border-left:1px solid rgba(11,12,14,.12);
}

.te-lvtab__iconbtn svg{
  width:16px;
  height:16px;
  color:rgba(11,12,14,.55);           /* Enterprise: grau, nicht schwarz */
}

.te-lvtab__btn{
  height:34px;
  padding:0 12px;
  border:1px solid rgba(11,12,14,.85);
  background:#0b0c0e;
  color:#fff;
  font-size:13px;
  font-weight:400;
  cursor:pointer;
}

/* Screenreader helper */
.te-lvtab__sr{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Grid wrapper */
.te-lvtab__grid{
  padding:10px 12px 12px;
  background: #f3f4f6;                /* Content-Hintergrund */
}

/* Tabulator “Enterprise” overrides (nur in dieser ListView) */
.te-lvtab .tabulator{
  border:1px solid rgba(11,12,14,.10);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.te-lvtab .tabulator .tabulator-header{
  background:#f6f7f9;
  border-bottom:1px solid rgba(11,12,14,.10);
}

.te-lvtab .tabulator .tabulator-col{
  background:#f6f7f9;
  border-right:1px solid rgba(11,12,14,.08);
}

.te-lvtab .tabulator .tabulator-col-title{
  font-weight:400;
  color:rgba(11,12,14,.75);
  font-size:12px;
}

.te-lvtab .tabulator .tabulator-row{
  min-height:44px;                    /* App density */
  border-bottom:1px solid rgba(11,12,14,.06);
}

.te-lvtab .tabulator .tabulator-cell{
  padding:10px 12px;                  /* inneres Padding pro Row/Zelle */
  font-size:13px;
  color:rgba(11,12,14,.90);
}

/* Action icons: gleiches Spacing + Centering + Outline grau */
.te-lvtab .te-row-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;                            /* <- garantiert gleiche Abstände */
}

.te-lvtab .te-ia{
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(11,12,14,.14);
  background:#fff;
  padding:0;
  cursor:pointer;
}

.te-lvtab .te-ia svg{
  width:16px;
  height:16px;
  color:rgba(11,12,14,.55);
}

/* Funktionsfarben (nicht dekorativ): nur Icon-Farbe */
.te-lvtab .te-ia--del svg{ color: rgba(200, 0, 0, .75); }
.te-lvtab .te-ia--edit svg{ color: rgba(170, 140, 0, .85); }
.te-lvtab .te-ia--view svg{ color: rgba(0, 140, 60, .75); }

/* Hover: leicht stärker, aber nicht “webby” */
.te-lvtab .te-ia:hover{ border-color: rgba(11,12,14,.28); }
/* Tabulator – TonnEstate Skin (scoped) */
.te-lvtab .tabulator {
  border: 1px solid rgba(11,12,14,.10);
  border-radius: 12px;
  overflow: hidden;
}

.te-lvtab .tabulator .tabulator-header {
  background: #f7f8f9;
  border-bottom: 1px solid rgba(11,12,14,.10);
}

.te-lvtab .tabulator .tabulator-footer {
  background: #fff;
  border-top: 1px solid rgba(11,12,14,.10);
}

/* Pagination Buttons */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page {
  border: 1px solid rgba(11,12,14,.14);
  background: #fff;
  color: #0b0c0e;
  border-radius: 10px;
  min-width: 36px;
  height: 34px;
  padding: 0 10px;
  margin: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.te-lvtab .tabulator .tabulator-paginator .tabulator-page.active {
  background: #0b0c0e;
  color: #fff;
  border-color: #0b0c0e;
}

/* Counter / “Datensätze” neutral */
.te-lvtab .tabulator .tabulator-footer .tabulator-page-counter,
.te-lvtab .tabulator .tabulator-footer .tabulator-page-size {
  color: #2a2f35;
}

/* Search input: nicht grau, sauber */
.te-lvtab .te-lvtab__searchinput {
  color: #0b0c0e;
}

.te-lvtab .te-lvtab__searchinput::placeholder {
  color: rgba(11,12,14,.45);
}

/* Hier neu */
/* OVERRIDE: Tabulator Pagination (ListView) – right aligned, no container, DE label, elegant select
   Scope: .te-lvtab ONLY
*/

/* Footer nicht als Flex anfassen – nur stabile Float/Align-Logik */
.te-lvtab .tabulator .tabulator-footer{
  background:#fff;
  border-top:1px solid rgba(11,12,14,.10);
  text-align:right;               /* paginator aligns to the right */
  padding: 8px 12px;              /* kompakt, enterprise */
}

/* Page size + counter links halten */
.te-lvtab .tabulator .tabulator-footer .tabulator-page-size,
.te-lvtab .tabulator .tabulator-footer .tabulator-page-counter{
  float:left;
  color:#2a2f35;
}

/* Paginator rechts – ohne grauen Container */
.te-lvtab .tabulator .tabulator-footer .tabulator-paginator{
  float:right;
  margin:0;
  padding:0;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  display:inline-block;
}

/* Button-Design: CodePen-like states, aber 0px Radius */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page{
  border:1px solid rgba(11,12,14,.18) !important;
  background:#fff !important;
  color: rgba(11,12,14,.78) !important;

  border-radius:0 !important;     /* Regel */
  min-width:40px;
  height:34px;
  padding:0 12px;

  margin:0 4px !important;        /* CodePen spacing */
  display:inline-flex;
  align-items:center;
  justify-content:center;

  font-weight:400;
  box-shadow:none !important;
}

/* Hover + Active exakt wie CodePen-Charakter (dunkel gefüllt) */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page:hover{
 /* background:#1d1f20 !important; */
  border-color:#1d1f20 !important;
  color:#1d1f20 !important;
}
.te-lvtab .tabulator .tabulator-paginator .tabulator-page.active{
/*  background:#1d1f20 !important; */
  border-color:#1d1f20 !important;
/*  color:#f0f0f0 !important; */
}

/* Disabled neutral */
.te-lvtab .tabulator .tabulator-paginator .tabulator-page.disabled,
.te-lvtab .tabulator .tabulator-paginator .tabulator-page[disabled],
.te-lvtab .tabulator .tabulator-paginator .tabulator-page[aria-disabled="true"]{
  opacity:.35;
  pointer-events:none;
}

/* --- Page Size deutsch + Select "edel" --- */
/* Annahme (Tabulator üblich): Label umschließt Select */
.te-lvtab .tabulator .tabulator-footer .tabulator-page-size label{
  color:transparent;              /* Label-Text unsichtbar, Layout bleibt */
  font-size:13px;
  position:relative;
  margin-right:10px;
}

.te-lvtab .tabulator .tabulator-footer .tabulator-page-size label::before{
  content:"Einträge";             /* dein Wunsch: deutsch */
  color:#2a2f35;
  margin-right:10px;
}

/* Select wieder korrekt sichtbar/stabil (nicht zerstören) */
.te-lvtab .tabulator .tabulator-footer .tabulator-page-size select{
  color:#0b0c0e;
  height:34px;
  line-height:34px;
  border:1px solid rgba(11,12,14,.18);
  background:#fff;
  border-radius:0 !important;     /* Regel */
  padding:0 10px;
  font-size:13px;
  font-weight:400;
  box-shadow:none;
  outline:none;
}

.te-lvtab .tabulator .tabulator-footer .tabulator-page-size select:hover{
  border-color: rgba(11,12,14,.28);
}
.te-lvtab .tabulator .tabulator-footer .tabulator-page-size select:focus{
  border-color: rgba(11,12,14,.34);
  outline:1px solid rgba(11,12,14,.22);
  outline-offset:1px;
}

/* Float-Clearing, damit Footer-Höhe korrekt bleibt */
.te-lvtab .tabulator .tabulator-footer::after{
  content:"";
  display:block;
  clear:both;
}
/* OVERRIDE: Tabulator footer PageSize (left) + Pagination (right) + Select black/white
   Scope: #teCustomersGrid ONLY
*/

/* Left: page size; Right: paginator */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size{
  float: left;
}

#teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator{
  float: right;
}

/* Clearfix */
#teCustomersGrid .tabulator .tabulator-footer::after{
  content:"";
  display:block;
  clear:both;
}

/* Select: black background, white value (consistent with active page) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select{
  height: 34px;
  line-height: 34px;
  padding: 0 12px;

  border-radius: 0 !important;
  border: 1px solid #0b0c0e;

  background: #0b0c0e;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff; /* Chromium/Safari edge cases */

  font-size: 13px;
  font-weight: 400;
  box-shadow: none !important;
  outline: none !important;
  vertical-align: middle;
}

/* Dropdown options readable (native dropdown uses its own surface) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select option{
  background: #ffffff;
  color: #0b0c0e;
}
/* OVERRIDE: Customers Grid – PageSize Select black/white (footer only)
   Scope: #teCustomersGrid ONLY
*/

#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select{
  height:34px;
  line-height:34px;
  padding:0 12px;

  border-radius:0 !important;
  border:1px solid #0b0c0e;

  background:#0b0c0e;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff; /* Chrome/Safari native select */

  font-size:13px;
  font-weight:400;
  box-shadow:none !important;
  outline:none !important;
}

/* Optionen lesbar (native dropdown surface) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select option{
  background:#ffffff;
  color:#0b0c0e;
}
/* OVERRIDE: Tabulator footer page-size select black/white
   Scope: #teCustomersGrid ONLY
*/
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select{
  height: 34px;
  line-height: 34px;
  padding: 0 12px;

  border-radius: 0 !important;
  border: 1px solid #0b0c0e;

  background: #0b0c0e;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;

  font-size: 13px;
  font-weight: 400;
  box-shadow: none !important;
  outline: none !important;
}

/* Dropdown options readable */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select option{
  background: #ffffff;
  color: #0b0c0e;
}
/* =========================================================
   /* ADD */ Tabulator Footer Pagination (Salesforce-like)
   Scope: #teCustomersGrid only
   Goals:
   - "Page Size" -> "Anzahl Einträge" (UTF escape)
   - Label vor Select
   - Select schwarz/weiß wie Current Page
   - Pagination rechts, Page-Size links
   ========================================================= */

/* Footer row: two zones (left page-size, right paginator) */
#teCustomersGrid .tabulator .tabulator-footer{
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

/* Left zone */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 12px;
}

/* Replace Tabulator text label visually */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size{
  font-size: 0;            /* hide existing "Page Size" text node safely */
  line-height: 0;
}

/* New label (UTF-escaped) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size::before{
  content: "Anzahl Eintr\\00E4ge";
  font-size: 13px;
  line-height: 1;
  color: #2a2f35;
  font-weight: 400;
}

/* Ensure select is visible again (undo font-size:0 on wrapper) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select{
  font-size: 13px;
  line-height: 1;
}

/* Select styling: black/white, square, compact */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select{
  height: 34px;
  padding: 0 10px;
  border-radius: 0 !important;
  border: 1px solid #0b0c0e !important;

  background: #0b0c0e !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;

  box-shadow: none !important;
  outline: none !important;
}

/* Options (browser dependent; safe defaults) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page-size select option{
  background: #ffffff;
  color: #0b0c0e;
}

/* Right zone: paginator aligned to the right */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator{
  margin-left: auto;
}

/* Keep paginator controls compact and square */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page{
  border-radius: 0 !important;
}

/* Ensure current page matches the "black" control style */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page.active{
  background: #0b0c0e !important;
  border-color: #0b0c0e !important;
  color: #ffffff !important;
}
/* =========================================================
   Tabulator – PageSize Select (Enterprise)
   Scope: Tabulator Footer only
   ========================================================= */

.tabulator .tabulator-footer .tabulator-page-size{
  /* Reset WordPress/Theme Select Look */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  /* Sizing */
  height: 34px;
  line-height: 34px;
  padding: 0 34px 0 12px; /* right padding for chevron */

  /* Typography */
  font: inherit;
  font-size: 13px;
  font-weight: 600;

  /* Visual */
  color: rgba(11,12,14,.92);
  background-color: #fff;
  border: 1px solid rgba(11,12,14,.18);
  border-radius: 10px;

  /* Layout safety */
  margin: 0 !important;
  float: none !important;
  position: static !important;

  /* Smooth */
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

/* Custom chevron (no external SVG needed) */
.tabulator .tabulator-footer .tabulator-page-size{
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(11,12,14,.65) 50%),
    linear-gradient(135deg, rgba(11,12,14,.65) 50%, transparent 50%);
  background-position:
    calc(100% - 16px) 50%,
    calc(100% - 11px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

/* Hover */
.tabulator .tabulator-footer .tabulator-page-size:hover{
  border-color: rgba(11,12,14,.28);
  background-color: #fff;
}

/* Focus (enterprise ring) */
.tabulator .tabulator-footer .tabulator-page-size:focus{
  outline: none;
  border-color: rgba(42,166,160,.70); /* te-accent */
  box-shadow: 0 0 0 3px rgba(42,166,160,.18);
}

/* Disabled */
.tabulator .tabulator-footer .tabulator-page-size:disabled{
  opacity: .55;
  cursor: not-allowed;
}

/* Option readability (some browsers ignore much of this, but harmless) */
.tabulator .tabulator-footer .tabulator-page-size option{
  font-weight: 600;
}
/* =========================================================
   Tabulator Footer: Page-Size LINKS, Pager RECHTS
   (hartes Override gegen floats / text-align / WP-Defaults)
   ========================================================= */

.tabulator .tabulator-footer .tabulator-footer-contents{
  /* falls irgendwo text-align:right reingrätscht */
  text-align: left !important;
}

/* Der Container, der ALLES enthält (Label + Select + Pagerbuttons) */
.tabulator .tabulator-footer .tabulator-paginator{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;

  /* der wichtigste Punkt: weg mit float/right-shifts */
  float: none !important;
  width: 100% !important;
  justify-content: flex-end !important; /* Pager grundsätzlich rechts */
}

/* Label soll links bleiben */
.tabulator .tabulator-footer .tabulator-paginator > label{
  order: 1 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Select soll links stehen und ALLES nachfolgende nach rechts schieben */
.tabulator .tabulator-footer .tabulator-paginator > select.tabulator-page-size{
  order: 2 !important;
  margin-right: auto !important;   /* DAS schiebt die Buttons nach rechts */
  float: none !important;          /* killt Float-Bugs zuverlässig */
}

/* Pager-Buttons bleiben rechts */
.tabulator .tabulator-footer .tabulator-paginator > .tabulator-page,
.tabulator .tabulator-footer .tabulator-paginator > .tabulator-pages{
  order: 3 !important;
}
/* =========================================================
   Tabulator PageSize Select – sichtbar, länglich, enterprise
   (nur Optik, kein Layout)
   ========================================================= */

.tabulator .tabulator-footer .tabulator-paginator > select.tabulator-page-size{
  /* Größe / Form */
  min-width: 84px !important;    /* länglicher */
  height: 38px !important;       /* größer */
  line-height: 38px !important;
  padding: 0 38px 0 14px !important; /* Platz für Chevron rechts */

  /* Typo */
  font: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;

  /* Look */
  background-color: #ffffff !important;
  border: 1px solid rgba(11,12,14,.28) !important;
  border-radius: 4px !important;
  color: rgba(11,12,14,.92) !important;

  /* Select muss wie Select wirken (nicht "nackt") */
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;

  /* Glatter */
  box-shadow: 0 1px 0 rgba(0,0,0,.04) !important;
  cursor: pointer !important;

  /* Sicherheitsnetz gegen kaputte Defaults */
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(11,12,14,.70) 50%),
    linear-gradient(135deg, rgba(11,12,14,.70) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50% !important;
  background-size: 7px 7px, 7px 7px !important;
  background-repeat: no-repeat !important;
}

/* Hover: klarer */
.tabulator .tabulator-footer .tabulator-paginator > select.tabulator-page-size:hover{
  border-color: rgba(11,12,14,.40) !important;
}

/* Focus: Enterprise Ring (te-accent) */
.tabulator .tabulator-footer .tabulator-paginator > select.tabulator-page-size:focus{
  outline: none !important;
  border-color: rgba(42,166,160,.75) !important;
  box-shadow: 0 0 0 3px rgba(42,166,160,.18) !important;
}
:root{
  --te-focus: rgba(42,166,160,.75);
  --te-focus-ring: 0 0 0 3px rgba(42,166,160,.18);
  --te-focus-ring-strong: 0 0 0 4px rgba(42,166,160,.22);
}
/* =========================================================
   TonnEstate Glow Standard (scoped)
   ========================================================= */

.te-lvtab :is(
  .te-lvtab__searchinput,
  .te-lvtab__select,
  .te-lvtab__btn,
  .te-lvtab__iconbtn,
  .te-icon-link,
  .te-burger
):focus{
  outline: none;
  border-color: var(--te-focus);
  box-shadow: var(--te-focus-ring);
}

.te-lvtab :is(
  .te-lvtab__searchinput,
  .te-lvtab__select,
  .te-lvtab__btn,
  .te-lvtab__iconbtn,
  .te-icon-link,
  .te-burger
):focus-visible{
  outline: none;
  border-color: var(--te-focus);
  box-shadow: var(--te-focus-ring-strong);
}
/* =========================================================
   TonnEstate Enterprise Hover / Focus
   Override GeneratePress Dark Hover
   ========================================================= */

/* App-spezifische Buttons */
.te-lvtab button:hover,
.te-lvtab button:focus,
.te-lvtab .te-lvtab__btn:hover,
.te-lvtab .te-lvtab__btn:focus,
.te-lvtab .te-lvtab__iconbtn:hover,
.te-lvtab .te-lvtab__iconbtn:focus{
  background-color: #f7f8f9 !important;   /* hell */
  color: var(--contrast) !important;
  border-color: rgba(11,12,14,.25) !important;
}

/* Tabulator Buttons (Pager etc.) */
.tabulator button:hover,
.tabulator button:focus{
  background-color: #f7f8f9 !important;
  color: rgba(11,12,14,.92) !important;
  border-color: rgba(11,12,14,.25) !important;
}

/* Kein dunkler Hover auf Icon-only Buttons */
.te-icon-link:hover,
.te-icon-link:focus{
  background-color: transparent !important;
  color: var(--contrast) !important;
}

/* Header: Checkbox sauber zentrieren */
.te-lvtab .tabulator .tabulator-col[tabulator-field=""] .tabulator-col-title,
.te-lvtab .tabulator .tabulator-col:first-child .tabulator-col-title{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
/* Top PageSize Select – Enterprise (nur Toolbar) */
.te-lvtab__meta .te-lvtab__select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;

  height:34px;
  line-height:34px;
  padding:0 34px 0 12px; /* rechts Platz für Chevron */

  font: inherit;
  font-size:13px;
  font-weight:600;

  color: rgba(11,12,14,.92);
  background:#fff;
  border:1px solid rgba(11,12,14,.18);
  border-radius:4px;

  box-shadow: 0 1px 0 rgba(0,0,0,.04);
  cursor:pointer;

  /* Chevron */
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(11,12,14,.70) 50%),
    linear-gradient(135deg, rgba(11,12,14,.70) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size: 7px 7px, 7px 7px;
  background-repeat:no-repeat;

  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.te-lvtab__meta .te-lvtab__select:hover{
  border-color: rgba(11,12,14,.28);
}

.te-lvtab__meta .te-lvtab__select:focus{
  outline:none;
  border-color: rgba(42,166,160,.75);
  box-shadow: 0 0 0 3px rgba(42,166,160,.18);
}
/* View-"Combobox" oben (Alle Kunden) – im gleichen Look wie te-lvtab__select */
.te-lvtab__view{
  height:34px;
  display:inline-flex;
  align-items:center;
  gap:10px;

  padding:0 12px;
  font: inherit;
  font-size:13px;
  font-weight:600;

  color: rgba(11,12,14,.92);
  background:#fff;

  border:1px solid rgba(11,12,14,.18);
  border-radius:4px;

  box-shadow: 0 1px 0 rgba(0,0,0,.04);
  cursor:pointer;

  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.te-lvtab__view:hover{
  border-color: rgba(11,12,14,.28);
}

.te-lvtab__view:focus{
  outline:none;
  border-color: rgba(42,166,160,.75);
  box-shadow: 0 0 0 3px rgba(42,166,160,.18);
}

/* Chevron im gleichen Stil wie Select-Pfeil */
.te-lvtab__view .te-lvtab__chev{
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid rgba(11,12,14,.70);
  margin-left:2px;
  transform: translateY(1px);
}

/* Optional: wenn geöffnet, Chevron drehen */
.te-lvtab__view[aria-expanded="true"] .te-lvtab__chev{
  transform: translateY(-1px) rotate(180deg);
}
/* Einheitliche Control-Höhen in der Toolbar */
.te-lvtab__select,
.te-lvtab__view{
  height:34px;
  line-height:34px;
}
.te-lvtab__select{ line-height:normal; } /* select rendert je nach Browser */
.te-lvtab__select,
.te-lvtab__view{
  border:1px solid rgba(11,12,14,.16);
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
}

.te-lvtab__select:hover,
.te-lvtab__view:hover{
  border-color: rgba(11,12,14,.26);
  background: rgba(247,248,249,.65); /* leichtes "enterprise" hover */
}
.te-lvtab__select:focus,
.te-lvtab__view:focus{
  outline:none;
  border-color: rgba(42,166,160,.70);
  box-shadow: 0 0 0 3px rgba(42,166,160,.16), 0 1px 0 rgba(0,0,0,.03);
}
.te-lvtab__view{ font-weight:600; }
/* =========================================================
   /* OVERRIDE */ TonnEstate Shell Separator (Brand Teal + Silver)
   Notes:
   - No margins/padding (no layout shifts)
   - No black, no blue, no magenta
   - 4-stop gradient aligned to logo + enterprise UI
   ========================================================= */

.te-separator{
  display:block;
  width:100%;
  height:8px; /* set to 15px if you want it stronger */
  margin:0;
  padding:0;
  line-height:0;

  /* Fallback solid */
  background: var(--te-accent);

  /* Brand gradient: Deep Teal -> Teal -> Light Teal -> Soft Silver */
  background: linear-gradient(
    90deg,
    #0E6F6B 0%,      /* Deep Teal (enterprise anchor) */
    var(--te-accent) 35%, /* Brand Teal (your token #2aa6a0) */
    #66D3CF 75%,     /* Light Teal (calm, not neon) */
    #CFD6DB 100%     /* Soft Silver (matches logo metal) */
  );

  /* subtle crispness on black header edge */
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16);
}

#te-shell-separator{
  display:block !important;
  height:8px !important;         /* kräftig als Trenner */
  padding:0 !important;
  line-height:0 !important;
  border:0 !important;

  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;

  border-radius:0 !important;

  background: linear-gradient(
    90deg,
    #0E6F6B 0%,
    #2AA6A0 38%,
    #66D3CF 78%,
    #CFD6DB 100%
  ) !important;

  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16) !important;
}
/* ========================================================= */
/* OVERRIDE: Shell Separator – final tuning (8px, lighter, calm) */
/* ========================================================= */
#te-shell-separator{
  height:8px !important;
  min-height:8px !important;

  background: linear-gradient(
    90deg,
    #1B7F7A 0%,
    #2AA6A0 28%,
    #4FBFB9 52%,
    #BFC7CC 78%,
    #D7DDE1 100%
  ) !important;


#te-shell-separator{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.06) !important;
}
/* =========================================================
   /* ADD */ Tabulator Pagination Glow (ListView Kunden)
   Scope: .te-lvtab + #teCustomersGrid ONLY
   Goal: Enterprise hover/focus glow like page-size, no dead buttons
   ========================================================= */

.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page{
  /* neutral enterprise base */
  border-radius: 0 !important;
  background: transparent !important;
  color: #2a2f35 !important;
  border: 1px solid rgba(11,12,14,.18) !important;

  height: 30px !important;
  min-width: 32px !important;
  line-height: 28px !important;
  padding: 0 10px !important;

  box-shadow: none !important;
  text-decoration: none !important;

  /* keep it quiet/compact */
  font-weight: 400 !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;

  transition:
    border-color .12s ease,
    box-shadow .12s ease,
    color .12s ease,
    background-color .12s ease;
}

/* Arrow buttons: give them "icon weight" without changing markup */
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page[data-page="first"],
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page[data-page="prev"],
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page[data-page="next"],
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page[data-page="last"]{
  font-weight: 600 !important;
  letter-spacing: -0.4px !important;
  color: #0b0c0e !important;
}

/* Hover: green glow (Salesforce-like affordance) */
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page:hover{
  border-color: rgba(42,166,160,.75) !important;
  color: #0b0c0e !important;
  box-shadow:
    0 0 0 1px rgba(42,166,160,.55),
    0 0 0 3px rgba(42,166,160,.22),
    0 0 12px rgba(42,166,160,.28) !important;
}

/* Keyboard focus (enterprise accessibility) */
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page:focus,
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page:focus-visible{
  outline: none !important;
  border-color: rgba(42,166,160,.85) !important;
  box-shadow:
    0 0 0 1px rgba(42,166,160,.65),
    0 0 0 3px rgba(42,166,160,.28),
    0 0 14px rgba(42,166,160,.34) !important;
}

/* Active page (current state) */
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page.active{
  background: rgba(11,12,14,.04) !important;
  border-color: rgba(11,12,14,.35) !important;
  color: #0b0c0e !important;
  box-shadow: none !important;
}

/* Disabled state: explicit, no glow */
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page:disabled,
.te-lvtab #teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator .tabulator-page.tabulator-disabled{
  opacity: .38 !important;
  cursor: not-allowed !important;
  border-color: rgba(11,12,14,.14) !important;
  box-shadow: none !important;
}
/* =========================================================
   TEST ONLY — Tabulator Pager (Kunden-Listview)
   Scope: NUR #teCustomersGrid (keine Seiteneffekte)
   ========================================================= */

/* Basis-Look der Pager-Buttons */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page{
  background: #fff !important;
  color: rgba(11,12,14,.85) !important;
  border: 1px solid rgba(11,12,14,.22) !important;

  height: 34px !important;
  min-width: 40px !important;
  padding: 0 12px !important;

  border-radius: 0 !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}

/* Hover NUR wenn nicht disabled (Tabulator setzt disabled=1) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page:not([disabled]):hover{
  background: rgba(11,12,14,.04) !important;
  border-color: rgba(11,12,14,.40) !important;
  color: rgba(11,12,14,.95) !important;
  cursor: pointer !important;
}

/* Active (aktuelle Seite) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page.active{
  background: #0b0c0e !important;
  border-color: #0b0c0e !important;
  color: #fff !important;
}

/* Disabled — nicht “grau auf grau”, sondern bewusst ruhig */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page[disabled],
#teCustomersGrid .tabulator .tabulator-footer .tabulator-page:disabled{
  opacity: 1 !important;                 /* Tabulator setzt sonst .5 */
  background: rgba(11,12,14,.03) !important;
  color: rgba(11,12,14,.35) !important;
  border-color: rgba(11,12,14,.12) !important;
  cursor: not-allowed !important;
}

/* Optional: Pager als “Button-Group” (Salesforce-like) */
#teCustomersGrid .tabulator .tabulator-footer .tabulator-paginator{
  display: inline-flex !important;
  gap: 0 !important;
  align-items: center !important;
}

#teCustomersGrid .tabulator .tabulator-footer .tabulator-page + .tabulator-page{
  margin-left: -1px !important;          /* Border-Collapse Effekt */
}
/* =========================================================
   TonnEstate – "Mein Arbeitsplatz" (Grundlayout)
   Scope: NUR neue, gekapselte Styles für .te-workspace
   Ziel: Nichts am bestehenden Theme/Sidebar/Topbar zerstören.
   Einfügen: Am ENDE eurer Childtheme style.css
   ========================================================= */

/* ---------- 0) Fallback-Tokens (nutzt vorhandene :root Tokens, falls definiert) ---------- */
.te-workspace{
  --te-ws-bg: rgba(11,12,14,.035);
  --te-ws-card: rgba(255,255,255,.96);
  --te-ws-border: rgba(11,12,14,.12);
  --te-ws-border-soft: rgba(11,12,14,.08);
  --te-ws-shadow: 0 10px 26px rgba(11,12,14,.08);
  --te-ws-radius: var(--te-radius-md, 16px);
  --te-ws-radius-sm: var(--te-radius-sm, 12px);
  --te-ws-text: var(--te-text, #0b0c0e);
  --te-ws-muted: var(--te-muted, #2a2f35);
  --te-ws-accent: var(--te-accent, #2aa6a0);
}

/* ---------- 1) Page / Container ---------- */
.te-workspace{
  color: var(--te-ws-text);
  background: var(--te-ws-bg);
  border-radius: var(--te-ws-radius);
  padding: clamp(14px, 2vw, 22px);
  margin: 0;
}

.te-section{
  background: var(--te-ws-card);
  border: 1px solid var(--te-ws-border-soft);
  border-radius: var(--te-ws-radius);
  box-shadow: var(--te-ws-shadow);
  padding: clamp(14px, 2vw, 22px);
  margin: 14px 0;
}

.te-section--tiles{
  padding-bottom: 18px;
}

/* ---------- 2) Header ---------- */
.te-workspace__header{
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 10px;
}

.te-workspace__titlebar{
  display: grid;
  gap: 8px;
}

.te-workspace__title{
  margin: 0;
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.15;
  letter-spacing: -.02em;
}

.te-workspace__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.te-workspace__actions{
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

/* ---------- 3) Rowhead ---------- */
.te-rowhead{
  display: flex;
  gap: 10px;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 12px;
}

.te-rowhead__title{
  margin: 0;
  font-size: 16px;
  letter-spacing: .01em;
}

.te-rowhead__sub{
  font-size: 13px;
  color: var(--te-ws-muted);
  opacity: .85;
}

.te-rowhead__meta{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
}

/* ---------- 4) Basic atoms (Buttons / Badges / Chips) ---------- */
.te-muted{ color: var(--te-ws-muted); opacity: .85; }

.te-chip,
.te-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--te-ws-border-soft);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  background: rgba(255,255,255,.72);
}

.te-badge--accent{
  border-color: rgba(42,166,160,.35);
  box-shadow: 0 0 0 3px rgba(42,166,160,.12);
}

.te-badge--muted{
  background: rgba(255,255,255,.7);
}

.te-btn{
  border: 1px solid var(--te-ws-border);
  background: rgba(255,255,255,.9);
  color: var(--te-ws-text);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: transform .06s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.te-btn:hover{
  background: #fff;
  border-color: rgba(11,12,14,.18);
  box-shadow: 0 0 0 3px rgba(42,166,160,.10);
}

.te-btn:active{ transform: translateY(1px); }

.te-btn--primary{
  background: var(--te-ws-text);
  color: #fff;
  border-color: var(--te-ws-text);
}

.te-btn--primary:hover{
  background: #0b0c0e;
  border-color: #0b0c0e;
  box-shadow: 0 0 0 3px rgba(42,166,160,.18);
}

.te-btn--ghost{
  background: rgba(255,255,255,.7);
}

.te-btn--small{
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12.5px;
}

/* ---------- 5) Tiles (Kontakte-Kacheln) ---------- */
.te-tiles{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 1100px){
  .te-tiles{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px){
  .te-tiles{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.te-tile{
  display: flex;
  gap: 12px;
  align-items: center;
  text-decoration: none;
  color: var(--te-ws-text);
  border: 1px solid var(--te-ws-border-soft);
  background: rgba(255,255,255,.86);
  border-radius: var(--te-ws-radius);
  padding: 14px;
  min-height: 70px;
  transition: transform .08s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
}

.te-tile:hover{
  background: #fff;
  border-color: rgba(42,166,160,.30);
  box-shadow: 0 14px 32px rgba(11,12,14,.10);
  transform: translateY(-1px);
}

.te-tile__icon{
  width: 36px;
  height: 36px;
  border-radius: 12px;
  border: 1px solid var(--te-ws-border-soft);
  background: rgba(42,166,160,.10);
  flex: 0 0 auto;
}

.te-tile__meta{
  display: grid;
  gap: 4px;
  min-width: 0;
}

.te-tile__label{
  font-size: 13px;
  color: var(--te-ws-muted);
  opacity: .9;
}

.te-tile__value{
  font-size: 20px;
  line-height: 1.05;
  font-weight: 650;
  letter-spacing: -.02em;
}

/* ---------- 6) Help Toggle Box ---------- */
.te-help{
  border: 1px solid var(--te-ws-border-soft);
  border-radius: var(--te-ws-radius);
  overflow: hidden;
  background: rgba(255,255,255,.78);
  margin: 10px 0 14px;
}

.te-help__toggle{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  cursor: pointer;
  border: 0;
  background: transparent;
  color: var(--te-ws-text);
  font-size: 13px;
}

.te-help__toggle:hover{
  background: rgba(42,166,160,.06);
}

.te-help__body{
  border-top: 1px solid var(--te-ws-border-soft);
  padding: 12px 14px 14px;
}

.te-help__content p{
  margin: 0;
  font-size: 13px;
  color: var(--te-ws-muted);
  line-height: 1.45;
}

/* ---------- 7) Workflow Timeline (vertikal) ---------- */
.te-timeline{
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

/* Step item */
.te-step{
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
}

/* Rail */
.te-step__rail{
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 18px;
}

.te-step__dot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  border: 2px solid rgba(11,12,14,.22);
  background: #fff;
  z-index: 2;
}

.te-step__line{
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% - 22px);
  background: rgba(11,12,14,.10);
}

/* Card */
.te-step__card{
  border: 1px solid var(--te-ws-border-soft);
  background: rgba(255,255,255,.92);
  border-radius: var(--te-ws-radius);
  padding: 14px;
  transition: border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.te-step__card:hover{
  background: #fff;
  border-color: rgba(11,12,14,.14);
  box-shadow: 0 10px 26px rgba(11,12,14,.09);
}

.te-step__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.te-step__titlewrap{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.te-step__icon{
  width: 26px;
  height: 26px;
  border-radius: 10px;
  border: 1px solid var(--te-ws-border-soft);
  background: rgba(11,12,14,.04);
  flex: 0 0 auto;
}

.te-step__title{
  margin: 0;
  font-size: 14px;
  line-height: 1.25;
  letter-spacing: -.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.te-step__hint{
  font-size: 13px;
  color: var(--te-ws-muted);
  opacity: .9;
  margin: 4px 0 10px;
}

.te-step__flags{
  display: inline-flex;
  gap: 6px;
  flex: 0 0 auto;
}

.te-flag{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(11,12,14,.18);
  border: 1px solid rgba(11,12,14,.12);
}

/* Status states (apply to .te-step) */
.te-step--done .te-step__dot{
  background: rgba(42,166,160,.18);
  border-color: rgba(42,166,160,.70);
}
.te-step--active .te-step__dot{
  background: rgba(42,166,160,.28);
  border-color: var(--te-ws-accent);
  box-shadow: 0 0 0 4px rgba(42,166,160,.14);
}
.te-step--blocked .te-step__dot{
  background: rgba(220,38,38,.14);
  border-color: rgba(220,38,38,.70);
}
.te-step--future .te-step__dot{
  background: #fff;
  border-color: rgba(11,12,14,.18);
}

.te-step--active .te-step__card{
  border-color: rgba(42,166,160,.28);
  box-shadow: 0 0 0 4px rgba(42,166,160,.12);
}

/* Tasks inside step */
.te-step__tasks{
  display: grid;
  gap: 10px;
  margin: 10px 0 12px;
}

.te-task{
  border: 1px solid var(--te-ws-border-soft);
  border-radius: 14px;
  background: rgba(255,255,255,.90);
  padding: 10px 12px;
  display: grid;
  gap: 6px;
}

.te-task__meta{
  display: flex;
  gap: 10px;
  justify-content: space-between;
  font-size: 12px;
  color: var(--te-ws-muted);
}

.te-task__title{
  font-size: 13px;
  line-height: 1.35;
}

.te-task--open{
  border-color: rgba(11,12,14,.10);
}
.te-task--overdue{
  border-color: rgba(220,38,38,.28);
  box-shadow: 0 0 0 3px rgba(220,38,38,.08);
}

/* Step actions */
.te-step__actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: 8px;
}

/* ---------- 8) Dropzones (hidden in V1 unless activated) ---------- */
.te-dropzones{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

@media (max-width: 720px){
  .te-dropzones{ grid-template-columns: 1fr; }
}

.te-dropzone{
  border: 1px dashed rgba(11,12,14,.22);
  border-radius: var(--te-ws-radius);
  background: rgba(255,255,255,.82);
  padding: 12px;
  text-align: center;
  font-size: 13px;
  color: var(--te-ws-muted);
}

/* ---------- 9) Calendar placeholder container ---------- */
.te-calendar{
  border: 1px solid var(--te-ws-border-soft);
  border-radius: var(--te-ws-radius);
  background: rgba(255,255,255,.85);
  min-height: 260px;
  padding: 12px;
}

/* ---------- 10) Tabs + ListView toolbar ---------- */
.te-tabs{
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  border: 1px solid var(--te-ws-border-soft);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
}

.te-tab{
  border: 0;
  background: transparent;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 12.5px;
  color: var(--te-ws-muted);
  cursor: pointer;
  transition: background .12s ease, color .12s ease, box-shadow .12s ease;
}

.te-tab:hover{
  background: rgba(42,166,160,.08);
  color: var(--te-ws-text);
}

.te-tab.is-active{
  background: rgba(11,12,14,.92);
  color: #fff;
  box-shadow: 0 0 0 3px rgba(42,166,160,.12);
}

.te-lvtab__toolbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0 12px;
}

.te-lvtab__left,
.te-lvtab__right{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.te-lvtab__label{
  font-size: 12.5px;
  color: var(--te-ws-muted);
}

.te-lvtab__select{
  border: 1px solid var(--te-ws-border-soft);
  background: rgba(255,255,255,.92);
  color: var(--te-ws-text);
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

.te-lvtab__select:hover{
  border-color: rgba(11,12,14,.16);
  box-shadow: 0 0 0 3px rgba(42,166,160,.10);
}

/* Tabulator container wrapper */
.te-lvtab{
  border: 1px solid var(--te-ws-border-soft);
  border-radius: var(--te-ws-radius);
  background: rgba(255,255,255,.92);
  overflow: hidden;
}

/* ---------- 11) Small responsiveness improvements ---------- */
@media (max-width: 900px){
  .te-workspace__header{
    flex-direction: column;
    align-items: stretch;
  }
  .te-workspace__actions{
    justify-content: flex-start;
  }
}



/* TE PROOF – muss sichtbar sein */
body.page-id-107 #teWorkspace{
  outline: 6px solid #2aa6a0 !important;
  outline-offset: 6px !important;
}
/* =========================================================
   TE | Workspace (reusable component)
   Scope: .te-workspace and children only (no page-id coupling)
   ========================================================= */

.te-workspace{
  --ws-gap: 18px;
  --ws-gap-lg: 26px;
  --ws-card-pad: 22px;

  display:block;
  width:100%;
}

/* Defensive: if WP wraps shortcode in <p>, don't break layout */
.te-workspace:where(section){ margin:0; }

/* Header */
.te-workspace__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--ws-gap);
  margin:0 0 var(--ws-gap-lg) 0;
}
.te-workspace__titlebar{ min-width:260px; flex:1 1 auto; }
.te-workspace__title{ margin:0 0 10px 0; letter-spacing:-0.01em; line-height:1.12; }
.te-workspace__chips{ display:flex; flex-wrap:wrap; gap:8px; }
.te-workspace__actions{ display:flex; gap:10px; flex:0 0 auto; align-items:center; }

/* Buttons (local) */
.te-workspace .te-btn{
  border-radius:12px;
  padding:10px 14px;
  font-weight:600;
  line-height:1;
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.te-workspace .te-btn--primary{
  background:var(--te-accent, #2aa6a0);
  border:1px solid rgba(0,0,0,.08);
  color:#fff;
}
.te-workspace .te-btn--primary:hover{ filter:brightness(0.96); }
.te-workspace .te-btn--ghost{
  background:rgba(255,255,255,.85);
  border:1px solid rgba(11,12,14,.14);
  color:var(--te-text, #0b0c0e);
}
.te-workspace .te-btn--ghost:hover{ background:rgba(255,255,255,.95); }

/* Cards */
.te-workspace .te-section{
  margin:0 0 var(--ws-gap-lg) 0;
  padding:var(--ws-card-pad);
  border:1px solid rgba(11,12,14,.10);
  border-radius:16px;
  background:rgba(255,255,255,.92);
  box-shadow:0 6px 20px rgba(0,0,0,.04);
}
.te-workspace .te-rowhead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  margin:0 0 16px 0;
}
.te-workspace .te-rowhead__title{ margin:0; letter-spacing:-0.01em; }
.te-workspace .te-rowhead__sub,
.te-workspace .te-muted{ color:rgba(11,12,14,.62); }

/* Tiles */
.te-workspace .te-tiles{
  display:grid;
  grid-template-columns:repeat(5, minmax(210px, 1fr));
  gap:14px;
}
@media (max-width:1280px){
  .te-workspace .te-tiles{ grid-template-columns:repeat(3, minmax(220px, 1fr)); }
}
@media (max-width:768px){
  .te-workspace__header{ flex-direction:column; }
  .te-workspace__actions{ width:100%; }
  .te-workspace .te-tiles{ grid-template-columns:repeat(2, minmax(160px, 1fr)); }
}
@media (max-width:520px){
  .te-workspace .te-tiles{ grid-template-columns:1fr; }
}
.te-workspace .te-tile{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:120px;
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(11,12,14,.10);
  background:rgba(247,248,249,.90);
  text-decoration:none;
  color:inherit;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.te-workspace .te-tile:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
.te-workspace .te-tile__meta{ text-align:center; }
.te-workspace .te-tile__label{ font-weight:700; margin:0 0 6px 0; }
.te-workspace .te-tile__value{ font-size:13px; color:rgba(11,12,14,.62); }

/* Help toggle */
.te-workspace .te-help{ margin:0 0 16px 0; }
.te-workspace .te-help__toggle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(11,12,14,.14);
  background:rgba(255,255,255,.86);
  font-weight:700;
  cursor:pointer;
  transition:background .12s ease, transform .12s ease;
}
.te-workspace .te-help__toggle:hover{
  background:rgba(255,255,255,.96);
  transform:translateY(-1px);
}
.te-workspace .te-help__body{
  margin-top:12px;
  padding:14px;
  border-radius:14px;
  border:1px dashed rgba(11,12,14,.18);
  background:rgba(247,248,249,.70);
}

/* Timeline */
.te-workspace .te-timeline{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:6px 0 0 0;
}
.te-workspace .te-step{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:14px;
  align-items:start;
}
.te-workspace .te-step__rail{ position:relative; display:flex; justify-content:center; }
.te-workspace .te-step__dot{
  width:12px; height:12px;
  border-radius:999px;
  border:2px solid rgba(11,12,14,.25);
  background:rgba(255,255,255,.95);
  margin-top:18px;
  z-index:2;
}
.te-workspace .te-step__line{
  position:absolute;
  top:32px; bottom:-16px;
  width:2px;
  background:rgba(11,12,14,.10);
  border-radius:99px;
}
.te-workspace .te-step:last-child .te-step__line{ display:none; }
.te-workspace .te-step__card{
  border-radius:16px;
  border:1px solid rgba(11,12,14,.10);
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  padding:16px;
}
.te-workspace .te-step__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px 0;
}
.te-workspace .te-step__title{
  margin:0;
  font-size:16px;
  letter-spacing:-0.01em;
}
.te-workspace .te-step__hint{
  margin:0 0 12px 0;
  color:rgba(11,12,14,.62);
  font-size:13px;
}

/* States */
.te-workspace .te-step--active .te-step__dot{
  border-color:rgba(42,166,160,.85);
  box-shadow:0 0 0 4px rgba(42,166,160,.14);
}
.te-workspace .te-step--active .te-step__card{
  border-color:rgba(42,166,160,.25);
}

/* Tasks */
.te-workspace .te-step__tasks{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.te-workspace .te-task{
  border-radius:14px;
  border:1px solid rgba(11,12,14,.10);
  background:rgba(247,248,249,.92);
  padding:12px;
  cursor:grab;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.te-workspace .te-task:hover{
  background:rgba(255,255,255,.98);
  box-shadow:0 10px 18px rgba(0,0,0,.06);
  transform:translateY(-1px);
}
.te-workspace .te-task:active{ cursor:grabbing; }
.te-workspace .te-task__meta{
  display:flex;
  gap:10px;
  align-items:baseline;
  color:rgba(11,12,14,.62);
  font-size:12px;
  margin-bottom:6px;
}
.te-workspace .te-task__title{ font-weight:700; font-size:13px; }

/* Dropzones */
.te-workspace .te-dropzones{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:10px;
  margin-top:14px;
}
.te-workspace .te-dropzone{
  border-radius:14px;
  padding:12px;
  border:1px dashed rgba(11,12,14,.22);
  background:rgba(247,248,249,.60);
  font-weight:700;
  color:rgba(11,12,14,.70);
  text-align:center;
}

/* Calendar */
.te-workspace .te-calendar{
  min-height:280px;
  border-radius:16px;
  border:1px dashed rgba(11,12,14,.18);
  background:rgba(247,248,249,.55);
}

/* Tabs */
.te-workspace .te-tabs{ display:inline-flex; gap:8px; flex-wrap:wrap; }
.te-workspace .te-tab{
  border-radius:999px;
  border:1px solid rgba(11,12,14,.14);
  background:rgba(255,255,255,.86);
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
}
.te-workspace .te-tab.is-active{
  border-color:rgba(42,166,160,.35);
  box-shadow:0 0 0 4px rgba(42,166,160,.12);
}

/* Toolbar */
.te-workspace #teTasksToolbar.te-lvtab__toolbar{
  margin-top:14px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(11,12,14,.10);
  background:rgba(255,255,255,.92);
}
.te-workspace #teTasksToolbar .te-lvtab__right{
  display:flex;
  align-items:center;
  gap:10px;
}
.te-workspace #teTasksPageSize.te-lvtab__select{
  min-width:110px;
  border-radius:12px;
}
/* =========================================================
   ADD: TE Workspace (Arbeitsplatz) – scoped, enterprise, stabil
   ========================================================= */
.te-workspace{
  padding: 18px 18px 28px;
}

.te-workspace__header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin: 6px 0 18px;
}

.te-workspace__title{
  margin:0;
  font-size: 34px;
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -0.5px;
}

.te-workspace__actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

/* Row Head */
.te-workspace .te-rowhead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin: 6px 0 12px;
}

.te-workspace .te-rowhead__title{
  margin:0;
  font-size: 26px;
  font-weight: 950;
  letter-spacing: -0.2px;
}

.te-workspace .te-rowhead__sub{
  color: rgba(11,12,14,.62);
  font-weight: 750;
}

/* Sections */
.te-workspace .te-section{
  margin: 22px 0;
  padding: 16px 16px 18px;
  border: 1px solid rgba(11,12,14,.10);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(15,23,42,.06);
}

/* Badges */
.te-workspace .te-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(11,12,14,.12);
  font-weight: 800;
 reed-size: 12px;
  background: rgba(11,12,14,.02);
}

.te-workspace .te-badge--muted{
  color: rgba(11,12,14,.72);
}

/* Tiles */
.te-workspace .te-tiles{
  display:grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 8px;
}

.te-workspace .te-tile{
  display:flex;
  align-items:center;
  gap:12px;
  padding: 14px 14px;
  border-radius: 16px;
  border: 1px solid rgba(11,12,14,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.96));
  text-decoration:none;
  color: inherit;
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.te-workspace .te-tile:hover{
  transform: translateY(-1px);
  border-color: rgba(42,166,160,.26);
  box-shadow: 0 14px 26px rgba(15,23,42,.08);
}

.te-workspace .te-tile__icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(42,166,160,.22);
  background: rgba(42,166,160,.10);
  color: var(--te-accent, #2aa6a0);
}

.te-workspace .te-tile__icon svg{
  width: 22px;
  height: 22px;
}

.te-workspace .te-tile__label{
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,12,14,.62);
  text-transform: none;
}

.te-workspace .te-tile__value{
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -0.2px;
}

/* Help Toggle */
.te-workspace .te-help{
  margin: 6px 0 14px;
}

.te-workspace .te-help__toggle{
  width: 100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(11,12,14,.10);
  background: rgba(11,12,14,.02);
  font-weight: 900;
  cursor: pointer;
}

.te-workspace .te-help__body{
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(11,12,14,.10);
  background: #fff;
}

/* Timeline */
.te-workspace .te-timeline{
  margin-top: 14px;
  display:flex;
  flex-direction:column;
  gap: 10px;
  position: relative;
}

.te-workspace .te-step{
  position: relative;
  display:flex;
  align-items:flex-start;
  gap: 12px;
  padding: 12px 12px;
  border: 1px solid rgba(11,12,14,.10);
  border-radius: 16px;
  background: #fff;
}

.te-workspace .te-step__dot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  margin-top: 6px;
  border: 2px solid rgba(11,12,14,.22);
  background: #fff;
}

.te-workspace .te-step__title{
  font-weight: 950;
  letter-spacing: -0.1px;
}

.te-workspace .te-step__meta{
  margin-top: 2px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(11,12,14,.62);
}

.te-workspace .te-step__actions{
  margin-left: auto;
  display:flex;
  gap: 8px;
}

/* States */
.te-workspace .te-step--done{
  border-color: rgba(42,166,160,.18);
  background: linear-gradient(180deg, rgba(42,166,160,.06), rgba(255,255,255,1));
}
.te-workspace .te-step--done .te-step__dot{
  border-color: rgba(42,166,160,.55);
  background: rgba(42,166,160,.18);
}

.te-workspace .te-step--active{
  border-color: rgba(42,166,160,.34);
  box-shadow: 0 0 0 4px rgba(42,166,160,.10);
}
.te-workspace .te-step--active .te-step__dot{
  border-color: rgba(42,166,160,.75);
  background: rgba(42,166,160,.28);
}

.te-workspace .te-step--next{
  opacity: .92;
}

/* Small buttons in timeline */
.te-workspace .te-btn--sm{
  padding: 8px 10px;
  border-radius: 12px;
  font-weight: 900;
}

/* Responsive */
@media (max-width: 1200px){
  .te-workspace .te-tiles{ grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}
@media (max-width: 640px){
  .te-workspace__header{ flex-direction: column; align-items: flex-start; }
  .te-workspace .te-tiles{ grid-template-columns: 1fr; }
}

/* 1) Hero bekommt Background (nur Startseite) */
body.home.page-id-27 .entry-content > .te-hero{
  background-image: url("https://tonnestate.de/wp-content/uploads/2026/01/Header_TonnEstate.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  /* falls irgendwo schon background-color/gradient drüber liegt */
  background-color: transparent;
}

/* 2) Overlay für Lesbarkeit */
body.home.page-id-27 .entry-content > .te-hero{
  position: relative;
}

body.home.page-id-27 .entry-content > .te-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(1200px 600px at 20% 35%, rgba(0,0,0,.10), rgba(0,0,0,.62));
  pointer-events: none;
}

/* 3) Inhalt nach vorne holen */
body.home.page-id-27 .entry-content > .te-hero > .te-hero-inner{
  position: relative;
  z-index: 1;
}
/* =========================================================
   New
   ========================================================= */

.te-hero-bottom{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin: 6px 0 10px;
}

/* Search box as one combined "header box" */
.te-hero-search{
  display:flex;
  align-items:stretch;
  background:#fff;
  border:1px solid rgba(11,12,14,.18);
  border-radius:14px;
  overflow:hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
}

/* Make it "Sydney style" larger */
.te-hero-search__input{
  appearance:none;
  -webkit-appearance:none;
  border:0 !important;
  outline:0;
  background:transparent;
  padding: 12px 14px;
  height: 46px;
  min-width: 320px;
  font-size: 14.5px;
  line-height: 1;
  color: var(--te-text, #0b0c0e);
}

.te-hero-search__input::placeholder{
  color: rgba(11,12,14,.55);
}

/* Button integrated into the same capsule */
.te-hero-search__btn{
  border:0 !important;
  outline:0;
  padding: 0 18px;
  height: 46px;
  min-width: 120px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .2px;
  color:#fff;
  background: var(--te-accent, #2aa6a0);
  cursor:pointer;
}

/* Focus ring like professional header inputs */
.te-hero-search:focus-within{
  border-color: rgba(42,166,160,.55);
  box-shadow: 0 0 0 3px rgba(42,166,160,.18), 0 12px 28px rgba(0,0,0,.12);
}

/* Button hover */
.te-hero-search__btn:hover{
  filter: brightness(.95);
}

/* Scroll link aligned nicely next to box */
.te-hero-scroll{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color: rgba(11,12,14,.65);
  font-size: 13px;
  padding: 6px 2px;
}

.te-hero-scroll:hover{
  color: rgba(11,12,14,.90);
}

/* Mobile: full-width */
@media (max-width: 768px){
  .te-hero-bottom{ align-items:stretch; }
  .te-hero-search{ width:100%; }
  .te-hero-search__input{ min-width: 0; width:100%; }
  .te-hero-search__btn{ min-width: 110px; }
}
/* =========================================================
    HERO Background via pseudo-layer (robust)
   ========================================================= */

body.home section.te-hero{
  position: relative;
  overflow: hidden;
  background: transparent !important;
}

/* Bild-Layer */
body.home section.te-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: url("https://tonnestate.de/wp-content/uploads/2026/01/Header_TonnEstate.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: saturate(0.95) contrast(1.05);
  transform: scale(1.02);
  z-index: 0;
}

/* Dark overlay für Lesbarkeit */
body.home section.te-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(80% 60% at 30% 20%, rgba(0,0,0,.35), rgba(0,0,0,.75));
  z-index: 1;
}

/* Inhalt nach vorne */
body.home section.te-hero > *{
  position: relative;
  z-index: 2;
}


/* =========================================================
   TE HOME HERO v1 (Image-only) — Full-bleed + 60–70vh
   Scope: nur der Hero mit .te-hero--imageonly
   ========================================================= */

/* 0) Gegen horizontalen Scroll durch 100vw-bleed */
body.home { overflow-x: hidden; }

/* 1) Full-bleed Container (aus dem GP Content-Wrapper rausziehen) */
body.home .te-hero.te-hero--imageonly{
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  /* Hero-Höhe */
  min-height: 65vh;         /* Ziel 60–70% */
  height: 65vh;
  max-height: 72vh;

  /* keine Abstände oben/unten */
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;

  overflow: hidden;
}

/* 2) Das Bild selbst: cover + zentriert */
body.home .te-hero.te-hero--imageonly > .te-hero-bg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* 3) Inner Wrapper: Box unten positionieren */
body.home .te-hero.te-hero--imageonly > .te-hero-inner{
  position: relative;
  height: 100%;
  display: flex;
  align-items: flex-end;     /* Box nach unten */
  justify-content: center;
  padding: 0 20px 26px;      /* nur innen Abstand */
  z-index: 2;
}

/* 4) White Box: fixe Max-Breite + clean */
body.home .te-hero.te-hero--imageonly .te-hero-searchbox{
  width: min(860px, calc(100% - 40px));
  margin: 0 auto;
}

/* 5) 4px “Top padding” killen (nur Home; minimal invasiv) */
body.home .site-content,
body.home .inside-article{
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* 6) Mobile: etwas mehr Höhe, damit Box nicht drückt */
@media (max-width: 768px){
  body.home .te-hero.te-hero--imageonly{
    min-height: 70vh;
    height: 70vh;
    max-height: 78vh;
  }
  body.home .te-hero.te-hero--imageonly > .te-hero-inner{
    padding-bottom: 18px;
  }
}
