﻿/* =========================================================================
   Sektion 1: 🌐 GLOBAL STYLES & CORE RESET
   ========================================================================= */
html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    height: 100%;
    font-size: 13px !important; /* Globale Basis-Schriftgröße leicht reduziert */
}

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #006bb7;
}

.content {
    padding-top: 1.1rem;
}

/* =========================================================================
   Sektion 2: 🛡️ VALIDIERUNG & BLENDER-FEHLERMELDUNGEN
   ========================================================================= */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

/* =========================================================================
   Sektion 3: 🔘 BUTTONS & EINGABEFELDER (KOMPAKT-SKIN)
   ========================================================================= */
/* Radzen Standard-Eingabefelder einheitlich flach drücken */
.rz-textbox,
.rz-dropdown,
.rz-numeric {
    font-size: 13px !important;
    height: 30px !important;
}

/* 🌟 KORREKTUR: Gilt für alle rz-form-control Elemente, ES SEI DENN, 
   sie befinden sich tief im Inneren einer Tabellenzelle (td) */
.rz-form-control:not(td .rz-form-control) {
    font-size: 13px !important;
    height: 30px !important;
}


/* 🌟 ARCHITEKTUR-FIX: Nur Standard-Buttons komprimieren, damit große Custom-Buttons (45px) erlaubt bleiben! */
.rz-button:not([style*="height"]):not([style*="height:45"]):not([style*="height: 45"]) {
    font-size: 13px !important;
    height: 30px !important;
    min-height: 30px !important;
    line-height: 28px !important;
    padding: 0 12px !important;
}

.rz-button-text,
.rz-button-box {
    line-height: 28px !important;
}

.rz-button .rz-button-icon-left,
.rz-button .rz-button-icon-right {
    font-size: 15px !important;
    line-height: 28px !important;
}

/* Standard Bootstrap fallback */
.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

/* Erhöhte Sichtbarkeit für deaktivierte Knöpfe */
.rz-button:disabled,
.rz-button.rz-state-disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}

/* =========================================================================
   Sektion 4: ⚡ SPEZIAL-BUTTONS (.btn-compact & .btn-flat-hover)
   ========================================================================= */
.btn-compact.rz-button {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #e0e0e0 !important; /* Hierhin ausgelagert */
}
    /* Entfernt innere Abstände und färbt das Icon dauerhaft dunkel */
    .btn-compact.rz-button *,
    .btn-compact.rz-button i {
        margin: 0 !important;
        padding: 0 !important;
        color: #212121 !important;
    }

/* Macht den Hintergrund des Buttons in absolut jedem Zustand unsichtbar */
.btn-transparent.rz-button,
.btn-transparent.rz-button:hover,
.btn-transparent.rz-button:focus,
.btn-transparent.rz-button:active,
.btn-transparent.rz-button.rz-state-hover {
    background-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

    /* Sorgt dafür, dass die drei Punkte (das Icon) immer die richtige Farbe behalten */
    .btn-transparent.rz-button *,
    .btn-transparent.rz-button:hover * {
        color: #212529 !important; /* Deine gewünschte dunkle Textfarbe */
        opacity: 1 !important; /* Verhindert das Ausblenden beim Hovern */
        filter: none !important; /* Blockiert Radzens automatische Aufhellung */
    }

/* =========================================================================
   Sektion 5: 📑 RADZEN DIALOGE & POPUPS (SICHERHEITSGURTE)
   ========================================================================= */
/* 🌟 SYNTAX-FIX: Kommentare sauber geklammert, damit der Parser nicht abbricht! */
.rz-dialog-titlebar {
    display: flex !important;
    align-items: center !important; /* Exakte vertikale Zentrierung */
    justify-content: flex-start !important; /* Behält den Text standardmäßig linksbündig */
    padding-top: 12px !important; /* Ausgewogene Touch-Abstände */
    padding-bottom: 12px !important;
}

    .rz-dialog-titlebar .rz-dialog-titlebar-close {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        align-self: center !important;
    }

.rz-dialog-content {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    overflow: hidden !important;
}

    .rz-dialog-content form {
        display: flex !important;
        flex-direction: column !important;
        height: 100 !important;
        width: 100% !important;
    }

.rz-dialog.my-custom-maximize {
    position: fixed !important;
    margin: 0 !important;
    z-index: 1001 !important;
}

.dialog-maximized {
    width: 100vw !important;
    height: 100vh !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    z-index: 1100 !important;
}

.rz-dialog-wrapper {
    padding-top: 0 !important;
    display: flex;
    align-items: flex-start;
}

.rz-dialog {
    margin-top: 0 !important;
}

    /* 🌟 SYNTAX-FIX: Absolut sichere Blockade gegen negatives Ausbrechen nach oben */
    .rz-dialog[style*="top:-"],
    .rz-dialog[style*="top: -"] {
        top: 0px !important;
    }

/* Ecken-Resize-Griff */
.rz-resizable-handle {
    z-index: 1200 !important;
    width: 20px !important;
    height: 20px !important;
    cursor: nwse-resize !important;
    background: rgba(0, 0, 0, 0.05);
}

/* Globale Smartphone-Zentrierung für den Spaltenpicker */
@media (max-width: 576px) {
    .rz-dialog {
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100% - 32px) !important;
        max-width: 340px !important;
    }
}
/* =========================================================================
   Sektion 6: 🗂️ RADZEN GRIDS & KOMPONENTEN-LOGIK (DATEPICKER/NAV/TRANSLATE)
   ========================================================================= */
