
@font-face {
    font-family: Andale Mono;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65cc86ebfe190c0d6d155a51_ANDALEMO.TTF) format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display:swap
}

@font-face {
    font-family: Nuorder;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65d339266f07e40395bb8944_NuOrder-Medium.woff2) format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display:swap
}

@font-face {
    font-family: Nuorder;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65d3392687a767a1ac277b6c_NuOrder-DemiBoldItalic.woff2) format("woff2");
    font-weight: 600;
    font-style: italic;
    font-display:swap
}

@font-face {
    font-family: Nuorder;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65d3392653f9f848939a3bdb_NuOrder-MediumItalic.woff2) format("woff2");
    font-weight: 500;
    font-style: italic;
    font-display:swap
}

@font-face {
    font-family: Nuorder;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65d33926ec6f9e3ea46a97c4_NuOrder-DemiBold.woff2) format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display:swap
}

@font-face {
    font-family: Nuorder;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65d33b024e05ed41e4814087_NuOrder-Regular.woff2) format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display:swap
}

@font-face {
    font-family: Font Awesome;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65cca8bb81a621b8d254f206_FontAwesome6Pro-Thin.otf) format("opentype");
    font-weight: 100;
    font-style: normal;
    font-display:swap
}

@font-face {
    font-family: Font Awesome;
    src: url(https://cdn.prod.website-files.com/659e704a7328427ddffed02d/65cca94af3dceed32a2ebe9b_FontAwesome6Pro-Light.otf) format("opentype");
    font-weight: 300;
    font-style: normal;
    font-display:swap
}

:root {
    --color--lightest: #fafafa;
    --font--base: Nuorder, sans-serif;
    --color--darkest: #1b1b1b;
    --type--body: 19px;
    --primitives--ems--3: 1em;
    --type--body-large-desktop: 20px;
    --type--body-desktop: 20px;
    --type--largest: 3.5vw;
    --type--large: 1.75em;
    --type--larger: 2.75em;
    --type--mid: 1.25em;
    --primitives--ems--4: 1.2em;
    --type--small: 1.125em;
    --type--smaller: 1em;
    --type--smallest: .875em;
    --primitives--ems--5: 1.4em;
    --type--tiny: .745em;
    --color--dark: #575757;
    --borders--border: 1px;
    --color--primary-light: #c09dfd;
    --color--black: black;
    --color--medium-light: #ebebeb;
    --primitives--rems--2: .8rem;
    --spacing--text--4: var(--primitives--ems--7);
    --primitives--rems--7: 2rem;
    --color--secondary-dark: #0f3772;
    --color--primary-dark: #3f0e96;
    --color--secondary: #12c3df;
    --color--caution: #e4902b;
    --color--error: #ca2828;
    --color--medium: #bcbcbc;
    --color--lighter: #f7f7f7;
    --color--light: #f2f2f2;
    --color--success: #1db17c;
    --color--primary: #571cc0;
    --color--secondary-light: #0ef;
    --color--darker: #434445;
    --color--primary-mid: #6b27e4;
    --color--secondary-mid: #0aebeb;
    --color--tertiary-dark: #daa300;
    --color--tertiary: #ffd930;
    --color--tertiary-mid: #ffe374;
    --color--tertiary-light: #feefb2;
    --color--medium-dark: #8f8f8f;
    --line-height--base: var(--primitives--ems--0);
    --primitives--rems--5: 1.4rem;
    --primitives--rems--3: 1rem;
    --spacing--vw--1: 2vw;
    --spacing--vw--2: 5vw;
    --spacing--null: 0px;
    --primitives--rems--1: .4rem;
    --color--white: white;
    --primitives--rems--0: .2rem;
    --primitives--rems--6: 1.8rem;
    --spacing--vw--7: 3vw;
    --spacing--vw--5: 14vw;
    --color--transparent: #fff0;
    --primitives--ems--1: .6em;
    --font--meta: "Andale Mono", sans-serif;
    --primitives--ems--0: .2em;
    --primitives--ems--6: 1.8em;
    --primitives--ems--2: .8em;
    --font--icon: "Font Awesome", sans-serif;
    --color--success-light: #caffec;
    --color--caution-light: #ffe9cf;
    --color--error-light: #ffcfcf;
    --avatar--large: 50px;
    --radius--large: 10rem;
    --avatar--medium: 40px;
    --avatar--small: 30px;
    --spacing--text--2: var(--primitives--ems--3);
    --primitives--ems--7: 2em;
    --radius--mid: var(--primitives--rems--2);
    --spacing--text--3: var(--primitives--ems--5);
    --line-height--double: var(--primitives--ems--6);
    --spacing--text--1: var(--primitives--ems--1);
    --line-height--relative: var(--primitives--ems--2);
    --type--extra-large: 5em;
    --primitives--ems--11: 4em;
    --spacing--vw--3: 8vw;
    --radius--small: var(--primitives--rems--1);
    --spacing--vw--8: 2.5vw;
    --primitives--ems--8: 2.125em;
    --primitives--ems--9: 2.5em;
    --primitives--ems--10: 2.745em;
    --primitives--rems--4: 1.2rem;
    --radius--null: 0px;
    --radius--smaller: var(--primitives--rems--0);
    --spacing--vw--4: 10vw;
    --spacing--vw--6:24vw
}

/* Sidebar-Breite Fix */
#sidebar-wrapper {
    min-width: 225px !important;
    width: 225px !important;
}


