
/*#region ================== DEFAULT */
    body,
    body.dark {
        background: var(--mainBg) !important;
    }
    a:not(.cr-btn),
    .btn-link {
        color: var(--primary);
        text-decoration: none;
    }
    body.dark a:not(.cr-btn),
    body.dark .btn-link {
        color: var(--orange);
    }
    a:not(.cr-btn):hover,
    .btn-link:hover {
        color: var(--blue) !important;
    }

    .validation-message {
        color: var(--red);
        font-size: .65rem;
        font-weight: 400;
        margin-top: .5rem;
    }
    body.dark .validation-message {
        color: var(--orange);
    }
/*#endregion ================== DEFAULT END */

/*#region ================== ERROR UI */
    #blazor-error-ui {
        display: none;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 1.5rem;
        width: 100%;
        box-sizing: border-box;
        pointer-events: none;
        z-index: 999999;
    }
    #blazor-error-ui .wrap-error {
        position: relative;
        display: flex;
        align-items: center;
        gap: 1rem;
        max-width: 700px;
        padding: .75rem 1rem;
        margin: 0 auto;
        background: linear-gradient(to right, hsl(from var(--red) h s 55) 50%, hsl(from var(--red) h s 65));
        border-radius: 1rem;
        animation: errorShow .5s linear forwards;
        pointer-events: auto;
    }
    @keyframes errorShow {
        from {
            opacity: 0;
            transform: translateY(50%);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    #blazor-error-ui .img {
        min-width: 70px;
        width: 70px;
        height: 70px;
        padding: .25rem;
        background-color: var(--putih);
        border-radius: 50%;
        overflow: hidden;
    }
    #blazor-error-ui img {
        width: 100%;
        height: 100%;
    }
    #blazor-error-ui .txt {
        flex: 1;
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        gap: 1.5rem;
        color: var(--putih);
        user-select: none;
    }
    #blazor-error-ui .txt p:nth-child(1) {
        font-size: 1.25rem;
        font-weight: 600;
        margin-bottom: .25rem;
    }
    #blazor-error-ui .txt p:nth-child(2) {
        font-size: .9rem;
        line-height: 1.3;
        margin-bottom: 0;
    }
    #blazor-error-ui .reload {
        color: var(--hitam);
        margin-right: 1rem;
        margin-bottom: .25rem;
        padding: .3rem .75rem;
        background-color: var(--putih);
        border-radius: .5rem;
    }
    #blazor-error-ui .dismiss {
        position: absolute;
        right: .25rem;
        top: .25rem;
        width: 30px;
        height: 30px;
        display: grid;
        place-items: center;
        color: var(--yellow);
        font-size: 1rem;
        border-radius: 50%;
        cursor: pointer;
    }
/*#endregion ================== ERROR UI END */

