/* =====================================================================
   Kaisers Gartenbau – Apple-Look fürs Kundenportal
   Phase 2: globales Restyling auf bestehende Perfex-Markup-Strukturen.
   ===================================================================== */

/* ---- Design-Tokens -------------------------------------------------- */
:root {
    --kg-green-900: #1f3a1d;
    --kg-green-700: #2d4a2b;
    --kg-green-600: #3d7c3a;
    --kg-green-100: #e8f0e6;
    --kg-green-50:  #f3f7f2;

    --kg-text-primary:   #1d1d1f;
    --kg-text-secondary: #6e6e73;
    --kg-text-tertiary:  #86868b;

    --kg-bg-page:    #f5f5f7;
    --kg-bg-card:    #ffffff;
    --kg-bg-subtle:  #fafafa;

    --kg-border:        #e5e5ea;
    --kg-border-strong: #d2d2d7;

    --kg-shadow-sm: 0 1px 2px rgba(0,0,0,0.04), 0 0 0 1px rgba(0,0,0,0.03);
    --kg-shadow-md: 0 4px 12px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.04);
    --kg-shadow-lg: 0 12px 32px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04);

    --kg-radius-sm: 8px;
    --kg-radius-md: 12px;
    --kg-radius-lg: 16px;
    --kg-radius-xl: 22px;

    --kg-font-stack: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
                     "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;

    --kg-success: #34c759;
    --kg-warning: #ff9500;
    --kg-danger:  #ff3b30;
    --kg-info:    #007aff;
}


/* ---- Body / globale Typo ------------------------------------------- */
body {
    font-family: var(--kg-font-stack);
    background: var(--kg-bg-page) !important;
    color: var(--kg-text-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.011em;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--kg-font-stack);
    color: var(--kg-text-primary);
    font-weight: 600;
    letter-spacing: -0.022em;
}

a { color: var(--kg-green-700); }
a:hover, a:focus { color: var(--kg-green-600); text-decoration: none; }


/* ---- Header / Top-Navigation --------------------------------------- */
.navbar.navbar-default.header {
    background: rgba(255,255,255,0.78);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    border: none;
    border-bottom: 1px solid var(--kg-border);
    box-shadow: none;
    min-height: 64px;
    margin-bottom: 0;
}

.navbar.header .container { padding: 0 24px; }

.navbar.header .navbar-brand {
    padding: 12px 0;
    height: auto;
}

.navbar.header .navbar-brand img,
.navbar.header .navbar-brand .logo {
    max-height: 40px;
    width: auto;
}

.navbar.header .navbar-nav > li > a {
    color: var(--kg-text-primary);
    font-weight: 500;
    font-size: 15px;
    padding: 22px 14px;
    transition: color 0.15s ease;
}

.navbar.header .navbar-nav > li > a:hover,
.navbar.header .navbar-nav > li > a:focus {
    color: var(--kg-green-700);
    background: transparent;
}

.navbar.header .navbar-nav > li.active > a,
.navbar.header .navbar-nav > li.active > a:focus,
.navbar.header .navbar-nav > li.active > a:hover {
    color: var(--kg-green-700);
    background: transparent;
    position: relative;
}

.navbar.header .navbar-nav > li.active > a::after {
    content: '';
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 12px;
    height: 2px;
    background: var(--kg-green-700);
    border-radius: 2px;
}

/* Profil-Bild im Header */
.navbar.header .client-profile-image-small {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--kg-border);
}

/* Profil-Dropdown-Menü */
.navbar.header .dropdown-menu {
    border: none;
    border-radius: var(--kg-radius-md);
    box-shadow: var(--kg-shadow-lg);
    padding: 6px;
    margin-top: 8px;
    min-width: 220px;
}

.navbar.header .dropdown-menu > li > a {
    padding: 10px 14px;
    border-radius: var(--kg-radius-sm);
    font-size: 14px;
    color: var(--kg-text-primary);
    transition: background 0.12s ease;
}

.navbar.header .dropdown-menu > li > a:hover,
.navbar.header .dropdown-menu > li > a:focus {
    background: var(--kg-green-50);
    color: var(--kg-green-700);
}

