﻿:root {
    --icon-ds-font-family: sans-serif;
    --icon-ds-global-textsize-spec: 16px;
    --icon-ds-global-font-colour: #262626;
    --icon-ds-global-disabled-font-colour: #DDDDDD;
    --icon-ds-global-readonly-font-colour: #777777;
    --icon-ds-global-background-colour: #FFFFFF;
    --icon-ds-global-readonly-background-colour: #F4F4F4;
    --icon-ds-input-height-spec: 38px;
    --icon-ds-input-height-small-variant: 25px;
    --nav-ds-keyboard-focus-colour: inherit;
    --nav-ds-keyboard-focus-outline: dotted;
    --nav-ds-brand-max-width: 250px; /* Can cause overflow if too wide - consider disabling 'inline responsive navigation' where a longer logo is used, and many modules exist */
    --nav-ds-profile-actions-icon-size-px: 32px;
    --nav-ds-profile-actions-spacing-px: 5px;
    --nav-ds-profile-actions-notification-counter-size: 16px; /* Even values preferred - divided by 2 for border radius */
    --nav-ds-profile-actions-notification-counter-textsize: 14px;
    --nav-ds-profile-actions-notification-counter-colour: #D23927;
    --nav-ds-module-notification-counter-size: 24px; /* Even values preferred - divided by 2 for border radius */
    --nav-ds-module-notification-counter-textsize: var(--nav-ds-profile-actions-notification-counter-textsize);
    --nav-ds-module-notification-counter-colour: var(--nav-ds-profile-actions-notification-counter-colour);
    --nav-ds-alignment-left-margin: 15px;
    --nav-ds-page-content-margin: 10px;
    --nav-ds-module-text-size: 15px;
    --nav-ds-module-gap: 30px;
    --nav-ds-module-height: 50px;
    --nav-ds-module-caret-gap: 4px;
    --nav-ds-module-container-underline-colour: var(--client-primary); /* Should not be used in combination with 'use client colour as nav background' */
    --nav-ds-module-default-text-colour: var(--client-secondary-text);
    --nav-ds-module-default-hover-colour: var(--client-secondary-text);
    --nav-ds-module-singleline-background-colour: var(--client-primary);
    --nav-ds-module-singleline-text-colour: var(--client-primary-text);
    --nav-ds-module-singleline-hover-colour: var(--client-primary-text); /* Overrides default module hover colour when 'use client colour as nav background' is enabled */
    --nav-ds-module-dropdown-text-size: 12px;
    --nav-ds-module-dropdown-text-weight: normal;
    --nav-ds-module-dropdown-default-text-colour: var(--client-secondary-text);
    --nav-ds-module-dropdown-hover-text-colour: var(--client-primary-text);
    --nav-ds-module-dropdown-hover-background-colour: var(--client-primary);
    --nav-ds-module-dropdown-active-current-tab-indicator-colour: var(--client-primary);
    --kendoui-modal-padding: 12px;
}

:root body.experimental-dark-mode {
    --icon-ds-global-font-colour: #CECECE;
    --icon-ds-global-disabled-font-colour: #3C3C3C;
    --icon-ds-global-readonly-font-colour: #4F4F4F;
    --icon-ds-global-background-colour: #1C1C1C;
    --icon-ds-global-readonly-background-colour: #292929;
}

.nav-ds a,
.nav-ds li,
.nav-ds ul,
.nav-ds input,
.overflow-menu-ds a,
.overflow-menu-ds li,
.overflow-menu-ds ul,
.dropdown-menu div {
    font-size: inherit; /* Existing CSS selectors in Legacy unintentionally capture these elements and set an explicit font size - force them to inherit instead */
    font-family: var(--icon-ds-font-family); /* Force nav font consistency in both Legacy and V4 */
}

