/* Variables */
/* Note - all colours should be set in their respective light/dark mode css files */
:root {
    /* Bootstrap breakpoints */
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
}



/* Body */

body {
    font-family: 'Open Sans', sans-serif;
    font-size:0.875rem;
    color:var(--bg-text);
    background:var(--bg-white);
}



/* Header */

.header {
    position:sticky;
    top:0;
    margin-left:0; /* Changes at breakpoint */
    right:0;
    background:var(--bg-white);
    border-bottom:thin solid var(--bg-border);
    padding:0.65rem;
    z-index:1000;
    transition: margin-left 0.25s ease;
}

.header.collapsed {
    margin-left:0; /* Changes at breakpoint */
    transition: margin-left 0.25s ease;
}

.header .expand-contract i {
    cursor:pointer;
}

.header-search {
    display:none;
    align-items: center;
    gap:1.5rem;
}

.header-search input[type=search] {
    height:auto;
    border:none;
    background:transparent;
    padding:0.5rem 0rem 0.5rem 1rem;
    font-size:0.9rem;
}

.header-search .search-container {
    width:21rem;
    border-radius:0.3125rem;
    display:flex;
    align-items: center;
}

.header-search .search-container i {
    font-size:0.7rem;
}

.header-search .search-container .clear-input {
    display: none;
}

.header-search .search-container.active {
    background:var(--bg-light-grey);
}

.header-menu-bars {
    font-size:1.15rem;
}

.header-logo {
    text-align: center;
}

.header-logo img {
    height:1.6rem;
}

.header-menu {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 2rem;
}

.header-menu i {
    font-size:0.95rem;
}

.header-menu img.avatar {
    width:36px;
    height:36px;
    border-radius:50px;
}

.header-save {
    display:none;
    position:fixed;
    top:0;
    left:0;
    right:0;
    background:var(--bg-dark-blue);
    box-shadow: 0 10px 40px 10px rgb(140 152 164 / 18%);
    font-size:1rem;
    color:var(--bg-white);
}

.header-save a {
    font-size:0.875rem;
    color:var(--bg-white);
}

.header-save .btn-primary {
    font-weight:600;
}



/* Nav */

.menu {
    display:none; /* Changes at breakpoint */
    flex-direction: column !important;
    flex-wrap: nowrap;
    width:16.25rem;
    position:fixed;
    top:0;
    bottom:0;
    left:-16.25rem;
    border-right:thin solid var(--bg-border);
    transition: width 0.25s ease;
    font-size:0.875rem;
    overflow-x:auto; /* This was important because without it, the footer dropdowns wouldn't fully show */
}

.menu.mobile {
    width:100%;
    background:var(--bg-white);
    z-index:10000;
    display:block;
}

.menu span {
    display:inline-block;
    opacity:1;
    transition: opacity 0.25s ease;
}

.menu .logo {
    width:100%;
    padding:1rem 1.75rem;
    border-bottom: thin solid var(--bg-border);
}

.menu .logo img {
    height:1.6rem;
}

.menu .logo img.icon {
    height:1.6rem;
    display:none;
}

.menu .logo i {
    margin-left:-1rem;
    font-size:1.15rem;
}

.menu .menu-nav {
    width:100%;
    height:100%;
    overflow-y:auto;
}

.menu .menu-nav ul {
    list-style-type:none;
    margin:0;
    padding:0;
}

.menu .menu-nav ul li {
    width:100%;
    list-style-type:none;
    padding:0.4rem 2.1rem;
    margin:0;
    margin-top:0.6rem;
    border-left:0.2rem solid transparent;
    border-right:0.2rem solid transparent;
    overflow: hidden;
    white-space: nowrap;
}

.menu.collapsed .menu-nav ul li {
    padding:0.4rem 0;
    text-align: center;
}

.menu .menu-nav ul li span {
    margin-left:0.75rem;
}

.menu .menu-nav i {
    color:#677788;
}

.menu .menu-nav a {
    color: var(--dark);
}

.menu .menu-nav a:hover {
    color: var(--primary);
}

.menu .menu-nav a:hover i {
    color: var(--primary);
}

.menu .menu-nav ul li.active {
    border-left:0.2rem solid var(--primary);
}

.menu .menu-nav ul li.title {
    color: var(--bg-title);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03125rem;
    padding-left:1.75rem;
    font-size:80%;
    border-left:none;
}

.menu .menu-nav .collapsed-only {
    display:none;
}

.menu.collapsed .menu-nav .collapsed-only {
    display:block;
}

.menu .footer {
    width:100%;
    display:flex;
    justify-content: space-evenly;
    padding-top:1.25rem;
    padding-bottom:1.25rem;
    border-top:thin solid var(--bg-border);
}

.menu.collapsed .footer {
    display:none;
}

.menu .footer .btn {
    align-items: center;
    width:2.65rem;
    height:2.65rem;
    border-radius:50%;
    cursor: pointer;
    font-size:0;
}

.menu .footer .btn:hover {
    background:#EAF2FF;
}

.menu .footer i {
    font-size:1rem;
    margin:0;
}

.menu .footer a {
    color: var(--bg-text);
}



/* Main */

.page {
    padding:1rem;
    margin-left:0; /* Changes at breakpoint */
    transition: margin-left 0.25s ease;
}

