/* do not touch - start */
@font-face {
    font-family: 'MSO';
    font-style: normal;
    font-weight: 100 700;
    src: url('./mso.woff2') format('woff2');
}

html,
body {
    padding: 0px;
    margin: 0px;
    height: 100%;
    background: var(--background);
    font-family: 'Arial';
    font-size: var(--fontSize12);
    font-display: optional;
    letter-spacing: var(--letterSpace);
    word-spacing: var(--wordSpace);

    /* prevent pull to refresh and bounce */
    overscroll-behavior-y: none;
}


div {
    overflow-x: hidden;
    overflow-y: hidden;
}

input {
    padding: 0px;
    margin: 0px;
    border: none;
    outline: none;
    display: block;
    background: var(--input);
    font-family: 'Arial';
    font-size: var(--fontSize12);
    letter-spacing: var(--letterSpace);
    word-spacing: var(--wordSpace);
}

input:focus {
    background: var(--inputHover);
}

textarea {
    padding: 0px;
    margin: 0px;
    border: none;
    outline: none;
    display: block;
    background: var(--input);
    font-family: 'Arial';
    font-size: var(--fontSize12);
    letter-spacing: var(--letterSpace);
    word-spacing: var(--wordSpace);
    resize: none;
    overflow-x: hidden;
}

textarea:focus {
    background: var(--inputHover);
}

select {
    padding: 0px;
    margin: 0px;
    border: none;
    outline: none;
    display: block;
    background: none;
    font-family: 'Arial';
    font-size: var(--fontSize12);
    letter-spacing: var(--letterSpace);
    word-spacing: var(--wordSpace);
    border-radius: 0px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    /* color: inherit; */
}


.radius4 {
    border-radius: 4px;
}

.radius8 {
    border-radius: 8px;
}

.radius16 {
    border-radius: 16px;
}

.radius32 {
    border-radius: 32px;
}

.circle {
    border-radius: 50%;
}

.ellipsis {
    white-space: nowrap;
    text-overflow: ellipsis;
}

.border {
    border: 1px solid var(--border);
}

.borderT {
    border-top: 1px solid var(--border);
}

.borderB {
    border-bottom: 1px solid var(--border);
}


