﻿@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');

:root {
    --h1-font-size: 1.5em;
    --h2-font-size: 1.25em;
    --h3-font-size: 1em;
    --h4-font-size: 1em;
    --njk-page-header-height: 50px;
    --njk-menubar-height: 3.5em;
    --njk-sidebar-width: 250px;
    --njk-bg-gradient-from: #3a0647;
    --njk-bg-gradient-to: #260567;
    --njk-bg-color: white;
    --njk-card-header-bg-color: #260567;
    --njk-card-header-color: white;
    --njk-icon-list-bg-color: #3a0647;
    --njk-icon-list-hover-color: #20f307;
    --njk-icon-list-color: white;
    --njk-form-control-font-size: 1em;
    --bs-nav-link-font-size: 0.9rem;
    --bs-body-font-size: 0.9em;
    --bs-card-cap-padding-y: 0;
    --bs-modal-padding: 0pt;
    --bs-modal-footer-gap: 1em;
    --bs-modal-footer-bg: transparent;
    --bs-modal-footer-border-width: 1px;
    --bs-modal-footer-border-color: darkgray;
}

/* Kendo overrides */

.k-input-solid {
    border-color: rgba(0, 0, 0, 0.18);
    color: #424242;
    background-color: #ffffff;
}

.k-checkbox {
    border-color: black;
}

/* =================================================== */

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
/*    height: 100%; */
/*    min-height: 100%; */
}

    body.secure {
    }

    body.not-secure {
        background-color: var(--njk-bg-gradient-from);
    }

main {
    flex: 1;
}

h1 {
    font-size: var(--h1-font-size);
    font-weight: bold;
}

h2 {
    font-size: var(--h2-font-size);
    font-weight: bold;
    margin-bottom: 0;
}

h3 {
    font-size: var(--h3-font-size);
    font-weight: bold;
}

h4 {
    font-size: var(--h4-font-size);
    font-weight: bold;
}


h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.page {
}

.page-header {
    background-color: var(--njk-bg-gradient-from);
    color: var(--njk-bg-color);
    height: var(--njk-page-header-height);
    width: 100%;
    top: 0px;
    position: sticky;
    border-bottom: 1px solid var(--njk-bg-color);
    display: flex;
    padding-left: 10px;
    padding-right: 10px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
}

    .page-header a {
        white-space: nowrap;
        text-decoration: none;
        color: white;
    }

.page-container {
    display: grid;
    position: relative;
    grid-template-columns: var(--njk-sidebar-width) 1fr;
    max-width: 100%;
}

.sidebar {
    background-image: linear-gradient(180deg, var(--njk-bg-gradient-from) 0%, var(--njk-bg-gradient-to) 70%);
    width: var(--njk-sidebar-width);
    max-width: var(--njk-sidebar-width);
    min-height: calc(100vh - var(--njk-page-header-height));
    overflow: auto;
}

    .sidebar .nav-item {
        font-size: 0.9rem;
        padding-bottom: 0.0rem;
    }

        .sidebar .nav-item a {
            color: var(--njk-bg-color);
            border-radius: 4px;
            height: 3rem;
            display: flex;
            align-items: center;
            line-height: 2rem;
        }

        .sidebar .nav-item .nav-link {
            padding-left: 0em;
        }

        .sidebar .nav-item a.active {
            background-color: rgba(255,255,255,0.25);
            color: white;
        }

        .sidebar .nav-item a:hover {
            background-color: rgba(255,255,255,0.1);
            color: white;
        }

    .sidebar .nav-link.level-2 {
        padding-left: 1em;
    }

    .sidebar .nav-link .oi,
    .sidebar .nav-link .fa,
    .sidebar .nav-link .far,
    .sidebar .nav-link .fas {
        width: 2rem;
        font-size: 1.1rem;
        vertical-align: text-top;
        top: -2px;
    }

.page-content {
    min-height: calc(100vh - var(--njk-page-header-height));
    max-height: calc(100vh - var(--njk-page-header-height));
    max-width: calc(100vw - var(--njk-sidebar-width));
    overflow: auto;
    display: flex;
    flex-direction: column;
}

    .page-content > .row {
        padding-top: 0.5em;
        margin-left: 0px;
        margin-right: 0px;
        padding-left: 1em;
        padding-right: 1em;
    }

        .page-content > .row > * {
            padding-left: 0px;
            padding-right: 0px;
        }

    .page-content > .height-content {
        height: calc(100vh - var(--njk-page-header-height));
        min-height: calc(100vh - var(--njk-page-header-height));
    }

    .page-content:has(.menubar) > .height-content {
        height: calc(100vh - var(--njk-page-header-height) - var(--njk-menubar-height));
        min-height: calc(100vh - var(--njk-page-header-height) - var(--njk-menubar-height));
    }

    .page-content > .menubar {
        top: 0px;
        position: sticky;
    }

.menubar {
    background-color: var(--njk-bg-gradient-from);
    color: var(--njk-bg-color);
    min-height: var(--njk-menubar-height);
    max-height: var(--njk-menubar-height);
    height: var(--njk-menubar-height);
    width: 100%;
    z-index: 9999;
    border-left: 1px solid var(--njk-bg-color);
}

    .menubar a,
    .menubar a:visited {
        color: white;
    }

        .menubar a:hover {
            color: yellow;
        }

    .menubar .navbar {
        color: var(--njk-bg-color);
    }

    .menubar .navbar-text {
        color: var(--njk-bg-color);
    }

    .menubar .navbar .nav-divider {
        border-left: 1px solid white;
    }
 
    .menubar .navbar .nav-link {
        color: var(--njk-bg-color);
    }

        .menubar .navbar .nav-link.active {
            font-weight: bold;
        }

        .menubar .navbar .nav-link.disabled {
            color: lightgray;
        }