/*#region ================== MAIN LOADING */
    .wrap-main-loader {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100vh;
    }
    .main-loader {
        position: relative;
        width: fit-content;
        height: fit-content;
        margin-bottom: 1rem;
    }
    .main-loader .loader {
        width: 100px;
        aspect-ratio: 1;
        border-radius: 50%;
        background: 
            radial-gradient(farthest-side,var(--clr300) 94%,#0000) top/10px 10px no-repeat,
            conic-gradient(#0000 30%,var(--clr300));
        -webkit-mask: radial-gradient(farthest-side,#0000 calc(100% - 10px),#000 0);
        animation: mainLoader 1s infinite linear;
    }
    @keyframes mainLoader {
        100% {
            transform: rotate(1turn)
        }
    }
    .main-loader svg {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        color: var(--primary);
        width: 45px;
        height: 45px;
        margin-top: .15rem;
        opacity: .9;
    }
    .wrap-main-loader p {
        font-size: 1.4rem;
        font-weight: 800;
        text-align: center;
        margin-bottom: .1rem;
    }
    .loading-progress-text {
        color: var(--grey);
        text-align: center;
    }
    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "0%");
    }
/*#endregion ================== MAIN LOADING END */

/*#region ================== AUTHORIZING */
    .authorizing-screen {
        min-height: 100vh;
        display: grid;
        place-items: center;
        background: var(--soft-grey);
    }
    .authorizing-card {
        display: flex;
        align-items: center;
        gap: .75rem;
        padding: 1rem 1.25rem;
        border-radius: 1rem;
        background: var(--white);
        font-weight: 600;
        box-shadow: 0 12px 24px var(--shadow);
    }
    .authorizing-spinner {
        position: relative;
        display: grid;
        place-items: center;
        color: var(--grey);
        width: 35px;
        height: 35px;

        &::before {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            border: 4px solid hsl(from var(--black) h s l / .25);
            border-top-color: var(--primary);
            animation: authorizing-spin .75s linear infinite;
        }
    }
    @keyframes authorizing-spin {
        to {
            transform: rotate(1turn);
        }
    }
/*#endregion ================== AUTHORIZING END */

/*#region ================== CUSTOM TOAST */
    .blazored-toast {
        padding: 1.25rem !important;
        border-radius: 1rem !important;
    }
    .blazored-toast-body .blazored-toast-header h5 {
        font-size: 1.25rem !important;
        line-height: 1 !important;
        margin-bottom: .25rem !important;
    }
    .blazored-toast-body .blazored-toast-header .blazored-toast-close {
        color: rgba(0,0,0,.5) !important;
        font-size: 1rem !important;
        line-height: 1;
        padding: 0 !important;
    }
/*#endregion ================== CUSTOM TOAST END */

/*#region ================== CUSTOM SCROLLBAR */
    *::-webkit-scrollbar {
        width: 10px;
    }
    *::-webkit-scrollbar-track {
        background: hsl(from var(--grey) h s l / .2);
    }
    *::-webkit-scrollbar-thumb {
        background-color: var(--primary);
        background: linear-gradient(to bottom, hsl(from var(--primary) h s 60) 30%, hsl(from var(--primary) h s 80) 100%);
        border: 2px solid transparent;
        border-radius: 1rem;
        background-clip: content-box;
    }
/*#endregion ================== CUSTOM SCROLLBAR END */

/*#region ================== HIDE ARROW INPUT NUMBER */
    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }
    /* Firefox */
    input[type=number] {
        -moz-appearance: textfield;
    }
/*#endregion ================== HIDE ARROW INPUT NUMBER END */

/*#region ================== SELECTION COLOR*/
    ::selection {
        color: var(--putih);
        background: var(--red);
    }
/*#endregion ================== SELECTION COLOR END */

