/* fallback */
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 400;
  src: url(/static/fonts/icons.woff2) format('woff2');
}

.material-symbols-outlined, .mso {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;

    cursor: pointer;
}

.display-flex {
    display: flex;
}

[v-cloak] {
    display: none;
}


.form-check {
    width: 24px;
}

.alert {
    cursor: pointer;
}

.block-title-expanding {
    cursor: pointer;
    margin-left: -9px;
}

.toggler {
    font-size: 24px;
    margin-right: 5px;
    margin-bottom: 2px;
    transform: scaleY(1.5);
    transition: 0.3s;
}

.toggler.down {
    transform: rotate(90deg) scaleY(1.5);
}

.indicator {
    cursor: default;
    width: 24px;
    height: 24px;
    border-radius: 100%;
    background: gray;
}

.indicator.enabled {
    background: green;
}

input.time, input.date {
    width: 7ch;
}

.sticky-topbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--bs-body-bg);
    padding-top: 10px;
}

.time-label {
    min-width: 7ch;
}

.robot-status-item {
    background: var(--bs-gray-800);
    border-style: solid;
    border-width: var(--bs-border-width);
    border-color: var(--bs-border-color-translucent);
    border-radius: var(--bs-border-radius);
}

.rsi-indicator {
    width: 16px;
    height: 16px;
    border-radius: 100%;
    background: var(--bs-gray-600);
}

.rsi-indicator.enabled {
    background: var(--bs-success);
}

.rsi-indicator.disabled {
    background: var(--bs-danger)!important;
}

.rsi-indicator > .mso {
    font-size: 30px;
}

.rsi-value {

}

.switch-ts {

}

.alert-absolute {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    padding: 0 10px;
}

#cartography-menu, .statuses, #cleaning {
    background: rgba(var(--bs-body-bg-rgb), 0.8);
}

#cartography-menu {
    border-end-end-radius: 10px;
    overflow-y: auto;
    max-height: 100vh;
}

.statuses {
    border-end-start-radius: 10px;
}

#cleaning {
    border-start-end-radius: 10px;
}

#cleaning-info {
    transition: max-height 0.6s ease-out, margin 0.6s ease-out, transform 0.6s ease-out, opacity 0.4s ease-out;
    max-height: 300px;
}

.hide-button {
    background-color: rgba(var(--bs-body-bg-rgb), 0.8);
    border-start-end-radius: 10px;
    border-start-start-radius: 10px;
    height: 20px;
}

.hide-info {
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
    margin-bottom: 0!important;
    max-height: 0 !important;
}

#cartography-menu-toggle > .mso {
    font-size: 30px;
}

#joystick-container {
    position: relative;
    width: 150px;
    height: 150px;
    background: #ddd;
    border: 2px solid #999;
    border-radius: 50%;
    touch-action: none; /* Prevent default touch behaviors */
}

#joystick-knob {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60px;
    height: 60px;
    background: #555;
    border: 2px solid #333;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: background 0.2s;
}

#joystick-knob.active {
    background: #777;
}

#output {
    margin-top: 20px;
    font-size: 1.2em;
}

#output p {
    margin: 5px 0;
}

.circular-progress {
    /* Set the size of the circle */
    width: 560px;
    height: 560px;
    /* Make it circular */
    border-radius: 50%;
    /* Create the circular gradient based on a CSS variable --progress */
    /* Multiply progress (in percent) by 3.6 to get degrees (since 100% → 360deg) */
    background: conic-gradient(
            var(--bs-blue) 0deg calc(var(--progress, 0) * 3.6deg),
            var(--bs-dark) calc(var(--progress, 0) * 3.6deg) 360deg
    );
    /* Use flexbox to center the inner content */
    display: flex;
    align-items: center;
    justify-content: center;
    /* Position relative for inner absolute element */
    position: relative;
}

.circular-progress.pause {
    color: var(--bs-gray-500);
    background: conic-gradient(
            var(--bs-yellow) 0deg calc(var(--progress, 0) * 3.6deg),
            var(--bs-dark) calc(var(--progress, 0) * 3.6deg) 360deg
    );
}

/* Inner circle to create a “donut” effect */
.circular-progress .progress-inner {
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: #4b5764; /* or whatever background color fits your design */
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    /* Optional: add a box shadow or border */
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
}

.progress-inner span {
    font-size: 100px;
}
:root {
    --eye-size: 300px;
    --pupil-size: 120px;
    --animation-duration: 5s;
}

#backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    z-index: 1050;
    background-color: #1a1d20;
    display: flex;
    align-items: center;
    justify-content: center;
}

.eyes {
    display: flex;
    gap: calc(var(--eye-size) / 2);
}

.eye {
    width: var(--eye-size);
    height: calc(var(--eye-size) * 1.4);
    background-color: white;
    position: relative;
    overflow: hidden;
    image-rendering: pixelated;
    border-radius: 20%;
}

.eye::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: black;
    transform-origin: top;
    animation: blink var(--animation-duration) infinite;
}

@keyframes blink {
    0%, 7%, 90%, 97%, 100% {
        transform: scaleY(0);
    }
    3%, 93% {
        transform: scaleY(1);
    }
}

.pupil {
    width: var(--pupil-size);
    height: var(--pupil-size);
    background-color: black;
    position: absolute;
    top: calc(50% - var(--pupil-size) / 2);
    left: calc(50% - var(--pupil-size) / 2);
    animation: look-around var(--animation-duration) infinite;
    border-radius: 20%;
}

@keyframes look-around {
    0%, 15%, 50%, 55%, 85%, 100% {
        top: calc(50% - var(--pupil-size) / 2);
        left: calc(50% - var(--pupil-size) / 2);
    }
    25%, 40% {
        top: calc(50% - var(--pupil-size) / 2);
        left: calc(30% - var(--pupil-size) / 2);
    }
    65%, 75% {
        top: calc(50% - var(--pupil-size) / 2);
        left: calc(70% - var(--pupil-size) / 2);
    }
}

.no-select {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}