.sticky {
    background:var(--bg-white);
    width:100%;
    z-index:900;
    position:fixed;
    /*border-top-left-radius:0px !important;
    border-top-right-radius:0px !important;*/
}

main.hide-scroll::-webkit-scrollbar {
    display:none;
}


/* Tabs */

.tabs {
    width:100%;
    border-bottom:thin solid var(--bg-border);
    margin-bottom:-0.2rem;
    padding-bottom:2px;
    white-space: nowrap;
    overflow:hidden;
    font-size:0;
}

.tab {
    display:inline-block;
    padding:1rem 1.2rem;
    color:var(--bg-medium-grey);
    font-size:0.875rem;
    cursor:pointer;
}

.tab.active {
    border-bottom:0.2rem solid var(--primary);
    box-sizing: border-box;
    margin-bottom:-0.15rem;
    color:var(--primary);
}

.tab.secondary-active {
    border-bottom:0.2rem solid var(--bg-scrollbar-hover);
    box-sizing: border-box;
    margin-bottom:-0.15rem;
    color:var(--secondary);
}

.tab-always-show {
    display:none;
}

.segment-toggle {
    display:inline-block;
    background:var(--bg-segment);
    border-radius:0.25rem;
    padding:0.33rem;
    font-size:0;
}

.segment-tab {
    display:inline-block;
    border-radius:0.25rem;
    padding:0.5rem 0.75rem;
    font-size:0.8rem;
    cursor:pointer;
}

.segment-tab:hover {
    color:var(--bg-link);
}

.segment-tab.active {
    background:var(--bg-white);
    box-shadow: 0 3px 6px 0 rgb(140 152 164 / 25%);
}



/* Badges */

.badge {
    background:var(--bg-light-grey);
    color:var(--bg-dark-grey);
    padding:0.2rem 0.4rem;
}

.badge-danger {
    background:var(--danger-light);
    color:var(--danger);
}



/* Buttons */

.btn {
    font-size:0.875rem !important;
}

.btn-primary {
    padding:0.6rem 0.875rem;
}

.btn-sm.btn-primary {
    font-size:0.825rem !important;
    padding:0.3rem 0.6rem !important;
}

.btn-secondary {
    background:var(--secondary);
    padding:0.6rem 0.875rem;
}

.btn-cancel {
    background:var(--cancel);
    color:var(--bg-white);
    padding:0.6rem 0.875rem;
}

.btn-outline {
    background:var(--bg-white);
    border:thin solid var(--bg-border);
    color:var(--bg-medium-grey);
}

.btn i {
    font-size:0.8rem;
}

.btn-group {
    font-size:0px;
}

.btn-filter {
    background:var(--bg-white);
    border-color:var(--bg-border);
    color:#677788;
    font-size:0.8125rem !important;
    border-radius:0;
}

.btn-filter:first-child {
    border-top-left-radius:0.25rem;
    border-bottom-left-radius:0.25rem;
}

.btn-filter:last-child {
    border-top-right-radius:0.25rem;
    border-bottom-right-radius:0.25rem;
}

.btn-filter:hover {
    color:var(--primary-dark);
    box-shadow:0 2px 4px rgb(140 152 164 / 16%);
}

.btn-filter:not(.btn-icon) i {
    margin-right:0.4rem;
    opacity:0.75;
}



/* Forms */

.textarea-modal {
    height:100px;
    resize: none;
}

.textarea-modal-lg {
    height:150px;
    resize: none;
}

.input-disabled {
    background:var(--light);
}


/* Width/height */

.maxw-300 {
    max-width:300px;
}



/* Fonts/text */

h1 {
    font-weight:600;
    font-size:1.4rem;
    color:var(--bg-headings);
}

h1.large {
    font-size:1.85rem;
}

h6 {
    font-size:0.95rem;
    font-weight:600;
    color:var(--bg-headings);
    margin:0;
}

.text-body {
    font-size: 0.875rem;
    color: var(--bg-text);
}

.text-body a {
    color: var(--bg-text);
}

.text-medium-grey {
    color:var(--bg-medium-grey);
}

.text-light-grey {
    color:var(--bg-light-grey);
}

a:hover {
    text-decoration: none;
}

.text-xxs {
    font-size:0.625rem !important;
}

.text-xs {
    font-size:0.675rem !important;
}

.text-sm {
    font-size:0.775rem !important;
}

.text {
    font-size:0.875rem !important;
}

.text-lg {
    font-size:0.975rem !important;
}

.text-xl {
    font-size:1.075rem !important;
}

.text-link-missing {
    font-size:0.8rem;
    padding-bottom:0.1rem;
    border-bottom:thin dashed var(--bg-link-light);
    opacity:0.75;
}

.font-weight-900 {
    font-weight:900;
}

.font-weight-800 {
    font-weight:800;
}

.font-weight-700 {
    font-weight:700;
}

.font-weight-600 {
    font-weight:600;
}

.font-weight-500 {
    font-weight:500;
}

.font-weight-400 {
    font-weight:400;
}

.font-weight-300 {
    font-weight:300;
}

.font-weight-200 {
    font-weight:200;
}

.font-weight-100 {
    font-weight:100;
}



/* Cards */

