/* ===================================================== */
/*  ACLauncherControl                                      */
/* ===================================================== */

/* --- loader ------------------------------------------ */
.loader-wrapper {
    display: flex;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
}

.loader {
    display: inline-block;
    width: 30px;
    height: 30px;
    position: absolute;
    display: flex;
    /*justify-content: center;
    align-items: center;*/
    border: 4px solid #eee;
    top: 50%;
    animation: loader 2s infinite ease;
}

.loader-inner {
    vertical-align: top;
    display: inline-block;
    width: 100%;
    background-color: #eee;
    animation: loader-inner 2s infinite ease-in;
}

@keyframes loader {
    0% {
        transform: rotate(0deg);
    }

    25% {
        transform: rotate(180deg);
    }

    50% {
        transform: rotate(180deg);
    }

    75% {
        transform: rotate(360deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes loader-inner {
    0% {
        height: 0%;
    }

    25% {
        height: 0%;
    }

    50% {
        height: 100%;
    }

    75% {
        height: 100%;
    }

    100% {
        height: 0%;
    }
}

/* --- general ----------------------------------------- */
select > option {
    font-size: 1.2rem;
}

* {
    box-sizing: border-box;
}

/* --- buttons ----------------------------------------- */
.action-btns {
    margin-bottom: 2px;
    height: 40px;
}

.btn-start {
    margin-top: 0px;
    height: 40px;
    padding: 6px 5px;
}

.btn-icon {
    padding: 0px 0px 0px 0px;
    margin-top: 0px;
}

/* --- layout ------------------------------------------ */
.content-area {
    position: unset;
    width: 100%;
    height: -webkit-fill-available;
    display: flex;
    justify-content: center;
    flex-direction: row;
}

.inner-area {
    overflow: auto;
    flex-grow: 1;
    flex-shrink: 1;
    padding: 0px 0px 16px 0px;
}

/* --- launcher boxes ---------------------------------- */
.launcher-list {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    flex-direction: row;
}

.launcher-box {
    max-width: 366px;
    background-color: #454545;
    border: 1px solid #555555;
    border-radius: 5px;
    padding: 0px 6px 6px 6px;
    margin: 0px 4px 8px 4px;
    position: relative;
}

/* launcher box header: zone color dot + launcher name, side by side */
.launcher-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* --- helpers ----------------------------------------- */
.display-none {
    display: none;
    visibility: collapse;
}

.header-text {
}

.block {
    display: inline-block;
}

/* --- utilities (spacing / icon color) ---------------- */
.mt-2 {
    margin-top: 2px;
}

.icon-white {
    color: white;
}

.icon-lg {
    font-size: 28px;
}

.mr-8 {
    margin-right: 8px;
}

.mr-16 {
    margin-right: 16px;
}

.time-input {
    margin-left: 6px;
    margin-right: 6px;
    text-align: center;
    width: 45px;
}

/* --- form elements ----------------------------------- */
select {
    box-sizing: border-box;
    border: 1px solid #555555;
    border-radius: 0px;
    font-size: 16px;
    color: #f8f9fa;
    background-color: #383838;
}

input[type=text] {
    padding-left: 4px;
    box-sizing: border-box;
    border: 1px solid #555555;
    border-radius: 0px;
    font-size: 16px;
    color: #f8f9fa;
    background-color: #383838;
}

input[type=number] {
    box-sizing: content-box;
    border: 1px solid #555555;
    border-radius: 0px;
    font-size: 16px;
    color: #f8f9fa;
    background-color: #383838;
}


label {
    display: inline-block;
    margin: 0px;
}

/* --- zone tabs --------------------------------------- */
.zone-tabs {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0px 0px 6px 0px;
    margin-bottom: 0px;
    background-color: #181818;
}

.zone-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    min-width: 50px;
    background-color: #383838;
    border: 1px solid #555555;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    color: #f8f9fa;
    font-size: 15px;
    cursor: pointer;
    user-select: none;
}

.zone-tab:hover {
    background-color: #454545;
}

.zone-tab.active {
    background-color: #454545;
    border-bottom-color: var(--zone-color, #f8f9fa);
}

.zone-tab-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.zone-tab-label {
    white-space: nowrap;
}

.launcher-box.zone-hidden {
    display: none;
}

.zone-empty {
    width: 100%;
    text-align: center;
    color: #aaaaaa;
    font-size: 16px;
    padding: 24px 0;
}
