/* Rümpellos Ops - Custom CSS */
/* ===================== */
/* Layout adjustments    */
/* ===================== */
:root,
[data-bs-theme="light"] {
  /* Core palette */
  --tblr-blue: #3b82f6;
  --tblr-azure: #0ea5e9;
  --tblr-indigo: #6366f1;
  --tblr-purple: #8b5cf6;
  --tblr-pink: #ec4899;
  --tblr-red: #ef4444;
  --tblr-orange: #f97316;
  --tblr-yellow: #f59e0b;
  --tblr-lime: #84cc16;
  --tblr-green: #22c55e;
  --tblr-teal: #14b8a6;
  --tblr-cyan: #06b6d4;

  /* Neutral palette */
  --tblr-black: #020617;
  --tblr-white: #ffffff;
  --tblr-gray: #64748b;
  --tblr-gray-dark: #0f172a;
  --tblr-gray-100: #f8fafc;
  --tblr-gray-200: #f1f5f9;
  --tblr-gray-300: #e2e8f0;
  --tblr-gray-400: #cbd5e1;
  --tblr-gray-500: #94a3b8;
  --tblr-gray-600: #64748b;
  --tblr-gray-700: #475569;
  --tblr-gray-800: #334155;
  --tblr-gray-900: #0f172a;

  /* Brand / semantic */
  --tblr-primary: #3b82f6;
  --tblr-secondary: #64748b;
  --tblr-success: #22c583;
  --tblr-info: #06b6d4;
  --tblr-warning: #f59e0b;
  --tblr-danger: #ef4444;
  --tblr-light: #f8fafc;
  --tblr-dark: #0f172a;
  --tblr-muted: #64748b;
  --tblr-tabler: #3b82f6;

  /* Social */
  --tblr-facebook: #1877f2;
  --tblr-twitter: #1d9bf0;
  --tblr-linkedin: #0a66c2;
  --tblr-google: #ea4335;
  --tblr-youtube: #ff0033;
  --tblr-vimeo: #1ab7ea;
  --tblr-dribbble: #ea4c89;
  --tblr-github: #111827;
  --tblr-instagram: #e1306c;
  --tblr-pinterest: #e60023;
  --tblr-vk: #4c75a3;
  --tblr-rss: #f97316;
  --tblr-flickr: #ff0084;
  --tblr-bitbucket: #0052cc;

  /* RGB */
  --tblr-primary-rgb: 59, 130, 246;
  --tblr-secondary-rgb: 100, 116, 139;
  --tblr-success-rgb: 34, 197, 94;
  --tblr-info-rgb: 6, 182, 212;
  --tblr-warning-rgb: 245, 158, 11;
  --tblr-danger-rgb: 239, 68, 68;
  --tblr-light-rgb: 248, 250, 252;
  --tblr-dark-rgb: 15, 23, 42;
  --tblr-muted-rgb: 100, 116, 139;
  --tblr-blue-rgb: 59, 130, 246;
  --tblr-azure-rgb: 14, 165, 233;
  --tblr-indigo-rgb: 99, 102, 241;
  --tblr-purple-rgb: 139, 92, 246;
  --tblr-pink-rgb: 236, 72, 153;
  --tblr-red-rgb: 239, 68, 68;
  --tblr-orange-rgb: 249, 115, 22;
  --tblr-yellow-rgb: 245, 158, 11;
  --tblr-lime-rgb: 132, 204, 22;
  --tblr-green-rgb: 34, 197, 94;
  --tblr-teal-rgb: 20, 184, 166;
  --tblr-cyan-rgb: 6, 182, 212;
  --tblr-facebook-rgb: 24, 119, 242;
  --tblr-twitter-rgb: 29, 155, 240;
  --tblr-linkedin-rgb: 10, 102, 194;
  --tblr-google-rgb: 234, 67, 53;
  --tblr-youtube-rgb: 255, 0, 51;
  --tblr-vimeo-rgb: 26, 183, 234;
  --tblr-dribbble-rgb: 234, 76, 137;
  --tblr-github-rgb: 17, 24, 39;
  --tblr-instagram-rgb: 225, 48, 108;
  --tblr-pinterest-rgb: 230, 0, 35;
  --tblr-vk-rgb: 76, 117, 163;
  --tblr-rss-rgb: 249, 115, 22;
  --tblr-flickr-rgb: 255, 0, 132;
  --tblr-bitbucket-rgb: 0, 82, 204;
  --tblr-tabler-rgb: 59, 130, 246;

  /* Text */
  --tblr-primary-text: #2563eb;
  --tblr-secondary-text: #475569;
  --tblr-success-text: #16a34a;
  --tblr-info-text: #0891b2;
  --tblr-warning-text: #d97706;
  --tblr-danger-text: #dc2626;
  --tblr-light-text: #64748b;
  --tblr-dark-text: #0f172a;

  /* Subtle backgrounds */
  --tblr-primary-bg-subtle: #dbeafe;
  --tblr-secondary-bg-subtle: #f1f5f9;
  --tblr-success-bg-subtle: #dcfce7;
  --tblr-info-bg-subtle: #cffafe;
  --tblr-warning-bg-subtle: #fef3c7;
  --tblr-danger-bg-subtle: #fee2e2;
  --tblr-light-bg-subtle: #f8fafc;
  --tblr-dark-bg-subtle: #cbd5e1;

  /* Subtle borders */
  --tblr-primary-border-subtle: #bfdbfe;
  --tblr-secondary-border-subtle: #e2e8f0;
  --tblr-success-border-subtle: #bbf7d0;
  --tblr-info-border-subtle: #a5f3fc;
  --tblr-warning-border-subtle: #fde68a;
  --tblr-danger-border-subtle: #fecaca;
  --tblr-light-border-subtle: #e2e8f0;
  --tblr-dark-border-subtle: #94a3b8;

  /* Base */
  --tblr-white-rgb: 255, 255, 255;
  --tblr-black-rgb: 2, 6, 23;
  --tblr-body-color-rgb: 15, 23, 42;
  --tblr-body-bg-rgb: 248, 250, 252;

  /* Typography */
  --tblr-font-sans-serif: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --tblr-font-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --tblr-body-font-family: var(--tblr-font-sans-serif);
  --tblr-body-font-size: 0.875rem;
  --tblr-body-font-weight: 400;
  --tblr-body-line-height: 1.5;

  /* Body */
  --tblr-body-color: #0f172a;
  --tblr-body-bg: #f8fafc;
  --tblr-emphasis-color: #020617;
  --tblr-emphasis-color-rgb: 2, 6, 23;
  --tblr-secondary-color: rgba(15, 23, 42, 0.72);
  --tblr-secondary-color-rgb: 15, 23, 42;
  --tblr-tertiary-color: rgba(15, 23, 42, 0.52);
  --tblr-tertiary-color-rgb: 15, 23, 42;
  --tblr-secondary-bg: #f1f5f9;
  --tblr-secondary-bg-rgb: 241, 245, 249;
  --tblr-tertiary-bg: #ffffff;
  --tblr-tertiary-bg-rgb: 255, 255, 255;

  /* Links */
  --tblr-link-color: #2563eb;
  --tblr-link-color-rgb: 37, 99, 235;
  --tblr-link-decoration: none;
  --tblr-link-hover-color: #1d4ed8;
  --tblr-link-hover-color-rgb: 29, 78, 216;
  --tblr-link-hover-decoration: none;

  /* Code / highlight */
  --tblr-code-color: #475569;
  --tblr-highlight-bg: #fef3c7;

  /* Borders */
  --tblr-border-width: 1px;
  --tblr-border-style: solid;
  --tblr-border-color: #e2e8f0;
  --tblr-border-color-translucent: rgba(148, 163, 184, 0.24);

  /* Radius */
  --tblr-border-radius: 12px;
  --tblr-border-radius-sm: 8px;
  --tblr-border-radius-lg: 16px;
  --tblr-border-radius-xl: 20px;
  --tblr-border-radius-2xl: 24px;
  --tblr-border-radius-pill: 999px;

  /* Shadows - flat, very soft */
  --tblr-box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06);
  --tblr-box-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.04);
  --tblr-box-shadow-lg: 0 10px 32px rgba(15, 23, 42, 0.08);
  --tblr-box-shadow-inset: inset 0 1px 2px rgba(15, 23, 42, 0.04);

  /* Forms */
  --tblr-form-control-bg: #ffffff;
  --tblr-form-control-disabled-bg: #f1f5f9;

  /* Optional: gradient kept neutral */
  --tblr-gradient: none;

  /* Breakpoints */
  --tblr-breakpoint-xs: 0;
  --tblr-breakpoint-sm: 576px;
  --tblr-breakpoint-md: 768px;
  --tblr-breakpoint-lg: 992px;
  --tblr-breakpoint-xl: 1200px;
  --tblr-breakpoint-xxl: 1400px;
}