.card {
    background:var(--bg-white);
    box-shadow:0 6px 12px rgb(140 152 164 / 8%);
    border:thin solid var(--bg-border);
    border-radius:0.75rem;
}

.card-header {
    padding:1rem;
    background:transparent;
    border-bottom:thin solid var(--bg-border-light);
}

.card-body.max-h {
    max-height:300px !important;
    overflow-y: auto;
    margin-bottom:0.5rem;
}

.card-body label {
    display:block;
    color: #7E8C9A;
    font-weight: 600;
    text-transform: uppercase;
    font-size:0.75rem;
}

a .card-body {
    color:#7e8c9a;
}

.card-no-results {
    padding:2rem;
    text-align:center;
    font-size:1rem;
    color:var(--bg-title);
}

.card-footer {
    background:transparent;
    border-top:thin solid var(--bg-border-light);
}

.card-count {
    font-size:3rem;
    font-weight:600;
    color:var(--bg-headings);
}

.card h1 {
    font-size:1rem;
    margin:0;
}

.activity {
    display: flex;
}

.activity .icon {
    padding:1rem;
    position:relative;
}

.activity .detail {
    width:100%;
    padding:1rem;
    padding-left:0.5rem;
    margin-bottom:0.75rem;
    font-size:0.8rem;
}

.activity .detail a {
    font-size:0.9rem;
    font-weight:600;
    color:var(--bg-headings);
}

.activity .record {
    width:100%;
    background:var(--bg-segment);
    border:thin solid var(--bg-border-light);
    padding:0.75rem;
    border-radius:0.25rem;
}

.activity .record:hover {
    background:var(--bg-segment-dark);
    border-color:var(--bg-border);
    cursor:pointer;
}

.activity .record .user {
    display:flex;
    align-items: center;
    position:absolute;
    right:2rem;
    background:var(--bg-white);
    padding:0.25rem;
    padding-right:0.5rem;
    border-radius:0.25rem;
    box-shadow: 0 3px 6px 0 rgb(140 152 164 / 25%);
    margin-top:0.25rem;
}

.activity .record .user .avatar {
    margin-right:0.5rem;
}

.activity .record .breadcrumbs {
    display:block;
    font-size:0.7rem;
    margin-bottom:0.25rem;
}

.activity .record .breadcrumbs a {
    font-size:0.8rem;
    font-weight: normal;
    color:var(--bg-link);
}

.label {
    color: #7E8C9A;
    font-weight: 600;
    text-transform: uppercase;
    font-size:0.75rem;
}



/* Kanban */

.kanban {
    white-space: nowrap;
    overflow-x: auto;
}

.kanban-column {
    width: 370px;
    display: inline-block;
    vertical-align: top;
    padding-bottom:1rem;
    padding-right:1rem;
    overflow-y:auto;
    margin:1rem 0rem;
}

.kanban-column:not(:first-child) {
    margin-left:1rem;
}

.kanban-column textarea {
    border:none !important;
    padding:0;
    font-size:0.85rem;
    color:var(--bg-medium-grey);
}

.kanban-items {
    min-height:2px;
}

.kanban-items .card {
    white-space: normal;
    margin-top:1rem;
    font-size:0.835rem;
    line-height:1.15rem;
}

.kanban-item {
    position:relative;
    cursor: pointer;
}

.kanban-item.dragging {
    transform: rotate(8deg);
}

.kanban-item .text-xs {
    font-size:0.75rem !important;
    letter-spacing: 0rem;
}

.kanban-item-placeholder {
    border:2px dashed var(--bg-border);
    background:var(--light);
    border-radius:0.75rem;
}

.kanban-complete i {
    position:absolute;
    font-size:1rem;
    top:0.25rem;
    left:0.25rem;
    opacity:0.25;
}

.kanban-complete i:hover {
    opacity:1;
    color:var(--success);
    cursor:pointer;
}

.kanban-delete i {
    position:absolute;
    font-size:1rem;
    top:0.25rem;
    right:0.5rem;
    opacity:0.25;
}

.kanban-delete i:hover {
    opacity:1;
    color:var(--danger);
    cursor:pointer;
}

.kanban-title {
    
}

.kanban-bottom-btn {
    border:2px dashed var(--bg-border);
    padding:1rem;
    text-align: center;
    border-radius:0.5rem;
    cursor:pointer;
    color:var(--bg-medium-light-grey);
    font-size:0.85rem;
}

.kabnan-bottom-btn:hover {
    background:var(--light);
    cursor:pointer;
}



/* Sortable */

.sortable-table-helper {
    background:var(--bg-autocomplete-hover);
}


/* Timeline */

.timeline {
    white-space: nowrap;
    overflow-x: auto;
}

.timeline a {
    color:var(--bg-text);
}

.timeline-row {
    display:flex;
}

.timeline-title {
    display:inline-block;
    width:200px;
    min-width:200px;
    padding:0.75rem;
    border-right:thin solid var(--bg-border);
    border-bottom:thin solid var(--bg-border);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    z-index:900;
}

.timeline-item {
    width:200px;
    min-width:200px;
    padding:0.375rem;
    border-bottom:thin solid var(--bg-border);
    border-right:thin solid var(--bg-border);
    text-align: center;
}

.timeline-item.first {
    /*margin-left:200px;*/
}

