﻿/* HTML: <div class="loader"></div> */
.loader {
    width: 50px;
    aspect-ratio: 1;
    display: grid;
    border-radius: 50%;
    background: linear-gradient(0deg,rgb(0 0 0/50%) 30%,#0000 0 70%,rgb(0 0 0/100%) 0) 50%/8% 100%, linear-gradient(90deg,rgb(0 0 0/25%) 30%,#0000 0 70%,rgb(0 0 0/75% ) 0) 50%/100% 8%;
    background-repeat: no-repeat;
    animation: l23 1s infinite steps(12);
    position: fixed;
    top: 50%;
    left: 50%;
}

    .loader::before,
    .loader::after {
        content: "";
        grid-area: 1/1;
        border-radius: 50%;
        background: inherit;
        opacity: 0.915;
        transform: rotate(30deg);
    }

    .loader::after {
        opacity: 0.83;
        transform: rotate(60deg);
    }

@keyframes l23 {
    100% {
        transform: rotate(1turn)
    }
}

.rz-html-editor-source {
    font-family: monospace, 'Courier New' !important;
}

.rz-numeric-input {
    padding-inline-end: 0px !important;
}

.rz-numeric input {
    padding-inline-end: 0px !important;
    padding-right: 10px !important;
}

.dynamic-height-container {
    display: flex;
    flex-direction: column;
    height: 85vh;
}

.dynamic-height-content {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.dynamic-height-grid {
    flex: 1;
    min-height: 0;
}

/* Fix radzen fluent UI checkbox */
.rz-chkbox-box .rzi {
    width: auto !important;
    height: auto !important;
}

/* Mobile responsive sidebar behavior */
@media (max-width: 767px) {
    .rz-sidebar {
        position: fixed !important;
        z-index: 1050 !important;
        height: 100vh !important;
    }
    
    .rz-sidebar-expanded {
        box-shadow: 0 0 20px rgba(0,0,0,0.5) !important;
    }
    
    /* Overlay for mobile when sidebar is open */
    .rz-layout:has(.rz-sidebar-expanded)::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: rgba(0,0,0,0.5);
        z-index: 1049;
        pointer-events: auto;
    }
    
    /* Alternative overlay using adjacent selector for older browsers */
    .rz-sidebar-expanded + .rz-content::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: rgba(0,0,0,0.5);
        z-index: 1049;
        pointer-events: auto;
    }
    
    /* Ensure body content is not scrollable when sidebar is open */
    .rz-layout:has(.rz-sidebar-expanded) .rz-body {
        overflow: hidden;
    }
}

/* Login / ForgotPassword page */
.login-background {
    background: linear-gradient(135deg, #4FC3F7 0%, #29B6F6 25%, #0288D1 50%, #0277BD 75%, #01579B 100%);
    min-height: 100vh;
    position: relative;
    overflow: hidden;
}

.login-background::before {
    content: '';
    position: absolute;
    top: -30%;
    left: -30%;
    width: 160%;
    height: 160%;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.1) 40%, transparent 70%);
    animation: float 8s ease-in-out infinite;
}

.login-background::after {
    content: '';
    position: absolute;
    top: -40%;
    right: -40%;
    width: 120%;
    height: 120%;
    background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 50%, transparent 80%);
    animation: float-reverse 12s ease-in-out infinite;
}

@keyframes float {
    0%, 100% {
        transform: translate(0, 0) rotate(0deg) scale(1);
        opacity: 0.7;
    }
    25% {
        transform: translate(50px, -40px) rotate(90deg) scale(1.1);
        opacity: 1;
    }
    50% {
        transform: translate(80px, 20px) rotate(180deg) scale(0.9);
        opacity: 0.8;
    }
    75% {
        transform: translate(-30px, 60px) rotate(270deg) scale(1.05);
        opacity: 0.9;
    }
}

@keyframes float-reverse {
    0%, 100% {
        transform: translate(0, 0) rotate(0deg) scale(1);
        opacity: 0.5;
    }
    33% {
        transform: translate(-40px, 50px) rotate(-120deg) scale(1.2);
        opacity: 0.8;
    }
    66% {
        transform: translate(30px, -30px) rotate(-240deg) scale(0.8);
        opacity: 0.6;
    }
}

.login-card {
    background: rgba(255, 255, 255);
    backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 12px 40px 0 rgba(31, 38, 135, 0.25);
    border-radius: 16px;
    position: relative;
    z-index: 10;
}

.login-card::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(45deg, rgba(255,255,255,0.3), rgba(255,255,255,0.1));
    border-radius: 18px;
    z-index: -1;
}

.login-card .rz-card {
    background: transparent;
    border: none;
    box-shadow: none;
}