/* ==============================================
   PROFESSIONELLES FILTER-PANEL 
   ============================================== */

/* Filter-Gruppen Basis */
#universalFilterForm,
.filter-group-primary,
.filter-group-date,
.filter-group-channel,
.filter-group-tech,
.filter-group-search,
.filter-group-content,
.filter-group-status {
    background: white;
    border-radius: 8px;
    border: 1px solid #e9ecef;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: all 0.2s ease;
}

/* Hauptfilter hervorheben */

.filter-group-primary {
    border: 2px solid #007bff !important;
    background: linear-gradient(135deg, #f8f9ff 0%, #ffffff 100%) !important;
    box-shadow: 0 4px 12px rgba(0,123,255,0.15);
}
.filter-section-title,
.filter-group-primary input[type="text"] {
    font-size: 1.1rem !important;
    padding: 0.75rem 1rem !important;
    border: 2px solid #e9ecef !important;
    border-radius: 6px !important;
}

.filter-group-primary input[type="text"]:focus {
    border-color: #007bff !important;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25) !important;
}

/* Gruppen-Header */
.filter-group-header,
.filter-group-header-collapsible {
    font-size: 0.85rem;
    font-weight: 600;
    color: #495057;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 2px solid #f1f3f4;
    display: flex;
    align-items: center;
}

.filter-group-header-collapsible {
    cursor: pointer;
    padding: 0.75rem 1rem;
    background: #f8f9fa;
    border-radius: 6px;
    border: 1px solid #dee2e6;
    margin-bottom: 0;
    transition: all 0.2s ease;
}

.filter-divider {
    border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
    margin: 1rem 0;
    color: #007bff;
  }

.filter-group-header-collapsible:hover {
    background: #e9ecef;
    color: #007bff;
}


.filter-group-header i,
.filter-group-header-collapsible i:first-child {
    color: #007bff;
    margin-right: 0.5rem;
    font-size: 1rem;
}

/* Spezifische Gruppen-Farben */
.filter-group-date {
    border-left: 4px solid #ffc107;
    background: linear-gradient(135deg, #fff8e1 0%, #ffffff 100%);
}

.filter-group-date .filter-group-header i {
    color: #ffc107;
}
.filter-group-tech {
    border-left: 4px solid #750273;
    background: linear-gradient(135deg, #fff8e1 0%, #ffffff 100%);
}

.filter-group-tech .filter-group-header i{
    color: #750273;
}

.filter-group-channel {
    border-left: 4px solid #28a745;
    background: linear-gradient(135deg, #e8f5e8 0%, #ffffff 100%);
}

.filter-group-channel .filter-group-header i {
    color: #28a745;
}

.filter-group-search {
    border-left: 4px solid #28a745;
    background: linear-gradient(135deg, #e8f5e8 0%, #ffffff 100%);
}

.filter-group-search .filter-group-header i {
    color: #28a745;
}

.filter-group-content {
    border-left: 4px solid #dc3545;
    background: linear-gradient(135deg, #ffeaea 0%, #ffffff 100%);
}

.filter-group-content .filter-group-header-collapsible i:first-child {
    color: #dc3545;
}

/* Gruppen-Content */
.filter-group-content {
    padding-top: 0.5rem;
}

/* Form-Controls kleiner machen */
.filter-group-date .form-control,
.filter-group-date .form-select,
.filter-group-channel .form-control,
.filter-group-channel .form-select,
.filter-group-status .form-control,
.filter-group-status .form-select {
    font-size: 0.85rem !important;
    padding: 0.5rem 0.75rem !important;
    border-radius: 4px !important;
}

/* Labels kleiner */
.filter-group-date .form-label,
.filter-group-channel .form-label,
.filter-group-status .form-label {
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    color: #6c757d !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    margin-bottom: 0.375rem !important;
}

/* Toggle-Buttons kompakter */
.filter-group-date .btn-group .btn,
.filter-group-channel .btn-group .btn,
.filter-group-status .btn-group .btn {
    font-size: 0.75rem !important;
    padding: 0.375rem 0.75rem !important;
}

/* Status-Filter noch kleiner */
.filter-group-status .form-control,
.filter-group-status .form-select {
    font-size: 0.8rem !important;
    padding: 0.4rem 0.6rem !important;
}

.filter-group-status .form-label {
    font-size: 0.7rem !important;
}

/* Uhrzeit-Untergruppe */
.time-filter-section {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
}

.time-filter-header {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 0.75rem;
    padding-left: 0.25rem;
    position: relative;
}

.time-filter-header::before {
    content: "\F023F"; /* bi-clock */
    font-family: "bootstrap-icons";
    color: #ffc107;
    margin-right: 0.5rem;
    font-size: 0.9rem;
}

/* Datumsfelder-Layout: Toggle oben, Inputs unten */
.date-input-fields {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f3f4;
}



/* Exaktes Datum-Modus: Nur Exaktes-Datum-Container anzeigen */
.filter-group-date:has(input[name="toggle_date_mode"][value="Exaktes Datum"]:checked) .date-field-exact_date {
    display: block !important;
}

/* Zeitraum-Modus: Von/Bis Datum-Container anzeigen */
.filter-group-date:has(input[name="toggle_date_mode"][value="Zeitraum"]:checked) .date-field-date_from {
    display: block !important;
}

.filter-group-date:has(input[name="toggle_date_mode"][value="Zeitraum"]:checked) .date-field-date_to {
    display: block !important;
}

/* Fallback für Browser ohne :has() Support */
@supports not selector(:has(*)) {
    .date-field-year,
    .date-field-exact_date,
    .date-field-date_from,
    .date-field-date_to {
        display: block !important;
    }
}
input[name="toggle_date_mode"][value="Jahr"]:checked ~ * .filter-group-content [name="date_from"],
input[name="toggle_date_mode"][value="Jahr"]:checked ~ * .filter-group-content [name="date_to"],
input[name="toggle_date_mode"][value="Jahr"]:checked ~ * .filter-group-content [name="time_from"],
input[name="toggle_date_mode"][value="Jahr"]:checked ~ * .filter-group-content [name="time_to"] {
    display: none !important;
}

input[name="toggle_date_mode"][value="Exaktes Datum"]:checked ~ * .filter-group-content [name="year"],
input[name="toggle_date_mode"][value="Exaktes Datum"]:checked ~ * .filter-group-content [name="date_from"],
input[name="toggle_date_mode"][value="Exaktes Datum"]:checked ~ * .filter-group-content [name="date_to"],
input[name="toggle_date_mode"][value="Exaktes Datum"]:checked ~ * .filter-group-content [name="time_from"],
input[name="toggle_date_mode"][value="Exaktes Datum"]:checked ~ * .filter-group-content [name="time_to"] {
    display: none !important;
}

input[name="toggle_date_mode"][value="Zeitraum"]:checked ~ * .filter-group-content [name="year"],
input[name="toggle_date_mode"][value="Zeitraum"]:checked ~ * .filter-group-content [name="exact_date"] {
    display: none !important;
}

/* Filter-Buttons */
#applyFilters,
#clearFilters {
    font-size: 0.875rem;
    padding: 0.5rem 1.25rem;
    border-radius: 6px;
    font-weight: 500;
}

/* Hover-Effekte */
.filter-group-date:hover,
.filter-group-channel:hover,
.filter-group-status:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
    .filter-group-primary,
    .filter-group-date,
    .filter-group-channel,
    .filter-group-status {
        padding: 1rem;
        margin-bottom: 1rem;
    }
    
    .filter-group-header,
    .filter-group-header-collapsible {
        font-size: 0.85rem;
    }
    
    .filter-group-primary input[type="text"] {
        font-size: 1rem !important;
        padding: 0.65rem 0.85rem !important;
    }
}

/* Animationen */
.filter-group-content {
    animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
/* Accordion-Animation */
.filter-group-header-collapsible {
    transition: max-height 0.3s ease, padding 0.3s ease;
}



.date-input-fields.row {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-gap: 0.75rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f3f4;
    align-items: start;
}

/* Jahr - Zeile 1, volle Breite */
.date-field-year {
    grid-column: 1 / 3;
    grid-row: 1;
}

/* Exaktes Datum - Zeile 2, volle Breite */
.date-field-exact_date {
    grid-column: 1 / 3;
    grid-row: 2;
}

/* Von Datum - Zeile 3, linke Spalte */
.date-field-date_from {
    grid-column: 1;
    grid-row: 3;
}

/* Bis Datum - Zeile 3, rechte Spalte */
.date-field-date_to {
    grid-column: 2;
    grid-row: 3;
}

/* Bootstrap-Margins zurücksetzen */
.date-input-fields .mb-3 {
    margin-bottom: 0 !important;
}

/* Mobile: Alles untereinander */
@media (max-width: 768px) {
    .date-input-fields.row {
        grid-template-columns: 1fr !important;
    }
    
    .date-field-year { grid-column: 1; grid-row: 1; }
    .date-field-exact_date { grid-column: 1; grid-row: 2; }
    .date-field-date_from { grid-column: 1; grid-row: 3; }
    .date-field-date_to { grid-column: 1; grid-row: 4; }
}

/* Vergrößerte Textareas und kleinere Schrift für Beispiel-Formulare */
.example-form-textarea {
    font-size: 0.8rem !important; /* Kleinere Schrift für mehr Übersicht */
    line-height: 1.4;
}


/* public/assets/modules/analysis/codeplanmanager/codeplan-manager.css - CSS-Stile spezifisch für das Codeplan-Manager-Widget. */
/* Ergänzungen für Codeplan-Manager v1.1 */

/* Entfernt abgerundete Ecken für alle Buttons innerhalb des Widgets für einen technischeren Look */
#codeplanManagerContainer .btn,
#codeplanManagerContainer .modal-content {
    border-radius: 0;
}

/* Stellt sicher, dass die Tabellen-Header nicht zu viel Platz einnehmen */
#codeplanManagerContainer .table th {
    font-weight: 600;
    font-size: 0.85rem;
    white-space: nowrap;
}

/* Reduziert die vertikale Polsterung in den Tabellenzellen für ein kompakteres Layout */
#codeplanManagerContainer .table td {
    vertical-align: middle;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* Sorgt für konsistente Button-Styles in der Aktionsleiste */
#codeplanManagerContainer .table .btn-group-sm > .btn {
    padding: 0.2rem 0.5rem;
    font-size: 0.8rem;
}

/* ==========================================
   Codeplan Tree Styles - Clean Light Theme
   ========================================== */

/* 1. Basis-Reset für Accordion Items */
.codeplan-tree .accordion-item {
    border: 1px solid rgba(0,0,0,0.08);
    border-bottom: 4px solid #fff !important; /* Deutlicher weißer Trenner zwischen den Zeilen */
    margin-bottom: 2px; /* Minimaler Abstand */
    background-color: #fff; /* Fallback */
    transition: background-color 0.2s ease;
}

/* 2. Bootstrap Overrides für den Button */
.codeplan-tree .accordion-button {
    box-shadow: none !important; /* Blauen Fokus-Rahmen entfernen */
    background: transparent !important; /* Damit die Farbe des Items durchscheint */
    padding: 0.6rem 1rem; /* Etwas kompakter */
    color: #212529 !important; /* SCHRIFT IMMER DUNKEL (kein Blau/Orange etc.) */
}

.codeplan-tree .accordion-button::after {
    /* Optional: Pfeil etwas abdunkeln */
    filter: grayscale(100%); 
}

/* Text-Korrektur: Auch fette Texte sollen dunkel bleiben */
.codeplan-tree .fw-bold {
    color: #212529 !important;
}

/* Hover-Effekt für die ganze Zeile */
.codeplan-tree .accordion-item:hover {
    filter: brightness(0.97); 
}


/* ==========================================
   THEMES (Farbcodes)
   ========================================== */

/* --- LEVEL 0: ROOT (Hauptkategorie) --- */
/* Hellblau */
.cp-node-root {
    border-left: 5px solid #0d6efd !important;
    background-color: #e7f1ff !important; 
}
/* Icon Farbe */
.cp-node-root .bi-collection-fill, 
.cp-node-root .bi-folder-fill {
    color: #0d6efd; 
}


/* --- TYP: STRUCTURE (Gliederung) --- */
/* Hell-Violett / Flieder */
.cp-node-structure {
    border-left: 5px solid #6f42c1 !important;
    background-color: #f3e8fd !important;
}
/* Icon Farbe */
.cp-node-structure .bi-folder2-open,
.cp-node-structure .bi-folder-fill {
    color: #6f42c1;
}


/* --- TYP: AGGREGATE (Berechnung) --- */
/* Hell-Cyan */
.cp-node-aggregate {
    border-left: 5px solid #0dcaf0 !important;
    background-color: #e0f7fa !important;
}
/* Icon Farbe */
.cp-node-aggregate .bi-calculator,
.cp-node-aggregate .bi-calculator-fill {
    color: #0891b2; /* Etwas dunkleres Cyan für Kontrast */
}


/* --- TYP: VARIABLE (Standard) --- */
/* Hell-Orange / Creme */
.cp-node-variable {
    border-left: 5px solid #fd7e14 !important;
    background-color: #fff3e6 !important; 
}
/* Icon Farbe */
.cp-node-variable .bi-tag,
.cp-node-variable .bi-tag-fill {
    color: #fd7e14;
}


/* ==========================================
   SPEZIAL-STILE
   ========================================== */

/* Rotes Warn-Icon Animation */
.icon-warning-missing-scale {
    font-size: 1.1em;
    color: #dc3545; /* Bootstrap Danger Red */
    animation: pulse-warning 2s infinite;
}

@keyframes pulse-warning {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.1); }
    100% { opacity: 1; transform: scale(1); }
}