.timeline-bar {
    position:absolute;
    top:0.5rem;
    left:calc(200px + 0.5rem); /* This should always match the margin-left value in .timeline-item.first above */
    height:calc(100% - 1rem);
    background:var(--bg-light-grey);
    border-radius:0.25rem;
    z-index:850;
}

.timeline-balloon {
    display:none;
    position:absolute;
    width:350px;
    background:var(--bg-white);
    border-radius:0.5rem;
    box-shadow: 0 10px 40px 10px rgb(140 152 164 / 18%);
    padding:0.75rem;
    z-index:1000;
    color:var(--bg-medium-grey);
}

.timeline-balloon h1 {
    font-size:0.875rem;
    font-weight:600;
    color:var(--bg-headings);
}



/* Filters */

.diary-filter-buttons {
    display:flex;
    flex-direction:row;
    align-items: center;
    gap:0rem 0.5rem;
}

.diary-filter-buttons input[type=text] {
    font-size:0.875rem;
    border:thin solid var(--bg-border);
    width:140px;
    max-width:140px;
    text-align: center;
}

.diary-filter-buttons input[type=search] {
    font-size:0.875rem;
    border:thin solid var(--bg-border);
    width:240px;
    max-width:240px;
    padding-left:2.25rem;
}

.diary-filter-buttons .btn-primary {
    padding:0.375rem 0.75rem !important;
    border:1px solid var(--primary) !important;
}


/* Tables */

table {
    border:none !important;
}

.table {
    border:none !important;
    margin-bottom:0;
}

.table thead {
    background:var(--bg-thead);
    border:none !important;
}

.table tbody {
    border:none !important;
}

.table tfoot {
    border:none !important;
}

.table tr {
    border:none !important;
}

.table th {
    border-top:thin solid var(--bg-border);
    border-bottom:thin solid var(--bg-border) !important;
    text-transform: uppercase;
    font-size:0.75rem;
    vertical-align: middle;
    text-align: center;
}

.table td {
    border:none !important;
    vertical-align: middle;
}

.table td a:not(.text-link) {
    color:var(--dark);
    font-weight:600;
}

.table td a:not(.text-link):hover {
    color:var(--primary);
}

.table td a:hover .avatar {
    opacity:0.75;
}

.table td.sort {
    width:5rem !important;
}

.table .checkbox {
    width:3rem;
}

.filter-search {
    display: flex;
    align-items: center;
    gap:1.5rem;
}

.filter-search input[type=search], .filter-search input[type=text] {
    height:auto;
    border:none;
    background:transparent;
    padding:0.5rem 0rem 0.5rem 1rem;
    font-size:0.9rem;
}

.filter-search .search-container {
    width:100%;
    border-radius:0;
    display:flex;
    align-items: center;
    border-bottom:thin solid var(--bg-border-light);
}

.filter-search .search-container i {
    font-size:0.7rem;
}

.filter-search .search-container .clear-input {
    display: none;
}

.filter-search .search-container.active {
    
}

/* Remove the outline in Chrome (and other browsers) */
*:focus, input:focus, textarea:focus, select:focus {
    outline: 0 none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}



/* Files */

.file-items {
    border:thin solid var(--bg-border);
    box-shadow:0 6px 12px rgb(140 152 164 / 8%);
    border-radius:0.75rem;
}

.file-item {
    display:flex;
    justify-content: space-between;
    justify-items: center;
    cursor:pointer;
}

.file-item:hover {
    background:var(--bg-autocomplete-hover);
}

.file-item:first-child {
    border-top-left-radius:0.75rem;
    border-top-right-radius:0.75rem;
}

.file-item:not(:first-child) {
    border-top:thin solid var(--bg-border);
}

.file-item:last-child {
    border-bottom-left-radius:0.75rem;
    border-bottom-right-radius:0.75rem;
}

.file-item span.pinned-label {
    display:none;
}

.file-item.pinned span.pinned-label {
    display:inline-block;
    background:var(--bg-text);
    color:var(--bg-white);
    font-size:0.6rem;
    letter-spacing: 0.025rem;
    text-transform: uppercase;
    font-weight:600;
    padding:0.1rem 0.4rem;
    border-radius:0.25rem;
    margin-bottom:0.5rem;
}

.file-item .details {
    display:flex;
    flex-grow:2;
    justify-items: flex-start;
}

.file-item h6 {
    font-size:0.875rem !important;
    font-weight:500;
    color:var(--bg-headings);
}



/* Dropdowns */

.dropdown-menu {
    width:220px;
    padding:0.5rem;
    border:none;
    box-shadow: 0 10px 40px 10px rgb(140 152 164 / 18%);
    margin-top:1rem;
    font-size:0.925rem;
}

.dropdown-menu-xl {
    width:450px;
}

.dropdown-menu-lg {
    width:280px;
}

.dropdown-menu-md {
    box-shadow: 0 10px 40px 10px rgb(140 152 164 / 18%);
    margin-top:0.75rem;
    font-size:0.875rem;
}

.dropdown-menu-sm {
    width:150px;
    padding:0rem 0rem;
    box-shadow: 0 10px 40px 10px rgb(140 152 164 / 18%);
    margin-top:0.75rem;
    font-size:0.825rem;
}

.dropdown-menu-xs {
    width:40px !important;
}