.rz-grid-table {
    font-size: 12px !important;
}

    .rz-grid-table th .rz-column-title {
        font-size: 11px !important;
        text-transform: none !important;
        letter-spacing: 0.5px !important;
        font-weight: 600 !important;
    }

    .rz-grid-table td,
    .rz-grid-table th {
        padding: 5px 8px !important;
    }

.btn-menu-action.rz-button {
    justify-content: flex-start !important;
    text-align: left !important;
}

.btn-menu-action .rz-button-text {
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
}

.rz-datepicker {
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
}

    .rz-datepicker .rz-inputtext {
        height: 100% !important;
        padding-right: 30px !important;
    }

    .rz-datepicker .rz-datepicker-trigger {
        height: 24px !important;
        width: 24px !important;
        position: absolute !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        right: 4px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
    }

        .rz-datepicker .rz-datepicker-trigger .rz-button-icon-left {
            font-size: 15px !important;
            margin: 0 !important;
            line-height: 1 !important;
        }

.rz-navigation-item-text,
.rz-panel-menu .rz-navigation-item-link {
    font-size: 13px !important;
    font-weight: 500 !important;
}

.translation-button-container .rz-button .rz-button-icon-left {
    color: #0078d4 !important;
    font-size: 1.25rem !important;
}

.translation-button-container .rz-button:hover,
.translation-button-container .rz-button:active,
.translation-button-container .rz-button:focus {
    background-color: transparent !important;
    box-shadow: none !important;
}

    .translation-button-container .rz-button:hover .rz-button-icon-left {
        color: #005a9e !important;
    }

.knowledge-list {
    padding-left: 1.5rem;
    margin-top: 0.5rem;
    list-style-type: disc;
}

    .knowledge-list li {
        margin-bottom: 0.5rem;
        color: var(--rz-text-primary-color);
    }

/* Globaler, schmaler Fokusrahmen als sanfter Standard-Fallback */
.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus,
.rz-button:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(37, 140, 251, 0.4) !important;
}

