html, body {
    height: 100%;
    font-size: 14px;
    margin: 0;
}

/* Default Page Layout -----------------------------*/

.apo-center600-wrapper {
    max-width: 600px; 
    margin: 40px auto; /* center horizontally */
    padding: 20px;
}

.apo-center720-wrapper {
    max-width: 720px; 
    margin: 40px auto; /* center horizontally */
    padding: 20px;
}

.apo-center1024-gridwrapper {
    max-width: 1024px;
    margin: 10px auto; /* center horizontally */
    padding: 5px;
}

.page-wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}

header, footer {
    flex: 0 0 auto; /* fixed height */
}

.content {
    flex: 1 1 auto; /* take remaining space */
    overflow: auto; /* allow scrolling if needed */
    width: auto; /* do NOT stretch horizontally */
    max-width: inherit; /* respect container width */
}

/* End Page Layout --------------------------------*/
/* objects */

.status-panel-primary {
    background-color: var(--kendo-color-primary-subtle);
    /* color: var(--kendo-color-primary); /* optional for text color */
    color: var(--kendo-color-on-app-surface, #212121); /* optional for text color */
    padding: 1px; /* optional styling */
    border-radius: 4px; /* optional */
    width: calc(50%);
    min-width: 500px;
    text-align: center;
}
.status-panel-secondary {
    background-color: var(--kendo-color-primary);
    /* color: var(--kendo-color-primary); /* optional for text color */
    color: var(--kendo-color-on-primary, #ffffff); /* optional for text color */
    padding: 1px; /* optional styling */
    border-radius: 4px; /* optional */
    width: calc(50% - 210px);
    min-width: 500px;
    text-align: left;
}

/* Status message Basic blink: fades opacity in/out */
@keyframes blinkFade {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


/* Background-only blink (4 iterations) */
@keyframes blinkBgColor {
    0%, 100% {
        background-color: var(--kendo-color-primary-subtle, #f5f5f5);
    }

    50% {
        background-color: #ffe08a;
    }
    /* e.g., amber highlight */
}

/* blink twice per second (1s cycle), continuous */
.apo-status-blink {
    animation: blinkBgColor 1s linear 8 forwards; /*infinite;*/
    font-weight: 700;
}

/* Optional: a slower blink */
.apo-status-blink-slow {
    animation: blinkFade 1.6s linear infinite;
    font-weight: 700;
}

/* Kendo toolbars use flex in modern themes; margin-left:auto pushes to the right */
.k-grid-header th .k-column-title {
    white-space: normal !important;
    word-wrap: break-word;
    line-height: 1.2em;
}

/* Right-side container for toolbar badges */
.k-grid-toolbar .toolbar-right {
    margin-left: auto;
    margin-left: auto; /* push the whole group to the right */
    display: inline-flex; /* keep badges in a row */
    gap: 8px; /* space between badges */
    align-items: center;
}

/* Optional: make sure toolbar is flex in older themes */
.k-grid-toolbar {
    display: flex;
    align-items: center;
}

.apo-badge {
    margin-left: auto;
    /*display: none;*/ /* hidden until we have a value */
    background: var(--kendo-color-primary-subtle); /*#d92d20;*/ /* red */
    color: var(--kendo-color-primary); /*#fff;*/ /* white text */
    border-radius: 9999px;
    padding: 0.25rem 0.6rem;
    font-weight: 600;
    font-size: 1.0em;
    line-height: 2;
    white-space: nowrap;
    /* Optional: add Kendo badge classes if you want theme-consistent look */
    /* Using raw CSS here per your request */
}

/* Kendo ------------------------------------------*/
/* Grid */

.k-grid {
    height: 100%;
    width: auto;
}


.k-grid tr.amount-positive td {
    /* subtle tint like the pager selected item */
    background-color: var(--kendo-color-primary-subtle);
    color: var(--kendo-color-primary-on-subtle, inherit); /* optional text color token */
}

/* Zorg voor voldoende ruimte voor waarde + caret */



/* Shrink the dropdown arrow button */

/* Fix the dropdown arrow spacing in Kendo DropdownList / ComboBox */
.k-dropdownlist .k-input-button.k-button,
.k-combobox .k-input-button.k-button {
    width: 32px !important;
    min-width: 32px !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- FIXED WIDTH FOR KENDO GRID PAGER DROPDOWN --- */

/* 1. Keep the fixed width */
.k-pager-sizes .k-dropdownlist,
.k-pager-sizes .k-picker {
    width: 96px !important;
    min-width: 96px !important;
    box-sizing: border-box;
}

/* 2. Ensure the visible text NEVER collapses to width 0 */
.k-pager-sizes .k-input-value-text {
    flex-shrink: 0 !important; /* <-- CRITICAL FIX */
    min-width: 5ch !important; /* enough space for digits */
    text-align: center; /* optional but recommended */
}

/* Proper balanced centering inside fixed-width pager dropdown */
.k-pager-sizes .k-dropdownlist .k-input-inner {
    padding-left: 0.40rem !important;  /*<-- THIS IS THE FIX*/ 
    padding-right: 2.25rem !important;  /*room for caret*/ 
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;  /*let padding do the alignment*/ 
    box-sizing: border-box;
}

/*Grid Image buttons*/
    .k-grid tbody .k-button, .k-ie8 .k-grid tbody button.k-button {
    min-width: 40px !important;
    min-height: 30px;
    margin: 0px !important;
}

/*knoppen in grid wat smaller maken (40 ipv default 64)*/
.k-grid .k-header .k-button, .k-ie8 .k-grid k-header button.k-button {
    min-width: 40px !important;
    min-height: 30px;
    margin: 0px !important;
}


/* Target the triangle span inside dirty cells */
.k-grid td.k-dirty-cell .k-dirty {
    border-top-color: var(--kendo-color-primary) !important; /* var(--kendo-color-error) top side of triangle */
    border-left-color: var(--kendo-color-primary) !important; /* var(--kendo-color-error) left side of triangle */
}


.k-grid td.k-dirty-cell {
    border: 1px solid var(--kendo-color-primary) !important; /* var(--kendo-color-error) subtle tint */
    background-color: transparent; /* or omit this line entirely */
    color: var(--kendo-color-primary) !important; /* keep text color unchanged */
}



/*knoppen in grid wat smaller maken (40 ipv default 64)*/

.k-command-cell {
    padding-inline: 0.25rem !important;
}

/* Theme colors for Grouped rows*/
.k-grid .k-grouping-row {
    background-color: var(--kendo-color-primary-subtle);
    color: var(--kendo-color-primary) !important;
}

/* Ensure the expand/collapse icon and group text adopt the theme color */
    .k-grid .k-grouping-row .k-icon,
    .k-grid .k-grouping-row .k-link,
    .k-grid .k-grouping-row a {
        color: var(--kendo-color-primary);
    }


/* TEMP: force a red outline on the exact svg to prove override takes effect */
/*td.k-command-cell button.k-icon-button span.k-svg-icon > svg {
    outline: 2px solid red !important;
}
*/

/* OPTIONAL: scale the button svg icons in a grid row */
/*td.k-command-cell button.k-icon-button span.k-svg-icon {
    transform: scale(1.0);*/  /*30% bigger*/
    /*transform-origin: center;
}*/

.apo-button {
    background-color: transparent !important;
    max-width: 45px !important;
    /*border: 1px solid outset !important;*/
    /*    margin-left: 1px !important; */
}

.apo-edit svg {
    fill: #006eb9 !important;
}

.apo-delete svg {
    fill: #ff0000 !important;
}
.apo-download svg {
    fill: #006eb9 !important;
}
.apo-upload svg {
    fill: blue !important;
}
.apo-upload-disabled svg {
    fill: var(--kendo-color-on-surface-subtle, #ccc) !important;
}
.apo-cancel svg {
    fill: red !important;
}
.apo-check-circle svg {
    fill: #2bb83d !important;
}
.apo-exit svg {
    fill: darkseagreen !important;
}
.apo-save svg {
    fill: blue !important;
}

.apo-grid-button {
    color: black !important;
    margin-left: 3px !important;
}

.apo-add-button {
    color: blue !important;
    margin-left: 3px !important;
}

.apo-hyperlink-open-button {
    color: green !important;
    margin-left: 3px !important;
}

.apo-email-button {
    color: darkseagreen !important;
    margin-left: 3px !important;
}

.apo-preview-button {
    color: #006eb9 !important;
    margin-left: 3px !important;
}

.apo-table-row-insert-below-button {
    color: maroon !important;
    margin-left: 3px !important;
}

.apo-table-unmerge-button {
    color: #006eb9 !important;
    margin-left: 3px !important;
}

.apo-copy-button {
    color: #006eb9 !important;
    margin-left: 3px !important;
}

.apo-notification-button {
    color: #e2840a !important;
    margin-left: 3px !important;
}

.apo-inbox-button {
    color: #006eb9 !important;
    margin-left: 3px !important;
}

.apo-track-changes-apoept-button {
    color: #2bb83d !important;
    margin-left: 3px !important;
}

.apo-check-circle-button {
    color: #2bb83d !important;
    margin-left: 3px !important;
}

.apo-close-circle-button {
    color: #b50000 !important;
    margin-left: 3px !important;
}
.apo-signer-button {
    color: darkred !important;
    margin-left: 3px !important;
    margin-top: 3px !important;
    z-index: 10000 !important;
}

/* End Grid */

/* Upload */

/* Background just behind the pdf icon */
.k-upload .k-svg-i-file-pdf {
    background-color: #ffe5e5; /* light red bg behind icon */
    color: #E40012; /* icon itself stays red */
    border-radius: 4px; 
    padding: 2px; 
}

/* Background just behind the txt/Word icon */
.k-upload .k-svg-i-file-txt {
    background-color: #e5e5ff; /* light blue bg behind icon */
    color: #185ABD; /* icon itself stays blue */
    border-radius: 4px;
    padding: 2px; 
}

/* Background just behind the data/Excel icon */
.k-upload .k-svg-i-file-data {
    background-color: #e5ffe5; /* light blue bg behind icon */
    color: #107C41; /* icon itself stays blue */
    border-radius: 4px; 
    padding: 2px; 
}

/* Buttons */
/*.k-button {
    margin: 5px 10px 5px 0px;
}
*/
.k-button:not(.k-button.k-tool, .k-button.k-flat, .k-icon-button, .k-button-icon) {
    margin: 5px 10px 5px 0px;
    min-width: 80px;
}

/* Mutation Buttons */

/* Make Default Kendo Grid Edit & Delete buttons the same width */


/* Make Edit, Save, Delete, Cancel all same width */
.k-grid .k-command-cell button.k-button:not(:has(.apo-button)) {
    min-width: 100px !important;
    justify-content: center;
    display: inline-flex; /* ensures width applies */
}

.apo-edit-buttongroup {
    position: absolute;
    /*position: fixed;*/
    left: 0;
    bottom: 0;
    right: 0;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
    /*height: 100px;*/
}

/* End Buttons */

/* Inputs */


/* Set the overall height of the NumericTextBox in an editable grid (cell) */
.k-edit-cell .k-numerictextbox {
    height: 30px !important; /* Fixed height */
    display: flex;
    align-items: center;
}

/* Spinner container fills the 30px height */
.k-edit-cell .k-numerictextbox .k-input-spinner {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    align-items: stretch;
    overflow: hidden;
}

/* Each button takes half the height */
    .k-edit-cell .k-numerictextbox .k-input-spinner .k-button {
        flex: 1 1 50%;
        height: auto !important;
        min-height: 0;
        padding: 0;
        font-size: 10px; /* Optional */
        line-height: normal;
    }

/* End Inputs */

/* Windows */

.apo-editwindow-controlgroup {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 0;
    bottom: 100px;
    overflow: auto;
}
/* End Windows*/


/* Menu's */

/* === Navbar height (adjust to taste) === */
:root {
    --navbar-height: 48px;
}

.brand-logo {
    height: var(--navbar-height);
    width: auto;
    object-fit: contain;
    display: block;
}

/* Make both top-level menus align to the left inside their wrappers */
.main-menu-wrap > .k-menu.k-menu-horizontal,
.account-menu-wrap > .k-menu.k-menu-horizontal {
    display: flex !important;
    align-items: center;
    flex-wrap: nowrap;
    gap: .5rem; /* optional */
    justify-content: flex-start !important; /* avoid centering */
    margin: 0 !important; /* kill any auto margins that can center a UL */
    border: 0;
    background: transparent;
    height: var(--navbar-height);
}

/* Vertically center menu links and unify clickable height */
.main-menu-wrap .k-menu.k-menu-horizontal > .k-item > .k-link,
.account-menu-wrap .k-menu.k-menu-horizontal > .k-item > .k-link {
    display: flex;
    align-items: center;
    height: var(--navbar-height);
    line-height: var(--navbar-height);
    padding-top: 0;
    padding-bottom: 0;
}

/* Ensure dropdowns (popups) are not stretched */
.k-menu-popup .k-link.k-menu-popup .k-link {
    height: auto;
    line-height: normal;
}

/* End Menu's */

/*@media (min-width: 768px) {
  html {
    font-size: 0.9em;
  }
}
*/
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
    margin-bottom: 60px;
    background-color: #f8f9fa;
}


img.qr-code {
    width: 200px;
    height: 200px;
    object-fit: contain;
}

/*Grid op volledige tab*/
.apo-grid-fulltab {
    float: left;
    height: 100%;
    width: 100%;
}


/* Base Navbar Styling */
/*.navbar {
    background-color: #aabed1;*/ /* #2c3e50; */ /* Dark blue-gray */
    /*padding: 0.75rem 1.5rem;
    display: flex;
    flex-direction: row !important;*/ /* Ensures horizontal layout */
    /*justify-content: space-between;
    align-items: center;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}*/

/* Logo or Brand */
/*.navbar .navbar-brand {
    color: #ecf0f1;
    font-size: 1.5rem;
    font-weight: 600;
    text-decoration: none;
}*/

/* Navigation Links */
/*.navbar .nav-links {
    display: flex;
    gap: 1.5rem;
}

.navbar .nav-links a {
    color: #ecf0f1;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.3s ease;
}

.navbar .nav-links a:hover {
    color: #1abc9c;*/ /* Teal highlight on hover */
/*}*/

/* Responsive Toggle Button (for mobile) */
/*.navbar-toggle {
    display: none;
    flex-direction: row;
    cursor: pointer;
}

.navbar-toggle span {
    height: 3px;
    width: 25px;
    background: #ecf0f1;
    margin: 4px 0;
    transition: 0.4s;
}*/

/* Responsive Behavior */
/*@media (max-width: 768px) {
    .navbar .nav-links {
        display: none;
        flex-direction: row !important;
        width: 100%;
        background-color: #34495e;
        position: absolute;
        top: 60px;
        left: 0;
        padding: 1rem;
    }

        .navbar .nav-links.active {
            display: flex;
        }

    .navbar-toggle {
        display: flex;
    }
}*/


/*.navbar {
    background-color: #0d6efd;*/   /* werkt niet, is brandeis blue. >> Werkt wel als je alleen deze style toepast. De andere styles komen uit een bootstrap framework*/
    /*color: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

.navbar .navbar-nav .nav-link,
.navbar .navbar-brand {
    color: black !important;
}

.navbar .navbar-nav .nav-link:hover {
    color: #ffd700 !important;*/ /*gold hover*/
/*}


.navbar-brand img {
    height: 10px;
    margin-right: 10px;
}*/


.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}



/*box-col wrappers om regels in Windows en (EditForms)*/
.box-multirow-col {
    min-height: 1.827em;
}

.box-col, .box-multirow-col, .box-upload-col, .box-grid-col {
    float: left;
}

.box-col, .box-multirow-col, .box-upload-col {
    width: 100%;
    padding-top: 2px;
    padding-bottom: 2px;
}




/* Professional custom button styles */
/*.btn-custom {
    color: #fff;
    background-color: #2563eb;*/ /* A modern blue */
    /*border: none;
    border-radius: 0.375rem;
    padding: 0.5rem 1.25rem;
    font-size: 1rem;
    font-weight: 500;
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.08);
    transition: background 0.2s, box-shadow 0.2s, transform 0.1s;
    text-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

    .btn-custom:hover,
    .btn-custom:focus {
        background-color: #1d4ed8;
        box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15);
        transform: translateY(-2px) scale(1.03);
        color: #fff;
        text-decoration: none;
        outline: none;
    }

    .btn-custom:active {
        background-color: #1e40af;
        box-shadow: 0 2px 4px rgba(37, 99, 235, 0.10);
        transform: none;
    }

.btn-custom-secondary {
    color: #2563eb;
    background-color: #fff;
    border: 1px solid #2563eb;
    font-weight: 500;
    transition: background 0.2s, color 0.2s, border 0.2s;
}

    .btn-custom-secondary:hover,
    .btn-custom-secondary:focus {
        background-color: #2563eb;
        color: #fff;
        border-color: #1d4ed8;
    }

    .btn-custom-secondary:active {
        background-color: #1e40af;
        color: #fff;
        border-color: #1e40af;
    }*/