.navbar.header .dropdown-menu > li.active > a,
.navbar.header .dropdown-menu > li.active > a:hover {
    background: var(--kg-green-100);
    color: var(--kg-green-700);
}


/* ---- Cards / Panels (panel_s) -------------------------------------- */
.panel_s,
.panel-default,
.panel {
    background: var(--kg-bg-card);
    border: none !important;
    border-radius: var(--kg-radius-lg) !important;
    box-shadow: var(--kg-shadow-sm);
    margin-bottom: 20px;
    overflow: hidden;
}

.panel_s > .panel-body,
.panel-default > .panel-body,
.panel > .panel-body {
    padding: 24px;
}

.panel_s > .panel-heading,
.panel-default > .panel-heading,
.panel > .panel-heading {
    background: transparent;
    border-bottom: 1px solid var(--kg-border);
    padding: 18px 24px;
    font-weight: 600;
    color: var(--kg-text-primary);
}


/* ---- Buttons ------------------------------------------------------- */
.btn {
    border-radius: var(--kg-radius-md);
    font-weight: 500;
    font-size: 14px;
    padding: 10px 18px;
    border: none;
    transition: all 0.15s ease;
    box-shadow: none;
    min-height: 40px;
    line-height: 1.4;
}

.btn-lg {
    border-radius: var(--kg-radius-md);
    padding: 14px 24px;
    font-size: 16px;
    min-height: 48px;
}

.btn-sm {
    padding: 7px 14px;
    font-size: 13px;
    min-height: 32px;
}

.btn-primary {
    background: var(--kg-green-700);
    color: #fff;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background: var(--kg-green-900);
    color: #fff;
    box-shadow: 0 2px 8px rgba(45, 74, 43, 0.25);
}

.btn-default {
    background: var(--kg-bg-card);
    color: var(--kg-text-primary);
    border: 1px solid var(--kg-border-strong) !important;
}
.btn-default:hover, .btn-default:focus {
    background: var(--kg-bg-subtle);
    border-color: var(--kg-text-tertiary) !important;
    color: var(--kg-text-primary);
}