.dropdown-body:not(.no-overflow) {
    max-height:250px;
    overflow-y:auto;
}

.dropdown-body a {
    font-size:0.825rem;
}

.dropdown-title {
    padding:0.5rem 1.5rem;
    color: var(--bg-title);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03125rem;
    font-size:0.7rem;
}

.dropdown-item {
    padding:0.5rem 0.75rem;
    color:var(--bg-text-dark) !important;
    border-left:0.2rem solid transparent;
    border-right:0.2rem solid transparent;
    border-radius:0.25rem;
    font-size:0.85rem;
}

.dropdown-item a {
    color:var(--bg-text-dark) !important;
}

.dropdown-item:hover:not(.no-hover) {
    background:var(--bg-dropdown-item-hover);
    cursor: pointer;
}

.dropdown-item.no-hover:hover {
    background:none !important;
}

.dropdown-menu-sm .dropdown-item:hover:first-child {
    border-top-left-radius:0.25rem;
    border-top-right-radius:0.25rem;
}

.dropdown-menu-sm .dropdown-item:hover:last-child {
    border-bottom-left-radius:0.25rem;
    border-bottom-right-radius:0.25rem;
}

.dropdown-item.active {
    background-color: none !important;
    background: none !important;
    border-left:0.2rem solid var(--primary);
}

.dropdown-item.active:first-child {
    border-top-left-radius:0.25rem;
}

.dropdown-item.active:last-child {
    border-bottom-left-radius:0.25rem;
}

.dropdown-item.active:hover {
    background-color:var(--bg-dropdown-item-hover) !important;
}

.dropdown-item.secondary-active {
    border-left:0.2rem solid var(--bg-scrollbar-hover);
}

.dropdown-item-label {
    display:block;
    color: #8c98a4 !important;
    font-weight: 600;
    text-transform: uppercase;
    font-size:0.7rem;
}

.dropdown-divider {
    margin-top:0.5rem;
    border-top:thin solid var(--bg-border);
    margin-bottom:0.5rem;
}

.dropdown-toggle-split {
    margin-left:1px !important;
}



/* Modals */

.modal-backdrop {
    opacity:1 !important;
    background:rgba(19,33,68,.25);
}

.modal-xl .modal-dialog {
    width:800px !important;
    max-width:100% !important;
}

.modal-xl .modal.dialog .modal-content {
    width:100% !important;
    border:3px solid blue;
}

.modal-content {
    border:none !important;
    border-radius:0.75rem;
    padding:1.5rem 1rem;
}

.modal-header {
    border:none;
    font-size:1.4rem;
    font-weight:600;
    color:var(--bg-dark-grey);
}

.modal-body label {
    color: var(--bg-dark-grey);
    font-size:0.875rem;
    padding-bottom:0.25rem;
}

.modal-body label small {
    font-size:0.7rem;
    color: var(--bg-medium-grey);
}

.modal-footer {
    border:none;
}



/* Sidebars */






/* Date picker */

.datepicker {
    cursor:pointer;
}

.datepicker:hover:not(.link) {
    
}

.datepicker.link {
    width:130px;
    color: var(--primary);
    border:none;
}



/* Charts */

.legend-indicator {
    display:inline-block;
    background:#ddd !important;
    width:0.5rem;
    height:0.5rem;
    border-radius:0.5rem;
    margin-right:0.33rem;
}

.donut-chart h1 {
    font-size:1rem;
    font-weight: normal;
    color:var(--primary);
    margin:0;
}



/* Progress bars */

.progress {
    display:flex;
    min-width:5rem;
    height:0.5rem;
}

.progress-sm {
    min-width:3rem;
    height:0.25rem;
}

.progress-bar {
    background:var(--primary);
    /*border-top-left-radius:0.5rem;
    border-bottom-left-radius:0.5rem;*/
}



/* Autocomplete */

.autocomplete {
    display:none;
    position:absolute;
    width:100%;
    background:var(--bg-white);
    border-bottom-left-radius:0.5rem;
    border-bottom-right-radius:0.5rem;
    border:thin solid var(--bg-border);
    box-shadow:0 6px 12px rgb(140 152 164 / 8%);
    margin-top:-1px;
    max-height:300px;
    overflow-y:auto;
    z-index:1100;
}

.autocomplete.set-width {
    border-top-right-radius: 0.5rem;
}

.autocomplete-item {
    display:flex;
    justify-content: flex-start;
    font-weight:600;
    color:var(--bg-dark-grey);
    padding:1rem;
}

.autocomplete-item:hover {
    background:var(--bg-autocomplete-hover);
    cursor:pointer;
}

.autocomplete-item:not(:first-child) {
    border-top:thin solid var(--bg-border);
}

.autocomplete-item span {
    font-size:0.825rem;
    font-weight:normal;
    color:var(--bg-medium-grey);
}

.autocomplete-input {
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
}

.autocomplete-selection-item {
    display: flex;
    justify-content: space-between;
    column-gap: 1.5rem;
    padding:0.5rem;
    border-radius:0.25rem;
    background:var(--primary);
    color:var(--bg-white);
}

.autocomplete-selection-item:hover {
    background:var(--primary-dark);
    cursor:pointer;
}

.autocomplete-selection-item i {
    float:right;
    opacity: 0.5;
}



/* Steps */

