﻿
/* In Ihrer eigenen CSS-Datei (z. B. site.css) */
:root {
    --bs-body-font-size: 0.85rem; /* Standard ist 1rem (16px) */
    --bs-body-line-height: 1.2; /* Standard ist 1.5 */
    --bs-spacer: 0.4rem; /* Standard ist 1rem (Basis für margin/padding) */
}

.btn {
    padding: 0.15rem 0.35rem; /* Beispiel: Buttons kompakter machen */
}

/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.body-content {
    margin-top: 25px;
    padding-left: 15px;
    padding-right: 15px;
}

/* Override the default bootstrap behavior where horizontal description lists 
   will truncate terms that are too long to fit in the left column 
*/
.dl-horizontal dt {
    white-space: normal;
}

/* Set widths on the form inputs since otherwise they're 100% wide */
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="select"] {
    max-width: 280px;
}

/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
    .body-content {
        padding: 0;
    }
}

label {
    font-style: italic;
    color: royalblue;
}

/* Mobile-first Ansatz für Button im Grid auf der Startseite !!! */
.table td .btn-container .btn {
    display: block;
    width: 100%;
    margin-bottom: 5px;
}

/* Desktop */
@media (min-width: 768px) {
    .table td .btn-container .btn {
        display: inline-block;
        width: auto;
        margin-right: 5px;
        margin-bottom: 0;
    }

}


/* Sortierindikatoren */
.sorted {
    font-weight: bold;
    color: #007bff !important;
}

/*.grid-pager {
    font-size: 1.0em;
    text-align: center;
    padding: 10px 0;
}

    .grid-pager a, .grid-pager span {
        display: inline-block;
        padding: 10px 14px;
        margin: 4px;
        min-width: 40px;
        border-radius: 8px;
        border: 1px solid #ccc;
        background-color: #f8f8f8;
        text-decoration: none;
        color: #333;
    }

   .grid-pager a:hover {
            background-color: #ddd;
        }

    .grid-pager span {
        background-color: #007bff;
        color: white;
        font-weight: bold;
    }
*/


/* Pager-Stil für bessere Mobile-Ansicht */
    .grid-pager {
        display: flex;
        justify-content: left;
        flex-wrap: wrap;
        padding: 15px 0;
        margin-top: 10px;
        font-size: 0.9em;
    }

    .grid-pager a,
    .grid-pager span {
        display: inline-flex;
        align-items: center;
        justify-content: left;
        padding: 8px 12px;
        margin: 2px;
        min-width: 36px;
        height: 36px;
        border-radius: 6px;
        border: 1px solid #dee2e6;
        background-color: #f8f9fa;
        text-decoration: none;
        color: #495057;
        transition: all 0.3s ease;
        font-weight: 500;
    }

    .grid-pager a:hover {
        background-color: #e9ecef;
        border-color: #ced4da;
        transform: translateY(-1px);
    }

    .grid-pager span {
        background-color: #007bff;
        color: white;
        border-color: #007bff;
        font-weight: 600;
    }

/* Linksbündiger Pager mit voller Kontrolle */
.grid-pager-left {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    margin: 10px 0 !important;
    padding: 0 !important;
    float: none !important;
}

    .grid-pager-left table {
        margin: 0 !important;
        float: none !important;
        border-collapse: collapse !important;
        display: inline-block !important;
    }

    .grid-pager-left td {
        padding: 3px !important;
        text-align: left !important;
        display: inline-block !important;
        float: none !important;
    }

    .grid-pager-left a,
    .grid-pager-left span {
        display: inline-block !important;
        padding: 6px 12px !important;
        margin: 2px !important;
        border-radius: 4px !important;
        border: 1px solid #ddd !important;
        background-color: #f8f8f8 !important;
        color: #333 !important;
        text-decoration: none !important;
        text-align: center !important;
        float: none !important;
    }

        .grid-pager-left a:hover {
            background-color: #e9e9e9 !important;
        }

    .grid-pager-left span {
        background-color: #007bff !important;
        color: white !important;
        border-color: #007bff !important;
    }

    /* Pager-Schriftgröße: "Seite xx" */
    .form-select-sm {
        padding-top: 0.18rem;
        padding-bottom: 0.18rem;
        padding-left: 0.4rem;
        font-size: 0.7rem;
        border-radius: var(--bs-border-radius-sm);
    }


