﻿:root {
    /* corporate identity values */
    --v2-theme-primary-color: #e40039;
    --v2-theme-primary-highlight-color: #ff0040;
    --v2-theme-primary-foreground-color: white;
    --v2-theme-warning-color: #b58105;
    --v2-theme-warning-background-color: #fff8db;
    --v2-theme-info-color: #2185d0;
    --v2-theme-info-background-color: #dff0ff;
    --v2-theme-error-color: #db2828;
    --v2-theme-error-background-color: #ffe8e6;
    /* tech */
    --v2-scaled-border-width: 1px;
    /* derived values */
    /* https://codepen.io/sosuke/pen/Pjoqqp */
    --v2-theme-primary-icon-filter: invert(13%) sepia(76%) saturate(7204%) hue-rotate(340deg) brightness(87%) contrast(105%);
    --v2-theme-primary-foreground-icon-filter: invert(1);
    --v2-theme-warning-icon-filter: invert(46%) sepia(98%) saturate(1512%) hue-rotate(20deg) brightness(91%) contrast(96%);
    --v2-theme-info-icon-filter: invert(43%) sepia(39%) saturate(950%) hue-rotate(163deg) brightness(97%) contrast(100%);
    --v2-theme-error-icon-filter: invert(21%) sepia(39%) saturate(4456%) hue-rotate(342deg) brightness(108%) contrast(100%);
    --v2-theme-success-icon-filter: invert(45%) sepia(20%) saturate(1401%) hue-rotate(69deg) brightness(93%) contrast(94%);
    --v2-theme-inline-icon-filter: invert(57%) sepia(14%) saturate(0%) hue-rotate(257deg) brightness(92%) contrast(81%);
    --v2-theme-background-color: white;
    --v2-theme-background-disabled-color: #eee;
    --v2-theme-text-color: black;
    --v2-theme-text-disabled-color: #bbb;
    --v2-theme-border-strong-color: #282828;
    --v2-theme-border-light-color: #bbb;
    --v2-theme-border-lighter-color: #ddd;
    --v2-theme-validation-failed-color: red;
    --v2-theme-table-hover-color: var(--v2-theme-primary-color);
    --v2-theme-table-border-color: #ccc;
    --v2-theme-table-vertical-border-color: #eee;
    --v2-theme-table-alternate-row-color: #f8f8f8;
    --default-margin: 4px;
    /* technical */
    --style-guide-validation-failed-color: red;
}

@media screen and (-webkit-device-pixel-ratio: 1.5),
screen and (-moz-device-pixel-ratio: 1.5) {
     :root {
        --v2-scaled-border-width: 1.334px;
    }
}

@media screen and (-webkit-device-pixel-ratio: 2),
screen and (-moz-device-pixel-ratio: 2) {
     :root {
        --v2-scaled-border-width: 1.5px;
    }
}

.v2 {
    line-height: 1.4;
}

.v2 ul {
    margin-block-start: 0.5em;
    margin-block-end: 0.5em;
}

.v2 h1 {
    font-size: 1.4em;
    font-weight: normal;
    margin-top: 0;
    margin-bottom: 0;
}

.v2 h1:not(:last-child) {
    margin-bottom: var(--default-margin);
}

.v2 h2 {
    font-size: 1.2em;
    font-weight: normal;
    margin-top: 0;
    margin-bottom: 0;
}

.v2 h2:not(:last-child) {
    margin-bottom: var(--default-margin);
}

.v2 p {
    font-size: 1em;
    margin-top: 0;
    margin-bottom: 0;
}

.v2 p:not(:last-child) {
    margin-bottom: var(--default-margin);
}

.v2 hr {
    border: 0;
    border-top: 1px solid #ccc;
    margin: 0;
    margin-top: 8px;
    margin-bottom: var(--default-margin);
}

.v2-icon {
    width: 20px;
    height: 20px;
}

.v2-overlay-faded {
    opacity: 0.5;
    pointer-events: none;
    user-select: none;
}

.v2-icon.style-compact {
    width: 15px;
    height: 15px;
}

.v2-icon.style-primary {
    filter: var(--v2-theme-primary-icon-filter);
}

.v2-icon.style-warning {
    filter: var(--v2-theme-warning-icon-filter);
}

.v2-icon.style-info {
    filter: var(--v2-theme-info-icon-filter);
}

.v2-icon.style-error {
    filter: var(--v2-theme-error-icon-filter);
}

.v2-icon.style-success {
    filter: var(--v2-theme-success-icon-filter);
}

.v2-icon.style-inactive {
    opacity: 0.5;
}

.v2-icon.style-inline {
    height: 18px;
    position: absolute;
    float: left;
    top: -2px;
    margin-right: 0;
    filter: var(--v2-theme-inline-icon-filter);
}

.v2-icon.style-inline-dimmed {
    height: 18px;
    position: absolute;
    float: left;
    top: -2px;
    margin-right: 0;
    filter: var(--v2-theme-inline-icon-filter);
    opacity: 0.5;
}

.v2 .icon-multiline-text {
    margin-top:2px;
}

.v2 span.validation-failed {
    color: var(--v2-theme-validation-failed-color);
}

.v2 span.required-validation-failed {
    padding-left: 5px;
    color: var(--v2-theme-validation-failed-color);
    border-left: 2px solid var(--v2-theme-validation-failed-color);
}

.v2 span.disabled {
    color: var(--v2-theme-text-disabled-color);
}

.v2-dom-validation-failed {
    outline: 2px dashed red;
    outline-offset: 1px;
}

/* make tippy tooltips stand out more */
.tippy-box[data-theme~=light-border] {
    box-shadow: 1px 1px 4px #aaa !important;
}

.v2 .margin-small {
    margin:5px;
}

.v2 .margin {
    margin: 10px;
}

.v2 .margin-large {
    margin: 20px;
}

.v2 .margin-extra-large {
    margin: 30px;
}

.v2 .margin-before-small {
    margin-top:5px;
}

.v2 .margin-before {
    margin-top: 10px;
}

.v2 .margin-before-large {
    margin-top: 20px;
}

.v2 .margin-before-extra-large {
    margin-top: 30px;
}

.v2 .margin-after-small {
    margin-bottom: 5px;
}

.v2 .margin-after {
    margin-bottom: 10px;
}

.v2 .margin-after-large {
    margin-bottom: 20px;
}

.v2 .margin-after-extra-large {
    margin-bottom: 30px;
}

.v2 .margin-left-small {
    margin-left: 5px;
}

.v2 .margin-left {
    margin-left: 10px;
}

.v2 .margin-left-extra-large {
    margin-left: 30px;
}

.v2 .margin-right {
    margin-right: 10px;
}

.v2 .padding-small {
    margin: 5px;
}

.v2 .padding {
    margin: 10px;
}

.v2 .padding-large {
    padding: 20px;
}

.v2 .padding-extra-large {
    padding: 30px;
}

.v2 .padding-before-small {
    padding-top: 5px;
}

.v2 .padding-before {
    padding-top: 10px;
}

.v2 .padding-before-large {
    padding-top: 20px;
}

.v2 .padding-before-extra-large {
    padding-top: 30px;
}

.v2 .padding-after-small {
    padding-bottom: 5px;
}

.v2 .padding-after {
    padding-bottom: 10px;
}

.v2 .padding-after-large {
    padding-bottom: 20px;
}

.v2 .padding-after-extra-large {
    padding-bottom: 30px;
}