/* Badge-Anpassung im Baum */
.codeplan-tree .badge {
    font-weight: normal;
    letter-spacing: 0.5px;
}

/* --- Dashboard Module Cards --- */

.module-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: 1px solid rgba(0,0,0,0.05);
    border-left-width: 5px !important; /* Dicker bunter Rand links */
    height: 100%;
}

.module-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
}

.module-card .card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

.module-card .icon-wrapper {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    opacity: 0.8;
}

/* --- Kategorien Farben --- */

/* Explorer / Recherche -> Blau/Cyan */
.card-cat-explorer {
    border-left-color: #0dcaf0 !important; /* Cyan */
}
.card-cat-explorer .icon-wrapper, 
.card-cat-explorer .btn-link {
    color: #0dcaf0;
}

/* Analysis / Analyse -> Indigo/Lila */
.card-cat-analysis {
    border-left-color: #6610f2 !important; /* Indigo */
}
.card-cat-analysis .icon-wrapper,
.card-cat-analysis .btn-link {
    color: #6610f2;
}

/* Reporting -> Grün/Teal */
.card-cat-reporting {
    border-left-color: #20c997 !important; /* Teal */
}
.card-cat-reporting .icon-wrapper,
.card-cat-reporting .btn-link {
    color: #20c997;
}

/* Developer / Sonstiges -> Grau */
.card-cat-developer, .card-cat-default {
    border-left-color: #6c757d !important;
}
.card-cat-developer .icon-wrapper {
    color: #6c757d;
}