.Button {
    --Button-size: 40px;
    --Button-color: var(--color-accent);
    --Button-color-hover: var(--color-accent-lighter);

    position: relative;
    min-width: var(--Button-size);
    height: var(--Button-size);
    background-color: var(--Button-color);
    border: 0;
    border-radius: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.Button_default {
    padding: 0 16px;
    font-size: 1.125rem;
    color: var(--color-font-alt);
}

.Button_default:disabled {
    -webkit-filter: opacity(0.75) grayscale(0.25);
            filter: opacity(0.75) grayscale(0.25);
}

.Button_link {
    --Button-size: initial;
    --Button-color-hover: transparent;

    padding: 0;
    background-color: transparent;
    font-size: 1rem;
    font-weight: 600;
}

.Button_link:not(:disabled) {
    color: var(--Button-color);
}

.Button:not(:disabled):hover {
    cursor: pointer;
}

.Button:not(:disabled):not(:active):hover {
    background-color: var(--Button-color-hover);
}
.BackButton {
    height: 2.5rem;
    margin: -0.05em 0 0 -0.3em;
    font-size: 3em;
    line-height: 0.7rem;
}
.Header {
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
    max-width: var(--size-ui-width);
    margin: 0 auto;
    padding: 24px 0 32px;
    font-size: 1rem;
}

.Header-Title {
    -webkit-box-flex: 1;
            flex: 1;
    margin: 0;
    font-size: 2.25em;
    font-weight: 400;
}

.Header-Subtitle {
    margin: 4px 0 0 0.35em;
    font-size: 0.875em;
    font-weight: 600;
}

.Header-Subtitle {
    width: 100%;
    color: var(--color-font-sub);
}

@media screen and (max-width: 560px) {
    .Header {
        padding: 0 0 24px;
        min-height: 60px;
    }
}
.EmptyHint {
    text-align: center;
}

.EmptyHint-Icon {
    width: 64px;
    height: 64px;
    -o-object-fit: contain;
       object-fit: contain;
    color: var(--color-ui-stamp);
}

.EmptyHint-Title {
    margin: 4px 0;
    font-size: 1.5em;
    font-weight: 600;
    color: var(--color-ui-border);
}

.EmptyHint-Description {
    margin: 0;
    font-weight: 400;
    color: var(--color-ui-border);
}
.Panel {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    max-width: var(--size-ui-width);
    margin: 0 auto;
    font-size: 1rem;
}

.Panel-Description {
    grid-column: 1 / -1;
    margin: 0 0 8px;
    font-size: 1em;
    font-weight: 400;
}

.Panel-EmptyHint {
    position: absolute;
    grid-column: 1 / -1;
    width: 256px;
    height: 120px;
    top: calc(50vh - 60px);
    left: calc(50vw - 128px);
}

@media screen and (max-width: 720px) {
    .Panel {
        grid-template-columns: 1fr;
    }
}
.Link {
    color: var(--color-accent);
}
.Progress {
    height: 16px;
    width: 100%;
    background-color: #EEE;
    text-align: left;
}

.Progress span {
    height: 100%;
    display: inline-block;
    background-color: yellowgreen;
    -webkit-transition: width 0.2s ease-in-out;
    transition: width 0.2s ease-in-out;
}
.ApplicationView {
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  -webkit-box-align: center;
          align-items: center;
  padding: 16px;
  text-align: center;
  border-radius: 4px;
}

.ApplicationView-Progress {
    display: none;
}

.ApplicationView_clickable {
    text-decoration: none;
}

.ApplicationView_clickable:hover {
    background-color: var(--color-ui-fg-hover);
}

.ApplicationView_clickable .ApplicationView-Title {
    text-decoration: underline;
}

.ApplicationView_installing {
    -webkit-filter: grayscale(1);
            filter: grayscale(1);
}

.ApplicationView_installing .ApplicationView-Subtitle {
    display: none;
}

.ApplicationView_installing .ApplicationView-Progress {
    display: block;
}

.ApplicationView-Icon {
    width: 48px;
    height: 48px;
    margin: 0 0 12px 0;
    -o-object-fit: contain;
       object-fit: contain;
    color: var(--color-ui-icon);
}

.ApplicationView-Title {
    margin: 0;
    padding: 0 0 4px 0;
    font-size: 1em;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ApplicationView-Subtitle {
    -webkit-box-flex: 1;
            flex: 1 0 auto;
    margin: 0;
    font-size: 0.875em;
    color: var(--color-font-sub);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ApplicationsArea {
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    width: 100%;
    padding: 24px;
    border-radius: 2px;
    background-color: var(--color-ui-fg);
    -webkit-box-shadow: var(--ui-box-shadow);
            box-shadow: var(--ui-box-shadow);
    overflow: hidden;
}

.ApplicationsArea_hidden {
    display: none;
}

.ApplicationsArea-Title {
    grid-column: 1 / -1;
    margin: 0 0 8px 0;
    font-size: 1.5em;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media screen and (min-width: 840px) and (max-width: 960px) {
    .ApplicationsArea {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media screen and (min-width: 720px) and (max-width: 840px) {
    .ApplicationsArea {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (min-width: 560px) and (max-width: 720px) {
    .ApplicationsArea {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (min-width: 400px) and (max-width: 560px) {
    .ApplicationsArea {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 400px) {
    .ApplicationsArea {
        grid-template-columns: 1fr;
    }
}
.CopyIcon {
    cursor: pointer;
    line-height: 17px;
}

.ConfigsArea {
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    width: 100%;
    padding: 24px;
    border-radius: 2px;
    background-color: var(--color-ui-fg);
    -webkit-box-shadow: var(--ui-box-shadow);
            box-shadow: var(--ui-box-shadow);
    overflow: hidden;
}

.ConfigsArea_hidden {
    display: none;
}

.ConfigsArea-Title {
    grid-column: 1 / -1;
    margin: 0 0 8px 0;
    font-size: 1.5em;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 27px;
}

.ConfigsArea-Subtitle {
    grid-column: 1 / -1;
    font-weight: 600;
    padding: 12px 0 12px;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 18px;
}

.ConfigsArea-Subtitle .CopyIcon {
    padding: 12px;
    opacity: 0.5;
}

.ListItem .CopyIcon {
    color: black;
    visibility: hidden;
}

.ConfigsArea-Subtitle .CopyIcon:hover {
    opacity: 1;
}

.ConfigsArea-List {
    grid-column: 1 / -1;
    display: grid;
    gap: 6px;
    overflow: hidden;
    padding: 0;
    margin: 0;
}

.ConfigsArea-List .ListItem {
    text-decoration: none;
    cursor: pointer;
    display: -webkit-box;
    display: flex;
    -webkit-box-align: stretch;
            align-items: stretch;
    padding: 1px 12px;
}

.ListItem-Text {
    -webkit-box-flex: 1;
            flex: 1;
}

.ConfigsArea-List .ListItem:hover {
    background-color: var(--color-ui-fg-hover);
}

.ConfigsArea-List .ListItem:hover .CopyIcon {
    visibility: visible;
}

@media screen and (min-width: 840px) and (max-width: 960px) {
    .ConfigsArea {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media screen and (min-width: 720px) and (max-width: 840px) {
    .ConfigsArea {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (min-width: 560px) and (max-width: 720px) {
    .ConfigsArea {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (min-width: 400px) and (max-width: 560px) {
    .ConfigsArea {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 400px) {
    .ConfigsArea {
        grid-template-columns: 1fr;
    }
}
.Card {
    display: grid;
    grid-template-rows: auto 1fr;
    row-gap: 16px;
    padding: 24px;
    font-size: 1rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 2px;
    background-color: var(--color-ui-fg);
    -webkit-box-shadow: var(--ui-box-shadow);
            box-shadow: var(--ui-box-shadow);
    overflow: hidden;
}

.Card-Header {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
}

.Card-Icon {
    grid-row: 1 / -1;
    grid-column: 1;
    width: 36px;
    height: 36px;
    margin: 0 12px 0 0;
    -o-object-fit: contain;
       object-fit: contain;
    color: var(--color-ui-icon);
}

.Card-Title {
    grid-row: 1;
    grid-column: 2;
    margin: 0;
    font-size: 1.2em;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
}

.Card-Subtitle {
    grid-row: 2;
    grid-column: 2;
    margin: 0;
    color: var(--color-font-sub);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.Card-Description {
    font-size: 0.875em;
}
.CardWithButton-Action {
    align-self: end;
}
.CardWithLink-Link {
    display: -webkit-inline-box;
    display: inline-flex;
    -webkit-box-pack: center;
            justify-content: center;
    align-self: center;
    margin: 0 auto;
    text-decoration: none;
    font-weight: 600;
    text-transform: uppercase;
}

.CardWithLink-LinkLabel::after {
    content: '\00a0';
}

.CardWithLink-LinkIcon {
    font-size: 0.75em;
}
.CreateUserButton {
    --Button-size: 40px;
    --Button-color: var(--color-font-alt);

    margin: 0 auto;
    display: none;
}

.CreateUserButton::before {
    content: '…';
}
.LoginButton_login {
    --Button-color: var(--color-xp);
    --Button-color-hover: var(--color-xp-lighter);
}

.LoginButton-Spinner {
    position: absolute;
    margin: 0.1em 0 0 -1.25em;
}
.AdminCard {
    background: linear-gradient(250deg, hsl(220, 10%, 5%), hsl(0, 0%, 35%));
    color: var(--color-font-alt);
}

.AdminCard .Card-Subtitle {
    color: var(--color-font-disabled);
}

.AdminCard-ActionCreate {
    --Button-size: 40px;
    --Button-color: var(--color-font-alt);
    --Button-color-hover: var(--color-font-alt);

    margin: 0 auto;
}

.AdminCard-ActionCreate::before {
    content: '…';
}
.StatusInfo-Name {
    color: var(--color-font-sub);
}

.StatusInfo-Name::after {
    content: ':\00a0';
}

.StatusInfo-Value {
    color: var(--color-font-main);
}
.EndpointsArea {
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
}

.EndpointsArea_collapsed .EndpointsArea-Card:nth-child(n+4) {
    display: none;
}

.EndpointsArea_collapsed .EndpointsArea-ExpandButton {
    grid-row: 2;
}

.EndpointsArea-ExpandButton {
    --Button-size: 40px;
    --Button-color-hover: var(--color-ui-bg-hover);
    grid-column: 1 / -1;
}

.EndpointsArea-Card {
    grid-template-rows: auto 1fr minmax(40px, -webkit-max-content);
    grid-template-rows: auto 1fr minmax(40px, max-content);
}

@media screen and (min-width: 560px) and (max-width: 800px) {
    .EndpointsArea {
        grid-template-columns: repeat(2, 1fr);
    }

    .EndpointsArea_collapsed .EndpointsArea-Card:nth-child(n+3) {
        display: none;
    }
}

@media screen and (max-width: 560px) {
    .EndpointsArea {
        grid-template-columns: 1fr;
    }

    .EndpointsArea_collapsed .EndpointsArea-ExpandButton {
        grid-row: 4;
    }
}
.HomePanel {
    grid-template-columns: 1fr;
}
.TextPlaceholder {
    color: var(--color-font-disabled);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.TextPlaceholder::before {
    content: '<';
}

.TextPlaceholder::after {
    content: '>';
}
.ProjectCard {
    position: relative;
}

.ProjectCard-Link {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    line-height: 20px;
    text-align: center;
    font-size: 1.25em;
}
.Separator {
    display: inline;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.Separator::before,
.Separator::after {
    content: '\00a0';
}
.PreviewLink {
    font-weight: 600;
}
.SiteCardDescription {
    margin: 0;
    font-size: 1rem;
    color: var(--color-font-sub);
}
.SiteCard {
    position: relative;
}
.WebappCard {
    position: relative;
}

.WebappCard-Link {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    line-height: 20px;
    text-align: center;
    font-size: 1.25em;
}
.App {
    position: absolute;
    width: 100%;
    height: 100%;
    padding: 32px;
    background-color: var(--color-ui-bg);
    color: var(--color-font-main);
    font-family: var(--font-ui);
    overflow: auto;
    cursor: default;
}

.App_loading a,
.App_loading button {
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

@media screen and (max-width: 560px) {
    .App {
        padding: 16px;
    }
}

/* Open Sans */

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-Italic.ttf') format('truetype');
    font-style: italic;
}

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-SemiBold.ttf') format('truetype');
    font-weight: 600;
}

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-SemiBoldItalic.ttf') format('truetype');
    font-weight: 600;
    font-style: italic;
}

@font-face {
    font-family: 'Open Sans';
    src: url('./fonts/OpenSans-Bold.ttf') format('truetype');
    font-weight: bold;
}

:root {
    --font-ui: 'Open Sans', Arial, Helvetica, sans-serif;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.noninteractive {
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.ellipsis {
    overflow: hidden;
    white-space: pre;
    text-overflow: ellipsis;
}

.sub {
    color: var(--color-font-sub);
}

.accent {
    color: var(--color-accent);
}

.bold {
    font-weight: 600;
}

.underline {
    text-decoration: underline;
}

.effect-spin {
    -webkit-animation: effectSpinAnimation 0.5s linear infinite;
            animation: effectSpinAnimation 0.5s linear infinite;
}

@-webkit-keyframes effectSpinAnimation {
    100% {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

@keyframes effectSpinAnimation {
    100% {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

:root {
    --size-ui-width: 960px;
}

.theme-light {
    /** BACKGROUND */
    --color-ui-bg: hsl(0, 0%, 93%);
    --color-ui-bg-hover: hsl(0, 0%, 90%);

    /* Cards and Widgets */
    --color-ui-fg: hsl(0, 0%, 100%);
    --color-ui-fg-hover: hsl(0, 0%, 97%);

    --color-ui-icon: hsl(0, 0%, 20%);
    --color-ui-border: hsl(0, 10%, 80%);
    --color-ui-stamp: hsl(0, 8%, 85%);
    --color-ui-shadow: hsl(0, 0%, 50%);

    /** FONT */
    --color-font-main: hsl(0, 0%, 0%);
    --color-font-sub: hsl(0, 0%, 50%);
    --color-font-alt: hsl(0, 0%, 100%);
    --color-font-disabled: hsl(0, 0%, 70%);

    /** BACKGROUND & FONT */
    /* Main action button and links */
    --color-accent: hsl(215, 80%, 55%);
    --color-accent-lighter: hsl(215, 80%, 60%);
    /* XP logo, other corporate links */
    --color-xp: hsl(10, 85%, 55%);
    --color-xp-lighter: hsl(10, 85%, 60%);

    /** COMPLEX STYLES */
    --ui-box-shadow: 1px 1px 5px 0 hsla(0, 0%, 0%, 0.20), 0 5px 16px 0 hsla(0, 0%, 0%, 0.05);
}

html,
body {
    position: absolute;
    width: 100%;
    height: 100%;
    margin: 0;
    font-size: 14px;
}
/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
::before,
::after {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}

html {
	/* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
	font-family:
		system-ui,
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
	line-height: 1.15; /* 1. Correct the line height in all browsers. */
	-webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
	-moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
	-o-tab-size: 4;
	   tab-size: 4; /* 3 */
}

/*
Sections
========
*/

body {
	margin: 0; /* Remove the margin in all browsers. */
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
	-webkit-text-decoration: underline dotted;
	        text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
	font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
	font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
	text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

:-moz-ui-invalid {
	box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
	padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
	vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
	display: list-item;
}