.steps {
    position:relative;
    display:flex;
    justify-content: space-between;
}

.step-container:not(:first-child) {
    display:none;
}

.step-container.disabled {
    display:none;
}

.step-item {
    z-index:200;
    background:var(--bg-white);
    cursor: pointer;
}

.step-item:not(:first-child) {
    padding-left:1rem;
}

.steps-line {
    position:absolute;
    width:100%;
    top:50%;
    border-top:2px solid var(--bg-border-light);
    z-index:10;
}

.step-number {
    display:inline-block;
    background:var(--bg-light-grey);
    color:var(--bg-medium-grey);
    width:2.2rem;
    height:2.2rem;
    text-align:center;
    line-height:2.2rem;
    border-radius:50%;
    font-weight: 600;
}

.step-item.active .step-number {
    background:var(--primary);
    color:var(--bg-white);
    font-weight:bold !important;
    transition: all 0.2s ease;
}

.step-item.active label {
    color:var(--primary);
    transition: color 0.2s ease;
}

.step-item label {
    font-size:0.875rem;
    font-weight:600;
    color:var(--bg-dark-grey);
    padding-left:0.5rem;
    padding-right:1rem;
    cursor: pointer;
}

.step-item.disabled label {
    color:var(--bg-light-grey);
}

.step-item.disabled .step-number {
    opacity:0.5;
    color:var(--bg-white);
}

.step-containers {
    
}



/* Select rows */

.select-rows {
    border:thin solid var(--bg-border);
    border-radius:0.5rem;
}

.select-row {
    padding:1rem;
    display:flex;
    justify-items:left;
    align-items: center;
    cursor: pointer;
    font-weight:600;
}

.select-row:not(:first-child) {
    border-top:thin solid var(--bg-border);
}

.select-row.active {
    background:var(--bg-selected);
}

.select-row small {
    display:block;
    font-size:0.815rem !important;
    font-weight:normal;
}



/* Backgrounds */

.bg-primary {
    background:var(--primary) !important;
}

.bg-success {
    background:var(--success) !important;
}

.bg-warning {
    background:var(--warning) !important;
}

.bg-selected {
    background:var(--bg-selected) !important;
}

.opacity-50 {
    opacity: 0.5;
}

.opacity-30 {
    opacity: 0.3;
}

.opacity-20 {
    opacity: 0.2;
}


/* File icons */

.bg-file-word {
    color:var(--bg-file-word);
}

.bg-file-excel {
    color:var(--bg-file-excel);
}

.bg-file-powerpoint {
    color:var(--bg-file-powerpoint);
}

.bg-file-pdf {
    color:var(--bg-file-pdf);
}

.bg-file-code {
    color:var(--bg-file-code);
}

.bg-file-music {
    color:var(--bg-file-music);
}

.bg-file-video {
    color:var(--bg-file-video);
}

.bg-file-image {
    color:var(--bg-file-image);
}

.bg-file-zip {
    color:var(--bg-file-zip);
}

.bg-file-text {
    color:var(--bg-file-text);
}

.bg-file {
    color:var(--bg-file);
}


/* Borders */

.border {
    border-color:var(--bg-border) !important;
}

.border-top {
    border-color:var(--bg-border) !important;
}

.border-bottom {
    border-color:var(--bg-border) !important;
}

.border-left {
    border-color:var(--bg-border) !important;
}

.border-right {
    border-color:var(--bg-border) !important;
}

.border-light {
    border: thin solid var(--bg-border-light);
}

.border-top-light {
    border-top: thin solid var(--bg-border-light);
}

.border-bottom-light {
    border-bottom: thin solid var(--bg-border-light);
}

.border-left-light {
    border-left: thin solid var(--bg-border-light);
}

.border-right-light {
    border-right: thin solid var(--bg-border-light);
}

.border-right-medium {
    border-right: 0.11rem solid var(--bg-border);
}

.border-thick-dashed {
    border:3px dashed var(--bg-border);
}

.rounded-lg {
    border-radius:0.5rem;
}

.rounded-xl {
    border-radius:0.75rem;
}

.rounded-left {
    border-top-left-radius:0.25rem;
    border-bottom-left-radius:0.25rem;
}

.rounded-right {
    border-top-right-radius:0.25rem;
    border-bottom-right-radius:0.25rem;
}



/* Width/height */

.h-350 {
    height:350px;
    max-height: 350px;
    overflow-y:auto;
}

.h-300 {
    height:300px;
    max-height: 300px;
    overflow-y:auto;
}

.h-250 {
    height:250px;
    max-height: 250px;
    overflow-y:auto;
}

.h-200 {
    height:200px;
    max-height: 200px;
    overflow-y:auto;
}

.h-150 {
    height:150px;
    max-height: 150px;
    overflow-y:auto;
}

.h-125 {
    height:125px;
    max-height: 125px;
    overflow-y:auto;
}

.h-100px {
    height:100px;
    max-height: 100px;
    overflow-y:auto;
}

.maxh-250 {
    max-height:250px;
    overflow-y:auto;
}

.maxh-200 {
    max-height:200px;
    overflow-y:auto;
}

.maxh-100 {
    max-height:100px;
    overflow-y:auto;
}

.h-50 {
    height:50%;
}

.vh-100 {
    height:100vh !important;
}

/* Avatars */

