/******* ここからメインエリアのスタイル ********/
main {
    text-align: center;
}

.hidden {
    display: none !important;
}

.upload {
    height: 0px;
    visibility: hidden;
}

.progress {
    width: 100%;
}

.progress.hidden-progress {
    background-color: transparent;

    div {
        display: none;
    }
}

@keyframes move {
    0% {
        left: 0;
        width: 20%;
    }

    50% {
        width: 50%;
    }

    100% {
        left: 80%;
        width: 20%;
    }
}

.comment {
    color: #676767;
}

.over {
    z-index: 6000;
    position: absolute;
    width: 100vw;
    height: 100vh;
    background-color: #00000046;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    animation: fadeIn 0.15s ease-out forwards;

    .dialog {
        animation: zoomIn 0.15s ease-out forwards;
        width: 400px;
        background-color: white;
        border-radius: 10px;
        padding: 25px;
        display: flex;
        flex-direction: column;
        overflow: auto;

        .header {
            height: 60px;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: space-between;

            .icon-button>span {

                color: black;
            }

            .title {
                font-size: x-large;
                margin: 0px;
            }
        }

        .body {
            flex-grow: 1;
            width: 100%;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;
            margin: 10px 0px;

            img {
                width: 60px;
                margin-right: 10px;
                margin-top: 20px;
            }
        }

        .column-body {
            flex-grow: 1;
            width: 100%;
            display: flex;
            flex-direction: column;
            margin: 10px 0px;
            box-sizing: border-box;
        }

        .footer {
            height: 60px;
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: end;
        }
    }
}

.over.closing {
    animation: fadeOut 0.15s ease-out forwards;

    .dialog {
        animation: zoomOut 0.15s ease-out forwards;
    }
}

.setting-header {
    width: calc(100% - 100px);
    height: 300px;
    background-color: #0000003e;
    color: white;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    padding-left: 50px;
    padding-right: 50px;
    overflow: hidden;


    .parallax {
        width: calc(100%);
        height: 300px;
        position: absolute;
        bottom: 0px;
        left: 0px;
        z-index: -999;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;

        .bottom {
            opacity: 0.8;
            font-size: small;
            position: absolute;
            bottom: 00px;
            right: 30px;
        }
    }

    .top-link {
        position: absolute;
        right: 20px;
        bottom: 10px;

        a {
            color: #ffffff80;
        }
    }
}


#main-profile {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0px;

    .left {
        .icon-container {
            position: relative;
            display: inline-block;
            width: 80px;
            height: 80px;
            cursor: pointer;

            img {
                display: block;
                width: 100%;
                height: 100%;
                border-radius: 50%;
            }

            margin: 20px;
            border-radius: 50%;

            .overlay {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                background: transparent;
                display: flex;
                align-items: center;
                justify-content: center;
                transition: background 0.3s ease;
                border-radius: 50%;
            }

            .overlay .camera-icon {
                width: 1em;
                height: 1em;
                background-size: contain;
                opacity: 0;
                transition: opacity 0.3s ease;
                color: white;
            }
        }

        .icon-container:hover .overlay {
            background: #00000070;
        }

        .icon-container:hover .overlay .camera-icon {
            opacity: 1;
        }

        .pencil-icon {
            position: absolute;
            bottom: 0px;
            right: 0px;
            width: 30px;
            height: 30px;
            background-size: contain;
            transition: opacity 0.3s ease;
            background-color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0px 0px 5px 2px #0000001d;
        }

        .icon-container:hover .pencil-icon {
            opacity: 0;
        }
    }

    .right {
        flex-grow: 1;
    }
}

#rename-dialog {
    .dialog .column-body {
        align-items: center;
    }
}

#icon-dialog {
    .dialog .column-body {
        .file-upload-wrapper {
            display: inline-block;
            position: relative;
            max-width: min-content;
        }

        .file-upload-label {
            display: inline-block;
            padding: 10px 20px;
            background-color: #0078D7;
            /* ボタンの色 */
            color: white;
            /* 文字の色 */
            border-radius: 5px;
            cursor: pointer;
            font-size: 16px;
            text-align: center;
        }

        .file-upload-label:hover {
            background-color: #005A9E;
            /* ホバー時の色 */
        }

        .file-upload-input {
            position: absolute;
            left: 0;
            top: 0;
            opacity: 0;
            width: 100%;
            height: 100%;
            cursor: pointer;
        }
    }
}

/* Cropper用のラッパー（固定サイズ） */
.cropper-container {
    width: 300px;
    height: 300px;
    position: relative;
    margin: 0 auto;
}

/* Cropperの内部トリミング枠に丸みを追加 */
.cropper-container .cropper-crop-box,
.cropper-container .cropper-view-box {
    border-radius: 50%;
}

/* 画像が大きくなりすぎないように */
#cropImage {
    max-width: 100%;
    max-height: 80vh;
    /* 画面に合わせた高さ */
    display: block;
    margin: 0 auto;
}

#profile-color {
    .transparent-pattern {
        margin-right: 30px;
    }
}

@keyframes zoomIn {
    from {
        transform: scale(0.8);
    }

    to {
        transform: scale(1);
    }
}

@keyframes zoomOut {
    from {
        transform: scale(1);
    }

    to {
        transform: scale(0.8);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}