/* #region Generic design-system styles */
@keyframes keyframesForegroundContainerFadeIn_300msEaseOut {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes keyframesSpinLoadingIndicator_1s {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

[class^="icon-ds-"], [class*=" icon-ds-"] {
    font-family: var(--icon-ds-font-family); /* Force font consistency in both Legacy and V4 */
}

.icon-ds-homepage-content-container {  /* when used for welcome page content, must be configured with client-specific CSS overrides */
    display: grid;
    width: 100%;
    grid-auto-flow: row;

    font-size: var(--icon-ds-global-textsize-spec);
}

.icon-ds-foreground-content-container, /* NOTE: Active selectors' initial state ideally should be present in the media query below */
.icon-ds-modal-container-standalone,
.icon-ds-form-input-button-auto:last-child:enabled:hover,
.icon-ds-form-input-button-auto:last-child:enabled:active,
.icon-ds-form-input-button-primary:enabled:hover,
.icon-ds-form-input-button-primary:enabled:active,
.overflow-menu-ds {
    box-shadow: 0px 3px 6px #00000029;
}

@media screen and (prefers-reduced-motion: no-preference) {
    .icon-ds-form-input-button-auto:last-child,
    .icon-ds-form-input-button-primary {
        transition: box-shadow 0.3s ease-out;
    }
}

.icon-ds-card-container-vertical {
    width: 100%;
    display: grid;
    grid-row-gap: 20px;
    grid-auto-flow: row;
    grid-auto-rows: max-content;
}

.icon-ds-foreground-content-container,
.icon-ds-modal-container-standalone,
.overflow-menu-ds {
    background-color: var(--icon-ds-global-background-colour);
    border-radius: 5px;
    font-size: var(--icon-ds-global-textsize-spec);
    color: var(--icon-ds-global-font-colour);
}

@media screen and (prefers-reduced-motion: no-preference) {
    .icon-ds-foreground-content-container-fadein {
        animation: keyframesForegroundContainerFadeIn_300msEaseOut 0.3s ease-out;
    }
}

.icon-ds-form-input-text,
.icon-ds-form-input-textarea,
.icon-ds-form-input-button-auto,
.icon-ds-form-input-button-primary,
.icon-ds-form-input-button-secondary {
    font-size: var(--icon-ds-global-textsize-spec);
    height: var(--icon-ds-input-height-spec);
}

.icon-ds-form-input-button-primary-small,
.icon-ds-form-input-button-secondary-small-variant {
    font-size: 12px;
    height: var(--icon-ds-input-height-small-variant);
}

.icon-ds-form-input-text,
.icon-ds-form-input-textarea {
    color: var(--icon-ds-global-font-colour);
    min-width: 300px;
    border-radius: 5px;
    padding: 10px;

    background-color: var(--icon-ds-global-background-colour);
    border: 1px solid var(--icon-ds-global-disabled-font-colour);
}

.icon-ds-form-input-text {
    padding-top: 0;
    padding-bottom: 0;
}

.icon-ds-form-input-textarea {
    width: 400px;
    height: 100px;
}

.icon-ds-form-input-textarea::placeholder,
.icon-ds-form-input-text::placeholder {
    color: var(--icon-ds-global-disabled-font-colour);
}

.icon-ds-form-input-textarea:active,
.icon-ds-form-input-textarea:focus,
.icon-ds-form-input-text:active,
.icon-ds-form-input-text:focus {
    border-color: #b7b7b7;
    outline: none;
}

.icon-ds-form-input-text-invalid,
.icon-ds-form-input-text:invalid {
    border-color:#E3382C;
}

.icon-ds-form-input-text-valid,
.icon-ds-form-input-text:required:valid {
    border-color:#599F41;
}

.icon-ds-form-input-textarea:disabled,
.icon-ds-form-input-textarea[readonly="readonly"],
.icon-ds-form-input-text:disabled,
.icon-ds-form-input-text[readonly="readonly"] {
    background-color: var(--icon-ds-global-readonly-background-colour);
    color: var(--icon-ds-global-readonly-font-colour);
}

.icon-ds-form-input-textarea-fullwidth,
.icon-ds-form-input-text-fullwidth {
    box-sizing: border-box;
    width: 100%;
}

.icon-ds-form-input-title { 
    display: block;
    cursor: text;
    outline: none;
    padding: 5px;
    color: inherit;
    background: inherit;
    border: 1px dashed var(--icon-ds-global-background-colour);
    border-radius: 5px;
    width: calc(100% - 20px);
    transition: border-color 0.2s linear;

    font-family: var(--icon-ds-font-family);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.2;
}

textarea.icon-ds-form-input-title {
    resize: none;
    height: 44px;
}

.icon-ds-form-input-title:focus,
.icon-ds-form-input-title:focus-visible {
    border-color: #000F;
}

body.experimental-dark-mode .icon-ds-form-input-title:focus,
body.experimental-dark-mode .icon-ds-form-input-title:focus-visible {
    border-color: var(--icon-ds-global-font-colour);
}

.icon-ds-form-input-title:not(input):not(textarea):empty::before,
.icon-ds-form-input-title::placeholder {
    opacity: 0.4;
}

.icon-ds-form-input-title:not(input):not(textarea):empty::before {
    content: "Enter task title...";
}

.icon-ds-form-input-button-auto,
.icon-ds-form-input-button-primary,
.icon-ds-form-input-button-secondary,
.icon-ds-form-input-button-primary-small,
.icon-ds-form-input-button-secondary-small-variant {
    box-sizing: border-box;
    border: none;
    border-radius: 5px;
    padding-left: 20px;
    padding-right: 20px;
}

a.icon-ds-form-input-button-primary, /* Increase specificity to override legacy */
.icon-ds-form-input-button-primary,
.icon-ds-form-input-button-primary:hover,
.icon-ds-form-input-button-primary:focus,
.icon-ds-form-input-button-primary-small,
a.icon-ds-form-input-button-auto:last-child,
.icon-ds-form-input-button-auto:last-child {
    color: var(--client-primary-text);
    background-color: var(--client-primary);
}

a.icon-ds-form-input-button-secondary, /* Increase specificity to override legacy */
.icon-ds-form-input-button-secondary,
.icon-ds-form-input-button-secondary:hover,
.icon-ds-form-input-button-secondary:focus,
.icon-ds-form-input-button-secondary-small-variant,
a.icon-ds-form-input-button-auto, 
.icon-ds-form-input-button-auto {
    border: 1px solid var(--client-primary);
    color: var(--client-primary);
    background-color: transparent;
}

a.icon-ds-form-input-button-auto,
a.icon-ds-form-input-button-primary,
a.icon-ds-form-input-button-secondary {
    line-height: calc(var(--icon-ds-input-height-spec) - 4px);
}

a.icon-ds-form-input-button-auto,
a.icon-ds-form-input-button-primary,
a.icon-ds-form-input-button-secondary,
a.icon-ds-form-input-button-auto:hover,
a.icon-ds-form-input-button-primary:hover,
a.icon-ds-form-input-button-secondary:hover,
a.icon-ds-form-input-button-auto:focus,
a.icon-ds-form-input-button-primary:focus,
a.icon-ds-form-input-button-secondary:focus {
    text-decoration: none; /* Override Legacy */
}

.icon-ds-form-input-button-secondary-small-variant {
    padding-top: 3px;
}

.icon-ds-form-input-button-secondary-small-variant:hover {
    color: var(--client-primary-text);
    background-color: var(--client-primary);
}

.icon-ds-form-input-button-auto:disabled,
.icon-ds-form-input-button-primary:disabled,
.icon-ds-form-input-button-secondary:disabled,
.icon-ds-form-input-button-secondary-small-variant:disabled {
    background: transparent;
    border: 1px solid var(--icon-ds-global-disabled-font-colour);
    color: var(--icon-ds-global-disabled-font-colour);
}

.icon-ds-form-input-header,
.icon-ds-form-input-label,
.icon-ds-subtitle-text {
    padding: 0;
    margin: 0;
    font-weight: initial;
    user-select: none;
}

.icon-ds-form-input-header {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.1;
}

.icon-ds-form-input-label {
    font-size: var(--icon-ds-global-textsize-spec);
}

input.icon-ds-form-input-checkbox:not(:focus-visible),
input.icon-ds-form-input-radio:not(:focus-visible) {
    outline: none;
}

.icon-ds-form-input-checkbox,
input.icon-ds-form-input-checkbox,
.icon-ds-form-input-radio,
input.icon-ds-form-input-radio {
    appearance: none; /* Remove OS styling from input elements */
    box-sizing: border-box;
    margin: 0;
    width: 16px;
    height: 16px;
    border: 1px solid var(--icon-ds-global-disabled-font-colour);
    background-color: var(--icon-ds-global-background-colour);
}

.icon-ds-form-input-checkbox,
input.icon-ds-form-input-checkbox {
    border-radius: 2.5px;
    line-height: 16px; /* Vertically center checkmark within checkbox */
    text-align: center; /* Horizontally center checkmark */
}

.icon-ds-form-input-radio,
input.icon-ds-form-input-radio {
    border-radius: 50%;
}

@media screen and (prefers-reduced-motion: no-preference) {
    .icon-ds-form-input-checkbox {
        transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    }

    .icon-ds-form-input-radio {
        transition: border 0.2s ease;
    }
}

.icon-ds-form-input-checkbox::before {
    color: #FFFFFF00;
    speak: never;
    content: "\e911";  /* NOTE: May need modifying after a Design System update. Source: ds-icon-default-check  */
    font-family: "icomoon";
    line-height: 1px;
}

.icon-ds-form-input-checkbox:checked::before {
    color: #FFFFFF;
}

.icon-ds-form-input-checkbox:checked {
    border-color: var(--icon-ds-global-readonly-font-colour);
    background-color: var(--icon-ds-global-readonly-font-colour);
}

.icon-ds-form-input-checkbox::before {
    color: #FFFFFF00;
    speak: never;
    content: "\e911";  /* NOTE: May need modifying after a Design System update. Source: ds-icon-default-check  */
    font-family: "icomoon";
    line-height: 1px;
}

.icon-ds-form-input-checkbox:checked::before {
    color: #FFFFFF;
}

.icon-ds-form-input-checkbox:checked {
    border-color: var(--icon-ds-global-readonly-font-colour);
    background-color: var(--icon-ds-global-readonly-font-colour);
}

.icon-ds-form-input-radio:checked {
    border: 5px solid var(--icon-ds-global-readonly-font-colour); 
}

.icon-ds-form-input-checkbox:disabled,
.icon-ds-form-input-radio:disabled {
    border: 1px solid var(--icon-ds-global-disabled-font-colour);
    background-color: var(--icon-ds-global-readonly-background-colour);
}

.icon-ds-form-input-checkbox:checked:disabled::before {
    color: #AEAEAE;
}

ul.icon-ds-form-list-checkbox {
    padding: 0;
    margin: 0;
    display: grid;
    grid-row-gap: 7px;
    grid-auto-flow: row;
}

ul.icon-ds-form-list-checkbox > li,
.icon-ds-form-group-radio {
    display: grid;
    grid-template-columns: 16px auto;
    grid-column-gap: 5px;
}

.icon-ds-form-group-radio {
    grid-auto-flow: row;
    grid-auto-rows: auto;
    grid-row-gap: 7px;
}

ul.icon-ds-form-list-checkbox > li > .icon-ds-form-list-checkbox,
.icon-ds-form-group-radio > .icon-ds-form-input-radio {
    grid-column: 1;
}

ul.icon-ds-form-list-checkbox > li > .icon-ds-form-input-label,
.icon-ds-form-group-radio > .icon-ds-form-input-label {
    grid-column: 2;
}

.icon-ds-form-input-button-card {
    border: 1px dashed var(--icon-ds-global-font-colour);
    font-family: var(--icon-ds-font-family);
    font-weight: 600;
    font-size: 20px;
    color: inherit;

    background: transparent;
    border-radius: 5px;

    display: grid;
    grid-template-columns: min-content 1fr;
    grid-template-rows: auto min-content auto;
    grid-column-gap: 8px;
    height: 84px;

    padding: 0;
    padding-left: 20px;

    opacity: 0.4;
}

.icon-ds-form-input-button-card:hover {
    opacity: 1.0;
}

.icon-ds-form-input-button-card > * {
    grid-row: 2;
    text-align: left;
    align-self: center;
}

.icon-ds-form-input-button-card > :first-child {
    font-size: 36px;
}

@media screen and (prefers-reduced-motion: no-preference) {
    .icon-ds-form-input-button-card {
        transition: opacity 0.3s ease-out;
    }
}

.icon-ds-progress-bar[value],
.icon-ds-progress-bar:not(:indeterminate){ /* 'value' property indicates the progress bar is in a determinate state */
    background-color: var(--client-secondary);
    appearance: none;
    border: none;
    height: 4px;
    width: 100%;
    max-width: 320px;
}

.icon-ds-progress-bar[value]::-webkit-progress-bar { /* Progress bar Background on Chrome */
    background-color: var(--client-secondary);
}

.icon-ds-progress-bar[value]::-webkit-progress-value { /* Progress bar foreground on Chrome */
    background-color: var(--client-primary);
}

.icon-ds-progress-bar[value]::-moz-progress-bar {  /* Progress bar foreground on Firefox */
    background-color: var(--client-primary);
}

.icon-ds-animated-spinner {
    display: inline-block;
    height: 44px;
    width: 44px;
    box-sizing: border-box;
    background: transparent;
    border: 4px solid var(--client-primary);
    border-radius: 44px;
    clip-path: path('M 0 22 l 22 0 l 0 -22 l 22 0 l 0 44 l -44 0 l 0 -22 Z');
}

@media screen and (prefers-reduced-motion: no-preference) {
    .icon-ds-animated-spinner {
        animation: keyframesSpinLoadingIndicator_1s 1s linear infinite;
    }
}

.icon-ds-loading-container {
    display: grid;
    height: 100%;
    grid-template-columns: auto;
    grid-template-rows: auto auto;
    grid-auto-flow: row;
    grid-row-gap: 14px;
    justify-items: center;
    user-select: none;
}

.icon-ds-loading-container > :first-child {
    font-size: 70px;
    align-self: end;
}

.icon-ds-loading-container > :last-child {
    font-size: 14px;
    align-self: start;
    text-align: center;
}

.k-grid-content > .icon-ds-loading-container,
.k-grid-content > .k-grid-norecords > .icon-ds-loading-container { /* Automatically center loading container within a kendo grid */
    width: 100%;
}

.icon-ds-modal-container-kendowindow,
.icon-ds-modal-container-standalone {
    line-height: initial;  /* Legacy override */
    color: var(--icon-ds-global-font-colour);
    background-color: var(--icon-ds-global-background-colour);
    font-size: 20px;
    display: grid;
    grid-template-columns: min-content 1fr;
    grid-template-rows: min-content minmax(100px, auto) min-content;
    grid-row-gap: 16px;
    grid-column-gap: 10px;
}

.icon-ds-modal-container-kendowindow {
    box-sizing: border-box;
    margin: calc(0px - var(--kendo-spacing-3));
    height: calc(100% + calc(var(--kendo-spacing-3) * 2));

    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 20px;
    padding-right: 20px;
}

.icon-ds-modal-container-standalone {
    padding-top: 33px;
    padding-bottom: 33px;
    padding-left: 26px;
    padding-right: 26px;
}

.icon-ds-modal-container-standalone-small {
    width: 450px;
}

.icon-ds-modal-container-standalone-medium {
    width: 520px;
}

.icon-ds-modal-container-standalone-large {
    width: 650px;
}

/* Modal Icon */
.icon-ds-modal-container-kendowindow > span:first-child,
.icon-ds-modal-container-standalone > span:first-child {
    font-size: inherit;
    display: inline-block;
    transform: scale(1.4);
}

/* Modal Header - identical to .icon-ds-form-input-header */
.icon-ds-modal-container-kendowindow > h1:nth-child(2),
.icon-ds-modal-container-standalone > h1:nth-child(2) {
    font-size: inherit;
    font-weight: 600;
    line-height: 1.1;  /* Allows modal header to be inline with the icon */
    padding: 0;
    margin: 0;
}

.icon-ds-modal-container-kendowindow > .content {
    overflow-y: auto;
    overflow-x: hidden;
}

.icon-ds-modal-container-kendowindow > .content,
.icon-ds-modal-container-standalone > .content {
    font-size: var(--icon-ds-global-textsize-spec);
    grid-row: 2;
}

.icon-ds-modal-container-kendowindow > .actions,
.icon-ds-modal-container-standalone > .actions {
    grid-row: 3;
    text-align: right;
}

.icon-ds-modal-container-kendowindow > .content,
.icon-ds-modal-container-kendowindow > .actions,
.icon-ds-modal-container-standalone > .content,
.icon-ds-modal-container-standalone > .actions {
    grid-column-start: 1;
    grid-column-end: 3;
}

/* Tabs */
.icon-ds-tab-window {
    display: grid;
    grid-template-rows: min-content min-content auto;
    grid-template-columns: 1fr;
    height: 100%;
    width: 100%;

    color: var(--icon-ds-global-font-colour);
    background-color: var(--icon-ds-global-background-colour);
}

.icon-ds-tab-window > .icon-ds-tab-container:not(:empty),
.icon-ds-tab-window > .icon-ds-tab-container:empty:last-of-type {
    margin-bottom: 6px;  /* This rule and the rule below ensures there is a 12px gap between the last tab row and the main content, even where multiple empty tab containers exist */
}

.icon-ds-tab-window > .icon-ds-tab-container:not(:empty):last-of-type {
    margin-bottom: 12px;
}

.icon-ds-tab-window > .icon-ds-tab-window-content-container {
    overflow-y: auto;
    overflow-x: hidden;
    grid-row: 3;
}

.icon-ds-tab-container {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    grid-column-gap: 1px;

    font-family: var(--icon-ds-font-family);
    font-size: var(--icon-ds-global-textsize-spec);
    margin: 0;
    padding: 0;
}

.icon-ds-tab-container > li {
    box-sizing: border-box;
    display: inline-block;
    font-size: inherit;
    color: var(--icon-ds-global-font-colour);
    list-style: none;
    user-select: none;
    padding-top: 9px;
    padding-bottom: 11px;
    padding-left: 20px;
    padding-right: 20px;

    /* For slide-underline effect (initial state) */
    background-image: linear-gradient(var(--icon-ds-global-readonly-background-colour), var(--icon-ds-global-readonly-background-colour));  /* #262626, #262626 */
    background-size: 0% 2px;
    background-position-y: 100%;
    background-position-x: 100%;
    background-repeat: no-repeat;
}

@media screen and (prefers-reduced-motion: no-preference) {
    /* For slide-underline effect (animation enable based on motion preferences) */
    .icon-ds-tab-container > li {
        transition: background-size 0.2s ease-in-out;
    }
}

.icon-ds-tab-container > li:not(.disabled) {
    cursor: pointer;
}

/* For slide-underline effect (mouse hover) */
.icon-ds-tab-container > li.active,
.icon-ds-tab-container > li:hover:not(.active):not(.disabled),
.icon-ds-tab-container > li:focus:not(.active):not(.disabled),
.icon-ds-tab-container > li:active:not(.active):not(.disabled) {
    background-image: linear-gradient(var(--icon-ds-global-disabled-font-colour), var(--icon-ds-global-disabled-font-colour)); /* #E6E6E6, #E6E6E6 */
    background-size: 100% 2px;
    background-position-x: 0%;
}

.icon-ds-tab-container > li.active {
    font-weight: bold;

    /* For slide-underline effect (active) */
    background-image: linear-gradient(var(--icon-ds-global-font-colour), var(--icon-ds-global-font-colour));
    background-size: 100% 2px;
    background-position-x: 0%;
}

.icon-ds-tab-container > li.disabled {
    background: transparent;
    color: var(--icon-ds-global-disabled-font-colour);
}

/*
Tab hover implementation as per DS document

.icon-ds-tab-container > li:hover:not(.active):not(.disabled),
.icon-ds-tab-container > li:focus:not(.active):not(.disabled),
.icon-ds-tab-container > li:active:not(.active):not(.disabled) {
    border-radius: 5px;
    background-color: #F4F4F4;
}*/

.icon-ds-tab-container > li:focus-visible {
    outline: dotted;
}

.icon-ds-tab-container-autoexpand {
    text-align: center;
    grid-auto-columns: 1fr;
}

.icon-ds-tab-container-autoexpand > li {
    padding-left: 0;
    padding-right: 0;
}

/* Page Toolbar Buttons */
.icon-ds-page-toolbar-button-container {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: var(--nav-ds-profile-actions-icon-size-px);
    grid-column-gap: var(--nav-ds-profile-actions-spacing-px);
    align-content: center;
}

.icon-ds-page-toolbar-button-container > button {
    color: inherit;
    cursor: pointer;
    height: var(--nav-ds-profile-actions-icon-size-px);
    width: var(--nav-ds-profile-actions-icon-size-px);
    font-size: var(--nav-ds-profile-actions-icon-size-px);

    padding: 0;
    margin: 0;
    border: 0;
    background: none;
}

.icon-ds-page-toolbar-button-container > button:disabled,
.icon-ds-page-toolbar-button-container > button.disabled {
    cursor: initial;
    opacity: 0.35;
}
/* #endregion */

/* #region Design-system based overflow menu */
.overflow-menu-ds {
    display: grid;
    grid-auto-flow: row;
    border: 1px solid var(--icon-ds-global-disabled-font-colour);
    min-width: 180px;
    height: auto;
    padding: 0;
    margin: 0;
    user-select: none;
}

@media screen and (prefers-reduced-motion: no-preference) {
    .overflow-menu-ds {
        animation: keyframesForegroundContainerFadeIn_300msEaseOut 0.3s ease-out;
    }
}

.overflow-menu-ds a,
.overflow-menu-ds a:hover,
.overflow-menu-ds a:focus,
.overflow-menu-ds a:active {
    outline: none;
    color: inherit;
    text-decoration: none;
}

.overflow-menu-ds > li {
    padding: 0;  /* Override on 500 page */
    list-style: none;
}

.overflow-menu-ds-top-line {
    border-top: 1px solid var(--icon-ds-global-disabled-font-colour);
}

.overflow-menu-ds > li > a {
    display: grid;
    grid-template-rows: 40px;
    grid-template-columns: 40px minmax(140px, auto);
}

.overflow-menu-ds > li > a:any-link:hover,
.overflow-menu-ds > li > a:any-link:active {
    background-color: #FAFAFA;
}

body.experimental-dark-mode .overflow-menu-ds > li > a:any-link:hover,
body.experimental-dark-mode .overflow-menu-ds > li > a:any-link:active {
    background-color: var(--icon-ds-global-readonly-background-colour);
}

.overflow-menu-ds > li > a:focus-visible {
    color: var(--nav-ds-keyboard-focus-colour);
    outline: var(--nav-ds-keyboard-focus-outline);
}

/* Disabled menu items */
.overflow-menu-ds > li > a:not(:any-link) {
    color: var(--icon-ds-global-disabled-font-colour);
}

/* Menu item icon & text label */
.overflow-menu-ds > li > a > span {
    font-size: 1.5em;
    align-self: center;
    justify-self: center;
    transform: translateY(-1px);
    pointer-events: none; /* Allows parent to be target of click events */
}

/* Menu item text label */
.overflow-menu-ds > li > a > span:only-child,
.overflow-menu-ds > li > a > span:last-child {
    grid-column: 2;
    font-size: inherit;
    justify-self: start;
    transform: unset;
    padding-right: 12px;
}
/* #endregion */

/* #region Global: Badge elements */
.icon-ds-global-badge {
    min-width: 55px;
    border-radius: 25px;
    font-family: var(--icon-ds-font-family);
    font-size: 14px;
    padding: 5px 10px;
}

.icon-ds-kendogrid-badge-container {
    display: grid;
    height: 100%;
    grid-template-columns: auto;
    grid-template-rows: auto auto;
    grid-auto-flow: row;
    justify-items: center;
    user-select: none;
}

.icon-ds-kendogrid-badge-container > :first-child {
    font-size: 70px;
    align-self: end;
}

.icon-ds-kendogrid-badge-container > :last-child {
    font-size: 14px;
    align-self: start;
    text-align: center;
}
/* #endregion */

/* #region Dark Mode overrides */
    /* #region Tabs */
    body.experimental-dark-mode .nav-tabs {
        border-color: var(--icon-ds-global-readonly-font-colour);
    }
    body.experimental-dark-mode .nav-tabs > li > a {
        color: inherit; /* Inherited colours allow tabs to be readable on pages where dark mode is not supported */
    }
    body.experimental-dark-mode .nav-tabs > li:not(.active) > a:hover {
        color: var(--icon-ds-global-font-colour);
        border-color: transparent;
        background-color: var(--icon-ds-global-readonly-background-colour);
        position: relative;
        top: -1px;
    }
    body.experimental-dark-mode .nav-tabs > li.active > a,
    body.experimental-dark-mode .nav-tabs > li.active > a:hover,
    body.experimental-dark-mode .nav-tabs > li.active > a:focus {
        color: inherit;
        border-color: var(--icon-ds-global-readonly-font-colour);
        border-bottom-color: var(--icon-ds-global-background-colour);
        background-color: transparent;
    }
    /* #endregion */

    /* #region Kendo Shared */
    body.experimental-dark-mode .k-grid,
    body.experimental-dark-mode .k-grid .k-table-td,
    body.experimental-dark-mode .k-grid-content,
    body.experimental-dark-mode .k-grid-header,
    body.experimental-dark-mode .k-header,
    body.experimental-dark-mode .k-grouping-header, /* Grid grouping panel */
    body.experimental-dark-mode .k-window,
    body.experimental-dark-mode .k-panelbar /* Accordion */  {
        color: var(--icon-ds-global-font-colour);
        border-color: var(--icon-ds-global-disabled-font-colour);
        background-color: var(--icon-ds-global-background-colour);
    }
    /* #endregion */

    /* #region kendoWindow */
    body.experimental-dark-mode .k-window {
        border-color: var(--icon-ds-global-readonly-font-colour);
    }
    body.experimental-dark-mode .k-window > .k-window-titlebar,
    body.experimental-dark-mode .k-window > .k-window-content {
        color: inherit;
        background-color: inherit;
    }
    body.experimental-dark-mode .k-window > .k-window-titlebar {
        border-bottom: transparent;
    }
    /* #endregion */

    /* #region kendoGrid */
    body.experimental-dark-mode .k-grid > .k-grid-pager,
    body.experimental-dark-mode .k-grid-content > table > tbody > tr.k-table-row:hover {
        color: inherit;
        background-color: var(--icon-ds-global-readonly-background-colour);
    }
    body.experimental-dark-mode .k-grid-content > table > tbody > tr.k-table-row-alt {
        background-color: var(--icon-ds-global-disabled-font-colour);
    }
    body.experimental-dark-mode .k-filter-menu.k-popup {
        color: var(--icon-ds-global-font-colour);
        border-color: var(--icon-ds-global-disabled-font-colour);
        background-color: var(--icon-ds-global-readonly-background-colour);
    }
    /* #endregion */
/* #endregion */