.content-height {
    height: calc(100vh - 3.5em - 0.6em - 0.6em);
}

.content-width {
    --width: calc(100vw - var(--njk-sidebar-width));
}

.content .grid-container {
    height: 100%;
}

    .content .grid-container .title {
        height: 3.5em;
    }

    .content .grid-container .grid {
        height: calc(100% - 4.0em);
    }

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.accordion {
    --bs-accordion-btn-padding-y: 0.5em;
}

.btn {
    --bs-btn-font-size: 0.9rem;
}

.card-header {
    background-color: var(--njk-card-header-bg-color);
    color: var(--njk-card-header-color);
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-summary-errors {
    color: red;
}

.field-validation-error {
    color: red;
}

.validation-message {
    color: red;
}

/* ------------------------------------------------------------- */
.nav.nav-tabs {
    border-bottom: 1px solid var(--njk-card-header-bg-color);
}

    .nav.nav-tabs .nav-item {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
        color: darkgray;
        border-top: 1px solid var(--njk-card-header-bg-color);
        border-left: 1px solid var(--njk-card-header-bg-color);
        border-right: 1px solid var(--njk-card-header-bg-color);
        border-bottom: 2px solid transparent;
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        display: flex;
        align-items: center;
        margin-right: 2px;
    }

        .nav.nav-tabs .nav-item.active {
            background-color: var(--njk-card-header-bg-color);
            color: var(--njk-card-header-color);
            border-bottom: 2px solid transparent;
        }

/* ------------------------------------------------------------- */

.tile-menu {
    display: flex;
}

    .tile-menu .tile {
        display: flex;
        min-width: 75px;
        min-height: 75px;
        padding: 10px;
        margin: 5px;
        background-image: linear-gradient(180deg, var(--njk-bg-gradient-from) 0%, var(--njk-bg-gradient-to) 70%);
        color: var(--njk-bg-color);
        text-align: center;
        align-items: center;
        cursor: pointer;
        text-decoration: none;
        font-size: 1.5em;
    }

        .tile-menu .tile a {
            color: white;
            text-decoration: none;
        }

        .tile-menu .tile.medium {
            width: 150px;
            height: 150px;
        }

            .tile-menu .tile.medium a {
                width: 100%;
            }

/* ------------------------------------------------------------- */
.form-control {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    font-size: var(--njk-form-control-font-size);
}

.form-row {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid #f3f0f0;
}

    .form-row.no-border {
        border-bottom: 1px solid transparent;
    }

    .form-row label {
        padding-top: 0.35em;
    }

/* ------------------------------------------------------------- */
.widget-panel {
}

    .widget-panel .card-header {
        background-color: var(--njk-card-header-bg-color);
        color: var(--njk-card-header-color);
    }

        .widget-panel .card-header .btn {
            margin-left: 2px;
            margin-right: 2px;
            display: flex;
            background-color: yellow;
        }

        .widget-panel .card-header h2 {
            display: flex;
            float: left;
            text-align: start;
            font-size: 1em;
            font-weight: normal;
        }

            .widget-panel .card-header h2 .icon {
                margin-right: 10px;
            }

        .widget-panel .card-header .card-toolbar {
            display: flex;
            float: right;
            text-align: end;
        }

            .widget-panel .card-header .card-toolbar .btn {
                width: 1rem;
                height: 1rem;
            }

                .widget-panel .card-header .card-toolbar .btn[data-bs-toggle="collapse"] {
                    background: #1dc9b7;
                    border-radius: 50%;
                    padding: 0;
                }

                .widget-panel .card-header .card-toolbar .btn[data-action="panel-fullscreen"] {
                    background: #ffc241;
                    border-radius: 50%;
                    padding: 0;
                }

    .widget-panel .card-footer .btn {
        margin-left: 2px;
        margin-right: 2px;
    }

/* ------------------------------------------------------------- */
/* icon menu with icons */

.icon-list {
    margin: 0 auto;
    display: block;
    font-size: 0;
    padding: 1rem;
    text-align: center;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

    .icon-list > li {
        display: inline-block;
        text-align: center;
        padding: 0;
    }

.icon-list-item {
    height: 7rem;
    min-width: 7rem;
    display: block;
    text-decoration: none;
    font-weight: normal;
    color: var(--njk-icon-list-color);
    background-color: var(--njk-icon-list-bg-color);
    margin: 10px;
    border: 3px solid transparent !important;
    outline: none;
    padding: 10px;
    border-radius: 4px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

    .icon-list-item:hover {
        border: 3px solid var(--njk-icon-list-hover-color) !important;
        color: var(--njk-icon-list-hover-color);
    }

    .icon-list-item:active {
        border: 3px solid var(--njk-icon-list-hover-color) !important;
        color: var(--njk-icon-list-hover-color);
    }

.icon-list-icon {
    font-size: 3rem;
    color: var(--njk-icon-list-color) !important;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.icon-list-name {
    text-align: center;
    font-size: 0.8125rem;
    text-overflow: ellipsis;
    display: block;
    white-space: nowrap;
    overflow: hidden;
}

/* ------------------------------------------------------------- */

table th.currency,
table td.currency {
    text-align: right;
}

table th.percentage,
table td.percentage {
    text-align: right;
}

table th.number,
table td.number {
    text-align: right;
}
