:root {
    --rz-primary: var(--dk-theme-color);
    --rz-primary-lighter: var(--dk-base-color);
    --rz-form-error-font-size: 14px;
    --rz-validator-text-padding: 8px;
    --rz-on-primary-lighter: var(--dk-theme-color);
    --rz-radio-margin-block: 8px;
    --rz-radio-circle-hover-background-color: var(--dk-theme-color);
}

.form-check {
    padding-left: 1rem;
    cursor: pointer;
}

    .form-check .rz-chkbox-box,
    .form-check .rz-radiobutton-box {
        border: 1.5px solid var(--dk-theme-color);
    }

.form-check .rz-chkbox-box.rz-state-disabled {
    border: 1.5px solid var(--dk-gray2);
}

    .form-check:hover .rz-chkbox-box,
    .form-check:hover .rz-radiobutton-box {
        border: 2px solid var(--dk-theme-color);
        box-shadow: 0 0 0 4px rgba(var(--dk-theme-color-rgb), 0.15);
    }

        .form-check:hover .rz-chkbox-box.rz-state-disabled,
        .form-check:hover .rz-radiobutton-box.rz-state-disabled {
            border: 1.5px solid var(--dk-gray2);
            box-shadow: none;
        }

    .form-check .rz-chkbox-box.rz-state-active {
    }

        .form-check .rz-chkbox-box.rz-state-active:hover {
            background-color: var(--dk-theme-color);
            border: var(--dk-theme-color);
        }

    .form-check .rz-chkbox-box:after,
    .form-check .rz-radiobutton-box:after {
        display: none;
    }

    .form-check .rz-label {
        padding-left: 16px;
        line-height: 1.5;
        font-size: 16px;
    }

.form-control.rz-textarea:not(:disabled):not(.rz-state-disabled):focus,
.form-control.rz-textbox:not(:disabled):not(.rz-state-disabled):focus,
.rz-dropdown:not(:disabled):not(.rz-state-disabled):focus {
    border: 2px solid var(--dk-theme-color);
    box-shadow: 0 0 0 4px rgba(var(--dk-theme-color-rgb), 0.15);
}

.form-control.rz-textarea:not(:disabled):not(.rz-state-disabled):hover:not(:focus),
.form-control.rz-textbox:not(:disabled):not(.rz-state-disabled):hover:not(:focus),
.rz-dropdown:not(:disabled):not(.rz-state-disabled):hover:not(:focus) {
    border: 2px solid var(--dk-gray3);
}

.form-control.rz-textarea.invalid:not(:disabled):not(.rz-state-disabled):focus,
.form-control.rz-textbox.invalid:not(:disabled):not(.rz-state-disabled):focus,
.rz-dropdown.invalid:not(:disabled):not(.rz-state-disabled):focus {
    border: 2px solid var(--dk-red);
    box-shadow: 0 0 0 4px rgba(233,190,190);
}

.form-control.rz-textarea.invalid:not(:disabled):not(.rz-state-disabled):hover:not(:focus),
.form-control.rz-textbox.invalid:not(:disabled):not(.rz-state-disabled):hover:not(:focus),
.rz-dropdown.invalid:not(:disabled):not(.rz-state-disabled):hover:not(:focus) {
    border: 2px solid var(--dk-red);
}

.form-control.rz-textarea:disabled {
    color: black;
}

.rz-dropdown.invalid {
    border: 2px solid var(--dk-red);
}



.form-control.rz-selectbutton {
    border: none;
    background: none;
    padding: unset;
}

    .form-control.rz-selectbutton .rz-button {
        border: 2px solid var(--dk-theme-color);
        background: var(--dk-white);
        width: 20%;
        text-align: center;
    }

        .form-control.rz-selectbutton .rz-button.rz-state-active {
            border: 2px solid var(--dk-theme-color);
        }


/*ファイル選択*/
.rz-fileupload-row {
    display: none !important;
}

.rz-fileupload-files {
    background-color: transparent;
    padding: var(--rz-upload-files-padding);
}

.rz-fileupload-buttonbar {
    background-color: transparent;
}

.rz-fileupload-choose.rz-button {
    display: block;
    background-color: var(--dk-theme-color);
    padding: 12px;
    border-radius: 8px;
    width: 100%;
    margin: 0 auto;
    border: none;
}
    .rz-fileupload-choose.rz-button:hover {
        background-color: var(--dk-theme-color) !important;
        opacity: 0.9;
        transition: opacity 0.3s;
    }

    .rz-fileupload-choose.rz-button .rz-button-text {
        color: var(--dk-white);
        font-weight: bold;
        font-size: 16px;
    }

/*ラジオボタン（タブの見た目にカスタム）*/
.btn-custom-radio-list {
    display: flex;
    justify-content: flex-start;
    gap: 4px;
    border-bottom: 2px solid #ccc;
    max-width: 100%;
    overflow-x: auto;
}

    .btn-custom-radio-list .rz-radio-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 44px;
        padding: 0 20px;
        background-color: white;
        border: 2px solid transparent;
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
        border-bottom: none;
        cursor: pointer;
        transition: background-color 0.2s ease, color 0.2s ease;
        white-space: nowrap;
    }

    .btn-custom-radio-list .rz-radiobutton-label {
        color: #333;
        font-weight: 500;
        display: block;
    }

    .btn-custom-radio-list input[type="radio"] {
        opacity: 0;
        position: absolute;
        pointer-events: none;
    }

    .btn-custom-radio-list .rz-radiobutton {
        display: none;
    }

    /* アクティブなタブ */
    .btn-custom-radio-list .rz-radio-btn:has(.rz-radiobutton-box.rz-state-active) {
        background-color: var(--dk-base-color);
        border-color: var(--dk-base-color) var(--dk-base-color) transparent var(--dk-base-color);
        color: var(--dk-base-color);
        font-weight: bold;
    }

    /* ホバー時 */
    .btn-custom-radio-list .rz-radio-btn:hover {
        background-color: #e0e0e0;
    }

/* モバイル対応：幅狭いとき縦に折り返す（任意） */
@media (max-width: 480px) {
    .btn-custom-radio-list {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

        .btn-custom-radio-list .rz-radio-btn {
            min-width: 100%;
            border-radius: 4px 4px 0 0;
            margin-bottom: 4px;
            text-align: left;
            padding-left: 12px;
        }

            .btn-custom-radio-list .rz-radio-btn:has(.rz-radiobutton-box.rz-state-active) {
                border-bottom: 2px solid var(--dk-base-color);
            }
}



/*ダイアログ上書き*/
.rz-dialog.rz-dialog-alert {
    border: 2px solid var(--dk-theme-color);
    border-radius: 12px;
    box-shadow: inset 0 0 0 6px rgba(var(--dk-theme-color-rgb), 0.2);
}

.rz-dialog {
    border: 2px solid var(--dk-theme-color);
    border-radius: 12px;
    box-shadow: inset 0 0 0 6px rgba(var(--dk-theme-color-rgb), 0.2);
}

.rz-dialog-titlebar {
    background-color: transparent !important;
}


/*タブ*/
.rz-tabview-title {
    font-size: 16px;
}