/*#region ================== ANTMODAL */
    :is(#warningPopup, #logoutPopup, #lupaPassword, #loadingFullPage, #aturLeadExpiry, #aturAssignmentHours, #detailLampiranInteraksi,
    #failedReasonPopup, #confirmNewData)
    .ant-modal-centered .ant-modal {
        margin: auto;
    }
    .ant-modal .ant-modal-body {
        min-height: 200px;
    }
    :is(#warningPopup, #logoutPopup, #lupaPassword, #loadingFullPage, #aturLeadExpiry, #aturAssignmentHours, #detailLampiranInteraksi,
    #failedReasonPopup, #confirmNewData)
    .ant-modal .ant-modal-body {
        min-height: unset;
    }
    .ant-modal .ant-modal-body .isi {
        position: relative;
        flex: 1;
        color: var(--black);
        font-size: 1rem;
        font-weight: 400;
        padding: 1.25rem;
        overflow: hidden auto;
    }
    .ant-modal .ant-modal-body:has(.tombol) .isi {
        padding-bottom: 0 !important;
    }
    .ant-modal .ant-modal-body .tombol {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: .5rem;
        padding: 1rem;
    }
/*#endregion ================== ANTMODAL END */

/*#region ================== ALL INDEX */
    .idx-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
        padding: 1.5rem;
    }
    .idx-title {
        display: flex;
        align-items: center;
        gap: .75rem;

        i {
            display: grid;
            place-items: center;
            width: 45px;
            aspect-ratio: 1;
            color: var(--putih);
            font-size: 1.5rem;
            background: var(--primary);
            border-radius: 1rem;
        }
        p:first-child {
            font-size: 1.3rem;
            font-weight: 700;
            line-height: 1;
            margin-bottom: 5px;
        }
        p:last-child {
            color: var(--grey);
            font-size: .85rem;
            line-height: 1.2;
            margin-bottom: 0;
        }
    }
    .idx-action {
        flex: 1;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: .75rem;

        .search {
            flex: 1;
            position: relative;
            max-width: 350px;

            i {
                position: absolute;
                top: 30%;
                left: .75rem;
                color: var(--grey);
                vertical-align: -2px;
            }
            .cr-input {
                padding-left: 2.25rem;
            }
            .cr-input:focus + i {
                color: var(--primary);
            }
        }
        .cr-square {
            padding: 0 .68rem !important;
            border-color: var(--soft-grey);
        }
    }

    .idx-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow: hidden auto;
    }
    .idx-subtitle {
        padding: .5rem 2.5rem 0 2.5rem;
        margin-bottom: .5rem;
        pointer-events: none;

        > p {
            color: var(--grey);
            font-size: .8rem;
            font-weight: 600;        
        }
    }
    .idx-subtitle,
    .idx-item {
        display: grid;
        grid-template-columns: var(--idxGrid);
        align-items: center;
        gap: .5rem;

        > p {
            text-transform: capitalize;
            margin-bottom: 0;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }
        > p.nocap {
            text-transform: unset;
            margin-bottom: 0;
        }
    }
    .idx-list {
        flex: 1;
        padding: 0 1.5rem 1rem 1.5rem;
        overflow: hidden auto;
    }
    .idx-item {
        position: relative;
        min-height: 55px;
        font-size: 1rem;
        font-weight: 400;
        padding: 0 1rem;
        margin-bottom: .75rem;
        background-color: var(--white);
        border: 1px solid transparent;
        border-radius: 1rem;
        box-shadow: 0 0 5px 0 var(--shadow);
        transition: var(--anim);
        isolation: isolate;
        cursor: pointer;
        overflow: hidden;

        &:not(:last-child) {
            margin-bottom: .5rem;
        }
        > p:first-child {
            font-weight: 600;
        }
        .stat {
            --statClr: var(--primary);

            position: relative;
            width: fit-content;
            color: var(--statClr);
            font-size: .7rem;
            font-weight: 600;
            padding: .25rem .75rem .25rem .6rem;
            background-color: hsl(from var(--statClr) h s l / .15);
            border-radius: 3rem;

            &::before {
                content: '';
                display: inline-block;
                width: 6px;
                height: 6px;
                vertical-align: 2px;
                margin-right: .35rem;
                background-color: var(--statClr);
                border-radius: 50%;
            }
        }
        .stat.orange {
            --statClr: var(--orange);
        }
        .stat.green {
            --statClr: var(--green);
        }
        .stat.red {
            --statClr: var(--red);
        }
        .stat.grey {
            --statClr: var(--grey);
        }
    }
    .idx-item:hover {
        border-color: hsl(from var(--primary) h s l / .5);
        box-shadow: 2px 6px 15px 6px hsl(from var(--primary) h s l / .15);
    }
/*#endregion ================== ALL INDEX END */

/*#region ================== OBSERVER TEXT */
    .observer-text {
        height: 1px;
        opacity: 0;
        pointer-events: none;
        overflow: hidden;
    }
/*#endregion ================== OBSERVER TEXT END */

/*#region ================== CUSTOM INPUT PHONE */
    .asterisk {
        display: inline-block;
        color: var(--red);
        font-size: 1.25rem;
        line-height: 1;
        margin-left: .2rem;
        vertical-align: middle;
    }

    .prefix-input {
        display: flex;
        align-items: center;
        gap: .75rem;
        min-height: 37.6px;
        padding: 0 .75rem 0 .5rem;
        background-color: var(--white);
        border: 1px solid var(--border);
        border-radius: .5rem;

        .nat-select {
            --containHeight: 34px;
            --selectedWidth: 60px;

            position: relative;
            display: grid;
            place-content: center;
            height: 35.6px;
            width: var(--selectedWidth);
            cursor: pointer;
            z-index: 5;
        }
    
        .nat-selected {
            position: relative;
            display: flex;
            justify-content: space-between;
            align-items: center;
            width: var(--selectedWidth);
            height: var(--containHeight);
            user-select: none;

            img {
                width: var(--containHeight);
                height: var(--containHeight);
                object-fit: contain;
            }
            span {
                display: inline-block;
                font-size: .9rem;
            }
        }
        
        .nat-option {
            --optWidth: 175px;

            position: absolute;
            top: 0;
            width: var(--optWidth);
            height: 0;
            display: flex;
            flex-direction: column;
            gap: .25rem;
            opacity: 0;
            pointer-events: none;
            overflow: hidden;
            background: var(--white);
            border: 1px solid var(--border);

            input {
                display: none;
            }
            label {
                position: relative;
                display: block;
                width: 100%;
                height: var(--containHeight);
                font-size: .85rem;
                padding: 0 .25rem;
                border-radius: .25rem;
                cursor: pointer;

                &:has(input:checked),
                &:hover {
                    background: var(--soft-grey);
                }
                span {
                    display: flex;
                    align-items: center;
                }
                img {
                    width: calc(var(--containHeight) * .7);
                    height: calc(var(--containHeight) * .7);
                    object-fit: contain;
                    margin-right: .25rem;
                }
            }
        }
        .nat-select:focus .nat-option {
            top: calc(var(--containHeight) + .5rem);
            height: calc(var(--containHeight) *2);
            padding: .35rem;
            border-radius: .5rem;
            opacity: 1;
            pointer-events: all;
        }

        > input {
            padding: 0;
            padding-left: .75rem;
            background: transparent;
            border: none;
            border-left: 1px solid var(--border);
            outline: none;
            box-shadow: none;
        }
        &:has(input:focus) {
            border-color: var(--cr-primary-custom, var(--cr-primary));
            box-shadow: 0 0 0 .3rem hsl(from var(--cr-primary-custom, var(--cr-primary)) h s l / .3);
        }
    }
