        /* 基本のスタイル（全画面を覆う） */
        #overlay-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background-color: rgba(255, 255, 255, 0.8);
            z-index: 9999;
            display: flex; /* flexで中央寄せ */
            flex-direction: column;
            justify-content: center;
            align-items: center;
            transition: opacity 0.3s;
        }

        /* 非表示用のクラス */
        .overlay-loader-hidden {
            display: none !important;
            /* もしくは visibility: hidden; opacity: 0; */
        }

        /* スピナー自体のデザイン（例） */
        .spinner {
            width: 50px;
            height: 50px;
            border: 5px solid #ddd;
            border-top-color: #3498db;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }

        @keyframes spin {
            to { transform: rotate(360deg); }
        }


        #loader-wrapper {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: #ffffff;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 9999;
            transition: opacity 0.5s ease;
        }

        .loader {
            border: 5px solid #f3f3f3;
            border-top: 5px solid #3498db;
            border-radius: 50%;
            width: 50px;
            height: 50px;
            animation: spin 1s linear infinite;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        .fadeout {
            opacity: 0;
            pointer-events: none;
        }