/* Mobile-Anpassungen */
    @media (max-width: 768px) {
        .grid-pager {
            padding: 10px 0;
        }
    
        .grid-pager a, 
        .grid-pager span {
            padding: 6px 8px;
            min-width: 30px;
            height: 32px;
            font-size: 0.8em;
            margin: 1px;
        }
    
        .grid-pager .pager-special {
            display: none; /* Spezial-Buttons auf mobil ausblenden */
        }

        .grid-pager .pager-numbers {
            display: flex;
            flex-wrap: wrap;
            justify-content: left;
        }

        /* Pager-Schriftgröße: "Seite xx" */
        .form-select-sm {
            padding-top: 0.25rem;
            padding-bottom: 0.25rem;
            padding-left: 0.4rem;
            margin: 5px;
            font-size: 0.8rem;
            border-radius: var(--bs-border-radius-sm);
        }


        .kanban-container {
            flex-wrap: nowrap;
        }

        .kanban-column {
            flex: 0 0 80%;
        }

        select.form-select {
            height: 30px;
            padding: 4px 8px;
            font-size: 14px;
            line-height: 1;
        }

        .form-select {
            height: 30px;
            padding: 4px 8px;
            font-size: 14px;
            line-height: 1;
        }

        .btn,
        .form-control {
            font-size: 10px;
            padding: 6px 8px;
        }

    }


/* Font Awesome für Sortiericons (falls nicht bereits vorhanden) */
/*@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');
*/

/*-------------------------------------
/*  Desktop-Darstellung verkleinern  */
/*-------------------------------------
/* Desktop-Overrides (ab 992px) */
/*@media (min-width: 992px) {*/
    @media (min-width: 769px) {
        /* Globale Schriftgröße */
        body {
            font-size: 0.8rem !important;
        }

        /* Formularfelder */
        .form-control {
            height: 24px;
            padding: 2px 6px;
            line-height: 1.5;
            font-size: 0.85rem;
            font-weight: 500;
            padding: 0.1rem 0.3rem 0.1rem 0.75em;
        }

        /* Buttons */
        .btn {
            padding: 0px 2px 0px 2px;
            font-size: 0.75rem;
        }

        /* Grid-Container */
        .container {
            width: 90% !important;
        }



        /* Grid: Standard-Padding für alle Geräte (falls nicht schon überschrieben) */
        .table > :not(caption) > * > * {
            padding: 0.3rem 0.2rem 0.3rem 0.33rem; /* normal: 0.5 */
        }


        /* Grid: Markierung bearbeitete Zeile) */
        .highlight-row {
            background-color: #fff3cd !important;
        }

        .highlight-cell {
            background-color: #fff3cd !important;
        }


        /* listbox aufklappen, z.B. Benutzer */
        .listbox-multi {
            width: 100%;
            height: auto;
        }

        /* checkbox Kalender */
        .center-left {
            display: flex;
            align-items: center; /* vertikal zentrieren */
            justify-content: flex-start; /* linksbündig */
            height: 100%; /* stellt sicher, dass Vertikalausrichtung greift */
        }


        /* kanban responsiv */
        .kanban-container {
            display: flex;
            flex-wrap: nowrap;
            overflow-x: auto;
            gap: 1rem;
            padding: 1rem;
            min-height: 400px;
        }

        .kanban-column {
            flex: 0 0 300px;
            min-width: 250px;
            background-color: #f8f9fa;
            border-radius: 8px;
            padding: 0.5rem;
            height: 100%;
            overflow-y: auto;
        }

        .kanban-board {
            display: flex;
            flex-wrap: nowrap;
            overflow-x: auto;
            gap: 1rem;
            padding-bottom: 1rem;
        }

            .kanban-board > .col-md-3 {
                flex: 0 0 auto;
                width: 90vw;
                max-width: 300px;
            }


        /* kanban karte rahmen */
        .aufgabe-karte {
            border-radius: 4px;
            border: 1px solid #ccc;
            cursor: grab;
        }

            .aufgabe-karte:active {
                cursor: grabbing;
                opacity: 0.7;
            }

        .select2-container {
            width: 100% !important;
        }

        .select2-dropdown {
            z-index: 1055; /* damit es über Bootstrap-Modals etc. liegt */
        }

        .select2-results__option {
            white-space: normal; /* mehrzeilig erlauben */
        }

        /* Benachrichtigung im modalen Fenster 'AufgabeDetails' */
        #benachrichtigenCollapse .card {
            background-color: #f9f9f9;
        }


        /* Menu */
        .navbar {
            color: darkgray; /* oder var(--bs-light) */
        }

        .badge {
            vertical-align: middle;
        }

        .navbar .nav-link {
            white-space: nowrap;
            font-size: 1.35rem;
        }


        /* Allgemeine Menü-Schriftgröße */
        .navbar-nav .nav-link {
            font-size: 1.0rem; /* z.B. Standardgröße: 1rem ≈ 16px */
        }

        /* Nur für größere Bildschirme (Desktop) */
        @media (min-width: 768px) {
            .navbar-nav .nav-link {
                font-size: 1.05rem; /* z.B. 17.6px */
            }
        }

        /* Nur für kleinere Bildschirme (Mobil) */
        /*@media (max-width: 767.98px) {
        .navbar-nav .nav-link {
            font-size: 1.05rem;*/ /* z.B. 15.2px */
        /*}
    }*/
        @media (max-width: 767.98px) {
            .navbar-nav > .nav-item > .nav-link {
                font-size: 1.05rem; /* z.B. 14.4px */
            }
        }


        /* Untermenüpunkte (Dropdowns) */
        /* Nur Untermenüpunkte (Dropdowns) */
        .dropdown-menu .dropdown-item {
            font-size: 0.95rem; /* z.B. ca. 14.4px */
            color: mediumblue;
        }

        /* Optional: nur für große Bildschirme */
        @media (min-width: 768px) {
            .dropdown-menu .dropdown-item {
                font-size: 1.05rem;
            }
        }

        /* Optional: nur für Mobilgeräte */
        @media (max-width: 767.98px) {
            .dropdown-menu .dropdown-item {
                font-size: 1.05rem;
            }
        }
    }