.avatar {
    position:relative;
    width:2.65rem;
    min-width:2.65rem;
    height:2.65rem;
    min-height:2.65rem;
    background:var(--bg-avatar);
    color:var(--bg-link);
    font-size:1.1rem;
    font-weight: 600;
    text-transform: uppercase;
}

.avatar img {
    width:100%;
    height:100%;
}

.avatar img.bordered {
    outline:0.4rem solid var(--bg-white);
}

.avatar .dashed {
    border:3px solid red !important;
}

.avatar-xs {
    width:1.85rem !important;
    min-width:1.85rem !important;
    height:1.85rem !important;
    min-height:1.85rem !important;
    font-size:0.7rem;
}

.avatar-sm {
    width:2.25rem;
    min-width:2.25rem;
    height:2.25rem;
    min-height:2.25rem;
    font-size:0.8rem;
}

.avatar-rounded {
    border-radius:50%;
}

.avatar-rounded img {
    border-radius:50%;
}

.avatar-initials {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

.avatar-group {
    font-size:0.775rem;
    position:relative;
    margin-left:auto;
    margin-right:auto;
}

.avatar-group .avatar {
    display:inline-block;
    border:0.125rem solid var(--bg-white);
}

.avatar-group .avatar:not(:first-child) {
    margin-left:-1rem;
}

.avatar-group .avatar-xs:not(:first-child) {
    margin-left:-0.8rem;
}

.avatar-group .avatar-sm:not(:first-child) {
    margin-left:-0.6rem;
}

.avatar-group .avatar:hover {
    z-index:1000;
    cursor:pointer;
}



/* Members list */

.member-item {
    display:flex;
    justify-content: flex-start;
    align-items: center;
    padding:0.5rem;
    cursor: pointer;
}

.member-item:hover {
    background:var(--bg-autocomplete-hover);
}

.member-item.active {
    background:var(--bg-selected);
}

.member-item .avatar {
    width:1.65rem;
    min-width:1.65rem;
    height:1.65rem;
    min-height:1.65rem;
    white-space: nowrap;
    font-size:1rem;
}

.member-item .details {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left:0.75rem;
    font-size:0.875rem;
}

.member-item.selected {
    background:var(--bg-selected);
}

.member-selection {
    display:inline-block;
    border-radius:0.25rem;
    padding:0.3rem 0.75rem;
    background:var(--primary);
    color:var(--bg-white);
    font-size:0.825rem;
    margin-right:0.5rem;
    margin-top:0.5rem;
}

.member-selection:hover {
    opacity:0.7;
    cursor: pointer;
}


/* Scrollbars */

/* Custom scrollbar - x-axis */
/* Width */
.custom-scroll-x::-webkit-scrollbar {
    height: 0.5rem;
}
.custom-scroll-x-sm::-webkit-scrollbar {
    height: 0.25rem;
}
/* Track */
.custom-scroll-x::-webkit-scrollbar-track {
    background: var(--bg-white);
}
/* Handle */
.custom-scroll-x::-webkit-scrollbar-thumb {
    background: var(--bg-scrollbar);
}
/* Handle on hover */
.custom-scroll-x::-webkit-scrollbar-thumb:hover {
    background: var(--bg-scrollbar-hover);
    cursor:pointer;
}

/* Custom scrollbar - y-axis */
/* Width */
.custom-scroll-y::-webkit-scrollbar {
    width: 0.5rem;
}
.custom-scroll-y-sm::-webkit-scrollbar {
    width: 0.25rem;
}
/* Track */
.custom-scroll-y::-webkit-scrollbar-track {
    background: var(--bg-white);
}
/* Handle */
.custom-scroll-y::-webkit-scrollbar-thumb {
    background: var(--bg-scrollbar);
}
/* Handle on hover */
.custom-scroll-y::-webkit-scrollbar-thumb:hover {
    background: var(--bg-scrollbar-hover);
    cursor:pointer;
}



/* Cursors */

.cursor-pointer {
    cursor: pointer;
}

.cursor-move {
    cursor: move;
}

.custom-checkbox, .custom-control-input, .custom-control-label {
    cursor:pointer !important;
}




/* Versions */

.alpha-label {
    z-index:1900;
    position:absolute;
    bottom:-15px;
    right:-10px;
    background:#ff3300;
    color:var(--bg-white);
    font-size:0.6rem;
    letter-spacing: 0.025rem;
    text-transform: uppercase;
    font-weight:600;
    padding:0.1rem 0.4rem;
    border-radius:0.25rem;
}

.beta {
    /* Anything with this class will be given a 'beta' icon via UI.js */
}

.beta-label {
    z-index:900;
    position:absolute;
    background:var(--success);
    color:var(--bg-white);
    font-size:0.6rem;
    letter-spacing: 0.025rem;
    text-transform: uppercase;
    font-weight:600;
    padding:0.1rem 0.4rem;
    border-radius:0.25rem;
}



/* Sidebars */

.sidebar {
    width:100%; /* Width for larger breakpoints is set further down */
    height:100vh;
    position:fixed;
    top:0px;
    right:calc(-100% - 10px);
    z-index:10000;
    background:var(--bg-white);
    overflow-y:auto;
    box-shadow:-10px 0px 10px rgba(0, 0, 0, 0.075);
}

.sidebar-active {
    right:0px;
}

.sidebar-content {
    width:100%;
}

.sidebar-loading {
    width:100%;
}

.sidebar-header {
    width:100%;
    padding:1rem 1.5rem;
    border-bottom:thin solid var(--bg-border-light);
}

.sidebar-title {
    display:flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size:1.25rem;
    color:var(--bg-headings);
    font-weight:bold !important;
}

.sidebar-title i {
    color:var(--bg-medium-light-grey);
    cursor:pointer;
    font-size:1.25rem;
}

.sidebar-tabs {
    margin:-0.75rem;
    margin-bottom:1rem;
}

.sidebar-body {
    overflow-y:auto;
    padding:1.5rem;
}

.sidebar-body-footer {
    margin-top:2rem;
    padding:1.5rem;
}

.sidebar-footer {
    text-align:left;
    padding:1.5rem;
}

.sidebar-footer.sticky {
    background:var(--lightest);
    width:inherit;
    border-top:thin solid var(--bg-border-light);
    position:sticky;
    bottom:0;
    padding:1rem;
    z-index:500;
    text-align:center;
}

.sidebar-exit {
    font-size:1.5rem;
    color:var(--medium-light);
}

.section-header-tabs {
    width:100%;
    white-space:nowrap;
    bottom:0px;
    margin-left:-12px;
    padding-top:12px !important;
	-ms-overflow-style: none;
	overflow-x:auto;    
}

.section-header-tabs::-webkit-scrollbar {
	display: none;
}

.section-header-tab {
    display:inline-block;
    /*font-size:16px;*/
    font-weight:500;
    /*font-family: 'Poppins Medium';*/
    color:var(--medium);
    /*border-bottom:3px solid #fff;*/
    padding-left:16px;
    padding-right:16px;
    padding-top:4px;
    padding-bottom:5px;
    margin-bottom:8px;
    margin-right:8px;
    border-radius:0.25rem;
}

.section-header-tab-sm {
    padding:3px;
    padding-left:8px;
    padding-right:8px;
}

.section-header-tab:hover {
    cursor:pointer;
    color:var(--brand-colour-3);
    background:rgba(var(--brand-colour-3-rgb), 0.1);
    transition:background 0.25s ease, color 0.25s ease;
}

.section-header-tab-sticky {
    /*font-size:0.85rem;*/
}

.section-header-tab.active {
    color:var(--dark);
    background:rgba(var(--brand-colour-3-rgb), 0.2);
}



/* Login */

.select-system-item {
    background:var(--bg-white);
    box-shadow:0 6px 12px rgb(140 152 164 / 8%);
    border:thin solid var(--bg-border);
    border-radius:0.75rem;
    padding:1.75rem 1rem;
    font-size:0.95rem;
}

.select-system-item:hover i {
    margin-right:-0.25rem !important;
    transition: margin-right 0.2s ease;
}



/* Rotation */

.rotate-180 {
    transform: rotate(180deg);
}



/* Placeholders */

::-webkit-input-placeholder { /* WebKit browsers */
    text-transform: none;
	color:#aaa !important;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
    text-transform: none;
	color:#aaa !important;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
    text-transform: none;
	color:#aaa !important;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
    text-transform: none;
	color:#aaa !important;
}
::placeholder { /* Recent browsers */
    text-transform: none;
}



/* Breakpoints */

/* Bootstrap xs */
@media (min-width: 1px) {
	
}

/* Bootstrap sm */
@media (min-width: 576px) {
	
}

/* Bootstrap md */
@media (min-width: 768px) {
    .header {
        padding:0.65rem 1.75rem;
        margin-left:16.25rem;
    }
    .header.collapsed {
        margin-left:5rem !important;
    }
    .header-search {
        display:flex;
    }
    .header-menu-bars {
        display:none;
    }
    .header-logo {
        display:none;
    }
    .menu {
        display:flex;
        left:0 !important; /* Important - otherwise the menu doesn't show if mobile menu is used and then the screen resized */
    }
    .menu.mobile {
        display:none;
    }
    .menu .logo {
        border-bottom:none;
    }
    .menu .logo i {
        display:none;
    }
    /* When the left-nav menu is collapsed, we need to do lots of things to other classes as well */
    .menu.collapsed {
        width:5rem;
        transition: width 0.25s ease;
    }

    .menu.collapsed span {
        display:none;
        opacity:0;
    }

    .menu.collapsed .menu ul li {
        padding-left:0;
        padding-right:0;
        text-align:center;
    }

    .menu.collapsed .logo {
        padding:1rem 1.75rem;
    }

    .menu.collapsed .logo img:not(.icon) {
        display:none;
    }

    .menu.collapsed .logo img.icon {
        display:block;
    }
    /* End - left-nav collapsed */
    .page {
        padding:2rem;
        margin-left:16.25rem;
    }
    .page.collapsed {
        margin-left: 5rem;
        transition: margin-left 0.25s ease;
    }
    .border-md-left {
        border-left: thin solid var(--bg-border);
    }
	.sidebar {
        width:550px !important;
    }
    .sidebar-sm {
        width:450px !important;
    }
}

/* Bootstrap lg */
@media (min-width: 992px) {
	
}

/* Bootstrap xl */
@media (min-width: 1200px) {
	
}