@font-face{
  font-family:"Bradley Hand ITC";
  src:url("fonts/bradley-hand-itc.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* Alias to ensure we can target tabs/subtabs reliably */
@font-face{
  font-family:"mp-bradley";
  src:url("fonts/bradley-hand-itc.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'EurostileMP';
  src:url('./fonts/eurostile.ttf') format('truetype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

/* Aliases for card font (Eurostyle/Eurostile naming) */
@font-face{
  font-family:'mp-eurostile';
  src:url('./fonts/eurostile.ttf') format('truetype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Eurostyle';
  src:url('./fonts/eurostile.ttf') format('truetype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

html, body, .ze-app{
  font-family:'mp-eurostile','Eurostyle','EurostileMP', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif !important;
}

/* =========================
   FULL APP LAYOUT (GLOBAL)
   ========================= */

/* Theme Header/Footer global ausblenden */
header,
#masthead,
.site-header,
.header,
.elementor-location-header,
.et-l--header,
.ast-primary-header-bar,
.ast-builder-grid-row-container,
.main-header-bar,
.site-branding,
footer,
#colophon,
.site-footer,
.elementor-location-footer,
.et-l--footer {
  display: none !important;
}

/* WP Admin Bar ausblenden (Frontend) */
#wpadminbar { display: none !important; }
html { margin-top: 0 !important; }

/* Theme-Abstände neutralisieren */
body {
  margin: 0 !important;
  padding: 0 !important;
  /* Subtle gradient + soft noise (only behind app, cards stay clean) */
  background-color: #f6f8fc;
  background-image:
    linear-gradient(180deg, rgba(246,248,252,1) 0%, rgba(244,247,251,1) 45%, rgba(246,248,252,1) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.85'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23n)'%20opacity='.08'/%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat;
  background-size: cover, 180px 180px;
}

#page, #content, .site, .site-content, main {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}

/* App Root */
.ze-app {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Topbar */
.ze-appbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9999;
  /* IMPORTANT: Do not let content appear "above" the header while scrolling.
     Paint an opaque background (same as page bg incl. subtle noise). */
  background-color: #f6f8fc;
  background-image:
    linear-gradient(180deg, rgba(246,248,252,1) 0%, rgba(244,247,251,1) 45%, rgba(246,248,252,1) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.85'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23n)'%20opacity='.08'/%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat;
  background-size: cover, 180px 180px;
  border-bottom: 0;
  padding: 14px 0;
}


.ze-appbar-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  background: var(--mp-gray25);
  border-radius: 16px;
}


.ze-appbar-top{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ze-appbar-logo{ display:flex; justify-content:flex-end; align-items:center; }
.ze-appbar-logo .ze-logo{ height:92px; width:auto; display:block; }

/* Logo must be freigestellt (no white box/gradient from CSS) */
.ze-logo{ background: transparent !important; box-shadow:none !important; border:0 !important; border-radius:0 !important; }

.ze-brand {
  display:flex;
  align-items:center;
  height:40px; /* baseline aligned with menu buttons */
  font-weight: 900;
  font-size: 16px;
  letter-spacing: .2px;
  color: #0f172a;
}

/* Titlebar (title aligned with menu buttons) */
.ze-titlebar{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ze-title-left{display:flex;align-items:center;}
.ze-title-right{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}

/* Nav: links/rechts */
.ze-nav{
  width: 100%;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap:12px;
}
.ze-nav-left{ display:flex; gap:10px; flex-wrap:wrap; }
.ze-nav-right{ display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }

.ze-nav a { text-decoration:none; }

/* Content */
.ze-appmain {
  flex: 1;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 258px 16px 26px;
}

/* Subbar for export: left controls + right buttons */
.ze-subbar{
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  margin-bottom: 2px;
  flex-wrap: wrap;
}
.ze-subbar-left{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.ze-subbar-right{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}
.ze-subbar-label{
  display:block;
  font-weight:900;
  margin:0 0 6px;
}

/* Cards */
.ze-box{
  background:#fff;
  border:1px solid #eef1f7;
  border-radius:16px;
  padding:18px;
  margin:14px 0;
  box-shadow: 6px 6px 12px rgba(72,72,72,0.35);
}

/* Box header (title + action button), used e.g. on Profil */
.ze-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.ze-head h2{ margin:0; }
.ze-head-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }

/* Forms */
.ze-form label{
  display:block;
  font-weight:800;
  margin:10px 0 6px;
  color:#0f172a;
}

.ze-form input[type="text"],
.ze-form input[type="email"],
.ze-form input[type="date"],
.ze-form input[type="time"],
.ze-form input[type="password"],
.ze-form select,
.ze-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d7dbe6;
  border-radius:6px;
  padding:10px 12px;
  background:#fff;
}

.ze-form textarea{ min-height:90px; }

.ze-row{
  display:flex;
  gap:12px;
}
.ze-row > div{ flex:1; }

/* Buttons - grün */
:root{
  --ze-green:rgb(174,203,53);
  --ze-green-dark:rgb(140,165,42);
  --ze-green-soft:rgba(174,203,53,0.12);
  --ze-green-border:rgba(174,203,53,0.35);
  --ze-hand:"mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive;
  /* 25% #484848 mixed onto white (opaque) */
  --mp-gray25:#d1d1d1;
}

.ze-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  min-height:40px;
  box-sizing:border-box;
  border:0;
  border-radius:6px;
  padding:0 18px;
  cursor:pointer;
  /* Bradley does not have heavy weights; avoid forced bold which can trigger font fallback */
  font-weight:400;
  font-size:14px;
	font-family: var(--ze-hand) !important;
  line-height:1;
  -webkit-appearance:none;
  background: var(--ze-green);
  color:#fff !important;
  text-decoration:none !important;
  white-space:nowrap;
  box-shadow: 8px 8px 18px rgba(72,72,72,0.40);
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}

/* =========================
   ZEITERFASSUNG: OVERVIEW TABLE
   - Column widths/alignment
   - Footer like header
   ========================= */
.mp-time-table thead th,
.mp-time-table tfoot td{
  background:#484848;
  color:#ffffff;
}
.mp-time-table tfoot td{
  border-bottom:0;
  font-weight:900;
}

/* Datum + Stunden compact */
.mp-time-table th:nth-child(1),
.mp-time-table td:nth-child(1),
.mp-time-table th:nth-child(5),
.mp-time-table td:nth-child(5){
  width:1%;
  white-space:nowrap;
}

/* Start/Ende centered */
.mp-time-table th:nth-child(3),
.mp-time-table td:nth-child(3),
.mp-time-table th:nth-child(4),
.mp-time-table td:nth-child(4){
  text-align:center;
  width:1%;
  white-space:nowrap;
}

/* Stunden centered */
.mp-time-table th:nth-child(5),
.mp-time-table td:nth-child(5){
  text-align:center;
}

/* Aktion compact */
.mp-time-table th:nth-child(7),
.mp-time-table td:nth-child(7){
  width:1%;
  white-space:nowrap;
}

/* Tätigkeit takes remaining space */
.mp-time-table th:nth-child(6),
.mp-time-table td:nth-child(6){
  width:auto;
}

/* Zeiterfassung Übersicht: month selector above table */
.mp-time-monthbar{display:flex;align-items:center;margin:0 0 12px 0;}
.mp-time-monthform select{
  width:220px;
  height:48px;
  border-radius:14px;
}

/* Micro-interaction for buttons */
.ze-btn:hover{ transform: translateY(-1px); box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }
.ze-btn:active{ transform: translateY(1px); box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }

.ze-btnrow{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;}
.ze-btnrow .ze-btn{align-self:stretch;}
.ze-btnrow .ze-btn{margin:0;}
.ze-btnrow button.ze-btn{ line-height:1; }

/* Prevent theme defaults from turning button text blue on hover (anchors). */
.ze-btn:not(.ze-btn-secondary):hover,
.ze-btn:not(.ze-btn-secondary):focus,
.ze-btn:not(.ze-btn-secondary):active,
.ze-btn:not(.ze-btn-secondary):visited{
  color:#fff !important;
  text-decoration:none !important;
}

/* Secondary / outline buttons must also never inherit theme link-hover blue. */
.ze-btn-secondary:hover,
.ze-btn-secondary:focus,
.ze-btn-secondary:active,
.ze-btn-secondary:visited{
  color:#fff !important;
  text-decoration:none !important;
}

.ze-btn-outline{
  background: var(--ze-green);
  color:#fff !important;
  border:0;
}
.ze-btn-outline:hover{
  background: var(--ze-green-dark);
  color:#fff;
}
.ze-btn-outline:hover,
.ze-btn-outline:focus,
.ze-btn-outline:active,
.ze-btn-outline:visited{
  color:#fff !important;
  text-decoration:none !important;
}

/* Consistent vertical rhythm */
.ze-form .ze-btn[type="submit"],
.ze-form button.ze-btn[type="submit"]{
  margin-top: 18px;
}

.ze-subbar{
  margin-bottom: 24px;
}

/* Overview header row with right-aligned actions (export buttons etc.) */
.ze-overview-bar,
.ze-overviewbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin: 18px 0 10px;
}
.ze-overview-title,
.ze-overviewbar h3{
  margin:0;
  /* Match main page headings (e.g. "Zeiterfassung") */
  font-size:18px;
  font-weight:900;
}
.ze-overview-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Export month dropdown should align with buttons */
.ze-export-month{ display:flex; align-items:center; }
.ze-export-month select{ height:40px; min-height:40px; }

.ze-btn:not(.ze-btn-outline):not(.ze-btn-secondary):hover{
  background: var(--ze-green-dark);
}

.ze-btn-secondary{
  background: var(--ze-green);
  color:#fff !important;
  border:0;
}
.ze-btn-secondary:hover{
  background: var(--ze-green-dark);
  color:#fff !important;
}

/* Legacy button class still used in a few pages */
.zeue-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  min-height:40px;
  box-sizing:border-box;
  border:0;
  border-radius:12px;
  padding:0 18px;
  cursor:pointer;
  font-weight:900;
  font-size:14px;
  line-height:1;
  -webkit-appearance:none;
  background: var(--ze-green);
  color:#fff !important;
  text-decoration:none !important;
  white-space:nowrap;
  box-shadow: 6px 6px 12px rgba(72,72,72,0.35);
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.zeue-btn:hover{ transform: translateY(-1px); box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }
.zeue-btn:active{ transform: translateY(1px); box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }
.zeue-btn:hover,
.zeue-btn:focus,
.zeue-btn:active,
.zeue-btn:visited{ color:#fff !important; text-decoration:none !important; background: var(--ze-green-dark); }
.zeue-btn--ghost{ background: var(--ze-green); }

/* Alerts */
.ze-alert{
  background:#fff3f3;
  border:1px solid #ffd3d3;
  color:#a10000;
  padding:10px 12px;
  border-radius:12px;
  margin-bottom:10px;
}
.ze-ok{
  background:#f0fff4;
  border:1px solid #bbf7d0;
  color:#166534;
  padding:10px 12px;
  border-radius:12px;
  margin-bottom:10px;
}
.ze-hint{
  font-size:12px;
  color:#667085;
  margin-top:-2px;
  margin-bottom:6px;
}

.ze-login-links{
  margin-top:10px;
  font-size:13px;
}
.ze-login-links a{ text-decoration:none; color: var(--ze-green-dark); }
.ze-check{ margin-top:10px; display:flex; gap:8px; align-items:center; }

/* Tables */
.ze-table{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
}
.ze-table th, .ze-table td{
  border-bottom:1px solid #eef0f6;
  padding:10px 8px;
  vertical-align:top;
  text-align:left;
}
.ze-table th{ font-weight:900; }

/* Key/Value list used in Profil (read-only) */
.ze-kv{ display:flex; flex-direction:column; gap:8px; margin-top: 8px; }
.ze-kv-row{ display:flex; gap:12px; align-items:flex-start; }
.ze-kv-k{ width: 220px; font-weight: 900; }
.ze-kv-v{ flex:1; }
@media (max-width: 480px){
  .ze-kv-row{ flex-direction:column; gap:4px; }
  .ze-kv-k{ width: 100%; }
}

/* Reisekosten Übersicht: Header dark, numeric cols right-aligned (body only) */
.ze-table thead th{
  background:#484848;
  color:#ffffff;
}
.ze-table tbody td:nth-child(4),
.ze-table tbody td:nth-child(5),
.ze-table tbody td:nth-child(7),
.ze-table tbody td:nth-child(8){
  text-align:right;
}
.ze-table tfoot td:nth-child(4),
.ze-table tfoot td:nth-child(5){
  text-align:right;
}

/* Make action column minimal + right-aligned */
.ze-table .ze-col-action{
  text-align:right;
  white-space:nowrap;
  width:1%;
}

/* Overview header: title left, export buttons right (same baseline/height) */
.ze-overview-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top: 16px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.ze-overview-title{
  margin:0;
  font-weight:900;
  font-size:22px;
}
.ze-overview-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

/* Actions */
.ze-actions{
  margin-top:12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

/* Mobile */
@media (max-width: 720px){
  .ze-row{ flex-direction: column; }
  .ze-appbar-inner{ flex-direction: column; align-items: flex-start; }
  .ze-nav{ width:100%; }
  .ze-subbar{ align-items:flex-start; }
  .ze-subbar-right{ width:100%; justify-content:flex-start; }
}


.ze-app-left{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.ze-logo{ height:64px; width:auto; }
.ze-app-title{ font-family:'EurostileMP', Arial, sans-serif; font-size:18px; font-weight:900; color:#0f172a; }
.ze-row-3{ align-items:flex-end; }
.ze-row-3 > div{ flex:1; }


.ze-login-logo{ display:flex; justify-content:center; margin-bottom:10px; }
.ze-login-logo img{ max-height:128px; width:auto; }


/* Titles */
.ze-box h2, .ze-box h3{
  font-family:'EurostileMP', Arial, sans-serif;
  font-size:18px;
  font-weight:900;
  margin:0 0 12px 0;
  position:relative;
  padding-left:18px;
}
.ze-box h2::before, .ze-box h3::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:10px;
  height:10px;
  border-radius:4px;
  background: var(--ze-green);
  box-shadow: 6px 6px 12px rgba(72,72,72,0.35);
}

/* Status badges */
.ze-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  font-weight:900;
  margin: 10px 0 14px;
}
.ze-badge--ok{ background: rgba(174,203,53,0.14); border:1px solid rgba(174,203,53,0.35); color:#0f172a; }
.ze-badge--err{ background: rgba(239,68,68,0.10); border:1px solid rgba(239,68,68,0.25); color:#7f1d1d; }
.ze-badge::before{
  content:'';
  width:10px;
  height:10px;
  border-radius:99px;
  background: currentColor;
  opacity:.55;
}
.ze-app-title{ font-family:'EurostileMP', Arial, sans-serif; font-size:18px; font-weight:900; color:#0f172a; }

.ze-formula{ font-size:12px; opacity:0.85; }

.ze-project-gap{ margin-bottom:18px; }


.ze-dd{ border:1px solid rgba(15,23,42,0.15); border-radius:10px; padding:6px; background:#fff; margin-top:6px; max-height:180px; overflow:auto; box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }
.ze-dd-item{ display:block; width:100%; text-align:left; padding:8px 10px; border:0; background:transparent; border-radius:8px; cursor:pointer; }
.ze-dd-item:hover{ background:rgba(174,203,53,0.12); }

.ze-suggestbox{ border:1px solid rgba(0,0,0,0.12); border-radius:10px; margin-top:6px; background:#fff; max-height:180px; overflow:auto; box-shadow: 6px 6px 12px rgba(72,72,72,0.35); }
.ze-suggestitem{ padding:10px 12px; cursor:pointer; }
.ze-suggestitem:hover{ background:rgba(174,203,53,0.12); }

.ze-formula{ font-size:12px; opacity:0.85; vertical-align:middle; }

.ze-gap{ gap:16px; }
.ze-row.ze-gap{ display:flex; flex-wrap:wrap; }
.ze-row.ze-gap .ze-col{ flex:1; min-width:220px; }

.ze-brandwrap{display:flex;align-items:center;gap:12px;}
.ze-logo{height:84px;width:auto;display:block;}


/* v1.7.1 layout fixes */
.zeue-header__title, .zeue-app-title { white-space: nowrap; }
.zeue-header__logo img, .zeue-logo img { height: 108px; width: auto; }
@media (max-width: 520px){
  .zeue-header__logo img, .zeue-logo img { height: 88px; }
  .zeue-header__title, .zeue-app-title { font-size: 18px; }
}

/* v1.7.2 header fixes */
.zeue-header-logo{height:64px;width:auto;display:block;}
.ze-brand,.zeue-header__title,.zeue-app-title{white-space:nowrap;}

/* v1.7.7 logo inline + title */
.zeue-logo-inline svg{height:64px;width:auto;display:block;}
.ze-brandtitle,.zeue-header__title,.zeue-app-title{white-space:nowrap;}

/* Mitarbeiterportal v2.0.0 */
.ze-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;}
.ze-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;width:100%;}
.ze-grid2 > div,.ze-grid3 > div{min-width:0;}
@media(max-width:720px){.ze-grid2,.ze-grid3{grid-template-columns:1fr;}}

/* Projekte: zusätzliche Unterzeile in der Übersicht */
.ze-overview-sub{font-size:16px;font-weight:900;opacity:1;margin-bottom:4px;}

.ze-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:10px}
.ze-tile{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 96px;
  border-radius: 16px;
  background: var(--ze-green);
  color:#fff;
  font-weight:900;
  font-size: 16px;
  text-decoration:none;
  border: 0;
  box-shadow: 6px 6px 12px rgba(72,72,72,0.35);
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.ze-tile:hover{background:var(--ze-green-dark);color:#fff; transform: translateY(-1px); }
.ze-tile:active{ transform: translateY(1px); }

/* (Dashboard styles removed – Altlasten bereinigt) */

/* Scroll container for overview tables (e.g. Projekte -> Projektteam) */
.ze-table-scroll{
  max-height: none;
  overflow: visible;
  /* No "card in card" look: the outer .ze-box is the only card */
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ze-table-scroll .ze-table{ margin:0; border:0; }

/* Ensure appbar nav buttons match global button height */
.ze-nav-right .ze-btn{ height:40px; }

/* (legacy badge styles removed; unified badges defined earlier) */

/* Modal for Signature */
.mp-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px;}
.mp-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);}
.mp-modal__card{position:relative;background:#fff;border-radius:12px;max-width:640px;width:100%;box-shadow: 6px 6px 12px rgba(72,72,72,0.35);border:1px solid #ccd5e0;}
.mp-modal__head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #eef2f6;}
.mp-modal__body{padding:14px;}
.mp-modal__close{border:0;background:transparent;font-size:22px;line-height:22px;cursor:pointer;color:#444;}

/* Button variants */
.ze-btn.ze-btn--ghost{background:#fff;color:#333 !important;border:1px solid #ccd5e0;}
.ze-btn.ze-btn--primary{background:var(--ze-green);color:#fff !important;border:0;}

/* Projekte Tabs: use the same button layout as the portal buttons */
.mp-tabs-nav{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.mp-tab{
  border-radius:999px; /* pill */
}
.mp-tab.is-active{
  background:var(--ze-green-dark);
}

/* v4.2 project header size */
.ze-overview-sub{ font-size:18px; font-weight:900; opacity:1; margin:0 0 4px; }

.ze-btn:hover{ transform: translate(-1px,-1px); box-shadow: 6px 6px 14px rgba(72,72,72,0.40); }
.ze-btn:active{ transform: translate(1px,1px); box-shadow: 8px 8px 18px rgba(72,72,72,0.35); }

.ze-box{ border-color:#f3f5fb; box-shadow: 0 10px 26px rgba(15,23,42,.06); }
.ze-view-projects .ze-overview-sub, .ze-view-projects .ze-overview-title{ font-weight:400; }
.ze-view-projects .ze-overview-title{ font-size:16px; }
.ze-view-projects .ze-overview-sub{ font-size:16px; }
/* Form grids */
.ze-grid1{ display:grid; grid-template-columns: 1fr; gap:16px; margin: 14px 0; }
.ze-grid2{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; margin: 14px 0; }
.ze-grid3{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap:16px; margin: 14px 0; }
.ze-form input, .ze-form select, .ze-form textarea{ width:100%; box-sizing:border-box; }

.ze-overview-block{ background:#fff; border:1px solid #eef1f7; border-radius:16px; padding:18px; margin-top:16px; }
.ze-overview-block table{ background:#fff; }
.ze-hours-sum{ text-align:left; }


html, body, .ze-frontend { background-color: #484848 !important; }

.ze-appbar-inner { background: #ffffff !important; }

.ze-appbar h1 { font-size: 64px !important; }


/* === GLOBAL BACKGROUND FIX 3.0.3 === */
html, body, #page, #wrapper, .site, .site-content, .content-area, 
.wp-site-blocks, .ze-frontend {
    background: #484848 !important;
    background-color: #484848 !important;
}

/* Header box white */
.ze-appbar-inner {
    background: #ffffff !important;
}

/* Header H1 size */
.ze-appbar h1 {
    font-size: 64px !important;
}


/* === HEADER BACKGROUND FIX 3.0.4 === */
.ze-appbar,
header.ze-appbar,
.ze-appbar-wrap,
.ze-appbar-container,
.ze-header,
.ze-header-wrap {
  background: #484848 !important;
  background-color: #484848 !important;
}
/* ensure any transparent/overlay layers don't show theme background */
.ze-appbar::before,
.ze-appbar::after {
  background: transparent !important;
}



/* === NAV TABS + HEADER FIX 3.0.5 === */

/* Make the outer header area match page bg and remove old gradients/noise */
.ze-appbar{
  background: #484848 !important;
  background-color: #484848 !important;
  background-image: none !important;
}

/* Logo 25% larger */
.ze-appbar-logo .ze-logo{
  height: 115px !important; /* was 92px */
}

/* Tabs styled like card tabs at bottom of header box */
.ze-tabs{
  display:flex;
  gap:10px;
  align-items:flex-end;
  justify-content:flex-start;
  flex-wrap:wrap;
  padding-top: 6px;
  border-top: 1px solid rgba(15,23,42,.08);
}

.ze-tab{
  display:inline-flex;
  align-items:center;
  padding: 10px 14px;
  border-radius: 12px 12px 0 0;
  background: rgba(72,72,72,.08);
  color: #0f172a;
  text-decoration:none;
  font-weight: 700;
  line-height: 1;
}

.ze-tab:hover{
  filter: brightness(0.98);
}

.ze-tab.is-active{
  background: #ffffff;
  box-shadow: 0 -1px 0 rgba(15,23,42,.08), 0 6px 20px rgba(15,23,42,.10);
}

.ze-tab.is-logout{
  margin-left: auto;
}



/* === HEADER/TABS UPDATE 3.0.6 === */

/* Place title and logo on the same baseline */
.ze-appbar-top{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:16px;
}

/* H1 title */
.ze-appbar-h1{
  margin:0 !important;
  padding:0 !important;
  line-height:1 !important;
  font-size:64px !important;
  font-weight:900;
  color:#fff !important;
}

/* Logo size +25% */
.ze-appbar-logo .ze-logo{
  height:115px !important;
}

/* Tabs below the header box, right aligned, green with white text (like button) */
.ze-tabs-outside{
  max-width:1200px;
  margin: 0 auto;
  padding: 0 18px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

.ze-tab2{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:38px;
  padding: 0 16px;
  border-radius: 10px 10px 0 0;
  background: var(--ze-green);
  color:#fff !important;
  text-decoration:none !important;
  font-weight:900;
  border:0;
}

.ze-tab2:hover{ background: var(--ze-green-dark); }
.ze-tab2.is-active{ background: var(--ze-green-dark); box-shadow: 0 6px 18px rgba(0,0,0,.12); }



/* === HOTFIX 3.0.7: header title visible + remove duplicates === */
.ze-appbar-inner .ze-appbar-h1{
  color: var(--ze-green) !important;
}



/* === TYPO + TABS VISIBILITY 3.0.8 === */
.ze-appbar-inner .ze-appbar-h1{
  font-family: "Barclay Hand","Barclay Hand ITC","Brush Script MT","Segoe Script",cursive !important;
  font-weight: 700 !important;
}

/* ensure tabs are visible below fixed header */
.ze-tabs-outside{
  position: relative;
  z-index: 5;
}



/* === BRADLEY FONT + TABS POSITION FIX 3.0.9 === */
@font-face{
  font-family: "mp-bradley";
  src: url("./fonts/bradley-hand-itc.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.ze-appbar-inner .ze-appbar-h1{
  font-family: "mp-bradley", "Bradley Hand ITC", "Bradley Hand", "Segoe Script", cursive !important;
  font-weight: 400 !important;
}

/* Tabs now live inside the fixed header (under the white box) */
.ze-appbar .ze-tabs-outside{
  max-width:1200px;
  margin: 0 auto;
  padding: 0 18px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

/* Ensure header background is dark everywhere behind the white box and tabs */
.ze-appbar{
  background: #484848 !important;
  background-color: #484848 !important;
  background-image: none !important;
}



/* === TABS SHAPE/OVERLAP 3.0.10 === */
/* Tabs: sharp corners on top, rounded on bottom; sit flush to header box; slight overlap; shadow to the right */
.ze-appbar .ze-tabs-outside{
  margin-top: 0 !important;          /* flush */
  padding-top: 0 !important;
  transform: translateY(-1px);       /* ensure no visible gap line */
}

.ze-tab2{
  border-radius: 0 0 12px 12px !important; /* sharp top, round bottom */
  box-shadow: 8px 0 14px rgba(0,0,0,.18) !important; /* right shadow */
  position: relative;
  z-index: 1;
}

/* overlap slightly */
.ze-tabs-outside .ze-tab2 + .ze-tab2{
  margin-left: -6px !important;
}

/* keep active tab above others */
.ze-tab2.is-active{
  z-index: 3;
}



/* === TABS OVERLAP RIGHT 3.0.11 === */
/* Remove left-overlap; overlap each tab 6px into the next one (to the right) */
.ze-tabs-outside .ze-tab2 + .ze-tab2{
  margin-left: 0 !important;
}

.ze-tabs-outside .ze-tab2{
  margin-right: -6px !important;
  z-index: 1;
}

.ze-tabs-outside .ze-tab2:last-child{
  margin-right: 0 !important;
}

/* Active/hover tab above neighbors */
.ze-tabs-outside .ze-tab2:hover,
.ze-tabs-outside .ze-tab2.is-active{
  z-index: 3;
}



/* === TABS OVERLAP RIGHT FIX 3.0.13 === */
/* gap blocks overlap -> remove it */
.ze-appbar .ze-tabs-outside{
  gap: 0 !important;
}

/* overlap each tab 6px into the next one (to the right) */
.ze-appbar .ze-tabs-outside .ze-tab2{
  margin-right: -6px !important;
}

.ze-appbar .ze-tabs-outside .ze-tab2:last-child{
  margin-right: 0 !important;
}

/* keep correct stacking order so overlap is visible */
.ze-appbar .ze-tabs-outside .ze-tab2{
  position: relative;
  z-index: 1;
}
.ze-appbar .ze-tabs-outside .ze-tab2:hover,
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  z-index: 3;
}



/* === TAB ORDER/SHADOW + NO HEADERBOX OVERLAP 3.0.14 === */
/* Tabs must touch the headerbox but NOT overlap into it */
.ze-appbar .ze-tabs-outside{
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important;   /* remove previous -1px overlap */
}

/* Overlap should be left-to-right (each tab under the previous), Profil on top, Logout at the very back */
.ze-appbar .ze-tabs-outside{
  gap: 0 !important; /* required for overlap */
}

.ze-appbar .ze-tabs-outside .ze-tab2{
  margin-right: -6px !important;          /* overlap into the next tab to the right */
  position: relative;
  z-index: 1;
  /* right shadow in #484848 */
  box-shadow: 8px 0 0 #484848 !important;
}

/* stacking: earlier tabs on top */
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(1){ z-index: 50; } /* Profil */
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(2){ z-index: 49; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(3){ z-index: 48; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(4){ z-index: 47; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(5){ z-index: 46; } /* Logout */

/* keep last tab not spilling */
.ze-appbar .ze-tabs-outside .ze-tab2:last-child{
  margin-right: 0 !important;
}

/* active/hover stays on top */
.ze-appbar .ze-tabs-outside .ze-tab2:hover,
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  z-index: 60 !important;
}



/* === TAB SHADOW SOFTENED 3.0.15 === */
/* Replace hard edge shadow with softer right shadow (~50% softer than button) */
.ze-appbar .ze-tabs-outside .ze-tab2{
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important;
}



/* === TABS UNIFIED STYLE 3.0.16 === */

/* Tabs container always left-aligned */
.ze-appbar .ze-tabs-outside{
  justify-content: flex-start !important;
}

/* All tabs equal width (match widest label like "Zeiterfassung") */
.ze-appbar .ze-tabs-outside .ze-tab2{
  width: 170px !important;
  justify-content: flex-start !important;  /* text left */
  padding-left: 16px !important;
  font-family: "mp-bradley", "Bradley Hand ITC", "Bradley Hand", "Segoe Script", cursive !important;
}

/* Active tab always in front + darker green like Projekte */
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  background: var(--ze-green-dark) !important;
  z-index: 1000 !important;
}

/* Hover should also raise but below active if active exists */
.ze-appbar .ze-tabs-outside .ze-tab2:hover{
  z-index: 900 !important;
}



/* === TABS SIZE/ALIGN UPDATE 3.0.17 === */

/* Container right-aligned */
.ze-appbar .ze-tabs-outside{
  justify-content: flex-end !important;
}

/* Tabs: 28px font, width reduced by 10px (170 -> 160), right-aligned text */
.ze-appbar .ze-tabs-outside .ze-tab2{
  font-size: 28px !important;
  width: 160px !important;
  justify-content: flex-end !important;
  text-align: right !important;
  padding-right: 16px !important;
  padding-left: 0 !important;
}



/* === ACTIVE TAB ALWAYS ON TOP 3.0.18 === */
/* Reset any fixed stacking from older rules */
.ze-appbar .ze-tabs-outside .ze-tab2{
  z-index: 1 !important;
}

/* Active tab: always front + dark green */
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  background: var(--ze-green-dark) !important;
  z-index: 9999 !important;
}

/* Hover should not overtake active */
.ze-appbar .ze-tabs-outside .ze-tab2:hover{
  z-index: 5000 !important;
}



/* === ACTIVE TAB FIX 3.0.19 === */
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  background-color: var(--ze-green-dark) !important;
  background: var(--ze-green-dark) !important;
  z-index: 9999 !important;
}



/* === TAB SHADOW + OVERLAP RESTORE 3.0.20 === */
.ze-appbar .ze-tabs-outside{
  gap: 0 !important;
}

/* overlap left-to-right: each tab extends 6px into the next */
.ze-appbar .ze-tabs-outside .ze-tab2{
  margin-right: -6px !important;
  border-radius: 0 0 12px 12px !important; /* sharp top, round bottom */
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important; /* softer right shadow in #484848 family */
  position: relative;
  z-index: 1;
}

.ze-appbar .ze-tabs-outside .ze-tab2:last-child{
  margin-right: 0 !important;
}

/* Active tab always in front and dark green */
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  background: var(--ze-green-dark) !important;
  z-index: 9999 !important;
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important;
}



/* === TABS SHADOW ALWAYS + CONTENT TOP ALIGN 3.0.21 === */

/* Ensure left-to-right stacking so the left tab sits above the next tab (shadow always visible) */
.ze-appbar .ze-tabs-outside .ze-tab2{ z-index: 1; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(1){ z-index: 50; } /* Profil */
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(2){ z-index: 49; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(3){ z-index: 48; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(4){ z-index: 47; }
.ze-appbar .ze-tabs-outside .ze-tab2:nth-child(5){ z-index: 46; } /* Logout */

/* Right shadow always (not only active) */
.ze-appbar .ze-tabs-outside .ze-tab2{
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important;
}

/* Active still always in front + dark green */
.ze-appbar .ze-tabs-outside .ze-tab2.is-active{
  z-index: 9999 !important;
  background: var(--ze-green-dark) !important;
}

/* All pages: first card/box aligned like Profil but 20px higher (reduce top spacing by 20px) */



/* === TAB SHADOW ALWAYS VISIBLE + GLOBAL TOP OFFSET 3.0.22 === */

/* Make sure shadows are not hidden by overlap: earlier tabs are on top of later tabs */
.ze-appbar .ze-tabs-outside{
  gap: 0 !important;
}

.ze-appbar .ze-tabs-outside a.ze-tab2{
  position: relative !important;
  margin-right: -6px !important;
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important;
  z-index: 1 !important; /* baseline */
}

.ze-appbar .ze-tabs-outside a.ze-tab2:nth-child(1){ z-index: 50 !important; }
.ze-appbar .ze-tabs-outside a.ze-tab2:nth-child(2){ z-index: 49 !important; }
.ze-appbar .ze-tabs-outside a.ze-tab2:nth-child(3){ z-index: 48 !important; }
.ze-appbar .ze-tabs-outside a.ze-tab2:nth-child(4){ z-index: 47 !important; }
.ze-appbar .ze-tabs-outside a.ze-tab2:nth-child(5){ z-index: 46 !important; }

.ze-appbar .ze-tabs-outside a.ze-tab2:last-child{ margin-right: 0 !important; }

/* Active tab always on top */
.ze-appbar .ze-tabs-outside a.ze-tab2.is-active{
  z-index: 9999 !important;
  background: var(--ze-green-dark) !important;
}

/* Make all pages start 20px higher (reliable even when first box isn't direct child) */




/* === NO JUMP + PROJECTS ALIGN 3.0.23 === */

/* Prevent layout jump on page change: use a stable appbar height (no JS recalculation) */


/* Keep header area stable */
.ze-appbar{
  min-height: 240px !important;
}

/* Global content top padding: 20px higher than original */


/* Projects page: ensure first box aligns with other pages even if wrapped */

/* Hard-enforce H1 color to avoid brief black flash */
.ze-appbar-inner .ze-appbar-h1{
  color: var(--ze-green) !important;
}





/* Projects page: force same top offset as others (in case of extra wrapper/margins) */
/* (fixed malformed CSS from older builds) */
.ze-view-projects .ze-appmain .ze-box{ margin-top: 14px; }



/* === PJAX CONTENT FADE + TOP ALIGN 3.0.26 === */
/* Fade only the changing content, header stays static */
.ze-appmain{
  transition: opacity .16s ease;
}
.ze-appmain.mp-fade-out{ opacity: 0; }
.ze-appmain.mp-fade-in{ opacity: 1; }

/* Ensure first box top position is consistent across all views (incl. Projekte) */
.ze-appmain .ze-box{
  margin: 14px 0;
}




/* === FIRST CARD +30PX HIGHER 3.0.27 === */



/* === HEADER TO FIRST CARD DISTANCE = 3x TAB HEIGHT 3.0.28 === */
/* Tab height approx 56px → 3x = 168px */



/* === HEADERBOX->CARD GAP = 3x TAB HEIGHT (TAB=38px) 3.0.29 === */
/* Distance from headerbox bottom to card top should be 3*38=114px.
   Tabs already take 38px under headerbox, so remaining gap below tabs = 76px. */
.ze-appbar .ze-tabs-outside{ --mp-tab-h: 38px; }




/* === IN-CARD SUBTABS 3.0.30 === */
.ze-box[data-mp-has-subtabs="1"]{
  position: relative;
  overflow: visible;
  padding-top: 22px; /* room for content under tabs */
}

.mp-subtabs{
  position: absolute;
  left: 18px;
  top: 0;
  transform: translateY(-38px); /* sit directly on top edge of first card */
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0;
}

.mp-subtab{
  height: 38px;
  width: 160px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 16px;
  font-size: 28px;
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive;
  color: #fff !important;
  text-decoration: none !important;
  background: var(--ze-green);
  border-radius: 12px 12px 0 0; /* rounded top, sharp bottom */
  box-shadow: 6px 0 12px rgba(72,72,72,.25);
  margin-right: 0;
}

.mp-subtab.is-active{
  background: var(--ze-green-dark);
  z-index: 5;
  /* Active subtabs must always have crisp white text (no dimming/filters) */
  color: #fff !important;
  opacity: 1 !important;
  filter: none !important;
}

.mp-subtab + .mp-subtab{
  margin-left: 10px;
}



/* === SUBTABS FLUSH ON CARD EDGE 3.0.31 === */

.ze-box[data-mp-has-subtabs="1"]{
  position: relative;
  overflow: visible;
  padding-top: 38px; /* exactly tab height */
}

.mp-subtabs{
  position: absolute;
  left: 18px;
  top: -38px; /* bottom edge sits exactly on card top */
  transform: none !important;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0;
}

.mp-subtab{
  height: 38px;
  width: 160px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 16px;
  font-size: 28px;
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive;
  color: #fff !important;
  text-decoration: none !important;
  background: var(--ze-green);
  border-radius: 12px 12px 0 0; /* round top, sharp bottom */
  box-shadow: 6px 0 12px rgba(72,72,72,.25);
}

.mp-subtab.is-active{
  background: var(--ze-green-dark);
  z-index: 5;
}

.mp-subtab + .mp-subtab{
  margin-left: 10px;
}



/* === SUBTABS: OVERLAP + RIGHT SHADOW + ACTIVE FRONT 3.0.32 === */

/* overlap left-to-right (like header tabs) */
.mp-subtabs{
  gap: 0 !important;
}

.mp-subtab{
  margin-right: -6px !important;
  position: relative;
  z-index: 1;
  box-shadow: 6px 0 12px rgba(72,72,72,.25) !important; /* right shadow like header */
}

/* stacking order: earlier tabs in front */
.mp-subtabs .mp-subtab:nth-child(1){ z-index: 50; }
.mp-subtabs .mp-subtab:nth-child(2){ z-index: 49; }
.mp-subtabs .mp-subtab:nth-child(3){ z-index: 48; }
.mp-subtabs .mp-subtab:nth-child(4){ z-index: 47; }

.mp-subtab:last-child{
  margin-right: 0 !important;
}

/* active tab: dark green + always on top */
.mp-subtab.is-active{
  background: var(--ze-green-dark) !important;
  z-index: 9999 !important;
}

/* hover like header */
.mp-subtab:hover{
  z-index: 9000 !important;
  background: var(--ze-green-dark) !important;
}



/* === SUBTABS OVERLAP FIX + NO STRAY ATTR TEXT 3.0.33 === */
.mp-subtab + .mp-subtab{
  margin-left: 0 !important; /* remove previous spacing that prevented overlap */
}



/* === HEADER TABS FONT NORMAL 3.0.34 === */
.ze-appbar .ze-tabs-outside .ze-tab2{
  font-weight: 400 !important;
}




/* Subtabs are prepended before content and visually sit on the first card edge */



/* keep the flush-on-edge behavior */


/* overlap + shadow like header (ensure no spacing blocks overlap) */

.ze-appmain.mp-has-subtabs .mp-subtab + .mp-subtab{ margin-left:0 !important; }



/* === SUBTABS UNIFIED (INJECTED INTO FIRST CARD) 3.0.38 === */
.ze-box[data-mp-has-subtabs="1"]{
  position: relative;
  overflow: visible;
  padding-top: 38px;
}
.ze-box[data-mp-has-subtabs="1"] .mp-subtabs{
  position: absolute;
  left: 18px;
  top: -38px;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0 !important;
}
.ze-box[data-mp-has-subtabs="1"] .mp-subtab{
  height: 38px;
  width: 160px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 16px;
  font-size: 28px;
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive;
  font-weight: 400;
  color: #fff !important;
  text-decoration: none !important;
  background: var(--ze-green);
  border-radius: 12px 12px 0 0;
  margin-right: -6px;
  position: relative;
  z-index: 1;
  box-shadow: 6px 0 12px rgba(72,72,72,.25);
}
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:last-child{ margin-right: 0; }
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:nth-child(1){ z-index: 50; }
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:nth-child(2){ z-index: 49; }
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:nth-child(3){ z-index: 48; }
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:nth-child(4){ z-index: 47; }
.ze-box[data-mp-has-subtabs="1"] .mp-subtab.is-active{
  background: var(--ze-green-dark);
  z-index: 9999;
  color: #fff !important;
  opacity: 1 !important;
  filter: none !important;
}
.ze-box[data-mp-has-subtabs="1"] .mp-subtab:hover{
  background: var(--ze-green-dark);
  z-index: 9000;
}




/* Hide the default per-card title (usually an H2 with green dot) and pull the next element up */
.ze-box > h2{
  display: none !important;
}

/* Remove the top-gap that came from the heading */
.ze-box > h2 + *{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* If the first visible element has its own margin, neutralize it (common for p, form, table wrappers) */
.ze-box > h2 + p,
.ze-box > h2 + form,
.ze-box > h2 + div,
.ze-box > h2 + table{
  margin-top: 0 !important;
}



/* === PROFILE LAYOUT 3.2.0 === */
.mp-hr-green{
  height: 2px;
  background: var(--ze-green);
  border-radius: 2px;
  margin: 18px 0 10px 0;
}

.mp-project-list{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mp-project-item{
  line-height: 1.1;
}



/* === GLOBAL SCROLL RULES (3.3.23) === */

html, body{
  height:auto !important;
  overflow:auto !important;
}

/* Astra/Theme containers must never become scroll containers.
   If any of these get overflow/height constraints, it feels like the card scrolls.
   We force normal document scrolling (html/body) and keep all wrappers open.
*/
#page, #content, .site, .site-content, .ast-container,
#primary, main, #main, .site-main, article,
.entry-content, .entry-content.clear{
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
}

/* The document scrolls. Cards never become scroll containers. */
.ze-app, .ze-appmain, .ze-box{
  overflow: visible !important;
}

/* Remove any legacy inner scroll wrapper behavior */
.ze-box .mp-box-scroll{
  max-height: none !important;
  overflow: visible !important;
}

/* === EMBED (Projects subtabs) === */
.mp-embed-section{
  width: 100%;
  max-width: 100%;
}

/* Simple inner panels inside a card (NO card-in-card look) */
.mp-panel{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
}

/* Projects header row (flat, no extra card) */
.mp-projects-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 0 14px;
}
.mp-projects-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }



/* === PROFILE EDIT (SAME LAYOUT AS VIEW) 3.2.10 === */
.mp-profile-form input{
  width: 100%;
}
.mp-inline-3, .mp-inline-2{
  display: grid;
  gap: 10px;
}
.mp-inline-3{ grid-template-columns: repeat(3, 1fr); }
.mp-inline-2{ grid-template-columns: 1fr 1fr; }

.mp-hidden-submit{
  display:none;
}

/* Zeiterfassung: Hinweis unter Datum (immer sichtbar, ASCII/Entities-safe) */
.mp-time-datewrap{ position: relative; }
.mp-time-save-hint{
  font-size: 12px;
  line-height: 1.1;
  margin: 6px 0 10px 0;
}

/* Subtabs active state: enforce white text and remove any inherited shadows/filters */
.mp-subtab.is-active,
.mp-subtab.is-active *{
  color: #fff !important;
  text-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Save tab disabled state (no unique typography/size; only background + pulse may vary) */
.mp-subtab.mp-save-tab.is-disabled{
  opacity: .55;
  pointer-events: none;
}

/* required field marking */
.mp-profile-form .mp-invalid{
  outline: 2px solid #ff3b30;
  outline-offset: 2px;
}

/* project list alignment: first item aligned with label */
.ze-kv-row.mp-projects-row{
  align-items: flex-start;
}
.mp-project-list{
  margin-top: 0;
}


/* === PROFILE CLEAN EDIT 3.2.16 === */
.mp-hr-green{
  height: 2px;
  background: var(--ze-green);
  border-radius: 2px;
  margin: 18px 0 10px 0;
}
.ze-kv-row.mp-projects-row{ align-items: flex-start; }
.mp-project-list{ display:flex; flex-direction:column; gap:6px; margin-top:0; }
.mp-project-item{ margin:0; padding:0; line-height:1.1; }

.mp-profile-form input, .mp-profile-form textarea, .mp-profile-form select{ width:100%; }
.mp-inline-3, .mp-inline-2{ display:grid; gap:10px; }
.mp-inline-3{ grid-template-columns: repeat(3, 1fr); }
.mp-inline-2{ grid-template-columns: 1fr 1fr; }
.mp-hidden-submit{ display:none; }

a[data-mp-save="1"].mp-save-dirty{
  animation: mpPulseRed 1.2s ease-in-out infinite;
}
@keyframes mpPulseRed{ 0%,100%{ filter:brightness(1); } 50%{ filter:brightness(1.35);} }
a[data-mp-save="1"].is-disabled{ opacity:.55; pointer-events:none; }
.mp-form-error{ margin:10px 0; color:#ff3b30; font-weight:600; }
.mp-form-ok{ margin:10px 0; color:var(--ze-green); font-weight:600; }
.mp-invalid{ outline:2px solid #ff3b30; outline-offset:2px; }

/* === SAVE TAB DIRTY PULSE 3.2.17 === */
a.mp-subtab.mp-save-tab.mp-save-dirty,
a[data-mp-save="1"].mp-save-dirty{
  animation: mpPulseRed 1.2s ease-in-out infinite;
}
@keyframes mpPulseRed{ 0%,100%{ filter:brightness(1);} 50%{ filter:brightness(1.35);} }
a.mp-subtab.mp-save-tab.is-disabled,
a[data-mp-save="1"].is-disabled{
  opacity:.55;
  pointer-events:none;
}
.mp-invalid{ outline:2px solid #ff3b30; outline-offset:2px; }

/* === SAVE TAB DIRTY PULSE 3.2.18 === */
a.mp-subtab.mp-save-tab.mp-save-dirty,
a[data-mp-save="1"].mp-save-dirty{
  animation: mpPulseRed 1.2s ease-in-out infinite !important;
}

/* === SAVE TAB DIRTY PULSE 3.2.20 === */
.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty{
  animation: mpPulseRed 1.2s ease-in-out infinite !important;
}
.mp-subtabs a.mp-subtab.is-disabled,
.mp-subtabs a[data-mp-save="1"].is-disabled{
  opacity:.55 !important;
  pointer-events:none !important;
}

/* === SAVE TAB DIRTY PULSE 3.2.21 (PJAX SAFE) === */

/* === SAVE TAB DIRTY COLORS 3.2.22 === */
.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty{
  background: #ff3b30 !important;
  color: #fff !important;
}

/* === PROFILE ADDRESS WRAP 3.2.24 === */
.ze-kv-v{ white-space: normal; }

/* === SAVE TAB PULSE FORCE 3.2.25 === */
.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty{
  animation: mpPulseRed 1.2s ease-in-out infinite !important;
}

/* === SAVE TAB PULSE (VISIBLE) 3.3.6 === */

}
.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty{
  animation: mpPulseTabRed 1.05s ease-in-out infinite !important;
  will-change: box-shadow, transform;
}

/* === SAVE TAB PULSE STRONG 3.3.6 === */
@keyframes mpPulseTabRed{
  0%{
    box-shadow: 0 8px 14px rgba(0,0,0,.25);
    transform: scale(1);
  }
  50%{
    box-shadow: 0 14px 26px rgba(0,0,0,.45);
    transform: scale(1.06);
  }
  100%{
    box-shadow: 0 8px 14px rgba(0,0,0,.25);
    transform: scale(1);
  }
}

.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty{
  animation: mpPulseStrong 0.9s ease-in-out infinite !important;
  will-change: transform, box-shadow;
}

/* === SAVE TAB SHADOW FIX 3.3.6 === */
/* Force base shadow immediately on dirty (not only hover) */
.mp-subtabs a.mp-subtab.mp-save-dirty,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty{
  box-shadow: 0 12px 24px rgba(0,0,0,.45) !important;
  transform: scale(1.06) !important;
}

/* Ensure hover does not override animation shadow */
.mp-subtabs a.mp-subtab.mp-save-dirty:hover,
.mp-subtabs a[data-mp-save="1"].mp-save-dirty:hover,
.mp-subtabs a[data-mp-save-time="1"].mp-save-dirty:hover{
  box-shadow: 0 14px 28px rgba(0,0,0,.5) !important;
}

/* === MP PULSE UTIL === */
/* Reusable pulse engine: add class mp-pulse-strong to any element (NO color change) */
@keyframes mpPulseStrong{
  0%{ box-shadow: 0 10px 18px rgba(0,0,0,.20); transform: scale(1); }
  50%{ box-shadow: 0 14px 26px rgba(0,0,0,.42); transform: scale(1.06); }
  100%{ box-shadow: 0 10px 18px rgba(0,0,0,.20); transform: scale(1); }
}
.mp-pulse-strong{
  animation: mpPulseStrong 0.9s ease-in-out infinite !important;
  will-change: transform, box-shadow;
}

/* === MP SUBTABS LEFT/RIGHT GROUPING ===
   NOTE: No per-subtab (key-based) layout rules. Right-side items must be
   placed inside .mp-subtabs-right by JS/PHP. */

/* === SUBTABS LEFT/RIGHT LAYOUT 3.3.6 === */
.mp-subtabs{
  display:flex !important;
  align-items:flex-end;
  justify-content:flex-start;
  width: calc(100% - 36px);
}
.mp-subtabs-left,
.mp-subtabs-right{
  display:flex;
  align-items:flex-end;
  gap:0;
}


/* === GLOBAL POSITION SINGLE SOURCE === */
/* One single, global rule for the first card position (no per-page overrides). */
.ze-appmain{
  flex: 1;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 258px 16px 26px;
}

/* First card must start at a consistent position below the header/tabs */
.ze-appmain > .ze-box:first-of-type{
  margin-top: -6px !important;
}

/* === SUBTABS LAYOUT (left + right utility group) === */
.mp-subtabs{
  position: relative;
  display: flex !important;
  align-items: flex-end;
  justify-content: flex-start !important;
  width: calc(100% - 36px);
  padding-right: 190px; /* space for right group (Logout/Export) */
}
.mp-subtabs-left{
  display: flex;
  align-items: flex-end;
  gap: 0;
}
.mp-subtabs-right{
  display: flex;
  align-items: flex-end;
  gap: 0;
  position: absolute;
  right: 0;
  top: 0;
  justify-content: flex-end;
}

/* Ebene-2 right subtabs (standalone, aligned to the first card top edge)
   Used on Projekte -> Projektteam for the PDF Export subtab. */
.ze-box[data-mp-has-subtabs="1"] .mp-subtabs-right.mp-subtabs-right-above-card{
  position: absolute;
  right: 18px;
  top: -38px;
  width: auto;
  justify-content: flex-end;
  margin: 0;
  z-index: 10010;
}

/* Typography for Ebene-2 subtabs must be identical to all other subtabs.
   (No special-case rules here; handled by global .mp-subtab rules below.) */

/* Embed content should never constrain width or add its own card/box */
.ze-embed,
.ze-section,
.mp-embed-section{
  width: 100%;
  max-width: 100%;
}

/* === HARD FIX: prevent "card-in-card" look inside Projekte tables (Projektteam) === */
.ze-box.mp-projects-box .ze-table-scroll{
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}


/* === FIX: eliminate "first-of-type" dependency that caused persistent jump when an extra .ze-box appears === */
/* Keep the first card position stable across all views and PJAX/subtab states. */
.ze-appmain{ padding: 238px 16px 26px !important; }
.ze-appmain > .ze-box:first-of-type{ margin-top: 14px !important; }

/* === FIX: no inner card look in project tables === */
.ze-box.mp-projects-box .ze-table-scroll,
.ze-box.mp-projects-box .mp-box-scroll .ze-table-scroll{
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* === 3.3.20 HARD NO-JUMP FIX ===
   The previous "inner scroll" strategy (html/body overflow:hidden + mp-box-scroll) caused
   persistent vertical offsets when switching Projekte subtabs in some browsers.
   We revert to normal document scrolling while keeping header fixed.
*/
html, body{ overflow: auto !important; }
.ze-app, .ze-appmain{ overflow: visible !important; }
.ze-box .mp-box-scroll{ max-height: none !important; overflow: visible !important; }

/* Subtab clicks must never leave the page in a scrolled offset state */
.mp-box-scroll{ scroll-behavior: auto !important; }


/* === TABLE SCROLL (GLOBAL) === */
.ze-table-scroll.mp-table-scroll{
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* =========================
   GLOBAL TYPOGRAPHY (FINAL)
   - Card content: Eurostile
   - Tabs/Subtabs: Bradley
   ========================= */

/* Card content must always use Eurostile */
.ze-box,
.ze-box *{
  font-family: 'mp-eurostile','Eurostyle','EurostileMP', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif !important;
}

/* Action buttons inside cards (e.g. Übersicht: Bearbeiten/Löschen) must keep Bradley */
.ze-box .ze-btn,
.ze-box .ze-btn *{
  font-family: var(--ze-hand) !important;
}

/* Header tabs + subtabs must always use Bradley */
.ze-tabs-outside,
.ze-tabs-outside *,
.mp-subtabs,
.mp-subtabs *,
.mp-tab,
.mp-subtab{
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive !important;
}

/* Tabs + Subtabs: single source of truth for size/typography
   Only the label text and background (incl. pulse) may vary. */
.ze-tab2,
.mp-subtab{
  height: 38px !important;
  line-height: 1 !important;
  font-size: 28px !important;
  font-weight: 400 !important;
}

/* Subtabs always share the same width (header tabs are handled by their own layout rules) */
.mp-subtab{ width: 160px !important; }

/* =========================
   GLOBAL SCROLL POLICY
   - Cards never scroll
   - Only .ze-table-scroll scrolls when it has .mp-table-scroll (more than 8 rows)
   ========================= */

.ze-box,
.ze-appmain,
.ze-card-content{
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}

.ze-appmain{ height: auto !important; }
.ze-box{ height: auto !important; max-height: none !important; }

/* Default: table areas do NOT scroll */
.ze-table-scroll{
  overflow: visible !important;
  max-height: none;
}


/* === GLOBAL FONTS (hard override) === */
@font-face{
  font-family:'mp-eurostile';
  src:url('fonts/eurostile.woff2') format('woff2'),
      url('fonts/eurostile.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'mp-bradley';
  src:url('fonts/bradley-hand-itc.woff2') format('woff2'),
      url('fonts/bradley-hand-itc.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* Card content = Eurostile */
.ze-app .ze-box,
.ze-app .ze-box *{
  font-family: mp-eurostile, "Eurostile", "Eurostyle", Arial, sans-serif !important;
}

/* Tabs + Subtabs = Bradley (override Eurostile inside cards) */
.ze-app .ze-tabs-outside,
.ze-app .ze-tabs-outside *,
.ze-app .mp-subtabs,
.ze-app .mp-subtabs *,
.ze-app .mp-subtabs-right,
.ze-app .mp-subtabs-right *,
.ze-app .mp-subtab,
.ze-app .mp-subtab *,
.ze-app .ze-tab2,
.ze-app .ze-tab2 *{
  font-family: mp-bradley, "Bradley Hand ITC", "Bradley Hand", "Segoe Script", cursive !important;
}

/* Ensure cards never become scroll containers (tables may scroll in their own wrapper) */
.ze-app .ze-box,
.ze-app .ze-appmain,
.ze-app .ze-card-content,
.ze-app .mp-box-scroll{
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}



/* =========================================================
   Viewport lock: Page should not scroll; only table areas may scroll
   NOTE: scoped via :has(.ze-app) to avoid impacting other pages.
   ========================================================= */
html:has(.ze-app),
body:has(.ze-app){
  height: 100vh !important;
  overflow: hidden !important;
}

/* Admin bar offset for fixed viewport app (WP adds margin-top on html). */
html.admin-bar:has(.ze-app){
  --mp-adminbar-h: 32px;
}
@media screen and (max-width: 782px){
  html.admin-bar:has(.ze-app){
    --mp-adminbar-h: 46px;
  }
}
html:not(.admin-bar):has(.ze-app){
  --mp-adminbar-h: 0px;
}

/* Make the app occupy the viewport and manage layout internally. */
body:has(.ze-app) .ze-app{
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: var(--mp-adminbar-h, 0px) !important;
  bottom: 0 !important;
  width: 100% !important;
  height: calc(100vh - var(--mp-adminbar-h, 0px)) !important;
  overflow: hidden !important;
}

/* App layout: header + main area */
body:has(.ze-app) .ze-app{
  display: flex !important;
  flex-direction: column !important;
}

body:has(.ze-app) .ze-appbar{
  flex: 0 0 auto !important;
  /* In viewport-locked mode the whole app is fixed already.
     Keep the appbar in normal flow to avoid overlap with cards. */
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
}

body:has(.ze-app) .ze-appmain{
  flex: 1 1 auto !important;
  overflow: hidden !important; /* prevent page/card scroll */
  min-height: 0 !important; /* allow inner table scrollers */
  /* Abstand zwischen Unterkante *weiße Header-Box* (OHNE Headertabs)
     und Oberkante Card: 3x Tab-Höhe.
     Da .ze-appbar die grünen Headertabs enthält, muss hier 1x Tab-Höhe
     abgezogen werden, damit die Tabs nicht in die Abstandberechnung fallen.
     => effektiv 2x Tab-Höhe Padding in .ze-appmain. */
  --mp-tab-h: 38px;
  padding-top: calc(var(--mp-tab-h) * 2) !important;
}

/* Cards themselves must never become scroll containers. */
body:has(.ze-app) .ze-box,
body:has(.ze-app) .ze-card-content,
body:has(.ze-app) .mp-box-scroll{
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

/* Only the table scroller may scroll (and only when JS sets mp-table-scroll). */
body:has(.ze-app) .ze-table-scroll{
  overflow: visible !important;
  max-height: none !important;
}
body:has(.ze-app) .ze-table-scroll.mp-table-scroll{
  overflow-y: auto !important;
}


/* =========================
   Zeiterfassung Übersicht: Scroll only body rows (7 visible) with sticky header/footer
   ========================= */
.ze-view-projects .ze-time-overview .ze-table-scroll{
  /* show ~7 content rows, header+footer stay sticky */
  max-height: 420px;
  overflow-y: auto;
  overflow-x: hidden;
}
.ze-view-projects .ze-time-overview .mp-time-table thead th{
  position: sticky;
  top: 0;
  z-index: 2;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td{
  position: sticky;
  bottom: 0;
  z-index: 1;
}

/* Force Bradley on action buttons in overview table (avoid Eurostile override) */
.ze-view-projects .ze-time-overview a.ze-btn,
.ze-view-projects .ze-time-overview button.ze-btn,
.ze-view-projects .ze-time-overview a.ze-btn *,
.ze-view-projects .ze-time-overview button.ze-btn *{
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive !important;
  font-weight: 400 !important;
}

/* Extra safety: action buttons inside the time table must always render Bradley (some browsers treat <button> differently) */
.ze-view-projects .ze-time-overview .mp-time-table td .ze-btn,
.ze-view-projects .ze-time-overview .mp-time-table td .ze-btn *{
  font-family: "mp-bradley","Bradley Hand ITC","Bradley Hand","Segoe Script",cursive !important;
  font-weight: 400 !important;
}


/* =========================
   Zeiterfassung Übersicht: Auswahl via Checkbox + Aktionen am Tabellenkopf
   ========================= */
.ze-view-projects .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .ze-overview-bar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.ze-view-projects .ze-time-overview .mp-time-rowactions,
.ze-view-time .ze-time-overview .mp-time-rowactions{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:10px;
}
.ze-view-projects .ze-time-overview .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:160px;
  height:38px !important;
  padding:0 18px;
  border:0;
  border-radius:12px 12px 0 0 !important;
  background: var(--ze-green);
  color:#fff !important;
  text-decoration:none;
  cursor:pointer;
  box-shadow:none;
}
.ze-view-projects .ze-time-overview .mp-time-select-action.is-disabled,
.ze-view-time .ze-time-overview .mp-time-select-action.is-disabled{
  opacity:.7;
}
@keyframes mpPulseScaleA{
  0%,100%{ transform:scale(1); }
  50%{ transform:scale(1.05); }
}
@keyframes mpPulseScaleB{
  0%,100%{ transform:scale(1.05); }
  50%{ transform:scale(1); }
}
.ze-view-projects .ze-time-overview.has-selection .mp-time-edit-btn,
.ze-view-time .ze-time-overview.has-selection .mp-time-edit-btn{
  animation: mpPulseScaleA 1.2s ease-in-out infinite;
}
.ze-view-projects .ze-time-overview.has-selection .mp-time-delete-btn,
.ze-view-time .ze-time-overview.has-selection .mp-time-delete-btn{
  animation: mpPulseScaleB 1.2s ease-in-out infinite;
}
.ze-view-projects .ze-time-overview .mp-time-delete-form,
.ze-view-time .ze-time-overview .mp-time-delete-form{
  display:none;
}
.ze-view-projects .ze-time-overview .mp-time-table,
.ze-view-time .ze-time-overview .mp-time-table{
  table-layout:fixed;
  width:100%;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-select{ width:44px; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-date{ width:112px; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-project{ width:132px; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-hours{ width:82px; }
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-select,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-select{
  width:44px;
  text-align:center;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-date,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-date,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  white-space:nowrap;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-hours,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-hours{
  text-align:center;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  width:auto;
}
.ze-view-projects .ze-time-overview .mp-time-rowcheck,
.ze-view-time .ze-time-overview .mp-time-rowcheck{
  width:18px;
  height:18px;
  accent-color: var(--ze-green-dark);
  cursor:pointer;
}
.ze-view-projects .ze-time-overview tbody tr.is-selected td,
.ze-view-time .ze-time-overview tbody tr.is-selected td{
  background: rgba(173,199,49,.12);
}


/* 3.3.49 Zeiterfassung overview alignment fixes */
.ze-view-projects .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .ze-overview-bar{
  margin-bottom:0 !important;
  align-items:flex-end;
}
.ze-view-projects .ze-time-overview .mp-time-rowactions,
.ze-view-time .ze-time-overview .mp-time-rowactions{
  gap:0 !important;
  margin-bottom:-15px;
  position:relative;
  z-index:5;
}
.ze-view-projects .ze-time-overview .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action{
  position:relative;
  z-index:1;
  border-radius:12px 12px 0 0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-select-action + .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action + .mp-time-select-action{
  margin-left:-12px;
  z-index:2;
}
.ze-view-projects .ze-time-overview .ze-table-scroll,
.ze-view-time .ze-time-overview .ze-table-scroll{
  margin-top:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  width:1px !important;
  max-width:1px !important;
  white-space:nowrap;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  text-align:left !important;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td,
.ze-view-time .ze-time-overview .mp-time-table tfoot td{
  border-left:none !important;
  border-right:none !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  width:1%;
  white-space:nowrap;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  text-align:left !important;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td,
.ze-view-time .ze-time-overview .mp-time-table tfoot td{
  border-top:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  border-right:0 !important;
  box-shadow:none !important;
}


/* 3.3.50 fixes: projects label + time overview layout */
.ze-view-projects .ze-time-overview,
.ze-view-time .ze-time-overview{ position:relative; }
.ze-view-projects .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .ze-overview-bar{
  margin-bottom:0 !important;
  align-items:flex-end !important;
  position:relative;
}
.ze-view-projects .ze-time-overview .mp-time-rowactions,
.ze-view-time .ze-time-overview .mp-time-rowactions{
  position:absolute;
  right:0;
  bottom:0;
  transform:translateY(0);
  gap:0 !important;
  margin:0 !important;
  z-index:6;
}
.ze-view-projects .ze-time-overview .mp-time-select-action + .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action + .mp-time-select-action{
  margin-left:-12px !important;
}
.ze-view-projects .ze-time-overview .ze-table-scroll,
.ze-view-time .ze-time-overview .ze-table-scroll{
  margin-top:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-table,
.ze-view-time .ze-time-overview .mp-time-table{
  table-layout:auto !important;
  width:100% !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-select{ width:44px !important; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-date{ width:112px !important; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-project{ width:1% !important; }
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-hours{ width:82px !important; }
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  width:1% !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  text-align:left !important;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td,
.ze-view-time .ze-time-overview .mp-time-table tfoot td{
  border-left:none !important;
  border-right:none !important;
  border-top:none !important;
  border-bottom:none !important;
}


/* 3.3.51 zeiterfassung overview hard layout fix */
.ze-view-projects .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .ze-overview-bar{
  padding-right: 0 !important;
  min-height: 38px !important;
}
.ze-view-projects .ze-time-overview .mp-time-rowactions,
.ze-view-time .ze-time-overview .mp-time-rowactions{
  position:absolute !important;
  right:-1px !important;
  bottom:-1px !important;
  gap:0 !important;
  margin:0 !important;
  align-items:flex-end !important;
  z-index:8 !important;
}
.ze-view-projects .ze-time-overview .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action{
  height:38px !important;
  line-height:38px !important;
  border-radius:12px 12px 0 0 !important;
  position:relative !important;
}
.ze-view-projects .ze-time-overview .mp-time-select-action + .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action + .mp-time-select-action{
  margin-left:-18px !important;
}
.ze-view-projects .ze-time-overview .ze-table-scroll,
.ze-view-time .ze-time-overview .ze-table-scroll{
  margin-top:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-table,
.ze-view-time .ze-time-overview .mp-time-table{
  table-layout:auto !important;
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-select{
  width:44px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-date{
  width:112px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-project{
  width:max-content !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-hours{
  width:82px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-select,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-select{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  text-align:center !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-date,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-date{
  width:112px !important;
  min-width:112px !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  width:max-content !important;
  min-width:max-content !important;
  max-width:none !important;
  white-space:nowrap !important;
  overflow:visible !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-hours,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-hours{
  width:82px !important;
  min-width:82px !important;
  max-width:82px !important;
  text-align:center !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  width:auto !important;
  text-align:left !important;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td,
.ze-view-time .ze-time-overview .mp-time-table tfoot td{
  border-left:0 !important;
  border-right:0 !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}


/* 3.3.52 Zeiterfassung overview final alignment fixes */
.ze-view-projects .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .mp-time-headbar,
.ze-view-time .ze-time-overview .ze-overview-bar{
  position:relative !important;
}
.ze-view-projects .ze-time-overview .mp-time-rowactions,
.ze-view-time .ze-time-overview .mp-time-rowactions{
  right:5px !important;
  bottom:0 !important;
  gap:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action{
  margin:0 !important;
}
.ze-view-projects .ze-time-overview .mp-time-select-action + .mp-time-select-action,
.ze-view-time .ze-time-overview .mp-time-select-action + .mp-time-select-action{
  margin-left:-12px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table,
.ze-view-time .ze-time-overview .mp-time-table{
  table-layout:auto !important;
  width:100% !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-select,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-select{
  width:44px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-date,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-date{
  width:112px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-project{
  width:1% !important;
}
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-start,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-end,
.ze-view-projects .ze-time-overview .mp-time-table col.mp-col-hours,
.ze-view-time .ze-time-overview .mp-time-table col.mp-col-hours{
  width:82px !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-project,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-project{
  width:1% !important;
  min-width:1% !important;
  max-width:none !important;
  white-space:nowrap !important;
  text-align:left !important;
}
.ze-view-projects .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-projects .ze-time-overview .mp-time-table td.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table th.mp-col-task,
.ze-view-time .ze-time-overview .mp-time-table td.mp-col-task{
  text-align:left !important;
}


/* 3.3.54 Zeiterfassung overview: force scroll after 7 rows */
.ze-view-projects .ze-time-overview .ze-table-scroll.mp-table-scroll,
.ze-view-time .ze-time-overview .ze-table-scroll.mp-table-scroll{
  max-height: 352px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display:block !important;
}
.ze-view-projects .ze-time-overview .mp-time-table thead th,
.ze-view-time .ze-time-overview .mp-time-table thead th{
  position: sticky !important;
  top: 0 !important;
  z-index: 3 !important;
}
.ze-view-projects .ze-time-overview .mp-time-table tfoot td,
.ze-view-time .ze-time-overview .mp-time-table tfoot td{
  position: sticky !important;
  bottom: 0 !important;
  z-index: 2 !important;
}


/* 3.4.0 Reisekosten Übersicht analog Zeiterfassung */
.ze-view-projects .ze-travel-overview .ze-table-scroll,
.ze-view-travel .ze-travel-overview .ze-table-scroll{
  max-height: 352px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display:block !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table thead th,
.ze-view-travel .ze-travel-overview .mp-travel-table thead th{
  position: sticky !important;
  top: 0 !important;
  z-index: 3 !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table tfoot td,
.ze-view-travel .ze-travel-overview .mp-travel-table tfoot td{
  position: sticky !important;
  bottom: 0 !important;
  z-index: 2 !important;
  border-left:0 !important;
  border-right:0 !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table,
.ze-view-travel .ze-travel-overview .mp-travel-table{
  table-layout: fixed !important;
  width: 100% !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(1),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(1),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(1),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(1){ width:110px; white-space:nowrap; }
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(2),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(2),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(2),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(2){ width:70px; text-align:center; white-space:nowrap; }
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(3),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(3),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(3),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(3){ text-align:left; }
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(4),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(4),
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(5),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(5),
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(7),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(7),
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(8),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(8),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(4),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(4),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(5),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(5),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(7),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(7),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(8),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(8){ width:92px; text-align:center; white-space:nowrap; }
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(6),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(6),
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(9),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(9),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(6),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(6),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(9),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(9){ width:78px; text-align:center; white-space:nowrap; }
.ze-view-projects .ze-travel-overview .mp-travel-table th:nth-child(10),
.ze-view-projects .ze-travel-overview .mp-travel-table td:nth-child(10),
.ze-view-travel .ze-travel-overview .mp-travel-table th:nth-child(10),
.ze-view-travel .ze-travel-overview .mp-travel-table td:nth-child(10){ width:140px; text-align:left; }


/* 3.4.6 Reisekosten checkbox labels inline */
.ze-check{ display:inline-flex !important; align-items:center !important; gap:8px !important; width:auto !important; white-space:nowrap !important; }
.ze-check input[type="checkbox"]{ margin:0 !important; }
.ze-check span{ display:inline !important; }


/* 3.4.7 Reisekosten Übersicht analog Zeiterfassung mit Auswahlspalte */
.ze-view-projects .ze-travel-overview,
.ze-view-travel .ze-travel-overview{
  position:relative !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-headbar,
.ze-view-travel .ze-travel-overview .mp-travel-headbar{
  position:relative !important;
  height:0 !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-rowactions,
.ze-view-travel .ze-travel-overview .mp-travel-rowactions{
  position:absolute !important;
  right:0 !important;
  bottom:0 !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-end !important;
  gap:0 !important;
  z-index:4 !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-select-action,
.ze-view-travel .ze-travel-overview .mp-travel-select-action{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:160px !important;
  height:38px !important;
  padding:0 18px !important;
  border:0 !important;
  border-radius:12px 12px 0 0 !important;
  background:var(--ze-green) !important;
  color:#fff !important;
  text-decoration:none !important;
  cursor:pointer !important;
  box-shadow:none !important;
  margin:0 !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-select-action + .mp-travel-select-action,
.ze-view-travel .ze-travel-overview .mp-travel-select-action + .mp-travel-select-action{
  margin-left:-12px !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-select-action.is-disabled,
.ze-view-travel .ze-travel-overview .mp-travel-select-action.is-disabled{
  opacity:.7 !important;
}
.ze-view-projects .ze-travel-overview.has-selection .mp-travel-edit-btn,
.ze-view-travel .ze-travel-overview.has-selection .mp-travel-edit-btn{
  animation: mpPulseScaleA 1.2s ease-in-out infinite;
}
.ze-view-projects .ze-travel-overview.has-selection .mp-travel-delete-btn,
.ze-view-travel .ze-travel-overview.has-selection .mp-travel-delete-btn{
  animation: mpPulseScaleB 1.2s ease-in-out infinite;
}
.ze-view-projects .ze-travel-overview .mp-travel-delete-form,
.ze-view-travel .ze-travel-overview .mp-travel-delete-form{
  display:none !important;
}
.ze-view-projects .ze-travel-overview tbody tr.is-selected td,
.ze-view-travel .ze-travel-overview tbody tr.is-selected td{
  background:#eef4ea !important;
}
.ze-view-projects .ze-travel-overview .ze-table-scroll,
.ze-view-travel .ze-travel-overview .ze-table-scroll{
  max-height:352px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  display:block !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table,
.ze-view-travel .ze-travel-overview .mp-travel-table{
  table-layout:auto !important;
  width:100% !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table thead th,
.ze-view-travel .ze-travel-overview .mp-travel-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:3 !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table tfoot td,
.ze-view-travel .ze-travel-overview .mp-travel-table tfoot td{
  position:sticky !important;
  bottom:0 !important;
  z-index:2 !important;
  background:#484848 !important;
  color:#fff !important;
  border:1px solid #484848 !important;
  box-shadow:none !important;
  padding:8px 10px !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-select{ width:44px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-date,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-date{ width:112px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-no{ width:56px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-brutto,
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-netto,
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-km,
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-amount,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-brutto,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-netto,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-km,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-amount{ width:92px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-receipt,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-receipt{ width:78px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-reason,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-reason{ width:140px !important; }
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-select,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-select{
  text-align:center !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-date,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-date,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-date,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-date{
  white-space:nowrap !important;
  text-align:left !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-no,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-no{
  text-align:center !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-desc,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-desc,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-desc,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-desc{
  text-align:left !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-brutto,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-brutto,
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-netto,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-netto,
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-km,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-km,
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-amount,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-amount,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-brutto,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-brutto,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-netto,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-netto,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-km,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-km,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-amount,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-amount{
  text-align:right !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-receipt,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-receipt,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-receipt,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-receipt{
  text-align:center !important;
  white-space:nowrap !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-reason,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-reason,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-reason,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-reason{
  text-align:left !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table td .ze-btn,
.ze-view-projects .ze-travel-overview .mp-travel-table td .ze-btn *,
.ze-view-travel .ze-travel-overview .mp-travel-table td .ze-btn,
.ze-view-travel .ze-travel-overview .mp-travel-table td .ze-btn *{
  font-family: Bradley, "Bradley Hand ITC", cursive !important;
  font-weight:400 !important;
}


/* 3.4.8 Reisekosten Übersicht Feinschliff */
.ze-view-projects .ze-travel-overview .ze-table-scroll.mp-table-scroll,
.ze-view-travel .ze-travel-overview .ze-table-scroll.mp-table-scroll,
.ze-view-projects .ze-travel-overview .ze-table-scroll,
.ze-view-travel .ze-travel-overview .ze-table-scroll{
  max-height: 420px !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-select{
  width:44px !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-select,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-select,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-select{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  padding-left:4px !important;
  padding-right:4px !important;
  text-align:center !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-rowcheck,
.ze-view-travel .ze-travel-overview .mp-travel-rowcheck{
  width:18px !important;
  height:18px !important;
  accent-color: var(--ze-green-dark) !important;
  cursor:pointer !important;
  vertical-align:middle !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table col.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table col.mp-col-no{
  width:1% !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table th.mp-col-no,
.ze-view-projects .ze-travel-overview .mp-travel-table td.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table th.mp-col-no,
.ze-view-travel .ze-travel-overview .mp-travel-table td.mp-col-no{
  width:1% !important;
  min-width:1% !important;
  max-width:none !important;
  white-space:nowrap !important;
  padding-left:6px !important;
  padding-right:6px !important;
}
.ze-view-projects .ze-travel-overview .mp-travel-table tfoot td,
.ze-view-travel .ze-travel-overview .mp-travel-table tfoot td{
  border-left:none !important;
  border-right:none !important;
  border-top:1px solid #484848 !important;
  border-bottom:1px solid #484848 !important;
  padding-top:6px !important;
  padding-bottom:6px !important;
}


/* 3.4.9 Reisekosten neuer Eintrag */
.mp-hidden-submit{ display:none !important; }
.ze-view-projects .mp-embed-travel .ze-check,
.ze-view-travel .ze-check{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  width:auto !important;
  white-space:nowrap !important;
  margin-top:8px !important;
}
.ze-view-projects .mp-embed-travel .ze-check input[type="checkbox"],
.ze-view-travel .ze-check input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
}
.ze-view-projects .mp-embed-travel .ze-check span,
.ze-view-travel .ze-check span{
  display:inline-block !important;
  margin:0 !important;
}


/* 3.4.10 Reisekosten Checkbox-Layout */
.ze-view-projects .mp-embed-travel .mp-check-row,
.ze-view-travel .mp-check-row{
  margin-top:8px !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:flex !important;
  align-items:center !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline,
.ze-view-travel .mp-check-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  white-space:nowrap !important;
  margin:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline span,
.ze-view-travel .mp-check-inline span{
  display:inline-block !important;
  vertical-align:middle !important;
  line-height:1.1 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline input[type="checkbox"],
.ze-view-travel .mp-check-inline input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  transform:none !important;
}


/* 3.4.11 Reisekosten: Checkbox-Labels direkt rechts neben der Checkbox */
.ze-view-projects .mp-embed-travel .mp-check-row,
.ze-view-travel .mp-check-row{
  display:block !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:flex !important;
  align-items:center !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline,
.ze-view-travel .mp-check-inline,
.ze-view-projects .mp-embed-travel label.ze-check,
.ze-view-travel label.ze-check{
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:none !important;
  white-space:nowrap !important;
  margin:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline span,
.ze-view-travel .mp-check-inline span,
.ze-view-projects .mp-embed-travel label.ze-check span,
.ze-view-travel label.ze-check span{
  display:inline !important;
  white-space:nowrap !important;
  margin:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline input[type="checkbox"],
.ze-view-travel .mp-check-inline input[type="checkbox"],
.ze-view-projects .mp-embed-travel label.ze-check input[type="checkbox"],
.ze-view-travel label.ze-check input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  transform:none !important;
  flex:0 0 auto !important;
}


/* 3.4.12 Reisekosten checkbox alignment + time hint size */
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:block !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap,
.ze-view-travel .mp-check-inline-wrap{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap input[type="checkbox"],
.ze-view-travel .mp-check-inline-wrap input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  transform:none !important;
  vertical-align:middle !important;
  flex:0 0 auto !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-label,
.ze-view-travel .mp-check-inline-label{
  display:inline-block !important;
  margin:0 !important;
  padding:0 !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}


/* 3.4.13 Reisekosten: Checkbox-Labels direkt neben Checkbox + gleiche Höhe */
.ze-view-projects .mp-embed-travel .mp-check-row,
.ze-view-travel .mp-check-row{
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex:0 0 auto !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap,
.ze-view-travel .mp-check-inline-wrap{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:4px !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
  line-height:1 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap input[type="checkbox"],
.ze-view-travel .mp-check-inline-wrap input[type="checkbox"]{
  margin:0 !important;
  transform:none !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  vertical-align:middle !important;
  align-self:center !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-label,
.ze-view-travel .mp-check-inline-label{
  display:inline-block !important;
  margin:0 0 0 2px !important;
  padding:0 !important;
  line-height:1 !important;
  vertical-align:middle !important;
  align-self:center !important;
  white-space:nowrap !important;
}


/* 3.4.14 Reisekosten: Checkbox-Labels direkt neben Checkbox + Edit clean-up */
.ze-view-projects .mp-embed-travel .mp-check-row,
.ze-view-travel .mp-check-row{
  margin:6px 0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:flex !important;
  align-items:center !important;
  width:auto !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap,
.ze-view-travel .mp-check-inline-wrap{
  display:flex !important;
  align-items:center !important;
  gap:2px !important;
  margin-left:0 !important;
  padding-left:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap input[type="checkbox"],
.ze-view-travel .mp-check-inline-wrap input[type="checkbox"]{
  margin:0 2px 0 0 !important;
  flex:0 0 auto !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-label,
.ze-view-travel .mp-check-inline-label{
  display:inline !important;
  margin:0 !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  line-height:1.05 !important;
}
.ze-view-projects .mp-embed-travel > .ze-box > h2,
.ze-view-travel > .ze-box > h2,
.ze-view-projects .mp-embed-travel > .ze-box > h3,
.ze-view-travel > .ze-box > h3{
  display:none !important;
}
.ze-view-projects .mp-embed-travel .mp-travel-form-edit .ze-hint:first-child,
.ze-view-travel .mp-travel-form-edit .ze-hint:first-child{
  display:none !important;
}


/* 3.4.15 Reisekosten: Checkbox-Labels exakt neben Checkbox */
.ze-view-projects .mp-embed-travel .mp-check-row,
.ze-view-travel .mp-check-row{
  display:block !important;
  margin:6px 0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap,
.ze-view-travel .mp-check-inline-wrap{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:2px !important;
  margin:0 0 0 -8px !important;
  padding:0 !important;
  width:auto !important;
  max-width:none !important;
  white-space:nowrap !important;
  line-height:1 !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-wrap input[type="checkbox"],
.ze-view-travel .mp-check-inline-wrap input[type="checkbox"]{
  margin:0 !important;
  position:relative !important;
  top:0 !important;
  left:0 !important;
  transform:none !important;
  vertical-align:middle !important;
  align-self:center !important;
  flex:0 0 auto !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-label,
.ze-view-travel .mp-check-inline-label{
  display:inline-block !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  line-height:1 !important;
  vertical-align:middle !important;
  align-self:center !important;
  white-space:nowrap !important;
}


/* 3.4.17 Reisekosten: Checkbox-Label direkt rechts neben Checkbox */
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap,
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap > input[type="checkbox"],
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap > input[type="checkbox"]{
  margin:0 !important;
  flex:0 0 auto !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap > .mp-check-inline-label,
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap > .mp-check-inline-label{
  display:inline !important;
  margin:0 !important;
  line-height:1.2 !important;
}


/* 3.4.18 Reisekosten: Checkbox-Label fix per markup fallback */
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap[style],
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap[style]{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
}


/* 3.4.19 Reisekosten: Checkbox-Text direkt an Checkbox ausrichten */
.ze-view-projects .mp-embed-travel .mp-check-row > div,
.ze-view-travel .mp-check-row > div{
  display:block !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-fix,
.ze-view-travel .mp-check-inline-fix{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-fix > input[type="checkbox"],
.ze-view-travel .mp-check-inline-fix > input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  transform:none !important;
  flex:0 0 auto !important;
  vertical-align:middle !important;
}
.ze-view-projects .mp-embed-travel .mp-check-inline-fix-label,
.ze-view-travel .mp-check-inline-fix-label{
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  color:#0f172a !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}


/* 3.4.20 Reisekosten: Checkbox-Label im neuen Eintrag direkt rechts neben Checkbox */
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap-fix,
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap-fix{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap-fix > input[type="checkbox"],
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap-fix > input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  flex:0 0 auto !important;
  vertical-align:middle !important;
}
.ze-view-projects .mp-embed-travel .mp-check-row > div > label.mp-check-inline-wrap-fix > .mp-check-inline-label,
.ze-view-travel .mp-check-row > div > label.mp-check-inline-wrap-fix > .mp-check-inline-label{
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  color:#0f172a !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}


/* 3.4.23 Reisekosten: Checkbox-Label im neuen Eintrag direkt rechts neben der Checkbox */
.ze-view-projects .mp-embed-travel .mp-travel-check-row,
.ze-view-travel .mp-travel-check-row{
  display:block !important;
  margin:8px 0 !important;
}
.ze-view-projects .mp-embed-travel .mp-travel-check-row > .mp-travel-check-wrap,
.ze-view-travel .mp-travel-check-row > .mp-travel-check-wrap{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.ze-view-projects .mp-embed-travel .mp-travel-check-row > .mp-travel-check-wrap > input[type="checkbox"],
.ze-view-travel .mp-travel-check-row > .mp-travel-check-wrap > input[type="checkbox"]{
  margin:0 !important;
  position:static !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  flex:0 0 auto !important;
  width:16px !important;
  height:16px !important;
}
.ze-view-projects .mp-embed-travel .mp-travel-check-row > .mp-travel-check-wrap > label.mp-travel-check-label,
.ze-view-travel .mp-travel-check-row > .mp-travel-check-wrap > label.mp-travel-check-label{
  display:inline-block !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  text-align:left !important;
  white-space:nowrap !important;
  color:#0f172a !important;
}


/* 3.4.23b Reisekosten: Checkbox-Wrapper darf nicht die ganze Zeile belegen */
.ze-view-projects .mp-embed-travel .mp-travel-check-row,
.ze-view-travel .mp-travel-check-row{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.ze-view-projects .mp-embed-travel .mp-travel-check-row > .mp-travel-check-wrap,
.ze-view-travel .mp-travel-check-row > .mp-travel-check-wrap{
  flex:0 0 auto !important;
}


/* 3.4.28 Reisekosten: Ladeanzeige für Kilometerberechnung */
.mp-route-loading{
  display:none;
  align-items:center;
  gap:10px;
  margin:4px 0 12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,0.55);
}
.mp-route-loading.is-active{
  display:flex;
}
.mp-route-spinner{
  width:16px;
  height:16px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation: mpRouteSpin .8s linear infinite;
  flex:0 0 auto;
}
@keyframes mpRouteSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}


/* 3.4.29 Reisekosten inline Ladeanzeige */
.mp-label-inline-loading{ display:flex; align-items:center; gap:10px; }
.mp-route-loading-inline{ margin:0; padding:0; background:transparent; font-weight:400; }
.mp-route-loading-inline .mp-route-spinner{ width:14px; height:14px; }







/* === 3.4.38 viewport height stabilization ===
   Use the full available viewport height for the active module card.
   Only the inner card content scrolls; tabs stay fixed inside the card. */
body:has(.ze-app) .ze-app{
  height: calc(100dvh - var(--mp-adminbar-h, 0px)) !important;
}

body:has(.ze-app) .ze-appmain{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"]{
  flex:0 1 auto !important;
  align-self:stretch !important;
  width:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-subtabs{
  flex:0 0 auto !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:4px;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner{
  min-height:min-content;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner > *:last-child{
  margin-bottom:0 !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] .ze-table-scroll{
  overflow-x:auto !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] .ze-table-scroll.mp-table-scroll{
  overflow-y:auto !important;
}



/* 3.4.40 card-height follow-up: compact cards + reliable inner scrolling */
.ze-app .ze-appmain{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}

.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"]{
  flex:0 1 auto !important;
  align-self:stretch !important;
  width:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-subtabs{
  flex:0 0 auto !important;
}

.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:4px !important;
  padding-bottom:18px !important;
  box-sizing:border-box !important;
}

.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner{
  min-height:fit-content !important;
  padding-bottom:18px !important;
  box-sizing:border-box !important;
}

.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner > *:last-child{
  margin-bottom:0 !important;
}


/* 3.4.41 compact cards + real inner scroll */
body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"],
.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"]{
  height:auto !important;
  max-height:calc(100dvh - var(--mp-adminbar-h, 0px) - 290px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-subtabs,
.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-subtabs{
  flex:0 0 auto !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll,
.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 6px 40px 0 !important;
  box-sizing:border-box !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner,
.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner{
  min-height:fit-content !important;
  padding-bottom:56px !important;
  box-sizing:border-box !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner > *:last-child,
.ze-app .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner > *:last-child{
  margin-bottom:0 !important;
  padding-bottom:24px !important;
}



/* === 3.4.48 layout stabilization reset === */
html:has(.ze-app),
body:has(.ze-app){
  overflow:hidden !important;
  height:100% !important;
}

body:has(.ze-app) .ze-app{
  height:calc(100dvh - var(--mp-adminbar-h, 0px)) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

body:has(.ze-app) .ze-appbar{
  flex:0 0 auto !important;
}

body:has(.ze-app) .ze-appmain{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-width:1200px !important;
  width:100% !important;
  margin:0 auto !important;
  padding:38px 16px 26px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

body:has(.ze-app) .ze-appmain > .ze-box,
body:has(.ze-app) .ze-appmain > .ze-box:first-of-type{
  margin:0 !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"]{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  padding-top:38px !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-subtabs{
  flex:0 0 auto !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll{
  flex:0 1 auto !important;
  min-height:0 !important;
  max-height:calc(100dvh - var(--mp-adminbar-h, 0px) - 250px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 6px 34px 0 !important;
  box-sizing:border-box !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner{
  min-height:fit-content !important;
  padding-bottom:34px !important;
  box-sizing:border-box !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] > .mp-box-scroll > .mp-box-scroll-inner > *:last-child{
  margin-bottom:0 !important;
  padding-bottom:18px !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] .ze-table-scroll.mp-table-scroll{
  overflow-y:auto !important;
}

body:has(.ze-app) .ze-appmain > .ze-box[data-mp-has-subtabs="1"] .ze-table-scroll{
  overflow-x:auto !important;
}



/* Frontend: vom Admin angelegte Reisekosten nur lesbar */
.mp-travel-row-admin td{background:#f1f1f1;}
.mp-travel-row-admin:hover td{background:#ececec;}


/* 3.8.8 Rechnung: Content card-breit */
.ze-view-projects .mp-invoice-check-row,
.ze-view-invoice .mp-invoice-check-row{
  align-items:flex-start !important;
}
.ze-view-projects .mp-invoice-check-boxcol,
.ze-view-invoice .mp-invoice-check-boxcol{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}
.ze-view-projects .mp-invoice-check-boxcol input[type="checkbox"],
.ze-view-invoice .mp-invoice-check-boxcol input[type="checkbox"]{
  margin:3px 0 0 0 !important;
}
.ze-view-projects .mp-invoice-check-text,
.ze-view-invoice .mp-invoice-check-text{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}
.ze-view-projects .mp-invoice-check-label,
.ze-view-invoice .mp-invoice-check-label{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  white-space:normal !important;
  text-align:left !important;
}
.ze-view-projects .ze-invoice-overview .ze-table-scroll,
.ze-view-invoice .ze-invoice-overview .ze-table-scroll{
  max-height:352px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  display:block !important;
}
.ze-view-projects .mp-invoice-table,
.ze-view-invoice .mp-invoice-table{
  width:100% !important;
  table-layout:auto !important;
}
.ze-view-projects .mp-invoice-table thead th,
.ze-view-invoice .mp-invoice-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:3 !important;
  background:#484848 !important;
  color:#fff !important;
  text-align:center !important;
}
.ze-view-projects .mp-invoice-table th,
.ze-view-projects .mp-invoice-table td,
.ze-view-invoice .mp-invoice-table th,
.ze-view-invoice .mp-invoice-table td{
  text-align:center !important;
  vertical-align:middle !important;
}
.ze-view-projects .mp-invoice-table .mp-col-date,
.ze-view-invoice .mp-invoice-table .mp-col-date{
  width:1% !important;
  white-space:nowrap !important;
}

.ze-view-projects .mp-invoice-form,
.ze-view-invoice .mp-invoice-form,
.ze-view-projects .mp-invoice-status,
.ze-view-invoice .mp-invoice-status,
.ze-view-projects .ze-invoice-overview,
.ze-view-invoice .ze-invoice-overview{
  width:100% !important;
  max-width:none !important;
}
.ze-view-projects .ze-invoice-overview .ze-table-scroll,
.ze-view-invoice .ze-invoice-overview .ze-table-scroll{
  width:100% !important;
  max-width:none !important;
}
.ze-view-projects .mp-invoice-table,
.ze-view-invoice .mp-invoice-table{
  width:100% !important;
  max-width:none !important;
}

/* 3.8.10 Rechnungen Backend: Löschen und Status speichern sauber getrennt */





.mp-app-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.mp-app-card{background:#f2f4f7;border:1px solid #d9dde5;border-radius:18px;padding:18px;}
.mp-app-card-title{font-family:Eurostile,Arial,sans-serif;font-size:18px;font-weight:700;color:#1d2738;margin-bottom:8px;}
.mp-app-link{display:inline-block;background:#a9c23f;color:#fff!important;text-decoration:none;border-radius:14px;padding:10px 16px;font-family:BradleyHandITC,Arial,sans-serif;font-size:22px;line-height:1;}
.mp-app-muted{color:#5d6b82;line-height:1.5;}


.mp-auth-passkeys{display:grid;gap:10px;}
.mp-auth-passkey-item{background:#f3f4f6;border-radius:14px;padding:12px 14px;}
.mp-auth-passkey-title{font-family:mp-eurostile, Arial, sans-serif;font-weight:700;color:#1f2937;margin-bottom:4px;}
.mp-auth-passkey-meta{color:#4b5563;font-size:13px;line-height:1.4;}


/* 6.1.9 App pairing button + QR area */
.mp-app-setup-copy{margin-bottom:12px;color:#374151;line-height:1.45;}
.mp-app-setup-actions{margin:6px 0 14px;}
.mp-app-pair-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:14px 0;}
.mp-app-pair-qr{width:220px;min-height:220px;background:#fff;border-radius:18px;padding:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.08);}
.mp-app-pair-meta{display:grid;gap:8px;}
.mp-app-pair-timer{font-family:"Eurostile",Arial,sans-serif;font-size:14px;color:#5b677b;}
.mp-app-pair-refresh-wrap{padding-top:4px;}
.mp-app-pair-refresh-button{min-width:220px;font-size:22px;}
.mp-app-pair-button[disabled]{opacity:.65;cursor:not-allowed;}

.mp-app-code{font-family:mp-eurostile, Arial, sans-serif;font-size:18px;color:#111827;word-break:break-all;}
.mp-app-pair-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:250px;
  height:46px;
  padding:0 22px;
  border-radius:14px;
  border:1px solid var(--ze-green);
  background:var(--ze-green);
  color:#fff;
  font-family:Eurostile, Arial, sans-serif;
  font-size:17px;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
.mp-app-pair-button:hover,
.mp-app-pair-button:focus,
.mp-app-pair-button:active{
  background:var(--ze-green) !important;
  border-color:var(--ze-green) !important;
  color:#fff !important;
}
.mp-app-pair-button.is-busy{
  opacity:.75;
  pointer-events:none;
}
