/* resets */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
/* ---------------------------------------------------------------- */
[class^="ri-"],
[class*=" ri-"] {
font-size: 1.15em;
font-family: var(--iconFontFamily) !important;
font-style: normal;
font-weight: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
&::before {
vertical-align: top;
}
}
:focus-visible {
outline: 2px dotted var(--selectionColor);
}
::selection {
background: var(--selectionColor);
}
:root {
interpolate-size: allow-keywords;
}
[data-dragover="true"] {
opacity: 0.5;
}
html,
body {
font-optical-sizing: auto;
font-size: var(--fontSize);
font-family: var(--baseFontFamily);
line-height: var(--lineHeight);
color: var(--surfaceTxtColor);
background: var(--surfaceColor);
height: 100%;
/* normalizes IBM Plex Sans font rendering between Chrome and Firefox */
letter-spacing: 0.1px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
display: block;
font-weight: normal;
}
h1 {
font-size: 26px;
line-height: 32px;
}
h2 {
font-size: 24px;
line-height: 30px;
}
h3 {
font-size: 22px;
line-height: 28px;
}
h4 {
font-size: 20px;
line-height: 26px;
}
h5 {
font-size: 18px;
line-height: 24px;
}
h6 {
font-size: 16px;
line-height: 24px;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
small {
font-size: var(--smFontSize);
line-height: var(--smLineHeight);
}
sub,
sup {
position: relative;
font-size: 0.8em;
line-height: 1;
}
sup {
vertical-align: top;
}
sub {
vertical-align: bottom;
}
p {
display: block;
margin: 10px 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
a {
color: inherit;
&:hover {
text-decoration: none;
}
}
ol,
ul {
margin: 10px 0;
padding-left: var(--spacing);
li {
margin-top: 5px;
margin-bottom: 5px;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
}
ol {
list-style: decimal;
}
ul {
list-style: disc;
}
cite {
font-style: italic;
}
blockquote {
position: relative;
display: block;
quotes: none;
margin: 10px 0;
padding-left: 10px;
font-style: italic;
color: var(--surfaceTxtHintColor);
border-left: 3px solid var(--surfaceAlt2Color);
&::before,
&::after {
content: none;
display: none;
}
& > :first-child {
margin-top: 0;
}
& > :last-child {
margin-bottom: 0;
}
}
pre {
white-space: pre-wrap;
border-radius: var(--borderRadius);
&[class*="language-"] {
padding: 0;
margin: 0;
overflow: visible;
background: none;
}
}
code,
code[class*="language-"] {
display: inline-block;
padding: 1px 3px;
font-size: 0.93em;
line-height: 1.5;
letter-spacing: 0;
font-family: var(--monospaceFontFamily);
background: var(--surfaceAlt2Color);
border-radius: var(--borderRadius);
tab-size: 4;
pre &,
&.block {
width: 100%;
display: block;
padding: max(10px, calc(var(--inputPadding) - 5px)) max(10px, var(--inputPadding));
white-space: pre-wrap;
}
}
.code-wrapper {
outline: 0;
code {
overflow: auto;
scrollbar-width: thin;
}
.footnote {
margin: 5px 0 0;
color: var(--surfaceTxtHintColor);
font-size: var(--smFontSize);
line-height: var(--smLineHeight);
&:empty {
display: none;
}
}
}
hr {
display: block;
height: 1px;
width: 100%;
border: 0;
flex-shrink: 0;
color: inherit; /* in case of currentColor */
margin: var(--spacing) 0;
background: var(--surfaceAlt2Color);
&.sm {
margin: var(--smSpacing) 0;
}
}
.block,
.full-width {
width: 100%;
}
.flex {
display: flex !important;
align-items: center;
gap: var(--spacing);
}
.inline-flex {
display: inline-flex !important;
align-items: center;
gap: var(--smSpacing);
}
.flex-wrap {
flex-wrap: wrap !important;
}
.flex-nowrap {
flex-wrap: nowrap !important;
}
.flex-fill {
flex: 1 1 auto !important;
}
.wrapper {
width: var(--wrapperWidth);
max-width: 100%;
margin: 0 auto;
&.sm {
width: var(--smWrapperWidth);
}
&.lg {
width: var(--lgWrapperWidth);
}
}
.app > .wrapper {
max-width: calc(100% - var(--spacing));
}
[hidden],
.hidden {
display: none !important;
}
.slide,
[data-slide] {
transition:
margin var(--slideAnimationSpeed),
padding var(--slideAnimationSpeed),
height var(--slideAnimationSpeed),
opacity var(--slideAnimationSpeed),
display var(--slideAnimationSpeed),
overflow var(--slideAnimationSpeed) step-end;
transition-behavior: allow-discrete;
@starting-style {
overflow: hidden;
height: 0;
opacity: 0;
padding-top: 0;
padding-bottom: 0;
margin-bottom: 0;
margin-top: 0;
}
&.hidden {
overflow: hidden !important;
height: 0 !important;
opacity: 0 !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
transition:
margin var(--slideAnimationSpeed),
padding var(--slideAnimationSpeed),
height var(--slideAnimationSpeed),
opacity var(--slideAnimationSpeed),
display var(--slideAnimationSpeed),
overflow var(--slideAnimationSpeed) step-start !important;
transition-behavior: allow-discrete !important;
}
}
/* txt helpers */
.txt-sm {
line-height: var(--smLineHeight) !important;
font-size: var(--smFontSize) !important;
}
.txt-lg {
line-height: var(--lgLineHeight) !important;
font-size: var(--lgFontSize) !important;
}
.txt-center {
text-align: center !important;
}
.txt-left {
text-align: left !important;
}
.txt-right {
text-align: right !important;
}
.txt-warning {
color: var(--warningColor) !important;
}
.txt-success {
color: var(--successColor) !important;
}
.txt-danger {
color: var(--dangerColor) !important;
}
.txt-info {
color: var(--infoColor) !important;
}
.txt-accent {
color: var(--accentColor) !important;
}
.txt-primary {
color: var(--surfaceTxtColor) !important;
}
.txt-hint {
color: var(--surfaceTxtHintColor) !important;
}
.txt-disabled {
color: var(--surfaceTxtDisabledColor) !important;
}
.txt-bold {
font-weight: bold !important;
}
.txt-normal {
font-weight: normal !important;
}
.txt-strikethrough {
text-decoration: line-through !important;
}
.txt-code {
font-size: 0.93em !important;
font-family: var(--monospaceFontFamily) !important;
white-space: pre-wrap !important;
text-align: left !important;
letter-spacing: 0;
}
.txt-nowrap {
white-space: nowrap !important;
}
.txt-ellipsis {
display: inline-block;
vertical-align: top;
flex-shrink: 1;
min-width: 10px;
max-width: 100%;
overflow: hidden;
white-space: nowrap !important;
text-overflow: ellipsis !important;
}
.faded {
opacity: 0.6;
transition: opacity var(--animationSpeed);
}
.link-faded {
opacity: 0.6;
cursor: pointer;
text-decoration: none;
transition: all var(--animationSpeed);
&:hover,
&:focus-visible,
&[data-popover-state="true"],
&:active {
opacity: 1;
}
}
.link-primary,
.link-hint {
--linkColor: var(--surfaceTxtHintColor);
--linkFocusColor: var(--surfaceTxtColor);
display: inline-flex;
vertical-align: top;
align-items: center;
gap: 5px;
cursor: pointer;
text-decoration: none;
border-radius: var(--borderRadius);
color: var(--linkColor);
transition: color var(--animationSpeed);
user-select: none;
&:hover,
&:focus-visible {
color: var(--linkFocusColor);
}
&[data-popover-state="true"],
&:active {
color: var(--linkFocusColor);
transition-duration: var(--activeAnimationSpeed);
}
}
.link-primary {
--linkColor: var(--surfaceTxtColor);
--linkFocusColor: var(--surfaceTxtColor);
&:hover,
&:focus-visible,
&[data-popover-state="true"],
&:active {
opacity: 0.9;
}
}
/* spacing helpers */
.gap-base {
gap: var(--spacing) !important;
}
.gap-sm {
gap: var(--smSpacing) !important;
}
.gap-auto {
gap: auto !important;
}
.gap-0 {
gap: 0px !important;
}
.gap-5 {
gap: 5px !important;
}
.gap-10 {
gap: 10px !important;
}
.gap-15 {
gap: 15px !important;
}
.gap-20 {
gap: 20px !important;
}
.gap-25 {
gap: 25px !important;
}
.gap-30 {
gap: 30px !important;
}
.m-base {
margin: var(--spacing) !important;
}
.m-t-base {
margin-top: var(--spacing) !important;
}
.m-r-base {
margin-right: var(--spacing) !important;
}
.m-b-base {
margin-bottom: var(--spacing) !important;
}
.m-l-base {
margin-left: var(--spacing) !important;
}
.m-sm {
margin: var(--smSpacing) !important;
}
.m-t-sm {
margin-top: var(--smSpacing) !important;
}
.m-r-sm {
margin-right: var(--smSpacing) !important;
}
.m-b-sm {
margin-bottom: var(--smSpacing) !important;
}
.m-l-sm {
margin-left: var(--smSpacing) !important;
}
.m-auto {
margin: auto !important;
}
.m-t-auto {
margin-top: auto !important;
}
.m-r-auto {
margin-right: auto !important;
}
.m-b-auto {
margin-bottom: auto !important;
}
.m-l-auto {
margin-left: auto !important;
}
.m-0 {
margin: 0px !important;
}
.m-t-0 {
margin-top: 0px !important;
}
.m-r-0 {
margin-right: 0px !important;
}
.m-b-0 {
margin-bottom: 0px !important;
}
.m-l-0 {
margin-left: 0px !important;
}
.m-5 {
margin: 5px !important;
}
.m-t-5 {
margin-top: 5px !important;
}
.m-r-5 {
margin-right: 5px !important;
}
.m-b-5 {
margin-bottom: 5px !important;
}
.m-l-5 {
margin-left: 5px !important;
}
.m-10 {
margin: 10px !important;
}
.m-t-10 {
margin-top: 10px !important;
}
.m-r-10 {
margin-right: 10px !important;
}
.m-b-10 {
margin-bottom: 10px !important;
}
.m-l-10 {
margin-left: 10px !important;
}
.m-15 {
margin: 15px !important;
}
.m-t-15 {
margin-top: 15px !important;
}
.m-r-15 {
margin-right: 15px !important;
}
.m-b-15 {
margin-bottom: 15px !important;
}
.m-l-15 {
margin-left: 15px !important;
}
.m-20 {
margin: 20px !important;
}
.m-t-20 {
margin-top: 20px !important;
}
.m-r-20 {
margin-right: 20px !important;
}
.m-b-20 {
margin-bottom: 20px !important;
}
.m-l-20 {
margin-left: 20px !important;
}
.m-t-25 {
margin-top: 25px !important;
}
.m-r-25 {
margin-right: 25px !important;
}
.m-b-25 {
margin-bottom: 25px !important;
}
.m-l-25 {
margin-left: 25px !important;
}
.m-t-30 {
margin-top: 30px !important;
}
.m-r-30 {
margin-right: 30px !important;
}
.m-b-30 {
margin-bottom: 30px !important;
}
.m-l-30 {
margin-left: 30px !important;
}
.p-base {
padding: var(--spacing) !important;
}
.p-t-base {
padding-top: var(--spacing) !important;
}
.p-r-base {
padding-right: var(--spacing) !important;
}
.p-b-base {
padding-bottom: var(--spacing) !important;
}
.p-l-base {
padding-left: var(--spacing) !important;
}
.p-sm {
padding: var(--smSpacing) !important;
}
.p-t-sm {
padding-top: var(--smSpacing) !important;
}
.p-r-sm {
padding-right: var(--smSpacing) !important;
}
.p-b-sm {
padding-bottom: var(--smSpacing) !important;
}
.p-l-sm {
padding-left: var(--smSpacing) !important;
}
.p-0 {
padding: 0px !important;
}
.p-t-0 {
padding-top: 0px !important;
}
.p-r-0 {
padding-right: 0px !important;
}
.p-b-0 {
padding-bottom: 0px !important;
}
.p-l-0 {
padding-left: 0px !important;
}
.p-5 {
padding: 5px !important;
}
.p-t-5 {
padding-top: 5px !important;
}
.p-r-5 {
padding-right: 5px !important;
}
.p-b-5 {
padding-bottom: 5px !important;
}
.p-l-5 {
padding-left: 5px !important;
}
.p-10 {
padding: 10px !important;
}
.p-t-10 {
padding-top: 10px !important;
}
.p-r-10 {
padding-right: 10px !important;
}
.p-b-10 {
padding-bottom: 10px !important;
}
.p-l-10 {
padding-left: 10px !important;
}
.p-15 {
padding: 15px !important;
}
.p-t-15 {
padding-top: 15px !important;
}
.p-r-15 {
padding-right: 15px !important;
}
.p-b-15 {
padding-bottom: 15px !important;
}
.p-l-15 {
padding-left: 15px !important;
}
.p-20 {
padding: 20px !important;
}
.p-t-20 {
padding-top: 20px !important;
}
.p-r-20 {
padding-right: 20px !important;
}
.p-b-20 {
padding-bottom: 20px !important;
}
.p-l-20 {
padding-left: 20px !important;
}
.p-t-25 {
padding-top: 25px !important;
}
.p-r-25 {
padding-right: 25px !important;
}
.p-b-25 {
padding-bottom: 25px !important;
}
.p-l-25 {
padding-left: 25px !important;
}
.p-t-30 {
padding-top: 30px !important;
}
.p-r-30 {
padding-right: 30px !important;
}
.p-b-30 {
padding-bottom: 30px !important;
}
.p-l-30 {
padding-left: 30px !important;
}
.loader {
--loaderSize: 24px;
display: inline-flex;
gap: 5px;
align-items: center;
vertical-align: top;
text-align: center;
line-height: 1;
color: var(--surfaceAlt5Color);
opacity: 0;
animation: scaleIn var(--animationSpeed) 0.1s forwards;
&::before {
content: var(--loaderIcon);
display: block;
user-select: none;
align-content: center;
text-align: left;
font-weight: normal;
color: currentColor;
line-height: var(--loaderSize);
font-size: var(--loaderSize);
font-family: var(--iconFontFamily);
animation: rotate var(--loaderAnimationSpeed) infinite linear;
}
&.sm {
--loaderSize: 20px;
font-size: var(--smFontSize);
}
&.lg {
--loaderSize: 33px;
font-size: var(--lgFontSize);
}
}
@keyframes shine {
to {
background-position-x: -200%;
}
}
.skeleton-loader {
position: relative;
display: block;
width: 100%;
height: 12px;
margin: 5px 0;
border-radius: var(--borderRadius);
background: var(--surfaceAlt1Color);
background: linear-gradient(
90deg,
var(--surfaceAlt1Color) 8%,
var(--surfaceAlt2Color) 18%,
var(--surfaceAlt1Color) 33%
);
background-size: 200% 100%;
animation:
fadeIn var(--animationSpeed),
shine 0.8s linear infinite;
&.sm {
height: 8px;
}
&.lg {
height: 18px;
}
}
.alert {
display: block;
width: 100%;
align-content: center;
min-height: var(--lgBtnHeight);
padding: max(5px, calc(var(--inputPadding) - 5px)) max(10px, var(--inputPadding));
border-radius: var(--borderRadius);
color: var(--alertTxtColor);
background: var(--surfaceAlt2Color);
border: 2px solid var(--surfaceAlt4Color);
code,
.label,
hr {
background: color-mix(in srgb, currentColor, transparent 90%);
}
p {
margin: 5px 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
/* variants */
&.info {
border-color: var(--infoColor);
background: var(--surfaceInfoColor);
}
&.success {
border-color: var(--successColor);
background: var(--surfaceSuccessColor);
}
&.warning {
border-color: var(--warningColor);
background: var(--surfaceWarningColor);
}
&.danger {
border-color: var(--dangerColor);
background: var(--surfaceDangerColor);
}
}
.label {
display: inline-flex;
align-items: center;
text-align: center;
justify-content: center;
vertical-align: middle;
flex-shrink: 0;
width: auto;
max-width: 100%;
gap: 5px;
padding: 5px 7px;
min-width: 0;
min-height: 25px;
font-weight: normal;
word-break: normal;
text-decoration: none;
font-size: var(--smFontSize);
line-height: calc(var(--smFontSize) + 2px);
border-radius: var(--borderRadius);
color: var(--surfaceTxtColor);
background: var(--surfaceAlt3Color);
border: 0px solid var(--surfaceAlt5Color);
/* nested labels */
.label {
border-width: 1px;
border-color: var(--surfaceAlt5Color);
}
&.sm {
padding: 3px 5px;
min-height: 20px;
font-size: calc(var(--smFontSize) - 2px);
}
/* color variations */
&.info {
background: var(--surfaceInfoColor);
.label {
border-color: var(--infoColor);
}
}
&.success {
background: var(--surfaceSuccessColor);
.label {
border-color: var(--successColor);
}
}
&.warning {
background: var(--surfaceWarningColor);
.label {
border-color: var(--warningColor);
}
}
&.danger {
background: var(--surfaceDangerColor);
.label {
border-color: var(--dangerColor);
}
}
&.handle {
outline: 0;
cursor: pointer;
user-select: none;
transition: opacity var(--animationSpeed);
&:hover,
&:focus-visible {
opacity: 0.9;
}
&:active {
opacity: 0.8;
transition-duration: var(--activeAnimationSpeed);
}
}
}
.breadcrumbs {
display: inline-flex;
align-items: center;
gap: 30px;
min-width: 0;
max-width: calc(100% - 50px);
font-size: 1.286rem;
font-weight: normal;
color: var(--surfaceTxtHintColor);
> div,
> span,
> a,
> button {
position: relative;
&::after {
content: "/";
display: inline-block;
vertical-align: top;
position: absolute;
right: -18px;
top: 0;
height: 100%;
line-height: 1;
cursor: default;
font-size: 0.85em;
user-select: none;
pointer-events: none;
align-content: center;
color: var(--surfaceTxtDisabledColor);
}
&:last-child {
color: var(--surfaceTxtColor);
flex-shrink: 1;
min-width: 0;
max-width: 400px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
position: relative;
&::after {
content: none;
display: none;
}
}
@media (max-width: 800px) {
display: none;
&:last-child {
display: block;
}
}
}
a {
outline: 0;
cursor: pointer;
text-decoration: none;
color: var(--surfaceTxtHintColor);
transition: color var(--animationSpeed);
&:hover,
&:focus-visible {
color: var(--surfaceTxtColor);
}
}
}
.copy-to-clipboard {
cursor: pointer;
outline: 0;
user-select: none;
text-decoration: none;
display: inline-flex;
vertical-align: middle;
align-items: center;
line-height: 1;
gap: 5px;
color: var(--surfaceTxtHintColor);
transition: color var(--animationSpeed);
.copy-icon {
font-size: var(--smFontSize);
}
&:hover,
&:active {
color: var(--surfaceTxtColor);
}
&.active {
color: var(--successColor);
}
/* make it more easy clickable */
.label & {
padding: 5px;
margin: -5px;
align-self: stretch;
}
}
.thumb {
--thumbSize: var(--btnHeight);
outline: 0;
flex-shrink: 0;
text-decoration: none;
width: var(--thumbSize);
aspect-ratio: 1;
background: var(--surfaceAlt1Color);
border-radius: var(--borderRadius);
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
color: var(--surfaceTxtHintColor);
font-size: var(--fontSize);
line-height: var(--lineHeight);
overflow: hidden;
transition:
border var(--animationSpeed),
opacity var(--animationSpeed);
border: 1px solid var(--surfaceAlt3Color);
img {
width: 100%;
height: auto;
max-width: 100%;
transition: opacity var(--animationSpeed);
}
&.loading {
background: linear-gradient(
90deg,
var(--surfaceAlt1Color) 0%,
var(--surfaceColor) 25%,
var(--surfaceAlt1Color) 50%
);
background-size: 200% 100%;
animation: shine 0.85s 0.2s linear infinite;
img {
opacity: 0;
}
}
&.lg {
--thumbSize: 80px;
font-size: var(--lgFontSize);
}
&.sm {
--thumbSize: var(--smBtnHeight);
font-size: var(--smFontSize);
line-height: var(--smLineHeight);
}
&.info {
border: 1px solid var(--infoColor);
}
&.success {
border: 1px solid var(--successColor);
}
&.warning {
border: 1px solid var(--warningColor);
}
&.danger {
border: 1px solid var(--dangerColor);
}
}
.hanlde.thumb,
button.thumb,
a.thumb {
cursor: pointer;
&:hover,
&:active,
&:focus-visible {
opacity: 0.8;
}
&:active {
opacity: 0.6;
transition-duration: var(--activeAnimationSpeed);
}
}
.animate-fadeIn {
animation: fadeIn var(--animationSpeed);
}
.animate-delayed-fadeIn {
opacity: 0;
animation: fadeIn var(--animationSpeed) var(--animationSpeed) forwards;
}
.formatted-date {
.missing-value,
.primary-date,
.secondary-date {
display: block;
width: 100%;
}
.secondary-date {
color: var(--surfaceTxtHintColor);
font-size: var(--smFontSize);
line-height: var(--smLineHeight);
margin-top: 3px;
}
.missing-value {
text-align: left;
}
/* variants */
&.short {
text-align: center;
white-space: nowrap;
.secondary-date {
font-size: 0.87em;
margin-top: 0;
}
}
}
.section-heading {
display: flex;
align-items: center;
gap: 10px;
color: var(--surfaceTxtHintColor);
margin: 0 0 var(--smSpacing);
.field {
width: auto;
}
}
.main-logo {
max-height: 40px;
}
.dragline {
position: relative;
z-index: 9;
flex-shrink: 0;
height: 100%;
width: 2px;
padding: 0;
margin: 0;
background: none;
cursor: ew-resize;
box-sizing: content-box;
user-select: none;
transition: background var(--animationSpeed);
&:hover,
&:active,
&.dragging {
z-index: 101;
background: var(--surfaceAlt3Color);
}
}