/* GLOBALER RADZENFORMFIELD-RESCUE (Für deaktivierte Felder)*/
/* Wenn die TextBox im FormField deaktiviert ist, zähmen wir den äußeren Rahmen */
/* 1. Den äußeren Rahmen des FormFields unsichtbar machen */
.rz-form-field:has(.rz-state-disabled),
.rz-form-field:has(.rz-textbox:disabled) {
    border-color: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* 2. 🚀 DIE RETTUNG: Den inneren, separaten Rahmen der gesperrten TextBox komplett vernichten! */
.rz-form-field .rz-textbox:disabled,
.rz-form-field .rz-textbox.rz-state-disabled,
.rz-form-field .rz-lookup-search .rz-textbox:disabled {
    border-color: transparent !important;
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* 3. Den Label-Text des FormFields dezent ausgrauen */
.rz-form-field:has(.rz-state-disabled) .rz-form-field-label {
    opacity: 0.5 !important;
}
.rz-text-align-center .rz-cell-data {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    text-align: center !important;
}
/* =========================================================================
   🎯 UNZERSTÖRBARE TEMPLATE-ZENTRIERUNG FÜR REINE BOOLS & HOVER-BUTTONS
   ========================================================================= */
/* Wir adressieren die Tabellenzelle (td) direkt über unsere neue Custom-Klasse */
.force-grid-center .rz-cell-data {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
}

    /* Zwingt Ihre unterstrichene Aktions-Schaltfläche (das Klick-div) in die Mitte */
    .force-grid-center .rz-cell-data .grid-cell-action {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        text-align: center !important;
        width: 100% !important;
        gap: 4px;
    }

    /* Verhindert, dass das RadzenIcon asymmetrische Außenabstände behält */
    .force-grid-center .rz-cell-data .rz-icon-material {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
    }

/* =========================================================================
   🧅 ZWIEBEL-SYSTEM & ZEILEN-MARKIERUNGEN (ROW-STYLES)
   ========================================================================= */
/* Verhindert, dass die Zwiebel-Schichten eingerückt werden */
.onion-list-container {
    padding: 0 !important;
    margin-left: 0 !important;
}

    /* Falls Ihre EntityList einen umschließenden RadzenStack nutzt */
    .onion-list-container .rz-stack {
        padding-left: 0 !important;
    }

/* Wir adressieren die Zelle (td) innerhalb der markierten Zeile */
.row-is-correct td {
    background-color: rgba(76, 175, 80, 0.2) !important;
}

/* Fehler / Error */
.row-is-error td {
    background-color: rgba(244, 67, 54, 0.2) !important; /* Rot */
}

/* Warnung / Warning */
.row-is-warning td {
    background-color: rgba(255, 152, 0, 0.2) !important; /* Orange */
}

/* Information / Info */
.row-is-info td {
    background-color: rgba(33, 150, 243, 0.2) !important; /* Blau */
}

/* 1. Die Hintergrundfarbe und das Ausgrauen für die Zelle (das klappt immer) */
.row-is-deleted td {
    color: #a0a0a0 !important;
}
    /* NUR echten Text im innersten Kern schwarz durchstreichen */
    .row-is-deleted td .rz-cell-data:not(:empty),
    .row-is-deleted td span:not(:empty),
    .row-is-deleted td div.grid-cell-action:not(:empty) {
        text-decoration: line-through solid #000000 !important; /* Schwarze Linie */
        display: inline-block !important;
    }

/* Ein kräftigerer grüner linker Rand als Akzent */
.row-is-correct {
    border-left: 4px solid #4CAF50 !important;
}

/* Fette und kursive Zeilenschrift */
.row-bold {
    font-weight: bold !important;
    font-style: italic !important;
}

/* Markierung für die ausgewählte Zeile im Zwiebel-System */
.selected-onion-row td {
    background-color: rgba(var(--rz-primary-rgb), 0.15) !important;
    border-top: 1px solid var(--rz-primary) !important;
    border-bottom: 1px solid var(--rz-primary) !important;
}

    /* Der markante Balken links an der ersten Zelle */
    .selected-onion-row td:first-child {
        border-left: 5px solid var(--rz-primary) !important;
    }

    /* Text etwas fetter für bessere Lesbarkeit auf dem Samsung-Laptop */
    .selected-onion-row td .rz-cell-data {
        color: var(--rz-primary-dark) !important;
        font-weight: 600 !important;
    }

/* Nur für den ColumnPicker-Toggle: visuellen Fokus unterdrücken, verhindert Flackern */
.no-focus-on-click:focus {
    outline: none !important;
    box-shadow: none !important;
}