/* Full page */
html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: auto;
    background: #ffffff;
    /*touch-action: manipulation !important;*/
    /*-webkit-tap-highlight-color: transparent;*/
    /* Enforces smooth native momentum scrolling on iOS */
    /*-webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth;*/
}

/* Loader container */
#loading-container {
    transition: opacity 0.5s ease-out;
    position: fixed;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #ffffff;
    z-index: 99999;
}

/* Hide loader */
.loader-hidden {
    display: none !important;
}

/* ==========================================
   Material Spinner
   ========================================== */

.material-spinner {
    width: 8vmin;
    height: 8vmin;

    min-width: 36px;
    min-height: 36px;

    max-width: 60px;
    max-height: 60px;

    border: 4px solid #e0e0e0;
    border-top: 4px solid #2196F3;
    border-radius: 50%;

    animation: material-spin 1s linear infinite;
    box-sizing: border-box;
}

@keyframes material-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* ==========================================
   Cupertino iOS Spinner
   ========================================== */

.ios-spinner {
    position: relative;

    width: 8vmin;
    height: 8vmin;

    min-width: 36px;
    min-height: 36px;

    max-width: 60px;
    max-height: 60px;
}

.ios-spinner div {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-origin: center center;
    animation: ios-spin 1.2s linear infinite;
}

.ios-spinner div::after {
    content: "";
    position: absolute;

    top: 5%;
    left: 46%;

    width: 8%;
    height: 26%;

    border-radius: 999px;
    background: #8e8e93;
}

.ios-spinner div:nth-child(1) {
    transform: rotate(0deg);
    animation-delay: -1.1s;
}

.ios-spinner div:nth-child(2) {
    transform: rotate(30deg);
    animation-delay: -1s;
}

.ios-spinner div:nth-child(3) {
    transform: rotate(60deg);
    animation-delay: -0.9s;
}

.ios-spinner div:nth-child(4) {
    transform: rotate(90deg);
    animation-delay: -0.8s;
}

.ios-spinner div:nth-child(5) {
    transform: rotate(120deg);
    animation-delay: -0.7s;
}

.ios-spinner div:nth-child(6) {
    transform: rotate(150deg);
    animation-delay: -0.6s;
}

.ios-spinner div:nth-child(7) {
    transform: rotate(180deg);
    animation-delay: -0.5s;
}

.ios-spinner div:nth-child(8) {
    transform: rotate(210deg);
    animation-delay: -0.4s;
}

.ios-spinner div:nth-child(9) {
    transform: rotate(240deg);
    animation-delay: -0.3s;
}

.ios-spinner div:nth-child(10) {
    transform: rotate(270deg);
    animation-delay: -0.2s;
}

.ios-spinner div:nth-child(11) {
    transform: rotate(300deg);
    animation-delay: -0.1s;
}

.ios-spinner div:nth-child(12) {
    transform: rotate(330deg);
    animation-delay: 0s;
}

@keyframes ios-spin {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

/* Target the default Flutter loader container and force-hide it */
.flutter-loader,
._flutter-loader,
div[id*="flutter-loader"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}