.navbar-vertical {
  min-height: 100vh;
}

/* ===================== */
/* Profit/Loss coloring  */
/* ===================== */

.profit-positive {
  color: var(--tblr-success) !important;
}

.profit-negative {
  color: var(--tblr-danger) !important;
}

.profit-warning {
  color: var(--tblr-warning) !important;
}

/* Ensure text-success/danger/warning inherit properly */
td.text-success, td.text-danger, td.text-warning {
  font-weight: 600;
}

/* ===================== */
/* Table improvements    */
/* ===================== */

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table th {
  white-space: nowrap;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ===================== */
/* Responsive Card-Table */
/* Breite Tabellen → auf */
/* Mobil Karten-Layout   */
/* ===================== */

@media (max-width: 767px) {
  /* Tabellenkopf ausblenden */
  .table-cards thead {
    display: none !important;
  }

  /* Jede Zeile = Karte */
  .table-cards tbody tr {
    display: block;
    background: #fff;
    border: 1px solid var(--tblr-border-color, #e6ebf1);
    border-radius: 0.5rem;
    margin-bottom: 0.75rem;
    padding: 0.1rem 0;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
  }

  /* Jede Zelle = Zeile mit Label links, Wert rechts */
  .table-cards tbody td {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.85rem !important;
    border: none !important;
    border-bottom: 1px solid var(--tblr-border-color, #f1f3f6) !important;
    font-size: 0.875rem;
    text-align: right !important;
    gap: 0.5rem;
  }

  .table-cards tbody td:last-child {
    border-bottom: none !important;
  }

  /* Erste Zelle = Karten-Header */
  .table-cards tbody td:first-child {
    background: var(--tblr-light, #f8fafc);
    border-radius: 0.5rem 0.5rem 0 0;
    font-weight: 600;
    font-size: 0.9rem;
    text-align: left !important;
  }

  /* Label-Text aus data-label */
  .table-cards tbody td::before {
    content: attr(data-label);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--tblr-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* Erste Zelle hat kein Label */
  .table-cards tbody td:first-child::before {
    display: none;
  }

  /* Actions-Zelle (kein Label): Buttons rechtsbündig */
  .table-cards tbody td[data-label=""]::before {
    display: none;
  }
  .table-cards tbody td[data-label=""] {
    justify-content: flex-end;
  }

  /* tfoot: Eingabezeile stapelt vertikal */
  .table-cards tfoot tr {
    display: block;
    padding: 0.75rem 0.85rem;
    border-top: 2px solid #dee2e6;
    background: #f8fafc;
    border-radius: 0 0 0.5rem 0.5rem;
  }
  .table-cards tfoot td {
    display: block !important;
    padding: 0.25rem 0 !important;
    border: none !important;
    width: 100% !important;
  }
  .table-cards tfoot td .input-group,
  .table-cards tfoot td select,
  .table-cards tfoot td input[type="text"],
  .table-cards tfoot td input[type="date"],
  .table-cards tfoot td input[type="time"],
  .table-cards tfoot td input[type="number"] {
    width: 100% !important;
  }
  /* Speichern-Button tfoot: volle Breite */
  .table-cards tfoot td:last-child {
    padding-top: 0.5rem !important;
  }
  .table-cards tfoot td:last-child .btn {
    width: 100%;
  }
}

/* ===================== */
/* KPI Cards             */
/* ===================== */

.card .subheader {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--tblr-secondary);
  margin-bottom: 0.25rem;
}

.card .h1,
.card .h2,
.card .h3 {
  margin-bottom: 0.25rem;
}

/* ===================== */
/* Avatar                */
/* ===================== */

.avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  color: #fff;
  flex-shrink: 0;
}

.avatar.avatar-sm {
  width: 1.75rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

.avatar.avatar-lg {
  width: 3rem;
  height: 3rem;
  font-size: 1.25rem;
}

/* ===================== */
/* Worker rows in forms  */
/* ===================== */

.worker-row {
  background: var(--tblr-light);
  border-radius: 0.375rem;
  padding: 0.5rem;
}

.worker-row:first-child {
  background: transparent;
  padding: 0;
}

/* ===================== */
/* Lexoffice badge       */
/* ===================== */

.badge.lexoffice-badge {
  background-color: #1e40af;
  color: #fff;
  font-size: 0.7rem;
}

/* ===================== */
/* Mobile optimizations  */
/* ===================== */

@media (max-width: 768px) {
  .page-header {
    padding: 1rem 0;
  }

  .card-body {
    padding: 1rem;
  }

  .btn {
    white-space: nowrap;
  }

  .table td,
  .table th {
    padding: 0.5rem 0.75rem;
  }

  /* Stack filter form on mobile */
  .filter-form .row > [class*='col-'] {
    margin-bottom: 0.5rem;
  }

  /* Sidebar toggle on mobile */
  .navbar-vertical {
    min-height: auto;
  }
}

/* ===================== */
/* Status badge colors   */
/* ===================== */

.badge.bg-offen {
  background-color: var(--tblr-secondary-lt);
  color: var(--tblr-secondary);
}

/* ===================== */
/* Progress bar styling  */
/* ===================== */

.progress {
  border-radius: 1rem;
  background-color: var(--tblr-light);
}

/* ===================== */
/* Accordion work days   */
/* ===================== */

.accordion-button {
  font-weight: 500;
}

.accordion-button:not(.collapsed) {
  background-color: var(--tblr-primary-lt);
  color: var(--tblr-primary);
}

/* ===================== */
/* Empty state           */
/* ===================== */

.empty {
  padding: 3rem 1rem;
}

.empty-header {
  font-size: 4rem;
  font-weight: 700;
  color: var(--tblr-secondary);
  line-height: 1;
  margin-bottom: 1rem;
}

/* ===================== */
/* Chart containers      */
/* ===================== */

canvas {
  max-width: 100%;
}

/* ===================== */
/* Sidebar active state  */
/* ===================== */

.navbar-vertical .nav-link.active {
  background-color: rgba(255, 255, 255, 0.1);
  color: #fff !important;
  border-radius: 0.375rem;
}

/* ===================== */
/* Page title area       */
/* ===================== */

.page-title {
  font-size: 1.25rem;
  font-weight: 600;
}

.page-pretitle {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tblr-secondary);
  margin-bottom: 0.125rem;
}

/* ===================== */
/* Form improvements     */
/* ===================== */

.form-label.required::after {
  content: " *";
  color: var(--tblr-danger);
}

/* Input focus improvement */
.form-control:focus,
.form-select:focus {
  border-color: var(--tblr-primary);
  box-shadow: 0 0 0 0.2rem rgba(32, 107, 196, 0.15);
}

/* ===================== */
/* Print styles          */
/* ===================== */

@media print {
  .navbar-vertical,
  .navbar,
  .btn,
  .page-header .col-auto:first-child {
    display: none !important;
  }

  .page-wrapper {
    margin-left: 0 !important;
  }
}



.form-control-sm, .form-select-sm {
    min-height: calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2)) !important;
    padding: 0.525rem 0.65rem !important;
    font-size: .75rem !important;
    border-radius: 10px !important;
}
.text-end{
  min-height: calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2)) !important;
  padding: 0.525rem 0.65rem !important;
  font-size: .75rem !important;
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
  border-top-left-radius: : 10px !important;
  border-bottom-left-radius: : 10px !important;
}
#wl-hours{
  width: fit-content;
    border-radius: 10px !important;
  
}
.btn-group-sm>.btn, .btn-sm {
    --tblr-btn-padding-y: 0.525rem;
    --tblr-btn-padding-x: 0.55rem;
    --tblr-btn-font-size: 0.75rem;
    --tblr-btn-border-radius: 8.5px;
}
.btn-group-sm>.btn, .btn-sm {
    --tblr-btn-line-height: 1.5;
    --tblr-btn-icon-size: 1.35rem;
    font-weight: 600;
}