.btn-success { background: var(--kg-success); color: #fff; }
.btn-success:hover, .btn-success:focus { background: #2eaf4d; color: #fff; }

.btn-danger { background: var(--kg-danger); color: #fff; }
.btn-danger:hover, .btn-danger:focus { background: #d92e25; color: #fff; }

.btn-info { background: var(--kg-info); color: #fff; }
.btn-info:hover, .btn-info:focus { background: #006bd6; color: #fff; }


/* ---- Forms / Inputs ----------------------------------------------- */
.form-control {
    border: 1px solid var(--kg-border-strong);
    border-radius: var(--kg-radius-md);
    padding: 11px 14px;
    font-size: 15px;
    height: auto;
    box-shadow: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    background: var(--kg-bg-card);
    color: var(--kg-text-primary);
}

.form-control:focus {
    border-color: var(--kg-green-600);
    box-shadow: 0 0 0 4px rgba(61, 124, 58, 0.12);
    outline: none;
}

.form-group label,
.control-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--kg-text-secondary);
    margin-bottom: 6px;
}

.bootstrap-select > .btn,
.bootstrap-select.btn-group .btn .filter-option {
    color: var(--kg-text-primary);
}
.bootstrap-select > .dropdown-toggle.btn-default {
    border: 1px solid var(--kg-border-strong) !important;
    border-radius: var(--kg-radius-md);
    background: var(--kg-bg-card) !important;
    height: auto;
    padding: 11px 14px;
}


/* ---- Tables -------------------------------------------------------- */
.table {
    background: transparent;
    margin-bottom: 0;
}

.table > thead > tr > th {
    border-bottom: 1px solid var(--kg-border);
    color: var(--kg-text-secondary);
    font-weight: 500;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 14px 16px;
    background: transparent;
}

.table > tbody > tr > td {
    border-top: 1px solid var(--kg-border);
    padding: 16px;
    vertical-align: middle;
    color: var(--kg-text-primary);
    font-size: 14px;
}

.table > tbody > tr:hover > td {
    background: var(--kg-green-50);
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background: transparent;
}


/* ---- Status-Labels (Badges) --------------------------------------- */
.label, .badge {
    border-radius: 999px;
    padding: 4px 12px;
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0.01em;
}

.label-success, .badge-success { background: var(--kg-green-100); color: var(--kg-green-700); }
.label-danger,  .badge-danger  { background: #ffe5e3; color: var(--kg-danger); }
.label-warning, .badge-warning { background: #fff4e0; color: #b56500; }
.label-info,    .badge-info    { background: #e0efff; color: var(--kg-info); }
.label-default, .badge-default { background: var(--kg-bg-page); color: var(--kg-text-secondary); }


/* ---- Alerts ------------------------------------------------------- */
.alert {
    border: none;
    border-radius: var(--kg-radius-md);
    padding: 14px 18px;
    font-size: 14px;
}

.alert-success { background: var(--kg-green-100); color: var(--kg-green-700); }
.alert-danger  { background: #ffe5e3; color: var(--kg-danger); }
.alert-warning { background: #fff4e0; color: #b56500; }
.alert-info    { background: #e0efff; color: var(--kg-info); }


/* ---- Progress-Bars ------------------------------------------------ */
.progress {
    background: var(--kg-border);
    border-radius: 999px;
    height: 6px;
    box-shadow: none;
    overflow: hidden;
}
.progress-bar { box-shadow: none; }
.progress-bar.progress-bar-success { background: var(--kg-success); }
.progress-bar.progress-bar-danger  { background: var(--kg-danger); }
.progress-bar.progress-bar-warning { background: var(--kg-warning); }


/* ---- Sub-Menü unter Header ---------------------------------------- */
.navigation-button-container {
    background: transparent;
    margin: 24px 0 12px;
}

.navigation-button-container .btn {
    background: var(--kg-bg-card);
    border: 1px solid var(--kg-border) !important;
    color: var(--kg-text-primary);
    margin-right: 8px;
}
.navigation-button-container .btn:hover {
    background: var(--kg-bg-subtle);
    border-color: var(--kg-text-tertiary) !important;
}


/* ---- Container-Layout --------------------------------------------- */
#wrapper {
    background: var(--kg-bg-page);
    min-height: 100vh;
}

.content {
    padding-top: 24px;
}


/* ---- Modals ------------------------------------------------------- */
.modal-content {
    border: none;
    border-radius: var(--kg-radius-lg);
    box-shadow: var(--kg-shadow-lg);
}
.modal-header {
    border-bottom: 1px solid var(--kg-border);
    padding: 20px 24px;
}
.modal-body {
    padding: 24px;
}
.modal-footer {
    border-top: 1px solid var(--kg-border);
    padding: 16px 24px;
}


/* ---- Datatables --------------------------------------------------- */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin-bottom: 16px;
}
.dataTables_wrapper .dataTables_filter input {
    border: 1px solid var(--kg-border-strong);
    border-radius: var(--kg-radius-md);
    padding: 8px 12px;
    margin-left: 8px;
    font-size: 14px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 6px 12px;
    border-radius: var(--kg-radius-sm);
    border: 1px solid var(--kg-border) !important;
    background: var(--kg-bg-card) !important;
    color: var(--kg-text-primary) !important;
    margin: 0 2px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--kg-green-50) !important;
    border-color: var(--kg-green-600) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--kg-green-700) !important;
    border-color: var(--kg-green-700) !important;
    color: #fff !important;
}


/* ---- Drittmodul "multiple_companies" Switcher verstecken ---------- */
/* Wir rendern unseren eigenen im Profil-Dropdown im Apple-Look */
.navbar.header .navbar-nav.navbar-left {
    display: none !important;
}


/* ---- Einzelne Perfex-spezifische Anpassungen ---------------------- */
hr {
    border-top: 1px solid var(--kg-border);
    margin: 20px 0;
}

.font-medium { font-weight: 500; }
.bold { font-weight: 600; }

.dt-clickable tbody tr:hover { cursor: pointer; }


/* ---- Dropzone (Datei-Upload) -------------------------------------- */
.dropzone {
    border: 2px dashed var(--kg-border-strong);
    border-radius: var(--kg-radius-lg);
    background: var(--kg-bg-subtle);
    padding: 36px 24px;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.dropzone:hover {
    border-color: var(--kg-green-600);
    background: var(--kg-green-50);
}