.mso {
    line-height: 20px;
    font-family: 'MSO';
    font-size: var(--fontSize18);
    font-weight: 300;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

:root {
    --rgb0: rgb(0, 0, 0);
    --rgb7: rgb(7, 7, 7);
    --rgb14: rgb(14, 14, 14);
    --rgb21: rgb(21, 21, 21);
    --rgb28: rgb(28, 28, 28);
    --rgb35: rgb(35, 35, 35);
    --rgb42: rgb(42, 42, 42);
    --rgb49: rgb(49, 49, 49);
    --rgb56: rgb(56, 56, 56);
    --rgb63: rgb(63, 63, 63);
    --rgb70: rgb(70, 70, 70);
    /* ... */
    --rgb126: rgb(126, 126, 126);
    /* ... */
    --rgb129: rgb(129, 129, 129);
    /* ... */
    --rgb185: rgb(185, 185, 185);
    --rgb192: rgb(192, 192, 192);
    --rgb199: rgb(199, 199, 199);
    --rgb206: rgb(206, 206, 206);
    --rgb213: rgb(213, 213, 213);
    --rgb220: rgb(220, 220, 220);
    --rgb227: rgb(227, 227, 227);
    --rgb234: rgb(234, 234, 234);
    --rgb241: rgb(241, 241, 241);
    --rgb248: rgb(248, 248, 248);
    --rgb255: rgb(255, 255, 255);

    color-scheme: light dark;

    --background: light-dark(var(--rgb227), var(--rgb49));
    --container: light-dark(var(--rgb255), var(--rgb21));

    --button: light-dark(var(--rgb234), var(--rgb42));
    --buttonHover: light-dark(var(--rgb241), var(--rgb35));

    --input: light-dark(var(--rgb234), var(--rgb42));
    --inputHover: light-dark(var(--rgb241), var(--rgb35));

    --iconButton: light-dark(var(--rgb227), var(--rgb49));
    --iconButtonHover: light-dark(var(--rgb234), var(--rgb42));

    --anyHover1: light-dark(var(--rgb241), var(--rgb35));
    --anyHover2: light-dark(var(--rgb248), var(--rgb28));

    --border: light-dark(var(--rgb227), var(--rgb49));

    --letterSpace: unset;
    --wordSpace: unset;

    --fontSize10: 10px;
    --fontSize12: 12px;
    --fontSize18: 18px;

    --midColor: light-dark(var(--rgb129), var(--rgb126));

    --negative: light-dark(var(--rgb0), var(--rgb255));
    --onNegative: light-dark(var(--rgb255), var(--rgb0));
}

/* do not touch - end */

/* page - start */
.page {
    height: 100%;
}

/* Z */
.page .Z {
    height: 100%;

    display: flex;
    justify-content: center;
    align-items: center;
}

.page .Z .co {
    width: 256px;
    background: var(--container);
    padding: 8px 8px 8px 8px;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* A */
.page .A {
    height: 100%;
    float: left;

    display: flex;
    flex-direction: column;
}

.page .A .AA {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 0px 0px 0px 0px;
}

.page .A .AB {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 1px 0px 0px 0px;

    flex: 1;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .A .AB .col {
    flex: 1;
    overflow-y: auto;
}

.page .A .AB .col .result {
    height: 32px;
    line-height: 16px;
    padding: 2px 8px 2px 8px;
    cursor: pointer;

    display: flex;
    flex-direction: column;
}

.page .A .AB .col .result:hover {
    background: var(--anyHover2);
    color: unset;
}

.page .A .AB .col .result .a {
    flex: 1;
}

.page .A .AB .col .result .b {
    flex: 1;

    color: var(--midColor);
    font-size: var(--fontSize12);
    font-variant-numeric: tabular-nums;
}

.page .A .AC {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 1px 0px 0px 0px;

    flex: 1;

    display: flex;
    flex-direction: column;
}

.page .A .AC .rooms {
    flex: 1;
    overflow-y: auto;
}

.page .A .AC .room {
    height: 20px;
    background: var(--container);
    padding: 8px 8px 8px 8px;
    cursor: pointer;

    display: flex;
    flex-direction: row;
    gap: 8px;
}

.page .A .AC .room:hover {
    background: var(--anyHover2);
}

.page .A .AC .room .rId {
    width: 40px;
    height: 20px;
    line-height: 20px;
    background: var(--button);
    text-align: center;
}

.page .A .AC .room .pName {
    height: 20px;
    line-height: 20px;

    flex: 1;
}

.page .A .AC .room .moveIn {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin-left: auto;
}

.page .A .AC .room .moveIn:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .A .AC .room .moveOut {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin-left: auto;
}

.page .A .AC .room .moveOut:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .A .AC .addIn {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin: 0px 8px 8px auto;
}

.page .A .AC .addIn:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .A .AC .room .passive {
    background: var(--buttonHover);
}

.page .A .AC .room .active {
    background: var(--negative);
    color: var(--onNegative);
}

/* B */
.page .B {
    height: 100%;
    margin: 0px 0px 0px 1px;
    float: left;

    display: flex;
    flex-direction: column;
}

.page .B .BA {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 0px 0px 0px 0px;
}

.page .B .BB {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 1px 0px 0px 0px;

    flex: 1;

    display: flex;
    flex-direction: column;
}

.page .B .BB .co {
    height: 100%;
    overflow-y: auto;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .B .BB .co .qrCo {
    flex: 1;
    
    min-height: 96px;
    padding: 8px 8px 8px 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.page .B .BB .co .dxCo {
    flex: 1;

    min-height: 20px;
    background: var(--input);
    padding: 8px 8px 8px 8px;
}

.page .B .BB .co .dxCo:focus-within {
    background: var(--inputHover);
}

.page .B .BB .co .dxCo textarea {
    width: 100%;
    height: 100%;
    background: unset;
}

.page .B .BB .co>div {
    flex-shrink: 0;
}

.page .B .BC {
    width: calc(200px - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 1px 0px 0px 0px;

    flex: 1;

    display: flex;
    flex-direction: column;
}

.page .B .BC .rooms {
    flex: 1;
    overflow-y: auto;
}

.page .B .BC .room {
    height: 20px;
    background: var(--container);
    padding: 8px 8px 8px 8px;
    cursor: pointer;

    display: flex;
    flex-direction: row;
    gap: 8px;
}

.page .B .BC .room:hover {
    background: var(--anyHover2);
}

.page .B .BC .room .rId {
    width: 40px;
    height: 20px;
    line-height: 20px;
    background: var(--button);
    text-align: center;
}

.page .B .BC .room .pName {
    height: 20px;
    line-height: 20px;

    flex: 1;
}

.page .B .BC .room .moveIn {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin-left: auto;
}

.page .B .BC .room .moveIn:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .B .BC .room .moveOut {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin-left: auto;
}

.page .B .BC .room .moveOut:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .B .BC .addIn {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;

    margin: 0px 8px 8px auto;
}

.page .B .BC .addIn:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.page .B .BC .room .passive {
    background: var(--buttonHover);
}

.page .B .BC .room .active {
    background: var(--negative);
    color: var(--onNegative);
}

/* D */
.page .D {
    width: calc((100% - 200px - 1px - 200px) /2 - 1px - 16px);
    height: calc(100% - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 0px 0px 0px 1px;
    float: left;
}

.page .D .co {
    height: 100%;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .D .co .coT {
    overflow-y: auto;
    flex: 1;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .D .co .coT .note {
    flex-shrink: 0;

    display: flex;
    flex-direction: row;
    gap: 2px;
}

.page .D .co .coT .left {
    justify-content: flex-start;
}

.page .D .co .coT .right {
    justify-content: flex-end;
}

.page .D .co .coT .left .bubble {
    order: 1;

    background: var(--buttonHover);
}

.page .D .co .coT .left .del {
    order: 2;
}

.page .D .co .coT .left .info {
    order: 3;
}

.page .D .co .coT .right .bubble {
    order: 3;

    background: var(--buttonHover);
}

.page .D .co .coT .right .del {
    order: 2;
}

.page .D .co .coT .right .info {
    order: 1;
}

.page .D .co .coT .note .bubble {
    max-width: 75%;
    padding: 12px 12px 12px 12px;
}

.page .D .co .coT .note .info {
    color: var(--midColor);
    font-size: var(--fontSize10);
    margin: auto 0px auto 0px;

    user-select: none;
}

.page .D .co .coT .note .del {
    margin: auto 0px auto 0px;
    cursor: pointer;

    flex-shrink: 0;

    user-select: none;
}

.page .D .co .coT .note .del:hover {
    color: #FF1744;
}

.page .D .co .coT .note .bubble .text {
    white-space: pre-wrap;
    word-break: break-word;
}

.page .D .co .coB {
    height: calc(192px - 32px);
    background: var(--button);
    padding: 16px 16px 16px 16px;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .D .co .coB textarea {
    width: 100%;
    height: 100%;
    background: unset;

    flex: 1;
}

.page .D .co .coB .row {
    display: flex;
    flex-direction: row;
    gap: 8px;
}

.page .D .co .coB .row>div:nth-child(1) {
    margin-left: auto;
}

/* E */
.page .E {
    width: calc((100% - 200px - 1px - 200px) /2 - 1px - 16px);
    height: calc(100% - 16px);
    background: var(--container);
    padding: 8px 8px 8px 8px;
    margin: 0px 0px 0px 1px;
    float: left;
}

.page .E .co {
    height: 100%;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .E .co .coT {
    overflow-y: auto;
    flex: 1;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .E .co .coT .flag {
    flex-shrink: 0;

    display: flex;
    flex-direction: row;
    gap: 2px;
}

.page .E .co .coT .left {
    justify-content: flex-start;
}

.page .E .co .coT .right {
    justify-content: flex-end;
}

.page .E .co .coT .left .bubble {
    order: 1;

    background: var(--buttonHover);
}

.page .E .co .coT .left .del {
    order: 2;
}

.page .E .co .coT .left .info {
    order: 3;
}

.page .E .co .coT .right .bubble {
    order: 3;

    background: var(--buttonHover);
}

.page .E .co .coT .right .del {
    order: 2;
}

.page .E .co .coT .right .info {
    order: 1;
}

.page .E .co .coT .flag .bubble {
    max-width: 75%;
    padding: 12px 12px 12px 12px;
}

.page .E .co .coT .flag .info {
    color: var(--midColor);
    font-size: var(--fontSize10);
    margin: auto 0px auto 0px;

    user-select: none;
}

.page .E .co .coT .flag .del {
    margin: auto 0px auto 0px;
    cursor: pointer;

    flex-shrink: 0;

    user-select: none;
}

.page .E .co .coT .flag .del:hover {
    color: #FF1744;
}

.page .E .co .coT .flag .bubble .text {
    white-space: pre-wrap;
    word-break: break-word;
}

.page .E .co .coT .flag .bubble .text p,
.page .E .co .coT .flag .bubble .text ul,
.page .E .co .coT .flag .bubble .text ol,
.page .E .co .coT .flag .bubble .text li {
    margin: 0;
    padding: 0;
}

.page .E .co .coT .flag .bubble .text li p {
    margin: 0;
}

.page .E .co .coB {
    height: calc(192px - 32px);
    background: var(--button);
    padding: 16px 16px 16px 16px;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .E .co .coB textarea {
    width: 100%;
    height: 100%;
    background: unset;

    flex: 1;
}

.page .E .co .coB .row {
    display: flex;
    flex-direction: row;
    gap: 8px;
}

.page .E .co .coB .row>div:nth-child(1) {
    margin-left: auto;
}

/* page - end */

/* helpers - start */
.buttonWithSymbol {
    height: 20px;
    background: var(--button);
    padding: 8px 8px 8px 8px;
    position: relative;
    cursor: pointer;
}

.buttonWithSymbol:hover {
    background: var(--buttonHover);
}

.buttonWithSymbol .s {
    width: 20px;
    height: 20px;
    text-align: center;
    position: absolute;
    top: 8px;
    left: 8px;
}

.buttonWithSymbol .t {
    line-height: 20px;
    text-align: center;
    margin: 0px 32px 0px 32px;
}

.buttonHelper {
    height: 20px;
    color: var(--midColor);
    padding: 4px 8px 4px 4px;
    cursor: pointer;

    display: flex;
    flex-direction: row;
    gap: 4px;
}

.buttonHelper:hover {
    color: unset;
    background: var(--buttonHover);
}

.buttonHelper .s {
    width: 20px;
    height: 20px;
    background: var(--button);
    text-align: center;
}

.buttonHelper .t {
    flex: 1;

    line-height: 20px;
}

.inputCo {
    height: 20px;
    padding: 8px 8px 8px 8px;
    background: var(--input);

    display: flex;
    flex-direction: row;
    gap: 8px;
}

.inputCo:focus-within {
    background: var(--inputHover);
}

.inputCo .sL {
    width: 20px;
    height: 20px;
    text-align: center;
}

.inputCo input {
    width: 100%;
    height: 20px;
    background: unset;

    flex: 1;
}

.inputCo .sR {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;
}

.inputCo .sR:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

.selectCo {
    height: 20px;
    padding: 8px 8px 8px 8px;
    background: var(--input);

    display: flex;
    flex-direction: row;
    gap: 8px;
}

.selectCo:hover {
    background: var(--inputHover);
}

.selectCo select {
    width: 100%;
    height: 20px;
    background: unset;

    flex: 1;
}

.selectCo .sR {
    width: 20px;
    height: 20px;
    background: var(--iconButton);
    text-align: center;
    cursor: pointer;
}

.selectCo .sR:hover {
    background: var(--iconButtonHover);
    color: #FF1744;
}

/* helpers - end */


/* spinner - start */
.spinner {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--border);
    border-top: 2px solid #2979FF;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* spinner - end */