/*#endregion ================== CUSTOM INPUT PHONE  END */

/*#region ================== CARD CAROUSEL LINK PERFORMANCE */
    .wrap-rank {
        display: flex;
        flex-direction: column;
        width: 100%;
        min-width: 100%;
        height: 100%;
        color: var(--black);

        .title {
            display: flex;
            align-items: center;
            gap: .75rem;
            margin-bottom: .75rem;

            img {
                width: auto;
                height: 50px;
                filter: drop-shadow(-3px 4px 3px hsl(from var(--secondary) h s l / .25));
            }
            div {
                flex: 1;
            }
            p:nth-of-type(1) {
                font-size: 1.25rem;
                font-weight: 800;
                line-height: 1.3;
                text-transform: capitalize;
                margin-bottom: .15rem;
            }
            p:nth-of-type(2) {
                font-size: .85rem;
                line-height: 1.3;
                margin-bottom: 0;
            }
        }
    
        .winners {
            flex: 1;
            position: relative;
            display: flex;
            flex-direction: column;
            gap: .35rem;
            overflow: hidden;

            .user {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: .75rem;
                padding: .5rem .65rem .5rem .5rem;
                background: hsl(from var(--white) h s l / .5);
                border: 1px solid transparent;
                border-radius: .75rem;

                &:hover {
                    background: var(--white);
                    border-color: hsl(from var(--secondary) h s l / .5);
                }
                img {
                    width: 40px;
                    height: 40px;
                    object-fit: contain;
                }
                div {
                    flex: 1;
                    text-align: left;
                }
                p {
                    font-size: 1rem;
                    font-weight: 600;
                    line-height: 1.3;
                    text-transform: capitalize;
                    margin-bottom: 0;
                    overflow: hidden;
                    display: -webkit-box;
                    -webkit-line-clamp: 1;
                    -webkit-box-orient: vertical;
                }
                /*p:last-child {
                    color: var(--grey);
                    font-size: .8rem;
                    line-height: 1.3;
                    margin-bottom: 0;
                }*/
                span {
                    font-size: 1.25rem;
                    font-weight: 700;
                }
            }            
        }

        .all {
            font-size: .8rem;
            text-align: center;
            margin-top: .5rem;
            z-index: 2;
            cursor: pointer;

            i {
                margin-left: .25rem;
            }
        }
    }

    .winners-detail {        
        .title {
            p:nth-of-type(1) {
                font-size: 1.5rem;
                font-weight: 800;
                line-height: 1.3;
                text-transform: capitalize;
                margin-bottom: .25rem;
            }
            p:nth-of-type(2) {
                font-size: 1rem;
                line-height: 1.4;
                margin-bottom: 0;
            }
        }

        .podium-container {
            --podium-size: 6px;
            --front-side-clr: linear-gradient(30deg, var(--secondary), hsl(from var(--secondary) h s 70));
            --lr-side-clr: hsl(from var(--secondary) h s 50);
            --top-side-clr: hsl(from var(--secondary) h s 85);

            perspective: calc(var(--podium-size) * 50);
            margin-top: calc(var(--podium-size) * 29);
            margin-bottom: 1.5rem;
            display: grid;
            place-items: center;

            .podium {
                display: grid;
                align-items: end;
                grid-template-columns: repeat(3, 1fr);
                transform-style: preserve-3d;
                gap: 20px;
                transform: rotateX(-25deg);
                text-align: center;
            }
            .podium-front {
                background: red;
                padding-inline: calc(var(--podium-size) * 8);
                padding-bottom: calc(var(--podium-size) * 3);
                position: relative;
                transform-style: preserve-3d;
                transform-origin: top;
                transition: transform 0.25s;
            }
            .podium-front:hover {
                transform: translate3d(0, 0, 15px);
            }
            .podium-center {
                transform: translate3d(0, 0, 5px);
            }
            .podium-center:hover {
                transform: translate3d(0, 0, 20px);
            }

            .podium-front::after {
                transform-style: preserve-3d;
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                transform-origin: top;
                transform: rotateX(-90deg);
            }
            .podium-left::before,
            .podium-right::before {
                background: var(--lr-side-clr);
                background: linear-gradient(to left, var(--lr-side-clr), transparent);
                transform-style: preserve-3d;
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                transform-origin: right;
                transform: rotateY(-90deg);
            }
            .podium-right::before {
                background: linear-gradient(to right, var(--lr-side-clr), transparent);
                transform-origin: left;
                transform: rotateY(90deg);
            }

            .podium-left {
                padding-top: calc(var(--podium-size) * 3);
                background: var(--front-side-clr);
            }
            .podium-left::after {
                background: var(--top-side-clr);
                background: linear-gradient(var(--top-side-clr), transparent);
            }
            .podium-center {
                padding-top: calc(var(--podium-size) * 6);
                background: var(--front-side-clr);
            }
            .podium-center::after {
                background: var(--top-side-clr);
                background: linear-gradient(var(--top-side-clr), transparent);
            }
            .podium-right {
                padding-top: calc(var(--podium-size) * 1);
                background: var(--front-side-clr);
            }
            .podium-right::after {
                background: var(--top-side-clr);
                background: linear-gradient(var(--top-side-clr), transparent);
            }

            .number {
                color: var(--putih);
                font-size: calc(var(--podium-size) * 10);
                font-weight: 900;
            }

            .user {
                position: absolute;
                top: 0%;
                left: 50%;
                transform: translate(-50%, -100%) translateZ(-50px) rotateY(0);
                /*transform-style: preserve-3d;*/
                transform-origin: center;
                text-align: center;
                width: calc(var(--podium-size) * 20);
                z-index: 10;

                > img {
                    width: calc(var(--podium-size) * 7);
                    height: auto;
                    margin-inline: auto;
                }
                > p:first-of-type {
                    font-size: .9rem;
                    font-weight: 600;
                    line-height: 1.2;
                    text-transform: capitalize;
                    margin-top: .35rem;
                    margin-bottom: 0;
                    overflow: hidden;
                    display: -webkit-box;
                    -webkit-line-clamp: 1;
                    -webkit-box-orient: vertical;
                }
                > p:nth-of-type(2) {
                    font-size: .8rem;
                }
                &::after {
                    content: "";
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    width: 100%;
                    height: calc(var(--podium-size) * 6);
                    border-radius: 100%;
                    filter: blur(20px);
                    background: #0e1303;
                    background: linear-gradient(#0e1303, transparent);
                    transform: rotateX(90deg);
                }
            }
            /*.podium-front:hover > .user {
                animation: rotate 8s linear infinite;
            }*/
        }

        .item {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: .75rem;
            margin-bottom: .5rem;
            background-color: var(--white);
            border: 1px solid var(--border);
            border-radius: .75rem;
            transition: var(--anim);
            cursor: pointer;

            span:first-child {
                color: var(--secondary);
                font-size: 1.35rem;
                font-weight: 800;
                line-height: 1.1;
            }
            span:nth-child(2) {
                flex: 1;
                font-size: 1rem;
            }
            span:last-child {
                font-size: 1rem;
                font-weight: 600;
            }
            &:hover {
                border-color: hsl(from var(--secondary) h s l / .5);
                box-shadow: 2px 6px 15px 6px hsl(from var(--secondary) h s l / .15);
                transform: scale(1.01);
            }
        }
    }

    @keyframes rotate {
        to {
            transform: translate(-50%, -100%) translateZ(-50px) rotateY(360deg);
        }
    }
/*#endregion ================== CARD CAROUSEL LINK PERFORMANCE  END */


