:root {
    --base-darker: #1b2228;
    --base-dark-1: #21272c;
    --base-dark: #272c31;
    --base-medium: #30373e;
    --base-light: #3c454d;
    --base-light-1: #58626a;
    --secondary: #aaa;
    --secondary-light-1: #ccc;
    --secondary-dark-1: #999;
    --highlight: #2eaef0;
    --highlight-light-1: #62c2f3;
    --highlight-light-2: #96d6f7;
    --highlight-light-3: #caeafb;
    --highlight-light-4: #daeffb;
    --highlight-dark-1: #2795cd;
    --highlight-dark-2: #207cab;
    --highlight-dark-3: #1a6389;
    --highlight-dark-4: #134a66;
    --highlight-dark-5: #0d3144;
    --highlight-dark-6: #061822;
    --text-default: #30373e;
    --text-light: #777;
    --text-lighter: #bbb;
    --success: #31bd40;
    --success-light-1: #44c852;
    --error: #dc3545;
    --error-light-1: #e84c5b;
    --alert: #dcb235;
    --alert-dark-1: #cca328;
    --warning: #db7b26;
    --warning-light-1: #f0811e;
    --background-default: #d5d8da;
    --background-light: #ebeced;
    --background-lighter: #fff;
    --transition-duration-short: .3s;
    --transition-function-default: ease;
    --sidebar-width: 280px;
    --sidebar-negative-width: -280px;
}

@font-face {
    font-family: "Fderivs";
    src: url("/font/FderivsLogo.ttf") format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: block;
}

@font-face {
    font-family: "Inter";
    src: url(../font/Inter-VariableFont_opsz_wght.ttf) format('truetype');
    font-weight: 500;
    font-style: normal
}

@font-face {
    font-family: "Inter";
    src: url(../font/Inter-Italic-VariableFont_opsz_wght.ttf) format('truetype');
    font-weight: 500;
    font-style: italic
}

.fdlearn-theme {
    --highlight: #cbae5e;
    --highlight-light-1: #e2c881;
    --highlight-light-2: #fce6a9;
    --highlight-dark-1: #af9241;
    --highlight-dark-2: #937729;
    --highlight-backdrop: rgba(203, 174, 94, .1);
    --highlight-shadow: rgba(122, 96, 23, .8);
    --gradient-main: #cbae5e;
}

* {
    box-sizing: border-box;
}

html, body {
    font-family: "Segoe UI", "Helvetica Neue", "Helvetica", Arial, sans-serif;
    font-size: 16px;
    min-height: 100%;
    background-color: var(--background-default);
    color: var(--text-default);
    margin: 0;
    scroll-behavior: smooth;
    font-weight: 400;
    line-height: 1.5;
}

.nav {
    padding: 0;
}



.fderivs-font, .fderivs-text {
    font-family: "Fderivs", Arial, Helvetica, sans-serif;
}

.fdlearn-logo {
    font-family: "Fderivs", Arial, Helvetica, sans-serif;
    font-size: 1em;
    font-weight: 500;
    white-space: nowrap;
}

    .fdlearn-logo .function {
        font-size: 0.82em;
        letter-spacing: 1px;
    }

    .fdlearn-logo .learn {
        font-size: 1.15em;
        margin-left: -0.1em;
        font-weight: 500;
    }

input[type="checkbox"] {
    width: 1.2rem;
    height: 1.2rem;
}

.page {
    width: 100%;
    margin-top: 56px;
}

.container {
    overflow: hidden;
}

.page main > article,
.page-article {
    background: var(--background-light);
    margin: 0 auto;
    padding: 1rem 1rem;
    position: relative;
}

.page-article {
    font-size: 1.2rem;
    line-height: 2rem;
}

    .page-article p {
        margin-bottom: 2rem;
        text-indent: 2rem;
    }

    .page-article.unindented {
        text-indent: 0;
    }

.padding-small {
    padding: 1.5rem !important;
}

.site-info {
    color: var(--background-lighter);
    height: 100%;
    display: flex;
    align-content: center;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    text-align: center;
}

.content {
    padding: .8rem;
}

    .content.home {
        padding: 0;
    }

a {
    cursor: pointer;
    text-decoration: none;
}

    a, a:visited {
        color: var(--highlight);
    }

        a:hover, a:active,
        a:not([href]):not([class]):hover {
            text-decoration: underline;
            color: var(--highlight-light-1)
        }

.button {
    display: inline-block;
    padding: .5rem 1rem;
    border: 1px solid var(--highlight);
    color: var(--highlight);
    text-align: center;
    cursor: pointer;
}

[type="button"], [type="reset"], [type="submit"], button {
    -webkit-appearance: button;
}

button, select {
    text-transform: none;
}