/* Default State */
.form-control {
    border: 2px solid #ced4da;
    background-color: #fbf9f2;
    border-radius: 0.375rem;
    padding: 0.02rem 0.05rem 0.08rem 0.25rem;
}

label {
    margin-bottom: 0.20rem !important;
}


/* ===== Mobile bleibt unverändert (Breakpoint bei 768px) ===== */
/*@media (max-width: 768px) {*/
    /* Hier keine Änderungen, um Bootstrap-Standards zu erhalten */
/*}*/


/* Spezielle Styles für Smartwatch */
@media screen and (max-width: 240px) {
    body {
        font-size: 10px;
    }

    .container {
        padding: 2px;
    }
}

/* === Allgemeine Feinanpassung für alle Bootstrap-Formulare === */

/* Desktop-Basis (leicht kleinere Schrift als Bootstrap-Default) */
.form-control,
.form-select,
.form-label {
    font-size: 0.875rem; /* ca. 14px */
    line-height: 1.2;
}

    .form-select {
        background-color: var(--bs-body-bg);
        border-color: var(--bs-border-color);
        color: var(--bs-body-color);
        box-shadow: none;
    /* Farbe wie Eingabefelder .form-Control */
    border: 2px solid #ced4da;
    background-color: #fbf9f2;
    border-radius: 0.375rem;
    padding: 0.02rem 0.05rem 0.08rem 0.25rem;


    }
/*
    .form-select:focus {
        border-color: var(--bs-form-control-focus-border-color, #86b7fe);
        box-shadow: 0 0 0 .2rem rgba(13,110,253,.25);
    }
*/


/* Mobile Optimierung: unter md-Breakpoint (768px) */
@media (max-width: 767.98px) {
    .form-control,
    .form-select {
        font-size: 0.75rem; /* ca. 12px – kompakter */
        line-height: 1.2;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
    }

    .form-label {
        font-size: 0.75rem; /* Labels proportional verkleinern */
        margin-bottom: 0.15rem; /* weniger Abstand */
    }

    /* Option: geringere vertikale Abstände zwischen Formularzeilen */
    .mb-2 {
        margin-bottom: 0.4rem !important;
    }
}

/* Desktop leicht kompakter */
.form-compact .form-label,
.form-compact .form-control,
.form-compact .form-select {
    font-size: 0.872rem;
    line-height: 1.2;
}

/* Mobil noch kompakter */
@media (max-width: 767.98px) {
    .form-compact .form-label,
    .form-compact .form-control,
    .form-compact .form-select {
        font-size: 0.75rem !important; /* schlägt ggf. andere Regeln */
        line-height: 1.2 !important;
    }

    .form-compact .form-control,
    .form-compact .form-select {
        padding-top: 0.25rem !important;
        padding-bottom: 0.25rem !important;
    }

    .form-compact {
        margin-bottom: 0.4rem !important;
    }
}