button, input, optgroup, select, textarea {
    margin: 0;
    margin-left: 0px;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button {
    border-radius: 0;
}

p {
    margin-top: 0;
}

a:not([href]):not([class]), a:not([href]):not([class]):hover {
    color: inherit;
}

* {
    box-sizing: border-box;
}

.button.strong {
    font-weight: bold;
    border-width: 2px;
}

.button:disabled {
    border-color: var(--secondary-dark-1);
    color: var(--secondary-dark-1);
}

.button:hover {
    background: var(--highlight);
    color: var(--background-lighter);
    text-decoration: none;
}

.button:disabled:hover {
    background: transparent;
    color: var(--secondary-dark-1);
}

.button.btn-primary {
    background-color: var(--highlight);
    color: var(--background-lighter);
}

.button.btn-contrast {
    color: #fff;
    background-color: transparent;
    border-color: #fff;
    text-shadow: 2px 3px 2px rgba(0, 0, 0, .85);
    box-shadow: 2px 2px 3px rgba(0, 0, 0, .75) inset, 2px 2px 3px rgba(0, 0, 0, .7);
}

    .button.btn-contrast:hover {
        background: #fff;
        color: #000;
    }

.button.btn-bolder {
    border-width: 3px;
    font-weight: bold;
    padding: 1rem 2rem;
}

.button.btn-primary:disabled {
    border-color: var(--secondary-dark-1);
    background-color: var(--secondary-dark-1);
}

.button.btn-primary:hover {
    background-color: var(--highlight-light-1);
    border-color: var(--highlight-light-1);
}

.button.btn-primary.no-action:hover {
    background-color: var(--highlight);
    border-color: var(--highlight);
    color: var(--background-lighter);
    cursor: default;
}

.button.btn-primary:disabled:hover {
    border-color: var(--secondary-dark-1);
    background-color: var(--secondary-dark-1);
    color: var(--background-lighter);
}

.button.btn-secondary {
    background-color: var(--secondary);
    border-color: var(--secondary);
    color: var(--background-default);
}

    .button.btn-secondary:hover {
        background-color: var(--secondary-dark-1);
        border-color: var(--secondary-dark-1);
    }

.button.single {
    width: 100%;
}

.button + .button {
    margin-left: .5rem;
}

.arrow-button {
    height: 3rem;
    width: 3rem;
    background: transparent;
    border-radius: 50%;
    border: 1px solid #fff;
    color: #fff;
    font-weight: 100;
    font-size: 1.3rem;
    transition: 1s;
    text-align: center;
    text-shadow: 2px 3px 3px rgba(20, 20, 20, .65);
    box-shadow: 2px 4px 3px rgba(20, 20, 20, .5);
}

.styled-button {
    text-shadow: 2px 5px 2px rgba(20, 20, 20, .7);
    box-shadow: 2px 5px 2px rgba(20, 20, 20, .7);
    border: 3px solid #fff;
    font-weight: 500;
    font-size: 1.6rem;
    bottom: 1.2rem;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    padding: 0 0;
    list-style: none;
    margin-bottom: 0;
    z-index: 1;
    position: relative;
}

.breadcrumb-item + .breadcrumb-item {
    padding-left: .5rem;
}

    .breadcrumb-item + .breadcrumb-item::before {
        float: left;
        padding-right: .5rem;
        color: #6c757d;
        content: "/";
    }

.breadcrumb-item.active,
.breadcrumb-item.active a {
    color: #6c757d;
}

.related-link {
    font-size: .85rem;
    color: var(--secondary-dark-1);
}

article {
    text-align: justify;
}

.page-header {
    font-size: 2rem;
    margin: 0 0 1rem;
    padding: 0;
    padding-bottom: 1rem;
    color: var(--text-default);
    border: none;
    font-weight: 500;
    position: relative;
    border-bottom: 2px solid var(--secondary-light-1);
}

.breadcrumb + .page-header {
    margin-top: .75rem;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: .5rem;
    font-weight: 500;
    line-height: 1.2;
}

.subtitle {
    font-weight: 400;
    line-height: 1;
    color: var(--text-light);
    font-size: .65em;
    display: block;
}

.caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 2px;
    vertical-align: middle;
    border-top: 4px solid;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

.pull-left {
    float: left !important;
}

.pull-right {
    float: right !important;
}

.pull-none {
    float: none !important;
}

.login-page {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 100vh;
    background-color: var(--base-darker);
}

.table-container {
    width: 100%;
    overflow-x: auto;
}

.full-page {
    height: calc(100vh - 88px - 40px - 48px - 56px);
}

.alert-message {
    width: 100%;
    height: 100%;
    text-align: center;
    font-size: 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.table-area {
    height: auto;
}

.devonly {
    color: var(--alert);
}

.row-loading .loading-display {
    font-size: .25rem;
    justify-content: right !important;
    padding-right: 1rem;
}

.controls .search-area {
    display: flex;
    justify-content: space-between;
    align-content: center;
    margin-bottom: 1rem;
}

    .controls .search-area .field-input {
        width: 100%;
        margin-right: 2rem;
    }

.form-floating {
    position: relative;
}

    .form-floating > .form-control::placeholder {
        color: transparent;
    }

.form-control::placeholder {
    color: #6c757d;
    opacity: 1;
}

.form-floating > .form-control,
.form-floating > .form-select {
    line-height: 1.25;
}

.form-control {
    display: block;
    width: 100%;
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #212529;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: .25rem;
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

button, input, optgroup, select, textarea {
    margin: 0;
    font-family: inherit;
}

.form-control.required + .label::after {
    content: '*';
    color: var(--highlight-dark-1);
    margin-left: 2px;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    opacity: .65;
}

.form-floating > label {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    padding: 1rem .75rem;
    pointer-events: none;
    border: 1px solid transparent;
    transform-origin: 0 0;
    transition: opacity .1s ease-in-out,transform .1s ease-in-out;
}

.form-floating > .form-control:focus,
.form-floating > .form-control:not(:placeholder-shown) {
    padding-top: 1.625rem;
    padding-bottom: .625rem;
}

.form-floating > .form-control {
    padding: 1rem .75rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

label {
    display: inline-block;
}

.modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1rem;
    border-bottom: 1px solid #dee2e6;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: rgb(222, 226, 230);
    border-top-left-radius: calc(.3rem - 1px);
    border-top-right-radius: calc(.3rem - 1px);
}

.modal-footer {
    display: flex;
    flex-wrap: wrap;
    flex-shrink: 0;
    align-items: center;
    justify-content: flex-end;
    padding: .75rem;
    border-top: 1px solid #dee2e6;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: rgb(222, 226, 230);
    border-bottom-right-radius: calc(.3rem - 1px);
    border-bottom-left-radius: calc(.3rem - 1px);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: #212529;
    --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
    --bs-table-active-color: #212529;
    --bs-table-active-bg: rgba(0, 0, 0, 0.1);
    --bs-table-hover-color: #212529;
    --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
    width: 100%;
    margin-bottom: 1rem;
    color: #212529;
    vertical-align: top;
    border-color: #dee2e6;
}

table {
    caption-side: bottom;
    border-collapse: collapse;
}

.table > thead {
    vertical-align: bottom;
}

.table-bordered > :not(caption) > * {
    border-width: 1px 0;
}

tbody, td, tfoot, th, thead, tr {
    border-color: inherit;
    border-style: solid;
    border-width: 0;
}

.table-bordered > :not(caption) > * > * {
    border-width: 0 1px;
}

.table > :not(caption) > * > * {
    padding: .5rem .5rem;
    background-color: var(--bs-table-bg);
    border-bottom-width: 1px;
    box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
}

th {
    text-align: inherit;
    text-align: -webkit-match-parent;
}

.controls .search-area .form-floating {
    margin: 0 !important;
}

.controls .button {
    white-space: nowrap;
}

.controls {
    border-bottom: 1px solid #ccc;
    padding-bottom: .2rem;
    margin-bottom: .75rem;
}

.small,
a.small[href] {
    font-size: .85rem;
    color: #999;
    margin-left: .5rem;
}

.danger-text {
    color: var(--error);
}

.danger-action {
    color: var(--error);
}

.alert-action {
    color: var(--alert);
}

.success-action {
    color: var(--success);
}

.muted-action {
    color: gray;
}

.map-frame {
    border: 0;
}

.article-video-iframe {
    padding: 56.25% 0 0 0;
    position: relative;
}

    .article-video-iframe iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

@media (min-width: 960px) {
    .content {
        padding: 1.5rem;
    }

    .page main > article,
    .page-article {
        width: 80vw;
        padding: 3rem;
    }

    .page .main-section {
        width: 100%;
    }

    .breadcrumb {
        justify-content: end;
    }

        .breadcrumb + .page-header {
            margin-top: -24px;
        }

    .related-link {
        text-align: right;
        font-size: .8rem;
    }

    .subtitle {
        display: inline;
    }

    .page-header {
        margin: 0 0 1.5rem;
        font-size: 2.4rem;
    }

    .full-page {
        height: calc(100vh - 88px - 40px - 48px - 56px - 56px);
    }

    .table-area {
        height: calc(100vh - 56px - 1.5rem - 65px - 3rem - 3rem - 56px);
    }

    .filtered-report-area {
        height: calc(100vh - 56px - 1.5rem - 65px - 3rem - 3rem - 56px - 56px - 1.5rem);
    }
}

@media (max-width: 768px) {
    .padding-small {
        padding: .5rem 0rem !important;
    }

    .controls .search-area {
        display: block;
    }

    .controls .field-input {
        margin-bottom: 1rem;
    }

    .controls .button {
        width: 100%;
    }
}
